strCaseCmp() will give incorrect results if one string is a chopped version of the other string.
Empty strings will match anything.
Replace strCaseCmp() in menu.c and text.c with the supplied code.
why is there a cast like
toupper((unsigned char)*c1) ?
toupper() is supposed to take an int, doesn't it?
toupper((unsigned char)*c1) is used so char values larger than 127 don't sign extend to negative numbers. On most C compilers char is signed.
This is important with toupper() since many implementations use a char array for the mapping. A negative index would map outside the array.
It's in the main codeline now.