#include #include #include "mycurses.h" #include #ifndef CURSES int cls(int n){ /* **- clears screen to the end **- input parameters: n - home flag **- n=0 => cursor home first */ if (n==0) fprintf(stdout,"\233H"); fprintf(stdout,"\233J"); fflush(stdout); return 0; } int set_term(char* p){ fprintf(stdout,"%c%s",27,p); fflush(stdout); return 0; } int cursor_pos(int i,int j){ fprintf(stdout,"%c%d;%dH",155,i,j); fflush(stdout); return 0; } int cursor_on(){ fprintf(stdout,"%c?25h",155); fflush(stdout); return 0; } int cursor_off(){ fprintf(stdout,"%c?25l",155); fflush(stdout); return 0; } int my_clear(){ cls(0); return 0; } int my_initscr(){ set_term(" G"); open_inkey_(); clear(); cursor_off(); return 0; } int my_color(int x){ fprintf(stdout,"%c[1;%dm",27,x); fflush(stdout); } int my_background(int x){ fprintf(stdout,"%c[1;%dm",27,x+10); fflush(stdout); } int my_attron(int x){ fprintf(stdout,"%c[%dm",27,x); fflush(stdout); return 0; } int my_attroff(int x){ if (x==1) x++; fprintf(stdout,"%c[2%dm",27,x); fflush(stdout); return 0; } int my_move(int y, int x){ cursor_pos(y,x); return 0; } int my_endwin(){ close_inkey_(); my_move(20,0); cursor_on(); return 0; } int myy_mvprintw(int y, int x,const char *fmt,...) { va_list argp; int code; cursor_pos(y,x); va_start(argp, fmt); code = fprintf(stdout,fmt); va_end(argp); return (code); } int myy_printw(const char *fmt,...) { va_list argp; int code; va_start(argp, fmt); code = fprintf(stdout,fmt,argp); va_end(argp); return (code); } int my_refresh(){ fflush(stdin); fflush(stdout); return 0; } int inkey(char *in_char){ int status = read(STDIN_FILENO,in_char,1); if (status != 1) { *in_char = 0; return -1; } else { // fprintf(stderr,"%c ",*in_char); return 0; } } int get_response(char *tt){ short ktest; char cc; int n=0; ktest = inkey(&cc); while (!ktest &&n<10){ tt[n]=cc; n++; ktest = inkey(&cc); } tt[n]=0; return n; }; int get_term_size(int *nrow, int *ncol){ char cc; char tt[80]; short ktest; int n; move(999,999); fflush(stdin); set_term("[6n"); wait_key_(); n=get_response(tt); if (n<2) return 0; if (tt[0]!=27 || tt[1]!='[') return 0; n=sscanf(&tt[2],"%d;%dR",nrow,ncol); if (n==2) return 1; return 0; } #endif