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
|
|
@ -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 );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue