]> git.eshelyaron.com Git - emacs.git/commitdiff
(readline): When creating a relative file name from a
authorFrancesco Potortì <pot@gnu.org>
Thu, 28 Dec 2006 00:05:53 +0000 (00:05 +0000)
committerFrancesco Potortì <pot@gnu.org>
Thu, 28 Dec 2006 00:05:53 +0000 (00:05 +0000)
#line directive, leave the file name alone.  The previous
behaviour was to make it relative to the tags file directory,
under the hypothesis that the #line directive file name was
relative to the directory of the tagged file.  That hypothesis is
wrong with Cpp and Lex.

(Makefile_targets): Do not include spaces in tag names.

lib-src/etags.c

index 3a976c3d756aebb80497af9223d7b15cae7c78ed..c4f7fdc4d69d26d2b5bbf8bcebd28c70d5f5a5fe 100644 (file)
@@ -41,7 +41,7 @@
  * configuration file containing regexp definitions for etags.
  */
 
-char pot_etags_version[] = "@(#) pot revision number is 17.23";
+char pot_etags_version[] = "@(#) pot revision number is 17.25";
 
 #define        TRUE    1
 #define        FALSE   0
@@ -4686,8 +4686,16 @@ Makefile_targets (inf)
       while (*bp != '\0' && *bp != '=' && *bp != ':')
        bp++;
       if (*bp == ':' || (globals && *bp == '='))
-       make_tag (lb.buffer, bp - lb.buffer, TRUE,
-                 lb.buffer, bp - lb.buffer + 1, lineno, linecharno);
+       {
+         /* We should detect if there is more than one tag, but we do not.
+            We just skip initial and final spaces. */
+         char * namestart = skip_spaces (lb.buffer);
+         while (--bp > namestart)
+           if (!notinname (*bp))
+             break;
+         make_tag (namestart, bp - namestart + 1, TRUE,
+                   lb.buffer, bp - lb.buffer + 2, lineno, linecharno);
+       }
     }
 }
 
@@ -6277,7 +6285,7 @@ readline (lbp, stream)
                  name = lbp->buffer + start;
                  *endp = '\0';
                  canonicalize_filename (name); /* for DOS */
-                 taggedabsname = absolute_filename (name, curfdp->infabsdir);
+                 taggedabsname = absolute_filename (name, tagfiledir);
                  if (filename_is_absolute (name)
                      || filename_is_absolute (curfdp->infname))
                    taggedfname = savestr (taggedabsname);