1 #ifndef _NAMAZU_H 2 #define _NAMAZU_H 3 4 #include <time.h> 5 6 #define BUFSIZE 1024 7 8 typedef unsigned char uchar; /* unsigned char to uchar */ 9 10 11 #define ESC 0x1b 12 #define ASCII "\x1b(B" 13 #define NEWJIS_K "\x1b$B" 14 #define iseuc(c) ((c) >= 0xa1 && (c) <= 0xfe) 15 #define set1byte() fputs( ASCII, stdout ) 16 #define set2byte() fputs( NEWJIS_K, stdout ) 17 18 19 #ifdef __EMX__ 20 #define Chdir(a) _chdir2(a) 21 #define Getcwd(a,b) _getcwd2(a,b) 22 #else 23 #define Chdir(a) chdir(a) 24 #define Getcwd(a,b) getcwd(a,b) 25 #endif 26 27 #define is_lang_ja(a) (!strcmp(a,"ja")) 28 29 #define TOO_MUCH_MATCH -1 30 #define TOO_MUCH_HIT -2 31 #define REGEX_SEARCH_FAILED -3 32 #define PHRASE_SEARCH_FAILED -4 33 #define FIELD_SEARCH_FAILED -5 34 35 36 /* ������̤Υǡ�����¤ */ 37 struct hlist { 38 int n; 39 int *scr; 40 int *fid; 41 int *did; 42 int *date; 43 }; 44 typedef struct hlist HLIST; 45 46 /* ��� */ 47 #define REPLACE_MAX 256 /* max number of multiple REPLACE */ 48 #define KEY_ITEM_MAX 16 /* �������ι��ܤκ���� */ 49 #define SCORE_LINE 1 /* ������ɽ����Ԥ��ֹ� */ 50 #define ABSTRACT_LINE 2 /* ʸ���Ƭ����(����)��ɽ������Ԥ��ֹ� */ 51 #define PAGE_MAX 20 /* ������̽��ϤΥڡ����κ���� */ 52 #define IGNORE_HIT 10000 /* �ҥåȤ������ܤ�������¿����̵�뤹�� */ 53 #define IGNORE_MATCH 1000 /* �������פǤ�����ñ�줬¿���ޥå�������̵�뤹�� 54 */ 55 #define HLIST_MAX_MAX 100 /* ���٤ˤĤ��η��ɽ���κ�����κ���� */ 56 #define DB_MAX 64 /* �ǡ����١����κ���� */ 57 #define QUERY_STRING_MAX_LENGTH 1024 /* CGI�Υ�����κ���Ĺ */ 58 #define DBNAMELENG_MAX 256 59 #define QUERY_MAX_LENGTH 256 60 61 #define STDIN 0 /* ɸ�����Ϥ� fd */ 62 #define STDOUT 1 /* ɸ����Ϥ� fd */ 63 #define STDERR 2 /* ɸ�२�顼���Ϥ� fd */ 64 65 /* ��å����� */ 66 extern uchar *MSG_USAGE, *MSG_TOO_LONG_KEY, *MSG_TOO_MANY_KEYITEM, 67 *MSG_QUERY_STRING_TOO_LONG, *MSG_RESULT_HEADER, *MSG_NO_HIT, *MSG_HIT_1, 68 *MSG_HIT_2, *MSG_TOO_MUCH_HIT, *MSG_TOO_MUCH_MATCH, *MSG_INDEXDIR_ERROR, 69 *MSG_REFERENCE_HEADER, *MSG_INVALID_DB_NAME, *MSG_INVALID_QUERY, 70 *MSG_CANNOT_OPEN_INDEX, *MSG_MIME_HEADER, *MSG_CANNOT_OPEN_REGEX_INDEX, 71 *MSG_CANNOT_OPEN_PHRASE_INDEX, *MSG_CANNOT_OPEN_FIELD_INDEX; 72 73 extern uchar *VERSION; 74 extern uchar *COPYRIGHT; 75 76 /* �����Х��ѿ� */ 77 extern int HListMax; 78 extern int HListWhence; 79 extern int Debug; 80 extern int ShortFormat; 81 extern int MoreShortFormat; 82 extern int HitCountOnly; 83 extern int ScoreSort; 84 extern int HtmlOutput; 85 extern int HidePageIndex; 86 extern int ForcePrintForm; 87 extern int AllList; 88 extern int LaterOrder; 89 extern int FinalHitN; 90 extern int ConfLoaded; 91 extern int NoReplace; 92 extern int DecodeURL; 93 extern int IsCGI; 94 extern int Logging; 95 extern int DbNumber; 96 extern int OppositeEndian; 97 extern int AllDocumentN; 98 extern int TfIdf; 99 extern int NoReference; 100 extern int ModeTknamazu; 101 102 extern uchar KeyTable[]; 103 extern uchar DbName[]; 104 extern uchar *KeyItem[]; 105 extern uchar DEFAULT_DIR[]; 106 extern uchar *DbNames[]; 107 extern uchar Lang[]; 108 extern FILE *Flist, *FlistIndex, *Index, *IndexIndex, *Hash; 109 110 extern int url_no; 111 extern uchar BASE_URL[]; 112 extern uchar URL_REPLACE_FROM[REPLACE_MAX][BUFSIZE]; 113 extern uchar URL_REPLACE_TO[REPLACE_MAX][BUFSIZE]; 114 extern uchar NAMAZU_CONF[]; 115 extern uchar NAMAZURC[]; 116 117 extern uchar *ScriptName; 118 extern uchar *QueryString; 119 extern uchar *ContentLength; 120 121 extern uchar FLIST[]; 122 extern uchar FLISTINDEX[]; 123 extern uchar INDEX[]; 124 extern uchar INDEXINDEX[]; 125 extern uchar HASH[]; 126 extern uchar HEADERFILE[]; 127 extern uchar FOOTERFILE[]; 128 extern uchar LOCKFILE[]; 129 extern uchar LOCKMSGFILE[]; 130 extern uchar BODYMSGFILE[]; 131 extern uchar SLOG[]; 132 extern uchar BIGENDIAN[]; 133 extern uchar LITTLEENDIAN[]; 134 extern uchar WORDLIST[]; 135 extern uchar FIELDINFO[]; 136 extern uchar DATEINDEX[]; 137 138 extern uchar PHRASE[]; 139 extern uchar PHRASEINDEX[]; 140 141 /* �ؿ� */ 142 uchar jmstojis(uchar, uchar); 143 void jistoeuc(); 144 void sjistoeuc(); 145 void euctojisput(); 146 uchar jistojms(uchar, uchar); 147 void euctosjis(); 148 void error(); 149 int ismetastring(); 150 void fputs_without_html_tag(); 151 void fputs_with_codeconv(); 152 void put_body_msg(); 153 void cat_head_or_foot(); 154 long get_index_pointer(); 155 int binsearch(); 156 void malloc_hlist(); 157 void realloc_hlist(); 158 void memcpy_hlist(); 159 HLIST merge_hlist(); 160 void set_did_hlist(); 161 void free_hlist(); 162 void copy_hlist(); 163 HLIST get_hlist(); 164 HLIST do_date_processing(); 165 void nmz_mergesort(); 166 void sort_hlist(); 167 void replace_url(); 168 uchar URLdecode(uchar, uchar); 169 void decode_url_string(); 170 void put_hlist(); 171 void show_usage(); 172 HLIST andmerge(); 173 HLIST notmerge(); 174 HLIST ormerge(); 175 HLIST factor(); 176 int andop(); 177 HLIST term(); 178 HLIST regex_grep(); 179 int orop(); 180 HLIST expr(); 181 void reverse_hlist(); 182 void initialize_parser(); 183 void queryput(); 184 void put_page_index(); 185 void put_current_extent(); 186 void search_main(); 187 int codeconv(); 188 int get_cgi_variables(); 189 void zen2han(); 190 void show_configuration(); 191 void load_namazu_conf(); 192 void cgi_initialize(); 193 void initialize_message(); 194 void cat(); 195 void reverse_byte_order(); 196 void set_pathname(); 197 void pathcat(); 198 HLIST do_search(); 199 int main(); 200 int open_index_files(); 201 void close_index_files(); 202 void lrget(); 203 void wakati(); 204 void split_query(); 205 int is_field(); 206 void fputx(); 207 void codeconv_query(); 208 209 #endif /* _NAMAZU_H */ 210 211 212 213 214