亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? minicom.c

?? linux 下的超級終端 minicom
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * minicom.c	Main program. The main loop of the terminal emulator *		itself is in main.c. (Yeah yeah it's confusing). * *		This file is part of the minicom communications package, *		Copyright 1991-1996 Miquel van Smoorenburg. * *		This program is free software; you can redistribute it and/or *		modify it under the terms of the GNU General Public License *		as published by the Free Software Foundation; either version *		2 of the License, or (at your option) any later version. * * fmg 1/11/94 colors * jl  30.06.97 log it if you quit without reset while online * fmg 8/20/97 History buffer searching added * jseymour@jimsun.LinxNet.com (Jim Seymour) 03/26/98 - Added support for *    multiple tty devices via new "get_port()" function. * kubota@debian.or.jp 07/98  - Added option -C to start capturing from the *				command line * jl  09.07.98 added option -S to start a script at startup */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include "rcsid.h"RCSID(PKG_VER "$Id: minicom.c,v 1.10 2003/05/16 20:33:19 al-guest Exp $")#include <getopt.h>#define EXTERN#include "port.h"#include "minicom.h"#include "intl.h"#define RESET 1#define NORESET 2#ifdef _SVR2extern struct passwd *getpwuid();#endif /*_SVR2*/#ifdef DEBUG/* Show signals when debug is on. */static void signore(sig)int sig;{  if (stdwin != NIL_WIN)	werror(_("Got signal %d"), sig);  else	printf("%s\r\n", _("Got signal %d"), sig);}#endif /*DEBUG*//* * Sub - menu's. */static char *c1[] = { N_("   Yes  "), N_("   No   "), CNULL };static char *c2[] = { N_("  Close "), N_(" Pause  "), N_("  Exit  "), CNULL };static char *c3[] = { N_("  Close "), N_(" Unpause"), N_("  Exit  "), CNULL };static char *c7[] = { N_("   Yes  "), N_("   No   "), CNULL };/* Initialize modem port. */void port_init(){  m_setparms(portfd, P_BAUDRATE, P_PARITY, P_BITS, P_STOPB,	     P_HASRTS[0] == 'Y', P_HASXON[0] == 'Y');}static void do_hang(askit)int askit;{  int c = 0;   if (askit) c = ask(_("Hang-up line?"), c7);  if (c == 0) hangup();}/* * We've got the hangup or term signal. */static void hangsig(sig)int sig;{  if (stdwin != NIL_WIN)	werror(_("Killed by signal %d !\n"), sig);  if (capfp != (FILE *)0) fclose(capfp);  keyboard(KUNINSTALL, 0);  hangup();  modemreset();  leave("\n");}/* * Jump to a shell */#ifdef SIGTSTP/*ARGSUSED*/static void shjump(dummy /* __attribute__((unused)) */)int dummy;{  extern int use_status;  if (dummy) {}; /* avoid compiler warning, should be optimized away... */  wleave();  signal(SIGTSTP, SIG_DFL);  fputs(_("Suspended. Type \"fg\" to resume.\n"),stdout);  kill(getpid(), SIGTSTP);  signal(SIGTSTP, shjump);  wreturn();  if (use_status) show_status();}#else/*ARGSUSED*/static void shjump(dummy /* __attribute__((unused)) */)int dummy;{  extern int use_status;  char *sh;  int pid;  int status;  int f;  if (dummy) {}; /* avoid compiler warning, should be optimized away... */  sh = getenv("SHELL");  if (sh == CNULL) {  	werror(_("SHELL variable not set"));  	return;  }  if ((pid = fork()) == -1) {  	werror(_("Out of memory: could not fork()"));  	return;  }  if (pid != 0) wleave();  if (pid == 0) {	for(f = 1; f < _NSIG; f++) signal(f, SIG_DFL);  	for(f = 3; f < 20; f++) close(f);	set_privs();	setgid((gid_t)real_gid);  	setuid((uid_t)real_uid);	fputs(_("Shelled out. Type \"exit\" to return.\n"), stdout);  	execl(sh, sh, CNULL);  	exit(1);  }  (void) m_wait(&status);  wreturn();  if (use_status) show_status();}#endif /*SIGTSTP*/#if _HISTORY/* Get a line from either window or scroll back buffer. */static ELM *getline(w, no)WIN *w;int no;{  int i;  static ELM outofrange[MAXCOLS] = {{0,0,0}};  if (no < us->histlines) {	/* Get a line from the history buffer. */	i = no + us->histline /*- 1*/;	if (i >= us->histlines) i -= us->histlines;	if (i < 0) i = us->histlines - 1;	return(us->histbuf + (i * us->xs));  }  /* Get a line from the "us" window. */  no -= us->histlines;  if (no >= w->ys) {  	if (outofrange[0].value == 0) {  		for (i=0; i<MAXCOLS; i++) {  			outofrange[i].value = ' ';  			outofrange[i].color = us->color;  			outofrange[i].attr  = us->attr;  		}  		outofrange[0].value = '~';  	}  	return outofrange;  }  return(w->map + (no * us->xs));}/* Redraw the window. */static void drawhist(w, y, r)WIN *w;int y;int r;{  int f;  w->direct = 0;  for(f = 0; f < w->ys; f++)	wdrawelm(w, f, getline(w, y++));  if (r) wredraw(w, 1);  w->direct = 1;}#if _SEARCH_HISTORY/* * fmg 8/20/97 * drawhist_look() * Redraw the window, highlight line that was found to contain * pattern 'look' * Needed by re-draw screen function after EACH find_next() */void drawhist_look(w, y, r, look, case_matters)WIN	*w;int	y;int	r;char	*look;int	case_matters;{  int f;  ELM *tmp_e;  char tmp_line[MAXCOLS];  tmp_line[0]='\0';  w->direct = 0;  for (f = 0; f < w->ys; f++)  {	tmp_e = getline(w, y++);  	/* First we "accumulate" the line into a variable */	wdrawelm_var(w, tmp_e, tmp_line);	/* Does it have what we want? */	if (strlen(look)>1 && strlen(tmp_line)>1) {		if (StrStr(tmp_line,look, case_matters))			wdrawelm_inverse(w, f, tmp_e); /* 'inverse' it */  		else			wdrawelm(w, f, tmp_e); /* 'normal' output */	}  }  if (r) wredraw(w, 1);  w->direct = 1;}/* * fmg 8/20/97 * Search history - main function that started the C-code blasphemy :-) * This function doesn't care about case/case-less status... */void searchhist(w_hist, str)WIN *w_hist;char *str;{  int y;  WIN *w_new;  char hline[128];  /* Find out how big a window we must open. */  y = w_hist->y2;  if (st == (WIN *)0 || (st && tempst)) y--;  /* Open a Search line window. */  w_new = wopen(0, y+1, w_hist->x2, y+1, 0, st_attr, sfcolor, sbcolor, 0, 0, 1);  w_new->doscroll = 0;  w_new->wrap = 0;  strcpy(hline, _("SEARCH FOR (ESC=Exit)"));  wprintf(w_new, "%s(%d):",hline,MAX_SEARCH);  wredraw(w_new, 1);  wflush();  wlocate(w_new, strlen(hline)+6, 0); wputs(w_new, str);  wlocate(w_new, strlen(hline)+6, 0);  (void) wgets(w_new, str, MAX_SEARCH, MAX_SEARCH);#if 0  if (!str[0]) /* then unchanged... must have pressed ESC... get out */  {  	wflush();  	wclose(w_new, 0);  	return;  }#endif  wredraw(w_hist, 1);  wclose(w_new, 1);  wflush();  return;}/* * fmg 8/20/97 * Move scope to next hit of pattern in the buffer. * Returns line-number of next "hit_line" or -1 if none found * (we beep elsewhere ;-) */int find_next(w, w_hist, hit_line, look, case_matters)WIN	*w;WIN	*w_hist;int	hit_line;	/* 'current' Match line */char	*look;		/* pattern */int	case_matters;	/* guess... */{  int next_line;  ELM *tmp_e;  char tmp_line[MAXCOLS];  int all_lines;  if (!look)  	return(++hit_line); /* next line */  tmp_line[0]='\0';	/* Personal phobia, I need to do this.. */  hit_line++;	/* we NEED this so we don't search only same line! */  all_lines = w->histlines + w_hist->ys;  if (hit_line >= all_lines)	/* Make sure we've got a valid line! */  {	werror(_("Search Wrapping Around to Start!"));	hit_line = 0;  }  for (next_line = hit_line; next_line <= all_lines; next_line++)  {	/* we do 'something' here... :-) */	tmp_e = getline(w_hist, next_line);  	/*	 * First we "accumulate" the line into a variable.	 * To see 'why', see what an 'ELM' structure looks like!	 */	wdrawelm_var(w, tmp_e, tmp_line);	/* Does it have what we want? */	if (strlen(tmp_line) > 1 && strlen(look) > 1)		if (StrStr(tmp_line, look, case_matters))  			return(next_line);  }  if (hit_line >= all_lines)	/* Make sure we've got a valid line! */  {	werror(_("Search Wrapping Around to Start!"));	hit_line = 0;  }  return(-1); /* nothing found! */}/* * fmg 8/22/97 * Needed this for the case-less conparison... and Linux libc * doesn't seem to have a strnstr function... so we fudge.. ;-) */const char *upcase(dest, src)char	*dest, *src;{char	*d;d=dest;while (*src)	*d++=toupper(*src++);*d='\0';return (dest);}/* * fmg 8/22/97 * Needed this for the case-less conparison... and Linux libc * doesn't seem to have a strnstr function... so we fudge.. ;-) */char *StrStr(str1, str2, case_matters)char	*str1, *str2;int	case_matters;{char	tmpstr1[MAXCOLS],	tmpstr2[MAXCOLS];if (case_matters)	return (strstr(str1,str2));else  	return (strstr(upcase(tmpstr1,str1),upcase(tmpstr2,str2)));}#endif /*_SEARCH_HISTORY*/static void drawcite(w, y, citey, start, end)WIN *w;int y;int citey;int start;int end;{  if (y+citey >= start && y+citey <= end) 	wdrawelm_inverse(w, y, getline(w, y+citey));  else	wdrawelm(w, y, getline(w, y+citey));}static void drawcite_whole(w, y, start, end)WIN *w;int y, start, end;{  int sy;  for (sy = 0; sy < w->ys; sy++) {	drawcite(w, sy, y, start, end);  }}static void do_cite(w, start, end)WIN *w;int start,end;{  char tmp_line[MAXCOLS];  ELM *tmp_e;  int x, y;  for (y=start; y<=end; y++) {	vt_send('>');	vt_send(' ');	tmp_e = getline(w, y);	wdrawelm_var(w, tmp_e, tmp_line);	tmp_line[w->xs]=0;	for (x=w->xs-1; x>=0; x--){		if (tmp_line[x] <= ' ') tmp_line[x]=0;		else break;	}	for (x=0; tmp_line[x]; x++){		vt_send(tmp_line[x]);	}	vt_send(13);  }}/* Scroll back */static void scrollback(){  int y,c;  WIN *b_us, *b_st;#if _SEARCH_HISTORY  ELM *tmp_e;  int case_matters=0;	/* fmg: case-importance, needed for 'N' */  static char look_for[MAX_SEARCH];	/* fmg: last used search pattern */  char tmp_line[MAXCOLS];#endif /*SEARCH_HISTORY*/  int citemode = 0;  int cite_ystart = 1000000,      cite_yend = -1,      cite_y = 0;  int inverse;  int loop = 1;  char hline0[128], hline1[128], *hline;  static int hit=0;  /* Find out how big a window we must open. */  y = us->y2;  if (st == (WIN *)0 || (st && tempst)) y--;  /* Open a window. */   b_us = wopen(0, 0, us->x2, y, 0, us->attr, COLFG(us->color),		COLBG(us->color), 0, 0, 0);  wcursor(b_us, CNONE);  /* Open a help line window. */  b_st = wopen(0, y+1, us->x2, y+1, 0, st_attr, sfcolor, sbcolor, 0, 0, 1);  b_st->doscroll = 0;  b_st->wrap = 0;  /* Make sure help line is as wide as window. */#if _SEARCH_HISTORY  /*   * fmg 8/20/97   * added /=Srch, \=CaseLess, and N=Next and changed rest of line...   * Hope you like it :-)   */  strcpy(hline0, _("HISTORY: U=Up D=Down F=PgDn B=PgUp s=Srch S=CaseLess N=Next C=Cite ESC=Exit "));#else  strcpy(hline0, _("  SCROLL MODE    U=up D=down F=page-forward B=page-backward C=Cite ESC=exit "));#endif /*_HIST_SEARCH*/  if (b_st->xs < 127)  	hline0[b_st->xs] = 0;  hline = hline0;  wprintf(b_st, hline);  wredraw(b_st, 1);  wflush();  /* And do the job. */  y = us->histlines;  /* fmg 8/20/97   * Needed for N)extSearch, keeps track of line on which current "hit"   * is... we advance it to 'N'ext hit in find_next(). We start at "top"   * of history stack   */  hit=0;    drawhist(b_us, y, 0);  while(loop) {	c = wxgetch();	switch(c) {#if _SEARCH_HISTORY	  /*  	   * fmg 8/22/97	   * Take care of the search key: Caseless	   */	  case '\\':	  case 'S':	    case_matters=0; /* case-importance, ie. none :-) */	  /* 	   * fmg 8/22/97

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩亚州综合| 亚洲一区二区三区在线| 欧美日本一区二区| 国产河南妇女毛片精品久久久| 亚洲精品国产精品乱码不99| 欧美sm美女调教| 欧美日韩一区二区三区在线| 成人动漫视频在线| 精品一二三四区| 日本网站在线观看一区二区三区 | 亚洲va欧美va人人爽午夜| 久久精品一区二区三区不卡牛牛| 欧美网站一区二区| 一本一道综合狠狠老| 国产成人免费在线| 久久成人免费电影| 日本成人在线不卡视频| 亚洲男人的天堂一区二区| 国产精品色哟哟| 久久久久久黄色| 亚洲精品在线一区二区| 在线播放中文字幕一区| 欧美无砖专区一中文字| 91丝袜呻吟高潮美腿白嫩在线观看| 精品一区二区三区久久| 久久国产视频网| 天堂在线亚洲视频| 亚洲第一综合色| 亚洲一区二区精品3399| 亚洲主播在线观看| 亚洲精品免费看| 亚洲欧美日韩小说| 亚洲欧美视频在线观看视频| 亚洲天堂av老司机| 国产精品传媒在线| 欧美国产禁国产网站cc| 中文字幕成人av| 国产精品久久久久天堂| 综合激情成人伊人| 亚洲男人的天堂在线aⅴ视频| 综合久久国产九一剧情麻豆| 亚洲婷婷综合久久一本伊一区 | 欧美精品一区二区在线播放| 日韩色视频在线观看| 日韩欧美在线123| 精品精品欲导航| 久久久久久亚洲综合影院红桃| 久久综合五月天婷婷伊人| 久久久www成人免费毛片麻豆| 久久久蜜臀国产一区二区| 中文字幕电影一区| 日韩一区有码在线| 伊人一区二区三区| 亚洲va韩国va欧美va| 日韩av电影免费观看高清完整版 | 韩国av一区二区三区| 国产成人免费在线| 99视频有精品| 欧美性做爰猛烈叫床潮| 91精品国产综合久久香蕉麻豆| 日韩欧美国产一区二区在线播放| 久久午夜色播影院免费高清| 中文字幕第一区第二区| 亚洲一区二区三区在线看| 日韩成人一级片| 国产精品77777竹菊影视小说| jlzzjlzz欧美大全| 在线观看国产91| 日韩一区二区在线观看| 欧美精彩视频一区二区三区| 亚洲精品一二三区| 久久99精品一区二区三区三区| 国产jizzjizz一区二区| 在线观看视频欧美| 欧美va亚洲va国产综合| 中文字幕欧美一| 婷婷夜色潮精品综合在线| 国产精品一品二品| 欧美色老头old∨ideo| 日韩三级高清在线| 国产精品毛片高清在线完整版| 亚洲国产精品一区二区www在线 | 毛片基地黄久久久久久天堂| 精品一区二区成人精品| 色94色欧美sute亚洲线路一ni | 欧美网站大全在线观看| 国产亚洲视频系列| 亚洲国产精品一区二区久久| 国产毛片精品国产一区二区三区| 色综合久久久久久久久久久| 日韩精品一区二区三区视频在线观看 | 亚洲一区二区三区在线看 | 欧美精品久久久久久久多人混战| 久久你懂得1024| 亚洲国产精品一区二区尤物区| 国产精品18久久久久久久久久久久| 日本国产一区二区| 亚洲精品一区二区三区香蕉| 亚洲一区二区三区四区的| 国产激情精品久久久第一区二区| 欧美日韩精品是欧美日韩精品| 欧美国产精品中文字幕| 六月丁香综合在线视频| 欧美亚洲图片小说| 中文字幕亚洲在| 国产成人一区在线| 日韩欧美高清在线| 亚洲电影一区二区| 91色婷婷久久久久合中文| 久久日一线二线三线suv| 爽好久久久欧美精品| 一本到不卡精品视频在线观看| 久久精品视频在线看| 久久99热国产| 日韩三级.com| 日韩av在线发布| 欧美日韩情趣电影| 亚洲一区二区欧美日韩| 色悠悠亚洲一区二区| 中文字幕日本不卡| 成人国产免费视频| 亚洲国产精品成人综合| 国产另类ts人妖一区二区| 日韩三级视频中文字幕| 七七婷婷婷婷精品国产| 欧美精品久久久久久久多人混战| 亚洲一区免费在线观看| 欧美视频三区在线播放| 亚洲国产成人av好男人在线观看| 色国产综合视频| 亚洲一区二区三区四区不卡| 欧美在线一二三| 亚洲午夜精品网| 欧美日韩黄色一区二区| 午夜日韩在线观看| 91精品国产综合久久国产大片| 天堂久久一区二区三区| 欧美一区二区在线观看| 日韩黄色小视频| 精品精品欲导航| 国产精品99久久久久久有的能看| 国产午夜精品在线观看| 高清不卡一区二区在线| 1000部国产精品成人观看| 成人激情黄色小说| 亚洲美女一区二区三区| 欧美亚洲一区二区在线| 天天综合天天综合色| 5566中文字幕一区二区电影| 美女视频免费一区| 久久精品一二三| 91美女福利视频| 亚洲mv在线观看| 欧美成人欧美edvon| 国产成人精品一区二区三区四区| 国产精品美女久久久久aⅴ国产馆| 99免费精品在线| 亚欧色一区w666天堂| 日韩精品一区二区在线| 东方aⅴ免费观看久久av| 亚洲欧美国产三级| 宅男在线国产精品| 国产精品1区2区| 一区二区国产盗摄色噜噜| 制服丝袜亚洲精品中文字幕| 久久丁香综合五月国产三级网站| 久久久国产精品麻豆| 91麻豆精品一区二区三区| 日本在线观看不卡视频| 国产欧美日韩在线视频| 在线观看精品一区| 极品美女销魂一区二区三区免费| 亚洲国产电影在线观看| 欧美精品v国产精品v日韩精品| 国产一区二区三区蝌蚪| 一区二区三区在线免费播放 | 成人欧美一区二区三区视频网页| 欧美在线观看你懂的| 国产精品香蕉一区二区三区| 亚洲人成网站色在线观看| 欧美一区2区视频在线观看| 国产高清在线精品| 午夜精品免费在线观看| 国产日韩欧美麻豆| 欧美疯狂做受xxxx富婆| 成人国产一区二区三区精品| 日韩国产欧美一区二区三区| 中文成人综合网| 91麻豆精品91久久久久同性| 国产精品白丝jk黑袜喷水| 亚洲v中文字幕| 成人免费小视频| 久久久久亚洲蜜桃| 欧美另类高清zo欧美| 91色综合久久久久婷婷| 国产成人免费视频 | 99精品视频在线播放观看| 久久疯狂做爰流白浆xx| 亚洲v日本v欧美v久久精品| 欧美激情一二三区|