GNU bug report logs - #13691
24.3.50; Problem with glyphs in unibyte buffers

Previous Next

Package: emacs;

Reported by: Eduardo Ochs <eduardoochs <at> gmail.com>

Date: Tue, 12 Feb 2013 01:42:02 UTC

Severity: normal

Found in version 24.3.50

Done: Stefan Kangas <stefan <at> marxist.se>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Kangas <stefan <at> marxist.se>
To: Eduardo Ochs <eduardoochs <at> gmail.com>
Cc: Andreas Schwab <schwab <at> linux-m68k.org>, 13691 <at> debbugs.gnu.org
Subject: bug#13691: 24.3.50; Problem with glyphs in unibyte buffers
Date: Mon, 31 Aug 2020 02:32:32 +0000
Hi Eduardo,

You sent the below description to the Emacs bug list 7 years ago.

The email you sent is quite long, and I'm not sure what exactly the
issue is, or how to try to reproduce it.

Can you reproduce the issue on a recent version of Emacs, such as the
recently released version 27.1?

If yes, could you please provide a minimal step-by-step recipe for
reproducing it, starting from "emacs -Q"?

If I don't hear back from you within a couple of weeks, I'll just
close this bug as unreproducible.

Thanks in advance.

Best regards,
Stefan Kangas

Eduardo Ochs <eduardoochs <at> gmail.com> writes:

> Hi Andreas,
>
> On Tue, Feb 12, 2013 at 7:02 AM, Andreas Schwab <schwab <at> linux-m68k.org> wrote:
>>
>> Unibyte characters are in the eight-bit charset, so you need to set the
>> display of the corresponding character in that charset, eg. (make-char
>> 'eight-bit 171).
>
> Thanks, that worked!
>
> Now for something slightly trickier... =|
>
> Let's start by using several simple, low-level functions, one for
> each range... a smarter function with `cond's can be left for
> later. The code below makes the green guillemets work both in
> unibyte and multibyte buffers,
>
>   (defun eepitch-set-glyph (pos &optional char face)
>     (aset standard-display-table pos
> 	  (if char (vector (make-glyph-code char face)))))
>
>   (defun eepitch-set-glyph-8bit (pos &optional char face)
>     (aset standard-display-table (make-char 'eight-bit pos)
> 	  (if char (vector (make-glyph-code char face)))))
>
>   (if (not standard-display-table)
>       (setq standard-display-table (make-display-table))
>     )
>
>   (defface eev-glyph-face-green '((t :foreground "green")) "")
>   (eepitch-set-glyph      171 171 'eev-glyph-face-green)
>   (eepitch-set-glyph-8bit 171 171 'eev-glyph-face-green)
>   (eepitch-set-glyph      187 187 'eev-glyph-face-green)
>   (eepitch-set-glyph-8bit 187 187 'eev-glyph-face-green)
>
> but now suppose that we want the char 191 to be displayed as a
> blue nabla (unicode: 8711). Running
>
>   (defface eev-glyph-face-math  '((t :foreground "RoyalBlue2"
> 				     :background "gray20")) "")
>   (eepitch-set-glyph      191 8711 'eev-glyph-face-math)
>   (eepitch-set-glyph-8bit 191 8711 'eev-glyph-face-math)
>
> _almost_ does the job, but look at the new screenshot - it seems
> that the `char' argument in `eepitch-set-glyph-8bit' needs some
> translation too... is that right? Which translation?
>
>   Cheers, and thanks in advance again...
>     Eduardo Ochs
>     eduardoochs <at> gmail.com
>     http://angg.twu.net/#eev




This bug report was last modified 4 years and 144 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.