static void CHEAT_gets(char *s, int size) { char* lpt = NULL; // // // MDFND_LockMutex(CheatMutex); while(!pending_text && !need_thread_exit) { MDFND_WaitCond(CheatCond, CheatMutex); } lpt = pending_text; pending_text = NULL; MDFND_UnlockMutex(CheatMutex); // // // if(lpt) { strncpy(s, lpt, size - 1); s[size - 1] = 0; free(lpt); CheatConsole.AppendLastLine(s); } if(need_thread_exit) { puts("WHEEE"); throw(0); // Sloppy laziness, but it works! SWEAT PANTS OF PRAGMATISM. } }
static void CHEAT_gets(char *s, int size) { SDL_mutexP(CheatMutex); while(!pending_text) { SDL_mutexV(CheatMutex); SDL_Delay(5); SDL_mutexP(CheatMutex); } strncpy(s, pending_text, size - 1); s[size - 1] = 0; free(pending_text); pending_text = NULL; CheatConsole.AppendLastLine((UTF8*)s); SDL_mutexV(CheatMutex); }