⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getstr.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifdef lintstatic char *sccsid = "@(#)getstr.c	4.1	(ULTRIX)	7/2/90";#endif lint# include	"curses.ext"/* *	This routine gets a string starting at (_cury,_curx) * * 7/2/81 (Berkeley) @(#)getstr.c	1.4 */wgetstr(win,str)WINDOW	*win; char	*str;{	char myerase, mykill;	char rownum[256], colnum[256];	int doecho = SP->fl_echoit;	int savecb = SP->fl_rawmode;	register int cpos = 0;	register int ch;	register char *cp = str;#ifdef DEBUG	if (outf) fprintf(outf, "doecho %d, savecb %d\n", doecho, savecb);#endif	myerase = erasechar();	mykill = killchar();	noecho(); crmode();	for (;;) {		rownum[cpos] = win->_cury;		colnum[cpos] = win->_curx;		if (! (win->_flags&_ISPAD))			wrefresh(win);		ch = wgetch(win);		if (ch <= 0 ||ch == ERR || ch == '\n' || ch == '\r')			break;		if (ch == myerase || ch == KEY_LEFT || ch == KEY_BACKSPACE) {			if (cpos > 0) {				cp--; cpos--;				if (doecho) {					wmove(win, rownum[cpos], colnum[cpos]);					wclrtoeol(win);				}			}		} else if (ch == mykill) {			cp = str;			cpos = 0;			if (doecho) {				wmove(win, rownum[cpos], colnum[cpos]);				wclrtoeol(win);			}		} else {			*cp++ = ch;			cpos++;			if (doecho) {				waddch(win, ch);			}		}	}	*cp = '\0';	if (doecho)		echo();	if (!savecb)		nocrmode();	waddch(win, '\n');	if (win->_flags & _ISPAD);		wrefresh(win);	if (ch == ERR)		return ERR;	return OK;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -