all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "समीर सिंह Sameer Singh" <lumarzeli30@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Po Lu <luangruo@yahoo.com>,
	emacs-devel@gnu.org, Richard Stallman <rms@gnu.org>
Subject: Re: Implementing Vertical Text support in Emacs
Date: Fri, 17 Jun 2022 07:13:33 +0530	[thread overview]
Message-ID: <CAOR1sLx8V41REsa01h0jMjXXCWwivvfgr=Jcj+k1awYWMt87Dw@mail.gmail.com> (raw)
In-Reply-To: <E1o1yHl-0006R5-75@fencepost.gnu.org>

[-- Attachment #1: Type: text/plain, Size: 3107 bytes --]

Thanks for such a detailed response.

Start by reading the large commentary at the beginning of xdisp.c,
> which providers a general overview of the display engine and its basic
> structure and algorithms.  After you digest that, we'd need to talk
> about the details, because they are non-trivial.  Let me show you the
> tip of the iceberg (and it could be that what I say below won't make
> sense until you read that commentary).
>

I have read the full commentary and have understood it somewhat, but at
least I can understand what you have written later.
Maybe while writing the implementation it will make more sense.

Then there will be issues with scrolling: do we swap horizontal and
> vertical scrolling for vertical-layout text, or do we keep the scroll
> direction (in which case we need to decide what it means to scroll up
> or down)?
>

I think we should swap horizontal and vertical scrolling.
For a reference see this website: wikibilig.mn/

AFAIU, some vertical scripts are written in rows left-to-right and
> some right-to-left, so you actually have 2 different layouts on your
> hands.
>

Scripts like Mongolian are written only in one direction: ltr, but CJK
characters are bidirectional i.e.
they can either be written from ltr or from rtl .How should we support that?

This is an even tougher issue.  Is support for such mixed scripts a
> necessity without which the entire feature won't make sense?  If not,
> I'd suggest to limit yourself to either vertical or horizontal layout,
> leaving the mix of the two unsupported for starters.  If mixing them
> is a must, everything I said above needs to be rethought, and it could
> even be that the current design of the display engine simply cannot be
> extended to support that.
>

Yeah, I should not mix them.

Do vertical-layout scripts require complex text shaping
> (a.k.a. "character composition")?  If so, does HarfBuzz support such
> scripts and their corresponding fonts?  I don't know.  We may need a
> different shaping engine (if one exists).
>

Yes they require complex text shaping and Harfbuzz supports it.
I even had a Mongolian patch ready but accidently deleted my emacs source
directory. :(

Also how would I test the new changes I would make in xdisp.c?

Thanks.

On Fri, Jun 17, 2022 at 4:18 AM Richard Stallman <rms@gnu.org> wrote:

> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
>   > Wouldn't it be better to support vertical text in Emacs,
>
> In a world in which we had an infinite supply of very good programmers
> working on Emacs, it would be better to support vertical text.
>
> But in the actual world, we need to ask whether it is worth the cost,
> and whether some other feature would be more worth while.
>
> --
> Dr Richard Stallman (https://stallman.org)
> Chief GNUisance of the GNU Project (https://gnu.org)
> Founder, Free Software Foundation (https://fsf.org)
> Internet Hall-of-Famer (https://internethalloffame.org)
>
>
>

[-- Attachment #2: Type: text/html, Size: 4939 bytes --]

  reply	other threads:[~2022-06-17  1:43 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-13 15:29 Implementing Vertical Text support in Emacs समीर सिंह Sameer Singh
2022-06-13 16:16 ` [External] : " Drew Adams
2022-06-13 16:30 ` Eli Zaretskii
2022-06-15 10:08   ` Richard Stallman
2022-06-15 10:22     ` Po Lu
2022-06-15 11:09       ` समीर सिंह Sameer Singh
2022-06-16 22:48         ` Richard Stallman
2022-06-17  1:43           ` समीर सिंह Sameer Singh [this message]
2022-06-17  6:12             ` Eli Zaretskii
2022-09-08 18:44               ` समीर सिंह Sameer Singh
2022-09-08 19:05                 ` Eli Zaretskii
2022-09-10 15:53                   ` समीर सिंह Sameer Singh
2022-09-10 16:17                     ` Eli Zaretskii
2022-09-29 19:57                       ` समीर सिंह Sameer Singh
2022-09-30  6:30                         ` Eli Zaretskii
2022-11-20 11:18                           ` समीर सिंह Sameer Singh
2022-11-20 11:43                             ` Eli Zaretskii
2022-11-20 12:08                               ` समीर सिंह Sameer Singh
2022-11-24 11:39                                 ` Eli Zaretskii

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAOR1sLx8V41REsa01h0jMjXXCWwivvfgr=Jcj+k1awYWMt87Dw@mail.gmail.com' \
    --to=lumarzeli30@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=luangruo@yahoo.com \
    --cc=rms@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 external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.