From: Kenichi Handa Date: Sat, 8 Nov 1997 03:08:40 +0000 (+0000) Subject: (fill-region-as-paragraph): Fix bug of X-Git-Tag: emacs-20.3~2839 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b847b1de5bea8ddbbe3ecf50f4207d18d3fa3e3d;p=emacs.git (fill-region-as-paragraph): Fix bug of handling the case that English letters are followed by such characters as Japanese and Chinese. --- diff --git a/lisp/textmodes/fill.el b/lisp/textmodes/fill.el index 4741c0ffdc7..78e89649ade 100644 --- a/lisp/textmodes/fill.el +++ b/lisp/textmodes/fill.el @@ -449,10 +449,17 @@ space does not end a sentence, so don't break a line there." (save-excursion (forward-char -1) (and (looking-at "\\. ") (not (looking-at "\\. "))))))) + ;; Find a breakable point while ignoring the + ;; following spaces. (skip-chars-forward " \t") - ;; Skip one \c| character or one word. - (if (looking-at "$\\|\\c|\\|[^ \t\n]+") - (goto-char (match-end 0))) + (if (looking-at "\\c|") + (forward-char 1) + (let ((pos (save-excursion + (skip-chars-forward "^ \n\t") + (point)))) + (if (re-search-forward "\\c|" pos t) + (forward-char -1) + (goto-char pos)))) (setq first nil))) ;; Normally, move back over the single space between the words. (if (= (preceding-char) ?\ ) (forward-char -1)) @@ -487,10 +494,17 @@ space does not end a sentence, so don't break a line there." (save-excursion (forward-char -1) (and (looking-at "\\. ") (not (looking-at "\\. "))))))) + ;; Find a breakable point while ignoring the + ;; following spaces. (skip-chars-forward " \t") - ;; Skip one \c| character or one word. - (if (looking-at "$\\|\\c|\\|[^ \t\n]+") - (goto-char (match-end 0))) + (if (looking-at "\\c|") + (forward-char 1) + (let ((pos (save-excursion + (skip-chars-forward "^ \n\t") + (point)))) + (if (re-search-forward "\\c|" pos t) + (forward-char -1) + (goto-char pos)))) (setq first nil)))) ;; Check again to see if we got to the end of the paragraph. (if (save-excursion (skip-chars-forward " \t") (eobp))