summaryrefslogtreecommitdiffstats
path: root/userdefs.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 16:37:15 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 16:37:15 +0000
commitae5d181b854d3ccb373b6bc01b4869e44ff4d87a (patch)
tree91f59efb48c56a84cc798e012fccb667b63d3fee /userdefs.h
parentInitial commit. (diff)
downloadlynx-ae5d181b854d3ccb373b6bc01b4869e44ff4d87a.tar.xz
lynx-ae5d181b854d3ccb373b6bc01b4869e44ff4d87a.zip
Adding upstream version 2.9.0dev.12.upstream/2.9.0dev.12upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--userdefs.h1882
1 files changed, 1882 insertions, 0 deletions
diff --git a/userdefs.h b/userdefs.h
new file mode 100644
index 0000000..4e0d3d2
--- /dev/null
+++ b/userdefs.h
@@ -0,0 +1,1882 @@
+/*
+ * $LynxId: userdefs.h,v 1.367 2023/01/03 00:17:33 tom Exp $
+ *
+ * Lynx - Hypertext navigation system
+ *
+ * Copyright 1996-2022,2023 Thomas E. Dickey and Lynx Developers Group
+ * Note: GNU General Public License is not a copyright.
+ *
+ * (c) Copyright 1992, 1993, 1994 University of Kansas
+ * 1995, 1996: GNU General Public License
+ */
+
+/*******************************************************************
+ * There are four sections to this document:
+ * Section 1. Things you MUST verify. Unix platforms use a configure
+ * script to provide sensible default values. If your site
+ * has special requirements, that may not be sufficient.
+ * For non-Unix platforms (e.g., VMS), there is no
+ * configure script, so the defaults here are more
+ * critical.
+ * Section 1a) VMS specific things
+ * Section 1b) non-VMS specific things
+ * Section 1c) ALL Platforms
+ *
+ * Section 2. Things you should probably check!
+ *
+ * Section 3. Things you should only change after you have a good
+ * understanding of the program!
+ *
+ * Section 4. Things you MUST check only if you plan to use Lynx in
+ * an anonymous account (allow public access to Lynx)!
+ *
+ */
+
+#ifndef USERDEFS_H
+#define USERDEFS_H
+
+/*******************************************************************
+ * Insure definition of NOT_ASCII, etc. precedes use below.
+ */
+#ifndef HTUTILS_H
+#include <HTUtils.h>
+#endif
+
+#ifdef HAVE_CONFIG_H
+#include <lynx_cfg.h>
+#endif
+
+/*******************************************************************
+ * Things you must change
+ * Section 1.
+ */
+
+/*******************************************************************
+ * Things you must change - VMS specific
+ * Section 1a).
+ */
+#ifdef VMS
+/**************************
+ * TEMP_SPACE is where Lynx temporary cache files will be placed.
+ * Temporary files are removed automatically as long as nothing
+ * goes terribly wrong :) If you include "$USER" in the definition
+ * (e.g., "device:[dir.$USER]"), Lynx will replace the "$USER" with
+ * the username of the account which invoked the Lynx image. Such
+ * directories should already exist, and have protections/ACLs set
+ * so that only the appropriate user(s) will have read/write access.
+ * On VMS, "sys$scratch:" defaults to "sys$login:" if it has not been
+ * defined externally, or you can use "sys$login:" explicitly here.
+ * If the path has SHELL syntax and includes a tilde (e.g, "~/lynxtmp"),
+ * Lynx will replace the tilde with the full path for the user's home
+ * and convert the result to VMS syntax.
+ * The definition here can be overridden at run time by defining a
+ * "LYNX_TEMP_SPACE" VMS logical.
+ */
+#define TEMP_SPACE "sys$scratch:"
+
+/**************************
+ * LYNX_CFG_FILE is the location and name of the default lynx
+ * global configuration file. It is sought and processed at
+ * startup of Lynx, followed by a seek and processing of a
+ * personal RC file (.lynxrc in the user's HOME directory,
+ * created if the user saves values in the 'o'ptions menu).
+ * You also can define the location and name of the global
+ * configuration file via a VMS logical, "LYNX_CFG", which
+ * will override the "LYNX_CFG_FILE" definition here. SYS$LOGIN:
+ * can be used as the device in either or both definitions if
+ * you want lynx.cfg treated as a personal configuration file.
+ * You also can use Unix syntax with a '~' for a subdirectory
+ * of the login directory, (e.g., ~/lynx/lynx.cfg).
+ * The -cfg command line switch will override these definitions.
+ * You can pass the compilation default via build.com or descrip.mms.
+ *
+ * Note that some implementations of telnet allow passing of
+ * environment variables, which might be used by unscrupulous
+ * people to modify the environment in anonymous accounts. When
+ * making Lynx and Web access publicly available via anonymous
+ * accounts intended to run Lynx captively, be sure the wrapper
+ * uses the -cfg switch and specifies the startfile, rather than
+ * relying on the LYNX_CFG, LYNX_CFG_FILE, or WWW_HOME variables.
+ *
+ * Note that any SUFFIX or VIEWER mappings in the configuration
+ * file will be overridden by any suffix or viewer mappings
+ * that are established as defaults in src/HTInit.c. You can
+ * override the src/HTInit.c defaults via the mime.types and
+ * mailcap files (see the examples in the samples directory).
+ */
+#ifndef LYNX_CFG_FILE
+#define LYNX_CFG_FILE "Lynx_Dir:lynx.cfg"
+#endif /* LYNX_CFG_FILE */
+
+#ifndef LYNX_CFG_PATH
+#define LYNX_CFG_PATH "Lynx_Dir"
+#endif /* LYNX_CFG_PATH */
+
+/**************************
+ * The EXTENSION_MAP file allows you to map file suffixes to
+ * mime types.
+ * The file locations defined here can be overridden in lynx.cfg.
+ * Mappings in these global and personal files override any SUFFIX
+ * definitions in lynx.cfg and built-in defaults from src/HTInit.c.
+ */
+#define GLOBAL_EXTENSION_MAP "Lynx_Dir:mime.types"
+#define PERSONAL_EXTENSION_MAP "mime.types"
+
+/**************************
+ * The MAILCAP file allows you to map file MIME types to
+ * external viewers.
+ * The file locations defined here can be overridden in lynx.cfg.
+ * Mappings in these global and personal files override any VIEWER
+ * definitions in lynx.cfg and built-in defaults from src/HTInit.c.
+ */
+#define GLOBAL_MAILCAP "Lynx_Dir:mailcap"
+#define PERSONAL_MAILCAP ".mailcap"
+
+/**************************
+ * XLOADIMAGE_COMMAND will be used as a default in src/HTInit.c
+ * for viewing image content types when the DECW$DISPLAY logical
+ * is set. Make it the foreign command for your system's X image
+ * viewer (commonly, "xv"). It can be anything that will handle GIF,
+ * TIFF and other popular image formats. Freeware ports of xv for
+ * VMS are available in the ftp://ftp.wku.edu/vms/unsupported and
+ * http://www.openvms.digital.com/cd/XV310A/ subdirectories. You
+ * must also have a "%s" for the filename. The default defined
+ * here can be overridden in lynx.cfg, or via the global or personal
+ * mailcap files.
+ * Make this NULL if you don't have such a viewer or don't want to
+ * use any default viewers for image types.
+ */
+#define XLOADIMAGE_COMMAND "xv %s"
+
+/**************************
+ * SYSTEM_MAIL must be defined here to your mail sending command,
+ * and SYSTEM_MAIL_FLAGS to appropriate qualifiers. They can be
+ * changed in lynx.cfg.
+ *
+ * The mail command will be spawned as a subprocess of lynx
+ * and used to send the email, with headers specified in a
+ * temporary file for PMDF. If you define SYSTEM_MAIL to the
+ * "generic" MAIL utility for VMS, headers cannot be specified
+ * via a header file (and thus may not be included), and the
+ * subject line will be specified by use of the /subject="SUBJECT"
+ * qualifier.
+ *
+ * If your mailer uses another syntax, some hacking of the
+ * mailform(), mailmsg() and reply_by_mail() functions in
+ * LYMail.c, and printfile() function in LYPrint.c, may be
+ * required.
+ */
+#define SYSTEM_MAIL "PMDF SEND"
+#define SYSTEM_MAIL_FLAGS "/headers"
+/* #define SYSTEM_MAIL "MAIL" */
+/* #define SYSTEM_MAIL_FLAGS "" */
+
+/*************************
+ * Below is the argument for an sprintf command that will add
+ * "IN%""ADDRESS""" to the Internet mail address given by the user.
+ * It is structured for PMDF's IN%"INTERNET_ADDRESS" scheme. The %s
+ * is replaced with the address given by the user. If you are using
+ * a different Internet mail transport, change the IN appropriately
+ * (e.g., to SMTP, MX, or WINS), here or in lynx.cfg.
+ */
+#define MAIL_ADRS "\"IN%%\"\"%s\"\"\""
+
+/*********************************
+ * On VMS, CSwing (an XTree emulation for VTxxx terminals) is intended for
+ * use as the Directory/File Manager (sources, objects, or executables are
+ * available from ftp://narnia.memst.edu/). CSWING_PATH should be defined
+ * here or in lynx.cfg to your foreign command for CSwing, with any
+ * regulatory switches you want included. If not defined, or defined as
+ * a zero-length string ("") or "none" (case-insensitive), the support
+ * will be disabled. It will also be disabled if the -nobrowse or
+ * -selective switches are used, or if the file_url restriction is set.
+ *
+ * When enabled, the DIRED_MENU command (normally 'f' or 'F') will invoke
+ * CSwing, normally with the current default directory as an argument to
+ * position the user on that node of the directory tree. However, if the
+ * current document is a local directory listing, or a local file and not
+ * one of the temporary menu or list files, the associated directory will
+ * be passed as an argument, to position the user on that node of the tree.
+ */
+/* #define CSWING_PATH "swing" */
+
+/*********************************
+ * If USE_FIXED_RECORDS is set to TRUE here and/or in lynx.cfg, Lynx will
+ * convert 'd'ownloaded binary files to FIXED 512 record format before saving
+ * them to disk or acting on a DOWNLOADER option. If set to FALSE, the
+ * headers of such files will indicate that they are Stream_LF with Implied
+ * Carriage Control, which is incorrect, and can cause downloading software
+ * to get confused and unhappy. If you do set it FALSE, you can use the
+ * FIXED512.COM command file, which is included in this distribution, to do
+ * the conversion externally.
+ */
+#define USE_FIXED_RECORDS TRUE /* convert binaries to FIXED 512 */
+
+/********************************
+ * If NO_ANONYMOUS_EMAIL is defined, Lynx will not offer to insert X-From
+ * and X_Personal_Name lines in the body of email messages. On VMS, the
+ * actual From and Personal Name (if defined for the account) headers always
+ * are those of the account running the Lynx image. If the account is not
+ * the one to which the recipient should reply, you can indicate the alternate
+ * address and personal name via the X-From and X_Personal_Name entries, but
+ * the recipient must explicitly send the reply to the X_From address, rather
+ * than using the VMS REPLY command (which will use the actual From address).
+ *
+ * This symbol constant might be defined on Unix for security reasons that
+ * don't apply on VMS. There is no security reason for defining this on VMS,
+ * but if you have no anonymous accounts (i.e., the From always will point to
+ * the actual user's email address, you can define it to avoid the bother of
+ * X-From and X_Personal_Name offers.
+ */
+/*#define NO_ANONYMOUS_EMAIL TRUE */
+
+/**************************
+ * LYNX_LSS_FILE is the location and name of the default lynx
+ * character style sheet file. It is sought and processed at
+ * startup of Lynx only if experimental character style code has
+ * been compiled in, otherwise it will be ignored. Note that use
+ * of the character style option is _experimental_ AND _unsupported_.
+ * There is no documentation other than a sample lynx.lss file in
+ * the samples subdirectory. This code probably won't even work on
+ * VMS. You can define the location and name of this file via an
+ * environment variable, "lynx_lss", which will override the definition
+ * here. You can use '~' to refer to the user's home directory. The
+ * -lss command line switch will override these definitions.
+ */
+#ifndef LYNX_LSS_FILE
+#define LYNX_LSS_FILE "Lynx_Dir:lynx.lss"
+#endif /* LYNX_LSS_FILE */
+
+/*
+ * FTP_FORMAT uses the same codes as LIST_FORMAT, but applies to files shown
+ * in an ftp listing.
+ */
+#define FTP_FORMAT "%d %-16.16t %a %K"
+
+/*******************************************************************
+ * Things you must change - non-VMS specific
+ * Section 1b).
+ */
+#else /* non-VMS: UNIX etc. */
+
+/**************************
+ * NOTE: This variable is set by the configure script; editing changes will
+ * be ignored.
+ *
+ * LYNX_CFG_FILE is the location and name of the default lynx
+ * global configuration file. It is sought and processed at
+ * startup of Lynx, followed by a seek and processing of a
+ * personal RC file (.lynxrc in the user's HOME directory,
+ * created if the user saves values in the 'o'ptions menu).
+ * You also can define the location and name of the global
+ * configuration file via an environment variable, "LYNX_CFG",
+ * which will override the "LYNX_CFG_FILE" definition here.
+ * You can use '~' in either or both definitions if you want
+ * lynx.cfg treated as a personal configuration file. The
+ * -cfg command line switch will override these definitions.
+ * You can pass the compilation default via the Makefile.
+ *
+ * If you are building Lynx using the configure script, you should specify
+ * the default location of the configuration file via that script, since it
+ * also generates the makefile and install-cfg rules.
+ *
+ * Note that many implementations of telnetd allow passing of
+ * environment variables, which might be used by unscrupulous
+ * people to modify the environment in anonymous accounts. When
+ * making Lynx and Web access publicly available via anonymous
+ * accounts intended to run Lynx captively, be sure the wrapper
+ * uses the -cfg switch and specifies the startfile, rather than
+ * relying on the LYNX_CFG, LYNX_CFG_FILE, or WWW_HOME variables.
+ *
+ * Note that any SUFFIX or VIEWER mappings in the configuration
+ * file will be overridden by any suffix or viewer mappings
+ * that are established as defaults in src/HTInit.c. You can
+ * override the src/HTInit.c defaults via the mime.types and
+ * mailcap files (see the examples in the samples directory).
+ */
+#ifndef HAVE_CONFIG_H
+#ifndef LYNX_CFG_FILE
+#ifdef DOSPATH
+#define LYNX_CFG_PATH "."
+#define LYNX_CFG_FILE "./lynx.cfg"
+#else
+#define LYNX_CFG_PATH "/usr/local/lib"
+#define LYNX_CFG_FILE "/usr/local/lib/lynx.cfg"
+#endif /* DOSPATH */
+#endif /* LYNX_CFG_FILE */
+#endif /* HAVE_CONFIG_H */
+
+#ifndef MIME_LIBDIR
+#define MIME_LIBDIR "/etc/"
+#endif
+
+/**************************
+ * The EXTENSION_MAP file allows you to map file suffixes to
+ * mime types.
+ * The file locations defined here can be overridden in lynx.cfg.
+ * Mappings in these global and personal files override any SUFFIX
+ * definitions in lynx.cfg and built-in defaults from src/HTInit.c.
+ */
+#define GLOBAL_EXTENSION_MAP MIME_LIBDIR "mime.types"
+#define PERSONAL_EXTENSION_MAP "~/.mime.types"
+
+/**************************
+ * The MAILCAP file allows you to map file MIME types to
+ * external viewers.
+ * The file locations defined here can be overridden in lynx.cfg.
+ * Mappings in these global and personal files override any VIEWER
+ * definitions in lynx.cfg and built-in defaults from src/HTInit.c.
+ */
+#define GLOBAL_MAILCAP MIME_LIBDIR "mailcap"
+#define PERSONAL_MAILCAP "~/.mailcap"
+
+/**************************
+ * XLOADIMAGE_COMMAND will be used as a default in src/HTInit.c for
+ * viewing image content types when the DISPLAY environment variable
+ * is set. Make it the full path and name of the xli (also known as
+ * xloadimage or xview) command, or other image viewer. It can be
+ * anything that will handle GIF, TIFF and other popular image formats
+ * (xli does). The freeware distribution of xli is available in the
+ * ftp://ftp.x.org/contrib/ subdirectory. The shareware, xv, also is
+ * suitable. You must also have a "%s" for the filename; "&" for
+ * background is optional. The default defined here can be overridden
+ * in lynx.cfg, or via the global or personal mailcap files.
+ * Make this NULL if you don't have such a viewer or don't want to
+ * use any default viewers for image types. Note that open is used as
+ * the default for NeXT, instead of the XLOADIMAGE_COMMAND definition.
+ */
+#define XLOADIMAGE_COMMAND "xli %s &"
+
+/**************************
+ * For UNIX systems, SYSTEM_MAIL and SYSTEM_MAIL_FLAGS are set by the
+ * configure-script.
+ */
+
+/**************************
+ * A place to put temporary files, it is almost always in "/tmp/"
+ * for UNIX systems. If you include "$USER" in the definition
+ * (e.g., "/tmp/$USER"), Lynx will replace the "$USER" with the
+ * username of the account which invoked the Lynx image. Such
+ * directories should already exist, and have protections/ACLs set
+ * so that only the appropriate user(s) will have read/write access.
+ * If the path includes a tilde (e.g, "~" or "~/lynxtmp"), Lynx will
+ * replace the tilde with the full path for the user's home.
+ * The definition here can be overridden at run time by setting a
+ * "LYNX_TEMP_SPACE" environment variable, or (if that is not set)
+ * the "TMPDIR" (unix), or "TEMP" or "TMP" (Windows,DOS,OS/2)
+ * variable.
+ */
+#define TEMP_SPACE "/tmp/"
+
+/********************************
+ * Comment this line out to disable code that implements command logging
+ * and scripting.
+ */
+#define USE_CMD_LOGGING 1
+
+/********************************
+ * Comment this line out to disable code that randomizes the names given to
+ * temporary files.
+ */
+#define USE_RAND_TEMPNAME 1
+
+/********************************
+ * Comment this line out to let the user enter his/her email address
+ * when sending a message. There should be no need to do this unless
+ * your mailer agent does not put in the From: field for you. (If your
+ * mailer agent does not automatically put in the From: field, you should
+ * upgrade, because anonymous mail makes it far too easy for a user to
+ * spoof someone else's email address.)
+ */
+/*#define NO_ANONYMOUS_EMAIL TRUE */
+
+/********************************
+ * LIST_FORMAT defines the display for local files when LONG_LIST
+ * is defined in the Makefile. The default set here can be changed
+ * in lynx.cfg.
+ *
+ * The percent items in the list are interpreted as follows:
+ *
+ * %p Unix-style permission bits
+ * %l link count
+ * %o owner of file
+ * %g group of file
+ * %d date of last modification
+ * %a anchor pointing to file or directory
+ * %A as above but don't show symbolic links
+ * %t type of file (description derived from MIME type)
+ * %T MIME type as known by Lynx (from mime.types or default)
+ * %k size of file in Kilobytes
+ * %K as above but omit size for directories
+ * %s size of file in bytes
+ *
+ * Anything between the percent and the letter is passed on to sprintf.
+ * A double percent yields a literal percent on output. Other characters
+ * are passed through literally.
+ *
+ * If you want only the filename: " %a"
+ *
+ * If you want a brief output: " %4K %-12.12d %a"
+ *
+ * For the Unix "ls -l" format: " %p %4l %-8.8o %-8.8g %7s %-12.12d %a"
+ */
+#ifdef DOSPATH
+#define LIST_FORMAT " %4K %-12.12d %a"
+#else
+#define LIST_FORMAT " %p %4l %-8.8o %-8.8g %7s %-12.12d %a"
+#endif
+
+/*
+ * FTP_FORMAT uses the same codes as LIST_FORMAT, but applies to files shown
+ * in an ftp listing.
+ */
+#define FTP_FORMAT "%d %-16.16t %a %K"
+
+/*
+ * If NO_FORCED_CORE_DUMP is set to TRUE, Lynx will not force
+ * core dumps via abort() calls on fatal errors or assert()
+ * calls to check potentially fatal errors. The default defined
+ * here can be changed in lynx.cfg, and the compilation or
+ * configuration default can be toggled via the -core command
+ * line switch.
+ */
+#define NO_FORCED_CORE_DUMP FALSE
+
+/**************************
+ * LYNX_LSS_FILE is the location and name of the default lynx
+ * character style sheet file. It is sought and processed at
+ * startup of Lynx only if experimental character style code
+ * has been compiled in, otherwise it will be ignored. Note
+ * that use of the character style option is _experimental_ AND
+ * _unsupported_. There is no documentation other than a sample
+ * lynx.lss file in the samples subdirectory. You also can
+ * define the location and name of this file via environment
+ * variables "LYNX_LSS" or "lynx_lss" which will override the
+ * "LYNX_LSS_FILE" definition here. You can use '~' in either or
+ * both definitions to refer to the user's home directory. The
+ * -lss command line switch will override these definitions.
+ */
+#ifndef LYNX_LSS_FILE
+#ifdef DOSPATH
+#define LYNX_LSS_FILE "lynx.lss"
+#else
+#define LYNX_LSS_FILE "/usr/local/lib/lynx.lss"
+#endif
+#endif /* LYNX_LSS_FILE */
+
+#endif /* VMS OR UNIX */
+
+/*************************************************************
+ * Section 1c) Every platform must change or verify these
+ *
+ */
+
+/*****************************
+ * STARTFILE is the default starting URL if none is specified
+ * on the command line or via a WWW_HOME environment variable;
+ * Lynx will refuse to start without a starting URL of some kind.
+ * STARTFILE can be remote, e.g., http://www.w3.org/default.html ,
+ * or local, e.g., file://localhost/PATH_TO/FILENAME ,
+ * where PATH_TO is replaced with the complete path to FILENAME
+ * using Unix shell syntax and including the device on VMS.
+ *
+ * Normally we expect you will connect to a remote site, e.g., the Lynx starting
+ * site:
+ */
+#ifndef HOMEPAGE_URL
+#define HOMEPAGE_URL "https://lynx.invisible-island.net/"
+#endif
+#define STARTFILE HOMEPAGE_URL
+/*
+ * As an alternative, you may want to use a local URL. A good choice for this
+ * is the user's home directory:
+ *#define STARTFILE "file://localhost/~/"
+ *
+ * Your choice of STARTFILE should reflect your site's needs, and be a URL that
+ * you can connect to reliably. Otherwise users will become confused and think
+ * that they cannot run Lynx.
+ */
+
+/*****************************
+ * HELPFILE must be defined as a URL and must have a
+ * complete path if local:
+ * file://localhost/PATH_TO/lynx_help/lynx_help_main.html
+ * Replace PATH_TO with the path to the lynx_help subdirectory
+ * for this distribution (use SHELL syntax including the device
+ * on VMS systems).
+ * The default HELPFILE is:
+ * https://lynx.invisible-island.net/lynx_help/lynx_help_main.html
+ * This should be changed here or in lynx.cfg to the local path.
+ * The definition here can be overridden at run time by defining a
+ * "LYNX_HELPFILE" environment variable.
+ */
+#define HELPFILE "https://lynx.invisible-island.net/lynx_help/lynx_help_main.html"
+/* #define HELPFILE "file://localhost/PATH_TO/lynx_help/lynx_help_main.html" */
+
+/*****************************
+ * DEFAULT_INDEX_FILE is the default file retrieved when the
+ * user presses the 'I' key when viewing any document.
+ * An index to your CWIS can be placed here or a document containing
+ * pointers to lots of interesting places on the web.
+ */
+#define DEFAULT_INDEX_FILE "http://scout.wisc.edu/"
+
+/*****************************
+ * If USE_TRACE_LOG is set FALSE, then when TRACE mode is invoked the
+ * syserr messages will not be directed to a log file named Lynx.trace
+ * in the account's HOME directory. The default defined here can be
+ * toggled via the -tlog command line switch. Also, it is set FALSE
+ * automatically when Lynx is executed in an anonymous or validation
+ * account (if indicated via the -anonymous or -validate command line
+ * switches, or via the check for the ANONYMOUS_USER, defined below).
+ * When FALSE, the TRACE_LOG command (normally ';') cannot be used to
+ * examine the Lynx Trace Log during the current session. If left
+ * TRUE, but you wish to use command line piping of stderr to a file
+ * you specify, include the -tlog toggle on the command line. Note
+ * that once TRACE mode is turned on during a session and stderr is
+ * directed to the log, all stderr messages will continue going to
+ * the log, even if TRACE mode is turned off via the TOGGLE_TRACE
+ * (Control-T) command.
+ */
+#define USE_TRACE_LOG TRUE
+
+/*******************************
+ * If GOTOBUFFER is set to TRUE here or in lynx.cfg the last entered
+ * goto URL, if any, will be offered as a default for reuse or editing
+ * when the 'g'oto command is entered. All previously used goto URLs
+ * can be accessed for reuse or editing via a circular buffer invoked
+ * with the Up-Arrow or Down-Arrow keys after entering the 'g'oto
+ * command, whether or not a default is offered.
+ */
+#define GOTOBUFFER FALSE
+
+/*****************************
+ * If FTP_PASSIVE is set to TRUE here or in lynx.cfg, ftp transfers will
+ * be done in passive mode.
+ * Note: if passive transfers fail, lynx falls back to active mode, and
+ * vice versa if active transfers fail at first.
+ */
+#define FTP_PASSIVE TRUE
+
+/*****************************
+ * JUMPFILE is the default local file checked for shortcut URLs when
+ * the user presses the 'J' (JUMP) key. The user will be prompted for
+ * a shortcut entry (analogously to 'g'oto), and can enter one
+ * or use '?' for a list of the shortcuts with associated links to
+ * their actual URLs. See the sample jumps files in the samples
+ * subdirectory. Make sure your jumps file includes a '?' shortcut
+ * for a file://localhost URL to itself:
+ *
+ * <dt>?<dd><a href="file://localhost/path/jumps.html">This Shortcut List</a>
+ *
+ * If not defined here or in lynx.cfg, the JUMP command will invoke
+ * the NO_JUMPFILE status line message (see LYMessages_en.h). The prompt
+ * associated with the default jumps file is defined as JUMP_PROMPT in
+ * LYMessages_en.h and can be modified in lynx.cfg. Additional, alternate
+ * jumps files can be defined and mapped to keystrokes, and alternate
+ * prompts can be set for them, in lynx.cfg, but at least one default
+ * jumps file and associated prompt should be established before adding
+ * others.
+ *
+ * On VMS, use Unix SHELL syntax (including a lead slash) to define it.
+ *
+ * Do not include "file://localhost" in the definition.
+ */
+/* #define JUMPFILE "/Lynx_Dir/jumps.html" */
+
+/*******************************
+ * If JUMPBUFFER is set to TRUE here or in lynx.cfg the last entered
+ * jump shortcut, if any, will be offered as a default for reuse or
+ * editing when the JUMP command is entered. All previously used
+ * shortcuts can be accessed for reuse or editing via a circular buffer
+ * invoked with the Up-Arrow or Down-Arrow keys after entering the JUMP
+ * command, whether or not a default is offered. If you have multiple
+ * jumps files and corresponding key mappings, each will have its own
+ * circular buffer.
+ */
+#define JUMPBUFFER FALSE
+
+/********************************
+ * If PERMIT_GOTO_FROM_JUMP is defined, then a : or / in a jump target
+ * will be treated as a full or partial URL (to be resolved versus the
+ * startfile), and will be handled analogously to a 'g'oto command.
+ * Such "random URLs" will be entered in the circular buffer for goto
+ * URLs, not the buffer for jump targets (shortcuts). If the target
+ * is the single character ':', it will be treated equivalently to an
+ * Up-Arrow or Down-Arrow following a 'g'oto command, for accessing the
+ * circular buffer of goto URLs.
+ */
+/* #define PERMIT_GOTO_FROM_JUMP */
+
+/*****************************
+ * If LYNX_HOST_NAME is defined here and/or in lynx.cfg, it will be
+ * treated as an alias for the local host name in checks for URLs on
+ * the local host (e.g., when the -localhost switch is set), and this
+ * host name, "localhost", and HTHostName (the fully qualified domain
+ * name of the system on which Lynx is running) will all be passed as
+ * local. A different definition in lynx.cfg will override this one.
+ */
+/* #define LYNX_HOST_NAME "localhost" */
+
+/*********************
+ * LOCAL_DOMAIN is used for a tail match with the ut_host element of
+ * the utmp or utmpx structure on systems with utmp capabilities, to
+ * determine if a user is local to your campus or organization when
+ * handling -restrictions=inside_foo or outside_foo settings for ftp,
+ * news, telnet/tn3270 and rlogin URLs. An "inside" user is assumed
+ * if your system does not have utmp capabilities. CHANGE THIS here
+ * or in lynx.cfg.
+ */
+#define LOCAL_DOMAIN "localdomain"
+
+/********************************
+* The DEFAULT_CACHE_SIZE specifies the number of WWW documents to be
+* cached in memory at one time.
+*
+* This so-called cache size (actually, number) may be modified in lynx.cfg
+* and or with the command line argument -cache=NUMBER The minimum allowed
+* value is 2, for the current document and at least one to fetch, and there
+* is no absolute maximum number of cached documents. On Unix, and VMS not
+* compiled with VAXC, whenever the number is exceeded the least recently
+* displayed document will be removed from memory.
+*
+* On VMS compiled with VAXC, the DEFAULT_VIRTUAL_MEMORY_SIZE specifies the
+* amount (bytes) of virtual memory that can be allocated and not yet be freed
+* before previous documents are removed from memory. If the values for both
+* the DEFAULT_CACHE_SIZE and DEFAULT_VIRTUAL_MEMORY_SIZE are exceeded, then
+* least recently displayed documents will be freed until one or the other
+* value is no longer exceeded. The value can be modified in lynx.cfg.
+*
+* The Unix and VMS but not VAXC implementations use the C library malloc's
+* and calloc's for memory allocation, and procedures for taking the actual
+* amount of cache into account still need to be developed. They use only
+* the DEFAULT_CACHE_SIZE value, and that specifies the absolute maximum
+* number of documents to cache (rather than the maximum number only if
+* DEFAULT_VIRTUAL_MEMORY_SIZE has been exceeded, as with VAXC/VAX).
+*/
+#define DEFAULT_CACHE_SIZE 10
+
+#if defined(VMS) && defined(VAXC) && !defined(__DECC)
+#define DEFAULT_VIRTUAL_MEMORY_SIZE 512000
+#endif /* VMS && VAXC && !__DECC */
+
+/********************************
+ * If ALWAYS_RESUBMIT_POSTS is set TRUE, Lynx always will resubmit forms
+ * with method POST, dumping any cache from a previous submission of the
+ * form, including when the document returned by that form is sought with
+ * the PREV_DOC command or via the history list. Lynx always resubmits
+ * forms with method POST when a submit button or a submitting text input
+ * is activated, but normally retrieves the previously returned document
+ * if it had links which you activated, and then go back with the PREV_DOC
+ * command or via the history list.
+ *
+ * The default defined here can be changed in lynx.cfg, and can be toggled
+ * via the -resubmit_posts command line switch.
+ */
+#define ALWAYS_RESUBMIT_POSTS FALSE
+
+/********************************
+ * CHARACTER_SET defines the default character set, i.e., that assumed
+ * to be installed on the user's terminal. It determines which characters
+ * or strings will be used to represent 8-bit character entities within
+ * HTML. New character sets may be defined as explained in the README
+ * files of the src/chrtrans directory in the Lynx source code distribution.
+ * For Asian (CJK) character sets, it also determines how Kanji code will
+ * be handled. The default defined here can be changed in lynx.cfg, and
+ * via the 'o'ptions menu. The 'o'ptions menu setting will be stored in
+ * the user's RC file whenever those settings are saved, and thereafter
+ * will be used as the default. Also see lynx.cfg for information about
+ * the -raw switch and LYK_RAW_TOGGLE command.
+ *
+ * Since Lynx now supports a wide range of platforms it may be useful
+ * to note that cpXXX codepages used by IBM PC compatible computers,
+ * and windows-xxxx used by native MS-Windows apps.
+ *
+ * Recognized character sets include:
+ *
+ * string for 'O'ptions Menu MIME name
+ * =========================== =========
+ * 7 bit approximations (US-ASCII) us-ascii
+ * Western (ISO-8859-1) iso-8859-1
+ * Western (cp850) cp850
+ * Western (windows-1252) windows-1252
+ * IBM PC US codepage (cp437) cp437
+ * DEC Multinational dec-mcs
+ * Macintosh (8 bit) macintosh
+ * NeXT character set next
+ * HP Roman8 hp-roman8
+ * Chinese euc-cn
+ * Japanese (EUC-JP) euc-jp
+ * Japanese (Shift_JIS) shift_jis
+ * Korean euc-kr
+ * Taipei (Big5) big5
+ * Vietnamese (VISCII) viscii
+ * Eastern European (ISO-8859-2) iso-8859-2
+ * Eastern European (cp852) cp852
+ * Eastern European (windows-1250) windows-1250
+ * Latin 3 (ISO-8859-3) iso-8859-3
+ * Latin 4 (ISO-8859-4) iso-8859-4
+ * Baltic Rim (cp775) cp775
+ * Baltic Rim (windows-1257) windows-1257
+ * Cyrillic (ISO-8859-5) iso-8859-5
+ * Cyrillic (cp866) cp866
+ * Cyrillic (windows-1251) windows-1251
+ * Cyrillic (KOI8-R) koi8-r
+ * Arabic (ISO-8859-6) iso-8859-6
+ * Arabic (cp864) cp864
+ * Arabic (windows-1256) windows-1256
+ * Greek (ISO-8859-7) iso-8859-7
+ * Greek (cp737) cp737
+ * Greek2 (cp869) cp869
+ * Greek (windows-1253) windows-1253
+ * Hebrew (ISO-8859-8) iso-8859-8
+ * Hebrew (cp862) cp862
+ * Hebrew (windows-1255) windows-1255
+ * Turkish (ISO-8859-9) iso-8859-9
+ * ISO-8859-10 iso-8859-10
+ * Ukrainian Cyrillic (cp866u) cp866u
+ * Ukrainian Cyrillic (KOI8-U) koi8-u
+ * UNICODE (UTF-8) utf-8
+ * RFC 1345 w/o Intro mnemonic+ascii+0
+ * RFC 1345 Mnemonic mnemonic
+ * Transparent x-transparent
+ */
+#define CHARACTER_SET "iso-8859-1"
+
+/*****************************
+ * PREFERRED_LANGUAGE is the language in MIME notation (e.g., "en",
+ * "fr") which will be indicated by Lynx in its Accept-Language headers
+ * as the preferred language. If available, the document will be
+ * transmitted in that language. This definition can be overridden via
+ * lynx.cfg. Users also can change it via the 'o'ptions menu and save
+ * that preference in their RC file. This may be a comma-separated list
+ * of languages in decreasing preference.
+ */
+#define PREFERRED_LANGUAGE "en"
+
+/*****************************
+ * PREFERRED_CHARSET specifies the character set in MIME notation (e.g.,
+ * "ISO-8859-2", "ISO-8859-5") which Lynx will indicate you prefer in
+ * requests to http servers using an Accept-Charsets header.
+ * This definition can be overridden via lynx.cfg. Users also can change it
+ * via the 'o'ptions menu and save that preference in their RC file.
+ * The value should NOT include "ISO-8859-1" or "US-ASCII", since those
+ * values are always assumed by default.
+ * If a file in that character set is available, the server will send it.
+ * If no Accept-Charset header is present, the default is that any
+ * character set is acceptable. If an Accept-Charset header is present,
+ * and if the server cannot send a response which is acceptable
+ * according to the Accept-Charset header, then the server SHOULD send
+ * an error response with the 406 (not acceptable) status code, though
+ * the sending of an unacceptable response is also allowed. (RFC2068)
+ */
+#define PREFERRED_CHARSET ""
+
+/*****************************
+* If MULTI_BOOKMARK_SUPPORT is set to MBM_STANDARD or MBM_ADVANCED, and
+* BLOCK_MULTI_BOOKMARKS (see below) is FALSE, and sub-bookmarks exist, all
+* bookmark operations will first prompt the user to select an active
+* sub-bookmark file or the default bookmark file. MBM_OFF is the default so
+* that one (the default) bookmark file will be available initially. The
+* default set here can be overridden in lynx.cfg. The user can turn on
+* multiple bookmark support via the 'o'ptions menu, and can save that choice as
+* the startup default via the .lynxrc file. When on, the setting can be
+* STANDARD or ADVANCED. If support is set to the latter, and the user mode
+* also is ADVANCED, the VIEW_BOOKMARK command will invoke a status line prompt
+* at which the user can enter the letter token (A - Z) of the desired bookmark,
+* or '=' to get a menu of available bookmark files. The menu always is
+* presented in NOVICE or INTERMEDIATE mode, or if the support is set to
+* STANDARD. No prompting or menu display occurs if only one (the startup
+* default) bookmark file has been defined (define additional ones via the
+* 'o'ptions menu). The startup default, however set, can be overridden on the
+* command line via the -restrictions=multibook or the -anonymous or -validate
+* switches.
+*/
+#ifndef MULTI_BOOKMARK_SUPPORT
+#define MULTI_BOOKMARK_SUPPORT MBM_OFF
+#endif /* MULTI_BOOKMARK_SUPPORT */
+
+/*****************************
+* If BLOCK_MULTI_BOOKMARKS is set TRUE, multiple bookmark support will
+* be forced off, and cannot be toggled on via the 'o'ptions menu. This
+* compilation setting can be overridden via lynx.cfg.
+*/
+#ifndef BLOCK_MULTI_BOOKMARKS
+#define BLOCK_MULTI_BOOKMARKS FALSE
+#endif /* BLOCK_MULTI_BOOKMARKS */
+
+/********************************
+ * URL_DOMAIN_PREFIXES and URL_DOMAIN_SUFFIXES are strings which will be
+ * prepended (together with a scheme://) and appended to the first element
+ * of command line or 'g'oto arguments which are not complete URLs and
+ * cannot be opened as a local file (file://localhost/string). Both
+ * can be comma-separated lists. Each prefix must end with a dot, each
+ * suffix must begin with a dot, and either may contain other dots (e.g.,
+ * .co.jp). The default lists are defined here, and can be changed
+ * in lynx.cfg. Each prefix will be used with each suffix, in order,
+ * until a valid Internet host is created, based on a successful DNS
+ * lookup (e.g., foo will be tested as www.foo.com and then www.foo.edu
+ * etc.). The first element can include a :port and/or /path which will
+ * be restored with the expanded host (e.g., wfbr:8002/dir/lynx will
+ * become http://www.wfbr.edu:8002/dir/lynx). The prefixes will not be
+ * used if the first element ends in a dot (or has a dot before the
+ * :port or /path), and similarly the suffixes will not be used if the
+ * the first element begins with a dot (e.g., .nyu.edu will become
+ * http://www.nyu.edu without testing www.nyu.com). Lynx will try to
+ * guess the scheme based on the first field of the expanded host name,
+ * and use "http://" as the default (e.g., gopher.wfbr.edu or gopher.wfbr.
+ * will be made gopher://gopher.wfbr.edu).
+ */
+#define URL_DOMAIN_PREFIXES "www."
+#define URL_DOMAIN_SUFFIXES ".com,.edu,.net,.org"
+
+/********************************
+ * If LIST_NEWS_NUMBERS is set TRUE, Lynx will use an ordered list
+ * and include the numbers of articles in news listings, instead of
+ * using an unordered list.
+ *
+ * The default defined here can be changed in lynx.cfg.
+ */
+#define LIST_NEWS_NUMBERS FALSE
+
+/********************************
+ * If LIST_NEWS_DATES is set TRUE, Lynx will include the dates of
+ * articles in news listings. The dates always are included in the
+ * articles, themselves.
+ *
+ * The default defined here can be changed in lynx.cfg.
+ */
+#define LIST_NEWS_DATES FALSE
+
+/*************************
+ * Set NEWS_POSTING to FALSE if you do not want to support posting to
+ * news groups via Lynx. If left TRUE, Lynx will use its news gateway to
+ * post new messages or followups to news groups, using the URL schemes
+ * described in the "Supported URL" section of the online 'h'elp. The
+ * posts will be attempted via the nntp server specified in the URL, or
+ * if none was specified, via the NNTPSERVER configuration or environment
+ * variable. Links with these URLs for posting or sending followups are
+ * created by the news gateway when reading group listings or articles
+ * from nntp servers if the server indicates that it permits posting.
+ * The setting here can be changed in lynx.cfg.
+ */
+#define NEWS_POSTING TRUE
+
+/*************************
+ * Define LYNX_SIG_FILE to the name of a file containing a signature which
+ * can be appended to email messages and news postings or followups. The
+ * user will be prompted whether to append it. It is sought in the home
+ * directory. If it is in a subdirectory, begin it with a dot-slash
+ * (e.g., ./lynx/.lynxsig). The definition here can be changed in lynx.cfg.
+ */
+#define LYNX_SIG_FILE ".lynxsig"
+
+/********************************
+ * BIBP_GLOBAL_SERVER is the default global server for bibp: links, used
+ * when a local bibhost or document-specified citehost is unavailable.
+ */
+#define BIBP_GLOBAL_SERVER "http://usin.org/"
+
+/********************************
+ * If USE_SELECT_POPUPS is set FALSE, Lynx will present a vertical list
+ * of radio buttons for the OPTIONs in SELECT blocks which lack the
+ * MULTIPLE attribute, instead of using a popup menu. Note that if
+ * the MULTIPLE attribute is present in the SELECT start tag, Lynx
+ * always will create a vertical list of checkboxes for the OPTIONs.
+ *
+ * The default defined here can be changed in lynx.cfg. It can be
+ * set and saved via the 'o'ptions menu to override the compilation
+ * and configuration defaults, and the default always can be toggled
+ * via the -popup command line switch.
+ */
+#define USE_SELECT_POPUPS TRUE
+
+/********************************
+ * If COLLAPSE_BR_TAGS is set FALSE, Lynx will not collapse serial
+ * BR tags. If set TRUE, two or more concurrent BRs will be collapsed
+ * into a single blank line. Note that the valid way to insert extra
+ * blank lines in HTML is via a PRE block with only newlines in the
+ * block.
+ *
+ * The default defined here can be changed in lynx.cfg.
+ */
+#define COLLAPSE_BR_TAGS TRUE
+
+/********************************
+ * If SET_COOKIES is set FALSE, Lynx will ignore Set-Cookie headers
+ * in http server replies.
+ *
+ * The default defined here can be changed in lynx.cfg, and can be toggled
+ * via the -cookies command line switch.
+ */
+#define SET_COOKIES TRUE
+
+/********************************
+ * If SEND_USERAGENT is set FALSE, Lynx will not send a user-agent string.
+ * You can override this in the 'O'ptions menu.
+ */
+#define SEND_USERAGENT TRUE
+
+/*******************************
+ * If ACCEPT_ALL_COOKIES is set TRUE, and SET_COOKIES is TRUE, Lynx will
+ * accept all cookies.
+ *
+ * The default defined here can be changed in lynx.cfg, and .lynxrc, or
+ * toggled via the -accept_all_cookies command line switch.
+ */
+#define ACCEPT_ALL_COOKIES FALSE
+
+/****************************************************************
+ * Section 2. Things that you probably want to change or review
+ *
+ */
+
+/*****************************
+ * The following three definitions set the number of seconds for
+ * pauses following status line messages that would otherwise be
+ * replaced immediately, and are more important than the unpaused
+ * progress messages. Those set by INFOSECS are also basically
+ * progress messages (e.g., that a prompted input has been canceled)
+ * and should have the shortest pause. Those set by MESSAGESECS are
+ * informational (e.g., that a function is disabled) and should have
+ * a pause of intermediate duration. Those set by ALERTSECS typically
+ * report a serious problem and should be paused long enough to read
+ * whenever they appear (typically unexpectedly). The default values
+ * defined here can be modified via lynx.cfg, should longer pauses be
+ * desired for braille-based access to Lynx.
+ */
+#define INFOSECS 1
+#define MESSAGESECS 2
+#define ALERTSECS 3
+
+#define DEBUGSECS 0
+#define REPLAYSECS 0
+
+/******************************
+ * SHOW_COLOR controls whether the program displays in color by default.
+ */
+#ifdef COLOR_CURSES
+#define SHOW_COLOR TRUE
+#else
+#define SHOW_COLOR FALSE
+#endif
+
+/******************************
+ * SHOW_CURSOR controls whether or not the cursor is hidden or appears
+ * over the current link, or current option in select popup windows.
+ * Showing the cursor is handy if you are a sighted user with a poor
+ * terminal that can't do bold and reverse video at the same time or
+ * at all. It also can be useful to blind users, as an alternative
+ * or supplement to setting LINKS_AND_FIELDS_ARE_NUMBERED or
+ * LINKS_ARE_NUMBERED.
+ *
+ * The default defined here can be changed in lynx.cfg. It can be
+ * set and saved via the 'o'ptions menu to override the compilation
+ * and configuration defaults, and the default always can be toggled
+ * via the -show_cursor command line switch.
+ */
+#define SHOW_CURSOR FALSE
+
+/******************************
+* UNDERLINE_LINKS controls whether links are underlined by default, or shown
+* in bold. Normally this default is set from the configure script.
+*/
+#ifndef HAVE_CONFIG_H
+#define UNDERLINE_LINKS FALSE
+#endif
+
+/******************************
+* VERBOSE_IMAGES controls whether or not Lynx replaces the [LINK], [INLINE]
+* and [IMAGE] comments (for images without ALT) with filenames of these
+* images. This is extremely useful because now we can determine immediately
+* what images are just decorations (button.gif, line.gif) and what images are
+* important.
+*
+* The default defined here can be changed in lynx.cfg.
+*/
+#define VERBOSE_IMAGES TRUE
+
+/******************************
+ * BOXVERT and BOXHORI control the layout of popup menus. Set to 0 if your
+ * curses supports line-drawing characters, set to '*' or any other character
+ * to not use line-drawing (e.g., '|' for vertical and '-' for horizontal).
+ */
+#ifndef HAVE_CONFIG_H
+#ifdef DOSPATH
+#define BOXVERT 0
+#define BOXHORI 0
+#else
+#define BOXVERT '|'
+/* #define BOXVERT 0 */
+#define BOXHORI '-'
+/* #define BOXHORI 0 */
+#endif /* DOSPATH */
+#endif /* !HAVE_CONFIG_H */
+
+/******************************
+ * LY_UMLAUT controls the 7-bit expansion of characters with dieresis or
+ * umlaut. If defined, a digraph is displayed, e.g., auml --> ae
+ * Otherwise, a single character is displayed, e.g., auml --> a
+ * Note that this is currently not supported with the chartrans code,
+ * or rather it doesn't have an effect if translations for a display
+ * character set are taken from one of the *.tbl files in src/chrtrans.
+ * One would have to modify the corresponding *.tbl file to change the
+ # 7-bit replacements for these characters.
+ */
+#define LY_UMLAUT
+
+/*******************************
+ * Execution links/scripts configuration.
+ *
+ * Execution links and scripts allow you to run
+ * local programs by activating links within Lynx.
+ *
+ * An execution link is of the form:
+ *
+ * lynxexec:<COMMAND>
+ * or:
+ * lynxexec://<COMMAND>
+ * or:
+ * lynxprog:<COMMAND>
+ * or:
+ * lynxprog://<COMMAND>
+ *
+ * where <COMMAND> is a command that Lynx will run when the link is
+ * activated. The double-slash should be included if the command begins
+ * with an '@', as for executing VMS command files. Otherwise, the double-
+ * slash can be omitted.
+ * Use lynxexec for commands or scripts that generate a screen output which
+ * should be held via a prompt to press <return> before returning to Lynx
+ * for display of the current document.
+ * Use lynxprog for programs such as mail which do not require a pause before
+ * Lynx restores the display of the current document.
+ *
+ * Execution scripts take the form of a standard
+ * URL. Extension mapping or MIME typing is used
+ * to decide if the file is a script and should be
+ * executed. The current extensions are:
+ * .csh, .ksh, and .sh on UNIX systems and .com on
+ * VMS systems. Any time a file of this type is
+ * accessed Lynx will look at the user's options
+ * settings to decide if the script can be executed.
+ * Current options include: Only exec files that
+ * reside on the local machine and are referenced
+ * with a "file://localhost" URL, All execution
+ * off, and all execution on.
+ *
+ * The following definitions will add execution
+ * capabilities to Lynx. You may define none, one
+ * or both.
+ *
+ * I strongly recommend that you define neither one
+ * of these since execution links/scripts can represent
+ * very serious security risk to your system and its
+ * users. If you do define these I suggest that
+ * you only allow users to execute files/scripts
+ * that reside on your local machine.
+ *
+ * YOU HAVE BEEN WARNED!
+ *
+ * Note: if you are enabling execution scripts you should
+ * also see src/HTInit.c to verify/change the execution
+ * script extensions and/or commands.
+ */
+/* #define EXEC_LINKS */
+/* #define EXEC_SCRIPTS */
+
+#if defined(EXEC_LINKS) || defined(EXEC_SCRIPTS)
+
+/**********
+ * if ENABLE_OPTS_CHANGE_EXEC is defined, the user will be able to change
+ * the execution status within the Options Menu.
+ */
+/* #define ENABLE_OPTS_CHANGE_EXEC */
+
+/**********
+ * if NEVER_ALLOW_REMOTE_EXEC is defined,
+ * local execution of scripts or lynxexec & lynxprog URLs will be implemented
+ * only from HTML files that were accessed via a "file://localhost/" URL
+ * and the Options Menu for "Local executions links" will allow toggling
+ * only between "ALWAYS OFF" and "FOR LOCAL FILES ONLY".
+ */
+/* #define NEVER_ALLOW_REMOTE_EXEC */
+
+/*****************************
+ * These are for executable shell scripts and links.
+ * Set to FALSE unless you really know what you're
+ * doing.
+ *
+ * This only applies if you are compiling with EXEC_LINKS or
+ * EXEC_SCRIPTS defined.
+ *
+ * The first two settings:
+ * LOCAL_EXECUTION_LINKS_ALWAYS_ON
+ * LOCAL_EXECUTION_LINKS_ON_BUT_NOT_REMOTE
+ * specify the DEFAULT settings of the users execution link
+ * options (they can also be overridden in lynx.cfg), but
+ * the user may still change those options.
+ * If you do not wish the user to be able to change the
+ * execution link settings you may wish to use the command line option:
+ * -restrictions=exec_frozen
+ *
+ * LOCAL_EXECUTION_LINKS_ALWAYS_ON will be FALSE
+ * if NEVER_ALLOW_REMOTE_EXEC has been defined.
+ *
+ * if LOCAL_EXECUTION_LINKS_ALWAYS_OFF_FOR_ANONYMOUS is true,
+ * all execution links will be disabled when the -anonymous
+ * command-line option is used. Anonymous users are not allowed
+ * to change the execution options from within the Lynx Options Menu,
+ * so you might be able to use this option to enable execution links
+ * and set LOCAL_EXECUTION_LINKS_ON_BUT_NOT_REMOTE to TRUE
+ * to give anonymous execution-link capability without compromising
+ * your system (see comments about TRUSTED_EXEC rules in lynx.cfg ).
+ */
+
+#define LOCAL_EXECUTION_LINKS_ALWAYS_ON FALSE
+#define LOCAL_EXECUTION_LINKS_ON_BUT_NOT_REMOTE FALSE
+#define LOCAL_EXECUTION_LINKS_ALWAYS_OFF_FOR_ANONYMOUS FALSE
+
+#endif /* defined(EXEC_LINKS) || defined(EXEC_SCRIPTS) */
+
+/**********
+ * *** This is for those -- e.g. DOS users -- who do not have configure;
+ * *** others should use the configure switch --enable-lynxcgi-links .
+ *
+ * UNIX:
+ * =====
+ * CGI script support. Defining LYNXCGI_LINKS allows you to use the
+ *
+ * lynxcgi:path
+ *
+ * URL which allows lynx to access a cgi script directly without the need for
+ * a http daemon. Redirection is not supported but just about everything
+ * else is. If the path is not an executable file then the URL is
+ * rewritten as file://localhost and passed to the file loader. This means
+ * that if your http:html files are currently set up to use relative
+ * addressing, you should be able to fire up your main page with lynxcgi:path
+ * and everything should work as if you were talking to the http daemon.
+ *
+ * Note that TRUSTED_LYNXCGI directives must be defined in your lynx.cfg file
+ * if you wish to place restrictions on source documents and/or paths for
+ * lynxcgi links.
+ *
+ * The cgi scripts are called with a fork()/execve() sequence so you don't
+ * have to worry about people trying to abuse the code. :-)
+ *
+ * George Lindholm (George.Lindholm@ubc.ca)
+ *
+ * VMS:
+ * ====
+ * The lynxcgi scheme, if enabled, yields an informational message regardless
+ * of the path, and use of the freeware OSU DECthreads server as a local
+ * script server is recommended instead of lynxcgi URLs. Uncomment the
+ * following line to define LYNXCGI_LINKS, and when running Lynx, enter
+ * lynxcgi:advice as a G)oto URL for more information and links to the
+ * OSU server distribution.
+ */
+#ifndef HAVE_CONFIG_H
+/* #define LYNXCGI_LINKS */
+#endif
+
+/*********************************
+ * MAIL_SYSTEM_ERROR_LOGGING will send a message to the owner of
+ * the information if there is one, every time
+ * that a document cannot be accessed!
+ * This is just the default, it can be changed in lynx.cfg, and error
+ * logging can be turned off with the -nolog command line option.
+ *
+ * NOTE: This can generate A LOT of mail, be warned.
+ */
+#define MAIL_SYSTEM_ERROR_LOGGING FALSE /*mail a message for every error? */
+
+/*********************************
+ * If a document cannot be accessed, and MAIL_SYSTEM_ERROR_LOGGING
+ * is on and would send a message to the owner of the information,
+ * but no owner is known, then the message will be sent to ALERTMAIL
+ * instead - if it is defined as a non-empty email address.
+ *
+ * NOTE: This can generate A REAL LOT of mail, be warned!!!
+ */
+/* #define ALERTMAIL "webmaster@localhost" */ /*error recipient if no owner */
+
+/*********************************
+ * If CHECKMAIL is set to TRUE, the user will be informed (via a status line
+ * message) about the existence of any unread mail at startup of Lynx, and
+ * will get status line messages if subsequent new mail arrives. If a jumps
+ * file with a lynxprog URL for invoking mail is available, or your html
+ * pages include an mail launch file URL, the user thereby can access mail
+ * and read the messages.
+ * This is just the default, it can be changed in lynx.cfg. The checks and
+ * status line reports will not be performed if Lynx has been invoked with
+ * the -restrictions=mail switch.
+ *
+ * VMS USERS !!!
+ * New mail is normally broadcast as it arrives, via "unsolicited screen
+ * broadcasts", which can be "wiped" from the Lynx display via the Ctrl-W
+ * command. You may prefer to disable the broadcasts and use CHECKMAIL
+ * instead (e.g., in a public account which will be used by people who
+ * are ignorant about VMS).
+ */
+#define CHECKMAIL FALSE /* report unread and new mail messages */
+
+/*********************************
+ * Vi or Emacs movement keys. These are defaults,
+ * which can be changed in lynx.cfg , the Options Menu or .lynxrc .
+ */
+#define VI_KEYS_ALWAYS_ON FALSE /* familiar h j k l */
+#define EMACS_KEYS_ALWAYS_ON FALSE /* familiar ^N ^P ^F ^B */
+
+/*********************************
+ * DEFAULT_KEYPAD_MODE may be set to NUMBERS_AS_ARROWS
+ * or LINKS_ARE_NUMBERED
+ * or LINKS_AND_FIELDS_ARE_NUMBERED
+ * to specify whether numbers (e.g. [10]) appear before all links,
+ * allowing immediate access by entering the number on the keyboard,
+ * or numbers on the numeric key-pad work like arrows;
+ * the 3rd option causes form fields also to be preceded by numbers.
+ * The first two options (but not the last) can be changed in lynx.cfg
+ * and all three can be changed via the Options Menu.
+ */
+#define DEFAULT_KEYPAD_MODE NUMBERS_AS_ARROWS
+
+/********************************
+ * If PREVENT_KEYBOARD_WRAPAROUND is defined, using the keyboard to
+ * move past the end (or beginning) of a page results in a warning.
+ * Otherwise, such motions cause the cursor to wrap from bottom to top
+ * (or top to bottom) of page. Note that for pages which fit
+ * completely on one screen, wraparound always occurs, so this only
+ * affects multi-screen pages.
+ */
+#define PREVENT_KEYBOARD_WRAPAROUND
+
+/********************************
+ * The default search.
+ * This is a default that can be overridden in lynx.cfg or by the user!
+ */
+#define CASE_SENSITIVE_ALWAYS_ON FALSE /* case sensitive user search */
+
+/********************************
+ * If NO_DOT_FILES is set TRUE here or in lynx.cfg, the user will not be
+ * allowed to specify files beginning with a dot in reply to output filename
+ * prompts, and files beginning with a dot (e.g., file://localhost/foo/.lynxrc)
+ * will not be included in the directory browser's listings. The setting here
+ * will be overridden by the setting in lynx.cfg. If FALSE, you can force it
+ * to be treated as TRUE via -restrictions=dotfiles (or -anonymous, which sets
+ * this and most other restrictions).
+ *
+ * If it is FALSE at startup of Lynx, the user can regulate it via the
+ * 'o'ptions menu, and may save the preference in the RC file.
+ */
+#define NO_DOT_FILES TRUE /* disallow access to dot files */
+
+/********************************
+ * If MAKE_LINKS_FOR_ALL_IMAGES is TRUE, all images will be given links
+ * which can be ACTIVATEd. For inlines, the ALT or pseudo-ALT ("[INLINE]")
+ * strings will be links for the resolved SRC rather than just text. For
+ * ISMAP or other graphic links, the ALT or pseudo-ALT ("[ISMAP]" or "[LINK]")
+ * strings will have '-' and a link labeled "[IMAGE]" for the resolved SRC
+ * appended. See also VERBOSE_IMAGES flag.
+ *
+ * The default defined here can be changed in lynx.cfg, and the user can
+ * use LYK_IMAGE_TOGGLE to toggle the feature on or off at run time.
+ *
+ * The default also can be toggled via an "-image_links" command line switch.
+ */
+#define MAKE_LINKS_FOR_ALL_IMAGES FALSE /* inlines cast to links */
+
+/********************************
+ * If MAKE_PSEUDO_ALTS_FOR_INLINES is FALSE, inline images which do not
+ * specify an ALT string will not have "[INLINE]" inserted as a pseudo-ALT,
+ * i.e., they'll be treated as having ALT="". If MAKE_LINKS_FOR_ALL_IMAGES
+ * is defined or toggled to TRUE, however, the pseudo-ALTs will be created
+ * for inlines, so that they can be used as links to the SRCs.
+ * See also VERBOSE_IMAGES flag.
+ *
+ * The default defined here can be changed in lynx.cfg, and the user can
+ * use LYK_INLINE_TOGGLE to toggle the feature on or off at run time.
+ *
+ * The default also can be toggled via a "-pseudo_inlines" command line
+ * switch.
+ */
+#define MAKE_PSEUDO_ALTS_FOR_INLINES TRUE /* Use "[INLINE]" pseudo-ALTs */
+
+/********************************
+ * If SUBSTITUTE_UNDERSCORES is TRUE, the _underline_ format will be used
+ * for emphasis tags in dumps.
+ *
+ * The default defined here can be changed in lynx.cfg, and the user can
+ * toggle the default via a "-underscore" command line switch.
+ */
+#define SUBSTITUTE_UNDERSCORES FALSE /* Use _underline_ format in dumps */
+
+/********************************
+ * If QUIT_DEFAULT_YES is defined as TRUE then when the QUIT command
+ * is entered, any response other than n or N will confirm. Define it
+ * as FALSE if you prefer the more conservative action of requiring an
+ * explicit Y or y to confirm. The default defined here can be changed
+ * in lynx.cfg.
+ */
+#define QUIT_DEFAULT_YES TRUE
+
+/********************************
+ * If TEXT_SUBMIT_CONFIRM_WANTED is defined (to anything), the user will be
+ * prompted for confirmation before Lynx submits a form with only one input
+ * field (of type text) to the server, after the user has pressed <return>
+ * or <enter> on the field. Since the is no other way such as a "submit"
+ * button to submit, normally the form gets submitted automatically in this
+ * case, but some users may find this surprising and expect <return> to just
+ * move to the next link as for other text entry fields.
+ */
+/* #define TEXT_SUBMIT_CONFIRM_WANTED */
+
+/********************************
+ * If TEXTFIELDS_MAY_NEED_ACTIVATION is defined (to anything),
+ * the option TEXTFIELDS_NEED_ACTIVATION in lynx.cfg or the command
+ * line option -tna can be used to require explicit activation
+ * before text input fields can be changed with the built-in line
+ * editor.
+ */
+
+#define TEXTFIELDS_MAY_NEED_ACTIVATION
+
+/********************************
+ * The following three definitions control some aspects of extended
+ * textarea handling. TEXTAREA_EXPAND_SIZE is the number of new empty
+ * lines that get appended at the end of a textarea by a GROWTEXTAREA
+ * key. If TEXTAREA_AUTOGROW is defined (to anything), <return> or
+ * <enter> in the last line of a textarea automatically extends the
+ * area by adding a new line. If TEXTAREA_AUTOEXTEDIT is defined (to
+ * anything), a key mapped to DWIMEDIT will invoke the external editor
+ * like EDITTEXTAREA when used in a text input field. Comment those
+ * last two definitions out to disable the corresponding behavior.
+ * See under KEYMAP in lynx.cfg for mapping keys to GROWTEXTAREA or
+ * DWIMEDIT actions.
+ */
+#define TEXTAREA_EXPAND_SIZE 5
+#define TEXTAREA_AUTOGROW
+#define TEXTAREA_AUTOEXTEDIT
+
+/********************************
+ * If BUILTIN_SUFFIX_MAPS is defined (to anything), default mappings
+ * for file extensions (aka suffixes) will be compiled in (see
+ * src/HTInit.c). By removing the definition, the default mappings
+ * are suppressed except for a few very basic ones for text/html.
+ * See GLOBAL_EXTENSION_MAP, PERSONAL_EXTENSION_MAP above and SUFFIX,
+ * SUFFIX_ORDER in lynx.cfg for other ways to map file extensions.
+ */
+
+#define BUILTIN_SUFFIX_MAPS
+
+/********************************
+ * These definitions specify files created or used in conjunction
+ * with traversals. See CRAWL.ANNOUNCE for more information.
+ */
+#define TRAVERSE_FILE "traverse.dat"
+#define TRAVERSE_FOUND_FILE "traverse2.dat"
+#define TRAVERSE_REJECT_FILE "reject.dat"
+#define TRAVERSE_ERRORS "traverse.errors"
+
+/****************************************************************
+ * The LYMessages_en.h header defines default, English strings
+ * used in status line prompts, messages, and warnings during
+ * program execution. See the comments in LYMessages_en.h for
+ * information on translating or customizing them for your site.
+ */
+#ifndef LYMESSAGES_EN_H
+#include <LYMessages_en.h>
+#endif /* !LYMESSAGES_EN_H */
+
+/****************************************************************
+ * DEFAULT_VISITED_LINKS may be set to one or more of
+ * VISITED_LINKS_AS_FIRST_V
+ * VISITED_LINKS_AS_TREE
+ * VISITED_LINKS_AS_LATEST
+ * VISITED_LINKS_REVERSE
+ * to change the organization of the Visited Links page.
+ *
+ * (Not all combinations are meaningful; see src/LYrcFile.c for a list
+ * in the visited_links_tbl table).
+ */
+#define DEFAULT_VISITED_LINKS (VISITED_LINKS_AS_LATEST | VISITED_LINKS_REVERSE)
+
+/****************************************************************
+ * If USE_CACHEJAR is set to TRUE the user will be able to view,
+ * access and delete cached documents in current lynx session.
+ */
+#ifndef USE_CACHEJAR
+/* #define USE_CACHEJAR TRUE */
+#endif
+
+/****************************************************************
+ * If USE_SESSIONS is set to TRUE the user will be able to save,
+ * resume and in general manipulate with lynx sessions.
+ */
+#ifndef USE_SESSIONS
+/* #define USE_SESSIONS TRUE */
+#endif
+
+#define MAX_SESSIONS 10000
+
+/*
+ * If USE_SESSIONS is TRUE you may tune it fine how it will work:
+ */
+#define GOTOURL_IN_SESSION /* Allow to save goto url */
+#define GOTOURL_OUT_SESSION /* Allow to restore goto url */
+#define HISTORY_IN_SESSION /* Allow to save history */
+#define HISTORY_OUT_SESSION /* Allow to restore history */
+#define SEARCH_IN_SESSION /* Allow to save search string */
+#define SEARCH_OUT_SESSION /* Allow to restore search string */
+#define VLINK_IN_SESSION /* Allow to save visited link */
+#define VLINK_OUT_SESSION /* Allow to restore visited link */
+
+/****************************************************************
+ * The STATUSBUFSIZE defines how many entries will be stored in
+ * cyclic buffer of statusline messages. This is specially useful
+ * for users who use lynx on a terminal with more than 40 lines.
+ */
+/* #define STATUSBUFSIZE 90 */
+
+/****************************************************************
+ * If USE_PROGRESSBAR is TRUE the user will be able to set
+ * download progress as odometer(thermometer) display, ie:
+ *
+ * 80% IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
+ *
+ */
+/* #define USE_PROGRESSBAR TRUE */
+
+/****************************************************************
+ * Section 3. Things that you should not change until you
+ * have a good knowledge of the program
+ */
+
+#define LYNX_NAME "Lynx"
+/* The strange-looking comments on the next line tell PRCS to replace
+ * the version definition with the Project Version on checkout. Just
+ * ignore it. - kw */
+/* $Format: "#define LYNX_VERSION \"$ProjectVersion$\""$ */
+#define LYNX_VERSION "2.9.0dev.12"
+#define LYNX_WWW_HOME "https://lynx.invisible-island.net/"
+#define LYNX_WWW_DIST "https://lynx.invisible-island.net/current/"
+/* $Format: "#define LYNX_DATE \"$ProjectDate$\""$ */
+#define LYNX_DATE "Mon, 02 Jan 2023 18:47:08 -0500"
+#define LYNX_DATE_OFF 5 /* truncate the automatically-generated date */
+#define LYNX_DATE_LEN 11 /* truncate the automatically-generated date */
+
+#ifdef UNICODE
+#define W32_STRING(s) L##s
+#else
+#define W32_STRING(s) s
+#endif
+
+/* default, for generated files such as bookmarks */
+#define LYNX_DOCTYPE "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"
+
+/* registry-key for Windows installer */
+#define LYNX_SUBKEY W32_STRING("Software\\Lynx")
+
+#define LINESIZE 1024 /* max length of line to read from file */
+#define MAXLINKS 1024 /* max links on one screen */
+
+#ifndef SEARCH_GOAL_LINE
+#define SEARCH_GOAL_LINE 4 /* try to position search target there */
+#endif
+
+#define MAXCHARSETS 60 /* max character sets supported */
+#define TRST_MAXROWSPAN 200 /* max rowspan accepted by TRST code */
+#define TRST_MAXCOLSPAN 200 /* max colspan and COL/COLGROUP span accepted */
+#define MAX_TABLE_ROWS 200 /* max rows for tables */
+#define MAX_TABLE_COLS 200 /* max cols for tables */
+#define SAVE_TIME_NOT_SPACE /* minimize number of some malloc calls */
+
+/* Win32 may support more, but old win16 helper apps may not. */
+#if defined(__DJGPP__) || defined(_WINDOWS)
+#define FNAMES_8_3
+#endif
+
+#ifdef FNAMES_8_3
+#define HTML_SUFFIX ".htm"
+#else
+#define HTML_SUFFIX ".html"
+#endif
+
+#ifndef FNAME_LYNXRC
+#ifdef FNAMES_8_3
+#define FNAME_LYNXRC "lynx.rc"
+#else
+#define FNAME_LYNXRC ".lynxrc"
+#endif /* FNAMES_8_3 */
+#endif
+
+#ifndef FNAME_LYNX_COOKIES
+#ifdef FNAMES_8_3
+#define FNAME_LYNX_COOKIES "cookies"
+#else
+#define FNAME_LYNX_COOKIES ".lynx_cookies"
+#endif /* FNAMES_8_3 */
+#endif
+
+#ifndef FNAME_LYNX_TRACE
+#ifdef FNAMES_8_3
+#define FNAME_LYNX_TRACE "LY-TRACE.LOG"
+#else
+#define FNAME_LYNX_TRACE "Lynx.trace"
+#endif /* FNAMES_8_3 */
+#endif
+
+#ifndef BLAT_MAIL
+#define BLAT_MAIL "blat"
+#endif
+
+#ifndef ALTBLAT_MAIL
+#define ALTBLAT_MAIL "blatj"
+#endif
+
+#define BIN_SUFFIX ".bin"
+#define TEXT_SUFFIX ".txt"
+
+#ifdef VMS
+/*
+** Use the VMS port of gzip for uncompressing both .Z and .gz files.
+*/
+#define UNCOMPRESS_PATH "gzip -d"
+#define COPY_PATH "copy/nolog/noconf"
+#define GZIP_PATH "gzip"
+#define BZIP2_PATH "bzip2"
+#define TELNET_PATH "telnet"
+#define TN3270_PATH "tn3270"
+#define RLOGIN_PATH "rlogin"
+
+#else
+
+#ifdef DOSPATH
+
+/*
+ * Define this to setup feature that uses directory of lynx.exe to locate
+ * associated configuration files.
+#define USE_PROGRAM_DIR 1
+ */
+
+#ifdef _WINDOWS
+
+#ifndef USE_BLAT_MAILER
+#define USE_BLAT_MAILER 1
+#endif
+
+#ifndef LYNX_CFG_PATH
+#define LYNX_CFG_PATH "."
+#endif
+
+#else
+/* have to define something... */
+#undef SYSTEM_MAIL
+#define SYSTEM_MAIL "sendmail"
+#define SYSTEM_MAIL_FLAGS "-t -oi"
+#endif /* _WINDOWS */
+
+/*
+** The following executables may be used at run time. Unless you change
+** the definitions to include the full directories, they will be sought
+** from your PATH at run-time; they should be available as "cp.exe",
+** "mv.exe" and so on. To get those programs look for GNU-port stuff
+** elsewhere.
+** Currently, if compiled with -DUSE_ZLIB and without -DDIRED_SUPPORT
+** (default), the following from the list below are required:
+** MV_PATH (mv.exe) - for bookmark handling (DEL_BOOKMARK command)
+** UNCOMPRESS_PATH - for automatic decompression of files in Unix
+** compress format
+** TELNET_PATH, TN3270_PATH, RLOGIN_PATH - for access to "telnet:",
+** "tn3270:", and "rlogin:" URLs.
+** If they are not defined right, the corresponding operations may fail
+** in unexpected and obscure ways!
+**
+** WINDOWS/DOS
+** ===========
+*/
+#ifndef HAVE_CONFIG_H
+#define COMPRESS_PATH "compress"
+#define UNCOMPRESS_PATH "uncompress"
+#define UUDECODE_PATH "uudecode"
+#define ZCAT_PATH "zcat"
+#define GZIP_PATH "gzip"
+#define BZIP2_PATH "bzip2"
+#define MV_PATH "mv"
+#define INSTALL_PATH "install"
+#define TAR_PATH "tar"
+#define ZIP_PATH "zip"
+#define UNZIP_PATH "unzip"
+#define RM_PATH "rm"
+#define TELNET_PATH "telnet"
+#define TN3270_PATH "tn3270"
+#define RLOGIN_PATH "rlogin"
+
+/* see src/LYLocal.c for these */
+#define TAR_UP_OPTIONS "-cf"
+#define TAR_DOWN_OPTIONS "-xf"
+#define TAR_PIPE_OPTIONS "-"
+#define TAR_FILE_OPTIONS ""
+
+/*
+ * These are not used:
+ * #define COPY_PATH "cp"
+ * #define CHMOD_PATH "chmod"
+ * #define MKDIR_PATH "mkdir"
+ * #define TOUCH_PATH "touch"
+ */
+#endif /* HAVE_CONFIG_H */
+
+#else /* Unix */
+ /* Standard locations are defined via the configure script. When
+ * helper applications are in your home directory or other nonstandard
+ * locations, you probably will have to preset the path to them with
+ * environment variables (see INSTALLATION, Section II-1d).
+ */
+#endif /* DOSPATH */
+#endif /* VMS */
+
+/*****************************
+ * I have not ported multibyte support for EBCDIC. In fact, some multibyte
+ * code in LYLowerCase() crashes on EBCDIC strings. -- gil
+ */
+#if ! defined(NOT_ASCII)
+/*****************************
+ * SUPPORT_MULTIBYTE_EDIT provides better support of CJK characters to
+ * Lynx's Line Editor. JIS X0201 Kana is partially supported. The
+ * reason why I didn't support it fully is I think supporting it is not
+ * required so much and I don't have an environment to test it. - TH
+ */
+#define SUPPORT_MULTIBYTE_EDIT
+#endif /* ! defined(NOT_ASCII) */
+
+/*****************************
+ * SUPPORT_CHDIR provides CD command (bound to 'C' by default). It allows
+ * changing directory to arbitrary location (if OS allows them). If dired is
+ * enabled, user will be able to visit any directory and view any file allowed
+ * according to file permissions or ACLs.
+ */
+#define SUPPORT_CHDIR
+
+/*****************************
+ * MARK_HIDDEN_LINKS controls whether hidden links are shown with the title
+ * set by the HIDDEN_LINK_MARKER string in lynx.cfg
+ */
+#define MARK_HIDDEN_LINKS
+
+/*****************************
+ * USE_TH_JP_AUTO_DETECT and KANJI_CODE_OVERRIDE are the macros
+ * for Japanese. - TH
+ */
+/*****************************
+ * USE_TH_JP_AUTO_DETECT enables a new Japanese charset detection routine.
+ * With the old detection strategy, Lynx always thought a document was
+ * written in mixture of three kanji codes (JIS, EUC and SJIS). The new
+ * strategy is for Lynx to first assume the document is written in one code
+ * or JIS + one other kanji code (JIS, EUC, SJIS, EUC+JIS and SJIS+JIS).
+ * The first assumption is usually correct, but if the assumption is wrong,
+ * Lynx falls back to the old assumption of the three kanji codes mixed.
+ */
+#define USE_TH_JP_AUTO_DETECT
+
+/*****************************
+ * Uncomment the following line to enable the kanji code override routine.
+ * The code can be changed by pressing ^L. More precisely, this allows
+ * the user to override the assumption about the kanji code for the document
+ * which Lynx has made on the basis of a META tag and HTTP response.
+ */
+/*#define KANJI_CODE_OVERRIDE */
+
+/**************************
+ * SSL_CERT_FILE contains valid SSL CA certificates. Set this to a string
+ * to provide a runtime default value.
+ */
+#define SSL_CERT_FILE NULL
+
+/****************************************************************
+ * Section 4. Things you MUST check only if you plan to use Lynx
+ * in an anonymous account (allow public access to Lynx).
+ * This section may be skipped by those people building
+ * Lynx for private use only.
+ *
+ */
+
+/*****************************
+ * Enter the name of your anonymous account if you have one
+ * as ANONYMOUS_USER. UNIX systems will use a cuserid
+ * or get_login call to determine if the current user is
+ * the ANONYMOUS_USER. VMS systems will use getenv("USER").
+ *
+ * You may use the "-anonymous" option for multiple accounts,
+ * or for precautionary reasons in the anonymous account, as well.
+ *
+ * Specify privileges for the anonymous account below.
+ *
+ * It is very important to have this correctly defined or include
+ * the "-anonymous" command line option for invocation of Lynx
+ * in an anonymous account! If you do not you will be putting
+ * yourself at GREAT security risk!
+ */
+#define ANONYMOUS_USER ""
+
+/*******************************
+ * In the following four pairs of defines,
+ * INSIDE_DOMAIN means users connecting from inside your local domain,
+ * OUTSIDE_DOMAIN means users connecting from outside your local domain.
+ *
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to telnet back out
+ */
+#define CAN_ANONYMOUS_INSIDE_DOMAIN_TELNET TRUE
+#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_TELNET FALSE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to use ftp
+ */
+#define CAN_ANONYMOUS_INSIDE_DOMAIN_FTP TRUE
+#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_FTP FALSE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to use rlogin
+ */
+#define CAN_ANONYMOUS_INSIDE_DOMAIN_RLOGIN TRUE
+#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_RLOGIN FALSE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to read news OR post news articles.
+ * These flags apply to "news", "nntp", "newspost", and "newsreply"
+ * URLs, but not to "snews", "snewspost", or "snewsreply"
+ * in case they are supported.
+ */
+#define CAN_ANONYMOUS_INSIDE_DOMAIN_READ_NEWS TRUE
+#define CAN_ANONYMOUS_OUTSIDE_DOMAIN_READ_NEWS FALSE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to goto random URLs. (The 'g' command)
+ */
+#define CAN_ANONYMOUS_GOTO TRUE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to goto particular URLs.
+ */
+#define CAN_ANONYMOUS_GOTO_BIBP TRUE /* BIBP maps to HTTP */
+#define CAN_ANONYMOUS_GOTO_CSO FALSE
+#define CAN_ANONYMOUS_GOTO_FILE FALSE
+#define CAN_ANONYMOUS_GOTO_FINGER TRUE
+#define CAN_ANONYMOUS_GOTO_FTP FALSE
+#define CAN_ANONYMOUS_GOTO_GOPHER FALSE
+#define CAN_ANONYMOUS_GOTO_HTTP TRUE
+#define CAN_ANONYMOUS_GOTO_HTTPS FALSE
+#define CAN_ANONYMOUS_GOTO_LYNXCGI FALSE
+#define CAN_ANONYMOUS_GOTO_LYNXEXEC FALSE
+#define CAN_ANONYMOUS_GOTO_LYNXPROG FALSE
+#define CAN_ANONYMOUS_GOTO_MAILTO TRUE
+#define CAN_ANONYMOUS_GOTO_NEWS FALSE
+#define CAN_ANONYMOUS_GOTO_NNTP FALSE
+#define CAN_ANONYMOUS_GOTO_RLOGIN FALSE
+#define CAN_ANONYMOUS_GOTO_SNEWS FALSE
+#define CAN_ANONYMOUS_GOTO_TELNET FALSE
+#define CAN_ANONYMOUS_GOTO_TN3270 FALSE
+#define CAN_ANONYMOUS_GOTO_WAIS TRUE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to specify a port in 'g'oto commands
+ * for telnet URLs.
+ */
+#define CAN_ANONYMOUS_GOTO_TELNET_PORT FALSE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to jump to URLs (The 'J' command)
+ * via the shortcut entries in your JUMPFILE.
+ */
+#define CAN_ANONYMOUS_JUMP FALSE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to mail
+ */
+#define CAN_ANONYMOUS_MAIL TRUE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to print
+ */
+#define CAN_ANONYMOUS_PRINT FALSE
+
+/*******************************
+ * set to FALSE if users with anonymous restrictions should
+ * not be able to view configuration file (lynx.cfg) info
+ * via special LYNXCFG: links. (This does not control access
+ * to lynx.cfg as a normal file, e.g., through a "file:" URL,
+ * if other restrictions allow that.)
+ */
+#define CAN_ANONYMOUS_VIEW_LYNXCFG_INFO FALSE
+
+/*******************************
+ * set to FALSE if users with anonymous restrictions should
+ * not be able to view extended configuration file (lynx.cfg)
+ * info @@@ or perform special config info functions (reloading
+ * at run-time) via special LYNXCFG: links @@@. This only applies
+ * if the lynxcfg_info" restriction controlled by the previous
+ * item is not in effect and if Lynx has been compiled without
+ * NO_CONFIG_INFO defined (--disable-config-info wasn't used
+ * if Lynx was built with the autoconf configure script).
+ * The extended info may include details on configuration file
+ * names and location and links for reading the files, as well
+ * as information on nesting of included configuration files.
+ */
+#define CAN_ANONYMOUS_VIEW_LYNXCFG_EXTENDED_INFO FALSE
+
+/*******************************
+ * set to FALSE if users with anonymous restrictions should
+ * not be able to view information on compile time configuration
+ * via special LYNXCOMPILEOPTS: links. This only applies
+ * if the autoconf configure script was used to build Lynx
+ * AND --disable-config-info wasn't used, otherwise this
+ * special URL scheme isn't recognized anyway.
+ */
+#define CAN_ANONYMOUS_VIEW_COMPILEOPTS_INFO FALSE
+
+/*******************************
+ * set to FALSE if you don't want users of your anonymous
+ * account to be able to 'g'oto special URLs for showing
+ * configuration info (LYNXCFG: and LYNXCOMPILEOPTS:) if
+ * they are otherwise allowed.
+ */
+#define CAN_ANONYMOUS_GOTO_CONFIGINFO FALSE
+
+/*****************************
+ * Be sure you have read about and set defines above in Sections
+ * 1, 2 and 3 that could affect Lynx in an anonymous account,
+ * especially LOCAL_EXECUTION_LINKS_ALWAYS_OFF_FOR_ANONYMOUS.
+ *
+ * This ends the section specific to anonymous accounts.
+ */
+
+/*****************************
+ * These can be uncommented to get more detail when debugging changes to
+ * the color-style and layout logic.
+ */
+/*#define DEBUG_APPCH 1*/
+/*#define DEBUG_STYLE 1*/
+
+#ifdef DEBUG_STYLE
+#define CTRACE_STYLE(p) CTRACE2(TRACE_STYLE, p)
+#else
+#define CTRACE_STYLE(p) /* nothing */
+#endif
+
+/* #define DEBUG_SPLITLINE */
+
+#ifdef DEBUG_SPLITLINE
+#define CTRACE_SPLITLINE(p) CTRACE(p)
+#else
+#define CTRACE_SPLITLINE(p) /*nothing */
+#endif
+
+#endif /* USERDEFS_H */