[9] | 1 | #include <string.h>
|
---|
| 2 | #include <curses.h>
|
---|
| 3 | #include "curspriv.h"
|
---|
| 4 |
|
---|
| 5 | static char printscanbuf[513]; /* buffer used during I/O */
|
---|
| 6 |
|
---|
| 7 | /****************************************************************/
|
---|
| 8 | /* Wprintw(win,fmt,args) does a printf() in window 'win'. */
|
---|
| 9 | /****************************************************************/
|
---|
| 10 | int wprintw(WINDOW *win, const char *fmt, ...)
|
---|
| 11 | {
|
---|
| 12 | va_list args;
|
---|
| 13 |
|
---|
| 14 | va_start(args, fmt);
|
---|
| 15 | vsprintf(printscanbuf, fmt, args);
|
---|
| 16 | if (waddstr(win, printscanbuf) == ERR) return(ERR);
|
---|
| 17 | return(strlen(printscanbuf));
|
---|
| 18 | }
|
---|
| 19 |
|
---|
| 20 | /****************************************************************/
|
---|
| 21 | /* Printw(fmt,args) does a printf() in stdscr. */
|
---|
| 22 | /****************************************************************/
|
---|
| 23 | int printw(const char *fmt, ...)
|
---|
| 24 | {
|
---|
| 25 | va_list args;
|
---|
| 26 |
|
---|
| 27 | va_start(args, fmt);
|
---|
| 28 | vsprintf(printscanbuf, fmt, args);
|
---|
| 29 | if (waddstr(stdscr, printscanbuf) == ERR) return(ERR);
|
---|
| 30 | return(strlen(printscanbuf));
|
---|
| 31 | } /* printw */
|
---|
| 32 |
|
---|
| 33 | /****************************************************************/
|
---|
| 34 | /* Mvprintw(fmt,args) moves the stdscr cursor to a new posi- */
|
---|
| 35 | /* tion, then does a printf() in stdscr. */
|
---|
| 36 | /****************************************************************/
|
---|
| 37 | int mvprintw(int y, int x, const char *fmt, ...)
|
---|
| 38 | {
|
---|
| 39 | va_list args;
|
---|
| 40 |
|
---|
| 41 | va_start(args, fmt);
|
---|
| 42 | if (wmove(stdscr, y, x) == ERR) return(ERR);
|
---|
| 43 | vsprintf(printscanbuf, fmt, args);
|
---|
| 44 | if (waddstr(stdscr, printscanbuf) == ERR) return(ERR);
|
---|
| 45 | return(strlen(printscanbuf));
|
---|
| 46 | }
|
---|
| 47 |
|
---|
| 48 | /****************************************************************/
|
---|
| 49 | /* Mvwprintw(win,fmt,args) moves the window 'win's cursor to */
|
---|
| 50 | /* A new position, then does a printf() in window 'win'. */
|
---|
| 51 | /****************************************************************/
|
---|
| 52 | int mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...)
|
---|
| 53 | {
|
---|
| 54 | va_list args;
|
---|
| 55 |
|
---|
| 56 | va_start(args, fmt);
|
---|
| 57 | if (wmove(win, y, x) == ERR) return(ERR);
|
---|
| 58 | vsprintf(printscanbuf, fmt, args);
|
---|
| 59 | if (waddstr(win, printscanbuf) == ERR) return(ERR);
|
---|
| 60 | return(strlen(printscanbuf));
|
---|
| 61 | } /* mvwprintw */
|
---|
| 62 |
|
---|
| 63 | /****************************************************************/
|
---|
| 64 | /* Wscanw(win,fmt,args) gets a string via window 'win', then */
|
---|
| 65 | /* Scans the string using format 'fmt' to extract the values */
|
---|
| 66 | /* And put them in the variables pointed to the arguments. */
|
---|
| 67 | /****************************************************************/
|
---|
| 68 | int wscanw(WINDOW *win, const char *fmt, ...)
|
---|
| 69 | {
|
---|
| 70 | va_list args;
|
---|
| 71 |
|
---|
| 72 | va_start(args, fmt);
|
---|
| 73 | wrefresh(win); /* set cursor */
|
---|
| 74 | if (wgetstr(win, printscanbuf) == ERR) /* get string */
|
---|
| 75 | return(ERR);
|
---|
| 76 | return(vsscanf(printscanbuf, fmt, args));
|
---|
| 77 | } /* wscanw */
|
---|
| 78 |
|
---|
| 79 | /****************************************************************/
|
---|
| 80 | /* Scanw(fmt,args) gets a string via stdscr, then scans the */
|
---|
| 81 | /* String using format 'fmt' to extract the values and put them */
|
---|
| 82 | /* In the variables pointed to the arguments. */
|
---|
| 83 | /****************************************************************/
|
---|
| 84 | int scanw(const char *fmt, ...)
|
---|
| 85 | {
|
---|
| 86 | va_list args;
|
---|
| 87 |
|
---|
| 88 | va_start(args, fmt);
|
---|
| 89 | wrefresh(stdscr); /* set cursor */
|
---|
| 90 | if (wgetstr(stdscr, printscanbuf) == ERR) /* get string */
|
---|
| 91 | return(ERR);
|
---|
| 92 | return(vsscanf(printscanbuf, fmt, args));
|
---|
| 93 | } /* scanw */
|
---|
| 94 |
|
---|
| 95 | /****************************************************************/
|
---|
| 96 | /* Mvscanw(y,x,fmt,args) moves stdscr's cursor to a new posi- */
|
---|
| 97 | /* Tion, then gets a string via stdscr and scans the string */
|
---|
| 98 | /* Using format 'fmt' to extract the values and put them in the */
|
---|
| 99 | /* Variables pointed to the arguments. */
|
---|
| 100 | /****************************************************************/
|
---|
| 101 | int mvscanw(int y, int x, const char *fmt, ...)
|
---|
| 102 | {
|
---|
| 103 | va_list args;
|
---|
| 104 |
|
---|
| 105 | va_start(args, fmt);
|
---|
| 106 | if (wmove(stdscr, y, x) == ERR) return(ERR);
|
---|
| 107 | wrefresh(stdscr); /* set cursor */
|
---|
| 108 | if (wgetstr(stdscr, printscanbuf) == ERR) /* get string */
|
---|
| 109 | return(ERR);
|
---|
| 110 | return(vsscanf(printscanbuf, fmt, args));
|
---|
| 111 | } /* mvscanw */
|
---|
| 112 |
|
---|
| 113 | /****************************************************************/
|
---|
| 114 | /* Mvwscanw(win,y,x,fmt,args) moves window 'win's cursor to a */
|
---|
| 115 | /* New position, then gets a string via 'win' and scans the */
|
---|
| 116 | /* String using format 'fmt' to extract the values and put them */
|
---|
| 117 | /* In the variables pointed to the arguments. */
|
---|
| 118 | /****************************************************************/
|
---|
| 119 | int mvwscanw(WINDOW *win, int y, int x, const char *fmt, ...)
|
---|
| 120 | {
|
---|
| 121 | va_list args;
|
---|
| 122 |
|
---|
| 123 | va_start(args, fmt);
|
---|
| 124 | if (wmove(win, y, x) == ERR) return(ERR);
|
---|
| 125 | wrefresh(win); /* set cursor */
|
---|
| 126 | if (wgetstr(win, printscanbuf) == ERR) /* get string */
|
---|
| 127 | return(ERR);
|
---|
| 128 | return(vsscanf(printscanbuf, fmt, args));
|
---|
| 129 | } /* mvwscanw */
|
---|