This file lists preprocessor macros (symbols) which are tested in the
code (typically with ifdef).

Does not include
- symbols defined and documented in userdefs.h
- symbols expected to be set by compiler to indicate system type or
  compiler features
- many symbols set and used only in connection with the ./configure
  mechanism - the full and current list can be found in config.hin
  (as a template) or, after running ./configure, in lynx_cfg.h.
- most symbols and macros defined in the source code

***Not complete.***

A. Symbols primarily to enable compilation on specific systems
==============================================================
See also under B for things needed by some systems.

# if you have an SVR4 system with the "type any key" problem, try defining
#
# -DSVR4_BSDSELECT

# Old Data General systems may need this in their SITE_LYDEFS
# for their inet_addr(host) calls.
#
# -DDGUX_OLD

---
Ports have been added for Win32 (95/NT) and 386 DOS computers with a
packet driver.  I created four new defines to accomplish this.
	_WINDOWS Defined for Win32 specific code (Mostly TCP related)
	DJGPP    Defined for 386 specific code (Mostly TCP related)
	DOSPATH  Defined for any DOS'ish computer
	NOSIGHUP Defined for computers not supporting sighup signal calls.
-- Wayne Buttles lynx-port@fdisk.com

Added for 8+3 filesystems (DOS):
	FNAMES_8_3  also defined in userdefs.h if __DJGPP__

* incorporate changes for win32 by Hiroyuki Senshu <senshu@shonai-cit.ac.jp>
  (SH) from
    ftp://crab.it.osha.sut.ac.jp/pub/Win32/develope/senshu/Lynx/
  Most changes are ifdef'd
    #define _WIN_CC=    .... for Windows C Compiler
    #define CJK_EX      .... CJK EXtension
    #define SH_EX       .... Senshu Hiroyuki EXtension
    #define WIN_EX      .... Windows EXtension


B. Symbols to enable or disable specific features, mostly
=========================================================
Note that some of these may be only usable on some system types,
most were originally for UNIX.

Network related, specific protocols
-----------------------------------
# -DSOCKS          For making a SOCKSified lynx.
       			see comments in makefile.in
# -DSHORTENED_RBIND  For a SOCKSified lynx with the short version of Rbind.
               		see comments in makefile.in

Related to DirEd code - probably only usable for UNIX or similar
----------------------------------------------------------------
# -DDIRED_SUPPORT  (see INSTALLATION, Section II-1c)
# -DOK_GZIP        (see INSTALLATION, Section II-1c)
# -DOK_OVERRIDE    (see INSTALLATION, Section II-1c)
# -DOK_PERMIT      (see INSTALLATION, Section II-1c)
# -DOK_TAR         (see INSTALLATION, Section II-1c)
# -DOK_UUDECODE    (see INSTALLATION, Section II-1c)
# -DOK_ZIP         (see INSTALLATION, Section II-1c)
# -DOK_INSTALL     to enable dired menu "Install" function
# -DARCHIVE_ONLY   (see INSTALLATION, Section II-1c)
# -DNO_CHANGE_EXECUTE_PERMS (see INSTALLATION, Section II-1c)
# -DCANT_EDIT_UNWRITABLE_FILES (see LYEdit.c - always in effect for VMS)

Related to formatting of local directory listings
-------------------------------------------------
# -DLONG_LIST      (see INSTALLATION, Section II-1c)
# -DNO_PARENT_DIR_REFERENCE (see INSTALLATION, Section II-1c)

Related to screen display
-------------------------
Using curses or ncurses library:
# -DNCURSES        (see INSTALLATION, Section II-1c)
# -DFANCY_CURSES   whether curses lib supports more than very basic stuff
                   for UNIX handled by ./configure, for VMS defined in code
# -DNO_KEYPAD (old) or HAVE_KEYPAD (new)   whether curses lib uses keypad().
                   for UNIX handled by ./configure, may be set in HTUtils.h
# -DCOLOR_CURSES    whether curses lib supports color (in the right way).
                   for UNIX handled by ./configure
# -DUNDERLINE_LINKS  Define if you want links underlined instead of bold.
# -DHP_TERMINAL    For DIM workaround to REVERSE problems on HP terminals.
# -DNO_SIZECHANGE (old) or HAVE_SIZECHANGE (new) whether using code to detect
                   new size after size changes of the terminal (window).
                   for UNIX handled by ./configure, may be set in HTUtils.h
# -DUSE_SCROLLBAR  supports scrollbar when built with ncurses

Using slang library:
# -DUSE_SLANG      (see INSTALLATION, Section II-1c)
# -DSLANG_MBCS_HACK prevent cutoff lines when using UTF8 console (slang only)
Both:
# -DREVERSE_CLEAR_SCREEN_PROBLEM
# 	if you have the reverse clear screen problem of some SUN4 systems, or
# 	to work around some other "garbage on the screen" problems

Related to experimental (unsupported) character style code
------------------------------------------------------------
# -DUSE_COLOR_STYLE (see INSTALLATION, Section II-1c) needs SVr4 curses
# -DUSE_HASH       (see INSTALLATION, Section II-1c)  probably needs the above
# -DLINKEDSTYLES   (see INSTALLATION, Section II-1c)  probably needs the above

Other general
-------------
# -DIGNORE_CTRL_C  Define if Control-C shouldn't exit lynx.
# -DNO_CPU_LIMIT   Disables Max CPU timeout (includes CLOCKS_PER_SECOND)
# -DNO_DUMP_WITH_BACKSPACES Disables -with_backspaces code
# -DUSE_VASPRINT   Use vasprintf() function
# -DNO_RULES	   Disables code for CERN-style rules files
# -DMISC_EXP       Enable some truly experimental stuff
# -DINACTIVE_INPUT_STYLE_VH  Different style for showing inactive text fields

Untested
--------
# -DNO_EXTENDED_HTMLDTD	Disable some "SortaSGML" code, see SGML.c
# -DWIND_DOWN_STACK Aggressive handling of end tags for "TagSoup", SGML.c

C. Secondary symbols
====================
Some macros that are not primary, i.e. they are normally automatically
set or unset in the code based on other macros (including those from
./configure), but it may be sometimes useful to set them differently.
They may directly affect several source files.  Filenames show where
they are set.  Normally installers shouldn't have to care about these
symbols.

COOKIE_FILE		LYMain.c	default cookie file in HOME dir
SHOW_WHEREIS_TARGETS	LYCurses.h	whereis search highlighting
USE_KEYMAPS		LYCurses.h	use of .lynx-keymaps files

D. Symbols defined locally to modify some behavior
==================================================
Defined in the source files to which they apply.  Only filenames are listed,
the files would have to be read and edited anyway to change the definition.
Normally installers shouldn't have to care about any of these symbols.

ADVANCED_INFO				LYShowInfo.c
ALLOW_PROXY_HEAD			LYUtils.c
CHECK_FREE_MEM				GridText.c
CLEAN_URLS				HTParse.c
DEBUG_HOSTENT				HTTCP.c
DEBUG_HOSTENT_CHILD			HTTCP.c
DEFAULT_INVCHECK_BV			LYCookie.c
DUPLICATE_ANCHOR_NAME_WORKAROUND	HTAnchor.c
EXTENDED_OPTION_LOGIC			LYMain.c
EXTENDED_STARTFILE_RECALL		LYMain.c
OPTNAME_ALLOW_DASHES			LYMain.c
OVERLAP					HTNews.c
RESTRICT_NM_ALLOW_DASHES		LYUtils.c
SOCKET_DEBUG_TRACE			HTTCP.c
TRADITIONAL_SUFFIXES			HTInit.c
USE_XHDR				HTNews.c
max_cookies_buffer			LYCookie.c
max_cookies_domain			LYCookie.c
max_cookies_global			LYCookie.c
reverse_mailcap				HTInit.c
