* source.c (openp): Skip $cdir in PATH.
authorDoug Evans <dje@google.com>
Thu, 8 Apr 2010 21:08:40 +0000 (21:08 +0000)
committerDoug Evans <dje@google.com>
Thu, 8 Apr 2010 21:08:40 +0000 (21:08 +0000)
doc/
* gdb.texinfo (Command Files): Document that gdb skips $cdir in
search path, and document that gdb only scans the search path if
the script's path doesn't specify a directory.

gdb/ChangeLog
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/source.c

index 05cfec64ab59d9c6345437a22de44ad5f0dbaacd..0bed4e420b887ed8e21054ce0ee325676eefa74a 100644 (file)
@@ -1,3 +1,7 @@
+2010-04-08  Doug Evans  <dje@google.com>
+
+       * source.c (openp): Skip $cdir in PATH.
+
 2010-04-08  Phil Muldoon  <pmuldoon@redhat.com>
 
        PR python/11417
index a85e56a2583bcd292eca660af53614dd759f2972..16264af87565f3e43d7a4b710978a9f864696fcf 100644 (file)
@@ -1,3 +1,9 @@
+2010-04-08  Doug Evans  <dje@google.com>
+
+       * gdb.texinfo (Command Files): Document that gdb skips $cdir in
+       search path, and document that gdb only scans the search path if
+       the script's path doesn't specify a directory.
+
 2010-04-05  Doug Evans  <dje@google.com>
 
        * gdb.texinfo (maint show python auto-load): Fix typo.
index fd8b0bc34d99163ee73f9239cd3bc2908eefe45e..039287d7bc1b2a1939b4f102ce1d76ff8b81b3a2 100644 (file)
@@ -19383,8 +19383,12 @@ unless the order of execution is changed by one of the
 printed as they are executed.  An error in any command terminates
 execution of the command file and control is returned to the console.
 
-@value{GDBN} searches for @var{filename} in the current directory and then
-on the search path (specified with the @samp{directory} command).
+@value{GDBN} first searches for @var{filename} in the current directory.
+If the file is not found there, and @var{filename} does not specify a
+directory, then @value{GDBN} also looks for the file on the source search path
+(specified with the @samp{directory} command);
+except that @file{$cdir} is not searched because the compilation directory
+is not relevant to scripts.
 
 If @code{-v}, for verbose mode, is given then @value{GDBN} displays
 each command as it is executed.  The option must be given before
index dda5d1bb6d0e58401410b4769b8c0809d9be4c03..e9893ba566baa13b2271f6a7c3c8da3e99f6845b 100644 (file)
@@ -764,6 +764,16 @@ openp (const char *path, int opts, const char *string,
          /* Normal file name in path -- just use it.  */
          strncpy (filename, p, len);
          filename[len] = 0;
+
+         /* Don't search $cdir.  It's also a magic path like $cwd, but we
+            don't have enough information to expand it.  The user *could*
+            have an actual directory named '$cdir' but handling that would
+            be confusing, it would mean different things in different
+            contexts.  If the user really has '$cdir' one can use './$cdir'.
+            We can get $cdir when loading scripts.  When loading source files
+            $cdir must have already been expanded to the correct value.  */
+         if (strcmp (filename, "$cdir") == 0)
+           continue;
        }
 
       /* Remove trailing slashes */