default.c

来自「this is the file used to browse web」· C语言 代码 · 共 1,139 行 · 第 1/3 页

C
1,139
字号
}unsigned char *no_connect_cmd(struct option *o, unsigned char ***argv, int *argc){	no_connect = 1;	return NULL;}unsigned char *anonymous_cmd(struct option *o, unsigned char ***argv, int *argc){	anonymous = 1;	return NULL;}unsigned char *force_html_cmd(struct option *o, unsigned char ***argv, int *argc){	force_html = 1;	return NULL;}unsigned char *dump_cmd(struct option *o, unsigned char ***argv, int *argc){	if (dmp != o->min && dmp) return "Can't use both -dump and -source";	dmp = o->min;	no_connect = 1;	return NULL;}unsigned char *printhelp_cmd(struct option *o, unsigned char ***argv, int *argc){/* Changed and splited - translation is much easier. * Print to stdout instead stderr (,,links -help | more'' * is much better than ,,links -help 2>&1 | more''). */fprintf(stdout, "%s%s%s%s%s%s\n", ("links [options] URL\n\Options are:\n\\n\ -async-dns <0>/<1>\n\  Asynchronous DNS resolver on(1)/off(0).\n\\n\ -download-utime <0>/<1>\n\  Set time of downloaded files to time from server.\n\\n\ -max-connections <max>\n\  Maximum number of concurrent connections.\n\  (default: 10)\n\\n"),(" -max-connections-to-host <max>\n\  Maximum number of concurrent connection to a given host.\n\  (default: 2)\n\\n\ -retries <retry>\n\  Number of retries.\n\  (default: 3)\n\\n\ -receive-timeout <sec>\n\  Timeout on receive.\n\  (default: 120)\n\\n"),(" -unrestartable-receive-timeout <sec>\n\  Timeout on non restartable connections.\n\  (default: 600)\n\\n\ -format-cache-size <num>\n\  Number of formatted document pages cached.\n\  (default: 5)\n\\n\ -memory-cache-size <Kbytes>\n\  Cache memory in Kilobytes.\n\  (default: 1024)\n\\n"),(" -http-proxy <host:port>\n\  Host and port number of the HTTP proxy, or blank.\n\  (default: blank)\n\\n\ -ftp-proxy <host:port>\n\  Host and port number of the FTP proxy, or blank.\n\  (default: blank)\n\\n\ -download-dir <path>\n\  Default download directory.\n\  (default: actual dir)\n\\n\ -http-bugs.http10 <0>/<1>\n\  \"1\" forces using only HTTP/1.0 protocol.\n\\n\ -http-bugs.allow-blacklist <0>/<1>\n\  \"1\" defaults to using list of servers that have broken HTTP/1.1 support.\n\  When links finds such server, it will retry the request with HTTP/1.0.\n\\n\ -http-bugs.bug-302-redirect <0>/<1>\n\  Process 302 redirect in a way that is incompatible with RFC1945 and RFC2068,\n\  but the same as Netscape and MSIE. Many pages depend on it.\n\\n\ -http-bugs.bug-post-no-keepalive <0>/<1>\n\  No keepalive connection after post requests. For some buggy servers.\n\\n\ -http-bugs.bug-no-accept-charset <0>/<1>\n\  Do not send Accept-Charset field of HTTP header.\n\\n\ -ftp.anonymous-password <string>\n\  Use ftp PASV command to bypass firewalls.\n\\n\ -ftp.fast <0>/<1>\n\  Send more ftp commands simultaneously. Faster response when\n\  browsing ftp directories, but it is incompatible with RFC\n\  and some servers don't like it.\n\\n\ -ftp.set-iptos <0>/<1>\n\  Set IP Type-of-service to high throughput on ftp connections.\n\\n"),(" -html-assume-codepage <codepage>\n\  Use the given codepage when the webpage did not specify\n\  its codepage. (default: ISO 8859-1)\n\\n\ -html-tables <0>/<1>\n\  Render tables.\n\\n\ -html-frames <0>/<1>\n\  Render frames.\n\\n\ -html-images <0>/<1>\n\  Display links to images.\n\\n\ -html-numbered-links <0>/<1>\n\  Link numbering.\n\\n\ -html-table-order <0>/<1>\n\  Walk table by rows (0) or columns (1).\n\\n\ -html-margin <margin>\n\  Text margin.\n\\n\ -language <language>\n\  User interface language.\n\\n\ -anonymous\n\  Restrict links so that it can run on an anonymous account.\n\  No local file browsing. No downloads. Executing of viewers\n\  is allowed, but user can't add or modify entries in\n\  association table.\n\\n\ -force-html\n\  Treat file as if it had an .html extension.\n\\n\ -source\n\  Write the given HTML document in source form to stdout.\n\\n\ -dump\n\  Write a plain-text version of the given HTML document to\n\  stdout.\n\\n\ -width <size>\n\  Size of screen in characters, used in combination with -dump.\n\\n\ -codepage <codepage>\n\  Character set of output of -dump.\n\\n\ -no-connect\n\  Runs links as a separate instance - instead of connecting to\n\  existing instance.\n\\n\ -lookup <host>\n\  Do lookup like \"host\" command.\n\\n\ -version\n\  Prints the links version number and exit.\n\\n\ -help\n\  Prints this help screen\n\\n\\n"),("Keys:\n\ 	ESC	 display menu\n\	^C	 quit\n\	^P, ^N	 scroll up, down\n\	[, ]	 scroll left, right\n\	up, down select link\n\	->	 follow link\n\	<-	 go back\n\	g	 go to url\n\	G	 go to url based on current url\n\	^R	 reload\n\	/	 search\n\	?	 search back\n\	n	 find next\n\	N	 find previous\n\	=	 document info\n\	\\	 document source\n\	|	 HTTP header\n\	*	 toggle displaying of image links\n\	d	 download\n\	s	 bookmarks\n\	q	 quit\n"));	fflush(stdout);	return "";}void end_config(){	if (links_home) mem_free(links_home);}int anonymous = 0;unsigned char system_name[MAX_STR_LEN];unsigned char *links_home = NULL;int first_use = 0;int created_home = 0;int no_connect = 0;int base_session = 0;int dmp = 0;int force_html = 0;int async_lookup = 1;int download_utime = 0;int max_connections = 10;int max_connections_to_host = 2;int max_tries = 3;int receive_timeout = 120;int unrestartable_receive_timeout = 600;int screen_width = 80;int dump_codepage = -1;int max_format_cache_entries = 5;long memory_cache_size = 1048576;int enable_html_tables = 1;int enable_html_frames = 1;int display_images = 1;struct document_setup dds = { 0, 0, 1, 1, 0, 3, 0, 0 };struct rgb default_fg = { 191, 191, 191, 0 };struct rgb default_bg = { 0, 0, 0, 0 };struct rgb default_link = { 255, 255, 255, 0 };struct rgb default_vlink = { 255, 255, 0, 0 };int default_left_margin = HTML_LEFT_MARGIN;unsigned char http_proxy[MAX_STR_LEN] = "";unsigned char ftp_proxy[MAX_STR_LEN] = "";unsigned char download_dir[MAX_STR_LEN] = "";struct ftp_options ftp_options = { "somebody@host.domain", 0, 0, 1 };/* These are workarounds for some CGI script bugs */struct http_bugs http_bugs = { 0, 1, 1, 0, 0 };/*int bug_302_redirect = 0;*/	/* When got 301 or 302 from POST request, change it to GET	   - this violates RFC2068, but some buggy message board scripts rely on it *//*int bug_post_no_keepalive = 0;*/	/* No keepalive connection after POST request. Some buggy PHP databases report bad	   results if GET wants to retreive data POSTed in the same connection */struct option links_options[] = {	{ 1, printhelp_cmd, NULL, NULL, 0, 0, NULL, NULL, "?" },	{ 1, printhelp_cmd, NULL, NULL, 0, 0, NULL, NULL, "h" },	{ 1, printhelp_cmd, NULL, NULL, 0, 0, NULL, NULL, "help" },	{ 1, printhelp_cmd, NULL, NULL, 0, 0, NULL, NULL, "-help" },	{ 1, lookup_cmd, NULL, NULL, 0, 0, NULL, NULL, "lookup" },	{ 1, version_cmd, NULL, NULL, 0, 0, NULL, NULL, "version" },	{ 1, no_connect_cmd, NULL, NULL, 0, 0, NULL, NULL, "no-connect" },	{ 1, anonymous_cmd, NULL, NULL, 0, 0, NULL, NULL, "anonymous" },	{ 1, gen_cmd, num_rd, NULL, 0, MAXINT, &base_session, NULL, "base-session" },	{ 1, force_html_cmd, NULL, NULL, 0, 0, NULL, NULL, "force-html" },	{ 1, dump_cmd, NULL, NULL, D_SOURCE, 0, NULL, NULL, "source" },	{ 1, dump_cmd, NULL, NULL, D_DUMP, 0, NULL, NULL, "dump" },	{ 1, gen_cmd, num_rd, NULL, 10, 512, &screen_width, "dump_width", "width" },	{ 1, gen_cmd, cp_rd, NULL, 1, 0, &dump_codepage, "dump_codepage", "codepage" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &async_lookup, "async_dns", "async-dns" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &download_utime, "download_utime", "download-utime" },	{ 1, gen_cmd, num_rd, num_wr, 1, 99, &max_connections, "max_connections", "max-connections" },	{ 1, gen_cmd, num_rd, num_wr, 1, 99, &max_connections_to_host, "max_connections_to_host", "max-connections-to-host" },	{ 1, gen_cmd, num_rd, num_wr, 0, 16, &max_tries, "retries", "retries" },	{ 1, gen_cmd, num_rd, num_wr, 1, 1800, &receive_timeout, "receive_timeout", "receive-timeout" },	{ 1, gen_cmd, num_rd, num_wr, 1, 1800, &unrestartable_receive_timeout, "unrestartable_receive_timeout", "unrestartable-receive-timeout" },	{ 1, gen_cmd, num_rd, num_wr, 0, 256, &max_format_cache_entries, "format_cache_size", "format-cache-size" },	{ 1, gen_cmd, num_rd, num_wr, 0, MAXINT, &memory_cache_size, "memory_cache_size", "memory-cache-size" },	{ 1, gen_cmd, str_rd, str_wr, 0, MAX_STR_LEN, http_proxy, "http_proxy", "http-proxy" },	{ 1, gen_cmd, str_rd, str_wr, 0, MAX_STR_LEN, ftp_proxy, "ftp_proxy", "ftp-proxy" },	{ 1, gen_cmd, str_rd, str_wr, 0, MAX_STR_LEN, download_dir, "download_dir", "download-dir" },	{ 1, gen_cmd, lang_rd, lang_wr, 0, 0, &current_language, "language", "language" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &http_bugs.http10, "http_bugs.http10", "http-bugs.http10" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &http_bugs.allow_blacklist, "http_bugs.allow_blacklist", "http-bugs.allow-blacklist" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &http_bugs.bug_302_redirect, "http_bugs.bug_302_redirect", "http-bugs.bug-302-redirect" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &http_bugs.bug_post_no_keepalive, "http_bugs.bug_post_no_keepalive", "http-bugs.bug-post-no-keepalive" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &http_bugs.no_accept_charset, "http_bugs.no_accept_charset", "http-bugs.bug-no-accept-charset" },	{ 1, gen_cmd, str_rd, str_wr, 0, MAX_STR_LEN, ftp_options.anon_pass, "ftp.anonymous_password", "ftp.anonymous-password" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &ftp_options.passive_ftp, "ftp.use_passive", "ftp.use-passive" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &ftp_options.fast_ftp, "ftp.fast", "ftp.fast" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &ftp_options.set_tos, "ftp.set_iptos", "ftp.set-iptos" },	{ 1, gen_cmd, cp_rd, NULL, 0, 0, &dds.assume_cp, "assume_codepage", "assume-codepage" },	{ 1, NULL, term_rd, term_wr, 0, 0, NULL, "terminal", NULL },	{ 1, NULL, term2_rd, NULL, 0, 0, NULL, "terminal2", NULL },	{ 1, NULL, type_rd, type_wr, 0, 0, NULL, "association", NULL },	{ 1, NULL, ext_rd, ext_wr, 0, 0, NULL, "extension", NULL },	{ 1, NULL, prog_rd, prog_wr, 0, 0, &mailto_prog, "mailto", NULL },	{ 1, NULL, prog_rd, prog_wr, 0, 0, &telnet_prog, "telnet", NULL },	{ 1, NULL, prog_rd, prog_wr, 0, 0, &tn3270_prog, "tn3270", NULL },	{ 1, NULL, prog_rd, prog_wr, 0, 0, &mms_prog, "mms", NULL },	{ 1, NULL, bind_rd, NULL, 0, 0, NULL, "bind", NULL },	{ 1, NULL, unbind_rd, NULL, 0, 0, NULL, "unbind", NULL },	{ 0, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL },};struct option html_options[] = {	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &dds.hard_assume, "html_hard_assume", "html-hard-assume" },	{ 1, gen_cmd, cp_rd, cp_wr, 0, 0, &dds.assume_cp, "html_assume_codepage", "html-assume-codepage" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &dds.tables, "html_tables", "html-tables" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &dds.frames, "html_frames", "html-frames" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &dds.images, "html_images", "html-images" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &dds.num_links, "html_numbered_links", "html-numbered-links" },	{ 1, gen_cmd, num_rd, num_wr, 0, 1, &dds.table_order, "html_table_order", "html-table-order" },	{ 1, gen_cmd, num_rd, num_wr, 0, 9, &dds.margin, "html_margin", "html-margin" },	{ 0, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL },};void load_url_history(void){	unsigned char *history_file, *hs;	unsigned char *hsp;	if (anonymous) return;	/* Must have been called after init_home */	if (!links_home) return;	history_file = stracpy(links_home);	add_to_strn(&history_file, "links.his");	hs = read_config_file(history_file);	mem_free(history_file);	if (!hs) return;	for (hsp = hs; *hsp; ) {		unsigned char *hsl, *hsc;		for (hsl = hsp; *hsl && *hsl != 10 && *hsl != 13; hsl++) ;		hsc = memacpy(hsp, hsl - hsp);		add_to_history(&goto_url_history, hsc);		mem_free(hsc);		hsp = hsl;		while (*hsp == 10 || *hsp == 13) hsp++;	}	mem_free(hs);}void save_url_history(void){	struct history_item *hi;	unsigned char *history_file;	unsigned char *hs;	int hsl = 0;	int i = 0;	if (anonymous) return;	/* Must have been called after init_home */	if (!links_home) return;	history_file = stracpy(links_home);	add_to_strn(&history_file, "links.his");	hs = init_str();	hsl = 0;	foreachback(hi, goto_url_history.items) {		if (!*hi->d || strchr(hi->d, 10) || strchr(hi->d, 13)) continue;		if (i++ > MAX_HISTORY_ITEMS)			break;		else {			add_to_str(&hs, &hsl, hi->d);			add_to_str(&hs, &hsl, NEWLINE);		}	}	write_to_config_file(history_file, hs);	mem_free(history_file);	mem_free(hs);	return;}

⌨️ 快捷键说明

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