From 904a78f11d2d11a58d5df365a44c4fbbd4c96df3 Mon Sep 17 00:00:00 2001 From: Michael Gran Date: Wed, 29 Jul 2009 06:38:32 -0700 Subject: 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 --- module/language/assembly/compile-bytecode.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'module/language/assembly/compile-bytecode.scm') diff --git a/module/language/assembly/compile-bytecode.scm b/module/language/assembly/compile-bytecode.scm index bf6c5f7b5..bed0fb2dc 100644 --- a/module/language/assembly/compile-bytecode.scm +++ b/module/language/assembly/compile-bytecode.scm @@ -122,6 +122,7 @@ ;; meets the alignment requirements of `scm_objcode'. See ;; `scm_c_make_objcode_slice ()'. (write-bytecode meta write get-addr '())))) + ((make-char32 ,x) (write-uint32-be x)) ((load-unsigned-integer ,str) (write-loader str)) ((load-integer ,str) (write-loader str)) ((load-number ,str) (write-loader str)) -- cgit v1.2.3