summaryrefslogtreecommitdiff
path: root/textproc/wordnet/files/patch-lib__morph.c
diff options
context:
space:
mode:
Diffstat (limited to 'textproc/wordnet/files/patch-lib__morph.c')
-rw-r--r--textproc/wordnet/files/patch-lib__morph.c198
1 files changed, 198 insertions, 0 deletions
diff --git a/textproc/wordnet/files/patch-lib__morph.c b/textproc/wordnet/files/patch-lib__morph.c
new file mode 100644
index 000000000000..e6e342a5f380
--- /dev/null
+++ b/textproc/wordnet/files/patch-lib__morph.c
@@ -0,0 +1,198 @@
+--- lib/morph.c Fri May 6 13:17:39 2005
++++ lib/morph.c Tue Dec 20 23:21:44 2005
+@@ -19,7 +19,7 @@
+ #endif
+
+-static char *Id = "$Id: morph.c,v 1.67 2006/11/14 21:00:23 wn Exp $";
++__FBSDID("$Id: morph.c,v 1.67 2006/11/14 21:00:23 wn Exp $");
+
+-static char *sufx[] ={
++static const char *sufx[] ={
+ /* Noun suffixes */
+ "s", "ses", "xes", "zes", "ches", "shes", "men", "ies",
+@@ -30,5 +30,5 @@
+ };
+
+-static char *addr[] ={
++static const char *addr[] ={
+ /* Noun endings */
+ "", "s", "x", "z", "ch", "sh", "man", "y",
+@@ -43,35 +43,36 @@
+ static char msgbuf[256];
+
+-#define NUMPREPS 15
+
+ static struct {
+- char *str;
++ const char *str;
+ int strlen;
+-} prepositions[NUMPREPS] = {
+- "to", 2,
+- "at", 2,
+- "of", 2,
+- "on", 2,
+- "off", 3,
+- "in", 2,
+- "out", 3,
+- "up", 2,
+- "down", 4,
+- "from", 4,
+- "with", 4,
+- "into", 4,
+- "for", 3,
+- "about", 5,
+- "between", 7,
++} prepositions[] = {
++ { "to", 2 },
++ { "at", 2 },
++ { "of", 2 },
++ { "on", 2 },
++ { "off", 3 },
++ { "in", 2 },
++ { "out", 3 },
++ { "up", 2 },
++ { "down", 4 },
++ { "from", 4 },
++ { "with", 4 },
++ { "into", 4 },
++ { "for", 3 },
++ { "about", 5 },
++ { "between", 7 }
+ };
+
++#define NUMPREPS sizeof(prepositions)/sizeof(prepositions[0])
++
+ static FILE *exc_fps[NUMPARTS + 1];
+
+-static int do_init();
+-static int strend(char *, char *);
+-static char *wordbase(char *, int);
+-static int hasprep(char *, int);
+-static char *exc_lookup(char *, int);
+-static char *morphprep(char *);
++static int do_init(void);
++static int strend(const char *, const char *);
++static const char *wordbase(const char *, int);
++static int hasprep(const char *, unsigned int);
++static const char *exc_lookup(const char *, int);
++static const char *morphprep(const char *);
+
+ /* Open exception list files */
+@@ -167,13 +168,15 @@
+ with NULL argument return additional baseforms for original string. */
+
+-char *morphstr(char *origstr, int pos)
++const char *
++morphstr(const char *origstr, int pos)
+ {
+ static char searchstr[WORDBUF], str[WORDBUF];
+ static int svcnt, svprep;
+- char word[WORDBUF], *tmp;
++ char word[WORDBUF];
++ const char *tmp;
+ int cnt, st_idx = 0, end_idx;
+ int prep;
+- char *end_idx1, *end_idx2;
+- char *append;
++ const char *end_idx1, *end_idx2;
++ const char *append;
+
+ if (pos == SATELLITE)
+@@ -230,5 +233,6 @@
+ strncpy(word, str + st_idx, end_idx - st_idx);
+ word[end_idx - st_idx] = '\0';
+- if(tmp = morphword(word, pos))
++ tmp = morphword(word, pos);
++ if(tmp)
+ strcat(searchstr,tmp);
+ else
+@@ -238,5 +242,6 @@
+ }
+
+- if(tmp = morphword(strcpy(word, str + st_idx), pos))
++ tmp = morphword(strcpy(word, str + st_idx), pos);
++ if(tmp)
+ strcat(searchstr,tmp);
+ else
+@@ -264,13 +269,14 @@
+
+ /* Try to find baseform (lemma) of individual word in POS */
+-char *morphword(char *word, int pos)
++const char *
++morphword(const char *word, int pos)
+ {
+ int offset, cnt;
+ int i;
+ static char retval[WORDBUF];
+- char *tmp, tmpbuf[WORDBUF], *end;
++ char tmpbuf[WORDBUF];
++ const char *tmp, *end;
+
+- sprintf(retval,"");
+- sprintf(tmpbuf, "");
++ retval[0] = tmpbuf[0] = '\0';
+ end = "";
+
+@@ -315,7 +321,7 @@
+ }
+
+-static int strend(char *str1, char *str2)
++static int strend(const char *str1, const char *str2)
+ {
+- char *pt1;
++ const char *pt1;
+
+ if(strlen(str2) >= strlen(str1))
+@@ -329,5 +335,6 @@
+ }
+
+-static char *wordbase(char *word, int ender)
++static const char *
++wordbase(const char *word, int ender)
+ {
+ char *pt1;
+@@ -344,10 +351,10 @@
+ }
+
+-static int hasprep(char *s, int wdcnt)
++static int hasprep(const char *s, unsigned int wdcnt)
+ {
+ /* Find a preposition in the verb string and return its
+ corresponding word number. */
+
+- int i, wdnum;
++ unsigned int i, wdnum;
+
+ for (wdnum = 2; wdnum <= wdcnt; wdnum++) {
+@@ -362,9 +369,9 @@
+ }
+
+-static char *exc_lookup(char *word, int pos)
++static const char *
++exc_lookup(const char *word, int pos)
+ {
+ static char line[WORDBUF], *beglp, *endlp;
+- char *excline;
+- int found = 0;
++ const char *excline;
+
+ if (exc_fps[pos] == NULL)
+@@ -394,7 +401,8 @@
+ }
+
+-static char *morphprep(char *s)
++static const char *
++morphprep(const char *s)
+ {
+- char *rest, *exc_word, *lastwd = NULL, *last;
++ const char *rest, *exc_word, *lastwd = NULL, *last;
+ int i, offset, cnt;
+ char word[WORDBUF], end[WORDBUF];
+@@ -408,5 +416,6 @@
+ last = strrchr(s, '_');
+ if (rest != last) { /* more than 2 words */
+- if (lastwd = morphword(last + 1, NOUN)) {
++ lastwd = morphword(last + 1, NOUN);
++ if (lastwd) {
+ strncpy(end, rest, last - rest + 1);
+ end[last-rest+1] = '\0';