Closes #18. Change to char32_t everywhere; builds fine, behaviour as before.
This commit is contained in:
parent
812a1be7d9
commit
c59825d7fe
33 changed files with 116 additions and 76 deletions
|
|
@ -66,7 +66,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
|
||||
* wchar_t in larger pso classes, so this function may be only for strings
|
||||
* char32_t in larger pso classes, so this function may be only for strings
|
||||
* (and thus simpler).
|
||||
*/
|
||||
struct pso_pointer make_string_like_thing( wint_t c, struct pso_pointer tail,
|
||||
|
|
@ -138,7 +138,7 @@ struct pso_pointer make_symbol( wint_t c, struct pso_pointer tail ) {
|
|||
/**
|
||||
* Return a lisp string representation of this wide character string.
|
||||
*/
|
||||
struct pso_pointer c_string_to_lisp_string( wchar_t *string ) {
|
||||
struct pso_pointer c_string_to_lisp_string( char32_t *string ) {
|
||||
struct pso_pointer result = nil;
|
||||
|
||||
for ( int i = wcslen( string ) - 1; i >= 0; i-- ) {
|
||||
|
|
@ -157,11 +157,11 @@ struct pso_pointer c_string_to_lisp_string( wchar_t *string ) {
|
|||
* Return a lisp symbol representation of this wide character string. In
|
||||
* symbols, I am accepting only lower case characters.
|
||||
*/
|
||||
struct pso_pointer c_string_to_lisp_symbol( wchar_t *symbol ) {
|
||||
struct pso_pointer c_string_to_lisp_symbol( char32_t *symbol ) {
|
||||
struct pso_pointer result = nil;
|
||||
|
||||
for ( int i = wcslen( symbol ) - 1; i >= 0; i-- ) {
|
||||
wchar_t c = towlower( symbol[i] );
|
||||
char32_t c = towlower( symbol[i] );
|
||||
|
||||
if ( iswalpha( c ) || c == L'-' || c == L'*' ) {
|
||||
result = make_symbol( c, result );
|
||||
|
|
@ -175,11 +175,11 @@ struct pso_pointer c_string_to_lisp_symbol( wchar_t *symbol ) {
|
|||
* Return a lisp keyword representation of this wide character string. In
|
||||
* keywords, I am accepting only lower case characters and numbers.
|
||||
*/
|
||||
struct pso_pointer c_string_to_lisp_keyword( wchar_t *symbol ) {
|
||||
struct pso_pointer c_string_to_lisp_keyword( char32_t *symbol ) {
|
||||
struct pso_pointer result = nil;
|
||||
|
||||
for ( int i = wcslen( symbol ) - 1; i >= 0; i-- ) {
|
||||
wchar_t c = towlower( symbol[i] );
|
||||
char32_t c = towlower( symbol[i] );
|
||||
|
||||
if ( iswalnum( c ) || c == L'-' ) {
|
||||
result = make_keyword( c, result );
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue