readline.c

来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 64 行

C
64
字号
/*	readline.c	4.1	83/03/09	*//* * Read a line from the keyboard in the message line.  The line * goes into caller provided buffer msg, whos size is maxlen bytes. */#include "2648.h"readline(prompt, msg, maxlen)char *prompt;char *msg;int maxlen;{	register char c;	register char *cp;	int oldx, oldy;	int oldcuron;	int oldquiet;	extern int QUIET;	oldx = _curx; oldy = _cury;	oldcuron = _cursoron;	areaclear(4, 4, 4+8, 719);	setset();	zoomout();	curon();	movecurs(4, 4);	texton();	oldquiet = QUIET;	QUIET = 0;	outstr(prompt);	if (oldquiet)		outstr("\r\n");	QUIET = oldquiet;	for (cp=msg; ; cp) {		fflush(stdout);		c = getchar();		switch (c) {		case '\n':		case '\r':		case ESC:			*cp++ = 0;			textoff();			movecurs(oldx, oldy);			if (oldcuron == 0)				curoff();			return;		case '\b':			if (--cp >= msg)				outchar(c);			else				cp = msg;			break;		default:			*cp++ = c;			outstr(rdchar(c));			if (cp-msg >= maxlen)				error("line too long");		}	}}

⌨️ 快捷键说明

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