unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* Lao Tonemarks Not Composing with Consonants
@ 2007-11-22  1:22 Richard Wordingham
  0 siblings, 0 replies; only message in thread
From: Richard Wordingham @ 2007-11-22  1:22 UTC (permalink / raw)
  To: bug-gnu-emacs

'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




^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-11-22  1:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-22  1:22 Lao Tonemarks Not Composing with Consonants Richard Wordingham

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).