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

📄 lyreadcfg.c

📁 基于rtos开发的浏览器!
💻 C
📖 第 1 页 / 共 3 页
字号:
 */PUBLIC void read_cfg ARGS1(	char *, cfg_filename){    FILE *fp;    char buffer[501];    char temp[501];    char *cp, *cp1;    int i, j, len;    /*     *	Locate and open the file.     */    if (!cfg_filename || strlen(cfg_filename) == 0) {	if (TRACE)	    fprintf(stderr,"No filename following -cfg switch!\n");	return;    }    if ((fp = fopen(cfg_filename,"r")) == NULL) {	if (TRACE)	    fprintf(stderr,"lynx.cfg file not found as %s\n",cfg_filename);	return;    }    have_read_cfg=TRUE;    /*     *	Process each line in the file.     */    while (fgets(buffer, 500, fp) != NULL) {	/*	 *  Strip off \n at the end.	 */	if ((cp = (char *)strchr(buffer, '\n')) != NULL)	    *cp = '\0';	/*	 *  Trim off any trailing comments.	 */	if ((cp = (char *)strrchr(buffer, ':')) != NULL) {	    if ((cp1 = (char *)strchr(cp, '#')) != NULL) {		cp1--;		if (isspace((unsigned char)*cp1)) {		    *cp1 = '\0';		}	    }	}	/*	 *  Strip off trailing white space.	 */	len = strlen(buffer);	while (len && isspace(buffer[len-1])) {	    len--;	    buffer[len] = '\0';	}	/*	 *  Skip any blank or purely comment lines.	 */	if (buffer[0] == '\0' || buffer[0] == '#')	    continue;	/*	 * Process the string buffer.	 */	switch (TOUPPER(buffer[0])) {	case 'A':	if (!strncasecomp(buffer, "ALERTSECS:", 10)) {	    strcpy(temp, buffer+10);	    for (i = 0; temp[i]; i++) {		if (!isdigit(temp[i])) {		    temp[i] = '\0';		    break;		}	    }	    if (temp[0])		AlertSecs = atoi(temp);	} else if (!strncasecomp(buffer, "ALWAYS_RESUBMIT_POSTS:", 22)) {	    LYresubmit_posts = is_true(buffer+22);#ifdef EXEC_LINKS	} else if (!strncasecomp(buffer, "ALWAYS_TRUSTED_EXEC:", 20)) {	    add_trusted(&buffer[20], ALWAYS_EXEC_PATH); /* Add exec path */#endif /* EXEC_LINKS */	} else if (!strncasecomp(buffer, "ASSUME_CHARSET:", 15)) {	    StrAllocCopy(UCAssume_MIMEcharset, buffer+15);	    for (i = 0; UCAssume_MIMEcharset[i]; i++)		UCAssume_MIMEcharset[i] = TOLOWER(UCAssume_MIMEcharset[i]);	    UCLYhndl_for_unspec =		UCGetLYhndl_byMIME(UCAssume_MIMEcharset);	} else if (!strncasecomp(buffer, "ASSUME_LOCAL_CHARSET:", 21)) {	    StrAllocCopy(UCAssume_localMIMEcharset, buffer+21);	    for (i = 0; UCAssume_localMIMEcharset[i]; i++)		UCAssume_localMIMEcharset[i] =			TOLOWER(UCAssume_localMIMEcharset[i]);	    UCLYhndl_HTFile_for_unspec =		UCGetLYhndl_byMIME(UCAssume_localMIMEcharset);	} else if (!strncasecomp(buffer, "ASSUME_UNREC_CHARSET:", 21)) {	    StrAllocCopy(UCAssume_unrecMIMEcharset, buffer+21);	    for (i = 0; UCAssume_unrecMIMEcharset[i]; i++)		UCAssume_unrecMIMEcharset[i] =			TOLOWER(UCAssume_unrecMIMEcharset[i]);	    UCLYhndl_for_unrec =		UCGetLYhndl_byMIME(UCAssume_unrecMIMEcharset);	}	break;	case 'B':	if (!strncasecomp(buffer, "BLOCK_MULTI_BOOKMARKS:", 22)) {	    LYMBMBlocked = is_true(buffer+22);	} else if (!strncasecomp(buffer, "BOLD_H1:", 8)) {	    bold_H1 = is_true(buffer+8);	} else if (!strncasecomp(buffer, "BOLD_HEADERS:", 13)) {	    bold_headers = is_true(buffer+13);	} else if (!strncasecomp(buffer, "BOLD_NAME_ANCHORS:", 18)) {	    bold_name_anchors = is_true(buffer+18);	}	break;	case 'C':	if (!strncasecomp(buffer, "CASE_SENSITIVE_ALWAYS_ON:", 25)) {	     case_sensitive = is_true(buffer+25);	} else if (!strncasecomp(buffer, "CHARACTER_SET:", 14)) {	    for (i = 0; LYchar_set_names[i]; i++) {		if (!strncmp(buffer+14,			     LYchar_set_names[i], strlen(buffer+14))) {		    current_char_set=i;		    HTMLSetRawModeDefault(i);		    break;		}	    }	} else if (!strncasecomp(buffer, "CHECKMAIL:", 10)) {	    check_mail = is_true(buffer+10);	} else if (!strncasecomp(buffer, "COLLAPSE_BR_TAGS:", 17)) {		LYCollapseBRs = is_true(buffer+17);#if USE_COLOR_TABLE	} else if (!strncasecomp(buffer, "COLOR:", 6)) {		parse_color(buffer + 6);#endif /* USE_COLOR_TABLE */	} else if (!strncasecomp(buffer, "cso_proxy:", 10)) {	    if (getenv("cso_proxy") == NULL) {#ifdef VMS		strcpy(temp, "cso_proxy");		Define_VMSLogical(temp, (char *)&buffer[10]);#else		strcpy(temp, "cso_proxy=");		StrAllocCopy(cso_proxy_putenv_cmd, temp);		StrAllocCat(cso_proxy_putenv_cmd, (char *)&buffer[10]);		putenv(cso_proxy_putenv_cmd);#endif /* VMS */	    }#ifdef VMS	} else if (!strncasecomp(buffer, "CSWING_PATH:", 12)) {	    StrAllocCopy(LYCSwingPath, buffer+12);#endif /* VMS */	}	break;	case 'D':	if (!strncasecomp(buffer, "DEFAULT_BOOKMARK_FILE:", 22)) {	    StrAllocCopy(bookmark_page, buffer+22);	    StrAllocCopy(BookmarkPage, bookmark_page);	    StrAllocCopy(MBM_A_subbookmark[0], bookmark_page);	    StrAllocCopy(MBM_A_subdescript[0], MULTIBOOKMARKS_DEFAULT);	} else if (!strncasecomp(buffer, "DEFAULT_CACHE_SIZE:", 19)) {		HTCacheSize = atoi(buffer+19);	} else if (!system_editor &&		   !strncasecomp(buffer, "DEFAULT_EDITOR:", 15)) {	    StrAllocCopy(editor, buffer+15);	} else if (!strncasecomp(buffer, "DEFAULT_INDEX_FILE:", 19)) {	    StrAllocCopy(indexfile, buffer+19);	} else if (!strncasecomp(buffer,			"DEFAULT_KEYPAD_MODE_IS_NUMBERS_AS_ARROWS:", 41)) {	    if (is_true(buffer+41))		keypad_mode = NUMBERS_AS_ARROWS;	    else		keypad_mode = LINKS_ARE_NUMBERED;	} else if (!strncasecomp(buffer, "DEFAULT_USER_MODE:", 18)) {	    if (!strncasecomp(buffer+18, "NOVICE", 6))		user_mode = NOVICE_MODE;	    else if (!strncasecomp(buffer+18, "INTER", 5))		user_mode = INTERMEDIATE_MODE;	    else if (!strncasecomp(buffer+18, "ADVANCE", 7))		user_mode = ADVANCED_MODE;#if defined(VMS) && defined(VAXC) && !defined(__DECC)	} else if (!strncasecomp(buffer,				 "DEFAULT_VIRTUAL_MEMORY_SIZE:", 28)) {		HTVirtualMemorySize = atoi(buffer+28);#endif /* VMS && VAXC && !__DECC */#ifdef DIRED_SUPPORT	} else if (!strncasecomp(buffer, "DIRED_MENU:", 11)) {	    add_menu_item(&buffer[11]);#endif /* DIRED_SUPPORT */	} else if (!strncasecomp(buffer, "DOWNLOADER:", 11)) {	    add_item_to_list(&buffer[11], &downloaders);	}	break;	case 'E':	if (!strncasecomp(buffer, "EMACS_KEYS_ALWAYS_ON:", 21)) {	    emacs_keys = is_true(buffer+21);	} else if (!strncasecomp(buffer, "ENABLE_SCROLLBACK:", 18)) {	    enable_scrollback = is_true(buffer+18);	}#ifdef USE_EXTERNALS	else if(!strncasecomp(buffer,"EXTERNAL:",9)) {	    add_item_to_list(&buffer[9],&externals);	}#endif	break;	case 'F':	if (!strncasecomp(buffer, "finger_proxy:", 13)) {	    if (getenv("finger_proxy") == NULL) {#ifdef VMS		strcpy(temp, "finger_proxy");		Define_VMSLogical(temp, (char *)&buffer[13]);#else		strcpy(temp, "finger_proxy=");		StrAllocCopy(finger_proxy_putenv_cmd, temp);		StrAllocCat(finger_proxy_putenv_cmd, (char *)&buffer[13]);		putenv(finger_proxy_putenv_cmd);#endif /* VMS */	    }	} else if (!strncasecomp(buffer, "FORCE_SSL_COOKIES_SECURE:", 25)) {	    LYForceSSLCookiesSecure = is_true(buffer+25);	} else if (!strncasecomp(buffer, "ftp_proxy:", 10)) {	    if (getenv("ftp_proxy") == NULL) {#ifdef VMS		strcpy(temp, "ftp_proxy");		Define_VMSLogical(temp, (char *)&buffer[10]);#else		strcpy(temp, "ftp_proxy=");		StrAllocCopy(ftp_proxy_putenv_cmd, temp);		StrAllocCat(ftp_proxy_putenv_cmd, (char *)&buffer[10]);		putenv(ftp_proxy_putenv_cmd);#endif /* VMS */	    }	}	break;	case 'G':	if (!strncasecomp(buffer, "GLOBAL_EXTENSION_MAP:", 21)) {	    StrAllocCopy(global_extension_map, buffer+21);	} else if (!strncasecomp(buffer, "GLOBAL_MAILCAP:", 15)) {	    StrAllocCopy(global_type_map, buffer+15);	} else if (!strncasecomp(buffer, "gopher_proxy:", 13)) {	    if (getenv("gopher_proxy") == NULL) {#ifdef VMS		strcpy(temp, "gopher_proxy");		Define_VMSLogical(temp, (char *)&buffer[13]);#else		strcpy(temp, "gopher_proxy=");		StrAllocCopy(gopher_proxy_putenv_cmd, temp);		StrAllocCat(gopher_proxy_putenv_cmd, (char *)&buffer[13]);		putenv(gopher_proxy_putenv_cmd);#endif /* VMS */	    }	} else if (!strncasecomp(buffer, "GOTOBUFFER:", 11)) {	    goto_buffer = is_true(buffer+11);	}	break;	case 'H':	if (!strncasecomp(buffer, "HELPFILE:", 9)) {	    StrAllocCopy(helpfile, buffer+9);	} else if (!strncasecomp(buffer, "HISTORICAL_COMMENTS:", 20)) {	    historical_comments = is_true(buffer+20);	} else if (!strncasecomp(buffer, "http_proxy:", 11)) {	    if (getenv("http_proxy") == NULL) {#ifdef VMS		strcpy(temp, "http_proxy");		Define_VMSLogical(temp, (char *)&buffer[11]);#else		strcpy(temp, "http_proxy=");		StrAllocCopy(http_proxy_putenv_cmd, temp);		StrAllocCat(http_proxy_putenv_cmd, (char *)&buffer[11]);		putenv(http_proxy_putenv_cmd);#endif /* VMS */	    }	} else if (!strncasecomp(buffer, "https_proxy:", 12)) {	    if (getenv("https_proxy") == NULL) {#ifdef VMS		strcpy(temp, "https_proxy");		Define_VMSLogical(temp, (char *)&buffer[12]);#else		strcpy(temp, "https_proxy=");		StrAllocCopy(https_proxy_putenv_cmd, temp);		StrAllocCat(https_proxy_putenv_cmd, (char *)&buffer[12]);		putenv(https_proxy_putenv_cmd);#endif /* VMS */	    }	}	break;	case 'I':	if (!strncasecomp(buffer, "INFOSECS:", 9)) {	    strcpy(temp, buffer+9);	    for (i = 0; temp[i]; i++) {		if (!isdigit(temp[i])) {		    temp[i] = '\0';		    break;		}	    }	    if (temp[0])		InfoSecs = atoi(temp);	}	break;	case 'J':	if (!strncasecomp(buffer, "JUMP_PROMPT:", 12)) {	    StrAllocCopy(jumpprompt, buffer+12);	} else if (!strncasecomp(buffer, "JUMPBUFFER:", 11)) {	    jump_buffer = is_true(buffer+11);	} else if (!strncasecomp(buffer, "JUMPFILE:", 9)) {	    if (!LYJumpInit(buffer)) {		if (TRACE)		    fprintf(stderr, "Failed to register %s\n", buffer);	    }	}	break;	case 'K':	if (!strncasecomp(buffer, "KEYMAP:", 7)) {	    char *key;	    char *func;	    key = buffer + 7;	    if ((func = strchr(key, ':')) != NULL)	{		*func++ = '\0';		/* Allow comments on the ends of key remapping lines. - DT */		if (!remap(key, strtok(func, " \t\n#")))		    fprintf(stderr,			    "key remapping of %s to %s failed\n",key,func);		else if (!strcmp("TOGGLE_HELP", strtok(func, " \t\n#")))		    LYUseNoviceLineTwo = FALSE;	    }	}	break;	case 'L':	if (!strncasecomp(buffer, "LIST_NEWS_NUMBERS:", 18)) {		LYListNewsNumbers = is_true(buffer+18);	} else if (!strncasecomp(buffer, "LIST_NEWS_DATES:", 16)) {		LYListNewsDates = is_true(buffer+16);#ifndef VMS	} else if (!strncasecomp(buffer, "LIST_FORMAT:", 12)) {	    StrAllocCopy(list_format, buffer+12);#endif /* !VMS */	} else if (!strncasecomp(buffer, "LOCALHOST_ALIAS:", 16)) {	    LYAddLocalhostAlias(buffer+16);	} else if (!strncasecomp(buffer, "LOCAL_DOMAIN:", 13)) {	    StrAllocCopy(LYLocalDomain, buffer+13);#if defined(EXEC_LINKS) || defined(EXEC_SCRIPTS)	} else if (!strncasecomp(buffer,			 "LOCAL_EXECUTION_LINKS_ALWAYS_ON:", 32)) {	    local_exec = is_true(buffer+32);	} else if (!strncasecomp(buffer,			 "LOCAL_EXECUTION_LINKS_ON_BUT_NOT_REMOTE:", 40)) {	    local_exec_on_local_files = is_true(buffer+40);#endif /* defined(EXEC_LINKS) || defined(EXEC_SCRIPTS) */#ifdef LYNXCGI_LINKS	} else if (!strncasecomp(buffer, "LYNXCGI_ENVIRONMENT:", 20)) {	    add_lynxcgi_environment(buffer+20);#ifndef VMS	/* WebSter Mods - Next 2 Lines -jkt */	} else if (!strncasecomp(buffer, "LYNXCGI_DOCUMENT_ROOT:", 22)) {	    StrAllocCopy(LYCgiDocumentRoot, buffer+22);#endif /* !VMS */#endif /* LYNXCGI_LINKS */	} else if (!strncasecomp(buffer, "LYNX_HOST_NAME:", 15)) {	    StrAllocCopy(LYHostName, buffer+15);	} else if (!strncasecomp(buffer, "LYNX_SIG_FILE:", 14)) {	    strcpy(temp, (buffer+14));	    if (LYPathOffHomeOK(temp, 256)) {		StrAllocCopy(LynxSigFile, temp);		LYAddPathToHome(temp, 256, LynxSigFile);		StrAllocCopy(LynxSigFile, temp);		if (TRACE)		    fprintf(stderr,			    "LYNX_SIG_FILE set to '%s'\n", LynxSigFile);	    } else {		if (TRACE)		    fprintf(stderr, "LYNX_SIG_FILE '%s' is bad. Ignoring.\n",				    LYNX_SIG_FILE);	    }	}	break;	case 'M':	if (!strncasecomp(buffer, "MAIL_SYSTEM_ERROR_LOGGING:", 26)) {	    error_logging = is_true(buffer+26);#ifdef VMS	} else if (!strncasecomp(buffer, "MAIL_ADRS:", 10)) {	    StrAllocCopy(mail_adrs, buffer+10);#endif /* VMS */

⌨️ 快捷键说明

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