mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-15 16:20:17 +02:00
Add 32-bit characters
This adds the 32-bit standalone characters. Strings are still 8-bit. Characters larger than 8-bit can only be entered or displayed in octal format at this point. At this point, the terminal's display encoding is expected to be Latin-1. * module/language/assembly/compile-bytecode.scm (write-bytecode): add 32-bit char * module/language/assembly.scm (object->assembly): add 32-bit char (assembly->object): add 32-bit char * libguile/vm-i-system.c (make-char32): new op * libguile/print.c (iprin1): print 32-bit char * libguile/numbers.h: add type scm_t_wchar * libguile/numbers.c: add type scm_t_wchar * libguile/chars.h: new type scm_t_wchar (SCM_CODEPOINT_MAX): new (SCM_IS_UNICODE_CHAR): new (SCM_MAKE_CHAR): operate on 32-bit char * libguile/chars.c: comparison operators now use Unicode codepoints (scm_c_upcase): now receives and returns scm_t_wchar (scm_c_downcase): now receives and returns scm_t_wchar
This commit is contained in:
parent
77332b21a0
commit
904a78f11d
8 changed files with 126 additions and 43 deletions
|
@ -5863,6 +5863,14 @@ scm_i_range_error (SCM bad_val, SCM min, SCM max)
|
|||
#define SCM_FROM_TYPE_PROTO(arg) scm_from_uint32 (arg)
|
||||
#include "libguile/conv-uinteger.i.c"
|
||||
|
||||
#define TYPE scm_t_wchar
|
||||
#define TYPE_MIN (scm_t_int32)-1
|
||||
#define TYPE_MAX (scm_t_int32)0x10ffff
|
||||
#define SIZEOF_TYPE 4
|
||||
#define SCM_TO_TYPE_PROTO(arg) scm_to_wchar (arg)
|
||||
#define SCM_FROM_TYPE_PROTO(arg) scm_from_wchar (arg)
|
||||
#include "libguile/conv-integer.i.c"
|
||||
|
||||
#if SCM_HAVE_T_INT64
|
||||
|
||||
#define TYPE scm_t_int64
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue