summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchim Gottinger <achim@gentoo.org>2001-02-10 11:24:50 +0000
committerAchim Gottinger <achim@gentoo.org>2001-02-10 11:24:50 +0000
commit0b564b984268062139a0c65c7d9bdf1d93097600 (patch)
tree154dcf314636956b8c003c1ac59447eb0c6210fe /app-text/ispell/files
parent*** empty log message *** (diff)
downloadgentoo-2-0b564b984268062139a0c65c7d9bdf1d93097600.tar.gz
gentoo-2-0b564b984268062139a0c65c7d9bdf1d93097600.tar.bz2
gentoo-2-0b564b984268062139a0c65c7d9bdf1d93097600.zip
Some forgotten files
Diffstat (limited to 'app-text/ispell/files')
-rw-r--r--app-text/ispell/files/ispell-3.1.20.dif1733
1 files changed, 1733 insertions, 0 deletions
diff --git a/app-text/ispell/files/ispell-3.1.20.dif b/app-text/ispell/files/ispell-3.1.20.dif
new file mode 100644
index 000000000000..fd6b2dbda476
--- /dev/null
+++ b/app-text/ispell/files/ispell-3.1.20.dif
@@ -0,0 +1,1733 @@
+--- Makefile
++++ Makefile Mon Mar 13 18:18:57 2000
+@@ -165,6 +165,10 @@
+ SHELL = /bin/sh
+ MAKE = make
+
++ifeq ($(RPM_OPT_FLAGS),)
++ RPM_OPT_FLAGS = -O2
++endif
++
+ #
+ # Set this to "-vx" in the make command line if you need to
+ # debug the complex shell commands.
+@@ -315,7 +319,7 @@
+ cd $$LIBDIR; \
+ if [ $$MASTERHASH != $DEFHASH ]; then \
+ rm -f $$DEFHASH; \
+- ln $$MASTERHASH $$DEFHASH; \
++ ln -s $$MASTERHASH $$DEFHASH; \
+ fi
+
+ ispell.info: config.sh ispell.texinfo
+@@ -505,8 +509,8 @@
+ >> config.h
+
+ # Create a sample local.h if no such file currently exists
+-local.h:
+- set +e; [ -r local.h ] || cp local.h.samp local.h
++local.h: local.h.samp
++ set +e; sed "s/.[{(]\?RPM_OPT_FLAGS[})]\?/$(RPM_OPT_FLAGS)/" < local.h.samp > local.h
+
+ msgs.h: config.sh FRC
+ @. ./config.sh; \
+@@ -521,7 +525,7 @@
+ :; \
+ else \
+ set -x; \
+- rm -f msgs.h; ln $$msgs msgs.h || cp $$msgs msgs.h; \
++ rm -f msgs.h; ln -s $$msgs msgs.h || cp $$msgs msgs.h; \
+ fi
+
+ FRC:
+--- Makefile.Linux
++++ Makefile.Linux Mon Mar 13 17:48:46 2000
+@@ -0,0 +1,31 @@
++#
++#
++#
++# Makefile.Linux to integrate package into source tree of SuSE-Linux.
++#
++# Copyright (c) 1996 SuSE GmbH Fuerth, Germany.
++#
++# please send bugfixes or comments to feedback@suse.de.
++#
++# Author: Werner fink, <werner@suse.de>
++#
++
++DICTDIR = /usr/share/dict
++
++all: compile
++
++local.h: local.h.samp
++ make local.h
++
++compile: local.h
++ make all
++
++install:
++ make install
++ rm -f /usr/share/emacs/site-lisp/ispell.el*
++ mkdir -p /usr/doc/packages/ispell
++ mkdir -p /usr/lib/ispell/emacs
++ install -m 0444 suse/ispell-emacs-menu.el /usr/lib/ispell/
++ install -m 0444 suse/emacs/american.el /usr/lib/ispell/emacs/
++ install -m 0444 suse/emacs/british.el /usr/lib/ispell/emacs/
++
+--- buildhash.c
++++ buildhash.c Mon Mar 13 16:29:04 2000
+@@ -211,7 +211,7 @@
+ {
+ register FILE * houtfile;
+ register struct dent * dp;
+- int strptr;
++ intptr_t strptr;
+ int n;
+ int i;
+ int maxplen;
+@@ -336,7 +336,7 @@
+ {
+ if (dp->next != 0)
+ {
+- int x;
++ intptr_t x;
+ x = dp->next - hashtbl;
+ dp->next = (struct dent *)x;
+ }
+--- correct.c
++++ correct.c Mon Mar 13 17:38:35 2000
+@@ -179,7 +179,7 @@
+
+ if (interactive)
+ {
+- erase ();
++ ierase ();
+ helpout = stdout;
+ }
+ else
+@@ -304,7 +304,7 @@
+ if (good (itok, 0, 0, 0, 0) || compoundgood (itok, 0))
+ return;
+
+- erase ();
++ ierase ();
+ (void) printf (" %s", ctok);
+ if (currentfile)
+ (void) printf (CORR_C_FILE_LABEL, currentfile);
+@@ -338,9 +338,9 @@
+ for (i = 0; i < pcount; i++)
+ {
+ #ifdef BOTTOMCONTEXT
+- move (2 + (i % col_ht), (maxposslen + 8) * (i / col_ht));
++ imove (2 + (i % col_ht), (maxposslen + 8) * (i / col_ht));
+ #else /* BOTTOMCONTEXT */
+- move (3 + contextsize + (i % col_ht), (maxposslen + 8) * (i / col_ht));
++ imove (3 + contextsize + (i % col_ht), (maxposslen + 8) * (i / col_ht));
+ #endif /* BOTTOMCONTEXT */
+ if (i >= easypossibilities)
+ (void) printf ("??: %s", possibilities[i]);
+@@ -351,9 +351,9 @@
+ }
+
+ #ifdef BOTTOMCONTEXT
+- move (li - contextsize - 1 - minimenusize, 0);
++ imove (li - contextsize - 1 - minimenusize, 0);
+ #else /* BOTTOMCONTEXT */
+- move (2, 0);
++ imove (2, 0);
+ #endif /* BOTTOMCONTEXT */
+ for (i = contextsize; --i > 0; )
+ show_line (contextbufs[i], contextbufs[i], 0);
+@@ -378,7 +378,7 @@
+
+ if (minimenusize != 0)
+ {
+- move (li - 2, 0);
++ imove (li - 2, 0);
+ (void) printf (CORR_C_MINI_MENU);
+ }
+
+@@ -389,10 +389,10 @@
+ {
+ case 'Z' & 037:
+ stop ();
+- erase ();
++ ierase ();
+ goto checkagain;
+ case ' ':
+- erase ();
++ ierase ();
+ (void) fflush (stdout);
+ return;
+ case 'q': case 'Q':
+@@ -406,7 +406,7 @@
+ c = 'y';
+ if (c == 'y' || c == 'Y')
+ {
+- erase ();
++ ierase ();
+ (void) fflush (stdout);
+ done (0);
+ }
+@@ -414,7 +414,7 @@
+ case 'i': case 'I':
+ treeinsert (ichartosstr (strtosichar (ctok, 0), 1),
+ ICHARTOSSTR_SIZE, 1);
+- erase ();
++ ierase ();
+ (void) fflush (stdout);
+ changes = 1;
+ return;
+@@ -422,14 +422,14 @@
+ itok = strtosichar (ctok, 0);
+ lowcase (itok);
+ treeinsert (ichartosstr (itok, 1), ICHARTOSSTR_SIZE, 1);
+- erase ();
++ ierase ();
+ (void) fflush (stdout);
+ changes = 1;
+ return;
+ case 'a': case 'A':
+ treeinsert (ichartosstr (strtosichar (ctok, 0), 1),
+ ICHARTOSSTR_SIZE, 0);
+- erase ();
++ ierase ();
+ (void) fflush (stdout);
+ return;
+ case 'L' & 037:
+@@ -441,12 +441,12 @@
+ {
+ char buf[200];
+
+- move (li - 1, 0);
++ imove (li - 1, 0);
+ (void) putchar ('!');
+ if (getline (buf) == NULL)
+ {
+ (void) putchar (7);
+- erase ();
++ ierase ();
+ (void) fflush (stdout);
+ goto checkagain;
+ }
+@@ -457,11 +457,11 @@
+ #else
+ (void) shellescape (buf);
+ #endif
+- erase ();
++ ierase ();
+ goto checkagain;
+ }
+ case 'r': case 'R':
+- move (li - 1, 0);
++ imove (li - 1, 0);
+ if (readonly)
+ {
+ (void) putchar (7);
+@@ -485,7 +485,7 @@
+ }
+ changes = 1;
+ }
+- erase ();
++ ierase ();
+ if (icharlen (itok) <= minword)
+ return; /* Accept very short replacements */
+ goto checkagain;
+@@ -509,10 +509,10 @@
+ changes = 1;
+ inserttoken (contextbufs[0],
+ begintoken, ctok, curchar);
+- erase ();
++ ierase ();
+ if (readonly)
+ {
+- move (li - 1, 0);
++ imove (li - 1, 0);
+ (void) putchar (7);
+ (void) printf ("%s", CORR_C_READONLY);
+ (void) fflush (stdout);
+@@ -528,23 +528,23 @@
+ case 'l': case 'L':
+ {
+ char buf[100];
+- move (li - 1, 0);
++ imove (li - 1, 0);
+ (void) printf (CORR_C_LOOKUP_PROMPT);
+ if (getline (buf) == NULL)
+ {
+ (void) putchar (7);
+- erase ();
++ ierase ();
+ goto checkagain;
+ }
+ (void) printf ("\r\n");
+ (void) fflush (stdout);
+ lookharder (buf);
+- erase ();
++ ierase ();
+ goto checkagain;
+ }
+ case 'x': case 'X':
+ quit = 1;
+- erase ();
++ ierase ();
+ (void) fflush (stdout);
+ return;
+ default:
+--- fields.c
++++ fields.c Mon Mar 13 18:29:00 2000
+@@ -34,6 +34,7 @@
+ #include <stdio.h>
+ #include "config.h"
+ #include "fields.h"
++#include "ispell.h"
+
+ field_t * fieldread P ((FILE * file, char * delims,
+ int flags, int maxf));
+@@ -59,10 +60,14 @@
+ #endif /* USG */
+
+ extern void free ();
+-extern char * malloc ();
+-extern char * realloc ();
++extern VOID * malloc ();
++extern VOID * realloc ();
+ extern char * strchr ();
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++extern size_t strlen ();
++#else
+ extern int strlen ();
++#endif
+
+ /*
+ * Read one line of the given file into a buffer, break it up into
+--- ijoin.c
++++ ijoin.c Mon Mar 13 14:31:54 2000
+@@ -133,7 +133,9 @@
+ static int unpairable1 = 0; /* NZ if -a1 */
+ static int unpairable2 = 0; /* NZ if -a2 */
+
++#ifndef strcmp
+ extern int strcmp ();
++#endif
+
+ int main (argc, argv) /* Join files */
+ int argc; /* Argument count */
+--- ispell.1X
++++ ispell.1X Mon Mar 13 14:31:54 2000
+@@ -373,7 +373,7 @@
+ key will not.
+ .PP
+ References for the
+-.IR tib (1)
++.I tib
+ bibliography system, that is, text between a ``[.'' or ``<.'' and
+ ``.]'' or ``.>'' will always be ignored in TeX/LaTeX mode.
+ .PP
+@@ -1307,6 +1307,17 @@
+ Default dictionary to use, if no
+ .B \-d
+ flag is given.
++.IP CHARSET
++Only read if
++.B DICTIONARY
++is set. Default formatter type or character encoding to use, if no
++.B \-T
++or
++.B \-t
++or
++.B \-n
++flag is given.
++Usefull if formatter type is recognized in affix-file.
+ .IP WORDLIST
+ Personal dictionary file name
+ .IP INCLUDE_STRING
+@@ -1334,10 +1345,9 @@
+ .IR look (1),
+ .IR join (1),
+ .IR sort (1),
+-.IR sq (1L),
+-.IR tib (1L),
+-.IR ispell (4L),
+-.IR english (4L)
++.IR sq (1),
++.IR ispell (5),
++.IR english (5)
+ .SH BUGS
+ It takes several to many seconds for
+ .I ispell
+--- ispell.4
++++ ispell.4 Mon Mar 13 14:31:54 2000
+@@ -60,7 +60,7 @@
+ .\" Get rid of all old RCS log lines in preparation for the 3.1 release.
+ .\"
+ .\"
+-.TH ISPELL 4 local
++.TH ISPELL 5 local
+ .SH NAME
+ ispell \- format of ispell dictionaries and affix files
+ .SH DESCRIPTION
+--- ispell.c
++++ ispell.c Mon Mar 13 14:31:54 2000
+@@ -134,6 +134,7 @@
+ #include "version.h"
+ #include <ctype.h>
+ #include <sys/stat.h>
++#include <unistd.h>
+
+ static void usage P ((void));
+ static void initckch P ((char * wchars));
+@@ -255,6 +256,7 @@
+ static char outbuf[BUFSIZ];
+ int argno;
+ int arglen;
++ int dictdeft = 0;
+
+ Cmd = *argv;
+
+@@ -263,6 +265,7 @@
+ p = getenv ("DICTIONARY");
+ if (p != NULL)
+ {
++ dictdeft++;
+ if (index (p, '/') != NULL)
+ (void) strcpy (hashname, p);
+ else
+@@ -279,6 +282,7 @@
+ p = rindex (libdictname, '.');
+ if (p != NULL)
+ *p = '\0';
++ preftype = getenv ("CHARSET");
+ }
+ else
+ (void) sprintf (hashname, "%s/%s", LIBDIR, DEFHASH);
+@@ -489,7 +493,7 @@
+ usage ();
+ tflag = 0; /* nroff/troff mode */
+ deftflag = 0;
+- if (preftype == NULL)
++ if (preftype == NULL || dictdeft)
+ preftype = "nroff";
+ break;
+ case 't': /* TeX mode */
+@@ -497,7 +501,7 @@
+ usage ();
+ tflag = 1;
+ deftflag = 1;
+- if (preftype == NULL)
++ if (preftype == NULL || dictdeft)
+ preftype = "tex";
+ break;
+ case 'T': /* Set preferred file type */
+--- ispell.h
++++ ispell.h Mon Mar 13 17:24:31 2000
+@@ -89,6 +89,7 @@
+ */
+
+ #include <stdio.h>
++#include <curses.h>
+
+ #ifdef __STDC__
+ #define P(x) x
+@@ -508,7 +509,11 @@
+ # define EXTERN extern
+ #endif
+
++#ifdef NCURSES_VERSION
++extern char * BC; /* backspace if not ^H */
++#else
+ EXTERN char * BC; /* backspace if not ^H */
++#endif
+ EXTERN char * cd; /* clear to end of display */
+ EXTERN char * cl; /* clear display */
+ EXTERN char * cm; /* cursor movement */
+--- ispell.texinfo
++++ ispell.texinfo Mon Mar 13 14:31:54 2000
+@@ -73,6 +73,9 @@
+ by the Foundation.
+
+ @end titlepage
++
++@node Top, Emacs, (dir), (dir)
++
+ @menu
+ * Emacs:: Using ispell from emacs
+ * Old Emacs:: Old Emacs
+@@ -91,8 +94,6 @@
+ * Multiple Dictionaries:: Using Multiple Dictionaries
+ @end menu
+
+-@node Top, Emacs, (dir), (dir)
+-
+ @iftex
+ @chapter ISPELL
+ @code{Ispell} is a program that helps you to correct spelling and
+@@ -198,7 +199,7 @@
+ the shell.
+ @end table
+
+-Of course, you can also type @kbd{@ctrl{G}} to stop the command without
++Of course, you can also type @kbd{C-g} to stop the command without
+ changing anything.
+
+ If you make a change that you don't like, just use emacs' normal undo
+@@ -215,7 +216,7 @@
+
+ When you finish with one word, the cursor is automatically moved to the
+ next. If you want to stop in the middle of the list type @kbd{X} or
+-@kbd{@ctrl{G}}.
++@kbd{C-g}.
+
+ @node Region, Multiple Dictionaries, Buffer, Emacs
+ @subsection Checking a region
+--- local.h.samp
++++ local.h.samp Mon Mar 13 18:16:12 2000
+@@ -80,19 +80,48 @@
+ */
+
+ #define MINIMENU /* Display a mini-menu at the bottom of the screen */
+-#define NO8BIT /* Remove this if you use ISO character sets */
+-#undef USG /* Define this on System V */
++#undef NO8BIT /* Remove this if you use ISO character sets */
++#define USG /* Define this on System V */
++#define HAS_RENAME
++#define INSTALL "install"
+
+ /*
+ * Important directory paths
+ */
+-#define BINDIR "/usr/local/bin"
+-#define LIBDIR "/usr/local/lib"
+-#define ELISPDIR "/usr/local/lib/emacs/site-lisp"
+-#define TEXINFODIR "/usr/local/info"
+-#define MAN1DIR "/usr/local/man/man1"
+-#define MAN4DIR "/usr/local/man/man4"
++#define BINDIR "/usr/bin"
++#define LIBDIR "/usr/lib/ispell"
++#define ELISPDIR "/usr/share/emacs/site-lisp"
++#define TEXINFODIR "/usr/share/info"
++#define WORDS "/usr/dict/words"
++#define MAN1DIR "/usr/share/man/man1"
++#define MAN4DIR "/usr/share/man/man5"
++#define MAN4EXT ".5"
+
+ /*
+ * Place any locally-required #include statements here
+ */
++#define CC "gcc"
++#define CFLAGS "$RPM_OPT_FLAGS -pipe"
++#define TERMLIB "-lncurses"
++#define LANGUAGES "{american,MASTERDICTS=american.xlg,HASHFILES=americanxlg.hash,EXTRADICT=} {british,MASTERDICTS=british.xlg,HASHFILES=britishxlg.hash,EXTRADICT=} {american,MASTERDICTS=american.med,HASHFILES=americanmed.hash,EXTRADICT=} {british,MASTERDICTS=british.med,HASHFILES=britishmed.hash,EXTRADICT=}"
++
++/*
++ * Settings
++ */
++
++#define MASKBITS 64
++#define INPUTWORDLEN 128
++#define MAXAFFIXLEN 32
++#define MAXSTRINGCHARS 128
++#define MASTERHASH "britishxlg.hash"
++#define HAS_RENAME
++#define DEFNOBACKUPFLAG 0
++#define BAKEXT "~"
++#define DEFTEXFLAG 1
++#define EGREPCMD "/usr/bin/grep -E"
++#define LOOK "/usr/bin/look -df"
++#define MAKE_SORTTMP "-T ${TMPDIR-/var/tmp}"
++#define SORTPERSONAL 2000
++#define USESH
++#define COMMANDFORSPACE
++
+--- lookup.c
++++ lookup.c Mon Mar 13 16:30:48 2000
+@@ -59,6 +59,7 @@
+ #include "ispell.h"
+ #include "proto.h"
+ #include "msgs.h"
++#include <unistd.h>
+
+ int linit P ((void));
+ #ifdef INDEXDUMP
+@@ -212,22 +213,22 @@
+ if (dp->word == (char *) -1)
+ dp->word = NULL;
+ else
+- dp->word = &hashstrings [ (int)(dp->word) ];
++ dp->word = &hashstrings [ (intptr_t)(dp->word) ];
+ if (dp->next == (struct dent *) -1)
+ dp->next = NULL;
+ else
+- dp->next = &hashtbl [ (int)(dp->next) ];
++ dp->next = &hashtbl [ (intptr_t)(dp->next) ];
+ }
+ }
+
+ for (i = numsflags + numpflags, entry = sflaglist; --i >= 0; entry++)
+ {
+ if (entry->stripl)
+- entry->strip = (ichar_t *) &hashstrings[(int) entry->strip];
++ entry->strip = (ichar_t *) &hashstrings[(intptr_t) entry->strip];
+ else
+ entry->strip = NULL;
+ if (entry->affl)
+- entry->affix = (ichar_t *) &hashstrings[(int) entry->affix];
++ entry->affix = (ichar_t *) &hashstrings[(intptr_t) entry->affix];
+ else
+ entry->affix = NULL;
+ }
+--- parse.y
++++ parse.y Mon Mar 13 14:31:54 2000
+@@ -677,7 +677,10 @@
+ toupper (hashheader.compoundbit);
+ #endif /* MASKBITS */
+ #if MASKBITS <= 64
+- if (!isalpha (hashheader.compoundbit))
++ /*
++ * isalpha() does not include char 91 to 96
++ */
++ if (!(hashheader.compoundbit >= 'A' && hashheader.compoundbit <= 'z'))
+ yyerror (PARSE_Y_BAD_FLAG);
+ #endif /* MASKBITS */
+ hashheader.compoundbit =
+@@ -870,7 +873,10 @@
+ flagbit = toupper (flagbit);
+ #endif /* MASKBITS */
+ #if MASKBITS <= 64
+- if (!isalpha (flagbit))
++ /*
++ * isalpha() does not include char 91 to 96
++ */
++ if (!(flagbit >= 'A' && flagbit <= 'z'))
+ yyerror (PARSE_Y_BAD_FLAG);
+ #endif /* MASKBITS */
+ flagbit = CHARTOBIT (flagbit);
+@@ -902,7 +908,10 @@
+ flagbit = toupper (flagbit);
+ #endif /* MASKBITS */
+ #if MASKBITS <= 64
+- if (!isalpha (flagbit))
++ /*
++ * isalpha() does not include char 91 to 96
++ */
++ if (!(flagbit >= 'A' && flagbit <= 'z'))
+ yyerror (PARSE_Y_BAD_FLAG);
+ #endif /* MASKBITS */
+ flagbit = CHARTOBIT (flagbit);
+--- proto.h
++++ proto.h Mon Mar 13 17:50:07 2000
+@@ -73,6 +73,21 @@
+ *
+ */
+
++#if defined(__GLIBC__) && ((__GLIBC__ == 2 && __GLIBC_MINOR__ > 0) || (__GLIBC__ > 2))
++# include <stdint.h>
++#endif
++#if defined(__WORDSIZE) && __WORDSIZE == 64
++# ifndef intptr_t
++typedef long int intptr_t;
++# define intptr_t intptr_t
++# endif
++#else
++# ifndef intptr_t
++typedef int intptr_t;
++# define intptr_t intptr_t
++# endif
++#endif
++
+ extern int addvheader P ((struct dent * ent));
+ extern void askmode P ((void));
+ extern void backup P ((void));
+@@ -93,7 +108,7 @@
+ extern char * do_regex_lookup P ((char * expr, int whence));
+ extern SIGNAL_TYPE done P ((int));
+ extern void dumpmode P ((void));
+-extern void erase P ((void));
++extern void ierase P ((void));
+ extern int expand_pre P ((char * croot, ichar_t * rootword,
+ MASKTYPE mask[], int option, char *extra));
+ extern int expand_suf P ((char * croot, ichar_t * rootword,
+@@ -125,7 +140,7 @@
+ extern void lowcase P ((ichar_t * string));
+ extern int makedent P ((char * lbuf, int lbuflen, struct dent * d));
+ extern void makepossibilities P ((ichar_t * word));
+-extern void move P ((int row, int col));
++extern void imove P ((int row, int col));
+ extern void normal P ((void));
+ extern char * printichar P ((int in));
+ #ifdef USESH
+--- sq.c
++++ sq.c Mon Mar 13 16:44:06 2000
+@@ -49,6 +49,7 @@
+ */
+
+ #include <stdio.h>
++#include <string.h>
+
+ #ifdef __STDC__
+ #define P(x) x
+--- term.c
++++ term.c Mon Mar 13 17:37:29 2000
+@@ -70,9 +70,10 @@
+ #include <sgtty.h>
+ #endif
+ #include <signal.h>
++#include <unistd.h>
+
+-void erase P ((void));
+-void move P ((int row, int col));
++void ierase P ((void));
++void imove P ((int row, int col));
+ void inverse P ((void));
+ void normal P ((void));
+ void backup P ((void));
+@@ -88,7 +89,7 @@
+ void shescape P ((char * buf));
+ #endif /* USESH */
+
+-void erase ()
++void ierase ()
+ {
+
+ if (cl)
+@@ -103,7 +104,7 @@
+ }
+ }
+
+-void move (row, col)
++void imove (row, col)
+ int row;
+ int col;
+ {
+@@ -136,8 +137,13 @@
+ }
+
+ #ifdef USG
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++static struct termios sbuf;
++static struct termios osbuf;
++#else
+ static struct termio sbuf;
+ static struct termio osbuf;
++#endif
+ #else
+ static struct sgttyb sbuf;
+ static struct sgttyb osbuf;
+@@ -161,9 +167,13 @@
+ int tpgrp;
+ #else
+ #ifdef TIOCGPGRP
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ pid_t tpgrp;
++#else
+ int tpgrp;
+ #endif
+ #endif
++#endif
+ #ifdef TIOCGWINSZ
+ struct winsize wsize;
+ #endif /* TIOCGWINSZ */
+@@ -247,7 +257,11 @@
+ (void) fprintf (stderr, TERM_C_NO_BATCH);
+ exit (1);
+ }
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcgetattr (0, &osbuf);
++#else
+ (void) ioctl (0, TCGETA, (char *) &osbuf);
++#endif
+ termchanged = 1;
+
+ sbuf = osbuf;
+@@ -256,7 +270,11 @@
+ sbuf.c_iflag &= ~(INLCR | IGNCR | ICRNL);
+ sbuf.c_cc[VMIN] = 1;
+ sbuf.c_cc[VTIME] = 1;
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcsetattr (0, TCSADRAIN, &sbuf);
++#else
+ (void) ioctl (0, TCSETAW, (char *) &sbuf);
++#endif
+
+ uerasechar = osbuf.c_cc[VERASE];
+ ukillchar = osbuf.c_cc[VKILL];
+@@ -269,7 +287,11 @@
+ #endif
+ #endif
+ #ifdef TIOCGPGRP
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ if ((tpgrp = tcgetpgrp (0)) == -1)
++#else
+ if (ioctl (0, TIOCGPGRP, (char *) &tpgrp) != 0)
++#endif
+ {
+ (void) fprintf (stderr, TERM_C_NO_BATCH);
+ exit (1);
+@@ -344,7 +366,11 @@
+ if (te)
+ tputs (te, 1, putch);
+ #ifdef USG
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcsetattr (0, TCSADRAIN, &osbuf);
++#else
+ (void) ioctl (0, TCSETAW, (char *) &osbuf);
++#endif
+ #else
+ (void) ioctl (0, TIOCSETP, (char *) &osbuf);
+ #ifdef TIOCSLTC
+@@ -360,7 +386,11 @@
+ int signo;
+ {
+ #ifdef USG
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcsetattr (0, TCSADRAIN, &osbuf);
++#else
+ (void) ioctl (0, TCSETAW, (char *) &osbuf);
++#endif
+ #else
+ (void) ioctl (0, TIOCSETP, (char *) &osbuf);
+ #ifdef TIOCSLTC
+@@ -375,7 +405,11 @@
+ /* stop here until continued */
+ (void) signal (signo, onstop);
+ #ifdef USG
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcsetattr (0, TCSADRAIN, &sbuf);
++#else
+ (void) ioctl (0, TCSETAW, (char *) &sbuf);
++#endif
+ #else
+ (void) ioctl (0, TIOCSETP, (char *) &sbuf);
+ #ifdef TIOCSLTC
+@@ -391,7 +425,7 @@
+ onstop (SIGTSTP);
+ #else
+ /* for System V */
+- move (li - 1, 0);
++ imove (li - 1, 0);
+ (void) fflush (stdout);
+ if (getenv ("SHELL"))
+ (void) shellescape (getenv ("SHELL"));
+@@ -435,7 +469,11 @@
+ argv[i] = NULL;
+
+ #ifdef USG
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcsetattr (0, TCSADRAIN, &osbuf);
++#else
+ (void) ioctl (0, TCSETAW, (char *) &osbuf);
++#endif
+ #else
+ (void) ioctl (0, TIOCSETP, (char *) &osbuf);
+ #ifdef TIOCSLTC
+@@ -481,7 +519,11 @@
+ #endif
+
+ #ifdef USG
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcsetattr (0, TCSADRAIN, &sbuf);
++#else
+ (void) ioctl (0, TCSETAW, (char *) &sbuf);
++#endif
+ #else
+ (void) ioctl (0, TIOCSETP, (char *) &sbuf);
+ #ifdef TIOCSLTC
+@@ -514,7 +556,11 @@
+ #endif
+
+ #ifdef USG
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcsetattr (0, TCSADRAIN, &osbuf);
++#else
+ (void) ioctl (0, TCSETAW, (char *) &osbuf);
++#endif
+ #else
+ (void) ioctl (0, TIOCSETP, (char *) &osbuf);
+ #ifdef TIOCSLTC
+@@ -546,7 +592,11 @@
+ #endif
+
+ #ifdef USG
++#if defined(__GLIBC__) && __GLIBC__ >= 2
++ (void) tcsetattr (0, TCSADRAIN, &sbuf);
++#else
+ (void) ioctl (0, TCSETAW, (char *) &sbuf);
++#endif
+ #else
+ (void) ioctl (0, TIOCSETP, (char *) &sbuf);
+ #ifdef TIOCSLTC
+--- tree.c
++++ tree.c Mon Mar 13 14:31:54 2000
+@@ -61,6 +61,7 @@
+
+ #include <ctype.h>
+ #include <errno.h>
++#include <unistd.h>
+ #include "config.h"
+ #include "ispell.h"
+ #include "proto.h"
+--- unsq.c
++++ unsq.c Mon Mar 13 17:13:05 2000
+@@ -49,6 +49,7 @@
+ */
+
+ #include <stdio.h>
++#include <string.h>
+ #include "msgs.h"
+
+ #ifdef __STDC__
+@@ -76,6 +77,7 @@
+ };
+
+ #define MAX_PREFIX (sizeof (size_encodings) - 1)
++#define UNSEQBUFSIZE 257
+
+ extern void exit P ((int status));
+
+@@ -83,8 +85,8 @@
+ int argc;
+ char * argv[];
+ {
+- char word[257];
+- static char prev[257] = "";
++ char word[UNSEQBUFSIZE];
++ static char prev[UNSEQBUFSIZE] = "";
+
+ while (!expand (word, prev))
+ puts (word);
+@@ -97,8 +99,10 @@
+ {
+ register char * wordp;
+ register char * prevp;
++ register char * nl;
+ register int same_count;
+ register int count_char;
++ register int size;
+
+ count_char = getchar ();
+ if (count_char == EOF)
+@@ -116,11 +120,14 @@
+ wordp = word;
+ while (same_count--)
+ *wordp++ = (*prevp++);
+- if (gets (wordp) == NULL)
++ size = UNSEQBUFSIZE - (wordp - word);
++ if (fgets(wordp, size <= UNSEQBUFSIZE ? size : 0, stdin) == NULL)
+ {
+ (void) fprintf (stderr, UNSQ_C_SURPRISE_EOF);
+ exit (1);
+ }
++ if ((nl = strrchr(wordp, '\n')))
++ *nl = '\0';
+ (void) strcpy (prev, word);
+ return 0 ;
+ }
+--- languages/fix8bit.c
++++ languages/fix8bit.c Mon Mar 13 14:31:54 2000
+@@ -160,9 +160,9 @@
+ if (ch >= '0' && ch <= '9')
+ backch = (backch << 4) | (ch - '0');
+ else if (ch >= 'a' && ch <= 'f')
+- backch = (ch << 4) - 'a' + 0xA;
++ backch = (backch << 4) | (ch - 'a' + 0xA);
+ else if (ch >= 'A' && ch <= 'F')
+- backch = (ch << 4) - 'A' + 0xA;
++ backch = (backch << 4) | (ch - 'A' + 0xA);
+ else
+ {
+ (void) putchar (backch);
+--- languages/altamer/Makefile
++++ languages/altamer/Makefile Mon Mar 13 14:31:54 2000
+@@ -143,7 +143,7 @@
+ cd $$LIBDIR; \
+ chmod 644 english.aff $(HASHFILES); \
+ for i in $(HASHFILES); do \
+- ln $$i $(LANGUAGE).hash; \
++ ln -s $$i $(LANGUAGE).hash; \
+ break; \
+ done
+ @. $(CONFIG); \
+@@ -231,7 +231,7 @@
+
+ $(DBUILD)altamer.sml: $(DBUILD)english.sml
+ rm -f altamer.sml
+- ln english.sml altamer.sml
++ ln -s english.sml altamer.sml
+
+ $(DBUILD)english.sml: $(CONFIG)
+ $(DBUILD)english.sml: english.0
+@@ -244,7 +244,7 @@
+
+ $(DBUILD)altamer.sml+: $(DBUILD)english.sml+
+ rm -f altamer.sml+
+- ln english.sml+ altamer.sml+
++ ln -s english.sml+ altamer.sml+
+
+ $(DBUILD)english.sml+: $(CONFIG)
+ $(DBUILD)english.sml+: english.0
+@@ -257,7 +257,7 @@
+
+ $(DBUILD)altamer.med: $(DBUILD)english.med
+ rm -f altamer.med
+- ln english.med altamer.med
++ ln -s english.med altamer.med
+
+ $(DBUILD)english.med: $(CONFIG)
+ $(DBUILD)english.med: english.0
+@@ -270,7 +270,7 @@
+
+ $(DBUILD)altamer.med+: $(DBUILD)english.med+
+ rm -f altamer.med+
+- ln english.med+ altamer.med+
++ ln -s english.med+ altamer.med+
+
+ $(DBUILD)english.med+: $(CONFIG)
+ $(DBUILD)english.med+: english.0
+@@ -283,7 +283,7 @@
+
+ $(DBUILD)altamer.lrg: $(DBUILD)english.lrg
+ rm -f altamer.lrg
+- ln english.lrg altamer.lrg
++ ln -s english.lrg altamer.lrg
+
+ $(DBUILD)english.lrg: $(CONFIG)
+ $(DBUILD)english.lrg: english.0
+@@ -296,7 +296,7 @@
+
+ $(DBUILD)altamer.lrg+: $(DBUILD)english.lrg+
+ rm -f altamer.lrg+
+- ln english.lrg+ altamer.lrg+
++ ln -s english.lrg+ altamer.lrg+
+
+ $(DBUILD)english.lrg+: $(CONFIG)
+ $(DBUILD)english.lrg+: english.0
+@@ -309,7 +309,7 @@
+
+ $(DBUILD)altamer.xlg: $(DBUILD)english.xlg
+ rm -f altamer.xlg
+- ln english.xlg altamer.xlg
++ ln -s english.xlg altamer.xlg
+
+ $(DBUILD)english.xlg: $(CONFIG)
+ $(DBUILD)english.xlg: english.0
+@@ -322,7 +322,7 @@
+
+ $(DBUILD)altamer.xlg+: $(DBUILD)english.xlg+
+ rm -f altamer.xlg+
+- ln english.xlg+ altamer.xlg+
++ ln -s english.xlg+ altamer.xlg+
+
+ $(DBUILD)english.xlg+: $(CONFIG)
+ $(DBUILD)english.xlg+: english.0
+@@ -364,7 +364,7 @@
+ for i in english.0 english.1 english.2 english.3 \
+ american.0 american.1 american.2 altamer.0 altamer.1 altamer.2 \
+ british.0 british.1 british.2; do \
+- ln -s $(DICTSRC)/$$i . || ln $(DICTSRC)/$$i . \
++ ln -s $(DICTSRC)/$$i . || ln -s $(DICTSRC)/$$i . \
+ || cp $(DICTSRC)/$$i .; \
+ done
+
+--- languages/american/Makefile
++++ languages/american/Makefile Mon Mar 13 14:31:54 2000
+@@ -146,7 +146,7 @@
+ cd $$LIBDIR; \
+ chmod 644 english.aff $(HASHFILES); \
+ for i in $(HASHFILES); do \
+- ln $$i $(LANGUAGE).hash; \
++ ln -s $$i $(LANGUAGE).hash; \
+ break; \
+ done
+ @. $(CONFIG); \
+@@ -234,7 +234,7 @@
+
+ $(DBUILD)american.sml: $(DBUILD)english.sml
+ rm -f american.sml
+- ln english.sml american.sml
++ ln -s english.sml american.sml
+
+ $(DBUILD)english.sml: $(CONFIG)
+ $(DBUILD)english.sml: english.0
+@@ -246,7 +246,7 @@
+
+ $(DBUILD)american.sml+: $(DBUILD)english.sml+
+ rm -f american.sml+
+- ln english.sml+ american.sml+
++ ln -s english.sml+ american.sml+
+
+ $(DBUILD)english.sml+: $(CONFIG)
+ $(DBUILD)english.sml+: english.0
+@@ -258,7 +258,7 @@
+
+ $(DBUILD)american.med: $(DBUILD)english.med
+ rm -f american.med
+- ln english.med american.med
++ ln -s english.med american.med
+
+ $(DBUILD)english.med: $(CONFIG)
+ $(DBUILD)english.med: english.0
+@@ -270,7 +270,7 @@
+
+ $(DBUILD)american.med+: $(DBUILD)english.med+
+ rm -f american.med+
+- ln english.med+ american.med+
++ ln -s english.med+ american.med+
+
+ $(DBUILD)english.med+: $(CONFIG)
+ $(DBUILD)english.med+: english.0
+@@ -282,7 +282,7 @@
+
+ $(DBUILD)american.lrg: $(DBUILD)english.lrg
+ rm -f american.lrg
+- ln english.lrg american.lrg
++ ln -s english.lrg american.lrg
+
+ $(DBUILD)english.lrg: $(CONFIG)
+ $(DBUILD)english.lrg: english.0
+@@ -294,7 +294,7 @@
+
+ $(DBUILD)american.lrg+: $(DBUILD)english.lrg+
+ rm -f american.lrg+
+- ln english.lrg+ american.lrg+
++ ln -s english.lrg+ american.lrg+
+
+ $(DBUILD)english.lrg+: $(CONFIG)
+ $(DBUILD)english.lrg+: english.0
+@@ -306,7 +306,7 @@
+
+ $(DBUILD)american.xlg: $(DBUILD)english.xlg
+ rm -f american.xlg
+- ln english.xlg american.xlg
++ ln -s english.xlg american.xlg
+
+ $(DBUILD)english.xlg: $(CONFIG)
+ $(DBUILD)english.xlg: english.0
+@@ -318,7 +318,7 @@
+
+ $(DBUILD)american.xlg+: $(DBUILD)english.xlg+
+ rm -f american.xlg+
+- ln english.xlg+ american.xlg+
++ ln -s english.xlg+ american.xlg+
+
+ $(DBUILD)english.xlg+: $(CONFIG)
+ $(DBUILD)english.xlg+: english.0
+@@ -360,7 +360,7 @@
+ for i in english.0 english.1 english.2 english.3 \
+ american.0 american.1 american.2 altamer.0 altamer.1 altamer.2 \
+ british.0 british.1 british.2; do \
+- ln -s $(DICTSRC)/$$i . || ln $(DICTSRC)/$$i . \
++ ln -s $(DICTSRC)/$$i . || ln -s $(DICTSRC)/$$i . \
+ || cp $(DICTSRC)/$$i .; \
+ done
+
+--- languages/british/Makefile
++++ languages/british/Makefile Mon Mar 13 14:31:54 2000
+@@ -146,7 +146,7 @@
+ cd $$LIBDIR; \
+ chmod 644 english.aff $(HASHFILES); \
+ for i in $(HASHFILES); do \
+- ln $$i $(LANGUAGE).hash; \
++ ln -s $$i $(LANGUAGE).hash; \
+ break; \
+ done
+ @. $(CONFIG); \
+@@ -234,7 +234,7 @@
+
+ $(DBUILD)british.sml: $(DBUILD)english.sml
+ rm -f british.sml
+- ln english.sml british.sml
++ ln -s english.sml british.sml
+
+ $(DBUILD)english.sml: $(CONFIG)
+ $(DBUILD)english.sml: english.0
+@@ -246,7 +246,7 @@
+
+ $(DBUILD)british.sml+: $(DBUILD)english.sml+
+ rm -f british.sml+
+- ln english.sml+ british.sml+
++ ln -s english.sml+ british.sml+
+
+ $(DBUILD)english.sml+: $(CONFIG)
+ $(DBUILD)english.sml+: english.0
+@@ -258,7 +258,7 @@
+
+ $(DBUILD)british.med: $(DBUILD)english.med
+ rm -f british.med
+- ln english.med british.med
++ ln -s english.med british.med
+
+ $(DBUILD)english.med: $(CONFIG)
+ $(DBUILD)english.med: english.0
+@@ -270,7 +270,7 @@
+
+ $(DBUILD)british.med+: $(DBUILD)english.med+
+ rm -f british.med+
+- ln english.med+ british.med+
++ ln -s english.med+ british.med+
+
+ $(DBUILD)english.med+: $(CONFIG)
+ $(DBUILD)english.med+: english.0
+@@ -282,7 +282,7 @@
+
+ $(DBUILD)british.lrg: $(DBUILD)english.lrg
+ rm -f british.lrg
+- ln english.lrg british.lrg
++ ln -s english.lrg british.lrg
+
+ $(DBUILD)english.lrg: $(CONFIG)
+ $(DBUILD)english.lrg: english.0
+@@ -294,7 +294,7 @@
+
+ $(DBUILD)british.lrg+: $(DBUILD)english.lrg+
+ rm -f british.lrg+
+- ln english.lrg+ british.lrg+
++ ln -s english.lrg+ british.lrg+
+
+ $(DBUILD)english.lrg+: $(CONFIG)
+ $(DBUILD)english.lrg+: english.0
+@@ -306,7 +306,7 @@
+
+ $(DBUILD)british.xlg: $(DBUILD)english.xlg
+ rm -f british.xlg
+- ln english.xlg british.xlg
++ ln -s english.xlg british.xlg
+
+ $(DBUILD)english.xlg: $(CONFIG)
+ $(DBUILD)english.xlg: english.0
+@@ -318,7 +318,7 @@
+
+ $(DBUILD)british.xlg+: $(DBUILD)english.xlg+
+ rm -f british.xlg+
+- ln english.xlg+ british.xlg+
++ ln -s english.xlg+ british.xlg+
+
+ $(DBUILD)english.xlg+: $(CONFIG)
+ $(DBUILD)english.xlg+: english.0
+--- languages/deutsch/Makefile
++++ languages/deutsch/Makefile Mon Mar 13 14:31:54 2000
+@@ -95,8 +95,31 @@
+ # If you change DICTOPTIONS in your local.h file, you will have to do
+ # "make dictclean" to clear out the old dictionary before you re-make.
+ #
+-DICTALWAYS = adjektive.txt worte.txt verben.txt
+-DICTOPTIONS = Use_LANGUAGES_from_config.X
++DICTALWAYS = worte.txt \
++ verben.txt \
++ adjektive.txt \
++ klein.txt \
++ imperat.txt \
++ abkuerz.txt \
++ vornamen.txt \
++ geographie.txt \
++ latein.txt \
++ oesterreich.txt \
++ informatik.txt \
++ infoabk.txt \
++ elektronik.txt \
++ alphabeta.txt \
++ roemisch.txt \
++ orgabk.txt \
++ marken.txt
++
++DICTXLARGE = worte2.txt \
++ zusammen.txt \
++ technik.txt \
++ compeng.txt \
++ geogra2.txt \
++ vornam2.txt \
++ namen.txt
+
+ #
+ # The following variables may be overridden by the superior Makefile,
+@@ -112,26 +135,34 @@
+ #
+ SHELLDEBUG = +vx
+
+-all: deutsch.hash
++all: deutschmed.hash deutschlxg.hash
+
+ install: all $(CONFIG)
+ @. $(CONFIG); \
+ set -x; \
+ [ -d $$LIBDIR ] || (mkdir $$LIBDIR; chmod 755 $$LIBDIR); \
+- cd $$LIBDIR; rm -f deutsch.aff deutsch.hash
++ cd $$LIBDIR; rm -f deutsch.aff deutschmed.hash deutschlxg.hash
+ @. $(CONFIG); \
+ set -x; \
+- cp deutsch.aff deutsch.hash $$LIBDIR
++ cp deutsch.aff deutschmed.hash deutschlxg.hash $$LIBDIR
+ @. $(CONFIG); \
+ set -x; \
+ cd $$LIBDIR; \
+- chmod 644 deutsch.aff deutsch.hash
++ chmod 644 deutsch.aff deutschmed.hash deutschlxg.hash; \
++ ln -sf deutschlxg.hash deutsch.hash
+
+-deutsch.hash: $(BUILDHASH) $(AFFIXES) deutsch.dict
+- rm -f deutsch.hash
+- $(BUILDHASH) deutsch.dict $(AFFIXES) deutsch.hash
++deutschmed.hash: $(BUILDHASH) $(AFFIXES) deutsch.med
++ rm -f deutschmed.hash
++ $(BUILDHASH) deutsch.med $(AFFIXES) deutschmed.hash
+
+-$(AFFIXES): deutsch.7bit $(FIX8BIT)
++deutschlxg.hash: $(BUILDHASH) $(AFFIXES) deutsch.lxg
++ rm -f deutschlxg.hash
++ $(BUILDHASH) deutsch.lxg $(AFFIXES) deutschlxg.hash
++
++$(AFFIXES): deutsch.aff-hk $(FIX8BIT)
++ $(FIX8BIT) -8 < deutsch.aff-hk > $(AFFIXES)
++
++deutsch-isp.aff: deutsch.7bit $(FIX8BIT)
+ $(FIX8BIT) -8 < deutsch.7bit > $(AFFIXES)
+
+ deutsch-alt.aff: deutsch-alt.7bit $(FIX8BIT)
+@@ -140,10 +171,17 @@
+ $(FIX8BIT): ../fix8bit.c
+ cd ..; $(MAKE) fix8bit
+
+-deutsch.dict: $(DICTALWAYS) $(DICTOPTIONS)
+- . $(CONFIG); \
+- eval sort -f -o deutsch.dict $$MAKE_SORTTMP \
+- $(DICTALWAYS) $(DICTOPTIONS)
++deutsch.med: $(DICTALWAYS) README $(AFFIXES)
++ @. $(CONFIG); \
++ set -x; \
++ eval sort -u -t/ +0f -1 +0 $$MAKE_SORTTMP -o deutsch.med \
++ $(DICTALWAYS)
++
++deutsch.lxg: $(DICTALWAYS) $(DICTXLARGE) README $(AFFIXES)
++ @. $(CONFIG); \
++ set -x; \
++ eval sort -u -t/ +0f -1 +0 $$MAKE_SORTTMP -o deutsch.lxg \
++ $(DICTALWAYS) $(DICTXLARGE)
+
+ #
+ # The following dependency can be executed when ispell is unpacked,
+@@ -179,7 +217,7 @@
+ # dictionary file.
+ #
+ dictclean:
+- rm -f deutsch.dict
++ rm -f deutsch.med deutsch.lxg
+
+ # required to be present in all other language Makefiles as
+ # well, even though it doesn't have to do anything in those
+--- languages/english/english.4l
++++ languages/english/english.4l Mon Mar 13 14:31:54 2000
+@@ -42,17 +42,17 @@
+ .\" Get rid of all old RCS log lines in preparation for the 3.1 release.
+ .\"
+ .\"
+-.TH ENGLISH 4
++.TH ENGLISH 5
+ .SH NAME
+-english \- flag format for English \fIokspell\fP dictionaries
++english \- flag format for English \fIispell\fP dictionaries
+ .SH DESCRIPTION
+ English dictionaries for
+-.IR okspell (1)
++.IR ispell (1)
+ supports 3 prefix and 14 suffix flags.
+ For a detailed description of how
+-.I okspell
++.I ispell
+ handles flags and capitalization, see
+-.IR okspell (4).
++.IR ispell (5).
+ This manual page only describes flags usable in dictionaries built
+ using the
+ .I english.aff
+@@ -71,7 +71,7 @@
+ .PP
+ In the following list, an asterisk indicates that a flag participates in
+ cross-product formation (see
+-.IR okspell (4)).
++.IR ispell (5)).
+ .PP
+ The meaning of the prefix flags is as follows:
+ .IP "*A"
+@@ -271,4 +271,4 @@
+ .fi
+ .RE
+ .SH "SEE ALSO"
+-okspell(1), okspell(4)
++ispell(1), ispell(5)
+--- languages/english/english.aff
++++ languages/english/english.aff Mon Mar 13 14:31:54 2000
+@@ -68,6 +68,7 @@
+ wordchars [a-z] [A-Z]
+
+ altstringtype "tex" "tex" ".tex" ".bib"
++altstringtype "latin1" "nroff" ".txt" ".tex"
+
+ # Here's a record of flags used, in case you want to add new ones.
+ # Right now, we fit within the minimal MASKBITS definition.
+--- languages/espanol/Makefile
++++ languages/espanol/Makefile Mon Mar 13 14:31:54 2000
+@@ -56,17 +56,18 @@
+ SHELL = /bin/sh
+ MAKE = make
+
++CONFIG = ../../config.sh
+ PATHADDER = ../..
+-BUILDHASH = buildhash
+-UNSQ = unsq
+-FIX8BIT = fix8bit
++BUILDHASH = ../../buildhash
++UNSQ = ../../unsq
++FIX8BIT = ../fix8bit
+
+ #
+ # The following variables make it easy to adapt this Makefile to
+ # numerous languages.
+ #
+ LANGUAGE = espanol
+-DICTIONARY = $(LANGUAGE).words
++DICTIONARY = $(LANGUAGE).dict
+ HASHFILE = $(LANGUAGE).hash
+
+ #
+@@ -76,6 +77,19 @@
+ AFFIXES = ./$(LANGUAGE).aff
+
+ all: $(HASHFILE)
++
++install: all $(CONFIG)
++ @. $(CONFIG); \
++ set -x; \
++ [ -d $$LIBDIR ] || (mkdir $$LIBDIR; chmod 755 $$LIBDIR); \
++ cd $$LIBDIR; rm -f $(LANGUAGE).aff $(HASHFILE)
++ @. $(CONFIG); \
++ set -x; \
++ cp $(LANGUAGE).aff $(HASHFILE) $$LIBDIR
++ @. $(CONFIG); \
++ set -x; \
++ cd $$LIBDIR; \
++ chmod 644 $(LANGUAGE).aff $(HASHFILE)
+
+ $(HASHFILE): $(AFFIXES) $(DICTIONARY)
+ rm -f $(HASHFILE)
+--- languages/portugues/Makefile
++++ languages/portugues/Makefile Mon Mar 13 14:31:54 2000
+@@ -50,10 +50,11 @@
+ SHELL = /bin/sh
+ MAKE = make
+
++CONFIG = ../../config.sh
+ PATHADDER = ../..
+-BUILDHASH = buildhash
+-UNSQ = unsq
+-FIX8BIT = fix8bit
++BUILDHASH = ../../buildhash
++UNSQ = ../../unsq
++FIX8BIT = ../fix8bit
+
+ #
+ # The following variables make it easy to adapt this Makefile to
+@@ -70,6 +71,19 @@
+ AFFIXES = ./$(LANGUAGE).aff
+
+ all: $(HASHFILE)
++
++install: all $(CONFIG)
++ @. $(CONFIG); \
++ set -x; \
++ [ -d $$LIBDIR ] || (mkdir $$LIBDIR; chmod 755 $$LIBDIR); \
++ cd $$LIBDIR; rm -f $(LANGUAGE).aff $(HASHFILE)
++ @. $(CONFIG); \
++ set -x; \
++ cp $(LANGUAGE).aff $(HASHFILE) $$LIBDIR
++ @. $(CONFIG); \
++ set -x; \
++ cd $$LIBDIR; \
++ chmod 644 $(LANGUAGE).aff $(HASHFILE)
+
+ $(HASHFILE): $(AFFIXES) $(DICTIONARY)
+ rm -f $(HASHFILE)
+--- suse/LIESMICH
++++ suse/LIESMICH Mon Mar 13 14:31:54 2000
+@@ -0,0 +1,107 @@
++
++ Kurzbeschreibung
++ ================
++
++Ispell ist ein schnelles bildschirmorientiertes Programm zur
++Überprüfung der Rechtschreibung. Als Vorbild diente das spell
++Programm vom ITS (auf Twenex Systemen auch ispell genannt).
++Es zeigt gefundene Fehler im textuellen Kontext an und schlägt mögliche
++Verbesserungen vor.
++
++Im Vergleich mit dem UNIX-Programm spell ist ispell schneller und
++wesentlich einfacher zu benutzen. Ispell kann neben der englischen
++auch andere Sprachen. Ispell hat eine lange Geschichte, und viele
++Entwickler haben daran gearbeitet. Mehr über die Entwicklungsgeschichte
++finden Sie der Manual-Seite von ispell.
++
++Die allgemeinste Gebrauchsweise ist `ispell filename'. In diesem Fall
++zeigt ispell jedes Wort, das nicht im Wörterbuch steht, in der
++obersten Zeile an und erlaubt es, dieses zu ändern. Stehen im
++Wörterbuch ähnlich geschriebene Wörter (solche, die sich nur durch
++einen Buchstaben, ein Paar von vertauschten Buchstaben oder
++Leerstellen unterscheiden), so werden diese in den darunterliegenden
++Zeilen angezeigt. Ebenso schlägt ispell Wörter vor, welche vom
++gleichen Stamm abgeleitet werden. Die Zeile, die das Wort enthält, und
++die vorhergehende Zeile werden am unteren Rand des Bildschirms
++dargestellt. Wenn möglich, wird das Wort invertiert dargestellt. Man
++kann nun das Wort vollständig ersetzen oder eines der vorgeschlagenen
++Wörter wählen.
++
++Die Default-Sprache ist Englisch, was durch die Environment-Variable
++DICTIONARY oder durch die Verwendung der Option `-d <Sprache>'
++geändert werden kann. Durch die Option `-T <Format>' kann auf
++verschiedene Umlautformate bzw. Umlautkodierungen umgeschaltet werden.
++So ermöglicht `-T latin1' bei der deutsche Sprache das Lesen deutscher
++Umlaute nach der ISO-Spezifikation 8859-1. Wenn nach `-T latin1' noch
++die Option `-t' gesetzt ist, so können mit ispell (Version 3.1.20)
++auch (La)TeX-Texte mit echten ISO-8859-1-Umlauten auf Rechtschreibung
++überprüft werden. Ohne die Option `-T latin1' achtet ispell auf die
++Endungen der zu überprüfenden Dateien. Welche Endungen und
++Kodierungen für die `-T'-Option möglich sind, können Sie aus den
++`.aff'-Dateien der gewählten Sprache unter /usr/lib/ispell/ erfahren.
++Alle Silbenregeln und die Umlautkodierungen werden in diesen
++sprachabhängigen `.aff'-Dateien festgelegt. So ist es beispielsweise
++bei Verwendung der deutschen Sprache nicht mehr nötig, ispell die
++Umlaute durch die Option `-w' bekannt zu geben.
++
++Wir haben neben den englischen auch andere Lexika zum Installieren
++
++Ispell verwendet diese Worttabellen nicht direkt, sondern über die
++größeren Hash-Dateien, die ein schnelleres Lesen ermöglichen. Wie Sie
++solche Hash-Dateien selbst erstellen können, erfahren Sie ebenfalls
++aus der Manual-Seite zu ispell.
++
++Auf Rechnern mit wenig Speicher kann es bei Verwendung der großen
++Hash-Dateien zu Performance-Problemen kommen. Wechseln Sie in diesem
++Fall in das Verzeichnis /usr/lib/ispell/ und löschen die
++symbolischen Links deutsch.hash bzw. english.hash um Sie danach mit
++
++ `ln -s deutschmed.hash deutsch.hash' und
++
++ `ln -s britishmed.hash english.hash' neu anzulegen.
++
++Die möglichen Hash-Dateien für diese ispell-Implementierung sind
++für Englisch:
++
++ americanmed.hash (klein)
++
++ americanxlg.hash (groß)
++
++ britishmed.hash (klein)
++
++ britishxlg.hash (groß)
++
++für Deutsch (Paket igerman):
++
++ deutschmed.hash (mittel)
++
++ deutschxlg.hash (groß)
++
++für Dänisch (Paket idanish):
++
++ dansk.hash (mittel)
++
++für Spanisch (Paket ispanish):
++
++ espanol.hash (groß)
++
++für Französisch (Paket ifrensh):
++
++ francais.hash (mittel)
++
++für Italienisch (Paket iitalian):
++
++ italian.hash (mittel)
++
++für Niederländisch (Paket idutch):
++
++ nederlands.hash (groß)
++
++für Schwedisch (Paket iswedish):
++
++ svenska.hash (klein)
++
++für Norwegisch (Paket inorsk):
++
++ norsk.hash (mittel)
++
+--- suse/README
++++ suse/README Mon Mar 13 14:31:54 2000
+@@ -0,0 +1,97 @@
++
++ Short description
++ =================
++
++Ispell is a fast screen-oriented spelling checker that shows you your
++errors in the context of the original file, and suggests possible
++corrections when it can figure them out. Compared to UNIX spell, it
++is faster and much easier to use. Ispell can also handle languages
++other than English. Ispell has a long history, and many people have
++contributed to the current version - some of the major contributors
++include R. E. Gorin, Pace Willisson, Walt Buehring, and Geoff
++Kuenning.
++
++The easiest usage is 'ispell filename'. In this case ispell presents you
++every word it couldn't find in the dictionary and asks you for a correction.
++Are there any similar words (only differ in letters, a pair of mixed up
++letters or even blanks) they are shown in the line beneath.
++Ispell even shows you a list of words that derive from the same stem. Both
++lines are posted on the lower edge of the monitor. If possible ispell
++inverts the word. Now you can totally replace or choose one of the suggested
++words.
++The default language is English which can be set using the environment
++variable DICTIONARY or the startup option '-d <languag>'. Using the
++'-T <format>' switch one can use special 'umlaut' modes' or turn them off.
++'-T latin1' e.g. enables you to read German umlauts according to
++iso 8859-1. If you set the '-t' flag you can (works with 3.1.20) check
++(La)TeX texts with real ISO-8859-1 umlauts for misspelling. Without the
++'-T latin1' the correct extension of the files are compelling. The
++possible extensions and codes for the '-T' flag are to be found in the
++appropriate file which resides under '<language>.aff'. All syllable rules
++and codings are put into these '.aff' files therefore it is not longer
++necessary to invoke ispell with the '-w' switch for German umlauts.
++
++Besides the English dictionaries there are German dictionaries under
++/usr/lib/ispell. The German word tables have been retrieved from the
++dicts-package (hk-deutsch).
++
++Ispell doesn't 'directly' use those tables but the larger hash tables which
++enable you a better and faster reading. How to create hash tables is
++explained also in those above-mentioned README files or ask the man page
++of ispell for help.
++
++On computer with low RAM, problems can occur with those large hash tables.
++If this is your problem just change directory to /usr/lib/ispell and delete
++the symbolic links deutsch.hash or english.hash and recreate them
++using the following syntax:
++
++ `ln -s deutschmed.hash deutsch.hash'
++
++ `ln -s britishmed.hash english.hash'
++
++The following hash tables are used with this version of ispell:
++for English:
++
++ americanmed.hash (small)
++
++ americanxlg.hash (big)
++
++ britishmed.hash (small)
++
++ britishxlg.hash (big)
++
++for German (package igerman):
++
++ deutschmed.hash (middle)
++
++ deutschxlg.hash (big)
++
++for Danish (package idanish):
++
++ dansk.hash (middle)
++
++for Spanish (package ispanish):
++
++ espanol.hash (big)
++
++for French (package ifrensh):
++
++ francais.hash (middle)
++
++for Italian (package iitalian):
++
++ italian.hash (middle)
++
++for Dutch (package idutch):
++
++ nederlands.hash (big)
++
++for Swedish (package iswedish):
++
++ svenska.hash (small)
++
++for Norwegian (package inorsk):
++
++ norsk.hash (mittel)
++
++
+--- suse/ispell-emacs-menu.el
++++ suse/ispell-emacs-menu.el Mon Mar 13 14:31:54 2000
+@@ -0,0 +1,43 @@
++;;; ispell-emacs-menu.el --- Produce the (x)emacs (i)spell menu on the fly
++
++;; Copyright (c) 1999 S.u.S.E. Gmbh Fuerth, Germany. All rights reserved.
++;; Author: Werner Fink, <werner@suse.de> 1999/03/04
++
++;;; Note:
++
++;; Do *not* byte-compile this file because its loaded by both emacs and xemacs
++
++;;; The code:
++
++(defvar ispell-library-path "/usr/lib/ispell/")
++
++(defun append-ispell-dict-alist (hash alist)
++ (if (file-exists-p (concat ispell-library-path hash))
++ (setq ispell-dictionary-alist
++ (append ispell-dictionary-alist (list alist)))))
++
++(if (string-match "XEmacs\\|Lucid" emacs-version)
++ (progn ;; The name of the game: xemacsen have their own menu
++ ;; and an other function for define-coding-system-alias
++ (copy-coding-system 'iso-8859-1 'iso-latin-1)
++ (copy-coding-system 'iso-8859-2 'iso-latin-2)
++ (copy-coding-system 'iso-8859-3 'iso-latin-3)
++ (copy-coding-system 'iso-8859-4 'iso-latin-4)
++ (copy-coding-system 'iso-8859-5 'iso-latin-5)
++ (copy-coding-system 'iso-8859-7 'iso-latin-7)
++ (copy-coding-system 'iso-8859-8 'iso-latin-8)
++ (copy-coding-system 'iso-8859-9 'iso-latin-9)
++ (setq ispell-menu-xemacs nil))
++ (setq ispell-menu-map nil))
++
++(setq ispell-dictionary-alist '((nil "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil nil)))
++
++(let ((dir (directory-files (concat ispell-library-path "emacs/") t ".*\\.el$")))
++ (while dir (load (car dir) nil t t) (setq dir (cdr dir))))
++
++;;
++;; Now load the library to recreate the Spell menu in the Edit pulldown
++;;
++(load "ispell" nil t)
++
++;;; ispell-emacs-menu.el end here
+--- suse/emacs/american.el
++++ suse/emacs/american.el Mon Mar 13 14:31:54 2000
+@@ -0,0 +1,12 @@
++;; Used by ispell-emacs-menu.el
++;; Do *not* byte-compile this file because its loaded by both emacs and xemacs
++
++(append-ispell-dict-alist "english.hash"
++ '("english" "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "english") nil nil))
++
++(append-ispell-dict-alist "american.hash"
++ '("american" "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "american") nil nil))
++
++(append-ispell-dict-alist "british.hash"
++ '("british" "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "british") nil nil))
++
+--- suse/emacs/british.el
++++ suse/emacs/british.el Mon Mar 13 14:31:54 2000
+@@ -0,0 +1,12 @@
++;; Used by ispell-emacs-menu.el
++;; Do *not* byte-compile this file because its loaded by both emacs and xemacs
++
++(append-ispell-dict-alist "english.hash"
++ '("english" "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "english") nil nil))
++
++(append-ispell-dict-alist "british.hash"
++ '("british" "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "british") nil nil))
++
++(append-ispell-dict-alist "american.hash"
++ '("american" "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B" "-d" "american") nil nil))
++