📄 curses.mus
字号:
CASE int winschI WINDOW* winI char cENDCASE int insertlnENDCASE int winsertlnI WINDOW* winENDCASE int moveI int yI int xENDCASE int wmoveI WINDOW* winI int yI int xENDCASE int overlayI WINDOW* win1I WINDOW* win2ENDCASE int overwriteI WINDOW* win1I WINDOW* win2ENDCASE int refreshENDCASE int wrefreshI WINDOW* winENDCASE int standoutENDCASE int wstandoutI WINDOW* winENDCASE int standendENDCASE int wstandendI WINDOW* winENDCASE int cbreakENDCASE int nocbreakENDCASE int echoENDCASE int noechoEND case US_getch: if (items != 0) fatal("Usage: &getch()"); else { int retval; char retch; retval = getch(); if (retval == EOF) st[0] = &str_undef; else { retch = retval; if (retval > 0377) str_numset(st[0], (double) retval); else str_nset(st[0], &retch, 1); } } return sp; case US_wgetch: if (items != 1) fatal("Usage: &wgetch($win)"); else { int retval; char retch; WINDOW* win = *(WINDOW**) str_get(st[1]); retval = wgetch(win); if (retval == EOF) st[0] = &str_undef; else { retch = retval; if (retval > 0377) str_numset(st[0], (double) retval); else str_nset(st[0], &retch, 1); } } return sp;CASE int getstrO char* strENDCASE int wgetstrI WINDOW* winO char* strENDCASE int rawENDCASE int norawENDCASE int baudrateENDCASE int delwinI WINDOW* winENDCASE int endwinENDCASE int erasecharEND case US_getyx: if (items != 3) fatal("Usage: &getyx($win, $y, $x)"); else { int retval; STR* str = str_new(0); WINDOW* win = *(WINDOW**) str_get(st[1]); int y; int x; do_sprintf(str, items - 1, st + 1); retval = getyx(win, y, x); str_numset(st[2], (double)y); str_numset(st[3], (double)x); str_numset(st[0], (double) retval); str_free(str); } return sp; CASE int inchENDCASE int winchI WINDOW* winENDCASE WINDOW* initscrENDCASE int killcharENDCASE int leaveokI WINDOW* winI bool boolfEND#ifdef BSDCASE char* longnameI char* termbufIO char* nameEND#elseCASE char* longnameI char* termbugI char* nameEND#endifCASE int mvwinI WINDOW* winI int yI int xENDCASE WINDOW* newwinI int linesI int colsI int begin_yI int begin_xENDCASE int nlENDCASE int nonlENDCASE int scrollokI WINDOW* winI bool boolfENDCASE WINDOW* subwinI WINDOW* winI int linesI int colsI int begin_yI int begin_xENDCASE int touchlineI WINDOW* winI int yI int startxI int endxENDCASE int touchwinI WINDOW* winENDCASE char* unctrlI char chENDCASE int gettmodeENDCASE int mvcurI int lastyI int lastxI int newyI int newxENDCASE int scrollI WINDOW* winENDCASE int savettyENDCASE void resettyENDCASE int settermI char* nameENDCASE int attroffI chtype strENDCASE int wattroffI chtype strENDCASE int wattronI chtype strENDCASE int attronI chtype strENDCASE int attrsetI chtype strENDCASE int wattrsetI chtype strEND#ifdef CURSEFMT case US_printw: if (items < 1) fatal("Usage: &printw($fmt, $arg1, $arg2, ... )"); else { int retval; STR* str = str_new(0); do_sprintf(str, items - 1, st + 1); retval = addstr(str->str_ptr); str_numset(st[0], (double) retval); str_free(str); } return sp; case US_wprintw: if (items < 2) fatal("Usage: &wprintw($win, $fmt, $arg1, $arg2, ... )"); else { int retval; STR* str = str_new(0); WINDOW* win = *(WINDOW**) str_get(st[1]); do_sprintf(str, items - 1, st + 1); retval = waddstr(win, str->str_ptr); str_numset(st[0], (double) retval); str_free(str); } return sp;#endifCASE char* getcapI char* strEND#ifdef BSDCASE int flushokI WINDOW* winI bool boolfENDCASE int fullnameI char* termbufIO char* nameENDCASE int touchoverlapI WINDOW* win1I WINDOW* win2ENDCASE int tstpENDCASE int _putcharI char chEND case US_testcallback: sp = callback("callback", sp + items, curcsv->wantarray, 1, items); break;#endif default: fatal("Unimplemented user-defined subroutine"); } return sp;}static intuserval(ix, str)int ix;STR *str;{ switch (ix) { case UV_COLS: str_numset(str, (double)COLS); break; case UV_ERR: str_numset(str, (double)ERR); break; case UV_LINES: str_numset(str, (double)LINES); break; case UV_OK: str_numset(str, (double)OK); break; case UV_curscr: str_nset(str, &curscr, sizeof(WINDOW*)); break; case UV_stdscr: str_nset(str, &stdscr, sizeof(WINDOW*)); break; case UV_ttytype: str_set(str, ttytype); break;#ifdef BSD case UV_Def_term: str_set(str, Def_term); break; case UV_My_term: str_numset(str, (double)My_term); break;#endif case UV_A_STANDOUT: str_numset(str, (double)A_STANDOUT); break; case UV_A_UNDERLINE: str_numset(str, (double)A_UNDERLINE); break; case UV_A_REVERSE: str_numset(str, (double)A_REVERSE); break; case UV_A_BLINK: str_numset(str, (double)A_BLINK); break; case UV_A_DIM: str_numset(str, (double)A_DIM); break; case UV_A_BOLD: str_numset(str, (double)A_BOLD); break; case UV_A_NORMAL: str_numset(str, (double)A_NORMAL); break; } return 0;}static intuserset(ix, str)int ix;STR *str;{ switch (ix) { case UV_COLS: COLS = (int)str_gnum(str); break; case UV_LINES: LINES = (int)str_gnum(str); break; case UV_ttytype: strcpy(ttytype, str_get(str)); /* hope it fits */#ifdef USG if (tcbuf != NULL) { free(tcbuf); tcbuf = NULL; }#endif break;#ifdef BSD case UV_Def_term: Def_term = savestr(str_get(str)); /* never freed */ break; case UV_My_term: My_term = (bool)str_gnum(str); break;#endif } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -