/* * add_one_to_uid * * inputs - index number into new_uid * output - NONE * side effects - new_uid is incremented by one * note this is a recursive function */ static void add_one_to_uid(unsigned int i) { if (i < IRC_MAXSID) return; if (new_uid[i] == 'Z') new_uid[i] = '0'; else if (new_uid[i] == '9') { new_uid[i] = 'A'; add_one_to_uid(i - 1); } else ++new_uid[i]; }
static void add_one_to_uid(unsigned int i) { if (i != strlen(me.numeric)) /* Not reached server SID portion yet? */ { if (new_uid[i] == 'Z') new_uid[i] = '0'; else if (new_uid[i] == '9') { new_uid[i] = 'A'; add_one_to_uid(i - 1); } else new_uid[i] = new_uid[i] + 1; } else { if (new_uid[i] == 'Z') for (i = strlen(me.numeric); i < 9; i++) new_uid[i] = 'A'; else new_uid[i] = new_uid[i] + 1; } }
/* * uid_get * * inputs - struct Client * * output - new UID is returned to caller * side effects - new_uid is incremented by one. */ const char * uid_get(void) { add_one_to_uid(TOTALSIDUID - 1); /* Index from 0 */ return new_uid; }
static const char *base36_uid_get(void) { add_one_to_uid(uindex - 1); /* index from 0 */ return (new_uid); }