Right, I have finally undone the issue #18 change. It was a nice idea,
but I have not made it work.
This commit is contained in:
parent
c29a95b00d
commit
271b7da46a
10 changed files with 36 additions and 28 deletions
|
|
@ -59,7 +59,7 @@
|
|||
*/
|
||||
|
||||
struct pso_pointer
|
||||
bind_function(struct pso_pointer frame_pointer, char32_t *name, char32_t *doc,
|
||||
bind_function(struct pso_pointer frame_pointer, wchar_t *name, wchar_t *doc,
|
||||
struct pso_pointer (*executable)(struct pso_pointer)) {
|
||||
struct pso_pointer result = fetch_env(frame_pointer);
|
||||
struct pso_pointer n = c_string_to_lisp_symbol(frame_pointer, name);
|
||||
|
|
@ -94,7 +94,7 @@ bind_function(struct pso_pointer frame_pointer, char32_t *name, char32_t *doc,
|
|||
* this `name` in the `oblist`.
|
||||
*/
|
||||
struct pso_pointer
|
||||
bind_special(struct pso_pointer frame_pointer, char32_t *name, char32_t *doc,
|
||||
bind_special(struct pso_pointer frame_pointer, wchar_t *name, wchar_t *doc,
|
||||
struct pso_pointer (*executable)(struct pso_pointer)) {
|
||||
struct pso_pointer result = fetch_env(frame_pointer);
|
||||
struct pso_pointer n = c_string_to_lisp_symbol(frame_pointer, name);
|
||||
|
|
@ -125,8 +125,8 @@ bind_special(struct pso_pointer frame_pointer, char32_t *name, char32_t *doc,
|
|||
}
|
||||
|
||||
struct function_data {
|
||||
char32_t *name;
|
||||
char32_t *documentation;
|
||||
wchar_t *name;
|
||||
wchar_t *documentation;
|
||||
void *executable;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -287,8 +287,8 @@ wint_t url_fgetwc( URL_FILE *input ) {
|
|||
break;
|
||||
case CFTYPE_CURL:{
|
||||
char *cbuff =
|
||||
calloc( sizeof( char32_t ) + 2, sizeof( char ) );
|
||||
char32_t *wbuff = calloc( 2, sizeof( char32_t ) );
|
||||
calloc( sizeof( wchar_t ) + 2, sizeof( char ) );
|
||||
wchar_t *wbuff = calloc( 2, sizeof( wchar_t ) );
|
||||
size_t count = 0;
|
||||
debug_print( L"url_fgetwc: about to call url_fgets\n",
|
||||
DEBUG_IO, 0 );
|
||||
|
|
@ -409,7 +409,7 @@ struct pso_pointer lisp_close( struct pso_pointer frame_pointer) {
|
|||
}
|
||||
|
||||
struct pso_pointer add_meta_integer( struct pso_pointer frame_pointer,
|
||||
struct pso_pointer meta, char32_t *key,
|
||||
struct pso_pointer meta, wchar_t *key,
|
||||
long int value ) {
|
||||
return make_cons( frame_pointer,
|
||||
make_cons( frame_pointer,
|
||||
|
|
@ -420,10 +420,10 @@ struct pso_pointer add_meta_integer( struct pso_pointer frame_pointer,
|
|||
}
|
||||
|
||||
struct pso_pointer add_meta_string( struct pso_pointer frame_pointer,
|
||||
struct pso_pointer meta, char32_t *key,
|
||||
struct pso_pointer meta, wchar_t *key,
|
||||
char *value ) {
|
||||
value = trim( value );
|
||||
char32_t buffer[strlen( value ) + 1];
|
||||
wchar_t buffer[strlen( value ) + 1];
|
||||
mbstowcs( buffer, value, strlen( value ) + 1 );
|
||||
return make_cons( frame_pointer,
|
||||
make_cons( frame_pointer,
|
||||
|
|
@ -434,7 +434,7 @@ struct pso_pointer add_meta_string( struct pso_pointer frame_pointer,
|
|||
}
|
||||
|
||||
struct pso_pointer add_meta_time( struct pso_pointer frame_pointer,
|
||||
struct pso_pointer meta, char32_t *key,
|
||||
struct pso_pointer meta, wchar_t *key,
|
||||
time_t *value ) {
|
||||
return make_cons( frame_pointer,
|
||||
make_cons( frame_pointer,
|
||||
|
|
@ -465,7 +465,7 @@ static size_t write_meta_callback( struct pso_pointer frame_pointer,
|
|||
s[offset] = ( char ) 0;
|
||||
char *name = trim( s );
|
||||
char *value = trim( &s[++offset] );
|
||||
char32_t wname[strlen( name )];
|
||||
wchar_t wname[strlen( name )];
|
||||
mbstowcs( wname, name, strlen( name ) + 1 );
|
||||
object->payload.stream.meta =
|
||||
add_meta_string( frame_pointer, object->payload.stream.meta,
|
||||
|
|
@ -667,7 +667,7 @@ struct pso_pointer lisp_slurp( struct pso_pointer frame_pointer) {
|
|||
debug_dump_object( result, DEBUG_IO, 0 );
|
||||
debug_println( DEBUG_IO );
|
||||
struct pso2 *cell = pointer_to_object( cursor );
|
||||
cursor = make_string( frame_pointer, ( char32_t ) c, nil );
|
||||
cursor = make_string( frame_pointer, ( wchar_t ) c, nil );
|
||||
cell->payload.string.cdr = cursor;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ struct pso_pointer in_write( struct pso_pointer p, URL_FILE * output,
|
|||
* TODO: this does not yet even nearly cope with all the possible special
|
||||
* cases.
|
||||
*/
|
||||
void write_char( char32_t wc, URL_FILE *output, bool escape ) {
|
||||
void write_char( wchar_t wc, URL_FILE *output, bool escape ) {
|
||||
if ( escape && !iswprint( wc ) ) {
|
||||
url_fwprintf( output, L"\\%04x", wc );
|
||||
// url_fputwc(L'\\', output);
|
||||
|
|
@ -83,7 +83,7 @@ struct pso_pointer print_string_like_thing( struct pso_pointer p,
|
|||
if ( keywordp( p ) || stringp( p ) || symbolp( p ) ) {
|
||||
for ( struct pso_pointer cursor = p; !c_nilp( cursor );
|
||||
cursor = pointer_to_object( cursor )->payload.string.cdr ) {
|
||||
char32_t wc =
|
||||
wchar_t wc =
|
||||
pointer_to_object( cursor )->payload.string.character;
|
||||
|
||||
write_char( wc, output, escape );
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ struct pso_pointer read_number( struct pso_pointer frame_pointer ) {
|
|||
character =
|
||||
read_character( make_frame( 1, frame_pointer, stream ) );
|
||||
}
|
||||
char32_t c = c_nilp( character )
|
||||
wchar_t c = c_nilp( character )
|
||||
? 0 : pointer_to_object( character )->payload.character.character;
|
||||
|
||||
URL_FILE *input = pointer_to_object( stream )->payload.stream.stream;
|
||||
|
|
@ -173,7 +173,7 @@ struct pso_pointer read_symbol( struct pso_pointer frame_pointer ) {
|
|||
read_character( make_frame( 1, frame_pointer, stream ) );
|
||||
}
|
||||
|
||||
char32_t c = c_nilp( character )
|
||||
wchar_t c = c_nilp( character )
|
||||
? 0 : pointer_to_object( character )->payload.character.character;
|
||||
|
||||
URL_FILE *input = pointer_to_object( stream )->payload.stream.stream;
|
||||
|
|
@ -233,7 +233,7 @@ struct pso_pointer read( struct pso_pointer frame_pointer ) {
|
|||
if ( !c_nilp( readmacro ) ) {
|
||||
// invoke the read macro on the stream
|
||||
} else if ( readp( stream ) && characterp( character ) ) {
|
||||
char32_t c =
|
||||
wchar_t c =
|
||||
pointer_to_object( character )->payload.character.character;
|
||||
URL_FILE *input = pointer_to_object( stream )->payload.stream.stream;
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ struct pso_pointer get_tag_string( struct pso_pointer frame_pointer,
|
|||
for ( int i = 2 - 1; i >= 0; i-- ) {
|
||||
result =
|
||||
make_string( frame_pointer,
|
||||
( char32_t ) ( object->header.tag.bytes.mnemonic[i] ),
|
||||
( wchar_t ) ( object->header.tag.bytes.mnemonic[i] ),
|
||||
result );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ uint32_t calculate_hash( wint_t c, struct pso_pointer ptr ) {
|
|||
* pointer to next is nil.
|
||||
*
|
||||
* NOTE THAT: in 0.1.X, we may allocate symbols and keywords as arrays of
|
||||
* char32_t in larger pso classes, so this function may be only for strings
|
||||
* wchar_t in larger pso classes, so this function may be only for strings
|
||||
* (and thus simpler).
|
||||
*/
|
||||
struct pso_pointer make_string_like_thing( struct pso_pointer frame_pointer,
|
||||
|
|
@ -142,7 +142,7 @@ char *lisp_string_to_c_string( struct pso_pointer s ) {
|
|||
len++;
|
||||
}
|
||||
|
||||
wchar_t *buffer = calloc( len, sizeof( char32_t ) );
|
||||
wchar_t *buffer = calloc( len, sizeof( wchar_t ) );
|
||||
int i = 0;
|
||||
for ( struct pso_pointer c = s; !c_nilp( c ); c = c_cdr( c ) ) {
|
||||
buffer[i++] =
|
||||
|
|
@ -177,11 +177,11 @@ char *lisp_string_to_c_string( struct pso_pointer s ) {
|
|||
* symbols, I am accepting only lower case characters and certain punctuation.
|
||||
*/
|
||||
struct pso_pointer c_string_to_lisp_symbol( struct pso_pointer frame_pointer,
|
||||
char32_t *symbol ) {
|
||||
wchar_t *symbol ) {
|
||||
struct pso_pointer result = nil;
|
||||
|
||||
for ( int i = wcslen( symbol ) - 1; i >= 0; i-- ) {
|
||||
char32_t c = symbol[i];
|
||||
wchar_t c = symbol[i];
|
||||
|
||||
if ( symbol_char_p(c)) {
|
||||
result = make_symbol( frame_pointer, c, result );
|
||||
|
|
@ -196,11 +196,11 @@ struct pso_pointer c_string_to_lisp_symbol( struct pso_pointer frame_pointer,
|
|||
* keywords, I am accepting only lower case characters and numbers.
|
||||
*/
|
||||
struct pso_pointer c_string_to_lisp_keyword( struct pso_pointer frame_pointer,
|
||||
char32_t *symbol ) {
|
||||
wchar_t *symbol ) {
|
||||
struct pso_pointer result = nil;
|
||||
|
||||
for ( int i = wcslen( symbol ) - 1; i >= 0; i-- ) {
|
||||
char32_t c = towlower( symbol[i] );
|
||||
wchar_t c = towlower( symbol[i] );
|
||||
|
||||
if ( iswalnum( c ) || c == L'-' ) {
|
||||
result = make_keyword( frame_pointer, c, result );
|
||||
|
|
|
|||
|
|
@ -27,10 +27,10 @@ char *lisp_string_to_c_string( struct pso_pointer s );
|
|||
|
||||
|
||||
struct pso_pointer c_string_to_lisp_keyword( struct pso_pointer frame_pointer,
|
||||
char32_t * symbol );
|
||||
wchar_t * symbol );
|
||||
|
||||
struct pso_pointer c_string_to_lisp_symbol( struct pso_pointer frame_pointer,
|
||||
char32_t * symbol );
|
||||
wchar_t * symbol );
|
||||
|
||||
bool end_of_stringp(struct pso_pointer arg);
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ struct pso_pointer make_character( struct pso_pointer frame_pointer, wint_t c )
|
|||
|
||||
if ( !c_nilp( result ) ) {
|
||||
pointer_to_object( result )->payload.character.character =
|
||||
( char32_t ) c;
|
||||
( wchar_t ) c;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
* @brief a single character, as returned by the reader.
|
||||
*/
|
||||
struct character_payload {
|
||||
char32_t character;
|
||||
wchar_t character;
|
||||
};
|
||||
|
||||
struct pso_pointer make_character( struct pso_pointer frame_pointer,
|
||||
|
|
|
|||
8
src/sh/wchar_t_everywhere.sh
Normal file
8
src/sh/wchar_t_everywhere.sh
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
for file in src/c/*/*.[ch]
|
||||
do
|
||||
echo $file
|
||||
cp $file $file.bak
|
||||
sed 's/char32_t/wchar_t/g' $file.bak > $file
|
||||
done
|
||||
Loading…
Add table
Add a link
Reference in a new issue