groff-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Groff-commit] groff ChangeLog src/roff/troff/input.cpp


From: Werner LEMBERG
Subject: [Groff-commit] groff ChangeLog src/roff/troff/input.cpp
Date: Sun, 21 Oct 2007 08:13:17 +0000

CVSROOT:        /cvsroot/groff
Module name:    groff
Changes by:     Werner LEMBERG <wl>     07/10/21 08:13:17

Modified files:
        .              : ChangeLog 
        src/roff/troff : input.cpp 

Log message:
        * src/roff/troff/input.cpp (do_ps_file): Handle `%X' in header
        comments correctly.  Reported by Frank Jahnke
        <address@hidden>.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/groff/ChangeLog?cvsroot=groff&r1=1.1105&r2=1.1106
http://cvs.savannah.gnu.org/viewcvs/groff/src/roff/troff/input.cpp?cvsroot=groff&r1=1.47&r2=1.48

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/groff/groff/ChangeLog,v
retrieving revision 1.1105
retrieving revision 1.1106
diff -u -b -r1.1105 -r1.1106
--- ChangeLog   2 Oct 2007 13:44:37 -0000       1.1105
+++ ChangeLog   21 Oct 2007 08:13:17 -0000      1.1106
@@ -1,3 +1,9 @@
+2007-10-21  Werner LEMBERG  <address@hidden>
+
+       * src/roff/troff/input.cpp (do_ps_file): Handle `%X' in header
+       comments correctly.  Reported by Frank Jahnke
+       <address@hidden>.
+
 2007-10-02  Ruslan Ermilov  <address@hidden>
 
        * tmac/doc-common, tmac/groff_doc.man: Add FreeBSD 6.2, document

Index: src/roff/troff/input.cpp
===================================================================
RCS file: /cvsroot/groff/groff/src/roff/troff/input.cpp,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -b -r1.47 -r1.48
--- src/roff/troff/input.cpp    20 Sep 2007 07:39:31 -0000      1.47
+++ src/roff/troff/input.cpp    21 Oct 2007 08:13:17 -0000      1.48
@@ -5965,10 +5965,17 @@
     return;
   }
   while (ps_get_line(buf, fp, filename) != 0) {
-    if (buf[0] != '%' || buf[1] != '%'
-       || strncmp(buf + 2, "EndComments", 11) == 0)
+    // in header comments, `%X' (`X' any printable character except
+    // whitespace) is possible too
+    if (buf[0] == '%') {
+      if (strncmp(buf + 1, "%EndComments", 12) == 0)
       break;
-    if (strncmp(buf + 2, "BoundingBox:", 12) == 0) {
+      if (white_space(buf[1]))
+       break;
+    }
+    else
+      break;
+    if (strncmp(buf + 1, "%BoundingBox:", 13) == 0) {
       int res = parse_bounding_box(buf + 14, &bb);
       if (res == 1) {
        assign_registers(bb.llx, bb.lly, bb.urx, bb.ury);
@@ -5988,7 +5995,7 @@
   if (bb_at_end) {
     long offset;
     int last_try = 0;
-    /* in the trailer, the last BoundingBox comment is significant */
+    // in the trailer, the last BoundingBox comment is significant
     for (offset = 512; !last_try; offset *= 2) {
       int had_trailer = 0;
       int got_bb = 0;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]