blob: c5a6448ee02c03dc7f65693737f378adeabcdfcf [file] [log] [blame]
/*
* Copyright 1992, 1993, Geoff Kuenning, Granada Hills, CA
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All modifications to the source code must be clearly marked as
* such. Binary redistributions based on modified source code
* must be clearly marked as modified versions in the documentation
* and/or other materials provided with the distribution.
* 4. All advertising materials mentioning features or use of this software
* must display the following acknowledgment:
* This product includes software developed by Geoff Kuenning and
* other unpaid contributors.
* 5. The name of Geoff Kuenning may not be used to endorse or promote
* products derived from this software without specific prior
* written permission.
*
* THIS SOFTWARE IS PROVIDED BY GEOFF KUENNING AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL GEOFF KUENNING OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/*
* This is the configuration file for ispell. Thanks to Bob McQueer
* for creating it and making the necessary changes elsewhere to
* support it, and to George Sipe for figuring out how to make it easier
* to use.
*
* WARNING: The Makefile edits this file (config.X) to produce config.h.
* If you are looking at config.h, you're in the wrong file.
*
* Look through this file from top to bottom. If anything needs changing,
* create the header file "local.h" and define the correct values there;
* they will override this file. If you don't make any changes to this
* file, future patching will be easier.
*/
/*
* $Id$
*
* $Log$
* Revision 1.3 2007/04/10 02:59:31 jeffc
* Use correct dirent.h header file.
*
* Revision 1.2 2007/03/29 17:00:52 jeffc
* Fix for src != obj.
* Don't use obsolete header file.
*
* Revision 1.1 2007/01/09 23:57:18 lattner
* initial recheckin of mibench
*
* Revision 1.1.1.1 2007/01/09 02:58:48 evancheng
* Add selected tests from MiBench 1.0 to LLVM test suite.
*
* Revision 1.71 1995/01/08 23:23:28 geoff
* Add some more configuration variables: HAS_RENAME, MSDOS_BINARY_OPEN,
* HOME, PDICTHOME, HASHSUFFIX, STATSUFFIX, and COUNTSUFFIX. These are
* all to make it easier to port ispell to MS-DOS. Change DEFPAFF back
* to "words" so that only .ispell_words will be independent of language.
*
* Revision 1.70 1994/10/25 05:45:57 geoff
* Fix a tiny typo in a comment. Add a configurable install command.
*
* Revision 1.69 1994/09/01 06:06:30 geoff
* Improve the the documentation of LANGUAGES to include working examples.
*
* Revision 1.68 1994/07/28 05:11:34 geoff
* Log message for previous revision: force MASKBITS to greater than or
* equal to MASKTYPE_WIDTH (simplifies configuration for 64-bit
* machines).
*
* Revision 1.67 1994/07/28 04:53:34 geoff
*
* Revision 1.66 1994/04/27 02:50:46 geoff
* Change the documentation and defaults for the languages variable to
* reflect the new method of making American and British dictionary
* variants.
*
* Revision 1.65 1994/04/27 01:50:28 geoff
* Add MAX_CAPS.
*
* Revision 1.64 1994/02/07 08:10:42 geoff
* Add GENERATE_LIBRARY_PROTOS as a special variable for use only by me.
*
* Revision 1.63 1994/01/26 07:44:45 geoff
* Make yacc configurable through local.h.
*
* Revision 1.62 1994/01/25 07:11:20 geoff
* Get rid of all old RCS log lines in preparation for the 3.1 release.
*
*/
/* You may wish to specify your local definitions in this file: */
#include "local.h" /* local definitions for options */
/*
** Major-differences selection. The default system is BSD; for USG
** or non-UNIX systems you should add the appropriate #define to local.h.
*/
#ifndef USG
#undef USG /* Define this in local.h for System V machines */
#endif /* USG */
#include <unistd.h>
#include <sys/param.h>
#include <sys/types.h>
#ifndef USG
#include <dirent.h>
#endif /* USG */
/*
** Things that normally go in a Makefile. Define these just like you
** might in the Makefile, except you should use #define instead of
** make's assignment syntax. Everything must be double-quoted, and
** (unlike make) you can't use any sort of $-syntax to pick up the
** values of other definitions.
*/
#ifndef CC
#define CC "cc"
#endif /* CC */
#ifndef EMACS
#define EMACS "emacs"
#endif /* EMACS */
#ifndef LINT
#define LINT "lint"
#endif /* LINT */
#ifndef CFLAGS
#define CFLAGS "-O"
#endif /* CFLAGS */
#ifndef LINTFLAGS
#define LINTFLAGS ""
#endif /* LINTFLAGS */
#ifndef YACC
#define YACC "yacc"
#endif /* YACC */
/*
** Libraries that may need to be added to the cc line to get ispell to
** link. Normally, this should be null.
*/
#ifndef LIBES
#define LIBES ""
#endif
/*
** TERMLIB - where to get the termcap library. Should be -ltermcap or
** -lcurses on most systems.
*/
#ifndef TERMLIB
#define TERMLIB ""
#endif
/*
** REGLIB - where to get the regular-expression routines, if
** REGEX_LOOKUP is defined. Should be -lPW on USG systems, null on
** BSD systems.
*/
#ifndef REGLIB
#define REGLIB ""
#endif
/*
** Where to install various components of ispell. BINDIR contains
** binaries. LIBDIR contains hash tables and affix files. ELISPDIR
** contains emacs lisp files (if any) and TEXINFODIR contains emacs
** TeXinfo files. MAN1DIR and MAN4DIR will hold the chapter-1 and
** chapter-4 manual pages, respectively.
**
** If you intend to use multiple dictionary files, I would suggest
** LIBDIR be a directory which will contain nothing else, so sensible
** names can be constructed for the -d option without conflict.
*/
#ifndef BINDIR
#define BINDIR "/usr/local/bin"
#endif
#ifndef LIBDIR
#define LIBDIR ""
#endif
#ifndef ELISPDIR
#define ELISPDIR "/usr/local/lib/emacs/site-lisp"
#endif
#ifndef TEXINFODIR
#define TEXINFODIR "/usr/local/info"
#endif
#ifndef MAN1DIR
#define MAN1DIR "/usr/local/man/man1"
#endif
#ifndef MAN4DIR
#define MAN4DIR "/usr/local/man/man4"
#endif
/*
** Extensions to put on manual pages. Usually these are ".1" or ".1l".
*/
#ifndef MAN1EXT
#define MAN1EXT ".1"
#endif
#ifndef MAN4EXT
#define MAN4EXT ".4"
#endif
/*
** List of all hash files (languages) which will be supported by ispell.
**
** This variable has a complex format so that many options can be
** specified. The format is as follows:
**
** <language>[,<make-options>...] [<language> [,<make-options> ...] ...]
**
** where
**
** language is the name of a subdirectory of the
** "languages" directory
** make-options are options that are to be passed to "make" in
** the specified directory. The make-options
** should not, in general, specify a target, as
** this will be provided by the make process.
**
** For example, if LANGUAGES is:
**
** "{american,MASTERDICTS=american.med+,HASHFILES=americanmed+.hash,EXTRADICT=/usr/dict/words /usr/dict/web2} {deutsch,DICTALWAYS=deutsch.sml,DICTOPTIONS=}"
**
** then the American-English and Deutsch (German) languages will be supported,
** and the following variable settings will be passed to the two Makefiles:
**
** American:
**
** MASTERDICTS='american.med+'
** HASHFILES='americanmed+.hash'
** EXTRADICT='/usr/dict/words /usr/dict/web2'
**
** Deutsch:
**
** DICTALWAYS='deutsch.sml'
** DICTOPTIONS=''
**
** Notes on the syntax: The makefile is not very robust. If you have
** make problems, or if make seems to fail in the language-subdirs
** dependency, check your syntax. The makefile adds single quotes to
** the individual variables in the LANGUAGES specification, so don't
** use quotes of any kind.
**
** In the future, the first language listed in this variable will
** become the default, and the DEFHASH, DEFLANG, and DEFPAFF,
** variables will all become obsolete. So be sure to put your default
** language first, to make later conversion easier!
**
** Notes on options for the various languages will be found in the
** Makefiles for those languages. Some of those languages may require
** you to also change various limits limits like MASKBITS or the
** length parameters.
**
** A special note on the English language: because the British and
** American dialects use different spelling, you should usually select
** one or the other of these. If you select both, the setting of
** MASTERHASH will determine which becomes the language linked to
** DEFHASH (which will usually be named english.hash).
*/
#ifndef LANGUAGES
#define LANGUAGES "{american,MASTERDICTS=american.med+,HASHFILES=americanmed+.hash,EXTRADICT=words}"
#endif /* LANGUAGES */
/*
** Master hash file for DEFHASH. This is the name of a hash file
** built by a language Makefile. It should be the most-popular hash
** file on your system, because it is the one that will be used by
** default. It must be listed in LANGUAGES, above.
*/
#ifndef MASTERHASH
#define MASTERHASH "americanmed+.hash"
#endif
/*
** Default native-language hash file. This is the name given to the
** hash table that will be used if no language is specified to
** ispell. It is a link to MASTERHASH, above.
*/
#ifndef DEFHASH
#define DEFHASH "english.hash"
#endif
/*
** Language tables for the default language. This must be the name of
** the affix file that was used to generate the MASTERHASH/DEFHASH,
** above.
*/
#ifndef DEFLANG
#define DEFLANG "english.aff"
#endif
/*
** Language to use for error messages. If there are no messages in this
** language, English will be used instead.
*/
#ifndef MSGLANG
#define MSGLANG "english"
#endif /* MSGLANG */
/*
** If your sort command accepts the -T switch to set temp file
** locations (try it out; it exists but is undocumented on some
** systems), make the following variable the null string. Otherwise
** leave it as the sed script.
*/
#ifndef SORTTMP
#define SORTTMP "-e '/!!SORTTMP!!/s/=.*$/=/'"
#endif
/*
** If your sort command accepts the -T switch (see above), make the
** following variable refer to a temporary directory with lots of
** space. Otherwise make it the null string.
*/
#ifndef MAKE_SORTTMP
#define MAKE_SORTTMP "-T ${TMPDIR-/tmp}"
#endif
/*
** INSTALL program. Could be a copy program like cp or something fancier
** like /usr/ucb/install -c
*/
#ifndef INSTALL
#define INSTALL "cp"
#endif
/*
** If your system has the rename(2) system call, define HAS_RENAME and
** ispell will use that call to rename backup files. Otherwise, it
** will use link/unlink. There is no harm in this except on MS-DOS,
** which doesn't support link/unlink.
*/
#ifndef HAS_RENAME
#undef HAS_RENAME
#endif /* HAS_RENAME */
/* Aliases for some routines */
#ifdef USG
#define bcopy(s, d, n) (void) memcpy (d, s, n)
#define bzero(d, n) (void) memset (d, 0, n)
#define index strchr
#define rindex strrchr
#endif
/* type given to signal() by signal.h */
#ifndef SIGNAL_TYPE
#define SIGNAL_TYPE void
#endif
/* environment variable for user's word list */
#ifndef PDICTVAR
#define PDICTVAR "WORDLIST"
#endif
/* prefix part of default word list */
#ifndef DEFPDICT
#define DEFPDICT ".ispell_"
#endif
/*
** suffix part of default word list
*/
#ifndef DEFPAFF
#define DEFPAFF "words"
#endif
/* old place to look for default word list */
#ifndef OLDPDICT
#define OLDPDICT ".ispell_"
#endif /* OLDPDICT */
#ifndef OLDPAFF
#define OLDPAFF "words"
#endif /* OLDPAFF */
/* environment variable for include file string */
#ifndef INCSTRVAR
#define INCSTRVAR "INCLUDE_STRING"
#endif
/* default include string */
#ifndef DEFINCSTR
#define DEFINCSTR "&Include_File&"
#endif
/* mktemp template for temporary file - MUST contain 6 consecutive X's */
#ifndef TEMPNAME
#define TEMPNAME "/tmp/ispellXXXXXX"
#endif
/*
** If REGEX_LOOKUP is undefined, the lookup command (L) will use the look(1)
** command (if available) or the egrep command. If REGEX_LOOKUP is defined,
** the lookup command will use the internal dictionary and the
** regular-expression library (which you must supply separately. There is
** a public-domain library available; libraries are also distributed with
** both BSD and System V.
**
** The advantage of no REGEX_LOOKUP is that it is often much faster, especially
** if the look(1) command is available, that the words found are presented
** in alphabetical order, and that the list of words searched is larger.
** The advantage of REGEX_LOOKUP is that ispell doesn't need to spawn another
** program, and the list of words searched is exactly the list of (root) words
** that ispell will accept. (However, note that words formed with affixes will
** not be found; this can produce some artifacts. For example, since
** "brother" can be formed as "broth+er", a lookup command might fail to
** find "brother.")
*/
#ifndef REGEX_LOOKUP
#undef REGEX_LOOKUP
#endif /* REGEX_LOOKUP */
/*
** Choose the proper type of regular-expression routines here. BSD
** and public-domain systems have routines called re_comp and re_exec;
** System V uses regcmp and regex.
*/
#ifdef REGEX_LOOKUP
#ifndef REGCMP
#ifdef USG
#define REGCMP(str) regcmp (str, (char *) 0)
#define REGEX(re, str, dummy) regex (re, str, dummy, dummy, dummy, dummy, \
dummy, dummy, dummy, dummy, dummy, dummy)
#else /* USG */
#define REGCMP(str) re_comp (str)
#define REGEX(re, str, dummy) re_exec (str)
#endif /* USG */
#endif /* REGCMP */
#endif /* REGEX_LOOKUP */
/* look command (if look(1) MAY BE available - ignored if not) */
#ifndef REGEX_LOOKUP
#ifndef LOOK
#define LOOK "look -df"
#endif
#endif /* REGEX_LOOKUP */
/* path to egrep (use speeded up version if available) */
#ifndef EGREPCMD
#ifdef USG
#define EGREPCMD "/bin/egrep"
#else
#define EGREPCMD "/usr/bin/egrep -i"
#endif
#endif
/* path to wordlist for Lookup command (typically /usr/dict/{words|web2}) */
/* note that /usr/dict/web2 is usually a bad idea due to obscure words */
#ifndef WORDS
#define WORDS "/usr/dict/words"
#endif
/* buffer size to use for file names if not in sys/param.h */
#ifndef MAXPATHLEN
#define MAXPATHLEN 240
#endif
/* max file name length (will truncate to fit BAKEXT) if not in sys/param.h */
#ifndef MAXNAMLEN
#define MAXNAMLEN 14
#endif
/* define if you want .bak file names truncated to MAXNAMLEN characters */
#ifndef TRUNCATEBAK
#undef TRUNCATEBAK
#endif /* TRUNCATEBAK */
/* largest word accepted from a file by any input routine, plus one */
#ifndef INPUTWORDLEN
#define INPUTWORDLEN 100
#endif
/* largest amount that a word might be extended by adding affixes */
#ifndef MAXAFFIXLEN
#define MAXAFFIXLEN 20
#endif
/*
** Define the following to suppress the 8-bit character feature.
** Unfortunately, this doesn't work as well as it might, because ispell
** only strips the 8th bit in some places. For example, it calls strcmp()
** quite often without first stripping parity. However, I really wonder
** about the utility of this option, so I haven't bothered to fix it. If
** you think the stripping feature of NO8BIT is useful, you might let me
** (Geoff Kuenning) know.
**
** Nevertheless, NO8BIT is a useful option for other reasons. If NO8BIT
** is defined, ispell will probably use 8-bit characters internally;
** this improves time efficiency and saves a small amount of space
** in the hash file. Thus, I recommend you specify NO8BIT unless you
** actually expect to be spelling files which use a 256-character set.
*/
#ifndef NO8BIT
#undef NO8BIT
#endif /* NO8BIT */
/*
** Number of mask bits (affix flags) supported. Must be 32, 64, 128, or
** 256. If MASKBITS is 32 or 64, there are really only 26 or 58 flags
** available, respectively. If it is 32, the flags are named with the
** 26 English uppercase letters; lowercase will be converted to uppercase.
** If MASKBITS is 64, the 58 flags are named 'A' through 'z' in ASCII
** order, including the 6 special characters from 'Z' to 'a': "[\]^_`".
** If MASKBITS is 128 or 256, all the 7-bit or 8-bit characters,
** respectively, are theoretically available, though a few (newline, slash,
** null byte) are pretty hard to actually use successfully.
**
** Note that a number of non-English affix files depend on having a
** larger value for MASKBITS. See the affix files for more
** information.
*/
#ifndef MASKBITS
#define MASKBITS 32
#endif
/*
** C type to use for masks. This should be a type that the processor
** accesses efficiently.
**
** MASKTYPE_WIDTH must correctly reflect the number of bits in a
** MASKTYPE. Unfortunately, it is also required to be a constant at
** preprocessor time, which means you can't use the sizeof operator to
** define it.
**
** Note that MASKTYPE *must* match MASKTYPE_WIDTH or you may get
** division-by-zero errors!
*/
#ifndef MASKTYPE
#define MASKTYPE long
#endif
#ifndef MASKTYPE_WIDTH
#define MASKTYPE_WIDTH 32
#endif
#if MASKBITS < MASKTYPE_WIDTH
#undef MASKBITS
#define MASKBITS MASKTYPE_WIDTH
#endif /* MASKBITS < MASKTYPE_WIDTH */
/* maximum number of include files supported by xgets; set to 0 to disable */
#ifndef MAXINCLUDEFILES
#define MAXINCLUDEFILES 5
#endif
/*
** Maximum hash table fullness percentage. Larger numbers trade space
** for time.
**/
#ifndef MAXPCT
#define MAXPCT 70 /* Expand table when 70% full */
#endif
/*
** Maximum number of "string" characters that can be defined in a
** language (affix) file. Don't forget that an upper/lower string
** character counts as two!
*/
#ifndef MAXSTRINGCHARS
#define MAXSTRINGCHARS 100
#endif /* MAXSTRINGCHARS */
/*
** Maximum length of a "string" character. The default is appropriate for
** nroff-style characters starting with a backslash.
*/
#ifndef MAXSTRINGCHARLEN
#define MAXSTRINGCHARLEN 10
#endif /* MAXSTRINGCHARLEN */
/*
** the NOPARITY mask is applied to user input characters from the terminal
** in order to mask out the parity bit.
*/
#ifdef NO8BIT
#define NOPARITY 0x7f
#else
#define NOPARITY 0xff
#endif
/*
** the terminal mode for ispell, set to CBREAK or RAW
**
*/
#ifndef TERM_MODE
#define TERM_MODE CBREAK
#endif
/*
** Define this if you want your columns of words to be of equal length.
** This will spread short word lists across the screen instead of down it.
*/
#ifndef EQUAL_COLUMNS
#undef EQUAL_COLUMNS
#endif /* EQUAL_COLUMNS */
/*
** This is the extension that will be added to backup files
*/
#ifndef BAKEXT
#define BAKEXT ".bak"
#endif
/*
** Define this if you want to suppress the capitalization-checking
** feature. This will reduce the size of the hashed dictionary on
** most 16-bit and some 32-bit machines. This option is not
** recommended.
*/
#ifndef NO_CAPITALIZATION_SUPPORT
#undef NO_CAPITALIZATION_SUPPORT
#endif /* NO_CAPITALIZATION_SUPPORT */
/*
** Define this if you want your personal dictionary sorted. This may take
** a long time for very large dictionaries. Dictionaries larger than
** SORTPERSONAL words will not be sorted. Define SORTPERSONAL as zero
** to disable this feature.
*/
#ifndef SORTPERSONAL
#define SORTPERSONAL 1000
#endif
/*
** Define this if you want to use the shell for interpretation of commands
** issued via the "L" command, "^Z" under System V, and "!". If this is
** not defined then a direct fork()/exec() will be used in place of the
** normal system(). This may speed up these operations greately on some
** systems.
*/
#ifndef USESH
#undef USESH
#endif /* USESH */
/*
** Maximum language-table search size. Smaller numbers make ispell
** run faster, at the expense of more memory (the lowest reasonable value
** is 2). If a given character appears in a significant position in
** more than MAXSEARCH suffixes, it will be given its own index table.
** If you change this, define INDEXDUMP in lookup.c to be sure your
** index table looks reasonable.
*/
#ifndef MAXSEARCH
#define MAXSEARCH 4
#endif
/*
** Define this if you want to be able to type any command at a "type space
** to continue" prompt.
*/
#ifndef COMMANDFORSPACE
#undef COMMANDFORSPACE
#endif /* COMMANDFORSPACE */
/*
** Memory-allocation increment. Buildhash allocates memory in chunks
** of this size, and then subdivides it to get its storage. This saves
** much malloc execution time. A good number for this is the system
** page size less the malloc storage overhead.
**
** Define this to zero to revert to using malloc/realloc. This is normally
** useful only on systems with limited memory.
*/
#ifndef MALLOC_INCREMENT
#define MALLOC_INCREMENT (4096 - 8)
#endif
/*
** Maximum number of "hits" expected on a word. This is basically the
** number of different ways different affixes can produce the same word.
** For example, with "english.aff", "brothers" can be produced 3 ways:
** "brothers," "brother+s", or "broth+ers". If this is too low, no major
** harm will be done, but ispell may occasionally forget a capitalization.
*/
#ifndef MAX_HITS
#define MAX_HITS 10
#endif
/*
** Maximum number of capitalization variations expected in any word.
** Besides the obvious all-lower, all-upper, and capitalized versions,
** this includes followcase variants. If this is too low, no real
** harm will be done, but ispell may occasionally fail to suggest a
** correct capitalization.
*/
#ifndef MAX_CAPS
#define MAX_CAPS 10
#endif /* MAX_CAPS */
/* Define this to ignore spelling check of entire LaTeX bibliography listings */
#ifndef IGNOREBIB
#undef IGNOREBIB
#endif
/*
** Default nroff and TeX special characters. Normally, you won't want to
** change this; instead you would override it in the language-definition
** file.
*/
#ifndef TEXSPECIAL
#define TEXSPECIAL "()[]{}<>\\$*.%"
#endif
#ifndef NRSPECIAL
#define NRSPECIAL "().\\*"
#endif
/*
** Defaults for certain command-line flags.
*/
#ifndef DEFNOBACKUPFLAG
#define DEFNOBACKUPFLAG 0 /* Don't suppress backup file */
#endif
#ifndef DEFTEXFLAG
#define DEFTEXFLAG 0 /* Default to nroff mode */
#endif
/*
** Define this if you want ispell to place a limitation on the maximum
** size of the screen. On windowed workstations with very large windows,
** the size of the window can be too much of a good thing, forcing the
** user to look back and forth between the bottom and top of the screen.
** If MAX_SCREEN_SIZE is nonzero, screens larger than this will be treated
** as if they have only MAX_SCREEN_SIZE lines. A good value for this
** variable is 24 or 30. Define it as zero to suppress the feature.
*/
#ifndef MAX_SCREEN_SIZE
#define MAX_SCREEN_SIZE 0
#endif
/*
** The next three variables are used to provide a variable-size context
** display at the bottom of the screen. Normally, the user will see
** a number of lines equal to CONTEXTPCT of his screen, rounded down
** (thus, with CONTEXTPCT == 10, a 24-line screen will produce two lines
** of context). The context will never be greater than MAXCONTEXT or
** less than MINCONTEXT. To disable this feature entirely, set MAXCONTEXT
** and MINCONTEXT to the same value. To round context percentages up,
** define CONTEXTROUNDUP.
**
** Warning: don't set MAXCONTEXT ridiculously large. There is a
** static buffer of size MAXCONTEXT*BUFSIZ; since BUFSIZ is frequently
** 1K or larger, this can create a remarkably large executable.
*/
#ifndef CONTEXTPCT
#define CONTEXTPCT 10 /* Use 10% of the screen for context */
#endif
#ifndef MINCONTEXT
#define MINCONTEXT 2 /* Always show at least 2 lines of context */
#endif
#ifndef MAXCONTEXT
#define MAXCONTEXT 10 /* Never show more than 10 lines of context */
#endif
#ifndef CONTEXTROUNDUP
#undef CONTEXTROUNDUP /* Don't round context up */
#endif
/*
** Define this if you want the context lines to be displayed at the
** bottom of the screen, the way they used to be, rather than at the top.
*/
#ifndef BOTTOMCONTEXT
#undef BOTTOMCONTEXT
#endif /* BOTTOMCONTEXT */
/*
** Define this if you want the "mini-menu," which gives the most important
** options at the bottom of the screen, to be the default (in any case, it
** can be controlled with the "-M" switch).
*/
#ifndef MINIMENU
#undef MINIMENU
#endif
/*
** You might want to change this to zero if your users want to check
** single-letter words against the dictionary. However, you should try
** some sample runs using the -W switch before you try it out; you'd
** be surprised how many single letters appear in documents. If you increase
** MINWORD beyond 1, don't say I didn't warn you that it was a bad idea.
*/
#ifndef MINWORD
#define MINWORD 1 /* Words this short and shorter are always ok */
#endif
/*
** ANSI C compilers are supposed to provide an include file,
** "stdlib.h", which gives function prototypes for all library
** routines. Define NO_STDLIB_H if you have a compiler that claims to
** be ANSI, but doesn't provide this include file.
*/
#ifndef NO_STDLIB_H
#ifndef __STDC__
#define NO_STDLIB_H
#endif /* __STDC__ */
#endif /* NO_STDLIB_H */
/*
** The following define is used by the ispell developer to help
** double-check the software. Leave it undefined on other systems
** unless you are especially fond of warning messages, or are pursuing
** an inexplicable bug that might be related to a type mismatch.
*/
#ifndef GENERATE_LIBARARY_PROTOS
#undef GENERATE_LIBARARY_PROTOS
#endif /* GENERATE_LIBARARY_PROTOS */
/*
** Symbols below this point are generally intended to cater to
** idiosyncracies of specific machines and operating systems.
**
** MS-DOS users should also define HAS_RENAME, above, if appropriate.
**
** Define PIECEMEAL_HASH_WRITES if your system can't handle huge write
** operations. This is known to be a problem on some MS-DOS systems.
*/
#ifndef PIECEMEAL_HASH_WRITES
#undef PIECEMEAL_HASH_WRITES
#endif /* PIECEMEAL_HASH_WRITES */
/*
** Redefine GETKEYSTROKE() to getkey() on some MS-DOS systems where
** getchar() doesn't operate properly in raw mode.
*/
#ifndef GETKEYSTROKE
#define GETKEYSTROKE() getchar ()
#endif /* GETKEYSTROKE */
/*
** Define MSDOS_BINARY_OPEN to 0x8000 on MS-DOS systems. This can be
** done by adding "#include fcntl.h" to your local.h file.
*/
#ifndef MSDOS_BINARY_OPEN
#ifdef O_BINARY
#define MSDOS_BINARY_OPEN O_BINARY
#else /* O_BINARY */
#define MSDOS_BINARY_OPEN 0
#endif /* O_BINARY */
#endif /* MSDOS_BINARY_OPEN */
/*
** Environment variable to use to locate the home directory. On DOS
** systems you might want to set this to ISPELL_HOME to avoid
** conflicts with other programs that look for a HOME environment
** variable; on all other systems it should be just HOME.
*/
#ifndef HOME
#define HOME "HOME"
#endif /* HOME */
/*
** On MS-DOS systems, define PDICTHOME to be the name of a directory
** to be used to contain the personal dictionary (.ispell_english,
** etc.). On other systems, you can leave it undefined.
*/
#ifndef PDICTHOME
#undef PDICTHOME
#endif /* PDICTHOME */
/*
** On MS-DOS systems, you can rename the following variables so that
** ispell's files have 3-character suffixes. Note that, if you do
** this, you will have to redefine any variable above that
** incorporates one of the suffixes.
*/
#ifndef HASHSUFFIX
#define HASHSUFFIX ".hash"
#endif /* HASHSUFFIX */
#ifndef STATSUFFIX
#define STATSUFFIX ".stat"
#endif /* STATSUFFIX */
#ifndef COUNTSUFFIX
#define COUNTSUFFIX ".cnt"
#endif /* COUNTSUFFIX */
/* AUTOMATICALLY-GENERATED SYMBOLS */
#define SIGNAL_TYPE_STRING "void"
#define MASKTYPE_STRING "long"