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

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

?? config.c

?? minicom2.0源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* * config.c	Read and write the configuration file(s). * *		This file is part of the minicom communications package, *		Copyright 1991-1995 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 12/20/93 - Added color selection to Screen & Keyboard menu * // fmg 2/15/94 - Added macro filename & Macro define selection to *                  Screen & Keyboard menu. Added window for macro *                  definition. * // jl 04.09.97 - Added configuring the character conversion tables * // jl 09.09.97 - Save conversion table filename in the config file and *                  read the table at startup * // jl 22.02.98 - Setting for filename selection window * // acme 25.02.98 - i18n * // jl 05.04.98 - Handling the P_MUL option *    jl 06.07.98 - the P_CONVCAP option *    jl 10.07.98 - moved functions pfix_home and do_log to file common.c *    jl 29.11.98 - the P_SHOWSPD option *    jl 05.04.99 - logging options menu *    er 18-Apr-99 - the P_MULTILINE option *    jl 11.02.2000 - the P_STOPB option */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include "rcsid.h"RCSID("$Id: config.c,v 1.7 2000/10/28 12:51:43 walker Exp $")#include "port.h"#include "minicom.h"#include "intl.h"void doconv();   /* jl 04.09.97 *//* Read in parameters. */void read_parms(){  FILE *fp;  int f;  char buf[64];  char *p;  /* Read global parameters */  if ((fp = fopen(parfile, "r")) == (FILE *)NULL) {  	if (real_uid == 0) {  		fputs(  _("minicom: WARNING: configuration file not found, using defaults\n"),stderr);  		sleep(2);  		return;  	}  	fprintf(stderr,	_("minicom: there is no global configuration file %s\n"), parfile);  	fputs(_("Ask your sysadm to create one (with minicom -s).\n"), stderr);  	exit(1);  }  readpars(fp, 1);  fclose(fp);  /* Read personal parameters */  if ((fp = sfopen(pparfile, "r")) != (FILE *)NULL) {	readpars(fp, 0);	fclose(fp);  }  /* fmg - set colors from readin values (Jcolor Xlates name to #) */  mfcolor = Jcolor(P_MFG); mbcolor = Jcolor(P_MBG);  tfcolor = Jcolor(P_TFG); tbcolor = Jcolor(P_TBG);  sfcolor = Jcolor(P_SFG); sbcolor = Jcolor(P_SBG); #if _HAVE_MACROS  /* fmg - Read personal macros */  if (P_MACROS[0] != 0) { /* fmg - null length? */	if ((fp = sfopen(pfix_home(P_MACROS), "r")) == NULL) {		if (errno != ENOENT) {                	fprintf(stderr,                _("minicom: cannot open macro file %s\n"), pfix_home(P_MACROS));                	sleep(1); /* fmg - give the "slow" ones time to read :-) */		}        } else {                readmacs(fp, 0);                fclose(fp);        }  } /* fmg - but it's perfectly OK if macros file name is NULL... */  if (P_CONVF[0] != 0) { /* jl 09.09.97 */    loadconv(P_CONVF);  }#endif  /* This code is to use old configuration files. */  for(f = PROTO_BASE; f < MAXPROTO; f++) {	if (P_PNAME(f)[0] && P_PIORED(f) != 'Y' && P_PIORED(f) != 'N') {		strncpy(buf, P_PNAME(f) - 2, sizeof(buf));		strcpy(P_PNAME(f), buf);		P_PIORED(f) = 'Y';		P_PFULL(f) = 'N';	}  }  p = mbasename(P_LOCK);  if (strncmp(p, "LCK", 3) == 0) *p = 0;}/* * fmg - Convert color word to number */int Jcolor(s)char *s;{        char c1, c3;        c1 = toupper(s[0]); /* fmg - it's already up but why tempt it? */        c3 = toupper(s[2]);        switch (c1)        {                case 'G'        : return (GREEN);                case 'Y'        : return (YELLOW);                case 'W'        : return (WHITE);                case 'R'        : return (RED);                case 'M'        : return (MAGENTA);                case 'C'        : return (CYAN);                case 'B'        : if (c3 == 'A')                                        return (BLACK);                                  if (c3 == 'U')                                        return (BLUE);                                  else                                        break;        }        return (-1); /* fmg - should never get here */} /* * See if we have write access to a file. * If it is not there, see if the directory is writable. */int waccess(s)char *s;{  char *p;  char buf[128];  struct stat stt;  /* We use stat instead of access(s, F_OK) because I couldn't get   * that to work under BSD 4.3 ...   */  if (stat(s, &stt) == 0) {	if (access(s, W_OK) == 0)		return(XA_OK_EXIST);	return(-1);  }  strncpy(buf, s, sizeof(buf)-1);  buf[sizeof(buf)-1]=0;  if((p = strrchr(buf, '/')) == (char *)NULL)  	strcpy(buf, ".");  else  	*p = '\0';  if (access(buf, W_OK) == 0)	return(XA_OK_NOTEXIST);  return(-1);}#if _HAVE_MACROS/* * fmg - Read in a macro, but first check to see if it's * allowed to do so. * * TODO: have System macros and user macros (in theory it's already there * since user can specify their own macros file (unless root makes it * private... that's silly) ... anyways, you know what I mean...) */static void mgets(w, x, y, s, len, maxl)WIN *w;int x, y;char *s;int len;int maxl;{  struct macs *m = (struct macs *)s;  if ((m->flags & PRIVATE) && real_uid != 0) {        werror(_("You are not allowed to change this parameter"));        return;  }  wlocate(w, x, y);  (void) wgets(w, s, len, maxl);  m->flags |= CHANGED;}#endif/* * Read in a string, but first check to see if it's * allowed to do so. */static void pgets(w, x, y, s, len, maxl)WIN *w;int x, y;char *s;int len;int maxl;{  struct pars *p = (struct pars *)s;  if ((p->flags & PRIVATE) && real_uid != 0) {  	werror(_("You are not allowed to change this parameter"));  	return;  }  wlocate(w, x, y);  (void) wgets(w, s, len, maxl);  p->flags |= CHANGED;}/* * Mark a variable as changed. */static void markch(s)char *s;{  struct pars *p = (struct pars *)s;  p->flags |= CHANGED;}/* * Set a string to a given value, but only if we're allowed to. */static void psets(s, w)char *s, *w;{  struct pars *p = (struct pars *)s;  if ((p->flags & PRIVATE) && real_uid != 0) {  	werror(_("You are not allowed to change this parameter"));  	return;  }  strcpy(s, w);  p->flags |= CHANGED;}/* * Get a a character from the keyboard. Translate lower * to uppercase and '\r' to '\n'. */static int rwxgetch(){  int c;  c = wxgetch();  if (islower(c)) c = toupper(c);  if (c == '\n' || c == '\r' || c == '\033') return('\n');  return(c);}#ifdef LOGFILEstatic void dologopt(){  WIN *w;  int c;  char *logfnstr = _(" A - File name (empty=disable) :"),       *logconn  = _(" B - Log connects and hangups  :"),       *logxfer  = _(" C - Log file transfers        :"),       *question = _("Change which setting?");  w = wopen(5, 4, 75, 8, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);  wtitle(w, TMID, _("Logging options"));  wprintf(w, "%s %s\n", logfnstr, P_LOGFNAME);  wprintf(w, "%s %s\n", logconn, _(P_LOGCONN));  wprintf(w, "%s %s\n", logxfer, _(P_LOGXFER));  wlocate(w, 4, 4);  wputs(w, question);  wredraw(w, 1);  while(1) {    wlocate(w, strlen(question) + 5, 5);    c = rwxgetch();    switch(c) {      case '\n':	wclose(w, 1);	return;      case 'A':	pgets(w, strlen(logfnstr) + 1, 0,	      P_LOGFNAME, PARS_VAL_LEN, PARS_VAL_LEN);	strcpy(logfname,P_LOGFNAME);	break;      case 'B':	strcpy(P_LOGCONN, yesno(P_LOGCONN[0] == 'N'));	wlocate(w, strlen(logconn) + 1, 1);	wprintf(w, "%s  ", _(P_LOGCONN));	markch(P_LOGCONN);	break;      case 'C':	strcpy(P_LOGXFER, yesno(P_LOGXFER[0] == 'N'));	wlocate(w, strlen(logxfer) + 1, 2);	wprintf(w, "%s  ", _(P_LOGXFER));	markch(P_LOGXFER);	break;      default:	break;    }  }}#endifstatic void dopath(){  WIN *w;  int c;  char* download_directory = _(" A - Download directory :"),      * upload_directory = _(" B - Upload directory   :"),      * script_directory = _(" C - Script directory   :"),      * script_program = _(" D - Script program     :"),      * kermit_program = _(" E - Kermit program     :"),      * log_settings   = _(" F - Logging options"),      * question = _("Change which setting?");    w = wopen(5, 5, 75, 12, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);  wprintf(w, "%s %.44s\n", download_directory, P_DOWNDIR);  wprintf(w, "%s %.44s\n", upload_directory, P_UPDIR);  wprintf(w, "%s %.44s\n", script_directory, P_SCRIPTDIR);  wprintf(w, "%s %.44s\n", script_program, P_SCRIPTPROG);  wprintf(w, "%s %.44s\n", kermit_program, P_KERMIT);#ifdef LOGFILE  wprintf(w, "%s\n", log_settings);#endif  wlocate(w, 4, 8);  wputs(w, question);  wredraw(w, 1);  while(1) {      wlocate(w, strlen (question) + 5, 8);      c = rwxgetch();      switch(c) {  	case '\n':  		wclose(w, 1);  		return;  	case 'A':  		pgets(w, strlen (download_directory) + 1, 0, P_DOWNDIR, 64, 64);		init_dir('d');  		break;  	case 'B':  		pgets(w, strlen (upload_directory) + 1, 1, P_UPDIR, 64, 64);		init_dir('u');  		break;  	case 'C':  		pgets(w, strlen (script_directory) + 1, 2, P_SCRIPTDIR, 64, 64);  		break;  	case 'D':  		pgets(w, strlen (script_program) + 1, 3, P_SCRIPTPROG, 64, 64);  		break;  	case 'E':  		pgets(w, strlen (kermit_program) + 1, 4, P_KERMIT, 64, 64);  		break;#ifdef LOGFILE  	case 'F':		dologopt();		break;  #endif  	default:  		break;      }  }}char *yesno(k)int k;{  return(k ? N_("Yes") : N_("No "));}/* * Input the definition of an up/download protocol. */static void inputproto(w, n)WIN *w;int n;{  int c = 0;  mpars[PROTO_BASE + n].flags |= CHANGED;  if (P_PNAME(n)[0] == '\0') {  	P_PNN(n) = 'Y';  	P_PUD(n) = 'U';	P_PFULL(n) = 'N';	P_PPROG(n)[0] = 0;	P_PIORED(n) = 'Y';  	wlocate(w, 4, n+1);  	wputs(w, "       ");  }  wlocate(w, 4, n+1);  (void ) wgets(w, P_PNAME(n), 10, 64);  pgets(w, 15, n+1, P_PPROG(n), 31, 64);  do {	wlocate(w, 47, n+1);	wprintf(w, "%c", P_PNN(n));	c = rwxgetch();	if (c == 'Y') P_PNN(n) = 'Y';	if (c == 'N') P_PNN(n) = 'N';  } while(c != '\r' && c != '\n');  do {	wlocate(w, 52, n+1);	wprintf(w, "%c", P_PUD(n));	c = rwxgetch();	if (c == 'U') P_PUD(n) = 'U';	if (c == 'D') P_PUD(n) = 'D';  } while(c != '\r' && c != '\n');  do {	wlocate(w, 57, n+1);	wprintf(w, "%c", P_PFULL(n));	c = rwxgetch();	if (c == 'Y') P_PFULL(n) = 'Y';	if (c == 'N') P_PFULL(n) = 'N';  } while(c != '\r' && c != '\n');  do {	wlocate(w, 65, n+1);	wprintf(w, "%c", P_PIORED(n));	c = rwxgetch();	if (c == 'Y') P_PIORED(n) = 'Y';	if (c == 'N') P_PIORED(n) = 'N';  } while(c != '\r' && c != '\n');  do {    	wlocate(w, 73, n+1);	wprintf(w, "%c", P_MUL(n));	c = rwxgetch();	if (c == 'Y') P_MUL(n) = 'Y';	if (c == 'N') P_MUL(n) = 'N';  } while (c != '\r' && c != '\n');}static void doproto(){  WIN *w;  int f, c;  char* zmodem_download = _("M  Zmodem download string activates..."),      * use_filename_selection = _("N  Use filename selection window......"),      * prompt_downdir =         _("O  Prompt for download directory......"),      * question = _("Change which setting? (SPACE to delete)");  w = wopen(1, 3, 78, 20, BDOUBLE, stdattr, mfcolor, mbcolor, 0, 0, 1);  wputs(w, _("     Name             Program"));  wlocate(w, 46, 0);  wputs(w, _("Name U/D FullScr IO-Red. Multi"));  for(f = 0; f < 12; f++) {     wlocate(w, 1, f+1);     if (P_PNAME(f)[0])  	wprintf(w, "%c  %-10.10s %-31.31s %c    %c    %c       %c       %c",		'A' + f,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频在线你懂得| 国产精品美女久久久久aⅴ| 懂色av中文字幕一区二区三区 | 精品国产电影一区二区| 波多野结衣中文字幕一区二区三区| 亚洲第一综合色| 亚洲欧洲三级电影| 精品日产卡一卡二卡麻豆| 在线视频你懂得一区二区三区| 国产麻豆一精品一av一免费 | 日韩精品五月天| 一区在线中文字幕| 精品久久久网站| 欧美男同性恋视频网站| 色综合久久88色综合天天免费| 国产精品99久久久久久久女警 | 激情综合网激情| 午夜精品久久久久久不卡8050| 国产精品午夜在线| 精品久久久三级丝袜| 欧美精品精品一区| 欧美在线制服丝袜| 色综合色狠狠综合色| 成人精品一区二区三区四区| 国内精品免费在线观看| 日本sm残虐另类| 午夜伊人狠狠久久| 亚洲一级不卡视频| 亚洲综合一区二区三区| 亚洲免费成人av| 久久亚洲精精品中文字幕早川悠里 | 国产精品国产三级国产aⅴ无密码| 2023国产精品自拍| 久久色中文字幕| 2019国产精品| 久久精品免视看| 欧美激情在线免费观看| 国产欧美一区二区精品秋霞影院| 久久久亚洲高清| 久久久精品综合| 国产亚洲欧美日韩俺去了| 久久欧美中文字幕| 国产精品欧美经典| 亚洲色图欧美激情| 一区二区在线看| 亚洲在线免费播放| 首页国产丝袜综合| 另类小说欧美激情| 精品一区二区综合| 福利一区二区在线观看| av成人免费在线观看| 91小视频免费观看| 欧美另类久久久品| 日韩久久久久久| 国产欧美精品一区aⅴ影院| 亚洲视频 欧洲视频| 亚洲综合清纯丝袜自拍| 免费人成在线不卡| 成人三级伦理片| 色噜噜久久综合| 91精品啪在线观看国产60岁| 精品久久久久久久人人人人传媒| 中文一区在线播放| 夜夜嗨av一区二区三区中文字幕 | 91成人免费在线视频| 欧美日韩久久一区| 精品噜噜噜噜久久久久久久久试看 | 日韩写真欧美这视频| 国产人成亚洲第一网站在线播放| 日韩美女啊v在线免费观看| 亚洲国产精品久久人人爱| 美女精品一区二区| 91在线国产福利| 在线播放国产精品二区一二区四区| 精品国一区二区三区| 中文字幕一区av| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产成人亚洲综合a∨猫咪| 欧美在线免费观看视频| 欧美v亚洲v综合ⅴ国产v| 亚洲少妇30p| 久久精品国产99国产| av色综合久久天堂av综合| 91麻豆精品久久久久蜜臀 | 国产精品美女一区二区三区| 亚洲午夜久久久久久久久久久| 精一区二区三区| 欧洲中文字幕精品| 国产视频一区在线观看 | 香蕉成人啪国产精品视频综合网 | 色婷婷久久久久swag精品| 91.麻豆视频| 欧美国产精品中文字幕| 亚洲成人午夜电影| 成人性生交大合| 欧美一区二区在线不卡| 最近日韩中文字幕| 国内精品伊人久久久久av一坑 | 日韩精品一区二区三区中文不卡| 国产精品麻豆99久久久久久| 蜜臀av性久久久久蜜臀aⅴ | 成人h版在线观看| 精品欧美乱码久久久久久| 亚洲一区二区三区四区不卡| 成人免费电影视频| 精品久久一区二区三区| 石原莉奈一区二区三区在线观看| k8久久久一区二区三区| 精品久久久三级丝袜| 日韩电影在线免费观看| 在线观看免费亚洲| 亚洲男人的天堂在线观看| 国产98色在线|日韩| 欧美精品一区男女天堂| 秋霞电影一区二区| 欧美日韩不卡在线| 一区二区三区国产精华| 99久久久久免费精品国产| 国产精品五月天| 国产成人亚洲精品青草天美| 久久一日本道色综合| 激情综合色丁香一区二区| 日韩欧美在线观看一区二区三区| 亚洲va在线va天堂| 欧美精品在线一区二区三区| 夜夜嗨av一区二区三区网页| 日本精品裸体写真集在线观看| 亚洲女性喷水在线观看一区| 91视频在线观看| 亚洲美女免费在线| 欧亚一区二区三区| 亚洲午夜在线电影| 欧美日本高清视频在线观看| 一区二区欧美精品| 色系网站成人免费| 亚洲小说欧美激情另类| 欧美日韩视频在线第一区 | 国产性色一区二区| 国产成人h网站| 国产精品视频线看| 92国产精品观看| 亚洲一区二区在线视频| 欧美日韩国产三级| 日本欧美大码aⅴ在线播放| 日韩视频在线你懂得| 国产精品一区不卡| 亚洲v中文字幕| 精品国产乱码久久久久久浪潮 | 国产精品入口麻豆九色| www.欧美色图| 亚洲一二三专区| 日韩一区二区在线观看视频播放| 韩国精品一区二区| 国产精品家庭影院| 欧美日韩色综合| 国产乱国产乱300精品| 国产精品卡一卡二| 欧美色图片你懂的| 九九**精品视频免费播放| 国产欧美日本一区视频| 日本道精品一区二区三区 | 免费精品视频在线| 国产亚洲精品久| 97久久精品人人澡人人爽| 香蕉成人伊视频在线观看| wwwwww.欧美系列| 91麻豆精品在线观看| 奇米四色…亚洲| 欧美激情一区不卡| 欧美日韩久久久一区| 国产精品1024| 亚洲成a天堂v人片| 欧美国产日产图区| 欧美日韩一区二区在线观看| 国内成人免费视频| 亚洲男人的天堂在线aⅴ视频| 欧美一级日韩一级| 99久久国产综合精品色伊| 无吗不卡中文字幕| 国产精品午夜电影| 91精品国产福利| 99re成人在线| 久久激情五月激情| 亚洲中国最大av网站| wwww国产精品欧美| 欧美日韩一本到| 成人app在线| 久久se精品一区二区| 亚洲色图视频免费播放| 久久久精品tv| 亚洲卡通动漫在线| 精品美女被调教视频大全网站| 91福利视频在线| 成人的网站免费观看| 麻豆高清免费国产一区| 一区二区三区不卡在线观看| 久久久午夜电影| 日韩免费看的电影| 欧美日韩不卡视频| 91在线国产观看|