# HG changeset patch # User Kenichi Handa # Date 878958520 0 # Node ID a21b3ed1915eebbcbcd079eda7fe1a6dde7ee6b8 # Parent f1655c49bf018426cca6f867f3bd58cc225477ee (fill-region-as-paragraph): Fix bug of handling the case that English letters are followed by such characters as Japanese and Chinese. diff -r f1655c49bf01 -r a21b3ed1915e lisp/textmodes/fill.el --- a/lisp/textmodes/fill.el Sat Nov 08 03:08:10 1997 +0000 +++ b/lisp/textmodes/fill.el Sat Nov 08 03:08:40 1997 +0000 @@ -449,10 +449,17 @@ (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 @@ (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))