From: Lars Ingebrigtsen Date: Wed, 25 Dec 2013 18:14:49 +0000 (+0100) Subject: Further shr quotation mark fill fixes X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~192 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c6c2058404759c6133950a4adb2827ab7d2cad3e;p=emacs.git Further shr quotation mark fill fixes (shr-char-kinsoku-bol-p): The quotation mark isn't a kinsoky BOL char. (shr-find-fill-point): Remove the special checks for the quotation mark, since `shr-char-kinsoku-bol-p' should now return the right thing. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index cc4000428fc..eac7ee91360 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -17,6 +17,10 @@ * net/shr.el (shr-find-fill-point): Don't break lines before a quotation mark. + (shr-char-kinsoku-bol-p): The quotation mark isn't a kinsoky BOL char. + (shr-find-fill-point): Remove the special checks for the quotation + mark, since `shr-char-kinsoku-bol-p' should now return the right + thing. 2013-12-25 Kenjiro NAKAYAMA diff --git a/lisp/net/shr.el b/lisp/net/shr.el index bb7b7106c7b..fa4a41812d7 100644 --- a/lisp/net/shr.el +++ b/lisp/net/shr.el @@ -414,7 +414,9 @@ size, and full-buffer size." ;; of a line or the end of a line. (defmacro shr-char-kinsoku-bol-p (char) "Return non-nil if a line ought not to begin with CHAR." - `(aref (char-category-set ,char) ?>)) + `(let ((char ,char)) + (and (not (eq char ?')) + (aref (char-category-set char) ?>)))) (defmacro shr-char-kinsoku-eol-p (char) "Return non-nil if a line ought not to end with CHAR." `(aref (char-category-set ,char) ?<)) @@ -489,30 +491,19 @@ size, and full-buffer size." (eq (following-char) ? ) (shr-char-breakable-p (preceding-char)) (shr-char-breakable-p (following-char)) - (if (eq (preceding-char) ?') - (not (memq (char-after (- (point) 2)) - (list nil ?\n ? ))) - (and (shr-char-kinsoku-bol-p (preceding-char)) - (shr-char-breakable-p (following-char)) - (not (shr-char-kinsoku-bol-p (following-char))))) + (and (shr-char-kinsoku-bol-p (preceding-char)) + (shr-char-breakable-p (following-char)) + (not (shr-char-kinsoku-bol-p (following-char)))) (shr-char-kinsoku-eol-p (following-char)))) (backward-char 1)) - (if (and (not (or failed (eolp))) - (eq (preceding-char) ?')) - (while (not (or (setq failed (eolp)) - (eq (following-char) ? ) - (shr-char-breakable-p (following-char)) - (shr-char-kinsoku-eol-p (following-char)))) - (forward-char 1))) (if failed ;; There's no breakable point, so we give it up. (let (found) (goto-char bp) (unless shr-kinsoku-shorten - (while (and (setq found (re-search-forward - "\\(\\c>\\)\\| \\|\\c<\\|\\c|" - (line-end-position) 'move)) - (eq (preceding-char) ?'))) + (while (setq found (re-search-forward + "\\(\\c>\\)\\| \\|\\c<\\|\\c|" + (line-end-position) 'move))) (if (and found (not (match-beginning 1))) (goto-char (match-beginning 0))))) (or @@ -550,8 +541,7 @@ size, and full-buffer size." (if (looking-at "\\(\\c<+\\)\\c<") (goto-char (match-end 1)) (forward-char 1)))) - ((and (shr-char-kinsoku-bol-p (following-char)) - (not (eq (following-char) ?'))) + ((shr-char-kinsoku-bol-p (following-char)) ;; Find forward the point where kinsoku-bol characters end. (let ((count 4)) (while (progn