Merge pull request #64285 from tadeokondrak/ispell/update

ispell: 3.3.02 -> 3.4.00
This commit is contained in:
Aaron Andersen 2019-09-01 08:52:32 -04:00 committed by GitHub
commit 72646582a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 56 deletions

View File

@ -1,14 +1,17 @@
{ stdenv, fetchurl, bison, ncurses }:
stdenv.mkDerivation rec {
name = "ispell-3.3.02";
pname = "ispell";
version = "3.4.00";
src = fetchurl {
url = "http://fmg-www.cs.ucla.edu/geoff/tars/${name}.tar.gz";
url = "http://fmg-www.cs.ucla.edu/geoff/tars/${pname}-${version}.tar.gz";
sha256 = "1d7c2fqrdjckp91ajpkn5nnmpci2qrxqn8b6cyl0zn1afb9amxbz";
};
buildInputs = [ bison ncurses ];
patches = [
./patches/0005-Do-not-reorder-words.patch
./patches/0007-Use-termios.patch
./patches/0008-Tex-backslash.patch
./patches/0009-Fix-FTBFS-on-glibc.patch
@ -21,6 +24,7 @@ stdenv.mkDerivation rec {
./patches/0025-Languages.patch
./patches/0030-Display-whole-multibyte-character.patch
];
postPatch = ''
cat >> local.h <<EOF
${stdenv.lib.optionalString (!stdenv.isDarwin) "#define USG"}
@ -37,11 +41,18 @@ stdenv.mkDerivation rec {
#define MINIMENU
#define HAS_RENAME
EOF
'';
preBuild = ''
for dir in $out/share/emacs/site-lisp $out/share/info $out/share/man/man1 $out/share/man/man4 $out/bin $out/lib; do
mkdir -p $dir
done
'';
meta = with stdenv.lib; {
description = "An interactive spell-checking program for Unix";
homepage = "https://www.cs.hmc.edu/~geoff/ispell.html";
license = licenses.free;
platforms = platforms.unix;
};
}

View File

@ -1,52 +0,0 @@
From: Geoff Kuenning <geoff@cs.hmc.edu>
Date: Thu, 3 Nov 2005 14:14:15 -0800
Subject: 0005 Do not reorder words
ispell reorders words in personal dictionary without good reason.
The correct approach is to build the internal data structure with variant
spellings stored in the same order as they appear in the personal dictionary.
Fortunately, this is easy, though the patch is to a different file. This one
has been tested (That's what I get for trying to rush out a fix before a
meeting!).
---
makedent.c | 18 +++++++++++-------
1 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/makedent.c b/makedent.c
index 0453d11..d121345 100644
--- a/makedent.c
+++ b/makedent.c
@@ -447,9 +447,10 @@ int combinecaps (hdrp, newp)
if (retval == 0)
{
/*
- ** Couldn't combine the two entries. Add a new variant. For
- ** ease, we'll stick it right behind the header, rather than
- ** at the end of the list.
+ ** Couldn't combine the two entries. Add a new variant. We
+ ** stick it at the end of the variant list because it's
+ ** important to maintain order; this causes the personal
+ ** dictionary to have a stable ordering.
*/
forcevheader (hdrp, oldp, newp);
tdent = (struct dent *) mymalloc (sizeof (struct dent));
@@ -460,10 +461,13 @@ int combinecaps (hdrp, newp)
return -1;
}
*tdent = *newp;
- tdent->next = hdrp->next;
- hdrp->next = tdent;
- tdent->flagfield |= (hdrp->flagfield & MOREVARIANTS);
- hdrp->flagfield |= MOREVARIANTS;
+ for (oldp = hdrp;
+ oldp->next != NULL && oldp->flagfield & MOREVARIANTS;
+ oldp = oldp->next)
+ ;
+ tdent->next = oldp->next;
+ oldp->next = tdent;
+ oldp->flagfield |= MOREVARIANTS;
combineaffixes (hdrp, newp);
hdrp->flagfield |= (newp->flagfield & KEEP);
if (captype (newp->flagfield) == FOLLOWCASE)
--