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