aboutsummaryrefslogtreecommitdiff
path: root/textproc/aspell/files
diff options
context:
space:
mode:
authorThierry Thomas <thierry@FreeBSD.org>2004-06-20 09:04:32 +0000
committerThierry Thomas <thierry@FreeBSD.org>2004-06-20 09:04:32 +0000
commit6fcb6686071e8bc3e8f9462539f2f9eb30e828a3 (patch)
treed4f33f0ccf3a58d3146a2ed1cd8aef4c64e468cd /textproc/aspell/files
parenta27ee4c58765b27303e48039acd738b498223714 (diff)
downloadports-6fcb6686071e8bc3e8f9462539f2f9eb30e828a3.tar.gz
ports-6fcb6686071e8bc3e8f9462539f2f9eb30e828a3.zip
Notes
Diffstat (limited to 'textproc/aspell/files')
-rw-r--r--textproc/aspell/files/patch-prog-compress.c71
1 files changed, 71 insertions, 0 deletions
diff --git a/textproc/aspell/files/patch-prog-compress.c b/textproc/aspell/files/patch-prog-compress.c
new file mode 100644
index 000000000000..a416a33e8c19
--- /dev/null
+++ b/textproc/aspell/files/patch-prog-compress.c
@@ -0,0 +1,71 @@
+--- prog/compress.c.orig Sat Aug 31 20:51:11 2002
++++ prog/compress.c Sat Jun 19 16:10:04 2004
+@@ -28,6 +28,11 @@
+
+ #endif
+
++#define WORD_BUFF_SIZE 256
++
++int count = 0;
++
++
+ void usage ()
+ {
+ fputs("Compresses or uncompresses sorted word lists.\n" , stderr);
+@@ -45,8 +50,9 @@
+ if (c == EOF) return 0;
+ do {
+ *w++ = (char)(c);
+- } while (c = getc(in), c != EOF && c > 32);
++ } while (c = getc(in), c != EOF && c > 32 && count < (WORD_BUFF_SIZE - 1));
+ *w = '\0';
++ count++;
+ ungetc(c, in);
+ if (c == EOF) return 0;
+ else return 1;
+@@ -61,8 +67,8 @@
+
+ } else if (argv[1][0] == 'c') {
+
+- char s1[256];
+- char s2[256];
++ char s1[WORD_BUFF_SIZE];
++ char s2[WORD_BUFF_SIZE];
+ char * prev = s2;
+ char * cur = s1;
+ *prev = '\0';
+@@ -69,6 +75,7 @@
+
+ SETBIN (stdout);
+
++ while (count < WORD_BUFF_SIZE) {
+ while (get_word(stdin, cur)) {
+ int i = 0;
+ /* get the length of the prefix */
+@@ -85,11 +92,12 @@
+ prev = s2; cur = s1;
+ }
+ }
++ }
+ return 0;
+
+ } else if (argv[1][0] == 'd') {
+
+- char cur[256];
++ char cur[WORD_BUFF_SIZE];
+ int i;
+ int c;
+
+@@ -100,8 +108,11 @@
+ if (i == 0)
+ i = getc(stdin);
+ --i;
+- while ((c = getc(stdin)) > 32)
++ while ((c = getc(stdin)) > 32 && i < (WORD_BUFF_SIZE -1)) {
+ cur[i++] = (char)c;
++ count++;
++ }
++
+ cur[i] = '\0';
+ fputs(cur, stdout);
+ putc('\n', stdout);