From MAILER-DAEMON Sat Jan 05 02:04:31 2013 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1TrNnz-0003xU-OP for mharc-mule-ja@gnu.org; Sat, 05 Jan 2013 02:04:31 -0500 Received: from eggs.gnu.org ([208.118.235.92]:49079) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TrNnw-0003xF-9c for mule-ja@nongnu.org; Sat, 05 Jan 2013 02:04:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TrNnu-0006kc-E5 for mule-ja@nongnu.org; Sat, 05 Jan 2013 02:04:28 -0500 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:62937) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TrNnt-0006kP-KF for mule-ja@nongnu.org; Sat, 05 Jan 2013 02:04:26 -0500 Received: from church.math.s.chiba-u.ac.jp (church [133.82.132.36]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id C5468C055D for ; Sat, 5 Jan 2013 16:04:20 +0900 (JST) Date: Sat, 05 Jan 2013 16:04:20 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: mule-ja@nongnu.org User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: multipart/mixed; boundary="Multipart_Sat_Jan__5_16:04:20_2013-1" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 133.82.132.2 Subject: [mule-ja:22] extending composition-function-table rules to support VS15&16 X-BeenThere: mule-ja@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jan 2013 07:04:30 -0000 --Multipart_Sat_Jan__5_16:04:20_2013-1 Content-Type: text/plain; charset=ISO-2022-JP Mac OS X 10.7 以降でカラー絵文字が表示できる Mac port(*) で、Unicode 6.1 の Variation Selector 15 (U+FE0E, text-style) と Variation Selector 16 (U+FE0F, emoji-style)をサポートすることを考えています。その ために、composition-function-table の rule に対して以下のような拡張をし てはどうかと思うのですが、いかがでしょうか。 *: http://lists.gnu.org/archive/html/emacs-devel/2012-12/msg00431.html 現状では rule は [PATTERN PREV-CHARS FUNC] の形式になっています。これに 加えて、[PATTERN PREV-CHARS FUNC FONT-POS] の形式も許すようにします。前 者は基本的に現在と同じ動きをします(少し非互換な部分があるのですがそれは 後述します)。後者は FUNC に渡す gstring で用いる font object を取得する 文字の位置を、追加した要素 FONT-POS で指定します。この値は、rule のキー になっている文字 C の位置を基準とする相対位置を表す整数です(よって、 PATTERN にマッチした文字列でいうと、PREV-CHARS + FONT-POS 番目の文字の font object を取得することになります)。 Mac port での Variation Selector 15&16 のサポートで、上記の追加機能をど のように用いるのかを、U+0030 U+FE0E(または U+FE0E) U+20E3 ('0' + VS15(または VS16) + COMBINING ENCLOSING KEYCAP) を例にとって説明します。 もし composition を行わなければ、それぞれの文字は以下のようなフォントで 表示されます。 VS15(text-style)のとき: 文字 フォント キー C の位置からの相対位置 U+0030 (ASCII用のフォント) -1 U+FE0E (not found) 0 U+20E3 Lucida Grande 1 VS16(emoji-style)のとき: 文字 フォント キー C の位置からの相対位置 U+0030 (ASCII用のフォント) -1 U+FE0F Apple Color Emoji 0 U+20E3 Lucida Grande 1 VS15(text-style)のときは U+20E3 のフォント Lucida Grande を用いるために、 FONT-POS に 1 を指定します。同様に、VS16(emoji-style)のときは U+FE0F の フォント Apple Color Emoji を用いるために、FONT-POS に 0 を指定します。 いずれの場合も、取得した font object を用いて U+0030 U+20E3 に対して font-shape-gstring を呼び出せば、VS15 については角の丸い四角に入った 「0」のグリフ(Lucida Grande)、VS16 については「0」ボタンアイコンのグリ フ(Apple Color Emoji)が得られます。 先に、FONT-POS の無い形式について従来とは非互換な部分があると述べました。 これは、上の例のように Variation Selector についてもどのフォントを用い るかの情報を取得できるようにするために、font_range (font.c) における Variation Selector を飛ばす処理を削除するというものです。このため、 language/japanese.el で登録している compose-gstring-for-variation-glyph については、FONT-POS を -1 にしたも のを rule として指定することになります。 プラットフォーム非依存部分についてパッチを試作しましたので添付します。 また、Mac port における使用例は以下のようになります。御意見等いただけれ ば幸いです。 山本 光晴 mituharu@math.s.chiba-u.ac.jp (defvar mac-emoji-variation-characters-alist '((keycap . "#0123456789") (non-keycap . "\u203C\u2049\u2139\u2194\u2195\u2196\u2197\u2198\ \u2199\u21A9\u21AA\u231A\u231B\u24C2\u25AA\u25AB\ \u25B6\u25C0\u25FB\u25FC\u25FD\u25FE\u2600\u2601\ \u260E\u2611\u2614\u2615\u261D\u263A\u2648\u2649\ \u264A\u264B\u264C\u264D\u264E\u264F\u2650\u2651\ \u2652\u2653\u2660\u2663\u2665\u2666\u2668\u267B\ \u267F\u2693\u26A0\u26A1\u26AA\u26AB\u26BD\u26BE\ \u26C4\u26C5\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\ \u26FD\u2702\u2708\u2709\u270C\u270F\u2712\u2714\ \u2716\u2733\u2734\u2744\u2747\u2757\u2764\u27A1\ \u2934\u2935\u2B05\u2B06\u2B07\u2B1B\u2B1C\u2B50\ \u2B55\u303D\u3297\u3299\U0001F004\U0001F17F\U0001F21A\U0001F22F") (mac-specific . "\u00a9\u00ae\u2122\U0001F170\U0001F171\U0001F17E")) "Groups of characters that are sensitive to variation selectors 15 and 16. It is an alist of label symbols vs sequences of characters.") (defun mac-compose-gstring-for-keycap-variation (gstring) "Compose keycap glyph-string GSTRING for graphic display. GSTRING must have three glyphs; the first is a character that is part of a keycap symbol, the second is a glyph for the variation selector 15 (U+FE0E, text-style) or 16 (U+FE0F, emoji-style), and the third is the combining enclosing keycap character (U+20E3)." (let ((saved-header (lgstring-header gstring)) (g2 (lgstring-glyph gstring 2)) (i 0) glyph from to) (lgstring-set-header gstring (vector (lgstring-font gstring) (lgstring-char gstring 0) (lgstring-char gstring 2))) (lglyph-set-from-to g2 (1- (lglyph-from g2)) (1- (lglyph-to g2))) (lgstring-set-glyph gstring 1 g2) (lgstring-set-glyph gstring 2 nil) (setq gstring (font-shape-gstring gstring)) (when gstring (lgstring-set-header gstring saved-header) (lgstring-set-id gstring nil) (while (and (< i (lgstring-glyph-len gstring)) (setq glyph (lgstring-glyph gstring i))) (setq from (lglyph-from glyph) to (lglyph-to glyph)) (if (>= from 1) (setq from (1+ from))) (if (>= to 1) (setq to (1+ to))) (lglyph-set-from-to glyph from to) (setq i (1+ i))))) gstring) (defun mac-compose-gstring-for-text-style-variation (gstring) "Compose glyph-string GSTRING in text style for graphic display. GSTRING must have two glyphs; the first is a character that is sensitive to the text/emoji-style variation selector, and the second is a glyph for the variation selector 15 (U+FE0E)." (let ((g0 (lgstring-glyph gstring 0)) (g1 (lgstring-glyph gstring 1))) (lglyph-set-from-to g0 (lglyph-from g0) (lglyph-to g1)) (lglyph-set-char g0 0) (lgstring-set-glyph gstring 1 nil)) gstring) (defun mac-compose-gstring-for-emoji-style-variation (gstring) "Compose glyph-string GSTRING in emoji style for graphic display. GSTRING must have two glyphs; the first is a character that is sensitive to the text/emoji-style variation selector, and the second is a glyph for the variation selector 16 (U+FE0F)." (let ((saved-header (lgstring-header gstring)) glyph) (lgstring-set-header gstring (vector (lgstring-font gstring) (lgstring-char gstring 0))) (lgstring-set-glyph gstring 1 nil) (setq gstring (font-shape-gstring gstring)) (when gstring (lgstring-set-header gstring saved-header) (lgstring-set-id gstring nil) (setq glyph (lgstring-glyph gstring 0)) (lglyph-set-from-to glyph (lglyph-from glyph) (1+ (lglyph-to glyph))) (lglyph-set-char glyph 0))) gstring) (let ((regexp-keycap (concat "[" (cdr (assq 'keycap mac-emoji-variation-characters-alist)) "].\u20E3")) (regexp-all (concat "[" (mapconcat 'cdr mac-emoji-variation-characters-alist "") "]."))) (set-char-table-range composition-function-table ?\uFE0E `([,regexp-keycap 1 mac-compose-gstring-for-keycap-variation 1] [,regexp-all 1 mac-compose-gstring-for-text-style-variation -1])) (set-char-table-range composition-function-table ?\uFE0F `([,regexp-keycap 1 mac-compose-gstring-for-keycap-variation 0] [,regexp-all 1 mac-compose-gstring-for-emoji-style-variation 0]))) ;;; test ;; (insert (mapconcat ;; (lambda (c) (format "#x%04x:\t%c\uFE0E\u20E3 %c\uFE0F\u20E3" c c c)) ;; (cdr (assq 'keycap mac-emoji-variation-characters-alist)) "\n") ;; ?\n ;; (mapconcat ;; (lambda (c) (format "#x%04x:\t%c\uFE0E %c\uFE0F" c c c)) ;; (mapconcat 'cdr mac-emoji-variation-characters-alist "") "\n")) --Multipart_Sat_Jan__5_16:04:20_2013-1 Content-Type: application/octet-stream; type=gzip Content-Disposition: attachment; filename="composition.patch.gz" Content-Transfer-Encoding: base64 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 --Multipart_Sat_Jan__5_16:04:20_2013-1-- From MAILER-DAEMON Mon Jan 07 02:55:22 2013 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1Ts7YI-0002rI-F9 for mharc-mule-ja@gnu.org; Mon, 07 Jan 2013 02:55:22 -0500 Received: from eggs.gnu.org ([208.118.235.92]:39374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ts7YG-0002qI-7P for mule-ja@nongnu.org; Mon, 07 Jan 2013 02:55:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ts7YE-00034a-D0 for mule-ja@nongnu.org; Mon, 07 Jan 2013 02:55:20 -0500 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:61935) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ts7YD-00033s-Mm for mule-ja@nongnu.org; Mon, 07 Jan 2013 02:55:18 -0500 Received: from church.math.s.chiba-u.ac.jp (church [133.82.132.36]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id A734AC0561 for ; Mon, 7 Jan 2013 16:55:13 +0900 (JST) Date: Mon, 07 Jan 2013 16:55:13 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: mule-ja@nongnu.org In-Reply-To: References: User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=ISO-2022-JP X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 133.82.132.2 Subject: [mule-ja:23] Re: extending composition-function-table rules to support VS15&16 X-BeenThere: mule-ja@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Jan 2013 07:55:22 -0000 >>>>> On Sat, 05 Jan 2013 16:04:20 +0900, YAMAMOTO Mitsuharu said: > 先に、FONT-POS の無い形式について従来とは非互換な部分があると述べまし > た。これは、上の例のように Variation Selector についてもどのフォント > を用いるかの情報を取得できるようにするために、font_range (font.c) に > おけるVariation Selector を飛ばす処理を削除するというものです。このた > め、language/japanese.el で登録している > compose-gstring-for-variation-glyph については、FONT-POS を -1 にした > ものを rule として指定することになります。 この部分ですが、font_range では最初の文字が Variation Selector であった 場合にのみどのフォントを用いるかの情報を取得し、それ以外の場合は従来通 り飛ばすようにすれば、language/japanese.el への変更は必要なくなります。 1月10日に次の pretest が予定されているようですので、その後ぐらいにリリー スする予定の Mac port で以下の変更を取り込んで、Variation Selector 15 および 16 のサポートを付加したいと思います。 山本 光晴 mituharu@math.s.chiba-u.ac.jp === modified file 'src/composite.c' *** src/composite.c 2012-09-22 02:15:29 +0000 --- src/composite.c 2013-01-03 06:05:36 +0000 *************** *** 898,908 **** /* Try to compose the characters at CHARPOS according to composition ! rule RULE ([PATTERN PREV-CHARS FUNC]). LIMIT limits the characters ! to compose. STRING, if not nil, is a target string. WIN is a ! window where the characters are being displayed. If characters are ! successfully composed, return the composition as a glyph-string ! object. Otherwise return nil. */ static Lisp_Object autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, ptrdiff_t bytepos, ptrdiff_t limit, struct window *win, struct face *face, Lisp_Object string) --- 898,909 ---- /* Try to compose the characters at CHARPOS according to composition ! rule RULE (either [PATTERN PREV-CHARS FUNC] or [PATTERN PREV-CHARS ! FUNC FONT-POS]). LIMIT limits the characters to compose. STRING, ! if not nil, is a target string. WIN is a window where the ! characters are being displayed. If characters are successfully ! composed, return the composition as a glyph-string object. ! Otherwise return nil. */ static Lisp_Object autocmp_chars (Lisp_Object rule, ptrdiff_t charpos, ptrdiff_t bytepos, ptrdiff_t limit, struct window *win, struct face *face, Lisp_Object string) *************** *** 935,946 **** #ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) { font_object = font_range (charpos, &to, win, face, string); if (! FONT_OBJECT_P (font_object) ! || (! NILP (re) && to < limit && (fast_looking_at (re, charpos, bytepos, to, -1, string) <= 0))) return unbind_to (count, Qnil); } else #endif /* not HAVE_WINDOW_SYSTEM */ --- 936,963 ---- #ifdef HAVE_WINDOW_SYSTEM if (FRAME_WINDOW_P (f)) { + bool use_font_pos = 0; + + if (ASIZE (rule) == 4 && INTEGERP (AREF (rule, 3))) + { + ptrdiff_t offset = XINT (AREF (rule, 1)) + XINT (AREF (rule, 3)); + + if (offset >= 0 && offset < len) + { + charpos += offset; + to = charpos + 1; + use_font_pos = 1; + } + } font_object = font_range (charpos, &to, win, face, string); if (! FONT_OBJECT_P (font_object) ! || (! use_font_pos ! && ! NILP (re) && to < limit && (fast_looking_at (re, charpos, bytepos, to, -1, string) <= 0))) return unbind_to (count, Qnil); + if (use_font_pos) + to = limit; } else #endif /* not HAVE_WINDOW_SYSTEM */ *************** *** 1059,1065 **** for (ridx = 0; CONSP (val); val = XCDR (val), ridx++) { elt = XCAR (val); ! if (VECTORP (elt) && ASIZE (elt) == 3 && NATNUMP (AREF (elt, 1)) && charpos - 1 - XFASTINT (AREF (elt, 1)) >= start) break; --- 1076,1082 ---- for (ridx = 0; CONSP (val); val = XCDR (val), ridx++) { elt = XCAR (val); ! if (VECTORP (elt) && ASIZE (elt) >= 3 && ASIZE (elt) <= 4 && NATNUMP (AREF (elt, 1)) && charpos - 1 - XFASTINT (AREF (elt, 1)) >= start) break; *************** *** 1116,1122 **** for (ridx = 0; CONSP (val); val = XCDR (val), ridx++) { elt = XCAR (val); ! if (VECTORP (elt) && ASIZE (elt) == 3 && NATNUMP (AREF (elt, 1)) && charpos - XFASTINT (AREF (elt, 1)) > endpos) { --- 1133,1139 ---- for (ridx = 0; CONSP (val); val = XCDR (val), ridx++) { elt = XCAR (val); ! if (VECTORP (elt) && ASIZE (elt) >= 3 && ASIZE (elt) <= 4 && NATNUMP (AREF (elt, 1)) && charpos - XFASTINT (AREF (elt, 1)) > endpos) { *************** *** 1257,1264 **** for (; CONSP (val); val = XCDR (val)) { elt = XCAR (val); ! if (! VECTORP (elt) || ASIZE (elt) != 3 ! || ! INTEGERP (AREF (elt, 1))) continue; if (XFASTINT (AREF (elt, 1)) != cmp_it->lookback) goto no_composition; --- 1274,1281 ---- for (; CONSP (val); val = XCDR (val)) { elt = XCAR (val); ! if (! VECTORP (elt) || ASIZE (elt) < 3 || ASIZE (elt) > 4 ! || ! NATNUMP (AREF (elt, 1))) continue; if (XFASTINT (AREF (elt, 1)) != cmp_it->lookback) goto no_composition; *************** *** 1594,1600 **** { Lisp_Object elt = XCAR (val); ! if (VECTORP (elt) && ASIZE (elt) == 3 && NATNUMP (AREF (elt, 1))) { EMACS_INT check_pos = cur.pos - XFASTINT (AREF (elt, 1)); struct position_record check; --- 1611,1618 ---- { Lisp_Object elt = XCAR (val); ! if (VECTORP (elt) && ASIZE (elt) >= 3 && ASIZE (elt) <= 4 ! && NATNUMP (AREF (elt, 1))) { EMACS_INT check_pos = cur.pos - XFASTINT (AREF (elt, 1)); struct position_record check; *************** *** 2010,2016 **** a function to call to compose that character. The element at index C in the table, if non-nil, is a list of ! composition rules of this form: ([PATTERN PREV-CHARS FUNC] ...) PATTERN is a regular expression which C and the surrounding characters must match. --- 2028,2035 ---- a function to call to compose that character. The element at index C in the table, if non-nil, is a list of ! composition rules where each rule is a vector of the form [PATTERN ! PREV-CHARS FUNC] or [PATTERN PREV-CHARS FUNC FONT-POS]. PATTERN is a regular expression which C and the surrounding characters must match. *************** *** 2027,2032 **** --- 2046,2055 ---- composition of the characters that match PATTERN. It is called with one argument GSTRING. + FONT-POS is an integer specifying the position of the character from + which the font object passed to FUNC as a part of GSTRING is obtained. + The value is relative to the position of C. + GSTRING is a template of a glyph-string to return. It is already filled with a proper header for the characters to compose, and glyphs corresponding to those characters one by one. The === modified file 'src/font.c' *** src/font.c 2012-11-05 01:28:04 +0000 --- src/font.c 2013-01-06 05:20:06 +0000 *************** *** 3745,3751 **** category = CHAR_TABLE_REF (Vunicode_category_table, c); if (INTEGERP (category) && (XINT (category) == UNICODE_CATEGORY_Cf ! || CHAR_VARIATION_SELECTOR_P (c))) continue; if (NILP (font_object)) { --- 3745,3751 ---- category = CHAR_TABLE_REF (Vunicode_category_table, c); if (INTEGERP (category) && (XINT (category) == UNICODE_CATEGORY_Cf ! || (! NILP (font_object) && CHAR_VARIATION_SELECTOR_P (c)))) continue; if (NILP (font_object)) { From MAILER-DAEMON Tue Jan 08 05:25:38 2013 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1TsWNG-0007oO-BM for mharc-mule-ja@gnu.org; Tue, 08 Jan 2013 05:25:38 -0500 Received: from eggs.gnu.org ([208.118.235.92]:43095) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TsWNC-0007oB-OS for mule-ja@nongnu.org; Tue, 08 Jan 2013 05:25:36 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TsWNB-0001lE-Bo for mule-ja@nongnu.org; Tue, 08 Jan 2013 05:25:34 -0500 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:52660) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TsWNB-0001lA-8S for mule-ja@nongnu.org; Tue, 08 Jan 2013 05:25:33 -0500 Received: from 253.240.accsnet.ne.jp ([202.220.240.253]:51238 helo=mongkok) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1TsWN9-0004te-Fp; Tue, 08 Jan 2013 05:25:32 -0500 From: Kenichi Handa To: YAMAMOTO Mitsuharu In-Reply-To: (message from YAMAMOTO Mitsuharu on Mon, 07 Jan 2013 16:55:13 +0900) Date: Tue, 08 Jan 2013 19:23:18 +0900 Message-ID: <8738yc55yh.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::e Cc: mule-ja@nongnu.org Subject: [mule-ja:24] Re: extending composition-function-table rules to support VS15&16 X-BeenThere: mule-ja@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Jan 2013 10:25:36 -0000 返事遅れてすみません。 In article , YAMAMOTO Mitsuharu writes: >>>>>> On Sat, 05 Jan 2013 16:04:20 +0900, YAMAMOTO Mitsuharu said: > > 先に、FONT-POS の無い形式について従来とは非互換な部分があると述べまし > > た。これは、上の例のように Variation Selector についてもどのフォント > > を用いるかの情報を取得できるようにするために、font_range (font.c) に > > おけるVariation Selector を飛ばす処理を削除するというものです。このた > > め、language/japanese.el で登録している > > compose-gstring-for-variation-glyph については、FONT-POS を -1 にした > > ものを rule として指定することになります。 > この部分ですが、font_range では最初の文字が Variation Selector であった > 場合にのみどのフォントを用いるかの情報を取得し、それ以外の場合は従来通 > り飛ばすようにすれば、language/japanese.el への変更は必要なくなります。 Variation Selector については以前から気になってはいたんです が、対策を考える時間が取れずにいました。 > 1月10日に次の pretest が予定されているようですので、その後ぐらいにリリー > スする予定の Mac port で以下の変更を取り込んで、Variation Selector 15 > および 16 のサポートを付加したいと思います。 Mac port で試していただければ本当にありがたいです。基本的に はご提案の方法で良さそうには思えるのですが。今週中には時間を 取って検討してみたいとおもいます。 --- 半田@AIST From MAILER-DAEMON Tue Jan 08 20:51:06 2013 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1Tskos-00034x-NN for mharc-mule-ja@gnu.org; Tue, 08 Jan 2013 20:51:06 -0500 Received: from eggs.gnu.org ([208.118.235.92]:49821) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tskop-00034b-Cr for mule-ja@nongnu.org; Tue, 08 Jan 2013 20:51:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tskon-0004xg-Dc for mule-ja@nongnu.org; Tue, 08 Jan 2013 20:51:03 -0500 Received: from mail-da0-f43.google.com ([209.85.210.43]:39955) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tskon-0004xR-3V for mule-ja@nongnu.org; Tue, 08 Jan 2013 20:51:01 -0500 Received: by mail-da0-f43.google.com with SMTP id u36so477039dak.2 for ; Tue, 08 Jan 2013 17:50:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=e7jH5VgJ2ybDSnkoYM5o4kKL60YX+mg+74tBBYE168k=; b=x/203ETCA5XZTUtt8H22I9wBMx1rZVu16kU44hzuCBr51Lwd/Bot7ElQhssNJePzaF KE0lr5sWyqA3P0bgQbYMxm6XF39V0HsgHG1kJ8z97HVJwywPGqtxgD0glq+LE8CQABVa GsDIUJk1VD32BnzFUb8ryHAnhPj6nNL+WSBeS1b07G2Nh5IHzIkBgyi6h/kO/X3ZGw8l xeBlmF/BioRu4oG236xOdbDOni48+u+wGCzRswivD9+clsCbn7/2Kamp/T+r33xRYd/Y ey0uKY+0L7CfJ0wPm5Cx8Ki9rVj8oLccTGqsjPnJVYlYuWuUKE7/Fs8QTtfPyxl3+rqo uKNQ== MIME-Version: 1.0 Received: by 10.68.203.198 with SMTP id ks6mr203893153pbc.35.1357696259685; Tue, 08 Jan 2013 17:50:59 -0800 (PST) Received: by 10.66.190.195 with HTTP; Tue, 8 Jan 2013 17:50:59 -0800 (PST) In-Reply-To: <8738yc55yh.fsf@gnu.org> References: <8738yc55yh.fsf@gnu.org> Date: Wed, 9 Jan 2013 10:50:59 +0900 Message-ID: From: kawabata taichi To: Kenichi Handa Content-Type: multipart/alternative; boundary=047d7b15ae8d457d1804d2d14ba8 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 209.85.210.43 Cc: mule-ja@nongnu.org Subject: [mule-ja:25] Re: extending composition-function-table rules to support VS15&16 X-BeenThere: mule-ja@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Jan 2013 01:51:05 -0000 --047d7b15ae8d457d1804d2d14ba8 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit 川幡です。 現状のcomposition-function-tableではフォント情報は取れないのですが、 一方のVSであるIVSについては、複数のコレクションで管理される アーキテクチャとなっていて、 現在は Adobe-Japan-1と Hanyo-Denshiの2つのコレクションがあります。 各コレクションを実装しているフォントが現状では異なっていますので、 長期的には、例えばVSの親文字についてフォントセットに登録されている フォントを順番にCMAP14を探していって、該当する文字があれば それを表示するようにすれば、 IVSにも絵文字VSにも対応できて嬉しいかな、と思いました。 (大幅に改造になってしまいますが・・・) なお、現状ではフォントセットは charsetテキストプロパティに応じて フォントを変えられるようになっていますが、UCS/Unicodeのサブセットとして 文字集合が定義される現在では、これもやや時代遅れに なりつつあると感じています。できれば「言語」テキストプロパティに応じて、 フォントを変えるかまたはOTFドライバで起動するlanguageテーブルや GSUBのloclテーブルの挙動を変えられるとどうでしょうか。 (ではどうやってset-fontset-font のAPIを変えるのだ、またはOpenTypeのスクリプトを 選択するのだ、と言われるとなかなか良いアイデアはないのですが・・・) それと、些末ですが、 DEFUN ("composition-get-gstring", Fcomposition_get_gstring, Scomposition_get_gstring, 4, 4, 0, は、 DEFUN ("composition-get-gstring", Fcomposition_get_gstring, Scomposition_get_gstring, 3, 4, 0, でもいいのではないでしょうか。 2013年1月8日 19:23 Kenichi Handa : > 返事遅れてすみません。 > > In article , YAMAMOTO > Mitsuharu writes: > > >>>>>> On Sat, 05 Jan 2013 16:04:20 +0900, YAMAMOTO Mitsuharu < > mituharu@math.s.chiba-u.ac.jp> said: > > > 先に、FONT-POS の無い形式について従来とは非互換な部分があると述べまし > > > た。これは、上の例のように Variation Selector についてもどのフォント > > > を用いるかの情報を取得できるようにするために、font_range (font.c) に > > > おけるVariation Selector を飛ばす処理を削除するというものです。このた > > > め、language/japanese.el で登録している > > > compose-gstring-for-variation-glyph については、FONT-POS を -1 にした > > > ものを rule として指定することになります。 > > > この部分ですが、font_range では最初の文字が Variation Selector であった > > 場合にのみどのフォントを用いるかの情報を取得し、それ以外の場合は従来通 > > り飛ばすようにすれば、language/japanese.el への変更は必要なくなります。 > > Variation Selector については以前から気になってはいたんです > が、対策を考える時間が取れずにいました。 > > > 1月10日に次の pretest が予定されているようですので、その後ぐらいにリリー > > スする予定の Mac port で以下の変更を取り込んで、Variation Selector 15 > > および 16 のサポートを付加したいと思います。 > > Mac port で試していただければ本当にありがたいです。基本的に > はご提案の方法で良さそうには思えるのですが。今週中には時間を > 取って検討してみたいとおもいます。 > > --- > 半田@AIST > > -- --------------------------------------------------------------------- 川幡 太一 (KAWABATA, Taichi) E-mail: kawabata.taichi@gmail.com --047d7b15ae8d457d1804d2d14ba8 Content-Type: text/html; charset=ISO-2022-JP Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdiBzdHlsZT4bJEJAbkgoJEckOSEjGyhCPC9kaXY+PGRpdiBzdHls ZT48YnI+PC9kaXY+PGRpdiBzdHlsZT4bJEI4PT51JE4bKEJjb21wb3NpdGlvbi1mdW5jdGlvbi10 YWJsZRskQiRHJE8lVSUpJXMlSD5wSnMkTzxoJGwkSiQkJE4kRyQ5JCwhIhsoQjwvZGl2PjxkaXYg c3R5bGU+GyRCMGxKfSROGyhCVlMbJEIkRyQiJGsbKEJJVlMbJEIkSyREJCQkRiRPISJKIz90JE4l MyVsJS8lNyVnJXMkRzRJTX0kNSRsJGsbKEI8L2Rpdj48ZGl2IHN0eWxlPhskQiUiITwlLSVGJS8l QSVjJEgkSiRDJEYkJCRGISIbKEI8L2Rpdj48ZGl2IHN0eWxlPhskQjg9Ol8kTxsoQiBBZG9iZS1K YXBhbi0xGyRCJEgbKEIgSGFueW8tRGVuc2hpGyRCJE4jMiREJE4lMyVsJS8lNyVnJXMkLCQiJGok XiQ5ISMbKEI8L2Rpdj4KPGRpdiBzdHlsZT48YnI+PC9kaXY+PGRpdiBzdHlsZT4bJEIzRiUzJWwl LyU3JWclcyRyPEJBdSQ3JEYkJCRrJVUlKSVzJUgkLDg9PnUkRyRPMFskSiRDJEYkJCReJDkkTiRH ISIbKEI8L2Rpdj48ZGl2IHN0eWxlPhskQkQ5NHxFKiRLJE8hIk5jJCgkUBsoQlZTGyRCJE4/Rko4 O3okSyREJCQkRiVVJSklcyVIJTslQyVIJEtFUE8/JDUkbCRGJCQkaxsoQjwvZGl2PjxkaXYgc3R5 bGU+GyRCJVUlKSVzJUgkcj1nSFYkSxsoQkNNQVAxNBskQiRyQzUkNyRGJCQkQyRGISIzOkV2JDkk a0o4O3okLCQiJGwkUBsoQjwvZGl2PjxkaXYgc3R5bGU+GyRCJD0kbCRyST08KCQ5JGskaCQmJEsk OSRsJFAhIhsoQjwvZGl2PjxkaXYgc3R5bGU+SVZTGyRCJEskYjMoSjg7ehsoQlZTGyRCJEskYkJQ MX4kRyQtJEY0ciQ3JCQkKyRKISIkSDtXJCQkXiQ3JD8hIxsoQjwvZGl2Pgo8ZGl2IHN0eWxlPhsk QiFKQmdJfSRLMn5CJCRLJEokQyRGJDckXiQkJF4kOSQsISYhJiEmIUsbKEI8L2Rpdj48ZGl2IHN0 eWxlPjxicj48L2Rpdj48ZGl2IHN0eWxlPhskQiRKJCohIjg9PnUkRyRPJVUlKSVzJUglOyVDJUgk TxsoQiBjaGFyc2V0GyRCJUYlLSU5JUglVyVtJVElRiUjJEsxfiQ4JEYbKEI8L2Rpdj48ZGl2IHN0 eWxlPhskQiVVJSklcyVIJHJKUSQoJGkkbCRrJGgkJiRLJEokQyRGJCQkXiQ5JCwhIhsoQlVDUy9V bmljb2RlGyRCJE4lNSVWJTslQyVIJEgkNyRGGyhCPC9kaXY+PGRpdiBzdHlsZT4bJEJKODt6PTg5 ZyQsRGo1QSQ1JGwkazg9Ol8kRyRPISIkMyRsJGIkZCRkO35CZUNZJGwkSxsoQjwvZGl2PjxkaXYg c3R5bGU+ChskQiRKJGokRCREJCIkayRINDYkOCRGJCQkXiQ5ISMkRyQtJGwkUCFWOEA4bCFXJUYl LSU5JUglVyVtJVElRiUjJEsxfiQ4JEYhIhsoQjwvZGl2PjxkaXYgc3R5bGU+GyRCJVUlKSVzJUgk ckpRJCgkayQrJF4kPyRPGyhCT1RGGyRCJUklaSUkJVAkRzUvRjAkOSRrGyhCbGFuZ3VhZ2UbJEIl RiE8JVYlayRkGyhCPC9kaXY+PGRpdiBzdHlsZT5HU1VCGyRCJE4bKEJsb2NsGyRCJUYhPCVWJWsk TjVzRjAkckpRJCgkaSRsJGskSCRJJCYkRyQ3JGckJiQrISMbKEI8L2Rpdj48ZGl2IHN0eWxlPhsk QiFKJEckTyRJJCYkZCRDJEYbKEJzZXQtZm9udHNldC1mb250IBskQiROGyhCQVBJGyRCJHJKUSQo JGskTiRAISIkXiQ/JE8bKEJPcGVuVHlwZRskQiROJTklLyVqJVclSCRyGyhCPC9kaXY+PGRpdiBz dHlsZT4KGyRCQSpCciQ5JGskTiRAISIkSDhAJG8kbCRrJEgkSiQrJEokK05JJCQlIiUkJUclIiRP JEokJCROJEckOSQsISYhJiEmIUsbKEI8L2Rpdj48ZGl2IHN0eWxlPjxicj48L2Rpdj48ZGl2IHN0 eWxlPhskQiQ9JGwkSCEiOjNLdiRHJDkkLCEiGyhCPC9kaXY+PGRpdiBzdHlsZT48ZGl2PiZuYnNw OyBERUZVTiAoJnF1b3Q7Y29tcG9zaXRpb24tZ2V0LWdzdHJpbmcmcXVvdDssIEZjb21wb3NpdGlv bl9nZXRfZ3N0cmluZyw8L2Rpdj48ZGl2PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1Njb21w b3NpdGlvbl9nZXRfZ3N0cmluZywgNCwgNCwgMCw8L2Rpdj4KPGRpdj48YnI+PC9kaXY+PGRpdj4b JEIkTyEiGyhCPC9kaXY+PGRpdj48YnI+PC9kaXY+PGRpdj5ERUZVTiAoJnF1b3Q7Y29tcG9zaXRp b24tZ2V0LWdzdHJpbmcmcXVvdDssIEZjb21wb3NpdGlvbl9nZXRfZ3N0cmluZyw8L2Rpdj48ZGl2 PiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwO1Njb21wb3NpdGlvbl9nZXRfZ3N0cmluZywgMywg NCwgMCw8L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PhskQiRHJGIkJCQkJE4kRyRPJEokJCRHJDck ZyQmJCshIxsoQjwvZGl2PjxkaXY+Cjxicj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9l eHRyYSI+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj4yMDEzGyRCRy8bKEIxGyRCN24bKEI4 GyRCRnwbKEIgMTk6MjMgS2VuaWNoaSBIYW5kYSA8c3BhbiBkaXI9Imx0ciI+Jmx0OzxhIGhyZWY9 Im1haWx0bzpoYW5kYUBnbnUub3JnIiB0YXJnZXQ9Il9ibGFuayI+aGFuZGFAZ251Lm9yZzwvYT4m Z3Q7PC9zcGFuPjo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFy Z2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0LXdpZHRoOjFweDtib3JkZXItbGVmdC1j b2xvcjpyZ2IoMjA0LDIwNCwyMDQpO2JvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO3BhZGRpbmctbGVm dDoxZXgiPgobJEJKVjt2Q1kkbCRGJDkkXyReJDskcyEjGyhCPGJyPgo8ZGl2IGNsYXNzPSJpbSI+ PGJyPgpJbiBhcnRpY2xlICZsdDs8YSBocmVmPSJtYWlsdG86d2w2MjM5MWw3aS53bCUyNW1pdHVo YXJ1QG1hdGgucy5jaGliYS11LmFjLmpwIj53bDYyMzkxbDdpLndsJW1pdHVoYXJ1QG1hdGgucy5j aGliYS11LmFjLmpwPC9hPiZndDssIFlBTUFNT1RPIE1pdHN1aGFydSAmbHQ7PGEgaHJlZj0ibWFp bHRvOm1pdHVoYXJ1QG1hdGgucy5jaGliYS11LmFjLmpwIj5taXR1aGFydUBtYXRoLnMuY2hpYmEt dS5hYy5qcDwvYT4mZ3Q7IHdyaXRlczo8YnI+Cgo8YnI+CiZndDsmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0 OyBPbiBTYXQsIDA1IEphbiAyMDEzIDE2OjA0OjIwICswOTAwLCBZQU1BTU9UTyBNaXRzdWhhcnUg Jmx0OzxhIGhyZWY9Im1haWx0bzptaXR1aGFydUBtYXRoLnMuY2hpYmEtdS5hYy5qcCI+bWl0dWhh cnVAbWF0aC5zLmNoaWJhLXUuYWMuanA8L2E+Jmd0OyBzYWlkOjxicj4KJmd0OyAmZ3Q7IBskQkBo JEshIhsoQkZPTlQtUE9TIBskQiROTDUkJDdBPDAkSyREJCQkRj0+TWgkSCRPSHM4XzQ5JEpJdEos JCwkIiRrJEg9UiRZJF4kNxsoQjxicj4KJmd0OyAmZ3Q7IBskQiQ/ISMkMyRsJE8hIj5lJE5OYyRO JGgkJiRLGyhCIFZhcmlhdGlvbiBTZWxlY3RvciAbJEIkSyREJCQkRiRiJEkkTiVVJSklcyVIGyhC PGJyPgomZ3Q7ICZndDsgGyRCJHJNUSQkJGskKyROPnBKcyRyPGhGQCRHJC0kayRoJCYkSyQ5JGsk PyRhJEshIhsoQmZvbnRfcmFuZ2UgKGZvbnQuYykgGyRCJEsbKEI8YnI+CiZndDsgJmd0OyAbJEIk KiQxJGsbKEJWYXJpYXRpb24gU2VsZWN0b3IgGyRCJHJIdCRQJDk9aE19JHI6bz18JDkkayRIJCQk JiRiJE4kRyQ5ISMkMyROJD8bKEI8YnI+CiZndDsgJmd0OyAbJEIkYSEiGyhCbGFuZ3VhZ2UvamFw YW5lc2UuZWwgGyRCJEdFUE8/JDckRiQkJGsbKEI8YnI+CiZndDsgJmd0OyBjb21wb3NlLWdzdHJp bmctZm9yLXZhcmlhdGlvbi1nbHlwaCAbJEIkSyREJCQkRiRPISIbKEJGT05ULVBPUyAbJEIkchso QiAtMSAbJEIkSyQ3JD8bKEI8YnI+CiZndDsgJmd0OyAbJEIkYiROJHIbKEIgcnVsZSAbJEIkSCQ3 JEY7WERqJDkkayQzJEgkSyRKJGokXiQ5ISMbKEI8YnI+Cjxicj4KJmd0OyAbJEIkMyROSXRKLCRH JDkkLCEiGyhCZm9udF9yYW5nZSAbJEIkRyRPOkc9aSROSjg7eiQsGyhCIFZhcmlhdGlvbiBTZWxl Y3RvciAbJEIkRyQiJEMkPxsoQjxicj4KJmd0OyAbJEI+bDlnJEskTiRfJEkkTiVVJSklcyVIJHJN USQkJGskKyROPnBKcyRyPGhGQCQ3ISIkPSRsMEozMCROPmw5ZyRPPT5NaERMGyhCPGJyPgomZ3Q7 IBskQiRqSHQkUCQ5JGgkJiRLJDkkbCRQISIbKEJsYW5ndWFnZS9qYXBhbmVzZS5lbCAbJEIkWCRO SlE5OSRPSSxNVyRKJC8kSiRqJF4kOSEjGyhCPGJyPgo8YnI+CjwvZGl2PlZhcmlhdGlvbiBTZWxl Y3RvciAbJEIkSyREJCQkRiRPMEpBMCQrJGk1JCRLJEokQyRGJE8kJCQ/JHMkRyQ5GyhCPGJyPgob JEIkLCEiQlA6diRyOU0kKCRrO340ViQsPGgkbCQ6JEskJCReJDckPyEjGyhCPGJyPgo8ZGl2IGNs YXNzPSJpbSI+PGJyPgomZ3Q7IDEbJEI3bhsoQjEwGyRCRnwkSzwhJE4bKEIgcHJldGVzdCAbJEIk LE09RGokNSRsJEYkJCRrJGgkJiRHJDkkTiRHISIkPSROOGUkMCRpJCQkSyVqJWohPBsoQjxicj4K Jmd0OyAbJEIlOSQ5JGtNPURqJE4bKEIgTWFjIHBvcnQgGyRCJEcwSjI8JE5KUTk5JHI8aCRqOX4k cyRHISIbKEJWYXJpYXRpb24gU2VsZWN0b3IgMTU8YnI+CiZndDsgGyRCJCokaCRTGyhCIDE2IBsk QiROJTUlXSE8JUgkcklVMkMkNyQ/JCQkSDtXJCQkXiQ5ISMbKEI8YnI+Cjxicj4KPC9kaXY+TWFj IHBvcnQgGyRCJEc7biQ3JEYkJCQ/JEAkMSRsJFBLXEV2JEskIiRqJCwkPyQkJEckOSEjNHBLXEUq JEsbKEI8YnI+ChskQiRPJDREczBGJE5KfUshJEdOSSQ1JD0kJiRLJE87VyQoJGskTiRHJDkkLCEj OiM9NUNmJEskTzt+NFYkchsoQjxicj4KGyRCPGgkQyRGOCFGJCQ3JEYkXyQ/JCQkSCQqJGIkJCRe JDkhIxsoQjxicj4KPGJyPgotLS08YnI+ChskQkg+RUQhdyNBI0kjUyNUGyhCPGJyPgo8YnI+Cjwv YmxvY2txdW90ZT48L2Rpdj48YnI+PGJyIGNsZWFyPSJhbGwiPjxkaXY+PGJyPjwvZGl2Pi0tIDxi cj4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS08YnI+GyRCISFAbkgoGyhCIBskQkJAMGwbKEIgKEtBV0FCQVRBLCBUYWlj aGkpGyRCISEhISEhGyhCRS1tYWlsOiA8YSBocmVmPSJtYWlsdG86a2F3YWJhdGEudGFpY2hpQGdt YWlsLmNvbSI+a2F3YWJhdGEudGFpY2hpQGdtYWlsLmNvbTwvYT48YnI+Cjxicj4KPC9kaXY+PC9k aXY+Cg== --047d7b15ae8d457d1804d2d14ba8-- From MAILER-DAEMON Fri Jan 11 02:50:55 2013 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1TtZOB-0006ap-5w for mharc-mule-ja@gnu.org; Fri, 11 Jan 2013 02:50:55 -0500 Received: from eggs.gnu.org ([208.118.235.92]:52410) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TtZO8-0006aj-1y for mule-ja@nongnu.org; Fri, 11 Jan 2013 02:50:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TtZO2-0007NW-RS for mule-ja@nongnu.org; Fri, 11 Jan 2013 02:50:51 -0500 Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:58407) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TtZO2-0007LG-Bp for mule-ja@nongnu.org; Fri, 11 Jan 2013 02:50:46 -0500 Received: from church.math.s.chiba-u.ac.jp (church [133.82.132.36]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 81B41C056F for ; Fri, 11 Jan 2013 16:50:42 +0900 (JST) Date: Fri, 11 Jan 2013 16:50:42 +0900 Message-ID: From: YAMAMOTO Mitsuharu To: mule-ja@nongnu.org In-Reply-To: References: <8738yc55yh.fsf@gnu.org> User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?ISO-8859-4?Q?Shij=F2?=) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) Organization: Faculty of Science, Chiba University MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=ISO-2022-JP X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 133.82.132.2 Subject: [mule-ja:26] Re: extending composition-function-table rules to support VS15&16 X-BeenThere: mule-ja@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jan 2013 07:50:54 -0000 >>>>> On Wed, 9 Jan 2013 10:50:59 +0900, kawabata taichi said: > 各コレクションを実装しているフォントが現状では異なっていますので、長 > 期的には、例えばVSの親文字についてフォントセットに登録されているフォ > ントを順番にCMAP14を探していって、該当する文字があればそれを表示する > ようにすれば、IVSにも絵文字VSにも対応できて嬉しいかな、と思いました。 > (大幅に改造になってしまいますが・・・) 今回の変更は柔軟性に欠けて絵文字以外にはあまり使い道が無いようですし、 そうなると現状 Mac port 以外にはあまり意味が無さそうですので、Mac port にローカルな変更という形にしておきたいと思います。 なお、先程 Variation Selector 15&16 用の変更が入った 24.2.92 用の Mac port をリリースしました。 http://lists.gnu.org/archive/html/emacs-devel/2013-01/msg00152.html 山本 光晴 mituharu@math.s.chiba-u.ac.jp