Many more ops written, and it compiles. Nothing works yet.
This commit is contained in:
parent
f5f8e38b91
commit
c9f50572ab
17 changed files with 290 additions and 71 deletions
|
|
@ -114,7 +114,7 @@ char *lisp_string_to_c_string( struct pso_pointer s ) {
|
|||
if ( stringp( s ) || symbolp( s ) ) {
|
||||
int len = 0;
|
||||
|
||||
for ( struct pso_pointer c = s; !nilp( c ); c = cdr( c ) ) {
|
||||
for ( struct pso_pointer c = s; !nilp( c ); c = c_cdr( c ) ) {
|
||||
len++;
|
||||
}
|
||||
|
||||
|
|
@ -123,7 +123,7 @@ char *lisp_string_to_c_string( struct pso_pointer s ) {
|
|||
result = calloc( ( len * 4 ) + 1, sizeof( char ) );
|
||||
|
||||
int i = 0;
|
||||
for ( struct pso_pointer c = s; !nilp( c ); c = cdr( c ) ) {
|
||||
for ( struct pso_pointer c = s; !nilp( c ); c = c_cdr( c ) ) {
|
||||
buffer[i++] = pointer_to_object( c )->payload.string.character;
|
||||
}
|
||||
|
||||
|
|
@ -286,8 +286,8 @@ struct pso_pointer push_back_character( struct pso_pointer c,
|
|||
|
||||
if ( characterp( c ) && readp( r ) ) {
|
||||
if ( url_ungetwc( ( wint_t )
|
||||
( pointer_to_object( c )->payload.character.
|
||||
character ),
|
||||
( pointer_to_object( c )->payload.
|
||||
character.character ),
|
||||
pointer_to_object( r )->payload.stream.stream ) >=
|
||||
0 ) {
|
||||
result = t;
|
||||
|
|
@ -315,8 +315,8 @@ lisp_close( struct pso_pointer frame_pointer, struct pso_pointer env ) {
|
|||
|
||||
if ( readp( fetch_arg( frame, 0 ) ) || writep( fetch_arg( frame, 0 ) ) ) {
|
||||
if ( url_fclose
|
||||
( pointer_to_object( fetch_arg( frame, 0 ) )->payload.
|
||||
stream.stream )
|
||||
( pointer_to_object( fetch_arg( frame, 0 ) )->payload.stream.
|
||||
stream )
|
||||
== 0 ) {
|
||||
result = t;
|
||||
}
|
||||
|
|
@ -328,8 +328,7 @@ lisp_close( struct pso_pointer frame_pointer, struct pso_pointer env ) {
|
|||
struct pso_pointer add_meta_integer( struct pso_pointer meta, wchar_t *key,
|
||||
long int value ) {
|
||||
return
|
||||
cons( cons
|
||||
( c_string_to_lisp_keyword( key ),
|
||||
c_cons( c_cons( c_string_to_lisp_keyword( key ),
|
||||
make_integer( value ) ), meta );
|
||||
}
|
||||
|
||||
|
|
@ -339,7 +338,7 @@ struct pso_pointer add_meta_string( struct pso_pointer meta, wchar_t *key,
|
|||
wchar_t buffer[strlen( value ) + 1];
|
||||
mbstowcs( buffer, value, strlen( value ) + 1 );
|
||||
|
||||
return cons( cons( c_string_to_lisp_keyword( key ),
|
||||
return c_cons( c_cons( c_string_to_lisp_keyword( key ),
|
||||
c_string_to_lisp_string( buffer ) ), meta );
|
||||
}
|
||||
|
||||
|
|
@ -570,8 +569,8 @@ lisp_read_char( struct pso_pointer frame_pointer, struct pso_pointer env ) {
|
|||
if ( readp( fetch_arg( frame, 0 ) ) ) {
|
||||
result =
|
||||
make_string( url_fgetwc
|
||||
( pointer_to_object( fetch_arg( frame, 0 ) )->payload.
|
||||
stream.stream ), nil );
|
||||
( pointer_to_object( fetch_arg( frame, 0 ) )->
|
||||
payload.stream.stream ), nil );
|
||||
}
|
||||
|
||||
return result;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue