From: "Richard Wordingham" <richard.wordingham@ntlworld.com>
To: <bug-gnu-emacs@gnu.org>
Subject: Lao Tonemarks Not Composing with Consonants
Date: Thu, 22 Nov 2007 01:22:46 -0000 [thread overview]
Message-ID: <001101c82ca6$319c76b0$d5101252@JRWXP1> (raw)
'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))) fon
t-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))(doti
mes (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-vo
wel-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]) fontif
ied 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 other threads:[~2007-11-22 1:22 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='001101c82ca6$319c76b0$d5101252@JRWXP1' \
--to=richard.wordingham@ntlworld.com \
--cc=bug-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).