summaryrefslogtreecommitdiff
path: root/textproc/wordnet/files/patch-src__stubs.c
diff options
context:
space:
mode:
authorAdam Weinberger <adamw@FreeBSD.org>2014-07-29 15:20:01 +0000
committerAdam Weinberger <adamw@FreeBSD.org>2014-07-29 15:20:01 +0000
commit0438fc26f0d6919bbce73c2edd0403bc86de4371 (patch)
tree2150fb848141aac7ed7a5aa3efcb9d9faa7d5fa2 /textproc/wordnet/files/patch-src__stubs.c
parentRename sysutils/ patch-xy patches to reflect the files they modify. (diff)
Rename textproc/ patch-xy patches to reflect the files they modify.
Notes
Notes: svn path=/head/; revision=363336
Diffstat (limited to 'textproc/wordnet/files/patch-src__stubs.c')
-rw-r--r--textproc/wordnet/files/patch-src__stubs.c316
1 files changed, 316 insertions, 0 deletions
diff --git a/textproc/wordnet/files/patch-src__stubs.c b/textproc/wordnet/files/patch-src__stubs.c
new file mode 100644
index 000000000000..95023f67ab51
--- /dev/null
+++ b/textproc/wordnet/files/patch-src__stubs.c
@@ -0,0 +1,316 @@
+--- src/stubs.c.orig 2007-01-04 18:47:55.000000000 +0100
++++ src/stubs.c 2013-05-22 17:34:59.000000000 +0200
+@@ -11,10 +11,9 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <tcl.h>
+-#include <tk.h>
+ #include <wn.h>
+
+-static char *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];
+
+@@ -33,26 +32,26 @@
+ ** the search word's base form.
+ */
+
+-int wn_findvalidsearches (ClientData clientData, Tcl_Interp *interp,
+- int argc, char *argv[]) {
++static int
++wn_findvalidsearches (ClientData clientData, Tcl_Interp *interp,
++ int argc, Tcl_Obj * const objv[]) {
+ unsigned int bitfield;
+- static char bitfieldstr[32];
+- char *morph;
++ const char *morph;
+ int pos;
+ if (argc != 3) {
+- interp -> result =
+- "usage: findvalidsearches searchword partofspeechnum";
++ Tcl_WrongNumArgs(interp, 1, objv,
++ "findvalidsearches searchword partofspeechnum");
+ return TCL_ERROR;
+ }
+- pos = atoi (argv[2]);
+- bitfield = is_defined (argv[1], pos);
+- if ((morph = morphstr (argv[1], pos)) != NULL) {
++ if (Tcl_GetIntFromObj(interp, objv[2], &pos) != TCL_OK)
++ return TCL_ERROR;
++ bitfield = is_defined (Tcl_GetString(objv[1]), pos);
++ if ((morph = morphstr (Tcl_GetString(objv[1]), pos)) != NULL) {
+ do {
+ 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;
+ }
+
+@@ -63,19 +62,17 @@
+ ** the results of findvalidsearches. Invoked from Tcl as "bit".
+ */
+
+-int wn_bit (ClientData clientData, Tcl_Interp *interp,
+- int argc, char *argv[]) {
+- unsigned int bitfield;
+- static char bitfieldstr[32];
++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";
++ Tcl_WrongNumArgs(interp, 1, objv, "bitnum");
+ return TCL_ERROR;
+ }
+- whichbit = atoi (argv[1]);
+- bitfield = bit (whichbit);
+- sprintf (bitfieldstr, "%u", bitfield);
+- interp -> result = bitfieldstr;
++ if (Tcl_GetIntFromObj(interp, objv[1], &whichbit) != TCL_OK)
++ return TCL_ERROR;
++ Tcl_SetObjResult(interp, Tcl_NewIntObj(bit(whichbit)));
+ return TCL_OK;
+ }
+
+@@ -84,13 +81,13 @@
+ ** It is invoked from Tcl simply as "search".
+ */
+
+-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 =
+- "usage: search searchword partofspeechnum searchtypenum sensenum";
++ Tcl_SetObjResult(interp, Tcl_NewStringObj ("usage: search searchword partofspeechnum searchtypenum sensenum", -1));
+ return TCL_ERROR;
+ }
+ pos = atoi (argv[2]);
+@@ -102,7 +99,7 @@
+ strcat (resultbuf, findtheinfo (morph, pos, searchtype, sense));
+ } while ((morph = morphstr (NULL, pos)) != NULL);
+ }
+- interp -> result = resultbuf;
++ Tcl_SetObjResult(interp, Tcl_NewStringObj(resultbuf, -1));
+ return TCL_OK;
+ }
+
+@@ -111,10 +108,11 @@
+ ** results.
+ */
+
+-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]";
++ Tcl_SetObjResult(interp, Tcl_NewStringObj("usage: glosses [1 | 0]", -1));
+ return TCL_ERROR;
+ }
+ dflag = atoi (argv[1]);
+@@ -126,10 +124,11 @@
+ ** results.
+ */
+
+-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]";
++ Tcl_SetObjResult(interp, Tcl_NewStringObj("usage: fileinfo [1 | 0]", -1));
+ return TCL_ERROR;
+ }
+ fileinfoflag = atoi (argv[1]);
+@@ -141,10 +140,11 @@
+ ** in the search results.
+ */
+
+-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]";
++ Tcl_SetObjResult(interp, Tcl_NewStringObj("usage: byteoffset [1 | 0]", -1));
+ return TCL_ERROR;
+ }
+ offsetflag = atoi (argv[1]);
+@@ -156,13 +156,17 @@
+ ** returned.
+ */
+
+-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;
+ }
+
+@@ -171,26 +175,30 @@
+ ** type of search does.
+ */
+
+-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) {
+- interp -> result = "usage: contextualhelp partofspeechnum searchtypenum";
++ Tcl_SetObjResult(interp, Tcl_NewStringObj("usage: contextualhelp partofspeechnum searchtypenum", -1));
+ 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;
+ }
+
+ /* This command, accessed in Tcl as "reopendb" reopens the WordNet database.
+ */
+
+-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";
++ Tcl_SetObjResult(interp, Tcl_NewStringObj("usage: reopendb", -1));
+ return TCL_ERROR;
+ }
+ re_wninit ();
+@@ -201,22 +209,40 @@
+ ** stop whatever search it is currently in the middle of performing.
+ */
+
+-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";
++ Tcl_SetObjResult(interp, Tcl_NewStringObj("usage: abortsearch", -1));
+ return TCL_ERROR;
+ }
+ abortsearch = 1;
+ return TCL_OK;
+ }
+
++/* 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
+ ** of a stop button) during the search.
+ */
+
+-void tkwn_doevents (void) {
++static void
++tkwn_doevents (void) {
+ while (Tcl_DoOneEvent (TCL_WINDOW_EVENTS | TCL_DONT_WAIT) != 0) {}
+ }
+
+@@ -225,13 +251,14 @@
+ ** specific, since it uses the native error reporting mechanism.
+ */
+
+-int tkwn_displayerror (char *msg) {
++static int
++tkwn_displayerror (const char *msg) {
+ #ifdef _WINDOWS
+ MessageBeep (MB_ICONEXCLAMATION);
+ MessageBox (NULL, msg, "WordNet Library Error",
+ MB_ICONEXCLAMATION | MB_OK | MB_TASKMODAL | MB_SETFOREGROUND);
+ #else
+- fprintf (stderr, "%s", msg);
++ fputs(msg, stderr);
+ #endif
+ return -1;
+ }
+@@ -245,26 +272,27 @@
+ interface_doevents_func = tkwn_doevents;
+ display_message = tkwn_displayerror;
+ wninit ();
+- Tcl_CreateCommand (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", wn_bit, (ClientData) NULL,
+ (Tcl_CmdDeleteProc *) NULL);
+- 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;
++ Tcl_CreateObjCommand (interp, "wnlicense", wn_license,
++ (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
++ return Tcl_PkgProvide(interp, "Wordnet", "3.0");
+ }
+-