Eli Zaretskii <eliz@gnu.org> schrieb am So., 6. März 2016 um 16:54 Uhr:
> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Sun, 06 Mar 2016 15:24:47 +0000
>
> I've attached a patch with an initial implementation.

Thanks.

> +/* Hash table that maps Unicode character names to code points.  */
> +static Lisp_Object character_names;
> +
> +/* Length of the longest Unicode character name, in bytes. */
> +static ptrdiff_t max_character_name_length;
> +
> +/* Initializes `character_names' and `max_character_name_length'.
> +   Called by `read_escape'.  */

I wonder if there's a better way, in particular with a smaller memory
footprint.  Doesn't map-char-table work well enough to avoid
generating all the names up front?

It doesn't seem to work; for some reason the Unicode name table appears very small (only 136 code points) when map-char-table is called from C and lacks most characters.
 

> +        if (! RANGED_INTEGERP (0, code, 0x10FFFF))

This should use MAX_UNICODE_CHAR.


Done, attached a new patch.