static void
-Curses_ShowMessage(char *s)
+_vprintw(const char *format, va_list ap)
{
+ static char buffer[60];
+ vsnprintf(buffer, sizeof(buffer), format, ap);
+ printw("%s", buffer);
+}
+
+static void
+Curses_ShowMessage(char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
gotoXY(TAB, 6);
- printw("%s", s);
+ _vprintw(format, ap);
+ va_end(ap);
ClearEoln();
}
-
static void
Curses_AlwaysShowMessage(const char *format, ...)
{
- static char buffer[60];
va_list ap;
va_start(ap, format);
- vsnprintf(buffer, sizeof(buffer), format, ap);
- Curses_ShowMessage(buffer);
+ gotoXY(TAB, 6);
+ _vprintw(format, ap);
va_end(ap);
+ ClearEoln();
}
static void
Curses_Printf(const char *format, ...)
{
- static char buffer[60];
va_list ap;
va_start(ap, format);
- vsnprintf(buffer, sizeof(buffer), format, ap);
- printw("%s", buffer);
+ _vprintw(format, ap);
va_end(ap);
}
extern void OutputMove(void);
extern void ShowCurrentMove(short pnt, short f, short t);
extern void ListGame(void);
-extern void ShowMessage(char *s);
+extern void ShowMessage(char *s, ...);
extern void ClearScreen(void);
extern void DoDebug(void);
extern void DoTable(short table[NO_SQUARES]);
void (*ShowDepth)(char ch);
void (*ShowGameType)(void);
void (*ShowLine)(unsigned short *bstline);
- void (*ShowMessage)(char *s);
+ void (*ShowMessage)(char *s, ...);
void (*AlwaysShowMessage)(const char *format, ...);
void (*Printf)(const char *format, ...);
void (*doRequestInputString)(const char* fmt, char* buffer);
/* minimal ShowMessage to avoid dependency on extraneous display code */
static void
-Dummy_ShowMessage(char *s)
+Dummy_ShowMessage(char *format, ...)
{
- printf("%s\n", s);
+ va_list ap;
+ va_start(ap, format);
+ vprintf(format, ap);
+ va_end(ap);
}
static struct display dummydsp = {
.ShowMessage = Dummy_ShowMessage,
static void
-Raw_ShowMessage(char *s)
+Raw_ShowMessage(char *format, ...)
{
- if (!XSHOGI)
- printf("%s\n", s);
+ if (XSHOGI)
+ return;
+ va_list ap;
+ va_start(ap, format);
+ vprintf(format, ap);
+ printf("\n");
+ va_end(ap);
}