1 /*
2  * $LynxId: LYGlobalDefs.h,v 1.153 2020/02/23 23:10:16 Keith.Bowes Exp $
3  *
4  * global variable definitions
5  */
6 
7 #ifndef LYGLOBALDEFS_H
8 #define LYGLOBALDEFS_H
9 
10 #ifndef HTUTILS_H
11 #include <HTUtils.h>
12 #endif /* HTUTILS_H */
13 
14 #ifndef LYSTRUCTS_H
15 #include <LYStructs.h>
16 #endif /* LYSTRUCTS_H */
17 
18 /* Of the following definitions, currently unused are and could
19    be removed (at least):
20    CURRENT_KEYMAP_HELP
21 */
22 #if defined(HAVE_CONFIG_H) && defined(HAVE_LYHELP_H)
23 #include <LYHelp.h>
24 #else
25 #define ALT_EDIT_HELP		"keystrokes/alt_edit_help.html"
26 #define BASHLIKE_EDIT_HELP	"keystrokes/bashlike_edit_help.html"
27 #define COOKIE_JAR_HELP		"Lynx_users_guide.html#Cookies"
28 #define CACHE_JAR_HELP		"Lynx_users_guide.html#Cache"
29 #define CURRENT_KEYMAP_HELP	"keystrokes/keystroke_help.html"
30 #define DIRED_MENU_HELP		"keystrokes/dired_help.html"
31 #define DOWNLOAD_OPTIONS_HELP	"Lynx_users_guide.html#RemoteSource"
32 #define EDIT_HELP		"keystrokes/edit_help.html"
33 #define HISTORY_PAGE_HELP	"keystrokes/history_help.html"
34 #define LIST_PAGE_HELP		"keystrokes/follow_help.html"
35 #define LYNXCFG_HELP		"lynx.cfg"
36 #define OPTIONS_HELP		"keystrokes/option_help.html"
37 #define PRINT_OPTIONS_HELP	"keystrokes/print_help.html"
38 #define UPLOAD_OPTIONS_HELP	"Lynx_users_guide.html#DirEd"
39 #define VISITED_LINKS_HELP	"keystrokes/visited_help.html"
40 #endif /* LYHELP_H */
41 
42 #ifdef USE_SOURCE_CACHE
43 #include <HTChunk.h>
44 #endif
45 
46 #include <LYMail.h>		/* to get ifdef's for mail-variables */
47 
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51 #ifdef SOCKS
52     extern BOOLEAN socks_flag;
53     extern unsigned long socks_bind_remoteAddr;
54 #endif				/* SOCKS */
55 
56 #ifdef IGNORE_CTRL_C
57     extern BOOLEAN sigint;
58 #endif				/* IGNORE_CTRL_C */
59 
60 #if USE_VMS_MAILER
61     extern char *mail_adrs;
62     extern BOOLEAN UseFixedRecords;	/* convert binary files to FIXED 512 records */
63 #endif				/* VMS */
64 
65 #ifndef VMS
66     extern char *list_format;
67 #endif				/* !VMS */
68     extern char *ftp_format;
69 
70     typedef enum {
71 	BAD_HTML_IGNORE = 0
72 	,BAD_HTML_TRACE
73 	,BAD_HTML_MESSAGE
74 	,BAD_HTML_WARN
75     } enumBadHtml;
76 
77     extern int cfg_bad_html;	/* enumBadHtml */
78 
79 #ifdef DIRED_SUPPORT
80 
81     typedef enum {
82 	DIRS_FIRST = 0
83 	,FILES_FIRST
84 	,MIXED_STYLE
85     } enumDirListStyle;
86 
87     typedef enum {
88 	ORDER_BY_NAME
89 	,ORDER_BY_SIZE
90 	,ORDER_BY_DATE
91 	,ORDER_BY_MODE
92 	,ORDER_BY_TYPE
93 	,ORDER_BY_USER
94 	,ORDER_BY_GROUP
95     } enumDirListOrder;
96 
97     extern BOOLEAN lynx_edit_mode;
98     extern BOOLEAN no_dired_support;
99     extern HTList *tagged;
100     extern int LYAutoUncacheDirLists;
101     extern int dir_list_style;	/* enumDirListStyle */
102     extern int dir_list_order;	/* enumDirListOrder */
103 
104 #ifdef OK_OVERRIDE
105     extern BOOLEAN prev_lynx_edit_mode;
106 #endif				/* OK_OVERRIDE */
107 
108 #ifdef OK_PERMIT
109     extern BOOLEAN no_change_exec_perms;
110 #endif				/* OK_PERMIT */
111 
112 #endif				/* DIRED_SUPPORT */
113 
114     extern int HTCacheSize;	/* the number of documents cached in memory */
115 
116 #if defined(VMS) && defined(VAXC) && !defined(__DECC)
117     extern int HTVirtualMemorySize;	/* bytes allocated and not yet freed  */
118 #endif				/* VMS && VAXC && !__DECC */
119 
120 #if defined(EXEC_LINKS) || defined(EXEC_SCRIPTS)
121     extern BOOLEAN local_exec;	/* TRUE to enable local program execution */
122     extern BOOLEAN local_exec_on_local_files;	/* TRUE to enable local program  *
123 
124 						 * execution in local files only */
125 #endif				/* defined(EXEC_LINKS) || defined(EXEC_SCRIPTS) */
126 
127 #if defined(LYNXCGI_LINKS) && !defined(VMS)	/* WebSter Mods -jkt */
128     extern char *LYCgiDocumentRoot;	/* DOCUMENT_ROOT in the lynxcgi env */
129 #endif				/* LYNXCGI_LINKS */
130 
131 /* Values to which keypad_mode can be set */
132 #define NUMBERS_AS_ARROWS 0
133 #define LINKS_ARE_NUMBERED 1
134 #define LINKS_AND_FIELDS_ARE_NUMBERED 2
135 #define FIELDS_ARE_NUMBERED 3
136 
137 #define links_are_numbered() \
138 	    (keypad_mode == LINKS_ARE_NUMBERED || \
139 	     keypad_mode == LINKS_AND_FIELDS_ARE_NUMBERED)
140 
141 #define fields_are_numbered() \
142 	    (keypad_mode == FIELDS_ARE_NUMBERED || \
143 	     keypad_mode == LINKS_AND_FIELDS_ARE_NUMBERED)
144 #define fields_are_named() \
145 	    (user_mode == ADVANCED_MODE)
146 
147 #define HIDDENLINKS_MERGE	0
148 #define HIDDENLINKS_SEPARATE	1
149 #define HIDDENLINKS_IGNORE	2
150 
151 #define NOVICE_MODE 	  0
152 #define INTERMEDIATE_MODE 1
153 #define ADVANCED_MODE 	  2
154     extern BOOLEAN LYUseNoviceLineTwo;	/* True if TOGGLE_HELP is not mapped */
155 
156 #define MAX_LINE 1024		/* No window can be wider than this */
157 #define MAX_COLS (MAX_LINE-10)	/* we don't expect wider than this */
158 #define DFT_COLS 80		/* ...and normally only this */
159 #define DFT_ROWS 24		/* ...corresponding nominal height */
160 
161     extern char star_string[MAX_LINE + 1];	/* from GridText.c */
162 
163 #define STARS(n) \
164  ((n) >= MAX_LINE ? star_string : &star_string[(MAX_LINE-1)] - (n))
165 
166     typedef enum {
167 	SHOW_COLOR_UNKNOWN = -1
168 	,SHOW_COLOR_NEVER = 0	/* positive numbers are index in LYOptions.c */
169 	,SHOW_COLOR_OFF
170 	,SHOW_COLOR_ON
171 	,SHOW_COLOR_ALWAYS
172     } enumShowColor;
173 
174     extern int LYShowColor;	/* Show color or monochrome?        */
175     extern int LYrcShowColor;	/* ... as read or last written      */
176 
177     typedef enum {
178 	MBM_OFF = 0
179 	,MBM_STANDARD
180 	,MBM_ADVANCED
181     } enumMultiBookmarks;
182 
183 #if !defined(NO_OPTION_FORMS) && !defined(NO_OPTION_MENU)
184     extern BOOLEAN LYUseFormsOptions;	/* use Forms-based options menu */
185 
186 #else
187 #define LYUseFormsOptions FALSE	/* simplify ifdef'ing in LYMainLoop.c */
188 #endif
189 
190     typedef enum {
191 	rateOFF = 0
192 	,rateBYTES = 1
193 	,rateKB
194 #ifdef USE_READPROGRESS
195 	,rateEtaBYTES
196 	,rateEtaKB
197 	,rateEtaBYTES2
198 	,rateEtaKB2
199 #endif
200 #ifdef USE_PROGRESSBAR
201 	,rateBAR
202 #endif
203     } TransferRate;
204 
205 #ifdef USE_READPROGRESS
206 #  define isRateInKB(n) ((n) == rateKB || (n) == rateEtaKB || (n) == rateEtaKB2)
207 #else
208 #  define isRateInKB(n) ((n) == rateKB)
209 #endif
210 
211 #define TITLE_LINES  1
212 
213     extern BOOLEAN LYCursesON;	/* start_curses()->TRUE, stop_curses()->FALSE */
214     extern BOOLEAN LYJumpFileURL;	/* URL from the jump file shortcuts? */
215     extern BOOLEAN LYNewsPosting;	/* News posting supported if TRUE */
216     extern BOOLEAN LYAutoSession;	/* Auto restore/save session? */
217     extern BOOLEAN LYShowCursor;	/* Show the cursor or hide it?      */
218     extern BOOLEAN LYShowTransferRate;
219     extern BOOLEAN LYUnderlineLinks;	/* Show the links underlined vs bold */
220     extern BOOLEAN LYUseDefShoCur;	/* Command line -show_cursor toggle */
221     extern BOOLEAN LYUserSpecifiedURL;	/* URL from a goto or document? */
222     extern BOOLEAN LYfind_leaks;
223     extern BOOLEAN LYforce_HTML_mode;
224     extern BOOLEAN LYforce_no_cache;
225     extern BOOLEAN LYinternal_flag;	/* don't need fresh copy, was internal link */
226     extern BOOLEAN LYoverride_no_cache;		/* don't need fresh copy, from history */
227     extern BOOLEAN LYresubmit_posts;
228     extern BOOLEAN LYtrimBlankLines;
229     extern BOOLEAN LYtrimInputFields;
230     extern BOOLEAN LYxhtml_parsing;
231     extern BOOLEAN bold_H1;
232     extern BOOLEAN bold_headers;
233     extern BOOLEAN bold_name_anchors;
234     extern BOOLEAN LYcase_sensitive;	/* TRUE to turn on case sensitive search */
235     extern BOOLEAN check_mail;	/* TRUE to report unread/new mail messages */
236     extern BOOLEAN child_lynx;	/* TRUE to exit with an arrow */
237     extern BOOLEAN dump_links_decoded;
238     extern BOOLEAN dump_links_inline;
239     extern BOOLEAN dump_links_only;
240     extern BOOLEAN dump_output_immediately;
241     extern BOOLEAN dump_to_stderr;
242     extern BOOLEAN emacs_keys;	/* TRUE to turn on emacs-like key movement */
243     extern BOOLEAN error_logging;	/* TRUE to mail error messages */
244     extern BOOLEAN ftp_ok;
245     extern BOOLEAN goto_buffer;	/* TRUE if offering default goto URL */
246     extern BOOLEAN is_www_index;
247     extern BOOLEAN jump_buffer;	/* TRUE if offering default shortcut */
248     extern BOOLEAN long_url_ok;
249     extern BOOLEAN lynx_mode;
250     extern BOOLEAN more_text;	/* is there more document to display? */
251     extern BOOLEAN news_ok;
252     extern BOOLEAN number_fields_on_left;
253     extern BOOLEAN number_links_on_left;
254     extern BOOLEAN recent_sizechange;
255     extern BOOLEAN rlogin_ok;
256     extern BOOLEAN syslog_requested_urls;
257     extern BOOLEAN system_editor;	/* True if locked-down editor */
258     extern BOOLEAN telnet_ok;
259     extern BOOLEAN verbose_img;	/* display filenames of images?     */
260     extern BOOLEAN vi_keys;	/* TRUE to turn on vi-like key movement */
261 
262     extern HTList *Goto_URLs;
263     extern HTList *positionable_editor;
264 
265     extern char *LYRequestReferer;	/* Referer, may be set in getfile() */
266     extern char *LYRequestTitle;	/* newdoc.title in calls to getfile() */
267     extern char *LYTransferName;	/* abbreviation for Kilobytes */
268     extern char *LynxHome;
269 #ifdef USE_SESSIONS
270     extern char *LYSessionFile;	/* file for auto-session */
271     extern char *session_file;	/* file for -session= */
272     extern char *sessionin_file;	/* file for -sessionin= */
273     extern char *sessionout_file;	/* file for -sessionout= */
274 #endif
275     extern char *LynxSigFile;	/* Signature file, in or off home */
276     extern char *helpfile;
277     extern char *helpfilepath;
278     extern char *jumpprompt;	/* The default jump statusline prompt */
279     extern char *language;
280     extern char *lynx_cfg_file;	/* location of active lynx.cfg file */
281     extern char *lynx_cmd_logfile;	/* file to write keystroke commands, if any */
282     extern char *lynx_cmd_script;	/* file to read keystroke commands, if any */
283     extern char *lynx_save_space;
284     extern char *lynx_temp_space;
285     extern char *lynxjumpfile;
286     extern char *lynxlinksfile;
287     extern char *lynxlistfile;
288     extern char *original_dir;
289     extern char *pref_charset;	/* Lynx's preferred character set - MM */
290     extern char *startfile;
291     extern char *syslog_txt;	/* syslog arb text for session */
292     extern char *system_mail;
293     extern char *system_mail_flags;
294     extern char *x_display;
295     extern char empty_string[];
296 
297     extern const char *checked_box;	/* form boxes */
298     extern const char *checked_radio;	/* form radio buttons */
299     extern const char *unchecked_box;	/* form boxes */
300     extern const char *unchecked_radio;		/* form radio buttons */
301 
302     extern int LYAcceptEncoding;
303     extern int LYAcceptMedia;
304     extern int LYContentType;
305     extern const char *ContentTypes[];
306     extern int LYTransferRate;	/* see enum TransferRate */
307     extern int display_lines;	/* number of lines in the display */
308     extern int dump_output_width;
309     extern int dump_server_status;
310     extern int keypad_mode;	/* NUMBERS_AS_ARROWS or LINKS_ARE_NUMBERED */
311     extern int lynx_temp_subspace;
312     extern int max_cookies_buffer;
313     extern int max_cookies_domain;
314     extern int max_cookies_global;
315     extern int max_uri_size;
316 #ifdef USE_SESSIONS
317     extern short session_limit;	/* maximal entries saved/restored
318 				   in session file */
319 #endif
320     extern int user_mode;	/* novice or advanced */
321     extern int www_search_result;
322 
323     extern BOOLEAN exec_frozen;
324     extern BOOLEAN had_restrictions_all;	/* parsed these restriction options */
325     extern BOOLEAN had_restrictions_default;	/* flags to note whether we have... */
326     extern BOOLEAN no_bookmark;
327     extern BOOLEAN no_bookmark_exec;
328     extern BOOLEAN no_chdir;
329     extern BOOLEAN no_compileopts_info;
330     extern BOOLEAN no_disk_save;
331     extern BOOLEAN no_dotfiles;
332     extern BOOLEAN no_download;
333     extern BOOLEAN no_editor;
334     extern BOOLEAN no_exec;
335     extern BOOLEAN no_file_url;
336     extern BOOLEAN no_goto;
337     extern BOOLEAN no_goto_configinfo;
338     extern BOOLEAN no_goto_cso;
339     extern BOOLEAN no_goto_file;
340     extern BOOLEAN no_goto_finger;
341     extern BOOLEAN no_goto_ftp;
342     extern BOOLEAN no_goto_gopher;
343     extern BOOLEAN no_goto_http;
344     extern BOOLEAN no_goto_https;
345     extern BOOLEAN no_goto_lynxcgi;
346     extern BOOLEAN no_goto_lynxexec;
347     extern BOOLEAN no_goto_lynxprog;
348     extern BOOLEAN no_goto_mailto;
349     extern BOOLEAN no_goto_news;
350     extern BOOLEAN no_goto_nntp;
351     extern BOOLEAN no_goto_rlogin;
352     extern BOOLEAN no_goto_snews;
353     extern BOOLEAN no_goto_telnet;
354     extern BOOLEAN no_goto_tn3270;
355     extern BOOLEAN no_goto_wais;
356     extern BOOLEAN no_inside_ftp;
357     extern BOOLEAN no_inside_news;
358     extern BOOLEAN no_inside_rlogin;
359     extern BOOLEAN no_inside_telnet;	/* this and following are restrictions */
360     extern BOOLEAN no_jump;
361     extern BOOLEAN no_lynxcfg_info;
362     extern BOOLEAN no_lynxcfg_xinfo;
363     extern BOOLEAN no_lynxcgi;
364     extern BOOLEAN no_mail;
365     extern BOOLEAN no_multibook;
366     extern BOOLEAN no_newspost;
367     extern BOOLEAN no_option_save;
368     extern BOOLEAN no_outside_ftp;
369     extern BOOLEAN no_outside_news;
370     extern BOOLEAN no_outside_rlogin;
371     extern BOOLEAN no_outside_telnet;
372     extern BOOLEAN no_print;	/* TRUE to disable printing */
373     extern BOOLEAN no_shell;
374     extern BOOLEAN no_suspend;
375     extern BOOLEAN no_telnet_port;
376     extern BOOLEAN no_useragent;
377 
378     extern BOOLEAN no_statusline;
379     extern BOOLEAN no_filereferer;
380     extern char LYRefererWithQuery;	/* 'S', 'P', or 'D' */
381     extern BOOLEAN local_host_only;
382     extern BOOLEAN override_no_download;
383     extern BOOLEAN show_dotfiles;	/* From rcfile if no_dotfiles is false */
384     extern char *indexfile;
385     extern char *anonftp_password;
386     extern char *personal_mail_address;
387     extern char *personal_mail_name;
388     extern char *homepage;	/* startfile or command line argument */
389     extern char *editor;	/* if non empty it enables edit mode with
390 
391 				 * the editor that is named */
392     extern char *jumpfile;
393     extern char *bookmark_page;
394     extern char *BookmarkPage;
395     extern char *personal_type_map;
396     extern char *global_type_map;
397     extern char *global_extension_map;
398     extern char *personal_extension_map;
399     extern char *LYHostName;
400     extern char *LYLocalDomain;
401     extern BOOLEAN LYGuessScheme;
402     extern BOOLEAN unique_urls;
403     extern BOOLEAN use_underscore;
404     extern BOOLEAN no_list;
405     extern BOOLEAN no_margins;
406     extern BOOLEAN no_pause;
407     extern BOOLEAN no_title;
408     extern BOOLEAN update_term_title;
409     extern BOOLEAN historical_comments;
410     extern BOOLEAN html5_charsets;
411     extern BOOLEAN minimal_comments;
412     extern BOOLEAN soft_dquotes;
413 
414 #ifdef USE_SOURCE_CACHE
415     extern BOOLEAN source_cache_file_error;
416     extern int LYCacheSource;
417 
418 #define SOURCE_CACHE_NONE	0
419 #define SOURCE_CACHE_FILE	1
420 #define SOURCE_CACHE_MEMORY	2
421 
422     extern int LYCacheSourceForAborted;
423 
424 #define SOURCE_CACHE_FOR_ABORTED_KEEP 1
425 #define SOURCE_CACHE_FOR_ABORTED_DROP 0
426 #endif
427 
428     extern BOOLEAN LYCancelDownload;
429     extern BOOLEAN LYRestricted;	/* whether we had -anonymous option */
430     extern BOOLEAN LYValidate;
431     extern BOOLEAN LYPermitURL;
432     extern BOOLEAN track_internal_links;
433     extern BOOLEAN enable_scrollback;	/* Clear screen before displaying new page */
434     extern BOOLEAN keep_mime_headers;	/* Include mime headers and *
435 
436 					 * force source dump              */
437     extern BOOLEAN no_url_redirection;	/* Don't follow URL redirections */
438 
439 #ifdef DISP_PARTIAL
440     extern BOOLEAN display_partial;	/* Display document while loading */
441     extern int NumOfLines_partial;	/* -//- "current" number of lines */
442     extern int partial_threshold;
443     extern BOOLEAN debug_display_partial;	/* show with MessageSecs delay */
444     extern BOOLEAN display_partial_flag;	/* permanent flag, not mutable */
445 #endif
446     extern char *socks5_proxy;
447     extern char *form_post_data;	/* User data for post form */
448     extern char *form_get_data;	/* User data for get form */
449     extern char *http_error_file;	/* Place HTTP status code in this file */
450     extern char *authentication_info[2];	/* Id:Password for protected documents */
451     extern char *proxyauth_info[2];	/* Id:Password for protected proxy server */
452     extern BOOLEAN HEAD_request;	/* Do a HEAD request */
453     extern BOOLEAN scan_for_buried_news_references;
454     extern BOOLEAN bookmark_start;	/* Use bookmarks as startfile */
455     extern BOOLEAN clickable_images;
456     extern BOOLEAN nested_tables;
457     extern BOOLEAN pseudo_inline_alts;
458     extern BOOLEAN crawl;
459     extern BOOLEAN traversal;
460     extern BOOLEAN check_realm;
461     extern char *startrealm;
462     extern BOOLEAN more_links;
463     extern int crawl_count;
464     extern BOOLEAN LYCancelledFetch;
465     extern const char *LYToolbarName;
466 
467     extern BOOLEAN nomore;
468     extern int AlertSecs;
469     extern int InfoSecs;
470     extern int MessageSecs;
471     extern int DelaySecs;
472     extern int ReplaySecs;
473 
474     extern char *LYUserAgent;	/* Lynx User-Agent header */
475     extern char *LYUserAgentDefault;	/* Lynx default User-Agent header */
476     extern BOOLEAN LYNoRefererHeader;	/* Never send Referer header? */
477     extern BOOLEAN LYNoRefererForThis;	/* No Referer header for this URL? */
478     extern BOOLEAN LYNoFromHeader;	/* Never send From header?    */
479     extern BOOLEAN LYSendUserAgent;	/* send Lynx User-Agent header? */
480     extern BOOLEAN LYListNewsNumbers;
481     extern BOOLEAN LYUseMouse;
482     extern BOOLEAN LYListNewsDates;
483 
484     extern BOOLEAN LYRawMode;
485     extern BOOLEAN LYDefaultRawMode;
486     extern BOOLEAN LYUseDefaultRawMode;
487     extern char *UCAssume_MIMEcharset;
488     extern BOOLEAN UCSaveBookmarksInUnicode;	/* in titles,  chars >127 save as &#xUUUU */
489     extern BOOLEAN UCForce8bitTOUPPER;	/* disable locale case-conversion for >127 */
490     extern int outgoing_mail_charset;	/* translate outgoing mail to this charset */
491 
492     extern BOOLEAN LYisConfiguredForX;
493     extern char *URLDomainPrefixes;
494     extern char *URLDomainSuffixes;
495     extern BOOLEAN startfile_ok;
496     extern BOOLEAN LYSelectPopups;	/* Cast popups to radio buttons? */
497     extern BOOLEAN LYUseDefSelPop;	/* Command line -popup toggle    */
498     extern int LYMultiBookmarks;	/* Multi bookmark support on?    */
499     extern BOOLEAN LYMBMBlocked;	/* Force MBM support off?        */
500     extern int LYStatusLine;	/* Line for statusline() or -1   */
501     extern BOOLEAN LYCollapseBRs;	/* Collapse serial BRs?          */
502     extern BOOLEAN LYSetCookies;	/* Process Set-Cookie headers?   */
503     extern BOOLEAN LYAcceptAllCookies;	/* accept ALL cookies?           */
504 
505     extern char *LYCookieAcceptDomains;		/* domains to accept all cookies */
506     extern char *LYCookieRejectDomains;		/* domains to reject all cookies */
507     extern char *LYCookieStrictCheckDomains;	/* domains to check strictly    */
508     extern char *LYCookieLooseCheckDomains;	/* domains to check loosely      */
509     extern char *LYCookieQueryCheckDomains;	/* domains to check w/a query    */
510     extern char *LYCookieSAcceptDomains;	/* domains to accept all cookies */
511     extern char *LYCookieSRejectDomains;	/* domains to reject all cookies */
512     extern char *LYCookieSStrictCheckDomains;	/* domains to check strictly    */
513     extern char *LYCookieSLooseCheckDomains;	/* domains to check loosely      */
514     extern char *LYCookieSQueryCheckDomains;	/* domains to check w/a query    */
515 
516 #ifndef DISABLE_BIBP
517     extern BOOLEAN no_goto_bibp;
518     extern char *BibP_globalserver;	/* global server for bibp: links */
519     extern char *BibP_bibhost;	/* local server for bibp: links  */
520     extern BOOLEAN BibP_bibhost_checked;	/* bibhost has been checked      */
521     extern BOOLEAN BibP_bibhost_available;	/* bibhost is responding         */
522 #endif
523 
524 #ifndef DISABLE_FTP
525     extern BOOLEAN ftp_local_passive;
526     extern BOOLEAN ftp_passive;	/* TRUE if we want to use passive mode ftp */
527     extern HTList *broken_ftp_epsv;
528     extern HTList *broken_ftp_retr;
529     extern char *ftp_lasthost;
530 #endif
531 
532 #ifdef USE_PERSISTENT_COOKIES
533     extern BOOLEAN persistent_cookies;
534     extern char *LYCookieFile;	/* cookie read file              */
535     extern char *LYCookieSaveFile;	/* cookie save file              */
536 #endif				/* USE_PERSISTENT_COOKIES */
537 
538     extern char *XLoadImageCommand;	/* Default image viewer for X    */
539 
540 #ifdef USE_EXTERNALS
541     extern BOOLEAN no_externals;	/* don't allow the use of externals */
542 #endif
543 
544     extern BOOLEAN LYNoISMAPifUSEMAP;	/* Omit ISMAP link if MAP present? */
545     extern int LYHiddenLinks;
546 
547     extern char *SSL_cert_file;	/* Default CA CERT file */
548     extern char *SSL_client_cert_file;	/* Default client CERT file */
549     extern char *SSL_client_key_file;	/* Default client key file */
550 
551     typedef enum {
552 	HTTP_1_0
553 	,HTTP_1_1
554     } HTTP_LEVEL;
555 
556     extern int HTprotocolLevel;
557 
558     extern int Old_DTD;
559 
560 #define MBM_V_MAXFILES  25	/* Max number of sub-bookmark files */
561 
562 /*
563  *  Arrays that holds the names of sub-bookmark files
564  *  and their descriptions.
565  */
566     extern char *MBM_A_subbookmark[MBM_V_MAXFILES + 1];
567     extern char *MBM_A_subdescript[MBM_V_MAXFILES + 1];
568 
569     extern BOOLEAN LYForceSSLCookiesSecure;
570     extern BOOLEAN LYNoCc;
571     extern BOOLEAN LYNonRestartingSIGWINCH;
572     extern BOOLEAN LYPreparsedSource;	/* Show source as preparsed?     */
573     extern BOOLEAN LYPrependBaseToSource;
574     extern BOOLEAN LYPrependCharsetToSource;
575     extern BOOLEAN LYQuitDefaultYes;
576     extern BOOLEAN LYReuseTempfiles;
577     extern BOOLEAN LYSeekFragAREAinCur;
578     extern BOOLEAN LYSeekFragMAPinCur;
579     extern BOOLEAN LYStripDotDotURLs;	/* Try to fix ../ in some URLs?  */
580     extern BOOLEAN LYUseBuiltinSuffixes;
581     extern BOOLEAN dont_wrap_pre;
582 
583     extern int cookie_noprompt;
584 
585     typedef enum {
586 	FORCE_PROMPT_DFT	/* force a prompt, use the result */
587 	,FORCE_PROMPT_YES	/* assume "yes" where a prompt would be used */
588 	,FORCE_PROMPT_NO	/* assume "no" where a prompt would be used */
589     } FORCE_PROMPT;
590 
591     extern int cookie_version;
592 
593     typedef enum {
594 	COOKIES_RFC_2109
595 	,COOKIES_RFC_2965
596 	,COOKIES_RFC_6265
597     } COOKIES_VERSION;
598 
599 #define USE_RFC_2109 (cookie_version == (COOKIES_RFC_2109))
600 #define USE_RFC_2965 (cookie_version == (COOKIES_RFC_2965))
601 #define USE_RFC_6265 (cookie_version == (COOKIES_RFC_6265))
602 
603 #ifdef USE_SSL
604     extern int ssl_noprompt;
605 #endif
606 
607     extern int LYNoZapKey;	/* 0: off (do 'z' checking), 1: full, 2: initially */
608 
609 #ifdef USE_JUSTIFY_ELTS
610     extern BOOLEAN ok_justify;
611     extern int justify_max_void_percent;
612 #endif
613 
614 #ifdef USE_LOCALE_CHARSET
615     extern BOOLEAN LYLocaleCharset;
616 #endif
617     extern BOOLEAN assumed_charset;
618 
619 #ifndef NO_DUMP_WITH_BACKSPACES
620     extern BOOLEAN with_backspaces;
621 #endif
622 
623 #if defined(PDCURSES) && defined(PDC_BUILD) && PDC_BUILD >= 2401
624     extern int scrsize_x;
625     extern int scrsize_y;
626 #endif
627 
628     extern BOOLEAN conv_jisx0201kana;
629     extern BOOLEAN wait_viewer_termination;
630 
631 #ifndef NO_LYNX_TRACE
632     extern FILE *LYTraceLogFP;	/* Pointer for TRACE log         */
633     extern char *LYTraceLogPath;	/* Path for TRACE log            */
634 #endif
635     extern BOOLEAN LYUseTraceLog;	/* Use a TRACE log?              */
636 
637     extern BOOLEAN force_empty_hrefless_a;
638     extern int connect_timeout;
639     extern int reading_timeout;
640 
641 #ifdef TEXTFIELDS_MAY_NEED_ACTIVATION
642     extern BOOL textfields_need_activation;
643     extern BOOLEAN textfields_activation_option;
644 
645 #ifdef INACTIVE_INPUT_STYLE_VH
646     extern BOOL textinput_redrawn;
647 #endif
648 #else
649 #define textfields_need_activation FALSE
650 #endif				/* TEXTFIELDS_MAY_NEED_ACTIVATION */
651 
652     extern BOOLEAN textfield_prompt_at_left_edge;
653 
654 #ifndef VMS
655     extern BOOLEAN LYNoCore;
656     extern BOOLEAN restore_sigpipe_for_children;
657 #endif				/* !VMS */
658 
659 #if defined(USE_COLOR_STYLE)
660     extern int LYuse_color_style;	/* color-style vs oldlynx */
661     extern char *lynx_lss_file;
662 #endif
663 
664 #ifdef USE_DEFAULT_COLORS
665     extern BOOLEAN LYuse_default_colors;
666 #endif
667 
668     extern int HTNoDataOK;	/* HT_NO_DATA-is-ok hack */
669     extern BOOLEAN FileInitAlreadyDone;
670 
671 #ifdef USE_PROGRAM_DIR
672     extern char *program_dir;
673 #endif
674 
675 #ifdef __DJGPP__
676     extern BOOLEAN watt_debug;
677     extern BOOLEAN dj_is_bash;
678 #endif				/* __DJGPP__ */
679 
680 #ifdef WIN_EX
681 /* LYMain.c */
682     extern BOOLEAN focus_window;
683     extern BOOLEAN system_is_NT;
684     extern char windows_drive[4];
685     extern int lynx_timeout;
686     extern CRITICAL_SECTION critSec_READ;
687 #endif				/* _WINDOWS */
688 
689     extern BOOLEAN show_cfg;
690     extern BOOLEAN no_table_center;
691 
692 #if USE_BLAT_MAILER
693     extern BOOLEAN mail_is_altblat;
694     extern BOOLEAN mail_is_blat;
695 #endif
696 
697 #if defined(__CYGWIN__)
698 #include <io.h>
699 #endif
700 
701 #if !defined(__CYGWIN__) && defined(__CYGWIN32__)
702 #define __CYGWIN__
703 
704 #define	cygwin_conv_to_full_win32_path(p, q) \
705 	cygwin32_conv_to_full_win32_path(p, q)
706 
707 #define	cygwin_conv_to_full_posix_path(p, q) \
708 	cygwin32_conv_to_full_posix_path(p, q)
709 #endif
710 
711 #ifdef __CYGWIN__
712 #define ConvertToWin32Path(p, q) \
713 	cygwin_conv_to_full_win32_path(p, q);
714 #else
715 #define ConvertToWin32Path(p, q) \
716 	q = p
717 #endif
718 
719 #ifdef USE_SCROLLBAR
720 /* GridText.c */
721     extern BOOLEAN LYShowScrollbar;
722     extern BOOLEAN LYsb_arrow;
723     extern int LYsb_begin;
724     extern int LYsb_end;
725 #endif
726 
727 #ifdef MARK_HIDDEN_LINKS
728     extern char *hidden_link_marker;
729 #endif
730 
731 #ifdef USE_BLINK
732     extern BOOLEAN term_blink_is_boldbg;
733 #endif
734 
735 #ifdef __cplusplus
736 }
737 #endif
738 #endif				/* LYGLOBALDEFS_H */
739