X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=conio.c;h=9f51c31987f2ddd65d2ad7137a7a2bdc6bfdac87;hb=332c6482c6a33c591de1dbcbd66f45f3a8fff499;hp=92598140141e2e12633872e123c3c08ab8fa2965;hpb=222e7873f49cb4b28e872552e8cdc1a8a3e2a605;p=super-star-trek.git diff --git a/conio.c b/conio.c index 9259814..9f51c31 100644 --- a/conio.c +++ b/conio.c @@ -59,9 +59,8 @@ static void docolor (int color) /* Set DOS-like text mode colors */ wattron(conio_scr,COLOR_PAIR(1+(color&7)+((color&112)>>1))); } -#ifdef SERGEEV /* Call this before any call to linux conio - except the port functions ! */ -void __attribute__((constructor)) initconio (void) /* This is needed, because ncurses needs to be initialized */ +void initconio (void) { int x,y; short pair; @@ -91,7 +90,6 @@ void __attribute__((constructor)) initconio (void) /* This is needed, because nc textcolor(7); textbackground(0); } -#endif /* SERGEEV */ /* Call this on exiting your program */ void doneconio (void) @@ -122,16 +120,22 @@ char *cgets (char *str) /* ugly function :-( */ } void clreol (void) +/* clear to end of line -- can be a no-op in tty mode */ { +#ifdef SERGEEV wclrtoeol(conio_scr); wrefresh(conio_scr); +#endif /* SERGEEV */ } void clrscr (void) +/* clear screen -- can be a no-op in tty mode */ { +#ifdef SERGEEV wclear(conio_scr); wmove(conio_scr,0,0); wrefresh(conio_scr); +#endif /* SERGEEV */ } int cprintf (char *format, ... ) @@ -142,8 +146,13 @@ int cprintf (char *format, ... ) va_start(argp,format); vsprintf(buffer,format,argp); va_end(argp); + +#ifdef SERGEEV i=waddstr(conio_scr,buffer); wrefresh(conio_scr); +#else + i=printf(buffer); +#endif /* SERGEEV */ return(i); } @@ -213,17 +222,22 @@ void gettextinfo(struct text_info *inforec) } void gotoxy (int x, int y) +/* address cursor -- OK for this to be a no-op in TTY mode */ { +#ifdef SERGEEV y--; x--; wmove(conio_scr,y,x); wrefresh(conio_scr); +#endif /* SERGEEV */ } void highvideo (void) { +#ifdef SERGEEV textcolor(15); /* White */ textbackground(0); /* Black */ +#endif /* SERGEEV */ } void insline (void) @@ -274,11 +288,14 @@ void textbackground (int color) docolor(color); } + void textcolor (int color) { +#ifdef SERGEEV fgc=color; color=(bgc*16)+fgc; docolor(color); +#endif /* SERGEEV */ } void textmode (int mode)