1 /*
2  * $LynxId: LYGlobalDefs.h,v 1.146 2018/03/27 23:05:13 tom 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_inline;
238     extern BOOLEAN dump_links_only;
239     extern BOOLEAN dump_output_immediately;
240     extern BOOLEAN dump_to_stderr;
241     extern BOOLEAN emacs_keys;	/* TRUE to turn on emacs-like key movement */
242     extern BOOLEAN error_logging;	/* TRUE to mail error messages */
243     extern BOOLEAN ftp_ok;
244     extern BOOLEAN goto_buffer;	/* TRUE if offering default goto URL */
245     extern BOOLEAN is_www_index;
246     extern BOOLEAN jump_buffer;	/* TRUE if offering default shortcut */
247     extern BOOLEAN long_url_ok;
248     extern BOOLEAN lynx_mode;
249     extern BOOLEAN more_text;	/* is there more document to display? */
250     extern BOOLEAN news_ok;
251     extern BOOLEAN number_fields_on_left;
252     extern BOOLEAN number_links_on_left;
253     extern BOOLEAN recent_sizechange;
254     extern BOOLEAN rlogin_ok;
255     extern BOOLEAN syslog_requested_urls;
256     extern BOOLEAN system_editor;	/* True if locked-down editor */
257     extern BOOLEAN telnet_ok;
258     extern BOOLEAN verbose_img;	/* display filenames of images?     */
259     extern BOOLEAN vi_keys;	/* TRUE to turn on vi-like key movement */
260 
261     extern HTList *Goto_URLs;
262     extern HTList *positionable_editor;
263 
264     extern char *LYRequestReferer;	/* Referer, may be set in getfile() */
265     extern char *LYRequestTitle;	/* newdoc.title in calls to getfile() */
266     extern char *LYTransferName;	/* abbreviation for Kilobytes */
267     extern char *LynxHome;
268 #ifdef USE_SESSIONS
269     extern char *LYSessionFile;	/* file for auto-session */
270     extern char *session_file;	/* file for -session= */
271     extern char *sessionin_file;	/* file for -sessionin= */
272     extern char *sessionout_file;	/* file for -sessionout= */
273 #endif
274     extern char *LynxSigFile;	/* Signature file, in or off home */
275     extern char *helpfile;
276     extern char *helpfilepath;
277     extern char *jumpprompt;	/* The default jump statusline prompt */
278     extern char *language;
279     extern char *lynx_cfg_file;	/* location of active lynx.cfg file */
280     extern char *lynx_cmd_logfile;	/* file to write keystroke commands, if any */
281     extern char *lynx_cmd_script;	/* file to read keystroke commands, if any */
282     extern char *lynx_save_space;
283     extern char *lynx_temp_space;
284     extern char *lynxjumpfile;
285     extern char *lynxlinksfile;
286     extern char *lynxlistfile;
287     extern char *original_dir;
288     extern char *pref_charset;	/* Lynx's preferred character set - MM */
289     extern char *startfile;
290     extern char *syslog_txt;	/* syslog arb text for session */
291     extern char *system_mail;
292     extern char *system_mail_flags;
293     extern char *x_display;
294     extern char empty_string[];
295 
296     extern const char *checked_box;	/* form boxes */
297     extern const char *checked_radio;	/* form radio buttons */
298     extern const char *unchecked_box;	/* form boxes */
299     extern const char *unchecked_radio;		/* form radio buttons */
300 
301     extern int LYAcceptEncoding;
302     extern int LYAcceptMedia;
303     extern int LYContentType;
304     extern const char *ContentTypes[];
305     extern int LYTransferRate;	/* see enum TransferRate */
306     extern int display_lines;	/* number of lines in the display */
307     extern int dump_output_width;
308     extern int dump_server_status;
309     extern int keypad_mode;	/* NUMBERS_AS_ARROWS or LINKS_ARE_NUMBERED */
310     extern int lynx_temp_subspace;
311     extern int max_cookies_buffer;
312     extern int max_cookies_domain;
313     extern int max_cookies_global;
314     extern int max_uri_size;
315 #ifdef USE_SESSIONS
316     extern short session_limit;	/* maximal entries saved/restored
317 				   in session file */
318 #endif
319     extern int user_mode;	/* novice or advanced */
320     extern int www_search_result;
321 
322     extern BOOLEAN exec_frozen;
323     extern BOOLEAN had_restrictions_all;	/* parsed these restriction options */
324     extern BOOLEAN had_restrictions_default;	/* flags to note whether we have... */
325     extern BOOLEAN no_bookmark;
326     extern BOOLEAN no_bookmark_exec;
327     extern BOOLEAN no_chdir;
328     extern BOOLEAN no_compileopts_info;
329     extern BOOLEAN no_disk_save;
330     extern BOOLEAN no_dotfiles;
331     extern BOOLEAN no_download;
332     extern BOOLEAN no_editor;
333     extern BOOLEAN no_exec;
334     extern BOOLEAN no_file_url;
335     extern BOOLEAN no_goto;
336     extern BOOLEAN no_goto_configinfo;
337     extern BOOLEAN no_goto_cso;
338     extern BOOLEAN no_goto_file;
339     extern BOOLEAN no_goto_finger;
340     extern BOOLEAN no_goto_ftp;
341     extern BOOLEAN no_goto_gopher;
342     extern BOOLEAN no_goto_http;
343     extern BOOLEAN no_goto_https;
344     extern BOOLEAN no_goto_lynxcgi;
345     extern BOOLEAN no_goto_lynxexec;
346     extern BOOLEAN no_goto_lynxprog;
347     extern BOOLEAN no_goto_mailto;
348     extern BOOLEAN no_goto_news;
349     extern BOOLEAN no_goto_nntp;
350     extern BOOLEAN no_goto_rlogin;
351     extern BOOLEAN no_goto_snews;
352     extern BOOLEAN no_goto_telnet;
353     extern BOOLEAN no_goto_tn3270;
354     extern BOOLEAN no_goto_wais;
355     extern BOOLEAN no_inside_ftp;
356     extern BOOLEAN no_inside_news;
357     extern BOOLEAN no_inside_rlogin;
358     extern BOOLEAN no_inside_telnet;	/* this and following are restrictions */
359     extern BOOLEAN no_jump;
360     extern BOOLEAN no_lynxcfg_info;
361     extern BOOLEAN no_lynxcfg_xinfo;
362     extern BOOLEAN no_lynxcgi;
363     extern BOOLEAN no_mail;
364     extern BOOLEAN no_multibook;
365     extern BOOLEAN no_newspost;
366     extern BOOLEAN no_option_save;
367     extern BOOLEAN no_outside_ftp;
368     extern BOOLEAN no_outside_news;
369     extern BOOLEAN no_outside_rlogin;
370     extern BOOLEAN no_outside_telnet;
371     extern BOOLEAN no_print;	/* TRUE to disable printing */
372     extern BOOLEAN no_shell;
373     extern BOOLEAN no_suspend;
374     extern BOOLEAN no_telnet_port;
375     extern BOOLEAN no_useragent;
376 
377     extern BOOLEAN no_statusline;
378     extern BOOLEAN no_filereferer;
379     extern char LYRefererWithQuery;	/* 'S', 'P', or 'D' */
380     extern BOOLEAN local_host_only;
381     extern BOOLEAN override_no_download;
382     extern BOOLEAN show_dotfiles;	/* From rcfile if no_dotfiles is false */
383     extern char *indexfile;
384     extern char *anonftp_password;
385     extern char *personal_mail_address;
386     extern char *personal_mail_name;
387     extern char *homepage;	/* startfile or command line argument */
388     extern char *editor;	/* if non empty it enables edit mode with
389 
390 				 * the editor that is named */
391     extern char *jumpfile;
392     extern char *bookmark_page;
393     extern char *BookmarkPage;
394     extern char *personal_type_map;
395     extern char *global_type_map;
396     extern char *global_extension_map;
397     extern char *personal_extension_map;
398     extern char *LYHostName;
399     extern char *LYLocalDomain;
400     extern BOOLEAN LYGuessScheme;
401     extern BOOLEAN unique_urls;
402     extern BOOLEAN use_underscore;
403     extern BOOLEAN no_list;
404     extern BOOLEAN no_margins;
405     extern BOOLEAN no_pause;
406     extern BOOLEAN no_title;
407     extern BOOLEAN historical_comments;
408     extern BOOLEAN html5_charsets;
409     extern BOOLEAN minimal_comments;
410     extern BOOLEAN soft_dquotes;
411 
412 #ifdef USE_SOURCE_CACHE
413     extern BOOLEAN source_cache_file_error;
414     extern int LYCacheSource;
415 
416 #define SOURCE_CACHE_NONE	0
417 #define SOURCE_CACHE_FILE	1
418 #define SOURCE_CACHE_MEMORY	2
419 
420     extern int LYCacheSourceForAborted;
421 
422 #define SOURCE_CACHE_FOR_ABORTED_KEEP 1
423 #define SOURCE_CACHE_FOR_ABORTED_DROP 0
424 #endif
425 
426     extern BOOLEAN LYCancelDownload;
427     extern BOOLEAN LYRestricted;	/* whether we had -anonymous option */
428     extern BOOLEAN LYValidate;
429     extern BOOLEAN LYPermitURL;
430     extern BOOLEAN track_internal_links;
431     extern BOOLEAN enable_scrollback;	/* Clear screen before displaying new page */
432     extern BOOLEAN keep_mime_headers;	/* Include mime headers and *
433 
434 					 * force source dump              */
435     extern BOOLEAN no_url_redirection;	/* Don't follow URL redirections */
436 
437 #ifdef DISP_PARTIAL
438     extern BOOLEAN display_partial;	/* Display document while loading */
439     extern int NumOfLines_partial;	/* -//- "current" number of lines */
440     extern int partial_threshold;
441     extern BOOLEAN debug_display_partial;	/* show with MessageSecs delay */
442     extern BOOLEAN display_partial_flag;	/* permanent flag, not mutable */
443 #endif
444     extern char *form_post_data;	/* User data for post form */
445     extern char *form_get_data;	/* User data for get form */
446     extern char *http_error_file;	/* Place HTTP status code in this file */
447     extern char *authentication_info[2];	/* Id:Password for protected documents */
448     extern char *proxyauth_info[2];	/* Id:Password for protected proxy server */
449     extern BOOLEAN HEAD_request;	/* Do a HEAD request */
450     extern BOOLEAN scan_for_buried_news_references;
451     extern BOOLEAN bookmark_start;	/* Use bookmarks as startfile */
452     extern BOOLEAN clickable_images;
453     extern BOOLEAN nested_tables;
454     extern BOOLEAN pseudo_inline_alts;
455     extern BOOLEAN crawl;
456     extern BOOLEAN traversal;
457     extern BOOLEAN check_realm;
458     extern char *startrealm;
459     extern BOOLEAN more_links;
460     extern int crawl_count;
461     extern BOOLEAN LYCancelledFetch;
462     extern const char *LYToolbarName;
463 
464     extern BOOLEAN nomore;
465     extern int AlertSecs;
466     extern int InfoSecs;
467     extern int MessageSecs;
468     extern int DelaySecs;
469     extern int ReplaySecs;
470 
471     extern char *LYUserAgent;	/* Lynx User-Agent header */
472     extern char *LYUserAgentDefault;	/* Lynx default User-Agent header */
473     extern BOOLEAN LYNoRefererHeader;	/* Never send Referer header? */
474     extern BOOLEAN LYNoRefererForThis;	/* No Referer header for this URL? */
475     extern BOOLEAN LYNoFromHeader;	/* Never send From header?    */
476     extern BOOLEAN LYSendUserAgent;	/* send Lynx User-Agent header? */
477     extern BOOLEAN LYListNewsNumbers;
478     extern BOOLEAN LYUseMouse;
479     extern BOOLEAN LYListNewsDates;
480 
481     extern BOOLEAN LYRawMode;
482     extern BOOLEAN LYDefaultRawMode;
483     extern BOOLEAN LYUseDefaultRawMode;
484     extern char *UCAssume_MIMEcharset;
485     extern BOOLEAN UCSaveBookmarksInUnicode;	/* in titles,  chars >127 save as &#xUUUU */
486     extern BOOLEAN UCForce8bitTOUPPER;	/* disable locale case-conversion for >127 */
487     extern int outgoing_mail_charset;	/* translate outgoing mail to this charset */
488 
489     extern BOOLEAN LYisConfiguredForX;
490     extern char *URLDomainPrefixes;
491     extern char *URLDomainSuffixes;
492     extern BOOLEAN startfile_ok;
493     extern BOOLEAN LYSelectPopups;	/* Cast popups to radio buttons? */
494     extern BOOLEAN LYUseDefSelPop;	/* Command line -popup toggle    */
495     extern int LYMultiBookmarks;	/* Multi bookmark support on?    */
496     extern BOOLEAN LYMBMBlocked;	/* Force MBM support off?        */
497     extern int LYStatusLine;	/* Line for statusline() or -1   */
498     extern BOOLEAN LYCollapseBRs;	/* Collapse serial BRs?          */
499     extern BOOLEAN LYSetCookies;	/* Process Set-Cookie headers?   */
500     extern BOOLEAN LYAcceptAllCookies;	/* accept ALL cookies?           */
501 
502     extern char *LYCookieAcceptDomains;		/* domains to accept all cookies */
503     extern char *LYCookieRejectDomains;		/* domains to reject all cookies */
504     extern char *LYCookieStrictCheckDomains;	/* domains to check strictly    */
505     extern char *LYCookieLooseCheckDomains;	/* domains to check loosely      */
506     extern char *LYCookieQueryCheckDomains;	/* domains to check w/a query    */
507     extern char *LYCookieSAcceptDomains;	/* domains to accept all cookies */
508     extern char *LYCookieSRejectDomains;	/* domains to reject all cookies */
509     extern char *LYCookieSStrictCheckDomains;	/* domains to check strictly    */
510     extern char *LYCookieSLooseCheckDomains;	/* domains to check loosely      */
511     extern char *LYCookieSQueryCheckDomains;	/* domains to check w/a query    */
512 
513 #ifndef DISABLE_BIBP
514     extern BOOLEAN no_goto_bibp;
515     extern char *BibP_globalserver;	/* global server for bibp: links */
516     extern char *BibP_bibhost;	/* local server for bibp: links  */
517     extern BOOLEAN BibP_bibhost_checked;	/* bibhost has been checked      */
518     extern BOOLEAN BibP_bibhost_available;	/* bibhost is responding         */
519 #endif
520 
521 #ifndef DISABLE_FTP
522     extern BOOLEAN ftp_local_passive;
523     extern BOOLEAN ftp_passive;	/* TRUE if we want to use passive mode ftp */
524     extern HTList *broken_ftp_epsv;
525     extern HTList *broken_ftp_retr;
526     extern char *ftp_lasthost;
527 #endif
528 
529 #ifdef USE_PERSISTENT_COOKIES
530     extern BOOLEAN persistent_cookies;
531     extern char *LYCookieFile;	/* cookie read file              */
532     extern char *LYCookieSaveFile;	/* cookie save file              */
533 #endif				/* USE_PERSISTENT_COOKIES */
534 
535     extern char *XLoadImageCommand;	/* Default image viewer for X    */
536 
537 #ifdef USE_EXTERNALS
538     extern BOOLEAN no_externals;	/* don't allow the use of externals */
539 #endif
540 
541     extern BOOLEAN LYNoISMAPifUSEMAP;	/* Omit ISMAP link if MAP present? */
542     extern int LYHiddenLinks;
543 
544     extern char *SSL_cert_file;	/* Default CA CERT file */
545     extern char *SSL_client_cert_file;	/* Default client CERT file */
546     extern char *SSL_client_key_file;	/* Default client key file */
547 
548     typedef enum {
549 	HTTP_1_0
550 	,HTTP_1_1
551     } HTTP_LEVEL;
552 
553     extern int HTprotocolLevel;
554 
555     extern int Old_DTD;
556 
557 #define MBM_V_MAXFILES  25	/* Max number of sub-bookmark files */
558 
559 /*
560  *  Arrays that holds the names of sub-bookmark files
561  *  and their descriptions.
562  */
563     extern char *MBM_A_subbookmark[MBM_V_MAXFILES + 1];
564     extern char *MBM_A_subdescript[MBM_V_MAXFILES + 1];
565 
566     extern BOOLEAN LYForceSSLCookiesSecure;
567     extern BOOLEAN LYNoCc;
568     extern BOOLEAN LYNonRestartingSIGWINCH;
569     extern BOOLEAN LYPreparsedSource;	/* Show source as preparsed?     */
570     extern BOOLEAN LYPrependBaseToSource;
571     extern BOOLEAN LYPrependCharsetToSource;
572     extern BOOLEAN LYQuitDefaultYes;
573     extern BOOLEAN LYReuseTempfiles;
574     extern BOOLEAN LYSeekFragAREAinCur;
575     extern BOOLEAN LYSeekFragMAPinCur;
576     extern BOOLEAN LYStripDotDotURLs;	/* Try to fix ../ in some URLs?  */
577     extern BOOLEAN LYUseBuiltinSuffixes;
578     extern BOOLEAN dont_wrap_pre;
579 
580     extern int cookie_noprompt;
581 
582     typedef enum {
583 	FORCE_PROMPT_DFT	/* force a prompt, use the result */
584 	,FORCE_PROMPT_YES	/* assume "yes" where a prompt would be used */
585 	,FORCE_PROMPT_NO	/* assume "no" where a prompt would be used */
586     } FORCE_PROMPT;
587 
588 #ifdef USE_SSL
589     extern int ssl_noprompt;
590 #endif
591 
592     extern int LYNoZapKey;	/* 0: off (do 'z' checking), 1: full, 2: initially */
593 
594 #ifdef USE_JUSTIFY_ELTS
595     extern BOOLEAN ok_justify;
596     extern int justify_max_void_percent;
597 #endif
598 
599 #ifdef USE_LOCALE_CHARSET
600     extern BOOLEAN LYLocaleCharset;
601 #endif
602     extern BOOLEAN assumed_charset;
603 
604 #ifndef NO_DUMP_WITH_BACKSPACES
605     extern BOOLEAN with_backspaces;
606 #endif
607 
608 #if defined(PDCURSES) && defined(PDC_BUILD) && PDC_BUILD >= 2401
609     extern int scrsize_x;
610     extern int scrsize_y;
611 #endif
612 
613     extern BOOLEAN conv_jisx0201kana;
614     extern BOOLEAN wait_viewer_termination;
615 
616 #ifndef NO_LYNX_TRACE
617     extern FILE *LYTraceLogFP;	/* Pointer for TRACE log         */
618     extern char *LYTraceLogPath;	/* Path for TRACE log            */
619 #endif
620     extern BOOLEAN LYUseTraceLog;	/* Use a TRACE log?              */
621 
622     extern BOOLEAN force_empty_hrefless_a;
623     extern int connect_timeout;
624     extern int reading_timeout;
625 
626 #ifdef TEXTFIELDS_MAY_NEED_ACTIVATION
627     extern BOOL textfields_need_activation;
628     extern BOOLEAN textfields_activation_option;
629 
630 #ifdef INACTIVE_INPUT_STYLE_VH
631     extern BOOL textinput_redrawn;
632 #endif
633 #else
634 #define textfields_need_activation FALSE
635 #endif				/* TEXTFIELDS_MAY_NEED_ACTIVATION */
636 
637     extern BOOLEAN textfield_prompt_at_left_edge;
638 
639 #ifndef VMS
640     extern BOOLEAN LYNoCore;
641     extern BOOLEAN restore_sigpipe_for_children;
642 #endif				/* !VMS */
643 
644 #if defined(USE_COLOR_STYLE)
645     extern int LYuse_color_style;	/* color-style vs oldlynx */
646     extern char *lynx_lss_file;
647 #endif
648 
649 #ifdef USE_DEFAULT_COLORS
650     extern BOOLEAN LYuse_default_colors;
651 #endif
652 
653     extern int HTNoDataOK;	/* HT_NO_DATA-is-ok hack */
654     extern BOOLEAN FileInitAlreadyDone;
655 
656 #ifdef USE_PROGRAM_DIR
657     extern char *program_dir;
658 #endif
659 
660 #ifdef __DJGPP__
661     extern BOOLEAN watt_debug;
662     extern BOOLEAN dj_is_bash;
663 #endif				/* __DJGPP__ */
664 
665 #ifdef WIN_EX
666 /* LYMain.c */
667     extern BOOLEAN focus_window;
668     extern BOOLEAN system_is_NT;
669     extern char windows_drive[4];
670     extern int lynx_timeout;
671     extern CRITICAL_SECTION critSec_READ;
672 #endif				/* _WINDOWS */
673 
674     extern BOOLEAN show_cfg;
675     extern BOOLEAN no_table_center;
676 
677 #if USE_BLAT_MAILER
678     extern BOOLEAN mail_is_altblat;
679     extern BOOLEAN mail_is_blat;
680 #endif
681 
682 #if defined(__CYGWIN__)
683 #include <io.h>
684 #endif
685 
686 #if !defined(__CYGWIN__) && defined(__CYGWIN32__)
687 #define __CYGWIN__
688 
689 #define	cygwin_conv_to_full_win32_path(p, q) \
690 	cygwin32_conv_to_full_win32_path(p, q)
691 
692 #define	cygwin_conv_to_full_posix_path(p, q) \
693 	cygwin32_conv_to_full_posix_path(p, q)
694 #endif
695 
696 #ifdef __CYGWIN__
697 #define ConvertToWin32Path(p, q) \
698 	cygwin_conv_to_full_win32_path(p, q);
699 #else
700 #define ConvertToWin32Path(p, q) \
701 	q = p
702 #endif
703 
704 #ifdef USE_SCROLLBAR
705 /* GridText.c */
706     extern BOOLEAN LYShowScrollbar;
707     extern BOOLEAN LYsb_arrow;
708     extern int LYsb_begin;
709     extern int LYsb_end;
710 #endif
711 
712 #ifdef MARK_HIDDEN_LINKS
713     extern char *hidden_link_marker;
714 #endif
715 
716 #ifdef USE_BLINK
717     extern BOOLEAN term_blink_is_boldbg;
718 #endif
719 
720 #ifdef __cplusplus
721 }
722 #endif
723 #endif				/* LYGLOBALDEFS_H */
724