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