diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/Unix/Clean.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/main/Unix/Clean.h b/main/Unix/Clean.h index 1508c1b..8bc1118 100644 --- a/main/Unix/Clean.h +++ b/main/Unix/Clean.h @@ -5,24 +5,22 @@ typedef struct clean_string *CleanString; /* a string in Clean is: struct clean_string { - int clean_string_length; + unsigned long clean_string_length; char clean_string_characters[clean_string_length]; }; The string does not end with a '\0' ! */ -/* CleanStringLength(clean_string) returns length of the clean_string in characters */ -#define CleanStringLength(clean_string) (*(unsigned int *)(clean_string)) +/* CleanStringLength(clean_string) returns the length of the clean_string in characters */ +#define CleanStringLength(clean_string) (*(unsigned long *)(clean_string)) /* CleanStringCharacters(clean_string) returns a pointer to the characters of the clean_string */ -#define CleanStringCharacters(clean_string) ((char*)(1+(unsigned int *)(clean_string))) +#define CleanStringCharacters(clean_string) ((char*)(1+(unsigned long *)(clean_string))) /* CleanStringSizeInts(string_length) return size of CleanString in integers */ -#define CleanStringSizeInts(string_length) (1+(((unsigned int)(string_length)+3)>>2)) +#define CleanStringSizeInts(string_length) (1+(((unsigned long)(string_length)+(sizeof(unsigned long)-1))>>(1+(sizeof(unsigned long)>>2)))) /* CleanStringVariable(clean_string,string_length) defines variable clean_string with length string_length, before using the clean_string variable, cast to CleanString, except for the macros above */ -#define CleanStringVariable(clean_string,string_length) unsigned int clean_string[CleanStringSizeInts(string_length)] +#define CleanStringVariable(clean_string,string_length) unsigned long clean_string[CleanStringSizeInts(string_length)] -/* CleanStringSizeBytes(string_length) return size of CleanString in bytes */ -#define CleanStringSizeBytes(string_length) (4+(((unsigned int)(string_length)+3) & -4)) |