* David Coe <[EMAIL PROTECTED]> [2006-03-09 00:15]:
> I have no objection, so go for it.  Sorry I'm too busy to do it
> myself.

Thanks, I've uploaded with the following patch:



diff -u ispell-3.1.20.0/debian/changelog ispell-3.1.20.0/debian/changelog
--- ispell-3.1.20.0/debian/changelog
+++ ispell-3.1.20.0/debian/changelog
@@ -1,3 +1,11 @@
+ispell (3.1.20.0-4.3) unstable; urgency=low
+
+  * NMU with the permission of the maintainer.
+  * Apply a patch from upstream so words in a personal dictionary don't
+    get reordered. (Closes: #305750).
+
+ -- Martin Michlmayr <[EMAIL PROTECTED]>  Thu, 09 Mar 2006 14:51:10 +0000
+
 ispell (3.1.20.0-4.2) unstable; urgency=high
 
   * Non-Maintainer Upload.
only in patch2:
unchanged:
--- ispell-3.1.20.0.orig/debian/reorder_word_fix.dpatch
+++ ispell-3.1.20.0/debian/reorder_word_fix.dpatch
@@ -0,0 +1,55 @@
+From: Geoff Kuenning <[EMAIL PROTECTED]>
+Subject: Re: ispell reorders words in personal dictionary without good reason
+Date: 03 Nov 2005 14:14:15 -0800
+
+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!)
+
+Index: makedent.c
+
+RCS file: RCS/makedent.c,v
+retrieving revision 1.59
+diff -u -r1.59 makedent.c
+--- makedent.c 2005/04/20 23:16:32     1.59
++++ makedent.c 2005/11/03 22:11:35
+@@ -447,9 +447,10 @@
+     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 @@
+           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)
+
+-- 
+    Geoff Kuenning   [EMAIL PROTECTED]   http://www.cs.hmc.edu/~geoff/
+
+The P in "PDF" is a lie.
+



-- 
Martin Michlmayr
http://www.cyrius.com/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to