+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
 
+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.
 
 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
 
          /* 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 */