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

📄 prompt.c

📁 minix软件源代码
💻 C
字号:
/* Copyright (c) 1985 Ceriel J.H. Jacobs */# ifndef lintstatic char rcsid[] = "$Header: prompt.c,v 7.3 89/12/07 16:47:58 ceriel Exp $";# endif# define _PROMPT_# include "in_all.h"# include "prompt.h"# include "term.h"# include "output.h"# include "options.h"# include "display.h"# include "process.h"# include "getline.h"# include "main.h"# include "getcomm.h"# include "keys.h"# include "assert.h"# include "commands.h"#define basename(x) x#ifndef basenameSTATIC char *	basename();#endifstatic char *errorgiven;	/* Set to error message, if there is one */char *copy(p, ep, s)	register char *p, *s;	char *ep;{	while (p < ep && *s) {		*p++ = *s++;	}	return p;}/* * display the prompt and refresh the screen. */VOIDgive_prompt() {	register char **name;	register struct scr_info *p = &scr_info;	char buf[256];	register char *pb = buf;	if (startcomm) return;	flush();	if (window()) {		redraw(0);		flush();	}	if (!stupid) {		/*		 * fancy prompt		 */		clrbline();		standout();		pb = copy(pb, &buf[255], basename(currentfile));		if (stdf >= 0) {			pb = copy(pb, &buf[255], ", ");			pb = copy(pb, &buf[255], getnum(p->firstline));			pb = copy(pb, &buf[255], "-");			pb = copy(pb, &buf[255], getnum(p->lastline));		}	}	else {		*pb++ = '\007';	/* Stupid terminal, stupid prompt */	}	if (errorgiven) {		/*		 * display error message		 */		pb = copy(pb, &buf[255], " ");		pb = copy(pb, &buf[255], errorgiven);		if (stupid) {			pb = copy(pb, &buf[255], "\r\n");		}		errorgiven = 0;	}	else if (!stupid && (status || maxpos)) {		pb = copy(pb, &buf[255], " (");		name = &filenames[filecount];		if (status) {			/*			 * indicate top and/or bottom			 */			if (status & START) {				if (!*(name - 1)) {					pb = copy(pb, &buf[255], "Top");				}				else {					pb = copy(pb, &buf[255], "Previous: ");					pb = copy(pb, &buf[255], basename(*(name - 1)));				}				if (status & EOFILE) {					pb = copy(pb, &buf[255], ", ");				}			}			if (status & EOFILE) {				if (!*(name+1)) {					pb = copy(pb, &buf[255], "Bottom");				}				else {					pb = copy(pb, &buf[255], "Next: ");					pb = copy(pb, &buf[255], basename(*(name + 1)));				}			}		}		else {	/* display percentage */			pb = copy(pb, &buf[255], getnum((100 * getpos(p->lastline))/maxpos));			pb = copy(pb, &buf[255], "%");		}		pb = copy(pb, &buf[255], ")");	}	*pb = '\0';	if (!stupid) {		buf[COLS-1] = 0;		putline(buf);		standend();	}	else	putline(buf);}/* * Remember error message */VOIDerror(str) char *str; {	errorgiven = str;}#ifndef basenameSTATIC char *basename(fn) char *fn; {	/* Return name without path */	register char *s;	s = fn;	while (*s++) ;		/* Search end of name */	for (;;) {		if (*--s == '/') {			/*			 * Backwards to first '/'			 */			if (*(s+1)) {				/*				 * There is a name after the '/'				 */				return s + 1;			}			*s = 0; /* No name after the '/' */		}		if (s == fn) return s;	}	/* NOTREACHED */}#endifVOIDret_to_continue() {		/* Obvious */	int c;	static char buf[2];	for (;;) {		clrbline();		standout();		if (errorgiven) {			putline(errorgiven);			putline(" ");			errorgiven = 0;		}		putline("[Type anything to continue]");		standend();		if (is_escape(c = getch())) {			buf[0] = c;			(VOID) match(buf, &c, currmap->k_mach);			assert(c > 0);			do_comm(c, -1L);		}		else	break;	}	clrbline();}

⌨️ 快捷键说明

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