From 28c451307be3b882aed6b52448e26450cec160f1 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 8 Sep 2011 23:23:47 -0700 Subject: [PATCH] woman.el fix for bug#9447. * lisp/woman.el (woman-if-body): When processing an .el block, do not delete the next .el block as well. --- lisp/ChangeLog | 5 +++++ lisp/woman.el | 20 ++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d49b7be9a99..2cd428bdddb 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2011-09-09 Glenn Morris + + * woman.el (woman-if-body): When processing an .el block, + do not delete the next .el block as well. (Bug#9447) + 2011-09-08 Martin Rudalics * window.el (window-deletable-p): Make sure window is live before diff --git a/lisp/woman.el b/lisp/woman.el index c6bd4a4c8d1..67112ba1745 100644 --- a/lisp/woman.el +++ b/lisp/woman.el @@ -2621,15 +2621,27 @@ If DELETE is non-nil then delete from point." ;; Process matching .el anything: (cond ((string= request "ie") ;; Discard unless previous .ie c `evaluated to false'. + ;; IIUC, an .ie must be followed by an .el. + ;; (An if with no else uses .if rather than .ie.) + ;; TODO warn if no .el found? + ;; The .el should come immediately after the .ie (modulo + ;; comments etc), but this searches to eob. (cond ((re-search-forward "^[.'][ \t]*el[ \t]*" nil t) (woman-delete-match 0) (woman-if-body "el" nil (not delete))))) +;;; FIXME neither the comment nor the code here make sense to me. +;;; This branch was executed for an else (any else, AFAICS). +;;; At this point, the else in question has already been processed above. +;;; The re-search will find the _next_ else, if there is one, and +;;; delete it. If there is one, it belongs to another if block. (Bug#9447) +;;; woman0-el does not need this bit either. ;; Got here after processing a single-line `.ie' as a body ;; clause to be discarded: - ((string= request "el") - (cond ((re-search-forward "^[.'][ \t]*el[ \t]*" nil t) - (woman-delete-match 0) - (woman-if-body "el" nil t))))) +;;; ((string= request "el") +;;; (cond ((re-search-forward "^[.'][ \t]*el[ \t]*" nil t) +;;; (woman-delete-match 0) +;;; (woman-if-body "el" nil t))))) + ) (goto-char from))) (defun woman0-el () -- 2.39.2