X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/7c420169baa7c50428589cca7f8eda71b462eb15..ed571ccb1d14abc788a29c3b3bbf08aa4b951ab8:/lisp/composite.el diff --git a/lisp/composite.el b/lisp/composite.el index da7705cf9e..72317ac470 100644 --- a/lisp/composite.el +++ b/lisp/composite.el @@ -1,7 +1,7 @@ ;;; composite.el --- support character composition ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, -;; 2008, 2009, 2010 +;; 2008, 2009, 2010, 2011 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 @@ -289,9 +289,7 @@ A composition rule is a cons of glyph reference points of the form (let (str components) (if (consp (car (cdr args))) ;; Rule-base composition. - (let ((len (length args)) - (tail (encode-composition-components args 'nocopy))) - + (let ((tail (encode-composition-components args 'nocopy))) (while tail (setq str (cons (car tail) str)) (setq tail (nthcdr 2 tail))) @@ -448,8 +446,8 @@ after a sequence of character events." (defun lgstring-insert-glyph (gstring idx glyph) (let ((nglyphs (lgstring-glyph-len gstring)) - (i idx) g) - (while (and (< i nglyphs) (setq g (lgstring-glyph gstring i))) + (i idx)) + (while (and (< i nglyphs) (lgstring-glyph gstring i)) (setq i (1+ i))) (if (= i nglyphs) (setq gstring (vconcat gstring (vector glyph))) @@ -463,8 +461,7 @@ after a sequence of character events." (defun compose-glyph-string (gstring from to) (let ((glyph (lgstring-glyph gstring from)) - from-pos to-pos - ascent descent lbearing rbearing) + from-pos to-pos) (setq from-pos (lglyph-from glyph) to-pos (lglyph-to (lgstring-glyph gstring (1- to)))) (lglyph-set-from-to glyph from-pos to-pos) @@ -482,7 +479,7 @@ after a sequence of character events." (let ((font-object (lgstring-font gstring)) (glyph (lgstring-glyph gstring from)) from-pos to-pos - ascent descent lbearing rbearing) + ascent descent) (if gap (setq gap (floor (* (font-get font-object :size) gap))) (setq gap 0)) @@ -497,7 +494,7 @@ after a sequence of character events." (lglyph-set-from-to glyph from-pos to-pos) (let ((this-ascent (lglyph-ascent glyph)) (this-descent (lglyph-descent glyph)) - xoff yoff wadjust) + xoff yoff) (setq xoff (if (<= (lglyph-rbearing glyph) 0) 0 (- (lglyph-width glyph)))) (if (> this-ascent 0) @@ -521,17 +518,16 @@ a padding space before and/or after the character. All non-spacing characters have this function in `composition-function-table' unless overwritten." - (let* ((header (lgstring-header gstring)) - (nchars (lgstring-char-len gstring)) - (nglyphs (lgstring-glyph-len gstring)) - (glyph (lgstring-glyph gstring 0))) + (let ((nchars (lgstring-char-len gstring)) + (nglyphs (lgstring-glyph-len gstring)) + (glyph (lgstring-glyph gstring 0))) (cond ;; A non-spacing character not following a proper base character. ((= nchars 1) (let ((lbearing (lglyph-lbearing glyph)) (rbearing (lglyph-rbearing glyph)) (width (lglyph-width glyph)) - xoff wadjust) + xoff) (if (< lbearing 0) (setq xoff (- lbearing)) (setq xoff 0 lbearing 0)) @@ -561,8 +557,7 @@ All non-spacing characters have this function in (rbearing (lglyph-rbearing glyph)) (lbearing (lglyph-lbearing glyph)) (center (/ (+ lbearing rbearing) 2)) - (gap (round (* (font-get (lgstring-font gstring) :size) 0.1))) - xoff yoff) + (gap (round (* (font-get (lgstring-font gstring) :size) 0.1)))) (dotimes (i nchars) (setq glyph (lgstring-glyph gstring i)) (when (> i 0) @@ -652,18 +647,16 @@ Non-spacing characters are composed with the preceding base character. If the preceding character is not a base character, each non-spacing character is composed as a spacing character by prepending a space before it." - (let* ((header (lgstring-header gstring)) - (nchars (lgstring-char-len gstring)) - (nglyphs (lgstring-glyph-len gstring)) - (i 0) - (coding (lgstring-font gstring)) - glyph) + (let ((nglyphs (lgstring-glyph-len gstring)) + (i 0) + (coding (lgstring-font gstring)) + glyph) (while (and (< i nglyphs) (setq glyph (lgstring-glyph gstring i))) (if (not (char-charset (lglyph-char glyph) coding)) (progn ;; As the terminal doesn't support this glyph, return a - ;; gstring in which each glyph is its own graphme-cluster + ;; gstring in which each glyph is its own grapheme-cluster ;; of width 1.. (setq i 0) (while (and (< i nglyphs) @@ -735,12 +728,13 @@ This function is the default value of `auto-composition-function' (which see)." ;;;###autoload (define-minor-mode auto-composition-mode "Toggle Auto Composition mode. -With ARG, turn Auto Composition mode off if and only if ARG is a non-positive -number; if ARG is nil, toggle Auto Composition mode; anything else turns Auto -Composition on. +With a prefix argument ARG, enable Auto Composition mode if ARG +is positive, and disable it otherwise. If called from Lisp, +enable the mode if ARG is omitted or nil. -When Auto Composition is enabled, text characters are automatically composed -by functions registered in `composition-function-table' (which see). +When Auto Composition mode is enabled, text characters are +automatically composed by functions registered in +`composition-function-table'. You can use `global-auto-composition-mode' to turn on Auto Composition mode in all buffers (this is the default)." @@ -751,10 +745,13 @@ Auto Composition mode in all buffers (this is the default)." ;;;###autoload (define-minor-mode global-auto-composition-mode - "Toggle Auto-Composition mode in every possible buffer. -With prefix arg, turn Global-Auto-Composition mode on if and only if arg -is positive. -See `auto-composition-mode' for more information on Auto-Composition mode." + "Toggle Auto Composition mode in all buffers. +With a prefix argument ARG, enable it if ARG is positive, and +disable it otherwise. If called from Lisp, enable it if ARG is +omitted or nil. + +For more information on Auto Composition mode, see +`auto-composition-mode' ." :variable (default-value 'auto-composition-mode)) (defalias 'toggle-auto-composition 'auto-composition-mode)