all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Kenichi Handa <handa@m17n.org>
Cc: zslevin@gmail.com, emacs-devel@gnu.org
Subject: Re: bug of display-table & make-glyph-code
Date: Fri, 07 Sep 2007 11:47:17 +0300	[thread overview]
Message-ID: <uabryuaju.fsf@gnu.org> (raw)
In-Reply-To: <E1ITW7z-0004de-2Q@etlken.m17n.org> (message from Kenichi Handa on Fri, 07 Sep 2007 14:11:35 +0900)

> From: Kenichi Handa <handa@m17n.org>
> Date: Fri, 07 Sep 2007 14:11:35 +0900
> Cc: rgm@gnu.org, zslevin@gmail.com, rms@gnu.org, rudalics@gmx.at,
> 	emacs-devel@gnu.org
> 
> I started to study the glyph related codes, and ran into the
> function create-glyph (disp-table.el).  It is a strange
> function, and I don't understand how to utilize it.  Could
> someone please explain it?

I'm not sure what is there to explain, since the code looks quite
self-explanatory, if read in together with the "Glyphs" node in the
ELisp manual.  Perhaps I'm missing something; if the below doesn't
help, please ask specific questions.

`create-glyph' is used on a character terminal to create a glyph that
is displayed instead of some character C.  The way you use it is like
this:

  (aset standard-display-table c
	(vector (create-glyph (concat "\e(0" (char-to-string gc) "\e(B")))))

This sets up the slot for C in standard-display-table to send to the
terminal the string `(concat "\e(0" (char-to-string gc) "\e(B")))'
(where GC is a code of some other character).

standard-display-table needs an integer code of a glyph to put in the
slot used to display C.  Therefore, `create-glyph' returns such an
integer, which is an index into a glyph table.  In the glyph table,
the first 256 slots are left unused, to avoid affecting the ASCII and
unibyte non-ASCII ranges.  Starting from entry #256 (zero-based),
`create-glyph' adds a new entry for its argument (which is a string to
be sent to the terminal when a specific character is displayed), and
stores that string argument in glyph-table.

Thereafter, when character C is to be displayed, Emacs will look it up
in standard-display-table and see that its slot has a glyph index.
Emacs will then look up that index's slot in glyph-table, fetch the
string stored at that slot, and send the string to the terminal.
Presumably, the string uses character terminal escape sequences to
produce the desired effect, such as underlining the character etc.

Did I manage to answer your question?

  reply	other threads:[~2007-09-07  8:47 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-27  9:32 bug of display-table & make-glyph-code levin
2007-09-04 16:45 ` Richard Stallman
2007-09-04 18:09   ` martin rudalics
2007-09-04 19:08     ` Glenn Morris
2007-09-05  5:58       ` levin
2007-09-05  7:22         ` Glenn Morris
2007-09-05  8:22           ` Du Jingwu
2007-09-05 20:02         ` Richard Stallman
2007-09-05  6:16       ` Richard Stallman
2007-09-05  7:21         ` Glenn Morris
2007-09-05  8:08           ` martin rudalics
2007-09-05  8:37             ` Glenn Morris
2007-09-05  9:58               ` martin rudalics
2007-09-05 16:44                 ` Glenn Morris
2007-09-05 17:34                   ` martin rudalics
2007-09-06  5:29                     ` Glenn Morris
2007-09-06  8:49                       ` martin rudalics
2007-09-07  1:44                         ` Glenn Morris
2007-09-07  8:02                           ` martin rudalics
2007-09-07 17:48                             ` Glenn Morris
2007-09-08  8:52                               ` martin rudalics
2007-09-08  7:00                             ` Richard Stallman
2007-09-12  7:37                               ` Glenn Morris
2007-09-12  8:28                                 ` martin rudalics
2007-10-11 23:57                         ` dired-warning (was: bug of display-table & make-glyph-code) Juri Linkov
2007-10-12  7:06                           ` dired-warning martin rudalics
2007-10-14 21:21                             ` dired-warning Juri Linkov
2007-09-05 17:54                   ` bug of display-table & make-glyph-code Eli Zaretskii
2007-09-05  8:51             ` levin
2007-09-06  4:59               ` Richard Stallman
2007-09-05 10:08             ` frame resizing under KDE (was Re: bug of display-table & make-glyph-code) Stephen Berman
2007-09-05 17:42               ` martin rudalics
2007-09-06  6:17                 ` frame resizing under KDE (was Re: bug of display-table & make-glyph-code ) Levin
2007-09-06 12:01                 ` frame resizing under KDE Stephen Berman
2007-09-06  1:15             ` bug of display-table & make-glyph-code Chong Yidong
2007-09-06  9:09               ` martin rudalics
2007-09-06 14:08                 ` Stefan Monnier
2007-09-06 14:49                   ` martin rudalics
2007-09-06 20:34                     ` Stefan Monnier
2007-09-06 21:08                       ` martin rudalics
2007-09-07 17:45                         ` Stefan Monnier
2007-09-07 18:30                           ` martin rudalics
2007-09-07 20:25                             ` Stefan Monnier
2007-09-08  9:22                               ` display-buffer-change (was Re: bug of display-table & make-glyph-code) martin rudalics
2007-09-09 19:33                                 ` display-buffer-change Stefan Monnier
2007-09-09 21:42                                   ` display-buffer-change martin rudalics
2007-09-10  6:57                                     ` display-buffer-change David Kågedal
2007-09-10  8:31                                       ` display-buffer-change martin rudalics
2007-09-10  6:48                                 ` display-buffer-change David Kågedal
2007-09-10  8:00                                   ` display-buffer-change martin rudalics
2007-09-07  6:32                 ` bug of display-table & make-glyph-code Richard Stallman
2007-09-06  5:00           ` Richard Stallman
2007-09-06  5:27             ` Glenn Morris
2007-09-05  9:15         ` Kim F. Storm
2007-09-05 17:38           ` martin rudalics
2007-09-05 20:43             ` Kim F. Storm
2007-09-07  5:11           ` Kenichi Handa
2007-09-07  8:47             ` Eli Zaretskii [this message]
2007-09-07 12:25               ` Kenichi Handa
2007-09-07 18:37                 ` Eli Zaretskii
2007-09-08  7:00                 ` Richard Stallman
2007-09-10  2:43                   ` Kenichi Handa
2007-09-10  3:18                   ` Eli Zaretskii
2007-09-07 19:53             ` Richard Stallman
2007-09-10  1:12           ` Richard Stallman
2007-09-10  4:15             ` Kenichi Handa
2007-09-10  5:50               ` Stefan Monnier
2007-09-10  6:29                 ` Kenichi Handa
2007-09-10 11:51                 ` Kim F. Storm
2007-09-10 14:20                   ` Leo
2007-09-11 12:49                   ` Stefan Monnier
2007-09-11 20:30                   ` Richard Stallman
2007-09-11 21:50                     ` Kim F. Storm
2007-09-10 19:40               ` Eli Zaretskii
2007-09-11  0:28                 ` Kenichi Handa
2007-09-12  8:45                   ` Richard Stallman
2007-09-11 20:31                 ` Richard Stallman
2007-09-12  6:55                   ` Eli Zaretskii
2007-09-13 16:30                     ` Richard Stallman
2007-09-10 23:54               ` Richard Stallman
2007-09-11  0:09                 ` Drew Adams
2007-09-11  0:33                   ` Kenichi Handa
2007-09-11  1:24                     ` Drew Adams
2007-09-06  5:00 ` Richard Stallman

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=uabryuaju.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=handa@m17n.org \
    --cc=zslevin@gmail.com \
    /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.