[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/composite.el,v
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/composite.el,v |
Date: |
Thu, 26 Jun 2008 04:16:10 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Kenichi Handa <handa> 08/06/26 04:16:10
Index: composite.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/composite.el,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- composite.el 14 May 2008 01:56:07 -0000 1.31
+++ composite.el 26 Jun 2008 04:16:09 -0000 1.32
@@ -436,26 +436,32 @@
(put 'save-buffer-state 'lisp-indent-function 1)
+(defsubst terminal-composition-base-character-p (ch)
+ (not (memq (get-char-code-property ch 'general-category)
+ '(Mn Mc Me Zs Zl Zp Cc Cf Cs))))
+
(defun terminal-composition-function (from to font-object string)
"General composition function used on terminal.
Non-spacing characters are composed with the preceding spacing
character. All non-spacing characters has this function in
`terminal-composition-function-table'."
- (let ((pos (1+ from)))
+ (let ((pos from))
(if string
(progn
(while (and (< pos to)
(= (aref char-width-table (aref string pos)) 0))
(setq pos (1+ pos)))
- (if (> from 0)
+ (if (and (> from 0)
+ (terminal-composition-base-character-p (aref string (1-
from))))
(compose-string string (1- from) pos)
(compose-string string from pos
(concat " " (buffer-substring from pos)))))
(while (and (< pos to)
(= (aref char-width-table (char-after pos)) 0))
(setq pos (1+ pos)))
- (if (> from (point-min))
- (compose-region (1- from) pos (buffer-substring from pos))
+ (if (and (> from (point-min))
+ (terminal-composition-base-character-p (char-after pos)))
+ (compose-region (1- from) pos)
(compose-region from pos
(concat " " (buffer-substring from pos)))))
pos))
@@ -496,7 +502,8 @@
(elt (aref table ch))
font-obj newpos)
(when (and elt
- (setq font-obj (font-at from window string)))
+ (or (not (display-graphic-p))
+ (setq font-obj (font-at from window
string))))
(if (functionp elt)
(setq newpos (funcall elt from to font-obj string))
(while (and elt
@@ -517,7 +524,8 @@
(elt (aref table ch))
func pattern font-obj newpos)
(when (and elt
- (setq font-obj (font-at from window)))
+ (or (not (display-graphic-p))
+ (setq font-obj (font-at from window))))
(if (functionp elt)
(setq newpos (funcall elt from to font-obj nil))
(goto-char from)
- [Emacs-diffs] Changes to emacs/lisp/composite.el,v,
Kenichi Handa <=