   Question about Allegro
  void register_uformat(int type, int (*u_getc)(const char *s), int (*u_getx)(char **s), int (*u_setc)(char *s, int c), int (*u_width)(const char *s), int (*u_cwidth)(int c), int (*u_isok)(int c));Installs a set of custom handler functions for a new text encoding format. The `type' is the ID code for your new format, which should be a 4-character string as produced by the AL_ID() macro, and which can later be passed to functions like set_uformat() and uconvert(). The function parameters are handlers that implement the character access for your new typeI want to add some new text encoding formatsbut I really can`t figure out how to do that followed the instruction above.can anyone tell some details?This is the declarationAL_FUNC(void, register_uformat, (int type, AL_METHOD(int, u_getc, (AL_CONST char *s)), AL_METHOD(int, u_getx, (char **s)), AL_METHOD(int, u_setc, (char *s, int c)), AL_METHOD(int, u_width, (AL_CONST char *s)), AL_METHOD(int, u_cwidth, (int c)), AL_METHOD(int, u_isok, (int c)), int u_width_max));   
  Skimming through the manual, it seems you have to write 6 functions that handle access to your format, and pass them as function pointers to the register_uformat(...) function. As to what these functions have to do, take a look at the corresponding unicode routines (ugetc, ugetx etc) in the allegro manual, and reimplement these for your own format.In any case, I will direct you to the allegro.cc comunity forums where you would get a much more detailed answer (and probably get someone to write a patch to clarify the docs).EDIT: Managed to mess up the hyperlinks...   ;#define my_id  AL_ID('A','B','C','D')int my_u_getc(const char *s) { return 0; }int my_u_getx(char **s) { return 0; }int my_u_setc(char *s, int c) { return 0; }int my_u_width(const char *s) { return 0; }int my_u_cwidth(int c) { return 0; }int my_u_isok(int c) { return 0; }int main(){  register_uformat(my_id, my_u_getc, my_u_getx, my_u_setc, my_u_width, my_u_cwidth, my_u_isok);  set_uformat(my_id);  allegro_init();}See the u_* functions to see what they are supposed to do.   