Mercurial > emacs
diff lisp/international/kinsoku.el @ 88155:d7ddb3e565de
sync with trunk
author | Henrik Enberg <henrik.enberg@telia.com> |
---|---|
date | Mon, 16 Jan 2006 00:03:54 +0000 |
parents | 0d8b17d428b5 |
children |
line wrap: on
line diff
--- a/lisp/international/kinsoku.el Sun Jan 15 23:02:10 2006 +0000 +++ b/lisp/international/kinsoku.el Mon Jan 16 00:03:54 2006 +0000 @@ -1,7 +1,9 @@ ;;; kinsoku.el --- `Kinsoku' processing funcs -*- coding: iso-2022-7bit; -*- -;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN. -;; Licensed to the Free Software Foundation. +;; Copyright (C) 1997, 2003 Free Software Foundation, Inc. +;; Copyright (C) 1995, 1997, 1998 +;; National Institute of Advanced Industrial Science and Technology (AIST) +;; Registration Number H14PRO021 ;; Keywords: mule, kinsoku @@ -19,8 +21,8 @@ ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -107,7 +109,7 @@ $A!.!0#"#(!2!4!6!8!:!<!>!c!d!e#@!f!l(B" ;; Chinese GB2312 "$A(E(F(G(H(I(J(K(L(M(N(O(P(Q(R(S(T(U(V(W(X(Y(h(B\ -$(0!>!@!B!D!F!H!J!L!N!P!R!T!V!X!Z!\!^!`!b(B" +\$(0!>!@!B!D!F!H!J!L!N!P!R!T!V!X!Z!\!^!`!b(B" ;; Chinese BIG5 "$(0!d!f!h!j!k!q!p"i"j"k"n"x$u$v$w$x$y$z${(B\ $(0$|$}$~%!%"%#%$%%%&%'%(%)%*%+%:(B")) @@ -121,11 +123,17 @@ ;; Try to resolve `kinsoku' restriction by making the current line longer. (defun kinsoku-longer () - (let ((pos-and-column (save-excursion - (forward-char 1) - (while (aref (char-category-set (following-char)) ?>) - (forward-char 1)) - (cons (point) (current-column))))) + (let ((pos-and-column + (save-excursion + (forward-char 1) + (while (and (not (eolp)) + (or (aref (char-category-set (following-char)) ?>) + ;; protect non-kinsoku words + (not (or (eq (preceding-char) ? ) + (aref (char-category-set (preceding-char)) + ?|))))) + (forward-char 1)) + (cons (point) (current-column))))) (if (or (<= kinsoku-limit 0) (< (cdr pos-and-column) (+ (current-fill-column) kinsoku-limit))) (goto-char (car pos-and-column))))) @@ -135,9 +143,14 @@ (defun kinsoku-shorter (linebeg) (let ((pos (save-excursion (forward-char -1) - (while (and (< linebeg (point)) - (or (aref (char-category-set (preceding-char)) ?<) - (aref (char-category-set (following-char)) ?>))) + (while (and + (< linebeg (point)) + (or (aref (char-category-set (preceding-char)) ?<) + (aref (char-category-set (following-char)) ?>) + ;; protect non-kinsoku words + (not (or (eq (preceding-char) ? ) + (aref (char-category-set (preceding-char)) + ?|))))) (forward-char -1)) (point)))) (if (< linebeg pos) @@ -170,4 +183,5 @@ (aref (char-category-set (preceding-char)) ?<)) (kinsoku-shorter linebeg)))) +;;; arch-tag: e6b036bc-9e5b-4e9f-a22c-4ed04e37777e ;;; kinsoku.el ends here