emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: address@hidden: `set-locale-environment' bug]


From: Kenichi Handa
Subject: Re: address@hidden: `set-locale-environment' bug]
Date: Tue, 28 Oct 2003 16:14:53 +0900 (JST)
User-agent: SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/21.3 (sparc-sun-solaris2.6) MULE/5.0 (SAKAKI)

In article <address@hidden>, Richard Stallman <address@hidden> writes:

> can u work on this?
> ------- Start of forwarded message -------
> To: address@hidden
> From: Jesper Harder <address@hidden>
> Date: Mon, 27 Oct 2003 04:31:50 +0100
> Subject: `set-locale-environment' bug
[...]
> 1. Start Emacs in a en_US.iso88591 locale:

>    LANG=en_US.iso88591 emacs -q --no-site-file

> 2. Evaluate:

>    (setq standard-display-table nil)

> 3. Evaluating this expression:

>    (set-locale-environment)

> results in the following backtrace:

> Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
>   aset(nil 160 [160])
>   (if (and (>= l 32) (< l 127)) (aset standard-display-table l nil) (aset 
> standard-display-table l (vector l)))
>   (while (<= l h) (if (and ... ...) (aset standard-display-table l nil) (aset 
> standard-display-table l ...)) (setq l (1+ l)))
>   standard-display-8bit(160 255)

Several functions in disp-table.el
(e.g. standard-display-8bit, standard-display-default)
assume that standard-display-table is already a dispaly-table.

I've just added:
    (or standard-display-table
        (setq standard-display-table (make-display-table)))
to all such functions that modify standard-display-table.

> By the way, the node "(elisp)Active Display Table" states that the
> default value for `standard-display-table' is nil.

> This isn't correct since the default value depends on the locale -- it
> is non-nil in the above locale.

Right.  How about writing the info as below?

This variable's value is the default display table, used
whenever a window has no display table and neither does the
buffer displayed in that window.  This variable is usually
@code{nil}, but set to a proper display table when Emacs is
started in such locales that use a single byte character set
(e.g. en_US.iso88591).

---
Ken'ichi HANDA
address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]