📄 lyoptions.c
字号:
*/ addstr("NONE"); clrtoeol(); option_statusline(VALUE_ACCEPTED); response = ' '; break; } } /* * Set the new DISPLAY variable. - FM */#ifdef VMS { int i; for (i = 0; display_option[i]; i++) display_option[i] = TOUPPER(display_option[i]); Define_VMSLogical(DISPLAY, display_option); }#else sprintf(putenv_command, "DISPLAY=%s", display_option); putenv(putenv_command);#endif /* VMS */ if ((cp = getenv(DISPLAY)) != NULL && *cp != '\0') { StrAllocCopy(display, cp); } else { FREE(display); } cp = NULL; addstr(display ? display : "NONE"); clrtoeol(); if ((display == NULL && *display_option == '\0') || (display != NULL && !strcmp(display, display_option))) { if (display == NULL && LYisConfiguredForX == TRUE) { option_statusline(VALUE_ACCEPTED_WARNING_X); } else if (display != NULL && LYisConfiguredForX == FALSE) { option_statusline(VALUE_ACCEPTED_WARNING_NONX); } else { option_statusline(VALUE_ACCEPTED); } } else { if (*display_option) { option_statusline(FAILED_TO_SET_DISPLAY); } else { option_statusline(FAILED_CLEAR_SET_DISPLAY); } } response = ' '; break; case 'l': /* Change multibookmarks option. */ case 'L': if (LYMBMBlocked) { option_statusline(MULTIBOOKMARKS_DISALLOWED); response = ' '; break; } choices[0] = NULL; StrAllocCopy(choices[0], "OFF "); choices[1] = NULL; StrAllocCopy(choices[1], "STANDARD"); choices[2] = NULL; StrAllocCopy(choices[2], "ADVANCED"); choices[3] = NULL; if (!LYSelectPopups) { LYMultiBookmarks = boolean_choice((LYMultiBookmarks * (1 + LYMBMAdvanced)), L_HOME, C_MULTI, choices); } else { LYMultiBookmarks = popup_choice((LYMultiBookmarks * (1 + LYMBMAdvanced)), L_HOME, (C_MULTI - 1), choices, 3, FALSE); } if (LYMultiBookmarks == 2) { LYMultiBookmarks = TRUE; LYMBMAdvanced = TRUE; } else { LYMBMAdvanced = FALSE; }#if defined(VMS) || defined(USE_SLANG) if (LYSelectPopups) { move(L_HOME, C_MULTI); clrtoeol(); addstr(choices[(LYMultiBookmarks * (1 + LYMBMAdvanced))]); }#endif /* VMS || USE_SLANG */ FREE(choices[0]); FREE(choices[1]); FREE(choices[2]);#if !defined(VMS) && !defined(USE_SLANG) if (!LYSelectPopups)#endif /* !VMS && !USE_SLANG */ { move(L_HOME, B_BOOK); clrtoeol(); if (LYMultiBookmarks) { addstr("review/edit B)ookmarks files"); } else { addstr("B)ookmark file: "); addstr((bookmark_page && *bookmark_page) ? bookmark_page : "NONE"); } } response = ' '; if (LYSelectPopups) {#if !defined(VMS) || defined(USE_SLANG) if (term_options) { term_options = FALSE; } else { AddValueAccepted = TRUE; } goto draw_options;#else term_options = FALSE;#endif /* !VMS || USE_SLANG */ } break; case 'b': /* Change the bookmark page location. */ case 'B': /* * Anonymous users should not be allowed to * change the bookmark page. */ if (!no_bookmark) { if (LYMultiBookmarks) { edit_bookmarks(); signal(SIGINT, terminate_options); goto draw_options; } if (bookmark_page && *bookmark_page) { strcpy(display_option, bookmark_page); } else { /* clear the NONE */ move(L_HOME, C_DEFAULT); clrtoeol(); *display_option = '\0'; } option_statusline(ACCEPT_DATA); move(L_HOME, C_DEFAULT); start_bold(); ch = LYgetstr(display_option, VISIBLE, sizeof(display_option), NORECALL); stop_bold(); move(L_HOME, C_DEFAULT); if (term_options || ch == -1 || *display_option == '\0') { addstr((bookmark_page && *bookmark_page) ? bookmark_page : "NONE"); } else if (!LYPathOffHomeOK(display_option, sizeof(display_option))) { addstr((bookmark_page && *bookmark_page) ? bookmark_page : "NONE"); clrtoeol(); option_statusline(USE_PATH_OFF_HOME); response = ' '; break; } else { StrAllocCopy(bookmark_page, display_option); StrAllocCopy(MBM_A_subbookmark[0], bookmark_page); addstr(bookmark_page); } clrtoeol(); if (ch == -1) { option_statusline(CANCELLED); sleep(InfoSecs); option_statusline(""); } else { option_statusline(VALUE_ACCEPTED); } } else { /* anonymous */ option_statusline(BOOKMARK_CHANGE_DISALLOWED); } response = ' '; break; case 'f': /* Change ftp directory sorting. */ case 'F': /* (also local for non-DIRED) */ /* * Copy strings into choice array. */ choices[0] = NULL; StrAllocCopy(choices[0], "By Filename"); choices[1] = NULL; StrAllocCopy(choices[1], "By Type "); choices[2] = NULL; StrAllocCopy(choices[2], "By Size "); choices[3] = NULL; StrAllocCopy(choices[3], "By Date "); choices[4] = NULL; if (!LYSelectPopups) { HTfileSortMethod = boolean_choice(HTfileSortMethod, L_FTPSTYPE, -1, choices); } else { HTfileSortMethod = popup_choice(HTfileSortMethod, L_FTPSTYPE, -1, choices, 4, FALSE);#if defined(VMS) || defined(USE_SLANG) move(L_FTPSTYPE, COL_OPTION_VALUES); clrtoeol(); addstr(choices[HTfileSortMethod]);#endif /* VMS || USE_SLANG */ } FREE(choices[0]); FREE(choices[1]); FREE(choices[2]); FREE(choices[3]); response = ' '; if (LYSelectPopups) {#if !defined(VMS) || defined(USE_SLANG) if (term_options) { term_options = FALSE; } else { AddValueAccepted = TRUE; } goto draw_options;#else term_options = FALSE;#endif /* !VMS || USE_SLANG */ } break; case 'p': /* Change personal mail address for From headers. */ case 'P': if (personal_mail_address && *personal_mail_address) { strcpy(display_option, personal_mail_address); } else { /* clear the NONE */ move(L_MAIL_ADDRESS, COL_OPTION_VALUES); addstr(" "); *display_option = '\0'; } option_statusline(ACCEPT_DATA); move(L_MAIL_ADDRESS, COL_OPTION_VALUES); start_bold(); ch = LYgetstr(display_option, VISIBLE, sizeof(display_option), NORECALL); stop_bold(); move(L_MAIL_ADDRESS, COL_OPTION_VALUES); if (term_options || ch == -1) { addstr((personal_mail_address && *personal_mail_address) ? personal_mail_address : "NONE"); } else if (*display_option == '\0') { FREE(personal_mail_address); addstr("NONE"); } else { StrAllocCopy(personal_mail_address, display_option); addstr(display_option); } clrtoeol(); if (ch == -1) { option_statusline(CANCELLED); sleep(InfoSecs); option_statusline(""); } else { option_statusline(VALUE_ACCEPTED); } response = ' '; break; case 's': /* Change case sentitivity for searches. */ case 'S': /* * Copy strings into choice array. */ choices[0] = NULL; StrAllocCopy(choices[0], "CASE INSENSITIVE"); choices[1] = NULL; StrAllocCopy(choices[1], "CASE SENSITIVE "); choices[2] = NULL; case_sensitive = boolean_choice(case_sensitive, L_SSEARCH, -1, choices); FREE(choices[0]); FREE(choices[1]); response = ' '; break; case '\001': /* Change assume_charset setting. */ if (use_assume_charset) { int i, curval; char ** assume_list; assume_list = (char **)calloc(LYNumCharsets + 1, sizeof(char *)); if (!assume_list) { outofmem(__FILE__, "options"); } for (i = 0; i < LYNumCharsets; i++) { assume_list[i] = (char *)LYCharSet_UC[i].MIMEname; } curval = UCLYhndl_for_unspec; if (curval == current_char_set && UCAssume_MIMEcharset) { curval = UCGetLYhndl_byMIME(UCAssume_MIMEcharset); } if (curval < 0) curval = LYRawMode ? current_char_set : 0; if (!LYSelectPopups) { UCLYhndl_for_unspec = boolean_choice(curval, L_ASSUME_CHARSET, -1, assume_list); } else { UCLYhndl_for_unspec = popup_choice(curval, L_ASSUME_CHARSET, -1, assume_list, 0, FALSE);#if defined(VMS) || defined(USE_SLANG) move(L_ASSUME_CHARSET, COL_OPTION_VALUES); clrtoeol(); if (UCLYhndl_for_unspec >= 0) addstr((char *) LYCharSet_UC[UCLYhndl_for_unspec].MIMEname);#endif /* VMS || USE_SLANG */ } /* * Set the raw 8-bit or CJK mode defaults and * character set if changed. - FM */ if (CurrentAssumeCharSet != UCLYhndl_for_unspec || UCLYhndl_for_unspec != curval) { if (UCLYhndl_for_unspec != CurrentAssumeCharSet) { StrAllocCopy(UCAssume_MIMEcharset, LYCharSet_UC[UCLYhndl_for_unspec].MIMEname); } LYRawMode = (UCLYhndl_for_unspec == current_char_set); HTMLSetUseDefaultRawMode(current_char_set, LYRawMode); HTMLUseCharacterSet(current_char_set); CurrentAssumeCharSet = UCLYhndl_for_unspec; CurrentRawMode = LYRawMode;#if !defined(VMS) && !defined(USE_SLANG) if (!LYSelectPopups)#endif /* !VMS && !USE_SLANG */ { move(L_Rawmode, COL_OPTION_VALUES); clrtoeol(); addstr(LYRawMode ? "ON " : "OFF"); } } FREE(assume_list); response = ' '; if (LYSelectPopups) {#if !defined(VMS) || defined(USE_SLANG) if (term_options) { term_options = FALSE; } else { AddValueAccepted = TRUE; } goto draw_options;#else term_options = FALSE;#endif /* !VMS || USE_SLANG */ } } else { option_statusline(NEED_ADVANCED_USER_MODE); AddValueAccepted = FALSE; } break; case 'c': /* Change charset setting. */ case 'C': if (!LYSelectPopups) { current_char_set = boolean_choice(current_char_set, L_Charset, -1, (char **)LYchar_set_names); } else { current_char_set = popup_choice(current_char_set, L_Charset, -1, (char **)LYchar_set_names, 0, FALSE);#if defined(VMS) || defined(USE_SLANG) move(L_Charset, COL_OPTION_VALUES); clrtoeol(); addstr((char *)LYchar_set_names[current_char_set]);#endif /* VMS || USE_SLANG */ } /* * Set the raw 8-bit or CJK mode defaults and * character set if changed. - FM */ if (CurrentCharSet != current_char_set) { HTMLSetRawModeDefault(current_char_set); LYUseDefaultRawMode = TRUE; HTMLUseCharacterSet(current_char_set); CurrentCharSet = current_char_set; CurrentRawMode = LYRawMode;#if !defined(VMS) && !defined(USE_SLANG) if (!LYSelectPopups)#endif /* !VMS && !USE_SLANG */ { move(L_Rawmode, COL_OPTION_VALUES); clrtoeol(); addstr(LYRawMode ? "ON " : "OFF"); } } response = ' '; if (LYSelectPopups) {#if !defined(VMS) || defined(USE_SLANG) if (term_options) { term_options = FALSE; } else { AddValueAccepted = TRUE; } goto draw_options;#else term_options = FALSE;#endif /* !VMS || USE_SLANG */ } break; case 'o': /* Change raw mode setting. */ case 'O': /* * Copy strings into choice array. */ choices[0] = NULL; StrAllocCopy(choices[0], "OFF"); choices[1] = NULL; StrAllocCopy(choices[1], "ON "); choices[2] = NULL; LYRawMode = boolean_choice(LYRawMode, L_Rawmode, -1, choices); /* * Set the LYUseDefaultRawMode value and character * handling if LYRawMode was changed. - FM */ if (CurrentRawMode != LYRawMode) { HTMLSetUseDefaultRawMode(current_char_set, LYRawMode); HTMLSetCharacterHandling(current_char_set); CurrentRawMode = LYRawMode; } FREE(choices[0]); FREE(choices[1]); response = ' '; break; case 'g': /* Change language preference. */ case 'G': if (language && *language) { strcpy(display_option, language); } else { /* clear the NONE */ move(L_LANGUAGE, COL_OPTION_VALUES); addstr(" "); *display_option = '\0'; } option_statusline(ACCEPT_DATA); move(L_LANGUAGE, COL_OPTION_VALUES); start_bold(); ch = LYgetstr(display_option, VISIBLE, sizeof(display_option), NORECALL); stop_bold(); move(L_LANGUAGE, COL_OPTION_VALUES); if (term_options || ch == -1) { addstr((language && *language) ? language : "NONE"); } else if (*display_option == '\0') { FREE(language); addstr("NONE"); } else { StrAllocCopy(language, display_option); addstr(display_option); } clrtoeol(); if (ch == -1) { option_statusline(CANCELLED); sleep(InfoSecs); option_statusline(""); } else { option_statusline(VALUE_ACCEPTED); } response = ' '; break; case 'h': /* Change charset preference. */ case 'H': if (pref_charset && *pref_charset) { strcpy(display_option, pref_charset); } else { /* clear the NONE */ move(L_PREF_CHARSET, COL_OPTION_VALUES); addstr(" "); *display_option = '\0'; } option_statusline(ACCEPT_DATA); move(L_PREF_CHARSET, COL_OPTION_VALUES); start_bold(); ch = LYgetstr(display_option, VISIBLE, sizeof(display_option), NORECALL); stop_bold(); move(L_PREF_CHARSET, COL_OPTION_VALUES); if (term_options || ch == -1) { addstr((pref_charset && *pref_charset) ? pref_charset : "NONE"); } else if (*display_option == '\0') { FREE(pref_charset); addstr("NONE"); } else { StrAllocCopy(pref_charset, display_option); addstr(display_option); } clrtoeol(); if (ch == -1) { option_statusline(CANCELLED); sleep(InfoSecs); option_statusline(""); } else { option_statusline(VALUE_ACCEPTED); } response = ' '; break; case 'v': /* Change VI keys setting. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -