unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Kenichi Handa <handa@m17n.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-bidi@gnu.org, emacs-devel@gnu.org, jasonr@gnu.org
Subject: Re: Arabic support
Date: Thu, 02 Sep 2010 22:01:07 +0900	[thread overview]
Message-ID: <tl7tym8z4do.fsf@m17n.org> (raw)
In-Reply-To: <E1Or8Lz-0004if-He@fencepost.gnu.org> (message from Eli Zaretskii on Thu, 02 Sep 2010 07:53:15 -0400)

In article <E1Or8Lz-0004if-He@fencepost.gnu.org>, Eli Zaretskii <eliz@gnu.org> writes:

> Where can I find the code which decides how to break text into
> LGSTRINGs?  I'd like to see such code for both Arabic and Hebrew,
> unless it's the same code.

A not-yet-shaped LGSTRING is created by autocmp_chars
(composite.c) from a character sequence matching with a
regular expression PATTERN stored in a
composition-function-table.  This pattern is
"[\u0600-\u06FF]+" for Arabic (lisp/language/misc-lang.el),
and a more complicated regex for Hebrew
(lisp/language/hebrew.el).

> For example, can characters like digits or other neutrals be included
> in the same LGSTRING with Arabic and Hebrew?  Or will an LGSTRING
> always include characters from one script only?

LGSTRING always includes characters of the same font.  So,
even if you wrote PATTERN to include the other neutrals, if
a user's font setting (or environment) decides to user a
different font for those neutrals, they are not included in
LGSTRING.  By default, Emacs tries to use the same font for
characters in the same script.

In addition, even if you setup fonts to use the same font
for, for instance, Hebrew and those neutrals, "shape" method
of a font-backend may not support them.  In that case, the
composition fails anyway.

> I'm asking because it's possible that we will need to modify
> w32uniscribe.c to reorder R2L characters before we pass them to the
> Uniscribe ScriptShape API, to let it see the characters in the logical
> order it expects them.  That's if it turns out that Uniscribe cannot
> otherwise shape them correctly.

??? Currently characters and glyphs in LGSTRING are always
in logical order.  A "shape" method should also shape that
LGSTRING in logical order.

---
Kenichi Handa
handa@m17n.org

  parent reply	other threads:[~2010-09-02 13:01 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-26  1:10 Arabic support Kenichi Handa
2010-08-27  9:56 ` Eli Zaretskii
2010-08-28 10:15   ` Amit Aronovitch
2010-08-29  5:07     ` James Cloos
2010-08-29  5:13     ` James Cloos
2010-08-30  2:07     ` Kenichi Handa
2010-08-30 13:42       ` Amit Aronovitch
2010-08-30 14:11         ` [emacs-bidi] " Amit Aronovitch
2010-09-03  7:35           ` Kenichi Handa
2010-09-03  7:54             ` [emacs-bidi] " Amit Aronovitch
2010-09-01  2:55         ` Kenichi Handa
2010-09-01  4:58           ` Eli Zaretskii
2010-09-01  5:06             ` Kenichi Handa
2010-09-01  7:12           ` [emacs-bidi] " Stefan Monnier
2010-09-03  7:17             ` Kenichi Handa
2010-08-30  7:47   ` Kenichi Handa
2010-08-30 14:06     ` Eli Zaretskii
2010-09-01  2:17       ` Kenichi Handa
2010-09-01  3:47         ` "Martin J. Dürst"
2010-09-02  7:45           ` 大嶋 俊祐
2010-09-02  9:31             ` Eli Zaretskii
2010-09-02 12:58               ` "Martin J. Dürst"
2010-09-02 14:13                 ` [emacs-bidi] " Eli Zaretskii
2010-09-01  6:11         ` Eli Zaretskii
2010-09-01  7:08           ` Kenichi Handa
2010-09-01 17:55             ` Eli Zaretskii
2010-09-02  2:13               ` Jason Rumney
2010-09-02 11:53             ` Eli Zaretskii
2010-09-02 12:00               ` Eli Zaretskii
2010-09-02 13:09                 ` [emacs-bidi] " Jason Rumney
2010-09-02 14:29                   ` Eli Zaretskii
2010-09-02 14:37                     ` [emacs-bidi] " Jason Rumney
2010-09-02 13:01               ` Kenichi Handa [this message]
2010-09-02 14:04                 ` Eli Zaretskii
2010-09-03  1:00                   ` Kenichi Handa
2010-09-03  9:16                     ` Eli Zaretskii
2010-09-03 10:18                       ` David Kastrup
2010-09-03 11:08                       ` Kenichi Handa
2010-09-03 14:54                         ` Eli Zaretskii
2010-09-03 13:25                     ` Eli Zaretskii
2010-09-03 14:32                       ` Amit Aronovitch
2010-09-03 14:43                         ` Eli Zaretskii
2010-09-04  7:13                       ` Eli Zaretskii
2010-09-06  6:04                         ` Kenichi Handa
2010-09-04 15:29                     ` Eli Zaretskii
2010-09-02 13:48       ` Jason Rumney
2010-09-02 14:49         ` Eli Zaretskii
2010-09-06 13:45   ` Thamer Mahmoud
2010-09-07  4:22     ` TAKAHASHI Naoto
  -- strict thread matches above, loose matches on Subject: below --
2010-09-07 15:08 mhibti
2010-09-13  6:40 ` Eli Zaretskii
2010-09-16  2:07   ` Kenichi Handa
2010-09-22  3:54     ` Kenichi Handa
2010-09-22 12:27       ` Thamer Mahmoud

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=tl7tym8z4do.fsf@m17n.org \
    --to=handa@m17n.org \
    --cc=eliz@gnu.org \
    --cc=emacs-bidi@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=jasonr@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).