[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mule-ja:43] bug report
From: |
ynyaaa |
Subject: |
[mule-ja:43] bug report |
Date: |
Sun, 07 Jun 2015 00:32:47 +0900 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (windows-nt) |
矢木です。
バグレポートなどをいくつか。
実行環境は以下の通りです。
GNU Emacs 24.5.1 (i686-pc-mingw32) of 2015-04-11 on LEG570
Microsoft Windows [Version 6.0.6002]
■■■■■■■■■■■■■■■■
1. fringe の表示について
define-fringe-bitmap に渡すデータは左詰めで指定しなければ
正しく表示されません。
また、9ドット幅以上の場合は上位バイトと下位バイトを
入れ替えないと期待通りに表示されません。
以下の式では14x14の正方形を指定する場合のサンプルです。
(let ((w 14) (h 14)
;; 同心正方形
(v [
#b11111111111111
#b10000000000001
#b10111111111101
#b10100000000101
#b10101111110101
#b10101000010101
#b10101011010101
#b10101011010101
#b10101000010101
#b10101111110101
#b10100000000101
#b10111111111101
#b10000000000001
#b11111111111111
]))
(if (<= w 8)
;; 8ビット幅で左詰めにする
(setq v (apply #'vector (mapcar (lambda (x) (lsh x (- 8 w))) v)))
(setq v (apply #'vector
;; 16ビット幅で左詰めにして、バイトを上下入れ替え
(mapcar (lambda (x)
(logior (logand (lsh x (+ (- 16 w) 8)) #xFF00)
(logand (lsh x (- (- 16 w) 8)) #x00FF)))
v))))
(define-fringe-bitmap 'test v h w)
(set-window-fringes nil w w)
(insert "<" (propertize "x" 'display '(left-fringe test)) ">\n")
)
■■■■■■■■■■■■■■■■
2. set-char-table-range で値が破壊される
set-char-table-range で大きい範囲を指定すると終了値を超えた値が
変更されてしまう場合があります。
(let ((tab (make-char-table nil)))
(set-char-table-range tab (cons #x10000 #x20000) 'test)
(aref tab #x20001))
=>test
■■■■■■■■■■■■■■■■
3. char-script-table に値を持たない文字
以下の範囲の文字に対して char-script-table の値が nil です。
03F4-03FF ; GREEK
1A01-1A1F ; BUGINESE
9FB0-9FCC ; CJK
FE00-FE0F ; VARIATION SELECTOR
FE10-FE19 ; PRESENTATION FORM FOR VERTICAL
FE50-FE6B ; SMALL FORM VARIANTS
FF60 ; FULLWIDTH RIGHT WHITE PARENTHESIS
FFA0-FFDC ; HALFWIDTH HANGUL
FFE8-FFEE ; HALFWIDTH
FFF9 ; INTERLINEAR ANNOTATION ANCHOR
FFFA ; INTERLINEAR ANNOTATION SEPARATOR
FFFB ; INTERLINEAR ANNOTATION TERMINATOR
FFFC ; OBJECT REPLACEMENT CHARACTER
FFFD ; REPLACEMENT CHARACTER
106C0-10767 ; LINEAR A
E0000-E007F ; TAG
E0100-E01EF ; VARIATION SELECTOR
■■■■■■■■■■■■■■■■
4. char-script-table の値が han の文字について
以下の文字に対しては char-script-table の値が han となっていますが、
symbol または cjk-misc が適当だと思います。
3200-32FF ; Enclosed CJK Letters and Months
3300-33FF ; CJK Compatibility
4DC0-4DFF ; Yijing Hexagram Symbols
FE30-FE4F ; CJK Compatibility Forms
1F200-1F2FF ; Enclosed Ideographic Supplement
■■■■■■■■■■■■■■■■
5. char-script-table の値のシンボル名について
Unicode で Myanmar とされる文字に対するシンボルが
burmese になっていてわかりにくいと思います。
1000-109F ; Myanmar
A9E0-A9FF ; Myanmar Extended-B
AA60-AA7F ; Myanmar Extended-A
Old Italic に対応するシンボルが olt-italic になっています。
10300-1032F ; Old Italic
■■■■■■■■■■■■■■■■
6. Google Noto Fonts の利用について
Google Noto Fonts での表示を試みたのですが、以下の文字については
表示できませんでした。
上4つについてはブロック全体が表示できていません。
Ethiopic については ETHIOPIC DIGIT のみ表示できませんでした。
Nko 07C0-07FA
Samaritan 0800-082D 0830-083E
Mandaic 0840-085B 085E
Mongolian 1800-180E 1810-1819 1820-1877 1880-18AA
Ethiopic 1369-137C
Old Italic については
(set-fontset-font nil 'olt-italic "Noto Sans Old Italic")
ではダメで
(set-fontset-font nil 'olt-italic
"-*-Noto Sans Old italic-*-*-*-*-*-*-*-*-*-*-*-*")
で指定する必要がありました。
("Noto Sans Old" の italic 体と解釈されてしまうため)
10300-1032F ; Old Italic
■■■■■■■■■■■■■■■■
7. \ce での検索
次の範囲について char-categoy e(Ethiopic) が設定されていません。
AB00-AB2F ; Ethiopic Extended-A
探せば類例はもっとあると思います。
■■■■■■■■■■■■■■■■
8. format-string の text-property がずれる
書式指定文字列に text-property が付与されていて、
書式指定によってスペースが追加される場合に
返り値の text-property の位置がおかしくなります。
(let ((form "%8s:X"))
(put-text-property (- (length form) 2) (- (length form) 1) 'test "TEST" form)
(format form 1))
=> #(" 1:X" 0 1 (test "TEST"))
■■■■■■■■■■■■■■■■
おわり
- [mule-ja:43] bug report,
ynyaaa <=