summaryrefslogtreecommitdiff
path: root/lib-src
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2006-08-16 14:08:49 +0000
committerMiles Bader <miles@gnu.org>2006-08-16 14:08:49 +0000
commitde20e0ccdb039a2ac27e5bbd3e06ab70c4e7bb65 (patch)
tree80243ce02b52cbf7945c614bd213dd63142b861a /lib-src
parent7a5c2a42040b12b037940a067aee6ac6fde01680 (diff)
parent5ebdc2990a95cc38b21f772eea4de3ceee149e54 (diff)
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 382-398) - Update from CVS - Update from erc--emacs--22 - Fix ERC bug introduced in last patch - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 123-125) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-101
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/ChangeLog15
-rw-r--r--lib-src/etags.c7
2 files changed, 19 insertions, 3 deletions
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index f61188fb8d5..3328f010846 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,18 @@
+2006-08-09 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
+
+ * etags.c (readline): expect sscanf returns >= 1.
+ (readline): Change position on %n and \" in sscanf.
+
+2006-08-07 Masatake YAMATO <jet@gyve.org>
+
+ * etags.c (readline): expect sscanf returns 2,
+ not 1.
+
+2006-08-07 Masatake YAMATO <jet@gyve.org>
+
+ * etags.c (TEX_mode): Check getc retruns EOF.
+ File ended without newline causes infinite loop.
+
2002-07-30 Adrian Aichner <adrian@xemacs.org> (tiny change)
* etags.c: It's XEmacs, not Xemacs: change all the occurences.
diff --git a/lib-src/etags.c b/lib-src/etags.c
index d60c12c2bcc..49a18be1df5 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -5165,7 +5165,7 @@ TEX_mode (inf)
{
/* Skip to next line if we hit the TeX comment char. */
if (c == '%')
- while (c != '\n')
+ while (c != '\n' && c != EOF)
c = getc (inf);
else if (c == TEX_LESC || c == TEX_SESC )
break;
@@ -6259,9 +6259,10 @@ readline (lbp, stream)
int start, lno;
if (DEBUG) start = 0; /* shut up the compiler */
- if (sscanf (lbp->buffer, "#line %d \"%n", &lno, &start) == 1)
+ if (sscanf (lbp->buffer, "#line %d %n\"", &lno, &start) >= 1
+ && lbp->buffer[start] == '"')
{
- char *endp = lbp->buffer + start;
+ char *endp = lbp->buffer + ++start;
assert (start > 0);
while ((endp = etags_strchr (endp, '"')) != NULL