123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639 |
- /*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these libraries and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
- /*
- * COMPONENT_NAME: austext
- *
- * FUNCTIONS: none
- *
- * ORIGINS: 27
- *
- *
- * (C) COPYRIGHT International Business Machines Corp. 1991,1995
- * All Rights Reserved
- * Licensed Materials - Property of IBM
- * US Government Users Restricted Rights - Use, duplication or
- * disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- */
- #ifndef _SearchE_h
- #define _SearchE_h
- /***************************** SearchE.h ******************************
- * $XConsortium: SearchE.h /main/5 1996/08/12 13:16:47 cde-ibm $
- * August 1991.
- * Header file for online DtSearch Engine (OE.C etc).
- * SearchE.h was formerly called oe.h (Opera Engine).
- * The old OE engine is pretty much invisible now, having
- * been surrounded by the ausapi/DtSearch interface.
- *
- * The main data structure for passing and receiving arguments
- * between the callers and the engine is USRBLK which is
- * the only argument in the Opera_Engine() call.
- * The actual input and output arguments in the USRBLK for each
- * function are described below with the function description.
- *
- * All OE_functions pass a return code
- * to the caller. OE_OK = successful completion,
- * anything else may be partial completion/success or failure.
- * Return code mnemonics are also defined below.
- *
- * $Log$
- * Revision 2.7 1996/03/20 19:11:21 miker
- * Changed prototype of hilite_cleartext().
- *
- * Revision 2.6 1996/03/13 22:34:53 miker
- * Changed char to UCHAR several places.
- *
- * Revision 2.5 1996/03/05 19:17:50 miker
- * oe_unblob no longer converts to uppercase.
- *
- * Revision 2.4 1996/03/05 15:54:06 miker
- * Minor changes to support yacc-based boolean search.
- *
- * Revision 2.3 1996/02/01 16:14:38 miker
- * Obsoleted requests OE_DITTO2KWIC, OE_VALIDATE_PWD, OE_CHANGE_PWD,
- * OE_FINDSTR_REC, OE_FINDSTR_HITL, OE_ASSIST, OE_KILL.
- * Restored OE_PING as the official "null" function.
- * Added USRDBG_HILITE and USRDBG_PARSE.
- * Replaced STRKIND, OE_kind_of_stems, and oe_stems_to_hitwords
- * with hilite_cleartext. Deleted oe_ditto2kwic, oe_findstr_hitl.
- * Deleted usrblk.kwiclen.
- *
- * Revision 2.2 1995/10/25 22:35:45 miker
- * Added prolog.
- *
- * Revision 2.1 1995/09/22 22:39:39 miker
- * Freeze DtSearch 0.1, AusText 2.1.8
- *
- * Revision 1.1 1995/08/31 20:42:33 miker
- * Initial revision
- *
- * The DtSearch return codes wrap around the OE return codes.
- */
- #include "SearchP.h"
- #define AUDIT_FORMAT "UID=%-8s TIME=%s ELAP=%-3ld DB=%-8s HITS=%-5ld "
- #define AUDIT_WHOWHEN "UID=%-8s TIME=%s"
- #define DISCARD_FORMAT "%s\t\"%s\"\t%s\t%s\n"
- #define HARDCOPY_SCRIPT "opprt.bat"
- #define MAX_HITWCOUNT 200 /* max number hitwords that can be hilited */
- #define WORDS_HITLIMIT 300000L
- /*-------------------- Request Codes ------------------------
- * All Engine requests, in addition to input below, require valid
- * usrblk.userid
- * usrblk.request.
- * All Engine requests, in addition to output below,
- * may return ausapi_msglist.
- * There is no zero request code.
- * See list of return codes for the ones that are marked 'common retncodes'.
- */
- #define OE_INITIALIZE 1
- /* does lotsa stuff--see the function.
- * input:
- * .query = AUSAPI_VERSION of UI code
- * .dblist = data from user config file
- * .dblk = data from user config file
- * output:
- * .dblist = modified after load of site config file
- * .dblk = modified after load of site config file
- * .retncode = OE_OK, OE_NOTAVAIL, OE_ABORT
- */
- #define OE_TEXT2FZKEY 2
- /* converts problem description text to fzkey.
- * input:
- * .query = problem description text
- * .dblk = desired database and db parameters
- * output:
- * .fzkey = inference from query text analysis
- * .retncode = common retncodes + OE_BAD_QUERY
- */
- #define OE_SRCH_FZKEY 3
- /* Converts fzkey to hitlist of dba's.
- * Not available for databases without semantic dictionaries.
- * input:
- * .fzkey = database search vector
- * .dblk = desired database and db parameters
- * output:
- * .workproc = function to be called until !OE_SEARCHING
- * .dittolist = hitlist sorted by proximity
- * .dittocount = # of nodes on dittolist
- * .retncode = common retncodes + OE_SEARCHING, OE_NOTAVAIL,
- * OE_USER_STOP, OE_SYSTEM_STOP, OE_BAD_QUERY
- */
- #define OE_SRCH_STEMS 4
- /* converts string of wordstems and booleans to
- * hitlist of dba's and stems array.
- * input:
- * .query = text string of wordstems and booleans
- * .dblk = desired database and db parameters
- * output:
- * .fzkey = (value undefined)
- * .workproc = function to be called until !OE_SEARCHING
- * .dittolist = hitlist
- * .dittocount = # of nodes on dittolist
- * .stems = array of stems for hiliting in text of hits
- * .stemcount = size of 'stems' array
- * .retncode = common retncodes + OE_BAD_QUERY, OE_SEARCHING,
- * OE_NOTAVAIL, OE_USER_STOP
- */
- #define OE_SRCH_WORDS 5
- /* converts string of exact words and booleans to
- * hitlist of dba's and stems array.
- * input:
- * .query = text string of exact words and booleans
- * .dblk = desired database and db parameters
- * output:
- * .fzkey = (value undefined)
- * .workproc = function to be called until !OE_SEARCHING
- * .dittolist = hitlist
- * .dittocount = # of nodes on dittolist
- * .stems = array of words for hiliting in text of hits
- * .stemcount = size of 'stems' array
- * .retncode = common retncodes + OE_BAD_QUERY, OE_SEARCHING,
- * OE_NOTAVAIL, OE_USER_STOP
- */
- #define OE_STOP_SRCH 6
- /* sets global switch to cancel search work procedure.
- * workproc actually cancels itself after reading switch.
- * input: .request = OE_STOP_SEARCH
- * output: .retncode = 'common retncodes' only
- */
- #define OE_APPEND_NOTES 7
- /* appends user's notes to record at current dba.
- * input:
- * .query = freeform text of append
- * .dba = address of record to append
- * .dblk = desired database and db parameters
- * output:
- * .retncode = common retncodes + OE_TIMEOUT, OE_DISABLED
- */
- #define OE_GETREC 8
- /* retrieves record, cleartext, and notes for specified dba.
- * Clears hitwords array, does not use or change stems array.
- * input:
- * .dba = address of record to retrieve
- * .dblk = desired database and db parameters
- * output:
- * .objrec = austext record itself, as is from vista
- * .cleartext = NULL or uncompressed text string
- * .clearlen = 0 or size of cleartext
- * .hitwords = array pointer cleared to NULL
- * .hitwcount = size of hitwords array set to 0
- * .notes = NULL, or list of notes records, as is
- * .retncode = common retncodes + OE_NOTAVAIL
- */
- #define OE_GETREC_STEMS 9
- /* retrieves record, cleartext, notes, and hitwords
- * array for specified dba and stems (from OE_SRCH_STEMS).
- * If no text in repository, equivalent to OE_GETREC.
- * input:
- * .dba = address of record to retrieve
- * .stems = array of word stems to hilite
- * .stemcount = size of stems array
- * .dblk = desired database and db parameters
- * output:
- * .objrec = austext record itself, as is from vista
- * .cleartext = NULL or uncompressed text string
- * .clearlen = 0 or size of cleartext
- * .hitwords = NULL or array of words in cleartext to hilite
- * .hitwcount = 0 or size of hitwords array
- * .notes = NULL, or list of notes records, as is
- * .retncode = common retncodes + OE_NOTAVAIL
- */
- #define OE_GETREC_WORDS 10
- /* retrieves record, cleartext, notes, and hitwords
- * array for specified dba and stems array (from OE_SRCH_WORDS).
- * If no text in repository, equivalent to OE_GETREC.
- * input:
- * .dba = address of record to retrieve
- * .stems = array of exact words to hilite
- * .stemcount = size of stems array
- * .dblk = desired database and db parameters
- * output:
- * .objrec = austext record itself, as is from vista
- * .cleartext = NULL or uncompressed text string
- * .clearlen = 0 or size of cleartext
- * .hitwords = NULL or array of words in cleartext to hilite
- * .hitwcount = 0 or size of hitwords array
- * .notes = NULL, or list of notes records, as is
- * .retncode = common retncodes + OE_NOTAVAIL
- */
- #define OE_NEXT_DBA 11
- /* advances dba to next valid b-tree address. Wraps if necessary.
- * input:
- * .dba = current address of record
- * .dblk = desired database and db parameters
- * output:
- * .dba = address of next record in b-tree
- * .retncode = common retncodes + OE_WRAPPED
- */
- #define OE_PREV_DBA 12
- /* retreats dba to previous valid b-tree address.
- * Wraps if necessary.
- * input:
- * .dba = current address of record
- * .dblk = desired database and db parameters
- * output:
- * .dba = address of previous record in b-tree
- * .retncode = common retncodes + OE_WRAPPED
- */
- #define OE_RECKEY2DBA 13
- /* converts an austext record key into a dba. Wraps if not found.
- * input:
- * .query = desired record key
- * .dblk = desired database and db parameters
- * output:
- * .dba = address of record found,
- * or next avail address if not found
- * .retncode = common retncodes + OE_WRAPPED
- */
- #define OE_MARK_DELETION 14
- /* writes record id to an external file for
- * possible later deletion by external program.
- * input:
- * .query = record key to be marked for deletion
- * .dblk = database where record is located
- * output:
- * .retncode = common retncodes + OE_NOTAVAIL, OE_DISABLED
- */
- #define OE_GETREC_DIC 15
- /* THIS FUNCTION IS NO LONGER SUPPORTED.
- * IF RECEIVED BY ENGINE, IT IS TREATED EXACTLY AS OE_GETREC.
- * Retrieves record, cleartext, notes, and hitwords
- * array for specified dba. Hitwords are not derived from the
- * stems array; they are all the cleartext words that are in
- * the dictionary. (Compare to OE_GETREC_WORDS and OE_GETREC_STEMS).
- * If no text in repository, equivalent to OE_GETREC.
- * input:
- * .dba = address of record to retrieve
- * .dblk = desired database and db parameters
- * output:
- * .objrec = austext record itself, as is from vista
- * .cleartext = NULL or uncompressed text string
- * .clearlen = 0 or size of cleartext
- * .hitwords = NULL or array of words in cleartext to hilite
- * .hitwcount = 0 or size of hitwords array
- * .notes = NULL, or list of notes records, as is
- * .retncode = common retncodes + OE_NOTAVAIL
- */
- #define OE_DITTO2KWIC 16
- #define OE_VALIDATE_PWD 17
- #define OE_CHANGE_PWD 18
- /* (These functions are obsolete) */
- #define OE_DELETE_RECID 19
- /* Deletes header record, all text, user notes,
- * and word/stems references for specified record.
- * Currently can only be called from offline program
- * when all online austext users have been logged off.
- * THIS FUNCTION IS <<<VERY>>> SLOW (about 15 min on large dbase)!
- * input:
- * .query = desired record key
- * .dblk = desired database and db parameters
- * output:
- * .dba = address of record deleted
- * THIS ADDRESS IS NO LONGER VALID!
- * .dbatab = (undefined)
- * .dbacount = 1
- * .retncode = common retncodes + OE_NOTAVAIL
- */
- #define OE_DELETE_BATCH 20
- /* Deletes header records, all text, user notes,
- * and word/stems references for all records in a
- * datbase address table. Currently can only be called
- * from offline program when all online austext users
- * have been logged off. This function is the preferred
- * deletion method because it is faster than deleting
- * single records at a time. Addresses not found are ignored.
- * input:
- * .dblk = desired database and db parameters
- * .dbatab = table of valid addresses to be deleted
- * .dbacount = number of addresses on the table
- * output:
- * .retncode = common retncodes only
- */
- #define OE_ASSIST 21
- #define OE_FINDSTR_REC 22
- #define OE_FINDSTR_HITL 23
- /* (These functions are obsolete) */
- #define OE_SRCH_STATISTICAL 24
- /* Converts string of natural language text to
- * hitlist of dba's and stems array. Uses stems only,
- * no booleans, all words are ORed together. Hitlist sorted
- * based on statistics of included word stems.
- * input:
- * .query = natural language text string
- * .dblk = desired database and db parameters
- * output:
- * .stems = array of stems for hiliting in text of hits
- * .stemcount = size of 'stems' array (up to max allowed)
- * .workproc = function to be called until !OE_SEARCHING
- * .dittolist = hitlist
- * .dittocount = # of nodes on dittolist
- * .retncode = common retncodes + OE_BAD_QUERY, OE_SEARCHING,
- * OE_NOTAVAIL, OE_USER_STOP
- */
- #define OE_HILITE_STEMS 25
- /* Creates a hitwords array for hiliting using the text
- * in cleartext (however it may have been obtained),
- * and the stems array from the last search.
- * input:
- * .cleartext = text to be hilited
- * .clearlen = size of cleartext
- * .stems = array of words or stems to hilite
- * .stemcount = size of stems array
- * .search_type = 'W', 'P' or 'S', indicating type of
- * search that generated stems array.
- * output:
- * .hitwords = array of words in cleartext to hilite
- * .hitwcount = size of hitwords array
- * .retncode = common retncodes + OE_NOTAVAIL, OE_BAD_QUERY
- */
- #define OE_GET_EXPIRE 26
- /* Returns in 'dba' field the expiration date of OE as a timestamp.
- * Zero means no expiration date. Overlays previous value in dba.
- * input: .request = OE_GET_EXPIRE
- * output: .dba = unix timestamp of expiration date or 0
- * .retncode = common retncodes only
- */
- #define OE_KILL 9997
- #define OE_PING 9998
- #define OE_SHUTDOWN 9999
- /* (These functions are obsolete) */
- /*-------------------- Return Codes ------------------------
- * The return codes marked 'common retncodes' are OE_OK, OE_NOOP, OE_REINIT,
- * and OE_ABORT, and can be returned by almost all functions.
- * OE_BAD_QUERY will be returned for any unknown function request.
- * There is no zero return code.
- */
- #define OE_OK 1 /* normal successful completion */
- #define OE_REINIT 2 /* request canceled: OE reinitialized
- * databases so UI's dba's may be bad */
- #define OE_SEARCHING 3 /* keep calling workproc */
- #define OE_BAD_DBLK 4
- #define OE_BAD_REQUEST 5 /* invalid request field */
- #define OE_BAD_QUERY 6 /* invalid query or other input fld */
- #define OE_NOTAVAIL 7 /* no record, hits, function disabled */
- #define OE_TIMEOUT 8
- #define OE_WRAPPED 9 /* got next item instead of reqstd item */
- #define OE_SYSTEM_STOP 10 /* error: search canceled by OE */
- #define OE_BAD_PASSWD 11 /* invalid password */
- #define OE_BAD_HITLIST 12 /* invalid hitlist */
- #define OE_DISABLED 13 /* requested function disabled at this site */
- #define OE_USER_STOP 14 /* search canceled by user */
- #define OE_BAD_COMM 15 /* request canceled by comm layer */
- #define OE_NOOP 888 /* No Operation, nothing done */
- #define OE_ABORT 999 /* fatal OE error, OE permanently disabled */
- /****************************************/
- /* */
- /* OEFTAB */
- /* */
- /****************************************/
- /* Table used in load_ocf() oe_uninitialize() to allow overriding default
- * locations of various files. Complete discussion in .ocf documentation.
- */
- typedef struct
- {
- char *id; /* keyword identifier */
- char **OEFptr; /* addr of variable to change */
- char previously_specified; /* bool ensures only one spec */
- } OEFTAB;
- /****************************************/
- /* */
- /* USRBLK */
- /* */
- /****************************************/
- typedef struct
- {
- char userid [10]; /* 1 - 8 alphanumeric char */
- int search_type; /* single char = curr search type.
- * 'T' = Semantic Text search
- * 'W' = Exact Words search
- * 'S' = Stems search
- * 'Z' = Fzkey search
- * 'N' = Navigator string (unpacked fzk) srch
- * 'P' = Statistical (Probabilistic) search
- */
- long flags; /* bit switches... */
- #define USR_BIT_1 0x0001L /* (reserved) */
- #define USR_NO_ITERATE 0x0002L /* override iterations in workprocs */
- #define USR_STOPSRCH 0x0004L /* the "stop" button, cancels workproc */
- #define USR_MAXMIN 0x0008L /* symdif() algorithm = fuzzy max min */
- #define USR_OBJDATES 0x0010L /* restrict hitlists to objdate ranges */
- #define USR_KWIC_ABSTR 0x0020L /* retn KeyWord In Context for abstract */
- #define USR_NO_INFOMSGS 0x0040L /* do not retn information-only msgs to UI */
- #define USR_MAXHITS_MSG 0x0080L /* show # hits each keytype if sum > maxhits */
- #define USR_SORT_WHITL 0x0100L /* sort word/stem hitlists by semantics */
- long debug; /* Nonproduction bit switches */
- #define USRDBG_RARE 0x0001L /* 1 Misc initialzatn trace msgs */
- #define USRDBG_SRCHCMPL 0x0002L /* 2 trace ui search_completed functions */
- #define USRDBG_RETRVL 0x0004L /* 4 trace record retrieval funcs */
- #define USRDBG_ITERATE 0x0008L /* 8 forces iteration on all iterable cmds */
- #define USRDBG_UTIL 0x0010L /* 16 trace misc utility functions */
- #define USRDBG_MEDPRMPT 0x0020L /* 32 Prints prompt of medley sockets cmds */
- #define USRDBG_HITLIST 0x0040L /* 64 print hitlists after searches */
- #define USRDBG_SYMP 0x0080L /* 128 trace symptom search funcs */
- #define USRDBG_DELETE 0x0100L /* 256 trace record deletion functions */
- #define USRDBG_RPC 0x0200L /* 512 trace RPC communications funcs */
- #define USRDBG_VERBOSE 0x0400L /* 1024 verbose debugging: iterative details */
- #define USRDBG_HILITE 0x0800L /* 2048 trace hiliting functions */
- #define USRDBG_PARSE 0x1000L /* 4096 trace linguistic parse/stem funcs */
- #define USRDBG_BOOL 0x2000L /* 8192 trace boolean parse funcs */
- int request;
- int retncode;
- char *query; /* input data for text searches */
- DtSrObjdate objdate1; /* only retn hit objects >= (after) date1 */
- DtSrObjdate objdate2; /* only retn hit objects <= (before) date2 */
- DB_ADDR dba; /* for direct dba reads */
- DB_ADDR *dbatab; /* array of dba's for batch deletes */
- int dbacount; /* # of dba's in dbatab */
- void (*workproc) (void);
- /* (1) If single tasking (iterative), OE places ptr to work
- procedure. (2) If multitasking (no iterations), UI places
- ptr of func to call when OE's spawned subtask is done. */
- DBLK *dblist; /* linked list of all databases */
- DBLK *dblk; /* users curr database selection */
- DtSrResult *dittolist; /* hitlist retnd from various searches */
- long dittocount; /* # of items on hitlist */
- int stemcount; /* # of wordstems in 'stems' array */
- char stems [DtSrMAX_STEMCOUNT] [DtSrMAXWIDTH_HWORD];
- /* for hiliting words in text records */
- struct or_objrec objrec; /* austext record buffer */
- char *abstrbuf; /* buf to hold abstracts */
- int abstrbufsz; /* maximum abstract size all databases */
- char *cleartext; /* decompressed austext record text */
- long clearlen; /* size of cleartext in bytes */
- LLIST *notes; /* uncompressed, right out of vista */
- DtSrHitword *hitwords; /* array of hit words inside cleartext */
- long hitwcount; /* number of elements in hitwords array */
- } USRBLK;
- /****************************************/
- /* */
- /* SAVEUSR */
- /* */
- /****************************************/
- /* The following data is saved between calls of the workprocs.
- * In a future msg passing protocol where there may be multiple UIs
- * per OE, this data would be maintained in a list of structures,
- * one for each currently active search (UI only passes user id name
- * in iterative calls, OE searches list to match curr status).
- * But for now, this will have to do.
- */
- typedef struct
- {
- time_t start_time;
- int iterations;
- int vistano;
- DtSrResult *dittolist;
- long dittocount;
- int stemcount;
- char stems [DtSrMAX_STEMCOUNT] [DtSrMAXWIDTH_HWORD];
- char ktchars [MAX_KTCOUNT + 2];
- char *lastqry;
- long ktsum [MAX_KTCOUNT + 1];
- } SAVEUSR;
- /*--------------- GLOBALS in oe.c, loadocf.c -------------------*/
- extern char **ausapi_dbnamesv;
- extern int ausapi_dbnamesc;
- extern USRBLK usrblk;
- extern char *global_memory_ptr;
- extern OEFTAB oef_table[];
- extern SAVEUSR saveusr; /* (only one for now) */
- extern int shm_id;
- extern int OE_bmhtab_strlen [DtSrMAX_STEMCOUNT];
- extern size_t OE_bmhtables [DtSrMAX_STEMCOUNT] [MAX_BMHTAB];
- extern int OE_dbn;
- extern int OE_enable_markdel;
- extern int OE_enable_usernotes;
- extern time_t *OE_expiration;
- extern int OE_fastdecode;
- extern char *OE_fileio;
- extern long OE_flags;
- #define OE_AUDIT 1L /* enables audit file logging */
- #define OE_INITOK (1L<<1) /* ensures first reqst was INITIALIZE */
- #define OE_PERMERR (1L<<2) /* disables engine on fatal errors */
- #define OE_NO_ITERATE (1L<<3) /* override iterations in workprocs */
- extern char *OE_inittab_dir; /* local dir of server daemon */
- extern long OE_objsize;
- extern char *OE_prodname;
- extern int OE_search_type;
- extern char *OE_server_dir; /* local dir of server daemon */
- extern char *OE_sitecnfg_fname;
- extern time_t OE_sitecnfg_mtime;
- extern int OE_uppercase_keys;
- extern long OE_words_hitlimit;
- /* Global pointers to formerly hardcoded path/file names.
- * The comment names the #define constant under which the
- * filename is/was specified in either fuzzy.h or oe.h.
- */
- extern char *OEF_audit; /* FNAME_AUDIT */
- extern char *OEF_discard; /* FNAME_DISCARD_DATA */
- extern char *OEF_news; /* FNAME_SITENEWS */
- extern char *OEF_notesnot; /* FNAME_NOTES_BAC */
- extern char *OEF_notessem; /* FNAME_NOTES_SEM */
- extern char *OEF_readme; /* FNAME_README */
- /*---------------- FUNCTION PROTOTYPES ----------------------*/
- extern char *calloe_getrec (char *dbname, DB_ADDR dba,
- LLIST **global_msglist);
- extern long calloe_hilite (char *cleartext, DtSrHitword *hitwords,
- LLIST **global_msglist);
- extern DtSrResult
- *calloe_search (char *qry, char *dbname,
- int search_type, LLIST **global_msglist);
- extern int call_output_script (char *shellcmd, char *text);
- extern void clear_hitwords (void);
- extern void clear_usrblk_record (void);
- extern void dummy_workproc (void);
- extern char *ensure_end_slash (char *charbuf);
- extern void fasthuf (UCHAR *input_bitstring, UCHAR *output_charbuf,
- int outbuf_size, time_t encode_id);
- extern char *get_hitlist_text (int maxlen);
- extern long hilite_cleartext (int parse_type, char *stems, int stemcount);
- extern int load_ocf (void);
- extern char *nowstring (time_t *now);
- extern void oe_initialize (void);
- extern int oe_unblob (LLIST *bloblist);
- extern void oe_write_audit_rec (long numhits);
- extern void Opera_Engine (void);
- extern void print_dittolist (DtSrResult *dittolist, char *label);
- extern void print_stems (int stemcount, void *stems, char *locstr);
- extern void print_usrblk_record (char *label);
- extern void release_shm_mem (void);
- extern char *retncode_str (int num);
- extern void symptom_search (void);
- extern int ve_append_notes (void);
- extern void ve_browse_dba (int direction);
- extern LLIST *ve_getblobs (DtSrINT32 dba, int vistano);
- extern int ve_getrec_dba (LLIST **bloblist);
- extern int ve_initialize (void);
- extern void ve_ditto (void);
- extern DtSrINT32 ve_reckey2dba (void);
- extern void ve_statistical (void);
- extern void ve_stem_search (void);
- extern void ve_word_search (void);
- extern void ve_shutdown (void);
- /***************************** SearchE.h ******************************/
- #endif /* _SearchE_h */
|