home *** CD-ROM | disk | FTP | other *** search
-
- #include <curses.h>
-
- #define printf print
-
- static char kbd_mess[2] = {
- DISABLE_MOUSE,
- SET_REL_MOUSE
- };
-
- static int save_pallette[16];
-
- init_curses()
- {
-
- int i;
- int pallette[16];
-
- for (i=0; i<16; i++) save_pallette[i] = Setcolor(i, -1);
- for (i=0; i<16; i++) pallette[i] = 0xffff;
- pallette[0] = 0;
- Setpallete(pallette);
- Vsync();
- Ikbdws(0, kbd_mess);
- scr_func(HIDE_CURS);
- scr_func(CLEAR_SCR);
- Cursconf(2, 0);
- scr_func(SHOW_CURS);
- }
-
- curses_cleanup()
- {
- scr_func(HIDE_CURS);
- Ikbdws(0, kbd_mess+1);
- if (Getrez() < 2)
- Setpallete(save_pallette);
- }
-
- pos_cursor(x, y)
- int x, y;
- {
- char out;
-
- scr_func(POS_CURS);
- out = y + 32;
- char_out(out);
- out = x + 32;
- char_out(out);
- }
-
- scr_func(func)
- char func;
- {
- char_out(27);
- char_out(func);
- }
-
- char_out(chrout)
- char chrout;
- {
- while(!Cconos());
- Cconout(chrout);
- }
-
- int get_str(string)
- unsigned char *string;
- {
- unsigned char key, *str_pos;
-
- str_pos = string;
- do {
- key = Crawcin();
- if (key < 32 || key == 127)
- switch ((int) key) {
- case ESCAPE:
- *str_pos = '\0';
- return(-1);
- break;
- case BACKSPACE:
- case DELETE:
- if (str_pos > string) {
- erase_char();
- str_pos--;
- } else {
- char_out(BELL);
- }
- break;
- case CARRIAGE_RETURN:
- *str_pos = '\0';
- return((int)((long)str_pos - (long)string));
- break;
- case DEL_WORD:
- do {
- if (str_pos == string) char_out(BELL);
- else {
- erase_char();
- str_pos--;
- if (*(str_pos-1) == ' ') break;
- }
- } while (str_pos > string);
- break;
- case DEL_LINE:
- case CANCEL:
- if (str_pos == string) char_out(BELL);
- else while (str_pos > string) {
- erase_char();
- str_pos--;
- }
- break;
- default:
- char_out(BELL);
- break;
- }
- else {
- char_out(key);
- *str_pos++ = key;
- }
- } while (TRUE);
- }
-
- erase_char()
- {
- scr_func(BACK_CURS);
- char_out(' ');
- scr_func(BACK_CURS);
- }
-
- stderr(message)
- char *message;
- {
- scr_func(CLEAR_SCR);
- printf("%s\n\r", message);
- printf("... Hit any key to exit\n\r");
- wait();
- curses_cleanup();
- exit(-1);
- }
- ə