diff options
author | Mikhail Teterin <mi@FreeBSD.org> | 2006-01-16 03:48:42 +0000 |
---|---|---|
committer | Mikhail Teterin <mi@FreeBSD.org> | 2006-01-16 03:48:42 +0000 |
commit | 8ebfc55a6eebdea8999a838c47b84ac3aae8f8e4 (patch) | |
tree | c34641f77bda875b1082c7958d2dd3241ea893d6 /textproc/wordnet | |
parent | 360872c2f7438b258e1e9cbd7473f7abeffb1338 (diff) |
Notes
Diffstat (limited to 'textproc/wordnet')
24 files changed, 2486 insertions, 166 deletions
diff --git a/textproc/wordnet/Makefile b/textproc/wordnet/Makefile index 7684e96ebc74..9d87f57b162f 100644 --- a/textproc/wordnet/Makefile +++ b/textproc/wordnet/Makefile @@ -6,7 +6,7 @@ # PORTNAME= WordNet -PORTVERSION= 2.0 +PORTVERSION= 2.1 CATEGORIES= textproc MASTER_SITES= ftp://ftp.cogsci.princeton.edu/pub/wordnet/${PORTVERSION}/ \ http://www.cogsci.princeton.edu/${PORTVERSION}/ \ @@ -17,14 +17,6 @@ COMMENT= Dictionaries and thesauri with devel. libraries (C, TCL) and browsers LIB_DEPENDS= tk${TCL_VER}:${PORTSDIR}/x11-toolkits/tk${TCL_VER} -# The vendor packages up a lot of useless precompiled binaries -# for a few platforms with the source code. Do not extract them: -EXTRACT_AFTER_ARGS= | ${TAR} -xf - --exclude '*/bin/*' \ - --exclude '*/lib/solaris/*' \ - --exclude '*/lib/linux/*' \ - --exclude '*/lib/irix/*' \ - --exclude '*/*.[ao]' - TCL_DVER?= 8.4 TCL_VER= ${TCL_DVER:C/\.//} SCRIPTS_ENV+= TCL_DVER=${TCL_DVER} VER=${PORTVERSION} @@ -35,15 +27,8 @@ REINPLACE_ARGS= -i "" INSTALLS_SHLIB= yes post-patch: - ${REINPLACE_CMD} -e 's,/usr/local,${PREFIX},g' \ - -e 's,_VER_,${PORTVERSION},g' ${WRKSRC}/include/wnconsts.h \ - ${WRKSRC}/src/wnb/wnb - -.include <bsd.port.pre.mk> - -.for s in 1 3 5 7 -MAN$s!= ${MAKE} -f ${FILESDIR}/man.Makefile -V MAN$s -.endfor -MANCOMPRESSED= maybe + ${REINPLACE_CMD} -e 's,/usr/local/WordNet-2.1,${DATADIR},g' \ + ${WRKSRC}/src/wnb ${WRKSRC}/doc/man/*.? + ${REINPLACE_CMD} -e 's, *\\n,\\n,' ${WRKSRC}/include/wn.h -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff --git a/textproc/wordnet/distinfo b/textproc/wordnet/distinfo index 77a015288edd..33b77030d9d6 100644 --- a/textproc/wordnet/distinfo +++ b/textproc/wordnet/distinfo @@ -1,2 +1,3 @@ -MD5 (WordNet-2.0.tar.gz) = 42faaf63f391bb1e13f59ca83490634d -SIZE (WordNet-2.0.tar.gz) = 12847598 +MD5 (WordNet-2.1.tar.gz) = 081aa25baaccac602cebb61f6cb949e7 +SHA256 (WordNet-2.1.tar.gz) = 8ed7ec24377d114c6db326a6f114d6e22afb85cc37f7f1386831b6d8f114784d +SIZE (WordNet-2.1.tar.gz) = 11441476 diff --git a/textproc/wordnet/files/Makefile b/textproc/wordnet/files/Makefile index 4e13361cffe9..0187599bde68 100644 --- a/textproc/wordnet/files/Makefile +++ b/textproc/wordnet/files/Makefile @@ -1,8 +1,10 @@ # $FreeBSD$ SUBDIR= include \ - dict \ + lib \ + lib/wnres \ src \ - man + dict \ + doc/man .include <bsd.subdir.mk> diff --git a/textproc/wordnet/files/dict.Makefile b/textproc/wordnet/files/dict.Makefile index e77eaf1e9b9d..39ef1eb1232f 100644 --- a/textproc/wordnet/files/dict.Makefile +++ b/textproc/wordnet/files/dict.Makefile @@ -1,8 +1,8 @@ -WN_INSTALLDIR= ${PREFIX}/share/WordNet-${VER} -WN_FILES= data.noun data.verb data.adj data.adv index.noun \ - index.verb index.adj index.adv noun.exc verb.exc \ - adj.exc adv.exc index.sense cntlist.rev \ - cntlist lexnames sentidx.vrb sents.vrb +WN_INSTALLDIR= ${PREFIX}/share/WordNet +WN_FILES= adj.exc adv.exc cntlist cntlist.rev data.adj \ + data.adv data.noun data.verb frames.vrb index.adj \ + index.adv index.noun index.sense index.verb \ + noun.exc sentidx.vrb sents.vrb verb.Framestext verb.exc all: $(WN_FILES) @@ -13,11 +13,10 @@ ${WN_INSTALLDIR}: INSTALLED+= ${WN_INSTALLDIR}/$f ${WN_INSTALLDIR}/$f: $f - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} \ - $f ${WN_INSTALLDIR}/$f + ${BSD_INSTALL_DATA} $f ${WN_INSTALLDIR}/$f .endfor install: ${WN_INSTALLDIR} ${INSTALLED} -NOOBJ= noobj +NO_OBJ= noobj .include <bsd.prog.mk> diff --git a/textproc/wordnet/files/include.Makefile b/textproc/wordnet/files/include.Makefile index ed3f8e6aae1d..64139eab30d8 100644 --- a/textproc/wordnet/files/include.Makefile +++ b/textproc/wordnet/files/include.Makefile @@ -1,7 +1,6 @@ -WN_INSTALLDIR = ${PREFIX}/include/WordNet-${VER} +WN_INSTALLDIR = ${PREFIX}/include/WordNet -WN_FILES= license.h setutil.h wn.h wnconsts.h wnglobal.h \ - wnhelp.h wnrtl.h wntypes.h +WN_FILES= wn.h wngrind.h all: $(WN_FILES) @@ -12,6 +11,6 @@ install: ${WN_INSTALLDIR} ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ ${WN_FILES} ${WN_INSTALLDIR}/ -NOOBJ= noobj +NO_OBJ= noobj .include <bsd.prog.mk> diff --git a/textproc/wordnet/files/patch-aa b/textproc/wordnet/files/patch-aa deleted file mode 100644 index 1111d7e513ff..000000000000 --- a/textproc/wordnet/files/patch-aa +++ /dev/null @@ -1,15 +0,0 @@ ---- include/wnconsts.h Fri Feb 27 13:54:53 1998 -+++ include/wnconsts.h Sat Feb 26 16:11:51 2000 -@@ -15,6 +15,10 @@ - /* Platform specific path and filename specifications */ - - #ifdef UNIX - #define DICTDIR "/dict" --#define DEFAULTPATH "/usr/local/WordNet-_VER_/dict" --#define DEFAULTBIN "/usr/local/WordNet-_VER_/bin" -+#ifndef DEFAULTPATH -+#define DEFAULTPATH "/usr/local/share/WordNet-_VER_" -+#endif -+#ifndef DEFAULTBIN -+#define DEFAULTBIN "/usr/local/bin" -+#endif diff --git a/textproc/wordnet/files/patch-ab b/textproc/wordnet/files/patch-ab index 441c003f86ac..ad6bea4e8f6e 100644 --- a/textproc/wordnet/files/patch-ab +++ b/textproc/wordnet/files/patch-ab @@ -1,7 +1,286 @@ ---- src/lib/wnutil.c Thu Feb 19 12:15:09 1998 -+++ src/lib/wnutil.c Sat Feb 26 16:14:08 2000 -@@ -10,3 +10,3 @@ - #ifdef UNIX +--- lib/wnutil.c Fri May 6 13:17:39 2005 ++++ lib/wnutil.c Wed Dec 21 16:04:36 2005 +@@ -15,5 +15,5 @@ + #ifdef __unix__ + #ifndef __MACH__ -#include <malloc.h> +#include <stdlib.h> #endif + #endif +@@ -25,5 +25,5 @@ + #include "wn.h" + +-static int do_init(); ++static int do_init(void); + + static char msgbuf[256]; /* buffer for constructing error messages */ +@@ -37,5 +37,5 @@ + /* Initialization functions */ + +-static void closefps(); ++static void closefps(void); + + int wninit(void) +@@ -46,7 +46,6 @@ + + if (!done) { +- if (env = getenv("WNDBVERSION")) { +- wnrelease = strdup(env); /* set release */ +- assert(wnrelease); ++ if ((env = getenv("WNDBVERSION"))) { ++ wnrelease = env; /* set release */ + } + openerr = do_init(); +@@ -68,7 +67,6 @@ + closefps(); + +- if (env = getenv("WNDBVERSION")) { +- wnrelease = strdup(env); /* set release */ +- assert(wnrelease); ++ if ((env = getenv("WNDBVERSION"))) { ++ wnrelease = env; /* set release */ + } + openerr = do_init(); +@@ -248,4 +246,20 @@ + } + ++char *strtolower2(const char *from, char *to) ++{ ++ ++ char *t = to; ++ ++ do { ++ if(*from >= 'A' && *from <= 'Z') ++ *t = *from++ + 32; ++ else if(*from == '(') ++ *t = '\0'; ++ else ++ *t = *from++; ++ } while (*t++); ++ return(to); ++} ++ + /* Convert string passed to lower case */ + +@@ -276,11 +290,24 @@ + /* Return pointer code for pointer type characer passed. */ + +-int getptrtype(char *ptrstr) ++unsigned short ++getptrtype(const char *ptrstr, char **end) + { +- register int i; ++ unsigned short i; ++ const char *ptype, *pstr; + for(i = 1; i <= MAXPTR; i++) { +- if(!strcmp(ptrstr, ptrtyp[i])) ++ ptype = ptrtyp[i]; ++ pstr = ptrstr; ++ while (*pstr == *ptype && *ptype) { ++ pstr++; ++ ptype++; ++ } ++ if (*ptype == '\0' && ++ (*pstr == '\n' || *pstr == ' ' || *pstr == '\0')) { ++ if (end) ++ *(const char **)end = pstr; + return(i); ++ } + } ++ fprintf(stderr, "Could not find the type of %s\n", ptrstr); + return(0); + } +@@ -288,5 +315,6 @@ + /* Return part of speech code for string passed */ + +-int getpos(char *s) ++int ++getpos(const char *s) + { + switch (*s) { +@@ -310,5 +338,6 @@ + /* Return synset type code for string passed. */ + +-int getsstype(char *s) ++int ++getsstype(const char *s) + { + switch (*s) { +@@ -332,5 +361,6 @@ + /* Pass in string for POS, return corresponding integer value */ + +-int StrToPos(char *str) ++int ++StrToPos(const char *str) + { + if (!strcmp(str, "noun")) +@@ -389,5 +419,6 @@ + /* Return synset for sense key passed. */ + +-SynsetPtr GetSynsetForSense(char *sensekey) ++SynsetPtr ++GetSynsetForSense(const char *sensekey) + { + long offset; +@@ -405,7 +436,8 @@ + /* Find offset of sense key in data file */ + +-long GetDataOffset(char *sensekey) ++long ++GetDataOffset(const char *sensekey) + { +- char *line; ++ const char *line; + + /* Pass in encoded sense string, return byte offset of corresponding +@@ -426,5 +458,6 @@ + /* Find polysemy count for sense key passed. */ + +-int GetPolyCount(char *sensekey) ++int ++GetPolyCount(const char *sensekey) + { + IndexPtr idx; +@@ -443,5 +476,6 @@ + + /* Return word part of sense key */ +-char *GetWORD(char *sensekey) ++const char * ++GetWORD(const char *sensekey) + { + static char word[100]; +@@ -457,5 +491,6 @@ + /* Return POS code for sense key passed. */ + +-int GetPOS(char *sensekey) ++int ++GetPOS(const char *sensekey) + { + int pos; +@@ -470,5 +505,6 @@ + /* Reconstruct synset from synset pointer and return ptr to buffer */ + +-char *FmtSynset(SynsetPtr synptr, int defn) ++const char * ++FmtSynset(SynsetPtr synptr, int defn) + { + int i; +@@ -542,27 +578,8 @@ + } + +-/* Search for string and/or baseform of word in database and return +- index structure for word if found in database. */ +- +-IndexPtr GetValidIndexPointer(char *word, int pos) +-{ +- IndexPtr idx; +- char *morphword; +- +- idx = getindex(word, pos); +- +- if (idx == NULL) { +- if ((morphword = morphstr(word, pos)) != NULL) +- while (morphword) { +- if ((idx = getindex(morphword, pos)) != NULL) break; +- morphword = morphstr(NULL, pos); +- } +- } +- return (idx); +-} +- + /* Return sense number in database for word and lexsn passed. */ + +-int GetWNSense(char *word, char *lexsn) ++int ++GetWNSense(const char *word, const char *lexsn) + { + SnsIndexPtr snsidx; +@@ -578,7 +595,8 @@ + /* Return parsed sense index entry for sense key passed. */ + +-SnsIndexPtr GetSenseIndex(char *sensekey) ++SnsIndexPtr ++GetSenseIndex(const char *sensekey) + { +- char *line; ++ const char *line; + char buf[256], loc[9]; + SnsIndexPtr snsidx = NULL; +@@ -608,5 +626,6 @@ + int GetTagcnt(IndexPtr idx, int sense) + { +- char *sensekey, *line; ++ char *sensekey; ++ const char *line; + char buf[256]; + int snum, cnt = 0; +@@ -632,10 +651,11 @@ + } + +-char *GetOffsetForKey(unsigned int key) ++const char * ++GetOffsetForKey(unsigned int key) + { + unsigned int rkey; + char ckey[7]; + static char loc[11] = ""; +- char *line; ++ const char *line; + char searchdir[256], tmpbuf[256]; + +@@ -657,10 +677,10 @@ + } + +- +-unsigned int GetKeyForOffset(char *loc) ++unsigned int ++GetKeyForOffset(const char *loc) + { + unsigned int key; + char rloc[11] = ""; +- char *line; ++ const char *line; + char searchdir[256], tmpbuf[256]; + +@@ -681,8 +701,9 @@ + } + +-char *SetSearchdir() ++const char * ++SetSearchdir() + { +- static char searchdir[256]; +- char *env; ++ char *searchdir; ++ const char *env; + + /* Find base directory for database. If set, use WNSEARCHDIR. +@@ -690,14 +711,17 @@ + + if ((env = getenv("WNSEARCHDIR")) != NULL) +- strcpy(searchdir, env); +- else if ((env = getenv("WNHOME")) != NULL) ++ return(env); ++ else if ((env = getenv("WNHOME")) != NULL) { ++ searchdir = malloc(strlen(env) + sizeof(DICTDIR)); + sprintf(searchdir, "%s%s", env, DICTDIR); +- else +- strcpy(searchdir, DEFAULTPATH); +- +- return(searchdir); ++ return(searchdir); ++ } else ++ return(DEFAULTPATH); + } + +-int default_display_message(char *msg) ++#ifndef __GNUC__ ++# define __unused ++#endif ++int default_display_message(const char *msg __unused) + { + return(-1); +@@ -727,3 +751,2 @@ + return (loc - strstr_stringstart); + } +- diff --git a/textproc/wordnet/files/patch-ac b/textproc/wordnet/files/patch-ac index fe4fdae3516d..7ed5bb4f4dfd 100644 --- a/textproc/wordnet/files/patch-ac +++ b/textproc/wordnet/files/patch-ac @@ -1,17 +1,28 @@ ---- src/wnb/stubs.c Fri Nov 14 17:01:44 1997 -+++ src/wnb/stubs.c Sat Feb 26 20:09:19 2000 -@@ -24,3 +24,2 @@ +--- src/stubs.c Wed Jul 6 14:49:05 2005 ++++ src/stubs.c Sun Jan 15 07:16:57 2006 +@@ -12,8 +12,7 @@ + #include <string.h> #include <tcl.h> -#include <tk.h> #include <wn.h> -@@ -37,5 +36,4 @@ - int wn_findvalidsearches (ClientData clientData, Tcl_Interp *interp, + +-static Id = "$Id: stubs.c,v 1.7 2005/04/29 19:01:57 wn Exp $"; ++__FBSDID("$Id: stubs.c,v 1.7 2005/04/29 19:01:57 wn Exp $"); + + static char resultbuf[SEARCHBUF]; +@@ -34,24 +33,24 @@ + */ + +-int wn_findvalidsearches (ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[]) { -+ int argc, Tcl_Obj *objv[]) { ++static int ++wn_findvalidsearches (ClientData clientData, Tcl_Interp *interp, ++ int argc, Tcl_Obj * const objv[]) { unsigned int bitfield; - static char bitfieldstr[32]; - char *morph; -@@ -43,9 +41,10 @@ +- char *morph; ++ const char *morph; + int pos; if (argc != 3) { - interp -> result = - "usage: findvalidsearches searchword partofspeechnum"; @@ -27,18 +38,24 @@ + bitfield = is_defined (Tcl_GetString(objv[1]), pos); + if ((morph = morphstr (Tcl_GetString(objv[1]), pos)) != NULL) { do { -@@ -54,4 +53,3 @@ + bitfield |= is_defined (morph, pos); + } while ((morph = morphstr (NULL, pos)) != NULL); } - sprintf (bitfieldstr, "%u", bitfield); - interp -> result = bitfieldstr; + Tcl_SetObjResult(interp, Tcl_NewIntObj(bitfield)); return TCL_OK; -@@ -67,14 +65,11 @@ - int wn_bit (ClientData clientData, Tcl_Interp *interp, + } +@@ -64,17 +63,15 @@ + */ + +-int wn_bit (ClientData clientData, Tcl_Interp *interp, - int argc, char *argv[]) { - unsigned int bitfield; - static char bitfieldstr[32]; -+ int argc, Tcl_Obj *objv[]) { ++static int ++wn_bit (ClientData clientData, Tcl_Interp *interp, ++ int argc, Tcl_Obj * const objv[]) { int whichbit; if (argc != 2) { - interp -> result = "usage: bit bitnum"; @@ -53,16 +70,193 @@ + return TCL_ERROR; + Tcl_SetObjResult(interp, Tcl_NewIntObj(bit(whichbit))); return TCL_OK; -@@ -275,5 +270,5 @@ + } +@@ -85,8 +82,9 @@ + */ + +-int wn_search (ClientData clientData, Tcl_Interp *interp, +- int argc, char *argv[]) { ++static int ++wn_search (ClientData clientData, Tcl_Interp *interp, ++ int argc, const char * argv[]) { + int pos, searchtype, sense; +- char *morph; ++ const char *morph; + if (argc != 5) { + interp -> result = +@@ -112,6 +110,7 @@ + */ + +-int wn_glosses (ClientData clientData, Tcl_Interp *interp, +- int argc, char *argv[]) { ++static int ++wn_glosses (ClientData clientData, Tcl_Interp *interp, ++ int argc, const char *argv[]) { + if (argc != 2) { + interp -> result = "usage: glosses [1 | 0]"; +@@ -127,6 +126,7 @@ + */ + +-int wn_fileinfo (ClientData clientData, Tcl_Interp *interp, +- int argc, char *argv[]) { ++static int ++wn_fileinfo (ClientData clientData, Tcl_Interp *interp, ++ int argc, const char *argv[]) { + if (argc != 2) { + interp -> result = "usage: fileinfo [1 | 0]"; +@@ -142,6 +142,7 @@ + */ + +-int wn_byteoffset (ClientData clientData, Tcl_Interp *interp, +- int argc, char *argv[]) { ++static int ++wn_byteoffset (ClientData clientData, Tcl_Interp *interp, ++ int argc, const char *argv[]) { + if (argc != 2) { + interp -> result = "usage: byteoffset [1 | 0]"; +@@ -157,11 +158,15 @@ + */ + +-int wn_senseflag (ClientData clientData, Tcl_Interp *interp, +- int argc, char *argv[]) { ++static int ++wn_senseflag (ClientData clientData, Tcl_Interp *interp, ++ int argc, Tcl_Obj * const objv[]) { + if (argc != 2) { +- interp -> result = "usage: senseflag [1 | 0]"; ++ Tcl_WrongNumArgs(interp, 0, objv, "?1|0?"); + return TCL_ERROR; + } +- wnsnsflag = atoi (argv[1]); ++ if (Tcl_GetBooleanFromObj(interp, objv[1], &argc) != TCL_OK) ++ return TCL_ERROR; ++ ++ wnsnsflag = argc; /* argc got recycled here */ + return TCL_OK; + } +@@ -172,6 +177,7 @@ + */ + +-int wn_contextualhelp (ClientData clientData, Tcl_Interp *interp, +- int argc, char *argv[]) { ++static int ++wn_contextualhelp (ClientData clientData, Tcl_Interp *interp, ++ int argc, Tcl_Obj * const objv[]) { + int pos, searchtype; + if (argc != 3) { +@@ -179,7 +185,9 @@ + return TCL_ERROR; + } +- pos = atoi (argv[1]); +- searchtype = atoi (argv[2]); +- interp -> result = helptext[pos][searchtype]; ++ if (Tcl_GetIntFromObj(interp, objv[1], &pos) != TCL_OK || ++ Tcl_GetIntFromObj(interp, objv[2], &searchtype) != TCL_OK) ++ return TCL_ERROR; ++ /* Dropping const-ness below is Ok, because TCL_STATIC tells Tcl to DTRT */ ++ Tcl_SetResult(interp, (char *)helptext[pos][searchtype], TCL_STATIC); + return TCL_OK; + } +@@ -188,6 +196,7 @@ + */ + +-int wn_reopendb (ClientData clientData, Tcl_Interp *interp, +- int argc, char *argv[]) { ++static int ++wn_reopendb (ClientData clientData, Tcl_Interp *interp, ++ int argc, Tcl_Obj * const objv[]) { + if (argc != 1) { + interp -> result = "usage: reopendb"; +@@ -202,6 +211,7 @@ + */ + +-int wn_abortsearch (ClientData clientData, Tcl_Interp *interp, +- int argc, char *argv[]) { ++static int ++wn_abortsearch (ClientData clientData, Tcl_Interp *interp, ++ int argc, Tcl_Obj * const objv[]) { + if (argc != 1) { + interp -> result = "usage: abortsearch"; +@@ -212,4 +222,20 @@ + } + ++/* Return text of the license. The license is compiled in anyway, so ++** there is not point in keeping another copy in a separate file. ++*/ ++static int ++wn_license(ClientData clientData, Tcl_Interp *interp, ++ int objc, Tcl_Obj * const objv[]) { ++ if (objc != 1) { ++ Tcl_WrongNumArgs(interp, 0, objv, "no arguments"); ++ return TCL_ERROR; ++ } ++ /* Dropping the const is Ok, as we supply TCL_STATIC to TCL API */ ++ Tcl_SetResult(interp, (char *)license, TCL_STATIC); ++ return TCL_OK; ++} ++ ++ + /* This is a callback function invoked by the WordNet search engine every so + ** often, to allow the interface to respond to events (especially the pressing +@@ -217,5 +242,6 @@ + */ + +-void tkwn_doevents (void) { ++static void ++tkwn_doevents (void) { + while (Tcl_DoOneEvent (TCL_WINDOW_EVENTS | TCL_DONT_WAIT) != 0) {} + } +@@ -226,5 +252,6 @@ + */ + +-int tkwn_displayerror (char *msg) { ++static int ++tkwn_displayerror (const char *msg) { + #ifdef _WINDOWS + MessageBeep (MB_ICONEXCLAMATION); +@@ -232,5 +259,5 @@ + MB_ICONEXCLAMATION | MB_OK | MB_TASKMODAL | MB_SETFOREGROUND); + #else +- fprintf (stderr, "%s", msg); ++ fputs(msg, stderr); + #endif + return -1; +@@ -246,25 +273,26 @@ + display_message = tkwn_displayerror; wninit (); - Tcl_CreateCommand (interp, "findvalidsearches", (void *) -+ Tcl_CreateObjCommand (interp, "findvalidsearches", (void *) ++ Tcl_CreateObjCommand (interp, "findvalidsearches", wn_findvalidsearches, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); - Tcl_CreateCommand (interp, "bit", (void *) wn_bit, (ClientData) NULL, -+ Tcl_CreateObjCommand (interp, "bit", (void *) wn_bit, (ClientData) NULL, ++ Tcl_CreateObjCommand (interp, "bit", wn_bit, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); -@@ -295,3 +290,3 @@ +- Tcl_CreateCommand (interp, "search", (void *) wn_search, (ClientData) ++ Tcl_CreateCommand (interp, "search", wn_search, (ClientData) + NULL, (Tcl_CmdDeleteProc *) NULL); +- Tcl_CreateCommand (interp, "glosses", (void *) wn_glosses, (ClientData) ++ Tcl_CreateCommand (interp, "glosses", wn_glosses, (ClientData) + NULL, (Tcl_CmdDeleteProc *) NULL); +- Tcl_CreateCommand (interp, "fileinfo", (void *) wn_fileinfo, (ClientData) ++ Tcl_CreateCommand (interp, "fileinfo", wn_fileinfo, (ClientData) + NULL, (Tcl_CmdDeleteProc *) NULL); +- Tcl_CreateCommand (interp, "byteoffset", (void *) wn_byteoffset, ++ Tcl_CreateCommand (interp, "byteoffset", wn_byteoffset, + (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); +- Tcl_CreateCommand (interp, "senseflag", (void *) wn_senseflag, ++ Tcl_CreateObjCommand (interp, "senseflag", wn_senseflag, + (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); +- Tcl_CreateCommand (interp, "contextualhelp", (void *) wn_contextualhelp, ++ Tcl_CreateObjCommand (interp, "contextualhelp", wn_contextualhelp, + (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); +- Tcl_CreateCommand (interp, "reopendb", (void *) wn_reopendb, (ClientData) ++ Tcl_CreateObjCommand (interp, "reopendb", wn_reopendb, (ClientData) + NULL, (Tcl_CmdDeleteProc *) NULL); +- Tcl_CreateCommand (interp, "abortsearch", (void *) wn_abortsearch, ++ Tcl_CreateObjCommand (interp, "abortsearch", wn_abortsearch, (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); - return TCL_OK; -+ return Tcl_PkgProvide(interp, "Wordnet", "2.0"); ++ Tcl_CreateObjCommand (interp, "wnlicense", wn_license, ++ (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL); ++ return Tcl_PkgProvide(interp, "Wordnet", "2.1"); } +- diff --git a/textproc/wordnet/files/patch-ad b/textproc/wordnet/files/patch-ad index 1724ec69b8ed..95545fb09f10 100644 --- a/textproc/wordnet/files/patch-ad +++ b/textproc/wordnet/files/patch-ad @@ -1,5 +1,5 @@ ---- src/wnb/wnb Sun Feb 22 12:49:56 1998 -+++ src/wnb/wnb Sat Feb 26 19:52:42 2000 +--- src/wnb Sun Feb 22 12:49:56 1998 ++++ src/wnb Sat Feb 26 19:52:42 2000 @@ -629,2 +626,6 @@ -text "Based upon an earlier X Window version by\nBrian Gustafson."] \ + [label .aboutbox.top.right.textmi \ diff --git a/textproc/wordnet/files/patch-ae b/textproc/wordnet/files/patch-ae index 476f357206f8..e09d71117651 100644 --- a/textproc/wordnet/files/patch-ae +++ b/textproc/wordnet/files/patch-ae @@ -1,37 +1,1103 @@ ---- src/lib/search.c Tue Jul 15 10:41:55 2003 -+++ src/lib/search.c Tue Feb 17 15:59:53 2004 -@@ -331,5 +331,5 @@ +--- lib/search.c Fri May 6 13:17:39 2005 ++++ lib/search.c Sat Jan 14 17:43:08 2006 +@@ -17,5 +17,5 @@ + #include "wn.h" + +-static char *Id = "$Id: search.c,v 1.165 2005/02/24 15:36:00 wn Exp $"; ++__FBSDID("$Id: search.c,v 1.165 2005/02/24 15:36:00 wn Exp $"); + + /* For adjectives, indicates synset type */ +@@ -45,12 +45,12 @@ + /* Forward function declarations */ + +-static void WNOverview(char *, int); ++static void WNOverview(const char *, int); + static void findverbgroups(IndexPtr); +-static void add_relatives(int, IndexPtr, int, int); ++static void add_relatives(int, int); + static void free_rellist(void); +-static void printsynset(char *, SynsetPtr, char *, int, int, int, int); +-static void printantsynset(SynsetPtr, char *, int, int); +-static char *printant(int, SynsetPtr, int, char *, char *); +-static void printbuffer(char *); ++static void printsynset(const char *, SynsetPtr, const char *, int, int, int, int); ++static void printantsynset(SynsetPtr, const char *, int); ++static const char *printant(int, SynsetPtr, int, const char *, const char *); ++static void printbuffer(const char *); + static void printsns(SynsetPtr, int); + static void printsense(SynsetPtr, int); +@@ -62,6 +62,6 @@ + static int getsearchsense(SynsetPtr, int); + static int depthcheck(int, SynsetPtr); +-static void interface_doevents(); +-static void getexample(char *, char *); ++static void interface_doevents(void); ++static void getexample(const char *, const char *); + static int findexample(SynsetPtr); + +@@ -84,9 +84,10 @@ + Input word must be exact match of string in database. */ + +-IndexPtr index_lookup(char *word, int dbase) ++IndexPtr ++index_lookup(const char *word, int dbase) + { + IndexPtr idx = NULL; + FILE *fp; +- char *line; ++ const char *line; + + if ((fp = indexfps[dbase]) == NULL) { +@@ -111,14 +112,16 @@ + */ + +-IndexPtr parse_index(long offset, int dbase, char *line) { ++IndexPtr ++parse_index(long offset, int dbase, const char *line) { + + IndexPtr idx = NULL; + char *ptrtok; + int j; ++ int len; + + if ( !line ) + line = read_index( offset, indexfps[dbase] ); + +- idx = (IndexPtr)malloc(sizeof(Index)); ++ idx = malloc(sizeof(Index)); + assert(idx); + +@@ -136,51 +139,52 @@ + + /* get the word */ +- ptrtok=strtok(line," \n"); ++ ptrtok = strpbrk(line, " \n"); ++ len = ptrtok - line; + +- idx->wd = malloc(strlen(ptrtok) + 1); ++ idx->wd = malloc(len + 1); + assert(idx->wd); +- strcpy(idx->wd, ptrtok); ++ memcpy(idx->wd, line, len); ++ idx->wd[len] = '\0'; ++ line = ptrtok + 1; + + /* get the part of speech */ +- ptrtok=strtok(NULL," \n"); +- idx->pos = malloc(strlen(ptrtok) + 1); ++ ptrtok = strpbrk(line, " \n"); ++ len = ptrtok - line; ++ ++ idx->pos = malloc(len + 1); + assert(idx->pos); +- strcpy(idx->pos, ptrtok); ++ memcpy(idx->pos, line, len); ++ idx->pos[len] = '\0'; ++ line = ptrtok + 1; + + /* get the collins count */ +- ptrtok=strtok(NULL," \n"); +- idx->sense_cnt = atoi(ptrtok); +- ++ idx->sense_cnt = strtoul(line, &ptrtok, 10); ++ + /* get the number of pointers types */ +- ptrtok=strtok(NULL," \n"); +- idx->ptruse_cnt = atoi(ptrtok); +- ++ idx->ptruse_cnt = strtoul(ptrtok + 1, &ptrtok, 10); ++ + if (idx->ptruse_cnt) { +- idx->ptruse = (int *) malloc(idx->ptruse_cnt * (sizeof(int))); ++ idx->ptruse = malloc(idx->ptruse_cnt * (sizeof(short))); + assert(idx->ptruse); + + /* get the pointers types */ + for(j=0;j < idx->ptruse_cnt; j++) { +- ptrtok=strtok(NULL," \n"); +- idx->ptruse[j] = getptrtype(ptrtok); ++ idx->ptruse[j] = getptrtype(ptrtok + 1, &ptrtok); + } + } + + /* get the number of offsets */ +- ptrtok=strtok(NULL," \n"); +- idx->off_cnt = atoi(ptrtok); ++ idx->off_cnt = strtoul(ptrtok + 1, &ptrtok, 10); + + /* get the number of senses that are tagged */ +- ptrtok=strtok(NULL," \n"); +- idx->tagged_cnt = atoi(ptrtok); +- ++ idx->tagged_cnt = strtoul(ptrtok + 1, &ptrtok, 10); ++ + /* make space for the offsets */ +- idx->offset = (long *) malloc(idx->off_cnt * (sizeof(long))); ++ idx->offset = malloc(idx->off_cnt * (sizeof(long))); + assert(idx->offset); + + /* get the offsets */ + for(j=0;j<idx->off_cnt;j++) { +- ptrtok=strtok(NULL," \n"); +- idx->offset[j] = atol(ptrtok); ++ idx->offset[j] = strtoul(ptrtok + 1, &ptrtok, 10); + } + return(idx); +@@ -191,5 +195,6 @@ + hyphens, strip hyphens and underscores, strip periods. */ + +-IndexPtr getindex(char *searchstr, int dbase) ++IndexPtr ++getindex(const char *searchstr, int dbase) + { + int i, j, k; +@@ -207,6 +212,8 @@ + + offset = 0; +- strtolower(searchstr); +- for (i = 0; i < MAX_FORMS; i++) { ++ strtolower2(searchstr, strings[0]); ++ searchstr = strings[0]; ++ offsets[0] = 0; ++ for (i = 1; i < MAX_FORMS; i++) { + strcpy(strings[i], searchstr); + offsets[i] = 0; +@@ -230,9 +237,9 @@ + and get offsets of unique strings. */ + +- if (strings[0][0] != NULL) ++ if (strings[0][0] != '\0') + offsets[0] = index_lookup(strings[0], dbase); + + for (i = 1; i < MAX_FORMS; i++) +- if ((strings[i][0]) != NULL && (strcmp(strings[0], strings[i]))) ++ if ((strings[i][0]) != '\0' && (strcmp(strings[0], strings[i]))) + offsets[i] = index_lookup(strings[i], dbase); + } +@@ -251,5 +258,6 @@ + entry in data structure. */ + +-SynsetPtr read_synset(int dbase, long boffset, char *word) ++SynsetPtr ++read_synset(int dbase, long boffset, const char *word) + { + FILE *fp; +@@ -270,19 +278,18 @@ + in data structure. */ + +-SynsetPtr parse_synset(FILE *fp, int dbase, char *word) ++SynsetPtr ++parse_synset(FILE *fp, int dbase, const char *word) + { +- static char line[LINEBUF]; +- char tbuf[SMLINEBUF]; ++ char line[LINEBUF]; + char *ptrtok; +- char *tmpptr; + int foundpert = 0; + char wdnum[3]; +- int i; ++ int i, len; + SynsetPtr synptr; +- long loc; /* sanity check on file location */ ++ unsigned long loc; /* sanity check on file location */ + + loc = ftell(fp); + +- if ((tmpptr = fgets(line, LINEBUF, fp)) == NULL) ++ if (fgets(line, LINEBUF, fp) == NULL) + return(NULL); + +@@ -315,13 +322,10 @@ + synptr->headsense = 0; + +- ptrtok = line; +- + /* looking at offset */ +- ptrtok = strtok(line," \n"); +- synptr->hereiam = atol(ptrtok); ++ synptr->hereiam = strtol(line, &ptrtok, 10); + /* sanity check - make sure starting file offset matches first field */ if (synptr->hereiam != loc) { - sprintf(msgbuf, "WordNet library error: no synset at location %d\n", -+ sprintf(msgbuf, "WordNet library error: no synset at location %ld\n", ++ sprintf(msgbuf, "WordNet library error: no synset at location %lu\n", loc); display_message(msgbuf); -@@ -464,5 +464,5 @@ - if (ptrtok) { - ptrtok = strtok(NULL," \n"); +@@ -331,18 +335,20 @@ + + /* looking at FNUM */ +- ptrtok = strtok(NULL," \n"); +- synptr->fnum = atoi(ptrtok); ++ synptr->fnum = strtol(ptrtok + 1, &ptrtok, 10); + + /* looking at POS */ +- ptrtok = strtok(NULL, " \n"); +- synptr->pos = malloc(strlen(ptrtok) + 1); ++ ptrtok++; ++ len = strpbrk(ptrtok, " \n") - ptrtok; ++ synptr->pos = malloc(len + 1); + assert(synptr->pos); +- strcpy(synptr->pos, ptrtok); ++ memcpy(synptr->pos, ptrtok, len); ++ synptr->pos[len] = '\0'; ++ ptrtok += len; + if (getsstype(synptr->pos) == SATELLITE) + synptr->sstype = INDIRECT_ANT; + + /* looking at numwords */ +- ptrtok = strtok(NULL, " \n"); +- synptr->wcount = strtol(ptrtok, NULL, 16); ++ synptr->wcount = strtol(ptrtok, &ptrtok, 16); ++ ptrtok++; + + synptr->words = (char **)malloc(synptr->wcount * sizeof(char *)); +@@ -354,40 +360,42 @@ + + for (i = 0; i < synptr->wcount; i++) { +- ptrtok = strtok(NULL, " \n"); +- synptr->words[i] = malloc(strlen(ptrtok) + 1); ++ len = strpbrk(ptrtok, " \n") - ptrtok; ++ synptr->words[i] = malloc(len + 1); + assert(synptr->words[i]); +- strcpy(synptr->words[i], ptrtok); ++ memcpy(synptr->words[i], ptrtok, len); ++ synptr->words[i][len] = '\0'; + + /* is this the word we're looking for? */ + +- if (word && !strcmp(word,strtolower(ptrtok))) ++ if (word && !strcmp(word, synptr->words[i])) + synptr->whichword = i+1; + +- ptrtok = strtok(NULL, " \n"); +- sscanf(ptrtok, "%x", &synptr->lexid[i]); ++ ptrtok += len; ++ synptr->lexid[i] = strtol(ptrtok, &ptrtok, 16); ++ ptrtok++; + } + + /* get the pointer count */ +- ptrtok = strtok(NULL," \n"); +- synptr->ptrcount = atoi(ptrtok); ++ synptr->ptrcount = strtol(ptrtok, &ptrtok, 10); ++ ptrtok++; + + if (synptr->ptrcount) { + + /* alloc storage for the pointers */ +- synptr->ptrtyp = (int *)malloc(synptr->ptrcount * sizeof(int)); ++ synptr->ptrtyp = malloc(synptr->ptrcount * sizeof(int)); + assert(synptr->ptrtyp); +- synptr->ptroff = (long *)malloc(synptr->ptrcount * sizeof(long)); ++ synptr->ptroff = malloc(synptr->ptrcount * sizeof(unsigned long)); + assert(synptr->ptroff); +- synptr->ppos = (int *)malloc(synptr->ptrcount * sizeof(int)); ++ synptr->ppos = malloc(synptr->ptrcount * sizeof(int)); + assert(synptr->ppos); +- synptr->pto = (int *)malloc(synptr->ptrcount * sizeof(int)); ++ synptr->pto = malloc(synptr->ptrcount * sizeof(short)); + assert(synptr->pto); +- synptr->pfrm = (int *)malloc(synptr->ptrcount * sizeof(int)); ++ synptr->pfrm = malloc(synptr->ptrcount * sizeof(short)); + assert(synptr->pfrm); + + for(i = 0; i < synptr->ptrcount; i++) { + /* get the pointer type */ +- ptrtok = strtok(NULL," \n"); +- synptr->ptrtyp[i] = getptrtype(ptrtok); ++ synptr->ptrtyp[i] = getptrtype(ptrtok, &ptrtok); ++ ptrtok++; + /* For adjectives, set the synset type if it has a direct + antonym */ +@@ -400,23 +408,19 @@ + + /* get the pointer offset */ +- ptrtok = strtok(NULL," \n"); +- synptr->ptroff[i] = atol(ptrtok); ++ synptr->ptroff[i] = strtol(ptrtok, &ptrtok, 10); ++ ptrtok++; + + /* get the pointer part of speech */ +- ptrtok = strtok(NULL, " \n"); + synptr->ppos[i] = getpos(ptrtok); + + /* get the lexp to/from restrictions */ +- ptrtok = strtok(NULL," \n"); +- +- tmpptr = ptrtok; +- strncpy(wdnum, tmpptr, 2); ++ ++ ptrtok = strpbrk(ptrtok, " \n") + 1; ++ strncpy(wdnum, ptrtok, 2); + wdnum[2] = '\0'; +- synptr->pfrm[i] = strtol(wdnum, (char **)NULL, 16); ++ synptr->pfrm[i] = strtoul(wdnum, NULL, 16); + +- tmpptr += 2; +- strncpy(wdnum, tmpptr, 2); +- wdnum[2] = '\0'; +- synptr->pto[i] = strtol(wdnum, (char **)NULL, 16); ++ synptr->pto[i] = strtoul(ptrtok + 2, &ptrtok, 16); ++ ptrtok++; /* Something like ``0000 '' */ + } + } +@@ -429,23 +433,22 @@ + /* retireve optional information from verb synset */ + if(dbase == VERB) { +- ptrtok = strtok(NULL," \n"); +- synptr->fcount = atoi(ptrtok); +- ++ synptr->fcount = strtol(ptrtok, &ptrtok, 10); ++ ptrtok++; + /* allocate frame storage */ + +- synptr->frmid = (int *)malloc(synptr->fcount * sizeof(int)); ++ synptr->frmid = malloc(synptr->fcount * sizeof(int)); + assert(synptr->frmid); +- synptr->frmto = (int *)malloc(synptr->fcount * sizeof(int)); ++ synptr->frmto = malloc(synptr->fcount * sizeof(int)); + assert(synptr->frmto); + + for(i=0;i<synptr->fcount;i++) { + /* skip the frame pointer (+) */ +- ptrtok = strtok(NULL," \n"); ++ ptrtok = strpbrk(ptrtok, " \n") + 1; + +- ptrtok = strtok(NULL," \n"); +- synptr->frmid[i] = atoi(ptrtok); ++ synptr->frmid[i] = strtol(ptrtok, &ptrtok, 10); ++ ptrtok++; + +- ptrtok = strtok(NULL," \n"); +- synptr->frmto[i] = strtol(ptrtok, NULL, 16); ++ synptr->frmto[i] = strtol(ptrtok, &ptrtok, 16); ++ ptrtok++; + } + } +@@ -453,22 +456,38 @@ + /* get the optional definition */ + +- ptrtok = strtok(NULL," \n"); +- if (ptrtok) { +- ptrtok = strtok(NULL," \n"); - sprintf(tbuf, ""); -+ tbuf[0] = '\0'; - while (ptrtok != NULL) { - strcat(tbuf,ptrtok); -@@ -478,5 +478,5 @@ +- while (ptrtok != NULL) { +- strcat(tbuf,ptrtok); +- ptrtok = strtok(NULL, " \n"); +- if(ptrtok) +- strcat(tbuf," "); +- } +- assert((1 + strlen(tbuf)) < sizeof(tbuf)); +- synptr->defn = malloc(strlen(tbuf) + 4); ++ ptrtok = strpbrk(ptrtok, " \n") + 1; ++ if (ptrtok && *ptrtok) { ++ char *defn; ++ len = strlen(ptrtok); ++ synptr->defn = malloc(len + 2); + assert(synptr->defn); +- sprintf(synptr->defn,"(%s)",tbuf); ++ synptr->defn[0] = '('; ++ for (defn = synptr->defn + 1; *ptrtok; ptrtok++) { ++ switch (*ptrtok) { ++ case '\n': ++ case ' ': ++ /* skip adjacent and initial blanks: */ ++ if (defn == synptr->defn + 1 || defn[-1] == ' ') ++ continue; ++ do ++ ptrtok++; ++ while (*ptrtok == '\n' || *ptrtok == ' '); ++ if (*ptrtok == '\0') ++ break; /* out of the loop */ ++ *defn++ = ' '; ++ /* FALLTHROUGH */; ++ default: ++ *defn++ = *ptrtok; ++ continue; ++ } ++ break; ++ } ++ *defn++ = ')'; ++ assert(defn - synptr->defn < len + 2); ++ *defn = '\0'; + } if (keyindexfp) { /* we have unique keys */ - sprintf(tmpbuf, "%c:%8.8d", partchars[dbase], synptr->hereiam); + sprintf(tmpbuf, "%c:%8.8ld", partchars[dbase], synptr->hereiam); synptr->key = GetKeyForOffset(tmpbuf); } -@@ -2350,5 +2350,5 @@ +@@ -547,5 +565,5 @@ + /* Recursive search algorithm to trace a pointer tree */ + +-static void traceptrs(SynsetPtr synptr, int ptrtyp, int dbase, int depth) ++static void traceptrs(SynsetPtr synptr, int ptyp, int dbase, int depth) + { + int i; +@@ -559,15 +577,15 @@ + return; + +- if (ptrtyp < 0) { +- ptrtyp = -ptrtyp; ++ if (ptyp < 0) { ++ ptyp = -ptyp; + extraindent = 2; + } + + for (i = 0; i < synptr->ptrcount; i++) { +- if ((ptrtyp == HYPERPTR && (synptr->ptrtyp[i] == HYPERPTR || ++ if ((ptyp == HYPERPTR && (synptr->ptrtyp[i] == HYPERPTR || + synptr->ptrtyp[i] == INSTANCE)) || +- (ptrtyp == HYPOPTR && (synptr->ptrtyp[i] == HYPOPTR || ++ (ptyp == HYPOPTR && (synptr->ptrtyp[i] == HYPOPTR || + synptr->ptrtyp[i] == INSTANCES)) || +- ((synptr->ptrtyp[i] == ptrtyp) && ++ ((synptr->ptrtyp[i] == ptyp) && + ((synptr->pfrm[i] == 0) || + (synptr->pfrm[i] == synptr->whichword)))) { +@@ -634,5 +652,5 @@ + Otherwise, just print the synset pointed to. */ + +- if ((ptrtyp == PERTPTR || ptrtyp == PPLPTR) && ++ if ((ptyp == PERTPTR || ptyp == PPLPTR) && + synptr->pto[i] != 0) { + sprintf(tbuf, " (Sense %d)\n", +@@ -640,5 +658,5 @@ + printsynset(prefix, cursyn, tbuf, DEFOFF, synptr->pto[i], + SKIP_ANTS, PRINT_MARKER); +- if (ptrtyp == PPLPTR) { /* adjective pointing to verb */ ++ if (ptyp == PPLPTR) { /* adjective pointing to verb */ + printsynset(" =>", cursyn, "\n", + DEFON, ALLWORDS, PRINT_ANTS, PRINT_MARKER); +@@ -656,5 +674,5 @@ + traceptrs(cursyn, HYPERPTR, getpos(cursyn->pos), 0); + } +- } else if (ptrtyp == ANTPTR && dbase != ADJ && synptr->pto[i] != 0) { ++ } else if (ptyp == ANTPTR && dbase != ADJ && synptr->pto[i] != 0) { + sprintf(tbuf, " (Sense %d)\n", + cursyn->wnsns[synptr->pto[i] - 1]); +@@ -670,10 +688,10 @@ + printed in buffer so results can be truncated later. */ + +- if (ptrtyp >= ISMEMBERPTR && ptrtyp <= HASPARTPTR) ++ if (ptyp >= ISMEMBERPTR && ptyp <= HASPARTPTR) + lastholomero = strlen(searchbuffer); + + if(depth) { + depth = depthcheck(depth, cursyn); +- traceptrs(cursyn, ptrtyp, getpos(cursyn->pos), (depth+1)); ++ traceptrs(cursyn, ptyp, getpos(cursyn->pos), (depth+1)); + + free_synset(cursyn); +@@ -684,5 +702,6 @@ + } + +-static void tracecoords(SynsetPtr synptr, int ptrtyp, int dbase, int depth) ++static void ++tracecoords(SynsetPtr synptr, int ptyp, int depth) + { + int i; +@@ -709,9 +728,9 @@ + SKIP_ANTS, PRINT_MARKER); + +- traceptrs(cursyn, ptrtyp, getpos(cursyn->pos), depth); ++ traceptrs(cursyn, ptyp, getpos(cursyn->pos), depth); + + if(depth) { + depth = depthcheck(depth, cursyn); +- tracecoords(cursyn, ptrtyp, getpos(cursyn->pos), (depth+1)); ++ tracecoords(cursyn, ptyp, (depth+1)); + free_synset(cursyn); + } else +@@ -721,9 +740,10 @@ + } + +-static void traceclassif(SynsetPtr synptr, int dbase, int search) ++static void ++traceclassif(SynsetPtr synptr, int search) + { + int i, j, idx; + SynsetPtr cursyn; +- long int prlist[1024]; ++ unsigned int prlist[1024]; + char head[60]; + int svwnsnsflag; +@@ -789,5 +809,6 @@ + } + +-static void tracenomins(SynsetPtr synptr, int dbase) ++static void ++tracenomins(SynsetPtr synptr) + { + int i, j, idx; +@@ -848,5 +869,6 @@ + and PART info. */ + +-static void traceinherit(SynsetPtr synptr, int ptrbase, int dbase, int depth) ++static void ++traceinherit(SynsetPtr synptr, int ptrbase, int depth) + { + int i; +@@ -879,5 +901,5 @@ + if(depth) { + depth = depthcheck(depth, cursyn); +- traceinherit(cursyn, ptrbase, getpos(cursyn->pos), (depth+1)); ++ traceinherit(cursyn, ptrbase, depth + 1); + free_synset(cursyn); + } else +@@ -890,10 +912,10 @@ + } + +-static void partsall(SynsetPtr synptr, int ptrtyp) ++static void partsall(SynsetPtr synptr, int ptyp) + { + int ptrbase; + int i, hasptr = 0; + +- ptrbase = (ptrtyp == HMERONYM) ? HASMEMBERPTR : ISMEMBERPTR; ++ ptrbase = (ptyp == HMERONYM) ? HASMEMBERPTR : ISMEMBERPTR; + + /* First, print out the MEMBER, STUFF, PART info for this synset */ +@@ -912,8 +934,8 @@ + HMERONYM search only */ + +-/* if (hasptr && ptrtyp == HMERONYM) { */ +- if (ptrtyp == HMERONYM) { ++/* if (hasptr && ptyp == HMERONYM) { */ ++ if (ptyp == HMERONYM) { + lastholomero = strlen(searchbuffer); +- traceinherit(synptr, ptrbase, NOUN, 1); ++ traceinherit(synptr, ptrbase, 1); + } + } +@@ -971,5 +993,5 @@ + } + } else +- printantsynset(antptr, "\n", anttype, DEFON); ++ printantsynset(antptr, "\n", DEFON); + + free_synset(antptr); +@@ -984,11 +1006,13 @@ + /* Fetch the given example sentence from the example file and print it out */ + +-void getexample(char *offset, char *wd) ++static void ++getexample(const char *offset, const char *wd) + { +- char *line; ++ const char *line; + char sentbuf[512]; + + if (vsentfilefp != NULL) { +- if (line = bin_search(offset, vsentfilefp)) { ++ line = bin_search(offset, vsentfilefp); ++ if (line) { + while(*line != ' ') + line++; +@@ -1005,5 +1029,6 @@ + int findexample(SynsetPtr synptr) + { +- char tbuf[256], *temp, *offset; ++ char tbuf[256]; ++ const char *temp, *offset; + int wdnum; + int found = 0; +@@ -1097,17 +1122,17 @@ + } + +-static void freq_word(IndexPtr index) ++static void freq_word(IndexPtr idx) + { + int familiar=0; + int cnt; +- static char *a_an[] = { ++ static const char *a_an[] = { + "", "a noun", "a verb", "an adjective", "an adverb" }; +- static char *freqcats[] = { ++ static const char *freqcats[] = { + "extremely rare","very rare","rare","uncommon","common", + "familiar","very familiar","extremely familiar" + }; + +- if(index) { +- cnt = index->sense_cnt; ++ if(idx) { ++ cnt = idx->sense_cnt; + if (cnt == 0) familiar = 0; + if (cnt == 1) familiar = 1; +@@ -1121,10 +1146,11 @@ + sprintf(tmpbuf, + "\n%s used as %s is %s (polysemy count = %d)\n", +- index->wd, a_an[getpos(index->pos)], freqcats[familiar], cnt); ++ idx->wd, a_an[getpos(idx->pos)], freqcats[familiar], cnt); + printbuffer(tmpbuf); + } + } + +-void wngrep (char *word_passed, int pos) { ++static void ++wngrep(const char *word_passed, int pos) { + FILE *inputfile; + char word[256]; +@@ -1237,5 +1263,5 @@ + for (k = 0; k < idx->off_cnt; k++) { + if (synset->ptroff[j] == idx->offset[k]) { +- add_relatives(VERB, idx, i, k); ++ add_relatives(i, k); + break; + } +@@ -1247,8 +1273,9 @@ + } + +-static void add_relatives(int pos, IndexPtr idx, int rel1, int rel2) ++static void ++add_relatives(int rel1, int rel2) + { + int i; +- struct relgrp *rel, *last, *r; ++ struct relgrp *rel, *last = NULL, *r; + + /* If either of the new relatives are already in a relative group, +@@ -1350,5 +1377,6 @@ + */ + +-char *findtheinfo(char *searchstr, int dbase, int ptrtyp, int whichsense) ++const char * ++findtheinfo(const char *searchstr, int dbase, int ptyp, int whichsense) + { + SynsetPtr cursyn; +@@ -1358,5 +1386,5 @@ + char *bufstart; + unsigned long offsets[MAXSENSE]; +- int skipit; ++ int skipit = 0; + + /* Initializations - +@@ -1373,5 +1401,5 @@ + offsets[i] = 0; + +- switch (ptrtyp) { ++ switch (ptyp) { + case OVERVIEW: + WNOverview(searchstr, dbase); +@@ -1402,6 +1430,6 @@ + + /* If negative search type, set flag for recursive search */ +- if (ptrtyp < 0) { +- ptrtyp = -ptrtyp; ++ if (ptyp < 0) { ++ ptyp = -ptyp; + depth = 1; + } +@@ -1439,5 +1467,5 @@ + offsets[offsetcnt++] = idx->offset[sense]; + cursyn = read_synset(dbase, idx->offset[sense], idx->wd); +- switch(ptrtyp) { ++ switch(ptyp) { + case ANTPTR: + if(dbase == ADJ) +@@ -1448,5 +1476,5 @@ + + case COORDS: +- tracecoords(cursyn, HYPOPTR, dbase, depth); ++ tracecoords(cursyn, HYPOPTR, depth); + break; + +@@ -1481,5 +1509,5 @@ + #ifdef FOOP + case PPLPTR: +- traceptrs(cursyn, ptrtyp, dbase, depth); ++ traceptrs(cursyn, ptyp, dbase, depth); + traceptrs(cursyn, PPLPTR, dbase, depth); + break; +@@ -1492,5 +1520,5 @@ + prflag = 1; + +- traceptrs(cursyn, ptrtyp, dbase, depth); ++ traceptrs(cursyn, ptyp, dbase, depth); + + if (dbase == ADJ) { +@@ -1509,14 +1537,14 @@ + + case DERIVATION: +- tracenomins(cursyn, dbase); ++ tracenomins(cursyn); + break; + + case CLASSIFICATION: + case CLASS: +- traceclassif(cursyn, dbase, ptrtyp); ++ traceclassif(cursyn, ptyp); + break; + + default: +- traceptrs(cursyn, ptrtyp, dbase, depth); ++ traceptrs(cursyn, ptyp, dbase, depth); + break; + +@@ -1587,5 +1615,6 @@ + } + +-SynsetPtr findtheinfo_ds(char *searchstr, int dbase, int ptrtyp, int whichsense) ++SynsetPtr ++findtheinfo_ds(char *searchstr, int dbase, int ptyp, int whichsense) + { + IndexPtr idx; +@@ -1603,6 +1632,6 @@ + newsense = 1; + +- if(ptrtyp < 0) { +- ptrtyp = -ptrtyp; ++ if(ptyp < 0) { ++ ptyp = -ptyp; + depth = 1; + } +@@ -1629,8 +1658,6 @@ + newsense = 0; + +- cursyn->searchtype = ptrtyp; +- cursyn->ptrlist = traceptrs_ds(cursyn, ptrtyp, +- getpos(cursyn->pos), +- depth); ++ cursyn->searchtype = ptyp; ++ cursyn->ptrlist = traceptrs_ds(cursyn, ptyp, depth); + + lastsyn = cursyn; +@@ -1643,5 +1670,5 @@ + wnresults.numforms++; + +- if (ptrtyp == COORDS) { /* clean up by removing hypernym */ ++ if (ptyp == COORDS) { /* clean up by removing hypernym */ + lastsyn = synlist->ptrlist; + synlist->ptrlist = lastsyn->ptrlist; +@@ -1656,5 +1683,6 @@ + in linked list of data structures. */ + +-SynsetPtr traceptrs_ds(SynsetPtr synptr, int ptrtyp, int dbase, int depth) ++SynsetPtr ++traceptrs_ds(SynsetPtr synptr, int ptyp, int depth) + { + int i; +@@ -1680,9 +1708,9 @@ + } + +- if (ptrtyp == COORDS) { ++ if (ptyp == COORDS) { + tstptrtyp = HYPERPTR; + docoords = 1; + } else { +- tstptrtyp = ptrtyp; ++ tstptrtyp = ptyp; + docoords = 0; + } +@@ -1694,5 +1722,5 @@ + + cursyn=read_synset(synptr->ppos[i], synptr->ptroff[i], ""); +- cursyn->searchtype = ptrtyp; ++ cursyn->searchtype = ptyp; + + if (lastsyn) +@@ -1704,9 +1732,7 @@ + if(depth) { + depth = depthcheck(depth, cursyn); +- cursyn->ptrlist = traceptrs_ds(cursyn, ptrtyp, +- getpos(cursyn->pos), +- (depth+1)); ++ cursyn->ptrlist = traceptrs_ds(cursyn, ptyp, (depth+1)); + } else if (docoords) { +- cursyn->ptrlist = traceptrs_ds(cursyn, HYPOPTR, NOUN, 0); ++ cursyn->ptrlist = traceptrs_ds(cursyn, HYPOPTR, 0); + } + } +@@ -1715,10 +1741,12 @@ + } + +-static void WNOverview(char *searchstr, int pos) ++static void ++WNOverview(const char *searchstr, int pos) + { + SynsetPtr cursyn; + IndexPtr idx = NULL; +- char *cpstring = searchstr, *bufstart; +- int sense, i, offsetcnt; ++ const char *cpstring; ++ char *bufstart; ++ int sense_, i, offsetcnt; + int svdflag, skipit; + unsigned long offsets[MAXSENSE]; +@@ -1742,19 +1770,19 @@ + synset with synset offset and/or lexical file information.*/ + +- for (sense = 0; sense < idx->off_cnt; sense++) { ++ for (sense_ = 0; sense_ < idx->off_cnt; sense_++) { + + for (i = 0, skipit = 0; i < offsetcnt && !skipit; i++) +- if (offsets[i] == idx->offset[sense]) ++ if (offsets[i] == idx->offset[sense_]) + skipit = 1; + + if (!skipit) { +- offsets[offsetcnt++] = idx->offset[sense]; +- cursyn = read_synset(pos, idx->offset[sense], idx->wd); ++ offsets[offsetcnt++] = idx->offset[sense_]; ++ cursyn = read_synset(pos, idx->offset[sense_], idx->wd); + if (idx->tagged_cnt != -1 && +- ((sense + 1) <= idx->tagged_cnt)) { ++ ((sense_ + 1) <= idx->tagged_cnt)) { + sprintf(tmpbuf, "%d. (%d) ", +- sense + 1, GetTagcnt(idx, sense + 1)); ++ sense_ + 1, GetTagcnt(idx, sense_ + 1)); + } else { +- sprintf(tmpbuf, "%d. ", sense + 1); ++ sprintf(tmpbuf, "%d. ", sense_ + 1); + } + +@@ -1801,8 +1829,9 @@ + /* Do requested search on synset passed, returning output in buffer. */ + +-char *do_trace(SynsetPtr synptr, int ptrtyp, int dbase, int depth) ++const char * ++do_trace(SynsetPtr synptr, int ptyp, int dbase, int depth) + { + searchbuffer[0] = '\0'; /* clear output buffer */ +- traceptrs(synptr, ptrtyp, dbase, depth); ++ traceptrs(synptr, ptyp, dbase, depth); + return(searchbuffer); + } +@@ -1811,7 +1840,8 @@ + passed and return bit mask. */ + +-unsigned int is_defined(char *searchstr, int dbase) ++unsigned int ++is_defined(const char *searchstr, int dbase) + { +- IndexPtr index; ++ IndexPtr idx; + int i; + unsigned long retval = 0; +@@ -1821,8 +1851,8 @@ + wnresults.searchds = NULL; + +- while ((index = getindex(searchstr, dbase)) != NULL) { ++ while ((idx = getindex(searchstr, dbase)) != NULL) { + searchstr = NULL; /* clear out for next getindex() call */ + +- wnresults.SenseCount[wnresults.numforms] = index->off_cnt; ++ wnresults.SenseCount[wnresults.numforms] = idx->off_cnt; + + /* set bits that must be true for all words */ +@@ -1833,36 +1863,36 @@ + /* go through list of pointer characters and set appropriate bits */ + +- for(i = 0; i < index->ptruse_cnt; i++) { ++ for(i = 0; i < idx->ptruse_cnt; i++) { + +- if (index->ptruse[i] <= LASTTYPE) { +- retval |= bit(index->ptruse[i]); +- } else if (index->ptruse[i] == INSTANCE) { ++ if (idx->ptruse[i] <= LASTTYPE) { ++ retval |= bit(idx->ptruse[i]); ++ } else if (idx->ptruse[i] == INSTANCE) { + retval |= bit(HYPERPTR); +- } else if (index->ptruse[i] == INSTANCES) { ++ } else if (idx->ptruse[i] == INSTANCES) { + retval |= bit(HYPOPTR); + } + +- if (index->ptruse[i] == SIMPTR) { ++ if (idx->ptruse[i] == SIMPTR) { + retval |= bit(ANTPTR); + } + #ifdef FOOP + +- if (index->ptruse[i] >= CLASSIF_START && +- index->ptruse[i] <= CLASSIF_END) { ++ if (idx->ptruse[i] >= CLASSIF_START && ++ idx->ptruse[i] <= CLASSIF_END) { + retval |= bit(CLASSIFICATION); + } + + +- if (index->ptruse[i] >= CLASS_START && +- index->ptruse[i] <= CLASS_END) { ++ if (idx->ptruse[i] >= CLASS_START && ++ idx->ptruse[i] <= CLASS_END) { + retval |= bit(CLASS); + } + #endif + +- if (index->ptruse[i] >= ISMEMBERPTR && +- index->ptruse[i] <= ISPARTPTR) ++ if (idx->ptruse[i] >= ISMEMBERPTR && ++ idx->ptruse[i] <= ISPARTPTR) + retval |= bit(HOLONYM); +- else if (index->ptruse[i] >= HASMEMBERPTR && +- index->ptruse[i] <= HASPARTPTR) ++ else if (idx->ptruse[i] >= HASMEMBERPTR && ++ idx->ptruse[i] <= HASPARTPTR) + retval |= bit(MERONYM); + +@@ -1873,7 +1903,7 @@ + /* check for inherited holonyms and meronyms */ + +- if (HasHoloMero(index, HMERONYM)) ++ if (HasHoloMero(idx, HMERONYM)) + retval |= bit(HMERONYM); +- if (HasHoloMero(index, HHOLONYM)) ++ if (HasHoloMero(idx, HHOLONYM)) + retval |= bit(HHOLONYM); + +@@ -1893,5 +1923,5 @@ + } + +- free_index(index); ++ free_index(idx); + wnresults.numforms++; + } +@@ -1902,5 +1932,6 @@ + meronyms or holonyms. */ + +-static int HasHoloMero(IndexPtr index, int ptrtyp) ++static int ++HasHoloMero(IndexPtr idx, int ptyp) + { + int i, j; +@@ -1909,8 +1940,8 @@ + int ptrbase; + +- ptrbase = (ptrtyp == HMERONYM) ? HASMEMBERPTR : ISMEMBERPTR; ++ ptrbase = (ptyp == HMERONYM) ? HASMEMBERPTR : ISMEMBERPTR; + +- for(i = 0; i < index->off_cnt; i++) { +- synset = read_synset(NOUN, index->offset[i], ""); ++ for(i = 0; i < idx->off_cnt; i++) { ++ synset = read_synset(NOUN, idx->offset[i], ""); + for (j = 0; j < synset->ptrcount; j++) { + if (synset->ptrtyp[j] == HYPERPTR) { +@@ -1928,10 +1959,10 @@ + } + +-static int HasPtr(SynsetPtr synptr, int ptrtyp) ++static int HasPtr(SynsetPtr synptr, int ptyp) + { + int i; + + for(i = 0; i < synptr->ptrcount; i++) { +- if(synptr->ptrtyp[i] == ptrtyp) { ++ if(synptr->ptrtyp[i] == ptyp) { + return(1); + } +@@ -1943,5 +1974,6 @@ + word is not in WordNet. */ + +-unsigned int in_wn(char *word, int pos) ++unsigned int ++in_wn(const char *word, int pos) + { + int i; +@@ -1971,5 +2003,6 @@ + /* Strip off () enclosed comments from a word */ + +-static char *deadjify(char *word) ++static char * ++deadjify(char *word) + { + char *y; +@@ -2001,5 +2034,6 @@ + strtolower(wdbuf); + +- if (idx = index_lookup(wdbuf, getpos(synptr->pos))) { ++ idx = index_lookup(wdbuf, getpos(synptr->pos)); ++ if (idx) { + for (i = 0; i < idx->off_cnt; i++) + if (idx->offset[i] == synptr->hereiam) { +@@ -2012,5 +2046,7 @@ + } + +-static void printsynset(char *head, SynsetPtr synptr, char *tail, int definition, int wdnum, int antflag, int markerflag) ++static void ++printsynset(const char *head, SynsetPtr synptr, const char *tail, ++ int definition, int wdnum, int antflag, int markerflag) + { + int i, wdcnt; +@@ -2025,5 +2061,5 @@ if (offsetflag) /* print synset offset */ - sprintf(tbuf + strlen(tbuf),"{%8.8d} ", synptr->hereiam); + sprintf(tbuf + strlen(tbuf),"{%8.8ld} ", synptr->hereiam); if (fileinfoflag) { /* print lexicographer file information */ sprintf(tbuf + strlen(tbuf), "<%s> ", lexfiles[synptr->fnum]); -@@ -2385,5 +2385,5 @@ +@@ -2050,9 +2086,10 @@ + } + +-static void printantsynset(SynsetPtr synptr, char *tail, int anttype, int definition) ++static void ++printantsynset(SynsetPtr synptr, const char *tail, int definition) + { + int i, wdcnt; + char tbuf[SMLINEBUF]; +- char *str; ++ const char *str; + int first = 1; + +@@ -2060,5 +2097,5 @@ if (offsetflag) - sprintf(tbuf,"{%8.8d} ", synptr->hereiam); + sprintf(tbuf,"{%8.8ld} ", synptr->hereiam); if (fileinfoflag) { sprintf(tbuf + strlen(tbuf),"<%s> ", lexfiles[synptr->fnum]); +@@ -2100,6 +2137,6 @@ + static void catword(char *buf, SynsetPtr synptr, int wdnum, int adjmarker, int antflag) + { +- static char vs[] = " (vs. %s)"; +- static char *markers[] = { ++ static const char vs[] = " (vs. %s)"; ++ static const char *markers[] = { + "", /* UNKNOWN_MARKER */ + "(predicate)", /* PREDICATIVE */ +@@ -2133,5 +2170,7 @@ + } + +-static char *printant(int dbase, SynsetPtr synptr, int wdnum, char *template, char *tail) ++static const char * ++printant(int dbase, SynsetPtr synptr, int wdnum, ++ const char *template, const char *tail) + { + int i, j, wdoff; +@@ -2187,5 +2226,6 @@ + } + +-static void printbuffer(char *string) ++static void ++printbuffer(const char *string) + { + if (overflag) +@@ -2197,11 +2237,13 @@ + } + +-static void printsns(SynsetPtr synptr, int sense) ++static void ++printsns(SynsetPtr synptr, int sense_) + { +- printsense(synptr, sense); ++ printsense(synptr, sense_); + printsynset("", synptr, "\n", DEFON, ALLWORDS, PRINT_ANTS, PRINT_MARKER); + } + +-static void printsense(SynsetPtr synptr, int sense) ++static void ++printsense(SynsetPtr synptr, int sense_) + { + char tbuf[256]; +@@ -2211,7 +2253,7 @@ + if (fnflag) + sprintf(tbuf,"\nSense %d in file \"%s\"\n", +- sense, lexfiles[synptr->fnum]); ++ sense_, lexfiles[synptr->fnum]); + else +- sprintf(tbuf,"\nSense %d\n", sense); ++ sprintf(tbuf,"\nSense %d\n", sense_); + + printbuffer(tbuf); diff --git a/textproc/wordnet/files/patch-ag b/textproc/wordnet/files/patch-ag deleted file mode 100644 index 77495e75904c..000000000000 --- a/textproc/wordnet/files/patch-ag +++ /dev/null @@ -1,7 +0,0 @@ ---- src/wnb/wnb Tue Aug 20 11:54:54 2002 -+++ src/wnb/wnb Tue Aug 20 11:57:02 2002 -@@ -99,3 +96,3 @@ - if {[lsearch -exact [array names env] WNHOME] == -1} { -- set resourcedir "/usr/local/WordNet-2.0/lib/wnres" -+ set resourcedir "/usr/local/share/WordNet-2.0/wnres" - } else { diff --git a/textproc/wordnet/files/patch-ah b/textproc/wordnet/files/patch-ah index 2484129a1df5..49db3aae93f3 100644 --- a/textproc/wordnet/files/patch-ah +++ b/textproc/wordnet/files/patch-ah @@ -1,12 +1,30 @@ ---- src/lib/morph.c Tue Jul 15 10:41:55 2003 -+++ src/lib/morph.c Tue Feb 17 15:50:51 2004 -@@ -45,27 +45,28 @@ +--- 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.66 2005/03/18 18:14:24 wn Exp $"; ++__FBSDID("$Id: morph.c,v 1.66 2005/03/18 18:14:24 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; +- char *str; ++ const char *str; int strlen; -} prepositions[NUMPREPS] = { - "to", 2, @@ -46,7 +64,41 @@ + static FILE *exc_fps[NUMPARTS + 1]; -@@ -207,5 +208,6 @@ +-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)) @@ -54,7 +106,7 @@ + if(tmp) strcat(searchstr,tmp); else -@@ -215,5 +217,6 @@ +@@ -238,5 +242,6 @@ } - if(tmp = morphword(strcpy(word, str + st_idx), pos)) @@ -62,21 +114,81 @@ + if(tmp) strcat(searchstr,tmp); else -@@ -248,6 +251,5 @@ - char *tmp, tmpbuf[WORDBUF], *end; +@@ -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 = ""; -@@ -343,5 +345,4 @@ +@@ -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; +- char *excline; - int found = 0; ++ const char *excline; if (exc_fps[pos] == NULL) -@@ -385,5 +386,6 @@ +@@ -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)) { diff --git a/textproc/wordnet/files/patch-binsrch b/textproc/wordnet/files/patch-binsrch new file mode 100644 index 000000000000..f63e294a6cd8 --- /dev/null +++ b/textproc/wordnet/files/patch-binsrch @@ -0,0 +1,268 @@ +Clean out the unused functions. Improve and const-ify, what remains. +--- lib/binsrch.c Fri May 6 13:17:38 2005 ++++ lib/binsrch.c Sun Jan 15 11:43:36 2006 +@@ -5,8 +5,9 @@ + */ + ++#include "wn.h" + #include <stdio.h> + #include <string.h> + +-static char *Id = "$Id: binsrch.c,v 1.15 2005/02/01 16:46:43 wn Rel $"; ++__FBSDID("$Id: binsrch.c,v 1.15 2005/02/01 16:46:43 wn Rel $"); + + /* Binary search - looks for the key passed at the start of a line +@@ -14,5 +15,4 @@ + a buffer containing the line in the file. */ + +-#define KEY_LEN (1024) + #define LINE_LEN (1024*25) + +@@ -25,201 +25,61 @@ + #undef getc + +-char *read_index(long offset, FILE *fp) { +- char *linep; ++const char * ++read_index(long offset, FILE *fp) { + +- linep = line; + line[0] = '0'; + +- fseek( fp, offset, SEEK_SET ); +- fgets(linep, LINE_LEN, fp); ++ fseek(fp, offset, SEEK_SET); ++ fgets(line, LINE_LEN, fp); + return(line); + } + +-char *bin_search(char *searchkey, FILE *fp) ++static int ++sign(int number) + { +- int c; +- long top, mid, bot, diff; +- char *linep, key[KEY_LEN]; +- int length; +- +- diff=666; +- linep = line; +- line[0] = '\0'; +- +- fseek(fp, 0L, 2); +- top = 0; +- bot = ftell(fp); +- mid = (bot - top) / 2; +- +- do { +- fseek(fp, mid - 1, 0); +- if(mid != 1) +- while((c = getc(fp)) != '\n' && c != EOF); +- last_bin_search_offset = ftell( fp ); +- fgets(linep, LINE_LEN, fp); +- length = (int)(strchr(linep, ' ') - linep); +- strncpy(key, linep, length); +- key[length] = '\0'; +- if(strcmp(key, searchkey) < 0) { +- top = mid; +- diff = (bot - top) / 2; +- mid = top + diff; +- } +- if(strcmp(key, searchkey) > 0) { +- bot = mid; +- diff = (bot - top) / 2; +- mid = top + diff; +- } +- } while((strcmp(key, searchkey)) && (diff != 0)); +- +- if(!strcmp(key, searchkey)) +- return(line); +- else +- return(NULL); ++ if (number > 0) ++ return 1; ++ if (number < 0) ++ return -1; ++ return 0; + } +- +-static long offset; + +-static int bin_search_key(char *searchkey, FILE *fp) ++const char * ++bin_search(const char *searchkey, FILE *fp) + { +- int c; +- long top, mid, bot, diff; +- char *linep, key[KEY_LEN]; +- int length, offset1, offset2; +- +- /* do binary search to find correct place in file to insert line */ +- +- diff=666; +- linep = line; +- line[0] = '\0'; +- +- fseek(fp, 0L, 2); +- top = 0; +- bot = ftell(fp); +- if (bot == 0) { +- offset = 0; +- return(0); /* empty file */ +- } +- mid = (bot - top) / 2; +- +- /* If only one line in file, don't work through loop */ +- +- length = 0; +- rewind(fp); +- while((c = getc(fp)) != '\n' && c != EOF) +- line[length++] = c; +- if (getc(fp) == EOF) { /* only 1 line in file */ +- length = (int)(strchr(linep, ' ') - linep); +- strncpy(key, linep, length); +- key[length] = '\0'; +- if(strcmp(key, searchkey) > 0) { +- offset = 0; +- return(0); /* line with key is not found */ +- } else if (strcmp(key, searchkey) < 0) { +- offset = ftell(fp); +- return(0); /* line with key is not found */ +- } else { +- offset = 0; +- return(1); /* line with key is found */ ++ int c; ++ long top, mid, bot; /* should be off_t */ ++ int length, keylen; ++ ++ fseek(fp, 0L, 2); ++ bot = ftell(fp); ++ mid = bot / 2; ++ keylen = strlen(searchkey); ++ ++ for (top = 0; bot - top >= 2; mid = (top + bot) / 2) { ++ fseek(fp, mid - 1, 0); ++ if(mid != 1) ++ while((c = getc(fp)) != '\n' && c != EOF); ++ last_bin_search_offset = ftell(fp); ++ if (fgets(line, LINE_LEN, fp) == NULL) ++ return(NULL); ++ length = strchr(line, ' ') - line; ++ switch (sign(strncmp(line, searchkey, length))) { ++ case 0: ++ /* a match up to the length! */ ++ if (length == keylen) ++ return(line); ++ if (length > keylen) ++ /* the word read is longer than ours */ ++ goto up; ++ /* FALLTHROUGH */ ++ case -1: ++ top = mid; ++ continue; ++ case 1: ++ up: ++ bot = mid; ++ } + } +- } +- +- do { +- fseek(fp, mid - 1, 0); +- if(mid != 1) +- while((c = getc(fp)) != '\n' && c != EOF); +- offset1 = ftell(fp); /* offset at start of line */ +- if (fgets(linep, LINE_LEN, fp) != NULL) { +- offset2 = ftell(fp); /* offset at start of next line */ +- length = (int)(strchr(linep, ' ') - linep); +- strncpy(key, linep, length); +- key[length] = '\0'; +- if(strcmp(key, searchkey) < 0) { /* further in file */ +- top = mid; +- diff = (bot - top) / 2; +- mid = top + diff; +- offset = offset2; +- } +- if(strcmp(key, searchkey) > 0) { /* earlier in file */ +- bot = mid; +- diff = (bot - top) / 2; +- mid = top + diff; +- offset = offset1; +- } +- } else { +- bot = mid; +- diff = (bot - top) / 2; +- mid = top + diff; +- } +- } while((strcmp(key, searchkey)) && (diff != 0)); +- +- if(!strcmp(key, searchkey)) { +- offset = offset1; /* get to start of current line */ +- return(1); /* line with key is found */ +- } else +- return(0); /* line with key is not found */ +-} +- +-/* Copy contents from one file to another. */ +- +-void copyfile(FILE *fromfp, FILE *tofp) +-{ +- int c; +- +- while ((c = getc(fromfp)) != EOF) +- putc(c, tofp); +-} +- +-/* Function to replace a line in a file. Returns the original line, +- or NULL in case of error. */ +- +-char *replace_line(char *new_line, char *searchkey, FILE *fp) +-{ +- FILE *tfp; /* temporary file pointer */ +- +- if (!bin_search_key(searchkey, fp)) +- return(NULL); /* line with key not found */ +- +- if ((tfp = tmpfile()) == NULL) +- return(NULL); /* could not create temp file */ +- fseek(fp, offset, 0); +- fgets(line, LINE_LEN, fp); /* read original */ +- copyfile(fp, tfp); +- if (fseek(fp, offset, 0) == -1) +- return(NULL); /* could not seek to offset */ +- fprintf(fp, new_line); /* write line */ +- rewind(tfp); +- copyfile(tfp, fp); +- +- fclose(tfp); +- fflush(fp); +- +- return(line); +-} +- +-/* Find location to insert line at in file. If line with this +- key is already in file, return NULL. */ +- +-char *insert_line(char *new_line, char *searchkey, FILE *fp) +-{ +- FILE *tfp; +- +- if (bin_search_key(searchkey, fp)) + return(NULL); +- +- if ((tfp = tmpfile()) == NULL) +- return(NULL); /* could not create temp file */ +- if (fseek(fp, offset, 0) == -1) +- return(NULL); /* could not seek to offset */ +- copyfile(fp, tfp); +- if (fseek(fp, offset, 0) == -1) +- return(NULL); /* could not seek to offset */ +- fprintf(fp, new_line); /* write line */ +- rewind(tfp); +- copyfile(tfp, fp); +- +- fclose(tfp); +- fflush(fp); +- +- return(new_line); + } diff --git a/textproc/wordnet/files/patch-wn.h b/textproc/wordnet/files/patch-wn.h new file mode 100644 index 000000000000..151745fbbedc --- /dev/null +++ b/textproc/wordnet/files/patch-wn.h @@ -0,0 +1,279 @@ +--- include/wn.h Wed Jul 6 14:48:44 2005 ++++ include/wn.h Wed Dec 21 17:24:58 2005 +@@ -31,5 +31,7 @@ + #else + #define DICTDIR "/dict" ++#ifndef DEFAULTPATH + #define DEFAULTPATH "/usr/local/WordNet-2.1/dict" ++#endif + #define DATAFILE "%s/data.%s" + #define INDEXFILE "%s/index.%s" +@@ -152,12 +154,12 @@ + #define IMMED_POSTNOMINAL IPADJ + +-extern char *wnrelease; /* WordNet release/version number */ ++extern const char *wnrelease; /* WordNet release/version number */ + +-extern char *lexfiles[]; /* names of lexicographer files */ +-extern char *ptrtyp[]; /* pointer characters */ +-extern char *partnames[]; /* POS strings */ +-extern char partchars[]; /* single chars for each POS */ +-extern char *adjclass[]; /* adjective class strings */ +-extern char *frametext[]; /* text of verb frames */ ++extern const char *lexfiles[]; /* names of lexicographer files */ ++extern const char *ptrtyp[]; /* pointer characters */ ++extern const char *partnames[]; /* POS strings */ ++extern const char partchars[]; /* single chars for each POS */ ++extern const char *adjclass[]; /* adjective class strings */ ++extern const char *frametext[]; /* text of verb frames */ + + /* Data structures used by search code functions. */ +@@ -173,5 +175,5 @@ + unsigned long *offset; /* offsets of synsets containing word */ + int ptruse_cnt; /* number of pointers used */ +- int *ptruse; /* pointers used */ ++ short *ptruse; /* pointers used */ + } Index; + +@@ -180,5 +182,5 @@ + /* Structure for data file synset */ + typedef struct ss { +- long hereiam; /* current file position */ ++ unsigned long hereiam; /* current file position */ + int sstype; /* type of ADJ synset */ + int fnum; /* file number that synset comes from */ +@@ -191,8 +193,8 @@ + int ptrcount; /* number of pointers */ + int *ptrtyp; /* pointer types */ +- long *ptroff; /* pointer offsets */ ++ unsigned long *ptroff; /* pointer offsets */ + int *ppos; /* pointer part of speech */ +- int *pto; /* pointer 'to' fields */ +- int *pfrm; /* pointer 'from' fields */ ++ unsigned short *pto; /* pointer 'to' fields */ ++ unsigned short *pfrm; /* pointer 'from' fields */ + int fcount; /* number of verb frames */ + int *frmid; /* frame numbers */ +@@ -218,5 +220,5 @@ + char *sensekey; /* sense key */ + char *word; /* word string */ +- long loc; /* synset offset */ ++ unsigned long loc; /* synset offset */ + int wnsense; /* WordNet sense number */ + int tag_cnt; /* number of semantic tags to sense */ +@@ -268,6 +270,6 @@ + Default function provided in library returns -1 */ + +-extern int default_display_message(char *); +-extern int (*display_message)(char *); ++int default_display_message(const char *); ++int (*display_message)(const char *); + + +@@ -282,5 +284,5 @@ + + /* Primry search algorithm for use with user interfaces */ +-extern char *findtheinfo(char *, int, int, int); ++const char *findtheinfo(const char *, int, int, int); + + /* Primary search algorithm for use with programs (returns data structure) */ +@@ -289,27 +291,27 @@ + /* Set bit for each search type that is valid for the search word + passed and return bit mask. */ +-extern unsigned int is_defined(char *, int); ++extern unsigned int is_defined(const char *, int); + + /* Set bit for each POS that search word is in. 0 returned if + word is not in WordNet. */ +-extern unsigned int in_wn(char *, int); ++unsigned int in_wn(const char *, int); + + /* Find word in index file and return parsed entry in data structure. + Input word must be exact match of string in database. */ +-extern IndexPtr index_lookup(char *, int); ++IndexPtr index_lookup(const char *, int); + + /* 'smart' search of index file. Find word in index file, trying different + techniques - replace hyphens with underscores, replace underscores with + hyphens, strip hyphens and underscores, strip periods. */ +-extern IndexPtr getindex(char *, int); +-extern IndexPtr parse_index(long, int, char *); ++extern IndexPtr getindex(const char *, int); ++extern IndexPtr parse_index(long, int, const char *); + + /* Read synset from data file at byte offset passed and return parsed + entry in data structure. */ +-extern SynsetPtr read_synset(int, long, char *); ++extern SynsetPtr read_synset(int, long, const char *); + + /* Read synset at current byte offset in file and return parsed entry + in data structure. */ +-extern SynsetPtr parse_synset(FILE *, int, char *); ++extern SynsetPtr parse_synset(FILE *, int, const char *); + + /* Free a synset linked list allocated by findtheinfo_ds() */ +@@ -324,22 +326,22 @@ + /* Recursive search algorithm to trace a pointer tree and return results + in linked list of data structures. */ +-SynsetPtr traceptrs_ds(SynsetPtr, int, int, int); ++SynsetPtr traceptrs_ds(SynsetPtr, int, int); + + /* Do requested search on synset passed, returning output in buffer. */ +-extern char *do_trace(SynsetPtr, int, int, int); ++const char *do_trace(SynsetPtr, int, int, int); + + /*** Morphology functions (morph.c) ***/ + + /* Open exception list files */ +-extern int morphinit(); ++int morphinit(void); + + /* Close exception list files and reopen */ +-extern int re_morphinit(); ++int re_morphinit(void); + + /* Try to find baseform (lemma) of word or collocation in POS. */ +-extern char *morphstr(char *, int); ++const char *morphstr(const char *, int); + + /* Try to find baseform (lemma) of individual word in POS. */ +-extern char *morphword(char *, int); ++const char *morphword(const char *, int); + + /*** Utility functions (wnutil.c) ***/ +@@ -347,9 +349,9 @@ + /* Top level function to open database files, initialize wn_filenames, + and open exeception lists. */ +-extern int wninit(); ++int wninit(void); + + /* Top level function to close and reopen database files, initialize + wn_filenames and open exception lists. */ +-extern int re_wninit(); ++int re_wninit(void); + + /* Count the number of underscore or space separated words in a string. */ +@@ -358,4 +360,5 @@ + /* Convert string to lower case remove trailing adjective marker if found */ + extern char *strtolower(char *); ++char *strtolower2(const char *from, char *to); + + /* Convert string passed to lower case */ +@@ -366,14 +369,14 @@ + + /* Return pointer code for pointer type characer passed. */ +-extern int getptrtype(char *); ++unsigned short getptrtype(const char *, char **end); + + /* Return part of speech code for string passed */ +-extern int getpos(char *); ++int getpos(const char *); + + /* Return synset type code for string passed. */ +-extern int getsstype(char *); ++int getsstype(const char *); + + /* Reconstruct synset from synset pointer and return ptr to buffer */ +-extern char *FmtSynset(SynsetPtr, int); ++const char *FmtSynset(SynsetPtr, int); + + /* Find string for 'searchstr' as it is in index file */ +@@ -381,37 +384,34 @@ + + /* Pass in string for POS, return corresponding integer value */ +-extern int StrToPos(char *); ++int StrToPos(const char *); + + /* Return synset for sense key passed. */ +-extern SynsetPtr GetSynsetForSense(char *); ++SynsetPtr GetSynsetForSense(const char *); + + /* Find offset of sense key in data file */ +-extern long GetDataOffset(char *); ++long GetDataOffset(const char *); + + /* Find polysemy (collins) count for sense key passed. */ +-extern int GetPolyCount(char *); ++int GetPolyCount(const char *); + + /* Return word part of sense key */ +-extern char *GetWORD(char *); ++const char *GetWORD(const char *); + + /* Return POS code for sense key passed. */ +-extern int GetPOS(char *); ++int GetPOS(const char *); + + /* Convert WordNet sense number passed of IndexPtr entry to sense key. */ + extern char *WNSnsToStr(IndexPtr, int); + +-/* Search for string and/or baseform of word in database and return +- index structure for word if found in database. */ +-extern IndexPtr GetValidIndexPointer(char *, int); +- + /* Return sense number in database for word and lexsn passed. */ +-int GetWNSense(char *, char *); ++int GetWNSense(const char *, const char *); + +-SnsIndexPtr GetSenseIndex(char *); ++SnsIndexPtr GetSenseIndex(const char *); ++void FreeSenseIndex(SnsIndexPtr); + +-char *GetOffsetForKey(unsigned int); +-unsigned int GetKeyForOffset(char *); ++const char *GetOffsetForKey(unsigned int); ++unsigned int GetKeyForOffset(const char *); + +-char *SetSearchdir(); ++const char *SetSearchdir(void); + + /* Return number of times sense is tagged */ +@@ -435,17 +435,6 @@ + /* General purpose binary search function to search for key as first + item on line in open file. Item is delimited by space. */ +-extern char *bin_search(char *, FILE *); +-extern char *read_index(long, FILE *); +- +-/* Copy contents from one file to another. */ +-extern void copyfile(FILE *, FILE *); +- +-/* Function to replace a line in a file. Returns the original line, +- or NULL in case of error. */ +-extern char *replace_line(char *, char *, FILE *); +- +-/* Find location to insert line at in file. If line with this +- key is already in file, return NULL. */ +-extern char *insert_line(char *, char *, FILE *); ++const char *bin_search(const char *, FILE *); ++const char *read_index(long, FILE *); + + #ifdef __cplusplus +@@ -453,7 +453,8 @@ + #endif + +-extern char **helptext[NUMPARTS + 1]; ++const char * const * helptext[NUMPARTS + 1]; + +-static char *license = "\ ++#ifdef DEFINE_LICENSE /* should live in wn.c */ ++const char license[] = "\ + This software and database is being provided to you, the LICENSEE, by \n\ + Princeton University under the following license. By obtaining, using \n\ +@@ -486,5 +487,5 @@ + Princeton University and LICENSEE agrees to preserve same. \n" + ; +- ++#if 0 /* { */ + static char dblicense[] = "\ + 1 This software and database is being provided to you, the LICENSEE, by \n\ +@@ -518,6 +519,9 @@ + 29 Princeton University and LICENSEE agrees to preserve same. \n" + ; +- + #define DBLICENSE_SIZE (sizeof(dblicense)) ++#endif /* } */ ++#else /* } { */ ++extern const char license[]; ++#endif /* } */ + + #endif /*_WN_*/ diff --git a/textproc/wordnet/files/patch-wnb b/textproc/wordnet/files/patch-wnb new file mode 100644 index 000000000000..d4b4eec965dc --- /dev/null +++ b/textproc/wordnet/files/patch-wnb @@ -0,0 +1,57 @@ +This patch makes wnb use man(1) to access its own man-pages instead +of relying on textual copies of them being in the $resourcedir. + +Similarly, it looks for the compiled-in license instead of opening +its textual copy. + +These leave wn.xbm as the only "resource" file, thus removing the need +for a separate resource directory. FreeBSD port installs all -- the +dictionaries and the bitmap into ${PREFIX}/share/WordNet. + + -mi + +--- src/wnb Tue Jun 7 15:19:22 2005 ++++ src/wnb Sun Jan 15 07:42:38 2006 +@@ -103,9 +100,15 @@ + + if {$tcl_platform(platform) == "unix"} { +- if {[lsearch -exact [array names env] WNHOME] == -1} { +- set resourcedir "/usr/local/WordNet-2.1/lib/wnres" +- } else { +- set resourcedir "$env(WNHOME)/lib/wnres" ++ set resourcedirs { ++ /usr/local/WordNet-2.1 ++ /usr/local/WordNet-2.1/lib/wnres ++ } ++ if {[info exists env(WNHOME)]} { ++ lappend resourcedirs $env(WNHOME) $env(WNHOME)/lib/wnres + } ++ foreach resourcedir $resourcedirs { ++ if {[file exists $resourcedir/wn.xbm]} break ++ } ++ unset resourcedirs + set configfile "$env(HOME)/.wnrc" + if [ file exists $configfile ] { +@@ -575,7 +578,19 @@ + .$w.top.text configure \ + -state normal +- set fileid [open $filename "r"] +- set filetext [read $fileid] +- close $fileid ++ switch -glob -- $filename { ++ *.man { ++ set manpage [file tail $filename] ++ set manpage [string range $manpage 0 end-4] ++ set fileid [open "|man $manpage"] ++ } */license.txt { ++ set filetext [wnlicense] ++ } default { ++ set fileid [open $filename] ++ } ++ } ++ if {[info exists fileid]} { ++ set filetext [read $fileid] ++ close $fileid ++ } + regsub -all ".\b" $filetext "" filetext + .$w.top.text insert end $filetext diff --git a/textproc/wordnet/files/patch-wnglobal b/textproc/wordnet/files/patch-wnglobal new file mode 100644 index 000000000000..1047e896a50b --- /dev/null +++ b/textproc/wordnet/files/patch-wnglobal @@ -0,0 +1,37 @@ +--- lib/wnglobal.c Fri May 6 13:17:39 2005 ++++ lib/wnglobal.c Tue Dec 20 23:29:54 2005 +@@ -11,9 +11,9 @@ + #endif + +-char *wnrelease = "2.1"; ++const char *wnrelease = "2.1"; + + /* Lexicographer file names and numbers */ + +-char *lexfiles[] = { ++const char *lexfiles[] = { + "adj.all", /* 0 */ + "adj.pert", /* 1 */ +@@ -65,5 +65,5 @@ + /* Pointer characters and searches */ + +-char *ptrtyp[]={ ++const char *ptrtyp[] = { + "", /* 0 not used */ + "!", /* 1 ANTPTR */ +@@ -110,11 +110,11 @@ + }; + +-char *partnames[]={ "", "noun", "verb", "adj", "adv", NULL }; +-char partchars[] = " nvara"; /* add char for satellites to end */ +-char *adjclass[] = { "", "(p)", "(a)", "(ip)" }; ++const char *partnames[]={ "", "noun", "verb", "adj", "adv", NULL }; ++const char partchars[] = " nvara"; /* add char for satellites to end */ ++const char *adjclass[] = { "", "(p)", "(a)", "(ip)" }; + + /* Text of verb sentence frames */ + +-char *frametext[] = { ++const char *frametext[] = { + "", + "Something ----s", diff --git a/textproc/wordnet/files/patch-wnhelp b/textproc/wordnet/files/patch-wnhelp new file mode 100644 index 000000000000..f731a48fa6ab --- /dev/null +++ b/textproc/wordnet/files/patch-wnhelp @@ -0,0 +1,43 @@ +--- lib/wnhelp.c Fri May 6 13:17:39 2005 ++++ lib/wnhelp.c Wed Dec 21 17:25:27 2005 +@@ -7,4 +7,5 @@ + /* $Id: wnhelp.c,v 1.14 2005/02/01 17:03:46 wn Rel $ */ + ++#define DEFINE_LICENSE + #include "wn.h" + +@@ -239,5 +240,5 @@ + "; + +-static char *nounhelps[] = { ++static const char *nounhelps[] = { + hyper_help, + relatives_help, +@@ -259,5 +260,5 @@ + }; + +-static char *verbhelps[] = { ++static const char *verbhelps[] = { + hyper_help, + relatives_help, +@@ -276,5 +277,5 @@ + }; + +-static char *adjhelps[] = { ++static const char *adjhelps[] = { + /* SIMPTR */ + "Display synonyms and synsets related to synsets containing \n\ +@@ -351,5 +352,5 @@ + }; + +-static char *advhelps[] = { ++static const char *advhelps[] = { + /* SIMPTR */ + "Display synonyms and synsets related to synsets containing \n\ +@@ -370,5 +371,5 @@ + }; + +-char **helptext[NUMPARTS + 1] = { ++const char * const *helptext[NUMPARTS + 1] = { + NULL, nounhelps, verbhelps, adjhelps, advhelps + }; diff --git a/textproc/wordnet/files/patch-wnrtl b/textproc/wordnet/files/patch-wnrtl new file mode 100644 index 000000000000..285783c16fcd --- /dev/null +++ b/textproc/wordnet/files/patch-wnrtl @@ -0,0 +1,17 @@ +--- lib/wnrtl.c Fri May 6 13:17:39 2005 ++++ lib/wnrtl.c Wed Dec 21 00:21:04 2005 +@@ -8,5 +8,5 @@ + #include "wn.h" + +-static char *Id = "$Id: wnrtl.c,v 1.8 2005/01/27 17:33:54 wn Rel $"; ++__FBSDID("$Id: wnrtl.c,v 1.8 2005/01/27 17:33:54 wn Rel $"); + + /* Search code variables and flags */ +@@ -43,6 +43,5 @@ + Default function provided in library returns -1 */ + +-int default_display_message(char *); +-int (*display_message)(char *) = default_display_message; ++int (*display_message)(const char *) = default_display_message; + + /* diff --git a/textproc/wordnet/files/src.Makefile b/textproc/wordnet/files/src.Makefile deleted file mode 100644 index f5df548ec758..000000000000 --- a/textproc/wordnet/files/src.Makefile +++ /dev/null @@ -1,3 +0,0 @@ -SUBDIR= lib wn wnb - -.include <bsd.subdir.mk> diff --git a/textproc/wordnet/files/src.lib.Makefile b/textproc/wordnet/files/src.lib.Makefile index e7f80959eb06..0e0eaa1a59c3 100644 --- a/textproc/wordnet/files/src.lib.Makefile +++ b/textproc/wordnet/files/src.lib.Makefile @@ -1,13 +1,14 @@ -SRCS= binsrch.c morph.c search.c setutil.c wnglobal.c \ +SRCS= binsrch.c morph.c search.c wnglobal.c \ wnhelp.c wnrtl.c wnutil.c -CFLAGS+= -DUNIX -DDEFAULTPATH="\"${PREFIX}/share/WordNet-${VER}\"" \ +CFLAGS+= -DUNIX -DDEFAULTPATH="\"${PREFIX}/share/WordNet\""\ -DDEFAULTBIN="\"${PREFIX}/bin\"" -CFLAGS+= -I${.CURDIR}/../../include +CFLAGS+= -I${.CURDIR:H}/include -LIB= wn2 -SHLIB_MAJOR= 0 +LIB= WN +WARNS= 5 +SHLIB_MAJOR= 2 NOPROFILE= True LIBDIR= ${PREFIX}/lib diff --git a/textproc/wordnet/files/src.wn.Makefile b/textproc/wordnet/files/src.wn.Makefile index ce24168a5355..e8764bbbfef2 100644 --- a/textproc/wordnet/files/src.wn.Makefile +++ b/textproc/wordnet/files/src.wn.Makefile @@ -1,11 +1,11 @@ PROG= wn -NOMAN= True # man pages installed separately +NO_MAN= True # man pages installed separately -CFLAGS+= -DUNIX -DDEFAULTPATH="\"${PREFIX}/share/WordNet-${VER}\"" \ +CFLAGS+= -DUNIX -DDEFAULTPATH="\"${PREFIX}/share/WordNet\"" \ -DDEFAULTBIN="\"${PREFIX}/bin\"" -CFLAGS+= -I${.CURDIR}/../../include -LDADD+= -L../lib -lwn2 +CFLAGS+= -I${.CURDIR:H}/include +LDADD+= -L../lib -lWN BINDIR= ${PREFIX}/bin diff --git a/textproc/wordnet/files/src.wnb.Makefile b/textproc/wordnet/files/src.wnb.Makefile index 38baeeb2696c..1f65b17400f4 100644 --- a/textproc/wordnet/files/src.wnb.Makefile +++ b/textproc/wordnet/files/src.wnb.Makefile @@ -3,16 +3,18 @@ TCL_DVER?= 8.4 TCL_VER= ${TCL_DVER:S/.//g} TCL_INCDIR?= ${PREFIX}/include/tcl${TCL_DVER} -CFLAGS+= -DUNIX -DDEFAULTPATH="\"${PREFIX}/share/WordNet-${VER}\"" \ - -DDEFAULTBIN="\"${PREFIX}/bin\"" +CFLAGS+= -DUNIX -DDEFAULTPATH="\"${PREFIX}/share/WordNet\"" \ + -DDEFAULTBIN="\"${PREFIX}/bin\"" -DHAVE_LANGINFO_CODESET CFLAGS+= -I${.CURDIR}/../../include -I$(TCL_INCDIR) -LDADD= -L../lib -lwn2 -L${PREFIX}/lib -ltcl${TCL_VER} -ltk${TCL_VER} +LDADD= -L.. -lWN -L${PREFIX}/lib -ltcl${TCL_VER} # -ltk${TCL_VER} SHLIB_NAME= libtclwn2.so.0 SRCS= stubs.c +.PATH: ${.CURDIR:H:H}/src + all: pkgIndex.tcl pkgIndex.tcl: @@ -21,18 +23,14 @@ pkgIndex.tcl: > pkgIndex.tcl LIBDIR= ${PREFIX}/lib -RESDIR= ${PREFIX}/share/WordNet-${VER}/wnres +RESDIR= ${PREFIX}/share/WordNet/ ${LIBDIR} ${RESDIR} ${LIBDIR}/tcl${TCL_DVER}/Wordnet: mkdir -p ${.TARGET} beforeinstall: ${LIBDIR} ${RESDIR} ${LIBDIR}/tcl${TCL_DVER}/Wordnet - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ - pkgIndex.tcl ${LIBDIR}/tcl${TCL_DVER}/Wordnet - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \ - ${.CURDIR}/../lib/wnres/license.txt \ - ${.CURDIR}/../lib/wnres/*.xbm ${RESDIR} - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 755 \ - wnb ${PREFIX}/bin + ${BSD_INSTALL_DATA} pkgIndex.tcl ${LIBDIR}/tcl${TCL_DVER}/Wordnet + ${BSD_INSTALL_DATA} ${.CURDIR}/*.xbm ${RESDIR} + ${BSD_INSTALL_SCRIPT} ${.CURDIR:H:H}/src/wnb ${PREFIX}/bin .include <bsd.lib.mk> diff --git a/textproc/wordnet/pkg-plist b/textproc/wordnet/pkg-plist index 814625ed4cab..eaba3e3938f2 100644 --- a/textproc/wordnet/pkg-plist +++ b/textproc/wordnet/pkg-plist @@ -1,40 +1,33 @@ bin/wnb bin/wn -include/WordNet-%%VER%%/license.h -include/WordNet-%%VER%%/setutil.h -include/WordNet-%%VER%%/wn.h -include/WordNet-%%VER%%/wnconsts.h -include/WordNet-%%VER%%/wnglobal.h -include/WordNet-%%VER%%/wnhelp.h -include/WordNet-%%VER%%/wnrtl.h -include/WordNet-%%VER%%/wntypes.h -lib/libwn2.a -lib/libwn2.so.0 -lib/libwn2.so +include/WordNet/wn.h +include/WordNet/wngrind.h +lib/libWN.a +lib/libWN.so.2 +lib/libWN.so lib/libtclwn2.so.0 lib/libtclwn2.so lib/tcl%%TCL_DVER%%/Wordnet/pkgIndex.tcl -share/WordNet-%%VER%%/adj.exc -share/WordNet-%%VER%%/adv.exc -share/WordNet-%%VER%%/cntlist -share/WordNet-%%VER%%/cntlist.rev -share/WordNet-%%VER%%/data.adj -share/WordNet-%%VER%%/data.adv -share/WordNet-%%VER%%/data.noun -share/WordNet-%%VER%%/data.verb -share/WordNet-%%VER%%/index.adj -share/WordNet-%%VER%%/index.adv -share/WordNet-%%VER%%/index.noun -share/WordNet-%%VER%%/index.sense -share/WordNet-%%VER%%/index.verb -share/WordNet-%%VER%%/lexnames -share/WordNet-%%VER%%/noun.exc -share/WordNet-%%VER%%/sentidx.vrb -share/WordNet-%%VER%%/sents.vrb -share/WordNet-%%VER%%/verb.exc -share/WordNet-%%VER%%/wnres/license.txt -share/WordNet-%%VER%%/wnres/wn.xbm -@dirrm include/WordNet-%%VER%% +share/WordNet/adj.exc +share/WordNet/adv.exc +share/WordNet/cntlist +share/WordNet/cntlist.rev +share/WordNet/data.adj +share/WordNet/data.adv +share/WordNet/data.noun +share/WordNet/data.verb +share/WordNet/frames.vrb +share/WordNet/index.adj +share/WordNet/index.adv +share/WordNet/index.noun +share/WordNet/index.sense +share/WordNet/index.verb +share/WordNet/noun.exc +share/WordNet/sentidx.vrb +share/WordNet/sents.vrb +share/WordNet/verb.exc +share/WordNet/verb.Framestext +share/WordNet/wn.xbm +@dirrm include/WordNet @dirrm lib/tcl%%TCL_DVER%%/Wordnet -@dirrm share/WordNet-%%VER%%/wnres -@dirrm share/WordNet-%%VER%% +@dirrm share/WordNet diff --git a/textproc/wordnet/scripts/configure b/textproc/wordnet/scripts/configure index b02bfa80a898..297a996aa8a7 100644 --- a/textproc/wordnet/scripts/configure +++ b/textproc/wordnet/scripts/configure @@ -1,12 +1,27 @@ #!/bin/sh for mf in ${FILESDIR}/*Makefile ; do \ - dir=${WRKSRC}/`basename $mf | sed -e s%Makefile%% -e 's%\.%/%g'` ; \ + dir=`basename $mf | sed -e s%Makefile%% -e 's%\.%/%g'` + case "$dir" in + "man/") + dir=doc/man/ + ;; + "src/lib/") + dir=lib/ + ;; + "src/wn/") + dir=src/ + ;; + "src/wnb/") + dir=lib/wnres/ + ;; + esac + dir=${WRKSRC}/$dir test -f ${dir}Makefile.orig && continue - mv ${dir}Makefile ${dir}Makefile.orig ; \ - cp -p $mf ${dir}Makefile ; \ + test -f ${dir}Makefile && mv ${dir}Makefile ${dir}Makefile.orig + cp -p $mf ${dir}Makefile done -patch -d ${WRKSRC}/src/wnb -p << EOPATCH +patch -d ${WRKSRC}/src -p << EOPATCH Configuring the wnb script to call the right wish-binary directly --- wnb Sun Feb 22 12:49:56 1998 +++ wnb Sat Feb 26 17:41:06 2000 |