bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Lao Tonemarks Not Composing with Consonants


From: Richard Wordingham
Subject: Lao Tonemarks Not Composing with Consonants
Date: Thu, 22 Nov 2007 01:22:46 -0000

'Recent input' below records all post-startup actions in the session exhibiting the bug. This is a window display problem, so the quoted misdisplayed text may display properly when reading this bug report, and may not display at all because the text has been converted to UTF-8 to send this e-mail. The text was entered using the quail Lao input method, and was stored in the MULE Lao character set, not in Unicode. The font used for Lao appears to be:

-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1

from Version 1.2.1 of intlfonts. This was selected by the following start-up
(.emacs) script:
<quote .emacs>
;; Windows rendering-related settings
(setq w32-use-visible-system-caret t)
(setq w32-list-proportional-fonts t)
(setq w32-use-w32-font-dialog t) ;; Default
;; General improvements in readability
(show-paren-mode)
(toggle-truncate-lines 0)
;; Also enable BDF fonts - taken from
;; http://www.gnu.org/software/emacs/windows/faq5.html
(setq bdf-directory-list
     '("c:/intlfonts/Asian" "c:/intlfonts/Chinese" "c:/intlfonts/Chinese.X"
"c:/intlfonts/Ethiopic" "c:/intlfonts/European" "c:/intlfonts/Japanese" "c:/intlfonts/Japanese.X" "c:/intlfonts/Korean.X" "c:/intlfonts/Misc/"
       "c:/intlfonts/Chinese.BIG" "c:/intlfonts/European.BIG"
"c:/intlfonts/Japanese.BIG"))
(setq w32-bdf-filename-alist
     (w32-find-bdf-fonts bdf-directory-list))
;; Create a BDF fontset
(create-fontset-from-fontset-spec
"-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1, ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode, tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")    ;; Need to add some fonts to font-encoding-alist since the bdf fonts    ;; are type 0 (i.e. high bit 0) not the default type 1 (i.e. high bit1).(setq font-encoding-alist      (append '(("MuleTibetan-0" (tibetan . 0))  ("GB2312"        (chinese-gb2312 . 0))  ("JISX0208"      (japanese-jisx0208 . 0))  ("JISX0212"      (japanese-jisx0212 . 0))  ("VISCII"        (vietnamese-viscii-lower . 0))  ("KSC5601"       (korean-ksc5601 . 0))  ("MuleArabic-0"  (arabic-digit . 0))  ("MuleArabic-1"  (arabic-1-column . 0))  ("MuleArabic-2"  (arabic-2-column . 0))) font-encoding-alist))</quote>The problem is that Lao tonemarks are not displayed above the base consonantunless a superscript or subscript vowel intervenes.  Instead, it isdisplayedon its own in the next 'text cell' The immediate cause of thisis 
that sequences of consonant and tonemark are not being composed, asindicated by the output in the *scratch* buffer:<quote *scratch*>;; This buffer is for notes you don't want to save, and for Lisp evaluation.;; If you want to create a file, visit that file with C-x C-f,;; then enter the text in that file's own buffer.(open-dribble-file "./dribble")(open-termscript "./termscript")(setq w32-use-w32-font-dialog nil)ຣູ້ວ່າ(defun my-show-string (str)(let (len c u) (setq len (length str))(insert (format "\nLength of \"%s\" is %d"str len))(dotimes (i len)  (setq c (elt str i))  (setq u (if (setq u (encode-char c 'ucs))              (format "(= U+%.4X) " u)              ""))(insert (format "\n %d: %d (0x%x) %s %sprops=%s" i c c (split-char c) u                                       (text-properties-at i str))))))(defun my-copy ()       (interactive)       (setq my-buffer (buffer-substring (mark) (point))))(my-show-string my-buffer)Length of "ຣູ້ວ່າ" is 6 0: 7107 (0x1bc3) (lao 67) (= U+0EA3) props=(composition (2 3 [7107 71297145]) fontified t) 1: 
7129 (0x1bd9) (lao 89) (= U+0EB9) props=(composition (2 3 [7107 71297145]) fontified t) 2: 7145 (0x1be9) (lao 105) (= U+0EC9) props=(composition (2 3 [7107 71297145]) fontified t) 3: 7111 (0x1bc7) (lao 71) (= U+0EA7) props=(fontified t) 4: 7144 (0x1be8) (lao 104) (= U+0EC8) props=(fontified t) 5: 7122 (0x1bd2) (lao 82) (= U+0EB2) props=(fontified t)</quote>The problem has been traced to the omission of a line in leim/quail/lao.el.Inserting the line thus (the final inserted line) in the call ofquail-install-map fixed the problem:<quote lao.dif>*** lao.el.orig Tue Jan 16 09:40:00 2007--- lao.el Wed Nov 21 23:29:46 2007****************** 5,10 ****--- 5,12 ----  ;;   National Institute of Advanced Industrial Science and Technology(AIST)  ;;   Registration Number H14PRO021+ ;; Further modified outside GNU by Richard Wordingham 21 November 2007+  ;; Keywords: multilingual, input method, Lao  ;; This file is part of GNU Emacs.****************** 207,212 ****--- 209,218 ----    lao-other-key-alist)      (svt-state (lao-semivowel-key-alist . v-state)         (lao-vowel-key-alist . t-state)+ ;; Note that tones can stack in 
some minority languages, but the+ ;; tone stacks probably render better if combination is not+ ;; attempted.+        lao-tone-key-alist         lao-voweltone-key-alist)      (v-state (lao-vowel-key-alist . t-state))      (t-state lao-tone-key-alist))))</quote>The text then displayed in three cells instead of four, as it should be.The compositions are formed sensibly, viz:<quote string dump with changed code>(my-show-string my-buffer)Length of "ຣູ້ວ່າ" is 6 0: 7107 (0x1bc3) (lao 67) (= U+0EA3) props=(composition (8 3 [7107 71297145]) fontified t) 1: 7129 (0x1bd9) (lao 89) (= U+0EB9) props=(composition (8 3 [7107 71297145]) fontified t) 2: 7145 (0x1be9) (lao 105) (= U+0EC9) props=(composition (8 3 [7107 71297145]) fontified t) 3: 7111 (0x1bc7) (lao 71) (= U+0EA7) props=(composition (20 2 [7111 7144])fontified t) 4: 7144 (0x1be8) (lao 104) (= U+0EC8) props=(composition (20 2 [7111 7144])fontified t) 5: 7122 (0x1bd2) (lao 82) (= U+0EB2) props=(fontified t)</quote>It is arguable that the new line should actually read '(lao-tone-key-alist .t-state)' to allow tone marks to be stacked - it does depend on 
the qualityof the fonts and rendering systems.The input Lao text was created by the six character key-stroke sequence < i6 h ; j k >.Yours sincerely,Richard WordinghamIn GNU Emacs 22.1.1 (i386-mingw-nt5.1.2600) of 2007-06-02 on RELEASEWindowing system distributor `Microsoft Corp.', version 5.1.2600configured using `configure --with-gcc (3.4) --cflags -Ic:/gnuwin32/include'Important settings:  value of $LC_ALL: nil  value of $LC_COLLATE: nil  value of $LC_CTYPE: nil  value of $LC_MESSAGES: nil  value of $LC_MONETARY: nil  value of $LC_NUMERIC: nil  value of $LC_TIME: nil  value of $LANG: ENG  locale-coding-system: cp874  default-enable-multibyte-characters: tMajor mode: Lisp InteractionMinor modes in effect:  show-paren-mode: t  encoded-kbd-mode: t  tooltip-mode: t  tool-bar-mode: t  mouse-wheel-mode: t  menu-bar-mode: t  file-name-shadow-mode: t  global-font-lock-mode: t  font-lock-mode: t  blink-cursor-mode: t  unify-8859-on-encoding-mode: t  utf-translate-cjk-mode: t  auto-compression-mode: t  line-number-mode: tRecent input:<help-echo> <help-echo> ( o p e n - d r i b b l e -f i l e SPC " . / d r i b 
b l e ) <backspace> : <backspace>" ) C-x C-e C-x C-f <help-echo> C-g <help-echo> <return>( o p e n - t e r m s c r i p [ t <backspace> <backspace>t SPC " / <backspace> . / t e r m s c r i p t " ) C-xC-e <return> ( <help-echo> <help-echo> <help-echo><help-echo> <help-echo> <help-echo> <help-echo> <help-echo><help-echo> <help-echo> <help-echo> <help-echo> <help-echo><tool-bar> <copy> <help-echo> <help-echo> <tool-bar><paste> <help-echo> <help-echo> <backspace> <backspace><backspace> <backspace> <backspace> <backspace> <backspace><backspace> <backspace> <backspace> <backspace> <backspace><backspace> <backspace> <backspace> <backspace> <backspace><backspace> <backspace> <backspace> <backspace> <backspace><backspace> <backspace> <backspace> <backspace> 
<backspace><backspace> <backspace> <backspace> <backspace> <backspace><backspace> <backspace> <backspace> <backspace> <help-echo><help-echo> <help-echo> <help-echo> <help-echo> <tool-bar><paste> SPC n i l ) C-x C-e <help-echo> <help-echo><help-echo> <help-echo> <help-echo> <help-echo> <help-echo><help-echo> <help-echo> <help-echo> <help-echo> <help-echo><help-echo> <help-echo> <help-echo> <help-echo> <help-echo><help-echo> <help-echo> <menu-bar> <options> <mouse-set-font>C-x <return> C-\ l a o <return> <return> i 6 h ; jk <help-echo> <help-echo> <help-echo> <help-echo> <help-echo><help-echo> <help-echo> <return> <help-echo> <help-echo><help-echo> <help-echo> <tool-bar> <paste> <help-echo><help-echo> <down-mouse-1> <mouse-1> C-x C-e <down-mouse-1><mouse-1> C-x 
C-e C-\ <return> ( m y - s h o w - st r i n g SPC m y - b u f f e r ) <help-echo> <down-mouse-1><mouse-movement> <mouse-movement> <drag-mouse-1> <escape>x m y - c o p y <return> <down-mouse-1> <mouse-1> C-xC-e <help-echo> <help-echo> <help-echo> <escape> xr e p o r t - e m a c s - b u g <return>Recent messages:Loading quail/lao...Loading regexp-opt...doneLoading composite...doneLoading mule-util...doneLoading quail/lao...doneMark setmy-show-stringmy-copynilLoading emacsbug...done




reply via email to

[Prev in Thread] Current Thread [Next in Thread]