/* List lines of source files for GDB, the GNU debugger.
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
- 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
+ 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
Free Software Foundation, Inc.
This file is part of GDB.
/* FIXME, this goes to "delete dir"... */
if (dirname == 0)
{
- if (from_tty && query (_("Reinitialize source path to empty? ")))
+ if (!from_tty || query (_("Reinitialize source path to empty? ")))
{
xfree (source_path);
init_source_path ();
strcat (path + len, source_path + len + cdir_len); /* After $cdir */
}
}
- else
+
+ if (IS_ABSOLUTE_PATH (filename))
{
- /* If dirname is NULL, chances are the path is embedded in
- the filename. Try the source path substitution on it. */
+ /* If filename is absolute path, try the source path
+ substitution on it. */
char *rewritten_filename = rewrite_source_path (filename);
if (rewritten_filename != NULL)
perror_with_name (s->filename);
if (s->objfile && s->objfile->obfd)
- mtime = bfd_get_mtime (s->objfile->obfd);
+ mtime = s->objfile->mtime;
else if (exec_bfd)
- mtime = bfd_get_mtime (exec_bfd);
+ mtime = exec_bfd_mtime;
if (mtime && mtime < st.st_mtime)
warning (_("Source file is more recent than executable."));