changeset 107512:41f05dc44793

Woman parsing fix (Bug#5729). * woman.el (woman2-process-escapes): Only consume the newline if the filler character is on a line by itself (Bug#5729).
author Chong Yidong <cyd@stupidchicken.com>
date Tue, 16 Mar 2010 13:24:44 -0400
parents d062580ecdc6
children db52341e76ec
files lisp/ChangeLog lisp/woman.el
diffstat 2 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Mar 16 16:05:46 2010 +0900
+++ b/lisp/ChangeLog	Tue Mar 16 13:24:44 2010 -0400
@@ -1,3 +1,8 @@
+2010-03-16  Chong Yidong  <cyd@stupidchicken.com>
+
+	* woman.el (woman2-process-escapes): Only consume the newline if
+	the filler character is on a line by itself (Bug#5729).
+
 2010-03-16  Kenichi Handa  <handa@m17n.org>
 
 	* language/indian.el (devanagari-composable-pattern): Add more
--- a/lisp/woman.el	Tue Mar 16 16:05:46 2010 +0900
+++ b/lisp/woman.el	Tue Mar 16 13:24:44 2010 -0400
@@ -3876,10 +3876,14 @@
   ;; The first two cases below could be merged (maybe)!
   (let ((from (point)))
     ;; Discard zero width filler character used to hide leading dots
-    ;; and zero width characters.  If on a line by itself, consume the
-    ;; newline as well, as this may interfere with (Bug#3651).
-    (while (re-search-forward "\\\\[&|^]\n?" to t)
-      (woman-delete-match 0))
+    ;; and zero width characters.
+    (while (re-search-forward "\\\\[&|^]" to t)
+      (woman-delete-match 0)
+      ;; If on a line by itself, consume newline as well (Bug#3651).
+      (and (eq (char-before (match-beginning 0)) ?\n)
+	   (eq (char-after (match-beginning 0)) ?\n)
+	   (delete-char 1)))
+
     (goto-char from)
     ;; Interrupt text processing -- CONTINUE current text with the
     ;; next text line (after any control lines, unless processing to