Function: ucs-normalize-primary-composite

ucs-normalize-primary-composite is a byte-compiled function defined in ucs-normalize.el.gz.

Signature

(ucs-normalize-primary-composite DECOMPOSITION-PAIR COMPOSITION-PREDICATE)

Documentation

Convert DECOMPOSITION-PAIR to primary composite using COMPOSITION-PREDICATE.

Source Code

;; Defined in /usr/src/emacs/lisp/international/ucs-normalize.el.gz
(defun ucs-normalize-primary-composite (decomposition-pair composition-predicate)
  "Convert DECOMPOSITION-PAIR to primary composite using COMPOSITION-PREDICATE."
  (let ((char (or (gethash decomposition-pair
                           ucs-normalize-decomposition-pair-to-primary-composite)
                  (and (<= #x1100 (car decomposition-pair))
                       (< (car decomposition-pair) #x1113)
                       (<= #x1161 (cadr decomposition-pair))
                       (< (car decomposition-pair) #x1176)
                       (let ((lindex (- (car decomposition-pair) #x1100))
                             (vindex (- (cadr decomposition-pair) #x1161)))
                         (+ #xAC00 (* (+ (* lindex  21) vindex) 28))))
                  (and (<= #xac00 (car decomposition-pair))
                       (< (car decomposition-pair) #xd7a4)
                       (<= #x11a7 (cadr decomposition-pair))
                       (< (cadr decomposition-pair) #x11c3)
                       (= 0 (% (- (car decomposition-pair) #xac00) 28))
                       (let ((tindex (- (cadr decomposition-pair) #x11a7)))
                         (+ (car decomposition-pair) tindex))))))
    (if (and char
             (functionp composition-predicate)
             (null (funcall composition-predicate char)))
        nil char)))