--- myspell-3.0+pre3.1.orig/debian/changelog +++ myspell-3.0+pre3.1/debian/changelog @@ -0,0 +1,216 @@ +myspell (1:3.0+pre3.1-24.2) unstable; urgency=medium + + * Non-maintainer upload. + * Move to debhelper compat level 9. (Closes: #817592) + + -- Chris Lamb Sun, 25 Sep 2016 17:11:41 +0200 + +myspell (1:3.0+pre3.1-24.1) unstable; urgency=medium + + * Non-maintainer upload to fix FTBFS. + * Based on patches provided by gregor herrmann and + Agustin Martin . + * Fix typo and encoding in debian/patches/03_add_ispellaff2myspell.dpatch + (Closes: #724085). + + -- Margarita Manterola Fri, 25 Apr 2014 18:45:29 +0200 + +myspell (1:3.0+pre3.1-24) unstable; urgency=low + + * remove historical hardocing of sparc-linux-gnu-g{cc,++} which breaks + sparc64, thanks Aurlien Jarno (closes: #591718) + * s/Spellchecker/spell-checker/ (closes: #459784) + + -- Rene Engelhard Thu, 05 Aug 2010 20:01:21 -0400 + +myspell (1:3.0+pre3.1-23) unstable; urgency=low + + * fix 03_add_ispellaff2myspell.dpatch to cope with apparently changed + dpatch behaviour... (closes: #560638) + + -- Rene Engelhard Fri, 11 Dec 2009 19:18:45 +0100 + +myspell (1:3.0+pre3.1-22) unstable; urgency=high + + * 10_fix_insecure_tmp.dpatch: Move utils/i2myspell tmpfile + creation out of the pipe it was breaking. (Closes: #499271) + Thanks Agustin Martin Domingo for the patch + + -- Rene Engelhard Thu, 18 Sep 2008 16:15:19 +0200 + +myspell (1:3.0+pre3.1-21) unstable; urgency=high + + * fix insecure temp file usage, thanks Thijs Kinkhorst (closes: #496392); + update 09_numbers.dpatch + * lintian fixes + + -- Rene Engelhard Wed, 27 Aug 2008 05:46:55 +0200 + +myspell (1:3.0+pre3.1-20) unstable; urgency=low + + * also stop building libmyspell3c2a + * build myspell-tools with myspells (un)much and the perl scripts + for people who either cannot use hunspells (un)munch or need either + /usr/bin/i2myspell or /usr/bin/is2my-spell.pl. ispellaff2myspell + is in both and remains here, too + * upload to unstable + + -- Rene Engelhard Mon, 21 May 2007 13:34:40 +0200 + +myspell (1:3.0+pre3.1-19) experimental; urgency=low + + * stop building libmyspell-dev. Utilities here can be found in + hunspell-tools now. libmyspell is gone, please use the compatible + libhunspell. + * temporarily move to oldlibs until removed + + -- Rene Engelhard Wed, 28 Mar 2007 15:02:19 +0200 + +myspell (1:3.0+pre3.1-18) unstable; urgency=low + + * fix tail usage in i2myspell (closes: #400502) + + -- Rene Engelhard Thu, 7 Dec 2006 13:24:36 +0100 + +myspell (1:3.0+pre3.1-17) unstable; urgency=high + + * reupload to rebuild against libgcc4 on hppa + + -- Rene Engelhard Tue, 7 Nov 2006 11:32:24 +0100 + +myspell (1:3.0+pre3.1-16) unstable; urgency=low + + * fix static lib build to not try to build a .so also, fails on alpha + + -- Rene Engelhard Tue, 9 Aug 2005 20:31:02 +0200 + +myspell (1:3.0+pre3.1-15) unstable; urgency=low + + * add proper static lib + + -- Rene Engelhard Mon, 8 Aug 2005 04:55:27 +0200 + +myspell (1:3.0+pre3.1-14) unstable; urgency=low + + * REALLY use sparc-linux-gnu-g++ instead of sparc-linux-g++.... + + -- Rene Engelhard Sat, 9 Jul 2005 22:30:36 +0300 + +myspell (1:3.0+pre3.1-13) unstable; urgency=low + + * use sparc-linux-gnu-g++ instead of sparc-linux-g++... (closes: #317498) + + -- Rene Engelhard Sat, 9 Jul 2005 13:48:05 +0200 + +myspell (1:3.0+pre3.1-12) unstable; urgency=low + + * C++ ABI transition + - rename libmyspell3 to libmyspell3c2 and conflict/replace libmyspell3 + - change .install and .shlibs files accordingly + * add new version of ispellaff2myspell, thanks Agustin + + -- Rene Engelhard Tue, 5 Jul 2005 19:35:42 +0200 + +myspell (1:3.0+pre3.1-11) unstable; urgency=low + + * update ispellaff2myspell + * add patch for kFreeBSD support in the Makefile, thanks Robert Millan + (closes: #298411) + * Recommends: myspell-en-us | myspell-dictionary (closes: #295632) + + -- Rene Engelhard Wed, 9 Mar 2005 00:47:02 +0100 + +myspell (1:3.0+pre3.1-10) unstable; urgency=low + + * affix.readme is compressed by dh_compress, change manpage + to reflect that... [RE] + + -- Rene Engelhard Tue, 21 Sep 2004 13:19:36 +0200 + +myspell (1:3.0+pre3.1-9) unstable; urgency=low + + * add affix.readme documentation [RE] + * add new version of ispellaff2myspell with SEE ALSO pointing + to our documentation in /usr/share/doc (closes: #265487) [RE] + * install other/info_on_{german,swedish}_compound_words [RE] + + -- Rene Engelhard Sat, 18 Sep 2004 15:20:13 +0200 + +myspell (1:3.0+pre3.1-8) unstable; urgency=medium + + * add memleak fixes from upstream Issue 30486 + + -- Rene Engelhard Mon, 9 Aug 2004 23:46:29 +0200 + +myspell (1:3.0+pre3.1-7) unstable; urgency=low + + * add updated ispellaff2myspell from Agustin [RE] + * remove unneeded ;'s to fix build with g++ 3.4, thanks + Andreas Jochens (closes: #258477) + + -- Rene Engelhard Wed, 14 Jul 2004 16:29:07 +0200 + +myspell (1:3.0+pre3.1-6) unstable; urgency=low + + * s/two little// in libmyspell-dev's description [RE] + * add GNU (Hurd) support [RE] + * add patch to support KOI8-U, thanks Eugeniy Meshcheryakov + (closes: #254052) [RE] + + -- Rene Engelhard Thu, 17 Jun 2004 22:33:20 +0200 + +myspell (1:3.0+pre3.1-5) unstable; urgency=low + + * add ispellaff2myspell script; thanks Agustin Martin Domingo + + -- Rene Engelhard Thu, 15 Jan 2004 05:31:05 +0100 + +myspell (1:3.0+pre3.1-4) unstable; urgency=low + + * New patch, 02_mystrdup, to replace usage of 'strdup' + with 'mystrdup', needed for Woody backport + + -- Chris Halls Mon, 19 Jan 2004 17:27:33 +0000 + +myspell (1:3.0+pre3.1-3) unstable; urgency=low + + * The "Not a good day, really" release. + * move /myspell into Cflags:, not directly into ${includedir} + in myspell.pc + + -- Rene Engelhard Thu, 8 Jan 2004 17:22:04 +0100 + +myspell (1:3.0+pre3.1-2) unstable; urgency=low + + * fix pkg-config include path *sigh* + + -- Rene Engelhard Thu, 8 Jan 2004 16:24:25 +0100 + +myspell (1:3.0+pre3.1-1) unstable; urgency=low + + * New upstream version again, now with shared library + -> new package: libmyspell3 + * add pkg-config info file + * add ${shlibs:Depends} and ${perl:Depends} to libmyspell-dev's Dependsi + + -- Rene Engelhard Thu, 8 Jan 2004 05:07:07 +0100 + +myspell (1:3.0-1) unstable; urgency=low + + * New upstream release - new source pkg name + * move includes to /usr/include/myspell + + -- Rene Engelhard Sat, 27 Dec 2003 23:51:07 +0100 + +myspell2 (20030611-2) unstable; urgency=low + + * move to use a patch system (dpatch), easier for CVS + + -- Rene Engelhard Wed, 3 Dec 2003 22:15:44 +0100 + +myspell2 (20030611-1) unstable; urgency=low + + * Initial Release. + + -- Rene Engelhard Sat, 4 Oct 2003 00:23:08 +0200 + --- myspell-3.0+pre3.1.orig/debian/compat +++ myspell-3.0+pre3.1/debian/compat @@ -0,0 +1 @@ +9 --- myspell-3.0+pre3.1.orig/debian/control +++ myspell-3.0+pre3.1/debian/control @@ -0,0 +1,20 @@ +Source: myspell +Section: oldlibs +Priority: extra +Maintainer: Debian OpenOffice Team +Uploaders: Rene Engelhard , Chris Halls +Build-Depends: debhelper (>= 9), dpatch +Standards-Version: 3.6.1 + +Package: myspell-tools +Architecture: any +Depends: ${shlibs:Depends} +Replaces: libmyspell-dev +Conflicts: hunspell-tools +Description: tools for myspell + MySpell is a spell-checker as (and derived from) ispell. + . + This package contains a the munch/unmunch tools of hunspell and + ispellaff2myspell for converting ispell affix files for myspell/hunspell + format. + --- myspell-3.0+pre3.1.orig/debian/copyright +++ myspell-3.0+pre3.1/debian/copyright @@ -0,0 +1,113 @@ +This package was debianized by Rene Engelhard on +Sat, 4 Oct 2003 00:23:08 +0200. + +It was downloaded from http://lingucomponent.openoffice.org + +Upstream Author: Kevin B. Hendricks + +Copyright: + +/* + * Copyright 2002 Kevin B. Hendricks, Stratford, Ontario, Canada + * And Contributors. 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. + * + * THIS SOFTWARE IS PROVIDED BY KEVIN B. HENDRICKS 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 + * KEVIN B. HENDRICKS 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. + * + * + * NOTE: A special thanks and credit goes to Geoff Kuenning + * the creator of ispell. MySpell's affix algorithms were + * based on those of ispell which should be noted is + * copyright Geoff Kuenning et.al. and now available + * under a BSD style license. For more information on ispell + * and affix compression in general, please see: + * http://www.cs.ucla.edu/ficus-members/geoff/ispell.html + * (the home page for ispell) + * + * An almost complete rewrite of MySpell for use by + * the Mozilla project has been developed by David Einstein + * (Deinst@world.std.com). David and I are now + * working on parallel development tracks to help + * our respective projects (Mozilla and OpenOffice.org + * and we will maintain full affix file and dictionary + * file compatibility and work on merging our versions + * of MySpell back into a single tree. David has been + * a significant help in improving MySpell. + * + * Special thanks also go to La'szlo' Ne'meth + * who is the author of the + * Hungarian dictionary and who developed and contributed + * the code to support compound words in MySpell + * and fixed numerous problems with the encoding + * case conversion tables. + * + */ + +----------------------------------------------------------------- + +i2myspell: + +# i2myspell - Ispell->MySpell affix table and dictionary converter +# +# Version 1.4 (2002.3.8.) +# +# (c) Copyright 2002 László Németh, All Rights Reserved +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the BSD License (see http://www.opensource.org) + +----------------------------------------------------------------- + +is2my-spell.pl: + +# +# LEGAL PART +# ---------- +# +# Written by François Désarménien +# +# This file is PUBLIC DOMAIN and is provided "as is" without +# any guaranty of any kind. It sole purpose is to be eventually +# usefull to someone. +# +# END OF LEGAL PART + +----------------------------------------------------------------- +# $Id: copyright,v 1.2 2004/01/19 19:32:58 rene Exp $ +# +# (C) 2002 Agustin Martin Domingo +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +On Debian systems, the full text of the GPL can be found in +/usr/share/common-licenses/GPL + --- myspell-3.0+pre3.1.orig/debian/docs +++ myspell-3.0+pre3.1/debian/docs @@ -0,0 +1,6 @@ +README +README.compoundwords +README.munch +README.replacetable +affix.readme +other/* --- myspell-3.0+pre3.1.orig/debian/libmyspell-dev.dirs +++ myspell-3.0+pre3.1/debian/libmyspell-dev.dirs @@ -0,0 +1,2 @@ +usr/lib/pkgconfig +usr/share/man/man1 --- myspell-3.0+pre3.1.orig/debian/libmyspell-dev.install +++ myspell-3.0+pre3.1/debian/libmyspell-dev.install @@ -0,0 +1,3 @@ +usr/lib/*.a +usr/lib/libmyspell.so +usr/include/myspell --- myspell-3.0+pre3.1.orig/debian/libmyspell-dev.links +++ myspell-3.0+pre3.1/debian/libmyspell-dev.links @@ -0,0 +1,3 @@ +usr/lib/libmyspell-3.1_pic.a usr/lib/libmyspell_pic.a +usr/lib/libmyspell-3.1.a usr/lib/libmyspell.a + --- myspell-3.0+pre3.1.orig/debian/libmyspell3c2.install +++ myspell-3.0+pre3.1/debian/libmyspell3c2.install @@ -0,0 +1 @@ +usr/lib/libmyspell.so.* --- myspell-3.0+pre3.1.orig/debian/libmyspell3c2.shlibs +++ myspell-3.0+pre3.1/debian/libmyspell3c2.shlibs @@ -0,0 +1 @@ +libmyspell 3 libmyspell3c2 --- myspell-3.0+pre3.1.orig/debian/myspell-tools.install +++ myspell-3.0+pre3.1/debian/myspell-tools.install @@ -0,0 +1,2 @@ +usr/bin +../../utils/i* usr/bin --- myspell-3.0+pre3.1.orig/debian/myspell.pc.in +++ myspell-3.0+pre3.1/debian/myspell.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: myspell +Description: MySpell spellchecking library +Version: @version@ +Libs: -L${libdir} -lmyspell +Cflags: -I${includedir}/myspell --- myspell-3.0+pre3.1.orig/debian/patches/00list +++ myspell-3.0+pre3.1/debian/patches/00list @@ -0,0 +1,11 @@ +01_perl_path +02_mystrdup +03_add_ispellaff2myspell +04_hurd_kfreebsd +05_add_KOI8-U +06_gcc_34 +07_memleak_fixes +08_add_affix_readme +10_fix_insecure_tmp +09_numbers + --- myspell-3.0+pre3.1.orig/debian/patches/01_perl_path.dpatch +++ myspell-3.0+pre3.1/debian/patches/01_perl_path.dpatch @@ -0,0 +1,34 @@ +#!/bin/sh -e +## 01_perl_path.dpatch by Rene Engelhard +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +if [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/rene/Debian/Pakete/OpenOffice.org/MySpell/myspell2-20030611/utils/is2my-spell.pl myspell2-20030611/utils/is2my-spell.pl +--- /home/rene/Debian/Pakete/OpenOffice.org/MySpell/myspell2-20030611/utils/is2my-spell.pl 2003-12-03 22:19:26.000000000 +0100 ++++ myspell2-20030611/utils/is2my-spell.pl 2003-12-03 22:20:23.000000000 +0100 +@@ -1,4 +1,4 @@ +-#/usr/local/bin/perl ++#!/usr/bin/perl + + # + # LEGAL PART --- myspell-3.0+pre3.1.orig/debian/patches/02_mystrdup.dpatch +++ myspell-3.0+pre3.1/debian/patches/02_mystrdup.dpatch @@ -0,0 +1,46 @@ +#!/bin/sh -e +## 02_string_h.dpatch by Chris Halls +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Replace single usage of 'strdup' with 'mystrdup' used elsewhere + +if [ $# -lt 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/challs/oo1/src/myspell-3.0+pre3.1/suggestmgr.cxx myspell-3.0+pre3.1/suggestmgr.cxx +--- /home/challs/oo1/src/myspell-3.0+pre3.1/suggestmgr.cxx 2004-01-19 18:30:54.000000000 +0100 ++++ myspell-3.0+pre3.1/suggestmgr.cxx 2004-01-19 18:31:13.000000000 +0100 +@@ -118,7 +118,7 @@ + for (int j = 0; j < nummap; j++) { + if (strchr(maptable[j].set,c) != 0) { + in_map = 1; +- char * newword = strdup(word); ++ char * newword = mystrdup(word); + for (int k = 0; k < maptable[j].len; k++) { + *(newword + i) = *(maptable[j].set + k); + ns = map_related(newword, (i+1), wlst, ns, maptable, nummap); +@@ -398,7 +398,7 @@ + int thresh = 0; + char * mw = NULL; + for (int sp = 1; sp < 4; sp++) { +- mw = strdup(word); ++ mw = mystrdup(word); + for (int k=sp; k < n; k+=4) *(mw + k) = '*'; + thresh = thresh + ngram(n, word, mw, NGRAM_ANY_MISMATCH); + free(mw); --- myspell-3.0+pre3.1.orig/debian/patches/03_add_ispellaff2myspell.dpatch +++ myspell-3.0+pre3.1/debian/patches/03_add_ispellaff2myspell.dpatch @@ -0,0 +1,502 @@ +#!/bin/sh -e +## 03_add_ispellaff2myspell.dpatch by Rene Engelhard +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: add Agustin Martin Domingo's ispellaff2myspell script + +if [ $# -lt 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch}" + +case "$1" in + -patch) patch $patch_opts -p1 < $0;; + -unpatch) patch $patch_opts -p1 -R < $0;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad '--exclude=CVS' '--exclude=.svn' '--exclude=.git' '--exclude=.arch' '--exclude=.hg' '--exclude=_darcs' '--exclude=.bzr' myspell-3.0+pre3.1~/utils/ispellaff2myspell myspell-3.0+pre3.1/utils/ispellaff2myspell +--- myspell-3.0+pre3.1~/utils/ispellaff2myspell 1970-01-01 01:00:00.000000000 +0100 ++++ myspell-3.0+pre3.1/utils/ispellaff2myspell 2014-04-25 18:59:59.658771225 +0200 +@@ -0,0 +1,473 @@ ++#!/usr/bin/perl -w ++# -*- coding: iso-8859-1 -*- ++# ++# (C) 2002-2005 Agustin Martin Domingo ++# ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ++ ++ ++sub usage { ++ print "ispellaff2myspell: A program to convert ispell affix tables to myspell format ++(C) 2002-2005 Agustin Martin Domingo License: GPL ++ ++Usage: ++ ispellaff2myspell [options] ++ ++ Options: ++ --affixfile=s Affix file ++ --bylocale Use current locale setup for upper/lowercase ++ conversion ++ --charset=s Use specified charset for upper/lowercase ++ conversion (defaults to latin1) ++ --debug Print debugging info ++ --extraflags Allow some non alphabetic flags ++ --lowercase=s Lowercase string ++ --myheader=s Header file ++ --printcomments Print commented lines in output ++ --replacements=s Replacements file ++ --split=i Split flags with more that i entries ++ --uppercase=s Uppercase string ++ --wordlist=s Still unused ++ ++ Currently allowed valued for charset are: latin1, latin2, latin3 ++ ++This script does not create the dict file. Something like ++ ++( echo `cat mydict.words+ | wc -l`; cat mydict.words+ ) > mydict.dict ++ ++should do the work, with mydict.words+ being the ispell munched wordlist ++ ++"; ++ exit; ++} ++ ++sub debugprint { ++ if ( $debug ){ ++ print STDERR "@_"; ++ } ++} ++ ++sub shipoutflag{ ++ my $flag_entries=scalar @flag_array; ++ ++ if ( $flag_entries != 0 ){ ++ if ( $split ){ ++ while ( @flag_array ){ ++ my @flag_subarray=splice(@flag_array,0,$split); ++ my $subflag_entries=scalar @flag_subarray; ++ if ( scalar @flag_array ){ ++ print "$myaffix $flagname $flagcombine $subflag_entries S\n"; ++ } else { ++ print "$myaffix $flagname $flagcombine $subflag_entries\n"; ++ } ++ print join("\n",@flag_subarray); ++ print "\n\n"; ++ } ++ } else { ++ print "$myaffix $flagname $flagcombine $flag_entries\n"; ++ print join("\n",@flag_array); ++ print "\n\n"; ++ } ++ } ++ @flag_array=(); ++ $flagname=''; ++ $flagcombine=''; ++} ++ ++sub mylc{ ++ my $inputstring=shift; ++ my $outputstring; ++ ++ if ( $bylocale ){ ++ { ++ use locale; ++ $outputstring = lc $inputstring; ++ } ++ } else { ++ if ( $charset eq "latin0" ){ ++ $lowercase='a-zàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ½¨¸'; ++ $uppercase='A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¼¦´'; ++ } elsif ( $charset eq "latin1" ){ ++ $lowercase='a-zàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ'; ++ $uppercase='A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ'; ++ } elsif ( $charset eq "latin2" ){ ++ $lowercase='a-z±³µ¶¹º»¼¾¿àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ'; ++ $uppercase='A-Z¡£¥¦©ª«¬®¯ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ'; ++ } elsif ( $charset eq "latin3" ){ ++ $lowercase='a-z±¶¹º»¼¿àáâäåæçèéêëìíîïñòóôõö÷øùúûüýþ'; ++ $uppercase='A-Z¡¦©ª«¬¯ÀÁÂÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖרÙÚÛÜÝÞ'; ++# } elsif ( $charset eq "other_charset" ){ ++# die "latin2 still unimplemented"; ++ } else { ++ if ( not $lowercase and not $uppercase ){ ++ die "Unsupported charset [$charset] ++ ++use explicitly --lowercase=string and --uppercase=string ++options. Remember that both string must match exactly, but ++case changed. ++"; ++ } ++ } ++ $outputstring=$inputstring; ++ eval "\$outputstring=~tr/$uppercase/$lowercase/"; ++ } ++ return $outputstring; ++} ++ ++sub validate_flag (){ ++ my $flag = shift; ++ if ($flag=~m/[a-zA-Z]+/){ ++ return $flag; ++ } elsif ( $hasextraflags ){ ++ foreach ( keys %theextraflags ){ ++ if ($flag =~ m/^$_/){ ++ $flag =~ s/^$_//; ++ return $flag; ++ } ++ } ++ } ++ return ''; ++} ++ ++sub process_replacements{ ++ my $file = shift; ++ my @replaces = (); ++ ++ open (REPLACE,"< $file") || ++ die "Error: Could not open replacements file: $file\n"; ++ while (){ ++ next unless m/^REP[\s\t]*\D.*/; ++ next if m/^REP\s+[0-9]+/; ++ s/\015\012//; ++ s/\015//; ++ chomp; ++ push @replaces, $_; ++ } ++ close REPLACE; ++ my $number = scalar @replaces; ++ print "REP $number\n"; ++ foreach ( @replaces ){ ++ print $_ . "\n"; ++ } ++} ++ ++# ----------------------------------------------------------- ++# Now the progran start, after the functions are defined ++# ----------------------------------------------------------- ++ ++use Getopt::Long; ++ ++# Initializing option values ++$affixfile = ''; ++$bylocale = ''; ++$charset = ''; ++$debug = ''; ++$lowercase = ''; ++$myheader = ''; ++$printcomments = ''; ++$replacements = ''; ++$split = ''; ++$uppercase = ''; ++$wordlist = ''; ++$hasextraflags = ''; ++@flag_array = (); ++%theextraflags = (); ++# Initializing root values ++$rootremove = "0"; ++$rootname = ''; ++$addtoroot = ''; ++$comment = ''; ++# Initializing flag values ++$flagname = ''; ++$flagcombine = ''; ++$inflags = ''; ++ ++GetOptions ('affixfile=s' => \$affixfile, ++ 'bylocale' => \$bylocale, ++ 'charset=s' => \$charset, ++ 'debug' => \$debug, ++ 'extraflags:s' => sub { ++ $hasextraflags = 1; ++ shift; ++ $theflag = shift; ++ $theextraflags{$theflag}++ if $theflag}, ++ 'lowercase=s' => \$lowercase, ++ 'myheader=s' => \$myheader, ++ 'printcomments' => \$printcomments, ++ 'replacements=s'=> \$replacements, ++ 'split=i' => \$split, ++ 'uppercase=s' => \$uppercase, ++ 'wordlist=s' => \$wordlist) or usage; ++ ++if ( not $affixfile ){ ++ $affixfile=shift or usage; ++} ++ ++if ( $charset and ( $lowercase or $uppercase )){ ++ die "Error: charset and lowercase/uppercase options ++are incompatible. Use either charset or lowercase/uppercase options to ++specify the patterns ++" ++} elsif ( not $lowercase and not $uppercase and not $charset ){ ++ $charset="latin1"; ++} ++ ++if ( scalar(keys %theextraflags) == 0 && $hasextraflags ){ ++ $theextraflags{"\\\\"}++; ++} ++ ++debugprint "$affixfile $charset"; ++ ++open (AFFIXFILE,"< $affixfile") || ++ die "Error: Could not open affix file: $affixfile"; ++ ++if ( $myheader ){ ++ my $myspell_header=`cat $myheader`; ++ print $myspell_header . "\n"; ++} ++ ++while (){ ++ chomp; ++ if (/^\s*\#.*/){ ++ debugprint "Ignoring line $.\n"; ++ print "$_\n" if $printcomments; ++ } elsif (/^\s*$/){ ++ debugprint "Ignoring line $.\n"; ++ } elsif (/^\s*prefixes/){ ++ debugprint "Prefixes starting in line $.\n"; ++ $affix="PFX"; ++ } elsif (/^\s*suffixes/){ ++ debugprint "Suffixes starting in line $.\n"; ++ $affix="SFX"; ++ } elsif (/^[\s\t]*flag.*/){ ++ next if not $affix; # In case we are still in the preamble ++ shipoutflag if $inflags; ++ $inflags="yes"; ++ s/^[\s\t]*flag[\s\t]*//; ++ s/[\s\t]*:.*$//; ++ debugprint "Found flag $_ in line $.\n"; ++ ++ if (/\*/){ ++ s/[\*\s]//g; ++ $flagcombine="Y"; ++ debugprint "Flag renamed to $_ with combine=$flagcombine\n"; ++ } else { ++ $flagcombine="N"; ++ } ++ ++ if ( $flagname = &validate_flag($_) ){ ++ $myaffix = $affix; ++ } else { ++ $myaffix = "\# $affix"; ++ $flagname = $_; ++ print STDERR "Ignoring invalid flag $flagname in line $.\n"; ++ } ++ } elsif ( $affix and $inflags ) { ++ ($rootname,@comments) = split('#',$_); ++ $comment = '# ' . join('#',@comments); ++ ++ $rootname =~ s/\s*//g; ++ $rootname = mylc $rootname; ++ ($rootname,$addtoroot) = split('>',$rootname); ++ ++ if ( $addtoroot =~ s/^\-//g ){ ++ ($rootremove,$addtoroot) = split(',',$addtoroot); ++ $addtoroot = "0" unless $addtoroot; ++ $addtoroot = "0" if ( $addtoroot eq "-"); ++ } else { ++ $rootremove = "0"; ++ } ++ $addtoroot =~ s/\\\-/\-/g; # prefix ANTI\- to anti- ++ ++ if ( $rootname eq '.' && $rootremove ne "0" ){ ++ $rootname = $rootremove; ++ } ++ ++ debugprint "$rootname, $addtoroot, $rootremove\n"; ++ if ( $printcomments ){ ++ $affix_line=sprintf("%s %s %-5s %-11s %-24s %s", ++ $myaffix, $flagname, $rootremove, ++ $addtoroot, $rootname, $comment); ++ } else { ++ $affix_line=sprintf("%s %s %-5s %-11s %s", ++ $myaffix, $flagname, $rootremove, ++ $addtoroot, $rootname); ++ } ++ $rootremove = "0"; ++ $rootname = ''; ++ $addtoroot = ''; ++ $comment = ''; ++ @comments = (); ++ push @flag_array,$affix_line; ++ debugprint "$affix_line\n"; ++ } else { ++ # ++ } ++} ++shipoutflag; ++ ++close AFFIXFILE; ++ ++if ( $replacements ){ ++ &process_replacements($replacements); ++} ++ ++__END__ ++ ++=encoding ISO8859-1 ++ ++=head1 NAME ++ ++B - A program to convert ispell affix tables to myspell format. ++ ++=head1 SYNOPSIS ++ ++ ispellaff2myspell [options] --myheader your_header ++ ++ Options: ++ ++ --affixfile=s Affix file ++ --bylocale Use current locale setup for upper/lowercase ++ conversion ++ --charset=s Use specified charset for upper/lowercase ++ conversion (defaults to latin1) ++ --debug Print debugging info ++ --extraflags=s Allow some non alphabetic flags ++ --lowercase=s Lowercase string ++ --myheader=s Header file ++ --printcomments Print commented lines in output ++ --replacements=s Replacements file ++ --split=i Split flags with more that i entries ++ --uppercase=s Uppercase string ++ ++=head1 DESCRIPTION ++ ++B is a script that will convert ispell affix tables ++to myspell format in a more or less successful way. ++ ++This script does not create the dict file. Something like ++ ++( echo `cat mydict.words+ | wc -l`; cat mydict.words+ ) > mydict.dict ++ ++should do the work, with mydict.words+ being the munched wordlist ++ ++=head1 OPTIONS ++ ++=over 8 ++ ++=item B<--affixfile=s> ++ ++Affix file. You can put it directly in the command line. ++ ++=item B<--bylocale> ++ ++Use current locale setup for upper/lowercase conversion. Make sure ++that the selected locale match the dictionary one, or you might get ++into trouble. ++ ++=item B<--charset=s> ++ ++Use specified charset for upper/lowercase conversion (defaults to latin1). ++Currently allowed values for charset are: latin0, latin1, latin2, latin3. ++ ++=item B<--debug> ++ ++Print some debugging info. ++ ++=item B<--extraflags:s> ++ ++Allows some non alphabetic flags. ++ ++When invoked with no value the supported flags are currently those ++corresponding to chars represented with the escape char B<\> as ++first char. B<\> will be stripped. ++ ++When given with the flag prefix will allow that flag and strip the ++given prefix. Be careful when giving the prefix to properly escape chars, ++e.g. you will need B<-e "\\\\"> or B<-e '\\'> for flags like B<\[> to be stripped to ++B<[>. Otherwise you might even get errors. Use B<-e "^"> to allow all ++flags and pass them unmodified. ++ ++You will need a call to -e for each flag type, e.g., ++B<-e "\\\\" -e "~\\\\"> (or B<-e '\\' -e '~\\'>). ++ ++When a prefix is explicitly set, the default value (anything starting by B<\>) ++is disabled and you need to enable it explicitly as in previous example. ++ ++=item B<--lowercase=s> ++ ++Lowercase string. Manually set the string of lowercase chars. This ++requires B<--uppercase> having exactly that string but uppercase. ++ ++=item B<--myheader=s> ++ ++Header file. The myspell aff header. You need to write it ++manually. This can contain everything you want to be before the affix table ++ ++=item B<--printcomments> ++ ++Print commented lines in output. ++ ++=item B<--replacements=file> ++ ++Add a pre-defined replacements table taken from 'file' to the .aff file. ++Will skip lines not beginning with REP, and set the replacements number ++appropriately. ++ ++=item B<--split=i> ++ ++Split flags with more that i entries. This can be of interest for flags ++having a lot of entries. Will split the flag in chunks containing B ++entries. ++ ++=item B<--uppercase=s> ++ ++Uppercase string. Manually set the sring of uppercase chars. This ++requires B<--lowercase> having exactly that string but lowercase. ++ ++=back ++ ++If your encoding is currently unsupported you can send me a file with ++the two strings of lower and uppercase chars. Note that they must match ++exactly but case changed. It will look something like ++ ++ $lowercase='a-zàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ'; ++ $uppercase='A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ'; ++ ++=head1 SEE ALSO ++ ++The OpenOffice.org Lingucomponent Project home page ++ ++L ++ ++and the document ++ ++L ++ ++that provides information about the basics of the myspell affix file format. ++ ++You can also take a look at ++ ++ /usr/share/doc/libmyspell-dev/affix.readme.gz ++ /usr/share/doc/libmyspell-dev/README.compoundwords ++ /usr/share/doc/libmyspell-dev/README.replacetable ++ ++in your Debian system. ++ ++=head1 AUTHORS ++ ++Agustin Martin ++ ++=cut --- myspell-3.0+pre3.1.orig/debian/patches/04_hurd_kfreebsd.dpatch +++ myspell-3.0+pre3.1/debian/patches/04_hurd_kfreebsd.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 04_hurd_kfreebsd.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad myspell-3.0+pre3.1/Makefile /tmp/dpep.O5fC98/myspell-3.0+pre3.1/Makefile +--- myspell-3.0+pre3.1/Makefile 2004-01-06 04:17:51.000000000 +0100 ++++ /tmp/dpep.O5fC98/myspell-3.0+pre3.1/Makefile 2005-03-09 00:42:52.028405200 +0100 +@@ -7,7 +7,7 @@ + VERMINOR=1 + VERSION=$(VERMAJOR).$(VERMINOR) + +-PLATFORM := $(shell uname -s) ++PLATFORM := $(shell uname -s | sed -e "s,GNU/.*,GNU,g" -e "s,GNU,Linux,g") + + ifeq "$(PLATFORM)" "Linux" + CXX ?= g++ --- myspell-3.0+pre3.1.orig/debian/patches/05_add_KOI8-U.dpatch +++ myspell-3.0+pre3.1/debian/patches/05_add_KOI8-U.dpatch @@ -0,0 +1,310 @@ +#! /bin/sh -e +## 04_add_KOI8-U.dpatch by Rene Engelhard +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +if [ $# -lt 1 ]; then + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}" + +case "$1" in + -patch) patch -p1 ${patch_opts} < $0;; + -unpatch) patch -R -p1 ${patch_opts} < $0;; + *) + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/rene/Debian/Pakete/MySpell/myspell-3.0+pre3.1/csutil.cxx myspell-3.0+pre3.1/csutil.cxx +--- /home/rene/Debian/Pakete/MySpell/myspell-3.0+pre3.1/csutil.cxx 2004-02-18 14:42:44.000000000 +0100 ++++ myspell-3.0+pre3.1/csutil.cxx 2004-06-13 11:04:38.000000000 +0200 +@@ -3029,6 +3029,265 @@ + { 0x01, 0xdf, 0xff }, + }; + ++struct cs_info koi8u_tbl[] = { ++{ 0x00, 0x00, 0x00 }, ++{ 0x00, 0x01, 0x01 }, ++{ 0x00, 0x02, 0x02 }, ++{ 0x00, 0x03, 0x03 }, ++{ 0x00, 0x04, 0x04 }, ++{ 0x00, 0x05, 0x05 }, ++{ 0x00, 0x06, 0x06 }, ++{ 0x00, 0x07, 0x07 }, ++{ 0x00, 0x08, 0x08 }, ++{ 0x00, 0x09, 0x09 }, ++{ 0x00, 0x0a, 0x0a }, ++{ 0x00, 0x0b, 0x0b }, ++{ 0x00, 0x0c, 0x0c }, ++{ 0x00, 0x0d, 0x0d }, ++{ 0x00, 0x0e, 0x0e }, ++{ 0x00, 0x0f, 0x0f }, ++{ 0x00, 0x10, 0x10 }, ++{ 0x00, 0x11, 0x11 }, ++{ 0x00, 0x12, 0x12 }, ++{ 0x00, 0x13, 0x13 }, ++{ 0x00, 0x14, 0x14 }, ++{ 0x00, 0x15, 0x15 }, ++{ 0x00, 0x16, 0x16 }, ++{ 0x00, 0x17, 0x17 }, ++{ 0x00, 0x18, 0x18 }, ++{ 0x00, 0x19, 0x19 }, ++{ 0x00, 0x1a, 0x1a }, ++{ 0x00, 0x1b, 0x1b }, ++{ 0x00, 0x1c, 0x1c }, ++{ 0x00, 0x1d, 0x1d }, ++{ 0x00, 0x1e, 0x1e }, ++{ 0x00, 0x1f, 0x1f }, ++{ 0x00, 0x20, 0x20 }, ++{ 0x00, 0x21, 0x21 }, ++{ 0x00, 0x22, 0x22 }, ++{ 0x00, 0x23, 0x23 }, ++{ 0x00, 0x24, 0x24 }, ++{ 0x00, 0x25, 0x25 }, ++{ 0x00, 0x26, 0x26 }, ++{ 0x00, 0x27, 0x27 }, ++{ 0x00, 0x28, 0x28 }, ++{ 0x00, 0x29, 0x29 }, ++{ 0x00, 0x2a, 0x2a }, ++{ 0x00, 0x2b, 0x2b }, ++{ 0x00, 0x2c, 0x2c }, ++{ 0x00, 0x2d, 0x2d }, ++{ 0x00, 0x2e, 0x2e }, ++{ 0x00, 0x2f, 0x2f }, ++{ 0x00, 0x30, 0x30 }, ++{ 0x00, 0x31, 0x31 }, ++{ 0x00, 0x32, 0x32 }, ++{ 0x00, 0x33, 0x33 }, ++{ 0x00, 0x34, 0x34 }, ++{ 0x00, 0x35, 0x35 }, ++{ 0x00, 0x36, 0x36 }, ++{ 0x00, 0x37, 0x37 }, ++{ 0x00, 0x38, 0x38 }, ++{ 0x00, 0x39, 0x39 }, ++{ 0x00, 0x3a, 0x3a }, ++{ 0x00, 0x3b, 0x3b }, ++{ 0x00, 0x3c, 0x3c }, ++{ 0x00, 0x3d, 0x3d }, ++{ 0x00, 0x3e, 0x3e }, ++{ 0x00, 0x3f, 0x3f }, ++{ 0x00, 0x40, 0x40 }, ++{ 0x01, 0x61, 0x41 }, ++{ 0x01, 0x62, 0x42 }, ++{ 0x01, 0x63, 0x43 }, ++{ 0x01, 0x64, 0x44 }, ++{ 0x01, 0x65, 0x45 }, ++{ 0x01, 0x66, 0x46 }, ++{ 0x01, 0x67, 0x47 }, ++{ 0x01, 0x68, 0x48 }, ++{ 0x01, 0x69, 0x49 }, ++{ 0x01, 0x6a, 0x4a }, ++{ 0x01, 0x6b, 0x4b }, ++{ 0x01, 0x6c, 0x4c }, ++{ 0x01, 0x6d, 0x4d }, ++{ 0x01, 0x6e, 0x4e }, ++{ 0x01, 0x6f, 0x4f }, ++{ 0x01, 0x70, 0x50 }, ++{ 0x01, 0x71, 0x51 }, ++{ 0x01, 0x72, 0x52 }, ++{ 0x01, 0x73, 0x53 }, ++{ 0x01, 0x74, 0x54 }, ++{ 0x01, 0x75, 0x55 }, ++{ 0x01, 0x76, 0x56 }, ++{ 0x01, 0x77, 0x57 }, ++{ 0x01, 0x78, 0x58 }, ++{ 0x01, 0x79, 0x59 }, ++{ 0x01, 0x7a, 0x5a }, ++{ 0x00, 0x5b, 0x5b }, ++{ 0x00, 0x5c, 0x5c }, ++{ 0x00, 0x5d, 0x5d }, ++{ 0x00, 0x5e, 0x5e }, ++{ 0x00, 0x5f, 0x5f }, ++{ 0x00, 0x60, 0x60 }, ++{ 0x00, 0x61, 0x41 }, ++{ 0x00, 0x62, 0x42 }, ++{ 0x00, 0x63, 0x43 }, ++{ 0x00, 0x64, 0x44 }, ++{ 0x00, 0x65, 0x45 }, ++{ 0x00, 0x66, 0x46 }, ++{ 0x00, 0x67, 0x47 }, ++{ 0x00, 0x68, 0x48 }, ++{ 0x00, 0x69, 0x49 }, ++{ 0x00, 0x6a, 0x4a }, ++{ 0x00, 0x6b, 0x4b }, ++{ 0x00, 0x6c, 0x4c }, ++{ 0x00, 0x6d, 0x4d }, ++{ 0x00, 0x6e, 0x4e }, ++{ 0x00, 0x6f, 0x4f }, ++{ 0x00, 0x70, 0x50 }, ++{ 0x00, 0x71, 0x51 }, ++{ 0x00, 0x72, 0x52 }, ++{ 0x00, 0x73, 0x53 }, ++{ 0x00, 0x74, 0x54 }, ++{ 0x00, 0x75, 0x55 }, ++{ 0x00, 0x76, 0x56 }, ++{ 0x00, 0x77, 0x57 }, ++{ 0x00, 0x78, 0x58 }, ++{ 0x00, 0x79, 0x59 }, ++{ 0x00, 0x7a, 0x5a }, ++{ 0x00, 0x7b, 0x7b }, ++{ 0x00, 0x7c, 0x7c }, ++{ 0x00, 0x7d, 0x7d }, ++{ 0x00, 0x7e, 0x7e }, ++{ 0x00, 0x7f, 0x7f }, ++{ 0x00, 0x80, 0x80 }, ++{ 0x00, 0x81, 0x81 }, ++{ 0x00, 0x82, 0x82 }, ++{ 0x00, 0x83, 0x83 }, ++{ 0x00, 0x84, 0x84 }, ++{ 0x00, 0x85, 0x85 }, ++{ 0x00, 0x86, 0x86 }, ++{ 0x00, 0x87, 0x87 }, ++{ 0x00, 0x88, 0x88 }, ++{ 0x00, 0x89, 0x89 }, ++{ 0x00, 0x8a, 0x8a }, ++{ 0x00, 0x8b, 0x8b }, ++{ 0x00, 0x8c, 0x8c }, ++{ 0x00, 0x8d, 0x8d }, ++{ 0x00, 0x8e, 0x8e }, ++{ 0x00, 0x8f, 0x8f }, ++{ 0x00, 0x90, 0x90 }, ++{ 0x00, 0x91, 0x91 }, ++{ 0x00, 0x92, 0x92 }, ++{ 0x00, 0x93, 0x93 }, ++{ 0x00, 0x94, 0x94 }, ++{ 0x00, 0x95, 0x95 }, ++{ 0x00, 0x96, 0x96 }, ++{ 0x00, 0x97, 0x97 }, ++{ 0x00, 0x98, 0x98 }, ++{ 0x00, 0x99, 0x99 }, ++{ 0x00, 0x9a, 0x9a }, ++{ 0x00, 0x9b, 0x9b }, ++{ 0x00, 0x9c, 0x9c }, ++{ 0x00, 0x9d, 0x9d }, ++{ 0x00, 0x9e, 0x9e }, ++{ 0x00, 0x9f, 0x9f }, ++{ 0x00, 0xa0, 0xa0 }, ++{ 0x00, 0xa1, 0xa1 }, ++{ 0x00, 0xa2, 0xa2 }, ++{ 0x00, 0xa3, 0xb3 }, ++{ 0x00, 0xa4, 0xb4 }, ++{ 0x00, 0xa5, 0xa5 }, ++{ 0x00, 0xa6, 0xb6 }, ++{ 0x00, 0xa7, 0xb7 }, ++{ 0x00, 0xa8, 0xa8 }, ++{ 0x00, 0xa9, 0xa9 }, ++{ 0x00, 0xaa, 0xaa }, ++{ 0x00, 0xab, 0xab }, ++{ 0x00, 0xac, 0xac }, ++{ 0x00, 0xad, 0xbd }, ++{ 0x00, 0xae, 0xae }, ++{ 0x00, 0xaf, 0xaf }, ++{ 0x00, 0xb0, 0xb0 }, ++{ 0x00, 0xb1, 0xb1 }, ++{ 0x00, 0xb2, 0xb2 }, ++{ 0x01, 0xa3, 0xb3 }, ++{ 0x01, 0xa4, 0xb4 }, ++{ 0x00, 0xb5, 0xb5 }, ++{ 0x01, 0xa6, 0xb6 }, ++{ 0x01, 0xa7, 0xb7 }, ++{ 0x00, 0xb8, 0xb8 }, ++{ 0x00, 0xb9, 0xb9 }, ++{ 0x00, 0xba, 0xba }, ++{ 0x00, 0xbb, 0xbb }, ++{ 0x00, 0xbc, 0xbc }, ++{ 0x01, 0xad, 0xbd }, ++{ 0x00, 0xbe, 0xbe }, ++{ 0x00, 0xbf, 0xbf }, ++{ 0x00, 0xc0, 0xe0 }, ++{ 0x00, 0xc1, 0xe1 }, ++{ 0x00, 0xc2, 0xe2 }, ++{ 0x00, 0xc3, 0xe3 }, ++{ 0x00, 0xc4, 0xe4 }, ++{ 0x00, 0xc5, 0xe5 }, ++{ 0x00, 0xc6, 0xe6 }, ++{ 0x00, 0xc7, 0xe7 }, ++{ 0x00, 0xc8, 0xe8 }, ++{ 0x00, 0xc9, 0xe9 }, ++{ 0x00, 0xca, 0xea }, ++{ 0x00, 0xcb, 0xeb }, ++{ 0x00, 0xcc, 0xec }, ++{ 0x00, 0xcd, 0xed }, ++{ 0x00, 0xce, 0xee }, ++{ 0x00, 0xcf, 0xef }, ++{ 0x00, 0xd0, 0xf0 }, ++{ 0x00, 0xd1, 0xf1 }, ++{ 0x00, 0xd2, 0xf2 }, ++{ 0x00, 0xd3, 0xf3 }, ++{ 0x00, 0xd4, 0xf4 }, ++{ 0x00, 0xd5, 0xf5 }, ++{ 0x00, 0xd6, 0xf6 }, ++{ 0x00, 0xd7, 0xf7 }, ++{ 0x00, 0xd8, 0xf8 }, ++{ 0x00, 0xd9, 0xf9 }, ++{ 0x00, 0xda, 0xfa }, ++{ 0x00, 0xdb, 0xfb }, ++{ 0x00, 0xdc, 0xfc }, ++{ 0x00, 0xdd, 0xfd }, ++{ 0x00, 0xde, 0xfe }, ++{ 0x00, 0xdf, 0xff }, ++{ 0x01, 0xc0, 0xe0 }, ++{ 0x01, 0xc1, 0xe1 }, ++{ 0x01, 0xc2, 0xe2 }, ++{ 0x01, 0xc3, 0xe3 }, ++{ 0x01, 0xc4, 0xe4 }, ++{ 0x01, 0xc5, 0xe5 }, ++{ 0x01, 0xc6, 0xe6 }, ++{ 0x01, 0xc7, 0xe7 }, ++{ 0x01, 0xc8, 0xe8 }, ++{ 0x01, 0xc9, 0xe9 }, ++{ 0x01, 0xca, 0xea }, ++{ 0x01, 0xcb, 0xeb }, ++{ 0x01, 0xcc, 0xec }, ++{ 0x01, 0xcd, 0xed }, ++{ 0x01, 0xce, 0xee }, ++{ 0x01, 0xcf, 0xef }, ++{ 0x01, 0xd0, 0xf0 }, ++{ 0x01, 0xd1, 0xf1 }, ++{ 0x01, 0xd2, 0xf2 }, ++{ 0x01, 0xd3, 0xf3 }, ++{ 0x01, 0xd4, 0xf4 }, ++{ 0x01, 0xd5, 0xf5 }, ++{ 0x01, 0xd6, 0xf6 }, ++{ 0x01, 0xd7, 0xf7 }, ++{ 0x01, 0xd8, 0xf8 }, ++{ 0x01, 0xd9, 0xf9 }, ++{ 0x01, 0xda, 0xfa }, ++{ 0x01, 0xdb, 0xfb }, ++{ 0x01, 0xdc, 0xfc }, ++{ 0x01, 0xdd, 0xfd }, ++{ 0x01, 0xde, 0xfe }, ++{ 0x01, 0xdf, 0xff }, ++}; ++ + struct cs_info cp1251_tbl[] = { + { 0x00, 0x00, 0x00 }, + { 0x00, 0x01, 0x01 }, +@@ -3821,6 +4080,7 @@ + {"ISO8859-9",iso9_tbl}, + {"ISO8859-10",iso10_tbl}, + {"KOI8-R",koi8r_tbl}, ++{"KOI8-U",koi8u_tbl}, + {"CP-1251",cp1251_tbl}, + {"ISO8859-14", iso14_tbl}, + {"ISCII-DEVANAGARI", iscii_devanagari_tbl}, +@@ -3858,6 +4118,7 @@ + {"pt","ISO8859-1"}, + {"sv","ISO8859-1"}, + {"ru","KOI8-R"}, ++ {"uk","KOI8-U"}, + }; + + --- myspell-3.0+pre3.1.orig/debian/patches/06_gcc_34.dpatch +++ myspell-3.0+pre3.1/debian/patches/06_gcc_34.dpatch @@ -0,0 +1,44 @@ +#! /bin/sh -e +## 06_gcc_34.dpatch by Rene Engelhard +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +if [ $# -lt 1 ]; then + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}" + +case "$1" in + -patch) patch -p1 ${patch_opts} < $0;; + -unpatch) patch -R -p1 ${patch_opts} < $0;; + *) + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/rene/Debian/Pakete/MySpell/myspell-3.0+pre3.1/csutil.cxx myspell-3.0+pre3.1/csutil.cxx +--- /home/rene/Debian/Pakete/MySpell/myspell-3.0+pre3.1/csutil.cxx 2004-01-04 21:29:49.000000000 +0100 ++++ myspell-3.0+pre3.1/csutil.cxx 2004-07-14 16:25:49.000000000 +0200 +@@ -3836,7 +3836,7 @@ + } + } + return ccs; +-}; ++} + + + +@@ -3869,5 +3869,5 @@ + } + } + return NULL; +-}; ++} + --- myspell-3.0+pre3.1.orig/debian/patches/07_memleak_fixes.dpatch +++ myspell-3.0+pre3.1/debian/patches/07_memleak_fixes.dpatch @@ -0,0 +1,84 @@ +#! /bin/sh -e +## 07_memleak_fixes.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +if [ $# -lt 1 ]; then + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}" + +case "$1" in + -patch) patch -p1 ${patch_opts} < $0;; + -unpatch) patch -R -p1 ${patch_opts} < $0;; + *) + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/rene/Debian/Pakete/myspell/myspell-3.0+pre3.1/affixmgr.cxx myspell-3.0+pre3.1/affixmgr.cxx +--- /home/rene/Debian/Pakete/myspell/myspell-3.0+pre3.1/affixmgr.cxx 2004-01-04 21:29:23.000000000 +0100 ++++ myspell-3.0+pre3.1/affixmgr.cxx 2004-08-06 23:09:13.000000000 +0200 +@@ -872,7 +872,7 @@ + char * AffixMgr::get_compound() + { + if (! compound ) return NULL; +- return mystrdup(compound); ++ return compound; + } + + // utility method to look up root words in hash table +diff -urNad /home/rene/Debian/Pakete/myspell/myspell-3.0+pre3.1/suggestmgr.cxx myspell-3.0+pre3.1/suggestmgr.cxx +--- /home/rene/Debian/Pakete/myspell/myspell-3.0+pre3.1/suggestmgr.cxx 2004-01-04 21:31:59.000000000 +0100 ++++ myspell-3.0+pre3.1/suggestmgr.cxx 2004-08-06 23:09:13.000000000 +0200 +@@ -431,21 +431,28 @@ + rp->astr, rp->alen); + for (int k = 0; k < nw; k++) { + sc = ngram(n, word, glst[k].word, NGRAM_ANY_MISMATCH); +- if (sc > thresh) { +- if (sc > gscore[lp]) { +- if (guess[lp]) free (guess[lp]); +- gscore[lp] = sc; +- guess[lp] = glst[k].word; +- lval = sc; +- for (j=0; j < MAX_GUESS; j++) +- if (gscore[j] < lval) { +- lp = j; +- lval = gscore[j]; +- } +- } else { +- free (glst[k].word); +- } +- } ++ if (sc > thresh) ++ { ++ if (sc > gscore[lp]) ++ { ++ if (guess[lp]) free(guess[lp]); ++ gscore[lp] = sc; ++ guess[lp] = glst[k].word; ++ glst[k].word = NULL; ++ lval = sc; ++ for (j=0; j < MAX_GUESS; j++) ++ { ++ if (gscore[j] < lval) ++ { ++ lp = j; ++ lval = gscore[j]; ++ } ++ } ++ } ++ } ++ free (glst[k].word); ++ glst[k].word = NULL; ++ glst[k].allow = 0; + } + } + } --- myspell-3.0+pre3.1.orig/debian/patches/08_add_affix_readme.dpatch +++ myspell-3.0+pre3.1/debian/patches/08_add_affix_readme.dpatch @@ -0,0 +1,170 @@ +#! /bin/sh -e +## 08_add_affix_readme.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +if [ $# -lt 1 ]; then + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1 +fi + +[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts +patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}" + +case "$1" in + -patch) patch -p1 ${patch_opts} < $0;; + -unpatch) patch -R -p1 ${patch_opts} < $0;; + *) + echo "`basename $0`: script expects -patch|-unpatch as argument" >&2 + exit 1;; +esac + +exit 0 + +@DPATCH@ +diff -urNad /home/rene/Debian/Pakete/myspell/myspell-3.0+pre3.1/affix.readme myspell-3.0+pre3.1/affix.readme +--- /home/rene/Debian/Pakete/myspell/myspell-3.0+pre3.1/affix.readme 1970-01-01 01:00:00.000000000 +0100 ++++ myspell-3.0+pre3.1/affix.readme 2004-09-19 20:06:36.000000000 +0200 +@@ -0,0 +1,141 @@ ++Converting Affix Files: Understanding the Affix File Format ++------------------------------------------------------------ ++ ++An affix is either a prefix or a suffix attached to root words to make ++other words. For example supply -> supplied by dropping the "y" and ++adding an "ied" (the suffix). ++ ++Here is an example of how to define one specific suffix borrowed ++from the en_US.aff file used by the OpenOffice org spellchecker ++ ++SFX D Y 4 ++SFX D 0 d e ++SFX D y ied [^aeiou]y ++SFX D 0 ed [^ey] ++SFX D 0 ed [aeiou]y ++ ++This file is space delimited and case sensitive. ++So this information can be interpreted as follows: ++ ++The first line has 4 fields: ++ ++Field ++----- ++1 SFX - indicates this is a suffix ++2 D - is the name of the character which represents this suffix ++3 Y - indicates it can be combined with prefixes (cross product) ++4 4 - indicates that sequence of 4 affix entries are needed to ++ properly store the affix information ++ ++The remaining lines describe the unique information for the 4 affix ++entries that make up this affix. Each line can be interpreted ++as follows: (note fields 1 and 2 are used as a check against line 1 info) ++ ++Field ++----- ++1 SFX - indicates this is a suffix ++2 D - is the name of the character which represents this affix ++3 y - the string of chars to strip off before adding affix ++ (a 0 here indicates the NULL string) ++4 ied - the string of affix characters to add ++ (a 0 here indicates the NULL string) ++5 [^aeiou]y - the conditions which must be met before the affix ++ can be applied ++ ++Field 5 is interesting. Since this is a suffix, field 5 tells us that ++there are 2 conditions that must be met. The first condition is that ++the next to the last character in the word must *NOT* be any of the ++following "a", "e", "i", "o" or "u". The second condition is that ++the last character of the word must end in "y". ++ ++Now for comparison purposes, here is the same information from the ++Ispell english.aff compression file which was used as the basis ++for the OOo one. ++ ++flag *D: ++ E > D # As in create > created ++ [^AEIOU]Y > -Y,IED # As in imply > implied ++ [^EY] > ED # As in cross > crossed ++ [AEIOU]Y > ED # As in convey > conveyed ++ ++The Ispell information has exactly the same information but in a ++slightly different (case-insensitive) format: ++ ++Here are the ways to see the mapping from Ispell .aff format to our ++OOo format. ++ ++1. The ispell english.aff has flag D under the "suffix" section so ++you know it is a suffix. ++ ++2. The D is the character assigned to this suffix ++ ++3. * indicates that it can be combined with prefixes ++ ++4. Each line following the : describes the affix entries needed ++ to define this suffix ++ ++ - The first field is the conditions that must be met. ++ ++ - The second field is after the > if a "-" occurs is the ++ string to strip off (can be blank). ++ ++ - The third field is the string to add (the affix) ++ ++In addition all chars in ispell aff files are in UPPERCASE. ++ ++So the easiest way to create an OOo .aff file is to start with ++an Ispell .aff file (make sure you get the wordlist author's ++permission first). Then literally one by one, use a text editor ++to convert the information for each prefix and suffix into the ++OOo format (or write a perl script if need be). ++ ++Note: MySpell does *NOT* support multi-byte characters. It needs both ++the affix file and the wordlist to use just one 8-bit character set which ++is then specified in the affix file. ++ ++If the Ispell affix file and wordlist uses multiple bytes to ++indicate one character, a script or editor must be used to convert ++them to the proper single byte character encoding. For example, ++the Ispell german affix file uses the byte sequence u" to actually ++indicate the a u-umlaut character. All occurences of these ++multi-byte characters must be converted to their single byte encoding ++using the ISO-8859-1 character set in the affix file and the ++wordlist. ++ ++FYI, the changes made to the format of the .aff file are necessary ++to support on-the-fly parsing of both the affix .aff file and the ++munched wordlists so that all dictionaries are literally stored ++as ISO text files with associated .aff files and not endian ++dependent binary hash tables dumped in some compile specific ++format. The code is then smart enough to build a hashtable on ++the fly just from the munched wordlist and the .aff file as long ++as the text files end in either \r\n or simply \n. ++ ++ ++There are two other things you need to add to the MySpell affix file. ++ ++The first line specifies the character set used for both the ++wordlist and the affix file (should be all uppercase). ++ ++For example: ++ ++SET ISO8859-1 ++ ++And the second line specifies the characters to be used in building ++suggestions for misspelled words. The should be listed in order or ++character frequency (highest to lowest). A good way to develop this ++string is to sort a simple character count of the wordlist. ++ ++For example: ++ ++TRY esianrtolcdugmphbyfvkw ++ ++ ++Converting an Ispell "munched" Wordlists ++---------------------------------------- ++ ++To convert an Ispell "munched" wordlist to the format needed ++by MySpell simply count the number of "root" words in the file and ++add that count to the first line of the file (this speeds loading ++the file since two passes are not needed). ++ --- myspell-3.0+pre3.1.orig/debian/patches/09_numbers.dpatch +++ myspell-3.0+pre3.1/debian/patches/09_numbers.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 09_numbers.dpatch by +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad myspell-3.0+pre3.1~/utils/i2myspell myspell-3.0+pre3.1/utils/i2myspell +--- myspell-3.0+pre3.1~/utils/i2myspell 2006-12-07 13:25:11.000000000 +0100 ++++ myspell-3.0+pre3.1/utils/i2myspell 2006-12-07 13:26:04.000000000 +0100 +@@ -44,7 +44,7 @@ + }' | sed 's#/##g + s# #/#' >$TEMPFILE1 + cat $TEMPFILE1 | wc -l | tr -cd '0-9\n' +-tail +2 $TEMPFILE1 ++tail -n +2 $TEMPFILE1 + echo + rm -f $TEMPFILE1 + --- myspell-3.0+pre3.1.orig/debian/patches/10_fix_insecure_tmp.dpatch +++ myspell-3.0+pre3.1/debian/patches/10_fix_insecure_tmp.dpatch @@ -0,0 +1,67 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 10_fix_insecure_tmp.dpatch by Thijs Kinkhorst +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: fix insecure temp file usage + +@DPATCH@ +diff -urNad myspell-3.0+pre3.1~/utils/i2myspell myspell-3.0+pre3.1/utils/i2myspell +--- myspell-3.0+pre3.1~/utils/i2myspell 2002-03-08 15:15:53.000000000 +0100 ++++ myspell-3.0+pre3.1/utils/i2myspell 2008-09-18 15:00:46.000000000 +0200 +@@ -32,6 +32,7 @@ + -d) + + # dict file uniq ++TEMPFILE1=`mktemp -t i2my1.XXXXXXXXXX` + sed 's#/# #' $2 | sort -r -k 1 | uniq | grep -v ^$ | + awk '{ + if (p!=$1) { +@@ -41,15 +42,17 @@ + if ($2!="") printf "/%s", $2; + } + }' | sed 's#/##g +-s# #/#' >/tmp/i2my$$.1 +-cat /tmp/i2my$$.1 | wc -l | tr -cd '0-9\n' +-tail +2 /tmp/i2my$$.1 ++s# #/#' >$TEMPFILE1 ++cat $TEMPFILE1 | wc -l | tr -cd '0-9\n' ++tail +2 $TEMPFILE1 + echo +-rm -f /tmp/i2my$$.1 ++rm -f $TEMPFILE1 + + exit;; + esac + ++TEMPFILE1=`mktemp -t i2my1.XXXXXXXXXX` ++TEMPFILE2=`mktemp -t i2my2.XXXXXXXXXX` + ispell -d $1 -D | # dump affix table from the ispell hash + sed 's/ //g + /prefixes/,/suffixes/s/flag[*]\(.\):/PFX \1 Y / +@@ -58,7 +61,7 @@ + /suffixes/,//s/flag\(.\):/SFX \1 N / + s/\([^ ]*\).>.\([^,]*\)$/0 \2 \1/ + s/\([^ ]*\).>.-\([^,]*\),\(.*\)$/\2 \3 \1/' | +-tee /tmp/i2my$$.1 | cut -c -7 > /tmp/i2my$$.2 ++tee $TEMPFILE1 | cut -c -7 > $TEMPFILE2 + + # myspell affix table header + echo "SET $2" +@@ -66,9 +69,9 @@ + if [ -n "$7" ]; then echo "COMPOUNDMIN $7"; fi; + if [ -n "$6" ]; then echo "COMPOUNDFLAG $6"; fi; + +-cut -c 8- /tmp/i2my$$.1 | ++cut -c 8- $TEMPFILE1 | + tr $3 $4 | +-paste -d "" /tmp/i2my$$.2 - | ++paste -d "" $TEMPFILE2 - | + egrep -v '^(suffixes|prefixes|flagmarker)' | + sort -k 2 | awk ' + NR==1 { o1=$1; o2=$2; o3=$3; n[o2]=-1; } +@@ -83,4 +86,4 @@ + } END { printf "%s %s %s %s\n", o1, o2, o3, n[o2]+1; } ' | tee x | + sed 's/ *$//' | sort -r | sed 's/\(^.*[0-9]\)$/\ + \1/' +-rm /tmp/i2my$$.* ++rm $TEMPFILE1 $TEMPFILE2 --- myspell-3.0+pre3.1.orig/debian/rules +++ myspell-3.0+pre3.1/debian/rules @@ -0,0 +1,96 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include /usr/share/dpatch/dpatch.make + +CFLAGS = -g -Wall -ansi -pedantic +CXX=g++ +CC=gcc + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +major=$(shell grep VERMAJOR= Makefile | cut -d"=" -f2) +version=$(major).$(shell grep VERMINOR= Makefile | cut -d"=" -f2) + +debversion=`head -n 1 debian/changelog | awk '{ print $$2 }' \ + | sed -e s/"("// -e s/")"// -e s/3.0+pre//` + +configure: configure-stamp +configure-stamp: patch-stamp + dh_testdir + touch configure-stamp + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + $(MAKE) CXXFLAGS="$(CFLAGS)" CFLAGS="$(CFLAGS)" CXX="$(CXX)" CC="$(CC)" + $(MAKE) check + + touch build-stamp + +clean: unpatch + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + -$(MAKE) clean SOSUFFIX=so SOPREFIX=lib STATICLIB=libmyspell*.a + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + mkdir -p $(CURDIR)/debian/tmp/usr + $(MAKE) install PREFIX=$(CURDIR)/debian/tmp/usr + + dh_install --sourcedir=debian/tmp + + mkdir -p debian/myspell-tools/usr/share/man/man1 + pod2man debian/myspell-tools/usr/bin/ispellaff2myspell \ + > debian/myspell-tools/usr/share/man/man1/ispellaff2myspell.1 + + for i in `dh_listpackages`; do \ + mkdir -p debian/$$i/usr/share/lintian/overrides && \ + echo "$$i: spelling-error-in-copyright usefull useful" \ + > debian/$$i/usr/share/lintian/overrides/$$i; \ + done + +binary-indep: build install + +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples + dh_installman + dh_strip + dh_compress + dh_fixperms + dh_makeshlibs + dh_link + dh_installdeb + dh_shlibdeps + dh_perl + dh_gencontrol -- -v$(debversion) -Vlibmyspell3-depends=$(debversion) + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure