This is addfulltextindex.c in view mode; [Download] [Up]
/* * addfulltextindex file.nxbf * Add an empty BTree called "FullTextIndex" to the file named on * the command line. This can be used to repair the thesaurus * by doing * * addfulltextindex /NextLibrary/References/Webster-Thesaurus/Thesaurus.nxbf * * Now that the thesaurus has a full text index, the NeXT libtext() routines * can be used on the thesaurus without crashing. * * to compile, cc -o addfulltextindex addfulltextindex.c -lbtree * * Steve Hayman * sahayman@cs.indiana.edu * May 13 1991 * */ //#include "websterd.h" #import <stdio.h> #import <objc/Object.h> #import "/usr/local/include/btree/BTreeFile.h" #import "/usr/local/include/btree/BTree.h" main(argc, argv) int argc; char *argv[]; { id TBF; char **TB_contents; BTree *FullTextIndex; if ( argc != 2 ) { fprintf(stderr, "%s: Usage: %s file.nxbf\n", argv[0], argv[0]); exit(1); } NX_DURING TBF = [BTreeFile openFile: argv[1] forWriting: 1 ]; NX_HANDLER /* * I don't really know how to handle this yet, or what facilities * libbtree.a provides for handling errors, or what the various * btree error codes mean. */ fprintf(stderr, "%s: Exception occurred while trying to open %s\n", argv[0], argv[1] ); fprintf(stderr, "%s: Exception Code: %d Data1: %s Data2: %s\n", argv[0], NXLocalHandler.code, NXLocalHandler.data1, NXLocalHandler.data2 ); /* * I do know that you seem to get error 9011 if the dictionary * couldn't be locked */ if ( NXLocalHandler.code == 9011 ) { fprintf(stderr, "%s: Perhaps the file couldn't be locked. Kill Webster if it's running\n", argv[0]); } exit(1); NX_ENDHANDLER TB_contents = [TBF contents]; while ( TB_contents && *TB_contents ) { if (strcmp(*TB_contents, "FullTextIndex") == 0 ) { fprintf(stderr, "%s: %s already has a FullTextIndex. No action taken\n", argv[0], argv[1]); exit(1); } TB_contents++; } /* * ok here we go */ FullTextIndex = [TBF createBTreeNamed: "FullTextIndex"]; [FullTextIndex empty]; [TBF save]; exit(0); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.