| #ifndef __CSUTILHXX__ |
| #define __CSUTILHXX__ |
| |
| |
| /* First some base level utility routines */ |
| |
| /* remove end of line char(s) */ |
| void mychomp(char * s); |
| |
| /* duplicate string */ |
| char * mystrdup(const char * s); |
| |
| /* parse into tokens with char delimiter */ |
| char * mystrsep(char ** sptr, const char delim); |
| |
| |
| /* character encoding information */ |
| |
| struct cs_info { |
| unsigned char ccase; |
| unsigned char clower; |
| unsigned char cupper; |
| }; |
| |
| |
| struct enc_entry { |
| const char * enc_name; |
| struct cs_info * cs_table; |
| }; |
| |
| /* language to encoding default map */ |
| |
| struct lang_map { |
| const char * lang; |
| const char * def_enc; |
| }; |
| |
| struct cs_info * get_current_cs(const char * es); |
| |
| const char * get_default_enc(const char * lang); |
| |
| /* convert null terminated string to all caps using encoding */ |
| void enmkallcap(char * d, const char * p, const char * encoding); |
| |
| /* convert null terminated string to all little using encoding */ |
| void enmkallsmall(char * d, const char * p, const char * encoding); |
| |
| /* convert null terminated string to have intial capital using encoding */ |
| void enmkinitcap(char * d, const char * p, const char * encoding); |
| |
| /* convert null terminated string to all caps */ |
| void mkallcap(char * p, const struct cs_info * csconv); |
| |
| /* convert null terminated string to all little */ |
| void mkallsmall(char * p, const struct cs_info * csconv); |
| |
| /* convert null terminated string to have intial capital */ |
| void mkinitcap(char * p, const struct cs_info * csconv); |
| |
| |
| #endif |