Closes #18. Change to char32_t everywhere; builds fine, behaviour as before.

This commit is contained in:
Simon Brooke 2026-04-20 12:10:38 +01:00
parent 812a1be7d9
commit c59825d7fe
33 changed files with 116 additions and 76 deletions

View file

@ -10,6 +10,7 @@
/*
* wide characters
*/
#include <uchar.h>
#include <wchar.h>
#include <wctype.h>
@ -28,7 +29,7 @@ struct pso_pointer make_character( wint_t c ) {
if ( !nilp( result ) ) {
pointer_to_object( result )->payload.character.character =
( wchar_t ) c;
( char32_t ) c;
}
return result;

View file

@ -22,6 +22,7 @@
/*
* wide characters
*/
#include <uchar.h>
#include <wchar.h>
#include <wctype.h>
@ -33,7 +34,7 @@
* @brief a single character, as returned by the reader.
*/
struct character_payload {
wchar_t character;
char32_t character;
};
struct pso_pointer make_character( wint_t c );

View file

@ -30,7 +30,8 @@
* @param cdr the pointer which should form the cdr of this cons cell.
* @return struct pso_pointer a pointer to the newly allocated cons cell.
*/
struct pso_pointer c_cons( struct pso_pointer car, struct pso_pointer cdr ) {
struct pso_pointer c_cons(struct pso_pointer car, struct pso_pointer cdr) {
// todo: issue #21: must have stack frame passed in.
struct pso_pointer result = allocate( CONSTAG, 2 );
struct pso2 *object = pointer_to_object( result );
@ -67,7 +68,8 @@ struct pso_pointer c_car( struct pso_pointer cons ) {
* @return the cdr of the indicated cell.
* @exception if the pointer does not indicate a cons cell.
*/
struct pso_pointer c_cdr( struct pso_pointer p ) {
struct pso_pointer c_cdr(struct pso_pointer p) {
// todo: issue #21: must have stack frame passed in.
struct pso_pointer result = nil;
struct pso2 *object = pointer_to_object( p );

View file

@ -30,6 +30,7 @@ struct pso_pointer c_car( struct pso_pointer cons );
struct pso_pointer c_cdr( struct pso_pointer cons );
// todo: issue #21: must have stack frame passed in.
struct pso_pointer c_cons( struct pso_pointer car, struct pso_pointer cdr );
struct pso_pointer destroy_cons( struct pso_pointer fp,

View file

@ -33,6 +33,7 @@
*/
struct pso_pointer make_frame( int arg_count, struct pso_pointer previous,
... ) {
// todo: issue #21: must have stack frame passed in.
va_list args;
va_start( args, previous );