From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Composing Hebrew diacriticals Date: Sat, 08 May 2010 15:51:32 +0300 Message-ID: <83bpcqr1yj.fsf@gnu.org> References: <83mxwlw2c0.fsf@gnu.org> <83r5lqjkho.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org X-Trace: dough.gmane.org 1273323270 8566 80.91.229.12 (8 May 2010 12:54:30 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 8 May 2010 12:54:30 +0000 (UTC) Cc: emacs-devel@gnu.org To: Kenichi Handa Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat May 08 14:54:29 2010 connect(): No such file or directory Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OAjY4-0007Vr-UK for ged-emacs-devel@m.gmane.org; Sat, 08 May 2010 14:54:29 +0200 Original-Received: from localhost ([127.0.0.1]:49900 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OAjY4-0001BB-5g for ged-emacs-devel@m.gmane.org; Sat, 08 May 2010 08:54:28 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1OAjXz-0001Ao-FK for emacs-devel@gnu.org; Sat, 08 May 2010 08:54:23 -0400 Original-Received: from [140.186.70.92] (port=44287 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OAjXx-00019j-OE for emacs-devel@gnu.org; Sat, 08 May 2010 08:54:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OAjXw-0005o9-Ee for emacs-devel@gnu.org; Sat, 08 May 2010 08:54:21 -0400 Original-Received: from mtaout21.012.net.il ([80.179.55.169]:50341) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OAjXw-0005nz-7w for emacs-devel@gnu.org; Sat, 08 May 2010 08:54:20 -0400 Original-Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0L2300H00QBFBN00@a-mtaout21.012.net.il> for emacs-devel@gnu.org; Sat, 08 May 2010 15:53:32 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([84.229.0.144]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L2300E5XQH7N3A0@a-mtaout21.012.net.il>; Sat, 08 May 2010 15:53:32 +0300 (IDT) In-reply-to: X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:124634 Archived-At: > From: Kenichi Handa > Cc: emacs-devel@gnu.org > Date: Fri, 07 May 2010 20:15:03 +0900 > > > > (set-char-table-range > > > composition-function-table '(#x591 . #x5F4) > > > '(["[\u0591-\u05F4]+" 0 font-shape-gstring])) > > > > > > On Windows, I expect uniscribe already has capability to > > > handle that. > > > Thanks, but when I evaluate this expression and insert a consonant > > followed by a diacriticals, Emacs infloops. Do you think that this is > > something specific to uniscribe, or to how Emacs uses uniscribe? > > I'm not sure. I don't see infloops on GNU/Linux. But, > investigating it based on the current problematic code is a > waste of time. I'm not sure what problematic code you have in mind. I see the infinite loop without turning bidi-display-reordering on, and also in Emacs 23.2. In the debugger, I see that it loops inside move_it_in_display_line_to, because set_iterator_to_next does not advance to the next character. This happens because autocmp_chars and composition_update_it produce a cmp_it structure with this contents: (gdb) p *cmp_it $62 = { stop_pos = 308, id = 4, ch = 1489, lookback = 0, nglyphs = 1, nchars = 0, nbytes = 0, from = 0, to = 1, width = 0 } Since nchars and nbytes are zero, the iterator does not move. The character whose codepoint is 1489 is u+05d1, HEBREW LETTER BET. I typed that character, followed by a u+05bc, HEBREW POINT DAGESH, after evaluating the expression you suggested (see above). Emacs loops after I type the DAGESH. This code is almost 100% platform independent, except where font-shape-gstring calls Uniscribe. Since you don't see the loop, what could be the reason for that, if it's not something specific to Uniscribe? Did I do something wrong? Thanks.