1 /* $Id: proto.h,v 1.104 2010/07/25 09:55:05 htrb Exp $ */
2 /*
3  *   This file was automatically generated by version 1.7 of cextract.
4  *   Manual editing not recommended.
5  *
6  *   Created: Wed Feb 10 12:47:03 1999
7  */
8 extern int main(int argc, char **argv, char **envp);
9 extern void nulcmd(void);
10 extern void pushEvent(int cmd, void *data);
11 extern MySignalHandler intTrap(SIGNAL_ARG);
12 extern void pgFore(void);
13 extern void pgBack(void);
14 extern void hpgFore(void);
15 extern void hpgBack(void);
16 extern void lup1(void);
17 extern void ldown1(void);
18 extern void ctrCsrV(void);
19 extern void ctrCsrH(void);
20 extern void rdrwSc(void);
21 extern void srchfor(void);
22 extern void isrchfor(void);
23 extern void srchbak(void);
24 extern void isrchbak(void);
25 extern void srchnxt(void);
26 extern void srchprv(void);
27 extern void shiftl(void);
28 extern void shiftr(void);
29 extern void col1R(void);
30 extern void col1L(void);
31 extern void setEnv(void);
32 extern void pipeBuf(void);
33 extern void pipesh(void);
34 extern void readsh(void);
35 extern void execsh(void);
36 extern void ldfile(void);
37 extern void ldhelp(void);
38 extern void movL(void);
39 extern void movL1(void);
40 extern void movD(void);
41 extern void movD1(void);
42 extern void movU(void);
43 extern void movU1(void);
44 extern void movR(void);
45 extern void movR1(void);
46 extern void movLW(void);
47 extern void movRW(void);
48 extern void qquitfm(void);
49 extern void quitfm(void);
50 extern void selBuf(void);
51 extern void susp(void);
52 extern void goLine(void);
53 extern void goLineF(void);
54 extern void goLineL(void);
55 extern void linbeg(void);
56 extern void linend(void);
57 extern void editBf(void);
58 extern void editScr(void);
59 extern void followA(void);
60 extern void bufferA(void);
61 extern void followI(void);
62 extern void submitForm(void);
63 extern void followForm(void);
64 extern void topA(void);
65 extern void lastA(void);
66 extern void nthA(void);
67 extern void onA(void);
68 
69 extern void nextA(void);
70 extern void prevA(void);
71 extern void nextVA(void);
72 extern void prevVA(void);
73 extern void nextL(void);
74 extern void nextLU(void);
75 extern void nextR(void);
76 extern void nextRD(void);
77 extern void nextD(void);
78 extern void nextU(void);
79 extern void nextBf(void);
80 extern void prevBf(void);
81 extern void backBf(void);
82 extern void deletePrevBuf(void);
83 extern void goURL(void);
84 extern void goHome(void);
85 extern void gorURL(void);
86 extern void ldBmark(void);
87 extern void adBmark(void);
88 extern void ldOpt(void);
89 extern void setOpt(void);
90 extern void pginfo(void);
91 extern void msgs(void);
92 extern void svA(void);
93 extern void svI(void);
94 extern void svBuf(void);
95 extern void svSrc(void);
96 extern void peekURL(void);
97 extern void peekIMG(void);
98 extern void curURL(void);
99 extern void vwSrc(void);
100 extern void reload(void);
101 extern void reshape(void);
102 extern void chkURL(void);
103 extern void chkURLBuffer(Buffer *buf);
104 extern void chkWORD(void);
105 #ifdef USE_NNTP
106 extern void chkNMID(void);
107 extern void chkNMIDBuffer(Buffer *buf);
108 #else
109 #define chkNMID nulcmd
110 #endif
111 extern void rFrame(void);
112 extern void extbrz(void);
113 extern void linkbrz(void);
114 extern void curlno(void);
115 extern void execCmd(void);
116 #ifdef USE_IMAGE
117 extern void dispI(void);
118 extern void stopI(void);
119 #else
120 #define dispI nulcmd
121 #define stopI nulcmd
122 #endif
123 #ifdef USE_ALARM
124 extern void setAlarm(void);
125 extern AlarmEvent *setAlarmEvent(AlarmEvent * event, int sec, short status,
126 				 int cmd, void *data);
127 #else
128 #define setAlarm nulcmd
129 #endif
130 extern void reinit(void);
131 extern void defKey(void);
132 extern void newT(void);
133 extern void closeT(void);
134 extern void nextT(void);
135 extern void prevT(void);
136 extern void tabA(void);
137 extern void tabURL(void);
138 extern void tabrURL(void);
139 extern void tabR(void);
140 extern void tabL(void);
141 extern void ldDL(void);
142 extern void linkLst(void);
143 #ifdef USE_MENU
144 extern void linkMn(void);
145 extern LinkList *link_menu(Buffer *buf);
146 extern void accessKey(void);
147 extern Anchor *accesskey_menu(Buffer *buf);
148 extern void listMn(void);
149 extern void movlistMn(void);
150 extern Anchor *list_menu(Buffer *buf);
151 #else
152 #define linkMn nulcmd
153 #define accessKey nulcmd
154 #define listMn nulcmd
155 #define movlistMn nulcmd
156 #endif
157 extern void undoPos(void);
158 extern void redoPos(void);
159 extern void cursorTop(void);
160 extern void cursorMiddle(void);
161 extern void cursorBottom(void);
162 
163 extern int currentLn(Buffer *buf);
164 extern void tmpClearBuffer(Buffer *buf);
165 extern char *filename_extension(char *patch, int is_url);
166 #ifdef USE_EXTERNAL_URI_LOADER
167 extern void initURIMethods();
168 extern Str searchURIMethods(ParsedURL *pu);
169 extern void chkExternalURIBuffer(Buffer *buf);
170 #endif
171 extern ParsedURL *schemeToProxy(int scheme);
172 #ifdef USE_M17N
173 extern wc_ces url_to_charset(const char *url, const ParsedURL *base,
174 			     wc_ces doc_charset);
175 extern char *url_encode(const char *url, const ParsedURL *base,
176 			wc_ces doc_charset);
177 #if 0
178 extern char *url_decode(const char *url, const ParsedURL *base,
179 			wc_ces doc_charset);
180 #endif
181 extern char *url_decode2(const char *url, const Buffer *buf);
182 #else /* !defined(USE_M17N) */
183 #define url_encode(url, base, cs) url_quote(url)
184 extern char *url_decode0(const char *url);
185 #if 0
186 #define url_decode(url, base, cs) url_decode0(url)
187 #endif
188 #define url_decode2(url, buf) url_decode0(url)
189 #endif /* !defined(USE_M17N) */
190 extern void examineFile(char *path, URLFile *uf);
191 extern char *acceptableEncoding();
192 extern int dir_exist(char *path);
193 extern int is_html_type(char *type);
194 #ifdef USE_M17N
195 extern char **get_symbol(wc_ces charset, int *width);
196 extern char **set_symbol(int width);
197 extern Str convertLine(URLFile *uf, Str line, int mode, wc_ces * charset,
198 		       wc_ces doc_charset);
199 #else
200 extern char **get_symbol(void);
201 extern Str convertLine0(URLFile *uf, Str line, int mode);
202 #define convertLine(uf,line,mode,charset,dcharset) convertLine0(uf,line,mode)
203 #endif
204 extern void push_symbol(Str str, char symbol, int width, int n);
205 #ifdef USE_UNICODE
206 extern void update_utf8_symbol(void);
207 #endif
208 extern Buffer *loadGeneralFile(char *path, ParsedURL *current, char *referer,
209 			       int flag, FormList *request);
210 extern int is_boundary(unsigned char *, unsigned char *);
211 extern int is_blank_line(char *line, int indent);
212 extern void push_render_image(Str str, int width, int limit,
213 			      struct html_feed_environ *h_env);
214 extern void flushline(struct html_feed_environ *h_env, struct readbuffer *obuf,
215 		      int indent, int force, int width);
216 extern void do_blankline(struct html_feed_environ *h_env,
217 			 struct readbuffer *obuf, int indent, int indent_incr,
218 			 int width);
219 extern void purgeline(struct html_feed_environ *h_env);
220 extern void save_fonteffect(struct html_feed_environ *h_env,
221 			    struct readbuffer *obuf);
222 extern void restore_fonteffect(struct html_feed_environ *h_env,
223 			       struct readbuffer *obuf);
224 #ifdef USE_IMAGE
225 extern void deleteImage(Buffer *buf);
226 extern void getAllImage(Buffer *buf);
227 extern void loadImage(Buffer *buf, int flag);
228 extern ImageCache *getImage(Image * image, ParsedURL *current, int flag);
229 extern int getImageSize(ImageCache * cache);
230 #endif
231 extern Str process_img(struct parsed_tag *tag, int width);
232 extern Str process_anchor(struct parsed_tag *tag, char *tagbuf);
233 extern Str process_input(struct parsed_tag *tag);
234 extern Str process_button(struct parsed_tag *tag);
235 extern Str process_n_button(void);
236 extern Str process_select(struct parsed_tag *tag);
237 extern Str process_n_select(void);
238 extern void feed_select(char *str);
239 extern void process_option(void);
240 extern Str process_textarea(struct parsed_tag *tag, int width);
241 extern Str process_n_textarea(void);
242 extern void feed_textarea(char *str);
243 extern Str process_form(struct parsed_tag *tag);
244 extern Str process_n_form(void);
245 extern int getMetaRefreshParam(char *q, Str *refresh_uri);
246 extern int HTMLtagproc1(struct parsed_tag *tag,
247 			struct html_feed_environ *h_env);
248 extern void HTMLlineproc2(Buffer *buf, TextLineList *tl);
249 extern void HTMLlineproc0(char *istr, struct html_feed_environ *h_env,
250 			  int internal);
251 #define HTMLlineproc1(x,y) HTMLlineproc0(x,y,TRUE)
252 extern Buffer *loadHTMLBuffer(URLFile *f, Buffer *newBuf);
253 extern char *convert_size(clen_t size, int usefloat);
254 extern char *convert_size2(clen_t size1, clen_t size2, int usefloat);
255 extern void showProgress(clen_t * linelen, clen_t * trbyte);
256 extern void init_henv(struct html_feed_environ *, struct readbuffer *,
257 		      struct environment *, int, TextLineList *, int, int);
258 extern void completeHTMLstream(struct html_feed_environ *,
259 			       struct readbuffer *);
260 extern void loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src,
261 			   int internal);
262 extern Buffer *loadHTMLString(Str page);
263 #ifdef USE_GOPHER
264 #ifdef USE_M17N
265 extern Str loadGopherDir(URLFile *uf, ParsedURL *pu, wc_ces * charset);
266 extern Str loadGopherSearch(URLFile *uf, ParsedURL *pu, wc_ces * charset);
267 #else
268 extern Str loadGopherDir0(URLFile *uf, ParsedURL *pu);
269 extern Str loadGopherSearch0(URLFile *uf, ParsedURL *pu);
270 #define loadGopherDir(uf,pu,charset) loadGopherDir0(uf,pu)
271 #define loadGopherSearch(uf,pu,charset) loadGopherSearch0(uf,pu)
272 #endif
273 #endif				/* USE_GOPHER */
274 extern Buffer *loadBuffer(URLFile *uf, Buffer *newBuf);
275 #ifdef USE_IMAGE
276 extern Buffer *loadImageBuffer(URLFile *uf, Buffer *newBuf);
277 #endif
278 extern void saveBuffer(Buffer *buf, FILE * f, int cont);
279 extern void saveBufferBody(Buffer *buf, FILE * f, int cont);
280 extern Buffer *getshell(char *cmd);
281 extern Buffer *getpipe(char *cmd);
282 extern Buffer *openPagerBuffer(InputStream stream, Buffer *buf);
283 extern Buffer *openGeneralPagerBuffer(InputStream stream);
284 extern Line *getNextPage(Buffer *buf, int plen);
285 extern int save2tmp(URLFile uf, char *tmpf);
286 extern Buffer *doExternal(URLFile uf, char *type, Buffer *defaultbuf);
287 extern int _doFileCopy(char *tmpf, char *defstr, int download);
288 #define doFileCopy(tmpf, defstr) _doFileCopy(tmpf, defstr, FALSE);
289 extern int doFileMove(char *tmpf, char *defstr);
290 extern int doFileSave(URLFile uf, char *defstr);
291 extern int checkCopyFile(char *path1, char *path2);
292 extern int checkSaveFile(InputStream stream, char *path);
293 extern int checkOverWrite(char *path);
294 extern char *inputAnswer(char *prompt);
295 extern int matchattr(char *p, char *attr, int len, Str *value);
296 extern void readHeader(URLFile *uf, Buffer *newBuf, int thru, ParsedURL *pu);
297 extern char *checkHeader(Buffer *buf, char *field);
298 extern TabBuffer *newTab(void);
299 extern void calcTabPos(void);
300 extern TabBuffer *deleteTab(TabBuffer * tab);
301 extern void addDownloadList(pid_t pid, char *url, char *save, char *lock,
302 			    clen_t size);
303 extern void stopDownload(void);
304 extern int checkDownloadList(void);
305 extern void download_action(struct parsed_tagarg *arg);
306 extern Buffer *newBuffer(int width);
307 extern Buffer *nullBuffer(void);
308 extern void clearBuffer(Buffer *buf);
309 extern void discardBuffer(Buffer *buf);
310 extern Buffer *namedBuffer(Buffer *first, char *name);
311 extern Buffer *deleteBuffer(Buffer *first, Buffer *delbuf);
312 extern Buffer *replaceBuffer(Buffer *first, Buffer *delbuf, Buffer *newbuf);
313 extern Buffer *nthBuffer(Buffer *firstbuf, int n);
314 extern void gotoRealLine(Buffer *buf, int n);
315 extern void gotoLine(Buffer *buf, int n);
316 extern Buffer *selectBuffer(Buffer *firstbuf, Buffer *currentbuf,
317 			    char *selectchar);
318 extern void reshapeBuffer(Buffer *buf);
319 extern void copyBuffer(Buffer *a, Buffer *b);
320 extern Buffer *prevBuffer(Buffer *first, Buffer *buf);
321 extern int writeBufferCache(Buffer *buf);
322 extern int readBufferCache(Buffer *buf);
323 extern void fmTerm(void);
324 extern void fmInit(void);
325 extern void displayBuffer(Buffer *buf, int mode);
326 extern void addChar(char c, Lineprop mode);
327 #ifdef USE_M17N
328 extern void addMChar(char *c, Lineprop mode, size_t len);
329 #endif
330 extern void record_err_message(char *s);
331 extern Buffer *message_list_panel(void);
332 extern void message(char *s, int return_x, int return_y);
333 extern void disp_err_message(char *s, int redraw_current);
334 extern void disp_message_nsec(char *s, int redraw_current, int sec, int purge,
335 			      int mouse);
336 extern void disp_message(char *s, int redraw_current);
337 #ifdef USE_MOUSE
338 extern void disp_message_nomouse(char *s, int redraw_current);
339 #else
340 #define disp_message_nomouse disp_message
341 #endif
342 extern void set_delayed_message(char *s);
343 extern void cursorUp0(Buffer *buf, int n);
344 extern void cursorUp(Buffer *buf, int n);
345 extern void cursorDown0(Buffer *buf, int n);
346 extern void cursorDown(Buffer *buf, int n);
347 extern void cursorUpDown(Buffer *buf, int n);
348 extern void cursorRight(Buffer *buf, int n);
349 extern void cursorLeft(Buffer *buf, int n);
350 extern void cursorHome(Buffer *buf);
351 extern void arrangeCursor(Buffer *buf);
352 extern void arrangeLine(Buffer *buf);
353 extern void cursorXY(Buffer *buf, int x, int y);
354 extern void restorePosition(Buffer *buf, Buffer *orig);
355 extern int columnSkip(Buffer *buf, int offset);
356 extern int columnPos(Line *line, int column);
357 extern int columnLen(Line *line, int column);
358 extern Line *lineSkip(Buffer *buf, Line *line, int offset, int last);
359 extern Line *currentLineSkip(Buffer *buf, Line *line, int offset, int last);
360 extern int gethtmlcmd(char **s);
361 #ifndef USE_ANSI_COLOR
362 #define checkType(a,b,c) _checkType(a,b)
363 #endif
364 extern Str checkType(Str s, Lineprop **oprop, Linecolor **ocolor);
365 extern int calcPosition(char *l, Lineprop *pr, int len, int pos, int bpos,
366 			int mode);
367 extern char *lastFileName(char *path);
368 extern char *mybasename(char *s);
369 extern char *mydirname(char *s);
370 extern int next_status(char c, int *status);
371 extern int read_token(Str buf, char **instr, int *status, int pre, int append);
372 extern Str correct_irrtag(int status);
373 #ifdef USE_MIGEMO
374 extern void init_migemo(void);
375 #endif
376 #ifdef USE_M17N
377 extern char *conv_search_string(char *str, wc_ces f_ces);
378 #else
379 #define conv_search_string(str, f_ces)	str
380 #endif
381 extern int forwardSearch(Buffer *buf, char *str);
382 extern int backwardSearch(Buffer *buf, char *str);
383 extern void pcmap(void);
384 extern void escmap(void);
385 extern void escbmap(void);
386 extern void escdmap(char c);
387 extern void multimap(void);
388 extern char *inputLineHistSearch(char *prompt, char *def_str, int flag,
389 				 Hist *hist, int (*incfunc) (int ch, Str buf,
390 							     Lineprop *prop));
391 extern Str unescape_spaces(Str s);
392 #ifdef USE_HISTORY
393 extern Buffer *historyBuffer(Hist *hist);
394 extern void loadHistory(Hist *hist);
395 extern void saveHistory(Hist *hist, size_t size);
396 extern void ldHist(void);
397 #else				/* not USE_HISTORY */
398 #define ldHist nulcmd
399 #endif				/* not USE_HISTORY */
400 extern double log_like(int x);
401 extern struct table *newTable(void);
402 extern void pushdata(struct table *t, int row, int col, char *data);
403 extern int visible_length(char *str);
404 extern void align(TextLine *lbuf, int width, int mode);
405 extern void print_item(struct table *t, int row, int col, int width, Str buf);
406 extern void print_sep(struct table *t, int row, int type, int maxcol, Str buf);
407 extern void do_refill(struct table *tbl, int row, int col, int maxlimit);
408 extern void initRenderTable(void);
409 extern void renderTable(struct table *t, int max_width,
410 			struct html_feed_environ *h_env);
411 extern struct table *begin_table(int border, int spacing, int padding,
412 				 int vspace);
413 extern void end_table(struct table *tbl);
414 extern void check_rowcol(struct table *tbl, struct table_mode *mode);
415 extern int minimum_length(char *line);
416 extern int feed_table(struct table *tbl, char *line, struct table_mode *mode,
417 		      int width, int internal);
418 extern void feed_table1(struct table *tbl, Str tok, struct table_mode *mode,
419 			int width);
420 extern void pushTable(struct table *, struct table *);
421 extern struct form_list *newFormList(char *action, char *method, char *charset,
422 				     char *enctype, char *target, char *name,
423 				     struct form_list *_next);
424 extern struct form_item_list *formList_addInput(struct form_list *fl,
425 						struct parsed_tag *tag);
426 extern char *form2str(FormItemList *fi);
427 extern int formtype(char *typestr);
428 extern void formRecheckRadio(Anchor *a, Buffer *buf, FormItemList *form);
429 extern void formResetBuffer(Buffer *buf, AnchorList *formitem);
430 extern void formUpdateBuffer(Anchor *a, Buffer *buf, FormItemList *form);
431 extern void preFormUpdateBuffer(Buffer *buf);
432 extern Str textfieldrep(Str s, int width);
433 extern void input_textarea(FormItemList *fi);
434 extern void do_internal(char *action, char *data);
435 extern void form_write_data(FILE * f, char *boundary, char *name, char *value);
436 extern void form_write_from_file(FILE * f, char *boundary, char *name,
437 				 char *filename, char *file);
438 extern MapList *searchMapList(Buffer *buf, char *name);
439 extern void follow_map(struct parsed_tagarg *arg);
440 #if defined(MENU_MAP) || defined(USE_IMAGE)
441 extern MapArea *follow_map_menu(Buffer *buf, char *name, Anchor *a_img, int x,
442 				int y);
443 #endif
444 #ifndef MENU_MAP
445 extern Buffer *follow_map_panel(Buffer *buf, char *name);
446 #endif
447 #ifdef USE_IMAGE
448 extern int getMapXY(Buffer *buf, Anchor *a, int *x, int *y);
449 extern MapArea *retrieveCurrentMapArea(Buffer *buf);
450 #endif
451 extern Anchor *retrieveCurrentMap(Buffer *buf);
452 extern MapArea *newMapArea(char *url, char *target, char *alt, char *shape,
453 			   char *coords);
454 extern Buffer *page_info_panel(Buffer *buf);
455 extern struct frame_body *newFrame(struct parsed_tag *tag, Buffer *buf);
456 extern struct frameset *newFrameSet(struct parsed_tag *tag);
457 extern void addFrameSetElement(struct frameset *f,
458 			       union frameset_element element);
459 extern void deleteFrame(struct frame_body *b);
460 extern void deleteFrameSet(struct frameset *f);
461 extern void deleteFrameSetElement(union frameset_element e);
462 extern struct frameset *copyFrameSet(struct frameset *of);
463 extern void pushFrameTree(struct frameset_queue **fqpp, struct frameset *fs,
464 			  Buffer *buf);
465 extern struct frameset *popFrameTree(struct frameset_queue **fqpp);
466 extern void resetFrameElement(union frameset_element *f_element, Buffer *buf,
467 			      char *referer, FormList *request);
468 extern Buffer *renderFrame(Buffer *Cbuf, int force_reload);
469 extern union frameset_element *search_frame(struct frameset *fset, char *name);
470 extern int set_tty(void);
471 extern void set_cc(int spec, int val);
472 extern void close_tty(void);
473 extern char *ttyname_tty(void);
474 extern void reset_tty(void);
475 extern MySignalHandler reset_exit(SIGNAL_ARG);
476 extern MySignalHandler error_dump(SIGNAL_ARG);
477 extern void set_int(void);
478 extern void getTCstr(void);
479 extern void setlinescols(void);
480 extern void setupscreen(void);
481 extern pid_t open_pipe_rw(FILE ** fr, FILE ** fw);
482 extern int initscr(void);
483 extern void move(int line, int column);
484 #ifdef USE_M17N
485 extern void addmch(char *p, size_t len);
486 #endif
487 extern void addch(char c);
488 extern void wrap(void);
489 extern void touch_line(void);
490 extern void standout(void);
491 extern void standend(void);
492 extern void bold(void);
493 extern void boldend(void);
494 extern void underline(void);
495 extern void underlineend(void);
496 extern void graphstart(void);
497 extern void graphend(void);
498 extern int graph_ok(void);
499 #ifdef USE_COLOR
500 extern void setfcolor(int color);
501 #ifdef USE_BG_COLOR
502 extern void setbcolor(int color);
503 #endif				/* USE_BG_COLOR */
504 #endif				/* USE_COLOR */
505 extern void refresh(void);
506 extern void clear(void);
507 #ifdef USE_RAW_SCROLL
508 extern void scroll(int);
509 extern void rscroll(int);
510 #endif
511 #if 0
512 extern void need_clrtoeol(void);
513 #endif
514 extern void clrtoeol(void);
515 extern void clrtoeolx(void);
516 extern void clrtobot(void);
517 extern void clrtobotx(void);
518 extern void no_clrtoeol(void);
519 extern void addstr(char *s);
520 extern void addnstr(char *s, int n);
521 extern void addnstr_sup(char *s, int n);
522 extern void crmode(void);
523 extern void nocrmode(void);
524 extern void term_echo(void);
525 extern void term_noecho(void);
526 extern void term_raw(void);
527 extern void term_cooked(void);
528 extern void term_cbreak(void);
529 extern void term_title(char *s);
530 extern void flush_tty(void);
531 extern void toggle_stand(void);
532 extern char getch(void);
533 extern void bell(void);
534 extern int sleep_till_anykey(int sec, int purge);
535 #ifdef USE_IMAGE
536 extern void touch_cursor();
537 #endif
538 extern void initMimeTypes();
539 extern void free_ssl_ctx();
540 extern ParsedURL *baseURL(Buffer *buf);
541 extern int openSocket(char *hostname, char *remoteport_name,
542 		      unsigned short remoteport_num);
543 extern void parseURL(char *url, ParsedURL *p_url, ParsedURL *current);
544 extern void copyParsedURL(ParsedURL *p, const ParsedURL *q);
545 extern void parseURL2(char *url, ParsedURL *pu, ParsedURL *current);
546 extern Str parsedURL2Str(ParsedURL *pu);
547 extern Str parsedURL2RefererStr(ParsedURL *pu);
548 extern int getURLScheme(char **url);
549 extern void init_stream(URLFile *uf, int scheme, InputStream stream);
550 Str HTTPrequestMethod(HRequest *hr);
551 Str HTTPrequestURI(ParsedURL *pu, HRequest *hr);
552 extern URLFile openURL(char *url, ParsedURL *pu, ParsedURL *current,
553 		       URLOption *option, FormList *request,
554 		       TextList *extra_header, URLFile *ouf,
555 		       HRequest *hr, unsigned char *status);
556 extern int mailcapMatch(struct mailcap *mcap, char *type);
557 extern struct mailcap *searchMailcap(struct mailcap *table, char *type);
558 extern void initMailcap();
559 extern char *acceptableMimeTypes();
560 extern struct mailcap *searchExtViewer(char *type);
561 extern Str unquote_mailcap(char *qstr, char *type, char *name, char *attr,
562 			   int *mc_stat);
563 extern char *guessContentType(char *filename);
564 extern TextList *make_domain_list(char *domain_list);
565 extern int check_no_proxy(char *domain);
566 extern InputStream openFTPStream(ParsedURL *pu, URLFile *uf);
567 #ifdef USE_M17N
568 extern Str loadFTPDir(ParsedURL *pu, wc_ces * charset);
569 #else
570 extern Str loadFTPDir0(ParsedURL *pu);
571 #define loadFTPDir(pu,charset)	loadFTPDir0(pu)
572 #endif
573 extern void closeFTP(void);
574 extern void disconnectFTP(void);
575 #ifdef USE_NNTP
576 extern InputStream openNewsStream(ParsedURL *pu);
577 #ifdef USE_M17N
578 extern Str loadNewsgroup(ParsedURL *pu, wc_ces * charset);
579 #else
580 extern Str loadNewsgroup0(ParsedURL *pu);
581 #define loadNewsgroup(pu,charset) loadNewsgroup0(pu)
582 #endif
583 extern void closeNews(void);
584 extern void disconnectNews(void);
585 #endif
586 extern AnchorList *putAnchor(AnchorList *al, char *url, char *target,
587 			     Anchor **anchor_return, char *referer,
588 			     char *title, unsigned char key, int line,
589 			     int pos);
590 extern Anchor *registerHref(Buffer *buf, char *url, char *target,
591 			    char *referer, char *title, unsigned char key,
592 			    int line, int pos);
593 extern Anchor *registerName(Buffer *buf, char *url, int line, int pos);
594 extern Anchor *registerImg(Buffer *buf, char *url, char *title, int line,
595 			   int pos);
596 extern Anchor *registerForm(Buffer *buf, FormList *flist,
597 			    struct parsed_tag *tag, int line, int pos);
598 extern int onAnchor(Anchor *a, int line, int pos);
599 extern Anchor *retrieveAnchor(AnchorList *al, int line, int pos);
600 extern Anchor *retrieveCurrentAnchor(Buffer *buf);
601 extern Anchor *retrieveCurrentImg(Buffer *buf);
602 extern Anchor *retrieveCurrentForm(Buffer *buf);
603 extern Anchor *searchAnchor(AnchorList *al, char *str);
604 extern Anchor *searchURLLabel(Buffer *buf, char *url);
605 extern void reAnchorWord(Buffer *buf, Line *l, int spos, int epos);
606 extern char *reAnchor(Buffer *buf, char *re);
607 #ifdef USE_NNTP
608 extern char *reAnchorNews(Buffer *buf, char *re);
609 extern char *reAnchorNewsheader(Buffer *buf);
610 #endif				/* USE_NNTP */
611 extern void addMultirowsForm(Buffer *buf, AnchorList *al);
612 extern Anchor *closest_next_anchor(AnchorList *a, Anchor *an, int x, int y);
613 extern Anchor *closest_prev_anchor(AnchorList *a, Anchor *an, int x, int y);
614 #ifdef USE_IMAGE
615 void addMultirowsImg(Buffer *buf, AnchorList *al);
616 #endif
617 extern HmarkerList *putHmarker(HmarkerList *ml, int line, int pos, int seq);
618 extern void shiftAnchorPosition(AnchorList *a, HmarkerList *hl, int line,
619 				int pos, int shift);
620 extern char *getAnchorText(Buffer *buf, AnchorList *al, Anchor *a);
621 extern Buffer *link_list_panel(Buffer *buf);
622 
623 extern Str decodeB(char **ww);
624 extern void decodeB_to_growbuf(struct growbuf *gb, char **ww);
625 extern Str decodeQ(char **ww);
626 extern Str decodeQP(char **ww);
627 extern void decodeQP_to_growbuf(struct growbuf *gb, char **ww);
628 extern Str decodeU(char **ww);
629 extern void decodeU_to_growbuf(struct growbuf *gb, char **ww);
630 #ifdef USE_M17N
631 extern Str decodeWord(char **ow, wc_ces * charset);
632 extern Str decodeMIME(Str orgstr, wc_ces * charset);
633 #else
634 extern Str decodeWord0(char **ow);
635 extern Str decodeMIME0(Str orgstr);
636 #define decodeWord(ow,charset) decodeWord0(ow)
637 #define decodeMIME(orgstr,charset) decodeMIME0(orgstr)
638 #endif
639 extern Str encodeB(char *a);
640 extern int set_param_option(char *option);
641 extern char *get_param_option(char *name);
642 extern void init_rc(void);
643 extern Buffer *load_option_panel(void);
644 extern void panel_set_option(struct parsed_tagarg *);
645 extern void sync_with_option(void);
646 extern char *rcFile(char *base);
647 extern char *etcFile(char *base);
648 extern char *confFile(char *base);
649 extern char *auxbinFile(char *base);
650 extern char *libFile(char *base);
651 extern char *helpFile(char *base);
652 extern const void *querySiteconf(const ParsedURL *query_pu, int field);
653 extern Str localCookie(void);
654 extern Str loadLocalDir(char *dirname);
655 extern void set_environ(char *var, char *value);
656 extern FILE *localcgi_post(char *, char *, FormList *, char *);
657 #define localcgi_get(u, q, r) localcgi_post((u), (q), NULL, (r))
658 extern FILE *openSecretFile(char *fname);
659 extern void loadPasswd(void);
660 extern void loadPreForm(void);
661 extern int find_auth_user_passwd(ParsedURL *pu, char *realm,
662 				 Str *uname, Str *pwd, int is_proxy);
663 extern void add_auth_user_passwd(ParsedURL *pu, char *realm,
664 				 Str uname, Str pwd, int is_proxy);
665 extern void invalidate_auth_user_passwd(ParsedURL *pu, char *realm,
666 					Str uname, Str pwd, int is_proxy);
667 extern char *last_modified(Buffer *buf);
668 extern Str romanNumeral(int n);
669 extern Str romanAlphabet(int n);
670 extern void setup_child(int child, int i, int f);
671 extern void myExec(char *command);
672 extern void mySystem(char *command, int background);
673 extern Str myExtCommand(char *cmd, char *arg, int redirect);
674 extern Str myEditor(char *cmd, char *file, int line);
675 extern int is_localhost(const char *host);
676 extern char *file_to_url(char *file);
677 #ifdef USE_M17N
678 extern char *url_unquote_conv(char *url, wc_ces charset);
679 #else
680 extern char *url_unquote_conv0(char *url);
681 #define url_unquote_conv(url, charset) url_unquote_conv0(url)
682 #endif
683 extern char *expandName(char *name);
684 extern Str tmpfname(int type, char *ext);
685 extern time_t mymktime(char *timestr);
686 extern void (*mySignal(int signal_number, void (*action) (int))) (int);
687 #ifdef USE_COOKIE
688 extern char *FQDN(char *host);
689 extern Str find_cookie(ParsedURL *pu);
690 extern int add_cookie(ParsedURL *pu, Str name, Str value, time_t expires,
691 		      Str domain, Str path, int flag, Str comment, int version,
692 		      Str port, Str commentURL);
693 extern void save_cookies(void);
694 extern void load_cookies(void);
695 extern void initCookie(void);
696 extern void cooLst(void);
697 extern Buffer *cookie_list_panel(void);
698 extern void set_cookie_flag(struct parsed_tagarg *arg);
699 extern int check_cookie_accept_domain(char *domain);
700 #else				/* not USE_COOKIE */
701 #define cooLst nulcmd
702 #endif				/* not USE_COOKIE */
703 #ifdef USE_M17N
704 extern void docCSet(void);
705 extern void defCSet(void);
706 extern void change_charset(struct parsed_tagarg *arg);
707 #else
708 #define docCSet nulcmd
709 #define defCSet nulcmd
710 #endif
711 
712 #ifdef USE_MARK
713 extern void _mark(void);
714 extern void nextMk(void);
715 extern void prevMk(void);
716 extern void reMark(void);
717 #else				/* not USE_MARK */
718 #define _mark  nulcmd
719 #define nextMk nulcmd
720 #define prevMk nulcmd
721 #define reMark nulcmd
722 #endif				/* not USE_MARK */
723 
724 #ifdef USE_MOUSE
725 extern void mouse(void);
726 extern void sgrmouse(void);
727 extern void mouse_init(void);
728 extern void mouse_end(void);
729 extern void mouse_active(void);
730 extern void mouse_inactive(void);
731 extern void msToggle(void);
732 extern void movMs(void);
733 #ifdef USE_MENU
734 extern void menuMs(void);
735 #else
736 #define menuMs nulcmd
737 #endif
738 extern void tabMs(void);
739 extern void closeTMs(void);
740 #else				/* not USE_MOUSE */
741 #define mouse nulcmd
742 #define sgrmouse nulcmd
743 #define msToggle nulcmd
744 #define movMs nulcmd
745 #define menuMs nulcmd
746 #define tabMs nulcmd
747 #define closeTMs nulcmd
748 #endif				/* not USE_MOUSE */
749 
750 #ifdef USE_IMAGE
751 extern void initImage(void);
752 extern void termImage(void);
753 extern void addImage(ImageCache * cache, int x, int y, int sx, int sy, int w,
754 		     int h);
755 extern void drawImage(void);
756 extern void clearImage(void);
757 #endif
758 
759 extern char *searchKeyData(void);
760 
761 extern void setKeymap(char *p, int lineno, int verbose);
762 extern void initKeymap(int force);
763 extern int getFuncList(char *id);
764 extern int getKey(char *s);
765 extern char *getKeyData(int key);
766 extern char *getWord(char **str);
767 extern char *getQWord(char **str);
768 struct regex;
769 extern char *getRegexWord(const char **str, struct regex **regex_ret);
770 #ifdef USE_MOUSE
771 extern void initMouseAction(void);
772 #endif
773 
774 #ifdef USE_MENU
775 extern void new_menu(Menu *menu, MenuItem *item);
776 extern void geom_menu(Menu *menu, int x, int y, int mselect);
777 extern void draw_all_menu(Menu *menu);
778 extern void draw_menu(Menu *menu);
779 extern void draw_menu_item(Menu *menu, int mselect);
780 extern int select_menu(Menu *menu, int mselect);
781 extern void goto_menu(Menu *menu, int mselect, int down);
782 extern void up_menu(Menu *menu, int n);
783 extern void down_menu(Menu *menu, int n);
784 extern int action_menu(Menu *menu);
785 extern void popup_menu(Menu *parent, Menu *menu);
786 extern void guess_menu_xy(Menu *menu, int width, int *x, int *y);
787 extern void new_option_menu(Menu *menu, char **label, int *variable,
788 			    void (*func) ());
789 
790 extern int setMenuItem(MenuItem *item, char *type, char *line);
791 extern int addMenuList(MenuList **list, char *id);
792 extern int getMenuN(MenuList *list, char *id);
793 
794 extern void popupMenu(int x, int y, Menu *menu);
795 extern void mainMenu(int x, int y);
796 extern void mainMn(void);
797 extern void selMn(void);
798 extern void tabMn(void);
799 extern void optionMenu(int x, int y, char **label, int *variable, int initial,
800 		       void (*func) ());
801 extern void initMenu(void);
802 #else				/* not USE_MENU */
803 #define mainMn nulcmd
804 #define selMn selBuf
805 #define tabMn nulcmd
806 #endif				/* not USE_MENU */
807 
808 #ifdef USE_DICT
809 extern void dictword(void);
810 extern void dictwordat(void);
811 #else				/* not USE_DICT */
812 #define dictword nulcmd
813 #define dictwordat nulcmd
814 #endif				/* not USE_DICT */
815 #if 0
816 extern void reloadBuffer(Buffer *buf);
817 #endif
818 extern char *guess_save_name(Buffer *buf, char *file);
819 
820 extern void wrapToggle(void);
821 #ifdef USE_BUFINFO
822 extern void saveBufferInfo(void);
823 #endif
824 
825 extern Str getLinkNumberStr(int correction);
826 
827 extern void dispVer(void);
828 
829 #ifdef USE_INCLUDED_SRAND48
830 void srand48(long);
831 long lrand48(void);
832 #endif
833 
834 extern Str base64_encode(const unsigned char *src, size_t len);
835