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

📄 menu.c

📁 this is the file used to browse web
💻 C
📖 第 1 页 / 共 3 页
字号:
	d->items[1].fn = check_number;	d->items[1].gid = 0;	d->items[1].gnum = 256;	d->items[2].type = D_BUTTON;	d->items[2].gid = B_ENTER;	d->items[2].fn = ok_dialog;	d->items[2].text = TEXT(T_OK);	d->items[3].type = D_BUTTON;	d->items[3].gid = B_ESC;	d->items[3].fn = cancel_dialog;	d->items[3].text = TEXT(T_CANCEL);	d->items[4].type = D_END;	do_dialog(term, d, getml(d, NULL));}void menu_shell(struct terminal *term, void *xxx, void *yyy){	unsigned char *sh;	if (!(sh = GETSHELL)) sh = DEFAULT_SHELL;	exec_on_terminal(term, sh, "", 1);}void menu_kill_background_connections(struct terminal *term, void *xxx, void *yyy){	abort_background_connections();}void menu_save_html_options(struct terminal *term, void *xxx, struct session *ses){	memcpy(&dds, &ses->ds, sizeof(struct document_setup));	write_html_config(term);}unsigned char marg_str[2];void html_refresh(struct session *ses){	ses->ds.margin = atoi(marg_str);	html_interpret(ses);	draw_formatted(ses);	load_frames(ses, ses->screen);	process_file_requests(ses);	print_screen_status(ses);}unsigned char *html_texts[] = { TEXT(T_DISPLAY_TABLES), TEXT(T_DISPLAY_FRAMES), TEXT(T_DISPLAY_LINKS_TO_IMAGES), TEXT(T_LINK_ORDER_BY_COLUMNS), TEXT(T_NUMBERED_LINKS), TEXT(T_TEXT_MARGIN), "", TEXT(T_IGNORE_CHARSET_INFO_SENT_BY_SERVER) };int dlg_assume_cp(struct dialog_data *dlg, struct dialog_item_data *di){	charset_sel_list(dlg->win->term, dlg->dlg->udata2, (int *)di->cdata);	return 0;}void menu_html_options(struct terminal *term, void *xxx, struct session *ses){	struct dialog *d;	snprint(marg_str, 2, ses->ds.margin);	d = mem_alloc(sizeof(struct dialog) + 11 * sizeof(struct dialog_item));	memset(d, 0, sizeof(struct dialog) + 11 * sizeof(struct dialog_item));	d->title = TEXT(T_HTML_OPTIONS);	d->fn = group_fn;	d->udata = html_texts;	d->udata2 = ses;	d->refresh = (void (*)(void *))html_refresh;	d->refresh_data = ses;	d->items[0].type = D_CHECKBOX;	d->items[0].data = (unsigned char *) &ses->ds.tables;	d->items[0].dlen = sizeof(int);	d->items[1].type = D_CHECKBOX;	d->items[1].data = (unsigned char *) &ses->ds.frames;	d->items[1].dlen = sizeof(int);	d->items[2].type = D_CHECKBOX;	d->items[2].data = (unsigned char *) &ses->ds.images;	d->items[2].dlen = sizeof(int);	d->items[3].type = D_CHECKBOX;	d->items[3].data = (unsigned char *) &ses->ds.table_order;	d->items[3].dlen = sizeof(int);	d->items[4].type = D_CHECKBOX;	d->items[4].data = (unsigned char *) &ses->ds.num_links;	d->items[4].dlen = sizeof(int);	d->items[5].type = D_FIELD;	d->items[5].dlen = 2;	d->items[5].data = marg_str;	d->items[5].fn = check_number;	d->items[5].gid = 0;	d->items[5].gnum = 9;	d->items[6].type = D_BUTTON;	d->items[6].gid = 0;	d->items[6].fn = dlg_assume_cp;	d->items[6].text = TEXT(T_DEFAULT_CODEPAGE);	d->items[6].data = (unsigned char *) &ses->ds.assume_cp;	d->items[6].dlen = sizeof(int);	d->items[7].type = D_CHECKBOX;	d->items[7].data = (unsigned char *) &ses->ds.hard_assume;	d->items[7].dlen = sizeof(int);	d->items[8].type = D_BUTTON;	d->items[8].gid = B_ENTER;	d->items[8].fn = ok_dialog;	d->items[8].text = TEXT(T_OK);	d->items[9].type = D_BUTTON;	d->items[9].gid = B_ESC;	d->items[9].fn = cancel_dialog;	d->items[9].text = TEXT(T_CANCEL);	d->items[10].type = D_END;	do_dialog(term, d, getml(d, NULL));}void menu_set_language(struct terminal *term, void *pcp, struct session *ses){	set_language((int)pcp);	cls_redraw_all_terminals();}void menu_language_list(struct terminal *term, void *xxx, struct session *ses){	int i, sel;	unsigned char *n;	struct menu_item *mi;	if (!(mi = new_menu(1))) return;	for (i = 0; i < n_languages(); i++) {		n = language_name(i);		add_to_menu(&mi, n, "", "", MENU_FUNC menu_set_language, (void *)i, 0);	}	sel = current_language;	do_menu_selected(term, mi, ses, sel);}unsigned char *resize_texts[] = { TEXT(T_COLUMNS), TEXT(T_ROWS) };unsigned char x_str[4];unsigned char y_str[4];void do_resize_terminal(struct terminal *term){	unsigned char str[8];	strcpy(str, x_str);	strcat(str, ",");	strcat(str, y_str);	do_terminal_function(term, TERM_FN_RESIZE, str);}void dlg_resize_terminal(struct terminal *term, void *xxx, struct session *ses){	struct dialog *d;	int x = term->x > 999 ? 999 : term->x;	int y = term->y > 999 ? 999 : term->y;	sprintf(x_str, "%d", x);	sprintf(y_str, "%d", y);	d = mem_alloc(sizeof(struct dialog) + 5 * sizeof(struct dialog_item));	memset(d, 0, sizeof(struct dialog) + 5 * sizeof(struct dialog_item));	d->title = TEXT(T_RESIZE_TERMINAL);	d->fn = group_fn;	d->udata = resize_texts;	d->refresh = (void (*)(void *))do_resize_terminal;	d->refresh_data = term;	d->items[0].type = D_FIELD;	d->items[0].dlen = 4;	d->items[0].data = x_str;	d->items[0].fn = check_number;	d->items[0].gid = 1;	d->items[0].gnum = 999;	d->items[1].type = D_FIELD;	d->items[1].dlen = 4;	d->items[1].data = y_str;	d->items[1].fn = check_number;	d->items[1].gid = 1;	d->items[1].gnum = 999;	d->items[2].type = D_BUTTON;	d->items[2].gid = B_ENTER;	d->items[2].fn = ok_dialog;	d->items[2].text = TEXT(T_OK);	d->items[3].type = D_BUTTON;	d->items[3].gid = B_ESC;	d->items[3].fn = cancel_dialog;	d->items[3].text = TEXT(T_CANCEL);	d->items[4].type = D_END;	do_dialog(term, d, getml(d, NULL));}struct menu_item file_menu11[] = {	{ TEXT(T_GOTO_URL), "g", TEXT(T_HK_GOTO_URL), MENU_FUNC menu_goto_url, (void *)0, 0, 0 },	{ TEXT(T_GO_BACK), "<-", TEXT(T_HK_GO_BACK), MENU_FUNC menu_go_back, (void *)0, 0, 0 },	{ TEXT(T_HISTORY), ">", TEXT(T_HK_HISTORY), MENU_FUNC history_menu, (void *)0, 1, 0 },	{ TEXT(T_RELOAD), "Ctrl-R", TEXT(T_HK_RELOAD), MENU_FUNC menu_reload, (void *)0, 0, 0 },};struct menu_item file_menu12[] = {	{ TEXT(T_BOOKMARKS), "s", TEXT(T_HK_BOOKMARKS), MENU_FUNC menu_bookmark_manager, (void *)0, 0, 0 },	{ TEXT(T_ADD_BOOKMARK), "a", TEXT(T_HK_ADD_BOOKMARK), MENU_FUNC launch_bm_add_doc_dialog, (void *)0, 0, 0 },};struct menu_item file_menu21[] = {	{ "", "", M_BAR, NULL, NULL, 0, 0 },	{ TEXT(T_SAVE_AS), "", TEXT(T_HK_SAVE_AS), MENU_FUNC save_as, (void *)0, 0, 0 },	{ TEXT(T_SAVE_URL_AS), "", TEXT(T_HK_SAVE_URL_AS), MENU_FUNC menu_save_url_as, (void *)0, 0, 0 },	{ TEXT(T_SAVE_FORMATTED_DOCUMENT), "", TEXT(T_HK_SAVE_FORMATTED_DOCUMENT), MENU_FUNC menu_save_formatted, (void *)0, 0, 0 },};struct menu_item file_menu22[] = {	{ "", "", M_BAR, NULL, NULL, 0, 0 },	{ TEXT(T_KILL_BACKGROUND_CONNECTIONS), "", TEXT(T_HK_KILL_BACKGROUND_CONNECTIONS), MENU_FUNC menu_kill_background_connections, (void *)0, 0, 0 },	{ TEXT(T_FLUSH_ALL_CACHES), "", TEXT(T_HK_FLUSH_ALL_CACHES), MENU_FUNC flush_caches, (void *)0, 0, 0 },	{ TEXT(T_RESOURCE_INFO), "", TEXT(T_HK_RESOURCE_INFO), MENU_FUNC cache_inf, (void *)0, 0, 0 },#if 0	{ TEXT(T_CACHE_INFO), "", TEXT(T_HK_CACHE_INFO), MENU_FUNC list_cache, (void *)0, 0, 0 },#endif#ifdef LEAK_DEBUG	{ TEXT(T_MEMORY_INFO), "", TEXT(T_HK_MEMORY_INFO), MENU_FUNC memory_info, (void *)0, 0, 0 },#endif	{ "", "", M_BAR, NULL, NULL, 0, 0 },};struct menu_item file_menu3[] = {	{ "", "", M_BAR, NULL, NULL, 0, 0 },	{ TEXT(T_EXIT), "q", TEXT(T_HK_EXIT), MENU_FUNC exit_prog, (void *)0, 0, 0 },	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};void do_file_menu(struct terminal *term, void *xxx, struct session *ses){	int x;	int o;	struct menu_item *file_menu, *e, *f;	file_menu = mem_alloc(sizeof(file_menu11) + sizeof(file_menu12) + sizeof(file_menu21) + sizeof(file_menu22) + sizeof(file_menu3) + 3 * sizeof(struct menu_item));	e = file_menu;	memcpy(e, file_menu11, sizeof(file_menu11));	e += sizeof(file_menu11) / sizeof(struct menu_item);	if (!anonymous) {		memcpy(e, file_menu12, sizeof(file_menu12));		e += sizeof(file_menu12) / sizeof(struct menu_item);	}	if ((o = can_open_in_new(term))) {		e->text = TEXT(T_NEW_WINDOW);		e->rtext = o - 1 ? ">" : "";		e->hotkey = TEXT(T_HK_NEW_WINDOW);		e->func = MENU_FUNC open_in_new_window;		e->data = send_open_new_xterm;		e->in_m = o - 1;		e->free_i = 0;		e++;	}	if (!anonymous) {		memcpy(e, file_menu21, sizeof(file_menu21));		e += sizeof(file_menu21) / sizeof(struct menu_item);	}	memcpy(e, file_menu22, sizeof(file_menu22));	e += sizeof(file_menu22) / sizeof(struct menu_item);	/*"", "", M_BAR, NULL, NULL, 0, 0,	TEXT(T_OS_SHELL), "", TEXT(T_HK_OS_SHELL), MENU_FUNC menu_shell, NULL, 0, 0,*/	x = 1;	if (!anonymous && can_open_os_shell(term->environment)) {		e->text = TEXT(T_OS_SHELL);		e->rtext = "";		e->hotkey = TEXT(T_HK_OS_SHELL);		e->func = MENU_FUNC menu_shell;		e->data = NULL;		e->in_m = 0;		e->free_i = 0;		e++;		x = 0;	}	if (can_resize_window(term->environment)) {		e->text = TEXT(T_RESIZE_TERMINAL);		e->rtext = "";		e->hotkey = TEXT(T_HK_RESIZE_TERMINAL);		e->func = MENU_FUNC dlg_resize_terminal;		e->data = NULL;		e->in_m = 0;		e->free_i = 0;		e++;		x = 0;	}	memcpy(e, file_menu3 + x, sizeof(file_menu3) - x * sizeof(struct menu_item));	e += sizeof(file_menu3) / sizeof(struct menu_item);	for (f = file_menu; f < e; f++) f->free_i = 1;	do_menu(term, file_menu, ses);}struct menu_item view_menu[] = {	{ TEXT(T_SEARCH), "/", TEXT(T_HK_SEARCH), MENU_FUNC menu_for_frame, (void *)search_dlg, 0, 0 },	{ TEXT(T_SEARCH_BACK), "?", TEXT(T_HK_SEARCH_BACK), MENU_FUNC menu_for_frame, (void *)search_back_dlg, 0, 0 },	{ TEXT(T_FIND_NEXT), "n", TEXT(T_HK_FIND_NEXT), MENU_FUNC menu_for_frame, (void *)find_next, 0, 0 },	{ TEXT(T_FIND_PREVIOUS), "N", TEXT(T_HK_FIND_PREVIOUS), MENU_FUNC menu_for_frame, (void *)find_next_back, 0, 0 },	{ "", "", M_BAR, NULL, NULL, 0, 0 },	{ TEXT(T_TOGGLE_HTML_PLAIN), "\\", TEXT(T_HK_TOGGLE_HTML_PLAIN), MENU_FUNC menu_toggle, NULL, 0, 0 },	{ TEXT(T_DOCUMENT_INFO), "=", TEXT(T_HK_DOCUMENT_INFO), MENU_FUNC menu_doc_info, NULL, 0, 0 },	{ TEXT(T_HEADER_INFO), "|", TEXT(T_HK_HEADER_INFO), MENU_FUNC menu_head_info, NULL, 0, 0 },	{ TEXT(T_FRAME_AT_FULL_SCREEN), "f", TEXT(T_HK_FRAME_AT_FULL_SCREEN), MENU_FUNC menu_for_frame, (void *)set_frame, 0, 0 },	{ "", "", M_BAR, NULL, NULL, 0, 0 },	{ TEXT(T_HTML_OPTIONS), "", TEXT(T_HK_HTML_OPTIONS), MENU_FUNC menu_html_options, (void *)0, 0, 0 },	{ TEXT(T_SAVE_HTML_OPTIONS), "", TEXT(T_HK_SAVE_HTML_OPTIONS), MENU_FUNC menu_save_html_options, (void *)0, 0, 0 },	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};struct menu_item view_menu_anon[] = {	{ TEXT(T_SEARCH), "/", TEXT(T_HK_SEARCH), MENU_FUNC menu_for_frame, (void *)search_dlg, 0, 0 },	{ TEXT(T_SEARCH_BACK), "?", TEXT(T_HK_SEARCH_BACK), MENU_FUNC menu_for_frame, (void *)search_back_dlg, 0, 0 },	{ TEXT(T_FIND_NEXT), "n", TEXT(T_HK_FIND_NEXT), MENU_FUNC menu_for_frame, (void *)find_next, 0, 0 },	{ TEXT(T_FIND_PREVIOUS), "N", TEXT(T_HK_FIND_PREVIOUS), MENU_FUNC menu_for_frame, (void *)find_next_back, 0, 0 },	{ "", "", M_BAR, NULL, NULL, 0, 0 },	{ TEXT(T_TOGGLE_HTML_PLAIN), "\\", TEXT(T_HK_TOGGLE_HTML_PLAIN), MENU_FUNC menu_toggle, NULL, 0, 0 },	{ TEXT(T_DOCUMENT_INFO), "=", TEXT(T_HK_DOCUMENT_INFO), MENU_FUNC menu_doc_info, NULL, 0, 0 },	{ TEXT(T_FRAME_AT_FULL_SCREEN), "f", TEXT(T_HK_FRAME_AT_FULL_SCREEN), MENU_FUNC menu_for_frame, (void *)set_frame, 0, 0 },	{ "", "", M_BAR, NULL, NULL, 0, 0 },	{ TEXT(T_HTML_OPTIONS), "", TEXT(T_HK_HTML_OPTIONS), MENU_FUNC menu_html_options, (void *)0, 0, 0 },	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};struct menu_item help_menu[] = {	{ TEXT(T_ABOUT), "", TEXT(T_HK_ABOUT), MENU_FUNC menu_about, (void *)0, 0, 0 },	{ TEXT(T_KEYS), "", TEXT(T_HK_KEYS), MENU_FUNC menu_keys, (void *)0, 0, 0 },	{ TEXT(T_MANUAL), "", TEXT(T_HK_MANUAL), MENU_FUNC menu_manual, (void *)0, 0, 0 },	{ TEXT(T_COPYING), "", TEXT(T_HK_COPYING), MENU_FUNC menu_copying, (void *)0, 0, 0 },	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};struct menu_item assoc_menu[] = {	{ TEXT(T_ADD), "", TEXT(T_HK_ADD), MENU_FUNC menu_add_ct, NULL, 0, 0 },	{ TEXT(T_MODIFY), ">", TEXT(T_HK_MODIFY), MENU_FUNC menu_list_assoc, menu_add_ct, 1, 0 },	{ TEXT(T_DELETE), ">", TEXT(T_HK_DELETE), MENU_FUNC menu_list_assoc, menu_del_ct, 1, 0 },	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};struct menu_item ext_menu[] = {	{ TEXT(T_ADD), "", TEXT(T_HK_ADD), MENU_FUNC menu_add_ext, NULL, 0, 0 },	{ TEXT(T_MODIFY), ">", TEXT(T_HK_MODIFY), MENU_FUNC menu_list_ext, menu_add_ext, 1, 0 },	{ TEXT(T_DELETE), ">", TEXT(T_HK_DELETE), MENU_FUNC menu_list_ext, menu_del_ext, 1, 0 },	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};struct menu_item setup_menu[] = {	{ TEXT(T_LANGUAGE), ">", TEXT(T_HK_LANGUAGE), MENU_FUNC menu_language_list, NULL, 1, 0 },	{ TEXT(T_CHARACTER_SET), ">", TEXT(T_HK_CHARACTER_SET), MENU_FUNC charset_list, (void *)1, 1, 0 },	{ TEXT(T_TERMINAL_OPTIONS), "", TEXT(T_HK_TERMINAL_OPTIONS), MENU_FUNC terminal_options, NULL, 0, 0 },	{ TEXT(T_NETWORK_OPTIONS), "", TEXT(T_HK_NETWORK_OPTIONS), MENU_FUNC net_options, NULL, 0, 0 },	{ TEXT(T_CACHE), "", TEXT(T_HK_CACHE), MENU_FUNC cache_opt, NULL, 0, 0 },	{ TEXT(T_MAIL_AND_TELNEL), "", TEXT(T_HK_MAIL_AND_TELNEL), MENU_FUNC net_programs, NULL, 0, 0 },	{ TEXT(T_ASSOCIATIONS), ">", TEXT(T_HK_ASSOCIATIONS), MENU_FUNC do_menu, assoc_menu, 1, 0 },	{ TEXT(T_FILE_EXTENSIONS), ">", TEXT(T_HK_FILE_EXTENSIONS), MENU_FUNC do_menu, ext_menu, 1, 0 },	{ "", "", M_BAR, NULL, NULL, 0, 0 },	{ TEXT(T_SAVE_OPTIONS), "", TEXT(T_HK_SAVE_OPTIONS), MENU_FUNC write_config, NULL, 0, 0 },	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};struct menu_item setup_menu_anon[] = {	{ TEXT(T_LANGUAGE), ">", TEXT(T_HK_LANGUAGE), MENU_FUNC menu_language_list, NULL, 1, 0 },	{ TEXT(T_CHARACTER_SET), ">", TEXT(T_HK_CHARACTER_SET), MENU_FUNC charset_list, (void *)1, 1, 0 },	{ TEXT(T_TERMINAL_OPTIONS), "", TEXT(T_HK_TERMINAL_OPTIONS), MENU_FUNC terminal_options, NULL, 0, 0 },	/*{ TEXT(T_NETWORK_OPTIONS), "", TEXT(T_HK_NETWORK_OPTIONS), MENU_FUNC net_options, NULL, 0, 0,}*/	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};void do_view_menu(struct terminal *term, void *xxx, struct session *ses){	if (!anonymous) do_menu(term, view_menu, ses);	else do_menu(term, view_menu_anon, ses);}void do_setup_menu(struct terminal *term, void *xxx, struct session *ses){	if (!anonymous) do_menu(term, setup_menu, ses);	else do_menu(term, setup_menu_anon, ses);}struct menu_item main_menu[] = {	{ TEXT(T_FILE), "", TEXT(T_HK_FILE), MENU_FUNC do_file_menu, NULL, 1, 1 },	{ TEXT(T_VIEW), "", TEXT(T_HK_VIEW), MENU_FUNC do_view_menu, NULL, 1, 1 },	{ TEXT(T_LINK), "", TEXT(T_HK_LINK), MENU_FUNC link_menu, NULL, 1, 1 },	{ TEXT(T_DOWNLOADS), "", TEXT(T_HK_DOWNLOADS), MENU_FUNC downloads_menu, NULL, 1, 1 },	{ TEXT(T_SETUP), "", TEXT(T_HK_SETUP), MENU_FUNC do_setup_menu, NULL, 1, 1 },	{ TEXT(T_HELP), "", TEXT(T_HK_HELP), MENU_FUNC do_menu, help_menu, 1, 1 },	{ NULL, NULL, 0, NULL, NULL, 0, 0 },};void activate_bfu_technology(struct session *ses, int item){	struct terminal *term = ses->term;	do_mainmenu(term, main_menu, ses, item);}struct history goto_url_history = { 0, { &goto_url_history.items, &goto_url_history.items } };void dialog_goto_url(struct session *ses, char *url){	input_field(ses->term, NULL, TEXT(T_GOTO_URL), TEXT(T_ENTER_URL), TEXT(T_OK), TEXT(T_CANCEL), ses, &goto_url_history, MAX_INPUT_URL_LEN, url, 0, 0, NULL, (void (*)(void *, unsigned char *)) goto_url, NULL);}void dialog_save_url(struct session *ses){	input_field(ses->term, NULL, TEXT(T_SAVE_URL), TEXT(T_ENTER_URL), TEXT(T_OK), TEXT(T_CANCEL), ses, &goto_url_history, MAX_INPUT_URL_LEN, "", 0, 0, NULL, (void (*)(void *, unsigned char *)) save_url, NULL);}struct history file_history = { 0, { &file_history.items, &file_history.items } };void query_file(struct session *ses, unsigned char *url, void (*std)(struct session *, unsigned char *), void (*cancel)(struct session *)){	unsigned char *file, *def;	int dfl = 0;	int l;	get_filename_from_url(url, &file, &l);	def = init_str();	add_to_str(&def, &dfl, download_dir);	if (*def && !dir_sep(def[strlen(def) - 1])) add_chr_to_str(&def, &dfl, '/');	add_bytes_to_str(&def, &dfl, file, l);	input_field(ses->term, NULL, TEXT(T_DOWNLOAD), TEXT(T_SAVE_TO_FILE), TEXT(T_OK), TEXT(T_CANCEL), ses, &file_history, MAX_INPUT_URL_LEN, def, 0, 0, NULL, (void (*)(void *, unsigned char *))std, (void (*)(void *))cancel);	mem_free(def);}struct history search_history = { 0, { &search_history.items, &search_history.items } };void search_back_dlg(struct session *ses, struct f_data_c *f, int a){	input_field(ses->term, NULL, TEXT(T_SEARCH_BACK), TEXT(T_SEARCH_FOR_TEXT), TEXT(T_OK), TEXT(T_CANCEL), ses, &search_history, MAX_INPUT_URL_LEN, "", 0, 0, NULL, (void (*)(void *, unsigned char *)) search_for_back, NULL);}void search_dlg(struct session *ses, struct f_data_c *f, int a){	input_field(ses->term, NULL, TEXT(T_SEARCH), TEXT(T_SEARCH_FOR_TEXT), TEXT(T_OK), TEXT(T_CANCEL), ses, &search_history, MAX_INPUT_URL_LEN, "", 0, 0, NULL, (void (*)(void *, unsigned char *)) search_for, NULL);}void free_history_lists(){	free_list(goto_url_history.items);	free_list(file_history.items);	free_list(search_history.items);}

⌨️ 快捷键说明

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