]> git.ipfire.org Git - thirdparty/bash.git/blame - externs.h
Bash-4.4 patch 4
[thirdparty/bash.git] / externs.h
CommitLineData
726f6388
JA
1/* externs.h -- extern function declarations which do not appear in their
2 own header file. */
3
495aee44 4/* Copyright (C) 1993-2010 Free Software Foundation, Inc.
726f6388
JA
5
6 This file is part of GNU Bash, the Bourne Again SHell.
7
3185942a
JA
8 Bash is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
726f6388 12
3185942a
JA
13 Bash is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
726f6388 17
3185942a
JA
18 You should have received a copy of the GNU General Public License
19 along with Bash. If not, see <http://www.gnu.org/licenses/>.
20*/
726f6388
JA
21
22/* Make sure that this is included *after* config.h! */
23
ccc6cda3
JA
24#if !defined (_EXTERNS_H_)
25# define _EXTERNS_H_
726f6388
JA
26
27#include "stdc.h"
28
29/* Functions from expr.c. */
7117c2d2 30extern intmax_t evalexp __P((char *, int *));
726f6388
JA
31
32/* Functions from print_cmd.c. */
3185942a
JA
33#define FUNC_MULTILINE 0x01
34#define FUNC_EXTERNAL 0x02
35
726f6388 36extern char *make_command_string __P((COMMAND *));
b80f6443
JA
37extern char *named_function_string __P((char *, COMMAND *, int));
38
726f6388
JA
39extern void print_command __P((COMMAND *));
40extern void print_simple_command __P((SIMPLE_COM *));
ccc6cda3 41extern void print_word_list __P((WORD_LIST *, char *));
b80f6443
JA
42
43/* debugger support */
44extern void print_for_command_head __P((FOR_COM *));
45#if defined (SELECT_COMMAND)
46extern void print_select_command_head __P((SELECT_COM *));
47#endif
48extern void print_case_command_head __P((CASE_COM *));
49#if defined (DPAREN_ARITHMETIC)
50extern void print_arith_command __P((WORD_LIST *));
51#endif
52#if defined (COND_COMMAND)
53extern void print_cond_command __P((COND_COM *));
54#endif
55
56/* set -x support */
0001803f
CR
57extern void xtrace_init __P((void));
58#ifdef NEED_XTRACE_SET_DECL
59extern void xtrace_set __P((int, FILE *));
60#endif
61extern void xtrace_fdchk __P((int));
62extern void xtrace_reset __P((void));
7117c2d2 63extern char *indirection_level_string __P((void));
b80f6443
JA
64extern void xtrace_print_assignment __P((char *, char *, int, int));
65extern void xtrace_print_word_list __P((WORD_LIST *, int));
66extern void xtrace_print_for_command_head __P((FOR_COM *));
67#if defined (SELECT_COMMAND)
68extern void xtrace_print_select_command_head __P((SELECT_COM *));
69#endif
70extern void xtrace_print_case_command_head __P((CASE_COM *));
cce855bc
JA
71#if defined (DPAREN_ARITHMETIC)
72extern void xtrace_print_arith_cmd __P((WORD_LIST *));
73#endif
74#if defined (COND_COMMAND)
75extern void xtrace_print_cond_term __P((int, int, WORD_DESC *, char *, char *));
76#endif
726f6388
JA
77
78/* Functions from shell.c. */
f73dda09 79extern void exit_shell __P((int)) __attribute__((__noreturn__));
7117c2d2 80extern void sh_exit __P((int)) __attribute__((__noreturn__));
ac50fbac 81extern void subshell_exit __P((int)) __attribute__((__noreturn__));
ccc6cda3 82extern void disable_priv_mode __P((void));
d166f048 83extern void unbind_args __P((void));
ccc6cda3
JA
84
85#if defined (RESTRICTED_SHELL)
b72432fd 86extern int shell_is_restricted __P((char *));
ccc6cda3
JA
87extern int maybe_make_restricted __P((char *));
88#endif
89
cce855bc 90extern void unset_bash_input __P((int));
d166f048
JA
91extern void get_current_user_info __P((void));
92
ccc6cda3
JA
93/* Functions from eval.c. */
94extern int reader_loop __P((void));
95extern int parse_command __P((void));
96extern int read_command __P((void));
726f6388
JA
97
98/* Functions from braces.c. */
99#if defined (BRACE_EXPANSION)
100extern char **brace_expand __P((char *));
101#endif
102
ccc6cda3 103/* Miscellaneous functions from parse.y */
bb70624e 104extern int yyparse __P((void));
f73dda09 105extern int return_EOF __P((void));
a0c0a00f 106extern void push_token __P((int));
3185942a 107extern char *xparse_dolparen __P((char *, char *, int *, int));
bb70624e 108extern void reset_parser __P((void));
b80f6443
JA
109extern WORD_LIST *parse_string_to_word_list __P((char *, int, const char *));
110
ac50fbac
CR
111extern int parser_in_command_position __P((void));
112
b80f6443 113extern void free_pushed_string_input __P((void));
bb70624e 114
ac50fbac
CR
115extern int parser_expanding_alias __P((void));
116extern void parser_save_alias __P((void));
117extern void parser_restore_alias __P((void));
118
a0c0a00f
CR
119extern void clear_shell_input_line __P((void));
120
7117c2d2
JA
121extern char *decode_prompt_string __P((char *));
122
bb70624e
JA
123extern int get_current_prompt_level __P((void));
124extern void set_current_prompt_level __P((int));
ccc6cda3 125
f73dda09 126#if defined (HISTORY)
495aee44 127extern char *history_delimiting_chars __P((const char *));
f73dda09 128#endif
ccc6cda3
JA
129
130/* Declarations for functions defined in locale.c */
131extern void set_default_locale __P((void));
132extern void set_default_locale_vars __P((void));
133extern int set_locale_var __P((char *, char *));
134extern int set_lang __P((char *, char *));
0628567a 135extern void set_default_lang __P((void));
ccc6cda3
JA
136extern char *get_locale_var __P((char *));
137extern char *localetrans __P((char *, int, int *));
7117c2d2
JA
138extern char *mk_msgstr __P((char *, int *));
139extern char *localeexpand __P((char *, int, int, int, int *));
ccc6cda3
JA
140
141/* Declarations for functions defined in list.c. */
7117c2d2
JA
142extern void list_walk __P((GENERIC_LIST *, sh_glist_func_t *));
143extern void wlist_walk __P((WORD_LIST *, sh_icpfunc_t *));
144extern GENERIC_LIST *list_reverse ();
ccc6cda3
JA
145extern int list_length ();
146extern GENERIC_LIST *list_append ();
7117c2d2 147extern GENERIC_LIST *list_remove ();
ccc6cda3 148
cce855bc 149/* Declarations for functions defined in stringlib.c */
bb70624e 150extern int find_string_in_alist __P((char *, STRING_INT_ALIST *, int));
7117c2d2
JA
151extern char *find_token_in_alist __P((int, STRING_INT_ALIST *, int));
152extern int find_index_in_alist __P((char *, STRING_INT_ALIST *, int));
bb70624e 153
0001803f 154extern char *substring __P((const char *, int, int));
cce855bc 155extern char *strsub __P((char *, char *, char *, int));
a0c0a00f 156extern char *strcreplace __P((char *, int, const char *, int));
cce855bc
JA
157extern void strip_leading __P((char *));
158extern void strip_trailing __P((char *, int, int));
cce855bc
JA
159extern void xbcopy __P((char *, char *, int));
160
b80f6443
JA
161/* Functions from version.c. */
162extern char *shell_version_string __P((void));
163extern void show_shell_version __P((int));
164
cce855bc
JA
165/* Functions from the bash library, lib/sh/libsh.a. These should really
166 go into a separate include file. */
28ef6c31 167
3185942a
JA
168/* declarations for functions defined in lib/sh/casemod.c */
169extern char *sh_modcase __P((const char *, char *, int));
170
171/* Defines for flags argument to sh_modcase. These need to agree with what's
172 in lib/sh/casemode.c */
17345e5a
JA
173#define CASE_LOWER 0x0001
174#define CASE_UPPER 0x0002
175#define CASE_CAPITALIZE 0x0004
176#define CASE_UNCAP 0x0008
177#define CASE_TOGGLE 0x0010
178#define CASE_TOGGLEALL 0x0020
179#define CASE_UPFIRST 0x0040
180#define CASE_LOWFIRST 0x0080
181
182#define CASE_USEWORDS 0x1000
3185942a 183
28ef6c31
JA
184/* declarations for functions defined in lib/sh/clktck.c */
185extern long get_clk_tck __P((void));
186
187/* declarations for functions defined in lib/sh/clock.c */
188extern void clock_t_to_secs ();
189extern void print_clock_t ();
190
495aee44
CR
191/* Declarations for functions defined in lib/sh/dprintf.c */
192#if !defined (HAVE_DPRINTF)
193extern void dprintf __P((int, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
194#endif
3185942a 195
f73dda09
JA
196/* Declarations for functions defined in lib/sh/fmtulong.c */
197#define FL_PREFIX 0x01 /* add 0x, 0X, or 0 prefix as appropriate */
198#define FL_ADDBASE 0x02 /* add base# prefix to converted value */
199#define FL_HEXUPPER 0x04 /* use uppercase when converting to hex */
200#define FL_UNSIGNED 0x08 /* don't add any sign */
201
202extern char *fmtulong __P((unsigned long int, int, char *, size_t, int));
203
204/* Declarations for functions defined in lib/sh/fmtulong.c */
205#if defined (HAVE_LONG_LONG)
206extern char *fmtullong __P((unsigned long long int, int, char *, size_t, int));
207#endif
208
7117c2d2
JA
209/* Declarations for functions defined in lib/sh/fmtumax.c */
210extern char *fmtumax __P((uintmax_t, int, char *, size_t, int));
211
0001803f
CR
212/* Declarations for functions defined in lib/sh/fnxform.c */
213extern char *fnx_fromfs __P((char *, size_t));
214extern char *fnx_tofs __P((char *, size_t));
215
3185942a 216/* Declarations for functions defined in lib/sh/fpurge.c */
89a92869
CR
217
218#if defined NEED_FPURGE_DECL
3185942a
JA
219#if !HAVE_DECL_FPURGE
220
221#if HAVE_FPURGE
222# define fpurge _bash_fpurge
223#endif
224extern int fpurge __P((FILE *stream));
225
226#endif /* HAVE_DECL_FPURGE */
89a92869 227#endif /* NEED_FPURGE_DECL */
3185942a 228
cce855bc
JA
229/* Declarations for functions defined in lib/sh/getcwd.c */
230#if !defined (HAVE_GETCWD)
231extern char *getcwd __P((char *, size_t));
232#endif
233
3185942a
JA
234/* Declarations for functions defined in lib/sh/input_avail.c */
235extern int input_avail __P((int));
236
cce855bc 237/* Declarations for functions defined in lib/sh/itos.c */
7117c2d2
JA
238extern char *inttostr __P((intmax_t, char *, size_t));
239extern char *itos __P((intmax_t));
ac50fbac 240extern char *mitos __P((intmax_t));
7117c2d2
JA
241extern char *uinttostr __P((uintmax_t, char *, size_t));
242extern char *uitos __P((uintmax_t));
cce855bc 243
28ef6c31
JA
244/* declarations for functions defined in lib/sh/makepath.c */
245#define MP_DOTILDE 0x01
246#define MP_DOCWD 0x02
247#define MP_RMDOT 0x04
3185942a 248#define MP_IGNDOT 0x08
ccc6cda3 249
f73dda09 250extern char *sh_makepath __P((const char *, const char *, int));
ccc6cda3 251
0001803f
CR
252/* declarations for functions defined in lib/sh/mbscasecmp.c */
253#if !defined (HAVE_MBSCASECMP)
254extern char *mbscasecmp __P((const char *, const char *));
255#endif
256
257/* declarations for functions defined in lib/sh/mbschr.c */
258#if !defined (HAVE_MBSCHR)
259extern char *mbschr __P((const char *, int));
260#endif
261
262/* declarations for functions defined in lib/sh/mbscmp.c */
263#if !defined (HAVE_MBSCMP)
264extern char *mbscmp __P((const char *, const char *));
265#endif
266
7117c2d2
JA
267/* declarations for functions defined in lib/sh/netconn.c */
268extern int isnetconn __P((int));
269
28ef6c31
JA
270/* declarations for functions defined in lib/sh/netopen.c */
271extern int netopen __P((char *));
272
273/* Declarations for functions defined in lib/sh/oslib.c */
ccc6cda3 274
7117c2d2 275#if !defined (HAVE_DUP2) || defined (DUP2_BROKEN)
ccc6cda3 276extern int dup2 __P((int, int));
7117c2d2 277#endif
726f6388 278
28ef6c31
JA
279#if !defined (HAVE_GETDTABLESIZE)
280extern int getdtablesize __P((void));
281#endif /* !HAVE_GETDTABLESIZE */
282
ccc6cda3
JA
283#if !defined (HAVE_GETHOSTNAME)
284extern int gethostname __P((char *, int));
285#endif /* !HAVE_GETHOSTNAME */
286
7117c2d2
JA
287extern int getmaxgroups __P((void));
288extern long getmaxchild __P((void));
289
28ef6c31
JA
290/* declarations for functions defined in lib/sh/pathcanon.c */
291#define PATH_CHECKDOTDOT 0x0001
292#define PATH_CHECKEXISTS 0x0002
293#define PATH_HARDPATH 0x0004
294#define PATH_NOALLOC 0x0008
295
296extern char *sh_canonpath __P((char *, int));
297
298/* declarations for functions defined in lib/sh/pathphys.c */
299extern char *sh_physpath __P((char *, int));
300extern char *sh_realpath __P((const char *, char *));
ccc6cda3 301
28ef6c31 302/* declarations for functions defined in lib/sh/setlinebuf.c */
f73dda09
JA
303#ifdef NEED_SH_SETLINEBUF_DECL
304extern int sh_setlinebuf __P((FILE *));
ccc6cda3 305#endif
726f6388 306
0628567a 307/* declarations for functions defined in lib/sh/shaccess.c */
a0c0a00f 308extern int sh_eaccess __P((const char *, int));
0628567a 309
b80f6443
JA
310/* declarations for functions defined in lib/sh/shmatch.c */
311extern int sh_regmatch __P((const char *, const char *, int));
312
313/* defines for flags argument to sh_regmatch. */
314#define SHMAT_SUBEXP 0x001 /* save subexpressions in SH_REMATCH */
315#define SHMAT_PWARN 0x002 /* print a warning message on invalid regexp */
316
495aee44
CR
317/* declarations for functions defined in lib/sh/shmbchar.c */
318extern size_t mbstrlen __P((const char *));
319extern char *mbsmbchar __P((const char *));
ac50fbac 320extern int sh_mbsnlen __P((const char *, size_t, int));
495aee44 321
28ef6c31 322/* declarations for functions defined in lib/sh/shquote.c */
495aee44
CR
323extern char *sh_single_quote __P((const char *));
324extern char *sh_double_quote __P((const char *));
95732b49 325extern char *sh_mkdoublequoted __P((const char *, int, int));
28ef6c31 326extern char *sh_un_double_quote __P((char *));
ac50fbac 327extern char *sh_backslash_quote __P((char *, const char *, int));
28ef6c31 328extern char *sh_backslash_quote_for_double_quotes __P((char *));
a0c0a00f
CR
329extern char *sh_quote_reusable __P((char *, int));
330extern int sh_contains_shell_metas __P((const char *));
331extern int sh_contains_quotes __P((const char *));
28ef6c31
JA
332
333/* declarations for functions defined in lib/sh/spell.c */
334extern int spname __P((char *, char *));
3185942a 335extern char *dirspell __P((char *));
28ef6c31
JA
336
337/* declarations for functions defined in lib/sh/strcasecmp.c */
338#if !defined (HAVE_STRCASECMP)
339extern int strncasecmp __P((const char *, const char *, int));
340extern int strcasecmp __P((const char *, const char *));
341#endif /* HAVE_STRCASECMP */
342
0001803f
CR
343/* declarations for functions defined in lib/sh/strcasestr.c */
344#if ! HAVE_STRCASESTR
345extern char *strcasestr __P((const char *, const char *));
346#endif
347
495aee44
CR
348/* declarations for functions defined in lib/sh/strchrnul.c */
349#if ! HAVE_STRCHRNUL
350extern char *strchrnul __P((const char *, int));
351#endif
352
28ef6c31 353/* declarations for functions defined in lib/sh/strerror.c */
0628567a 354#if !defined (HAVE_STRERROR) && !defined (strerror)
28ef6c31
JA
355extern char *strerror __P((int));
356#endif
357
7117c2d2
JA
358/* declarations for functions defined in lib/sh/strftime.c */
359#if !defined (HAVE_STRFTIME) && defined (NEED_STRFTIME_DECL)
360extern size_t strftime __P((char *, size_t, const char *, const struct tm *));
361#endif
362
28ef6c31
JA
363/* declarations for functions and structures defined in lib/sh/stringlist.c */
364
365/* This is a general-purpose argv-style array struct. */
366typedef struct _list_of_strings {
367 char **list;
368 int list_size;
369 int list_len;
370} STRINGLIST;
371
7117c2d2
JA
372typedef int sh_strlist_map_func_t __P((char *));
373
374extern STRINGLIST *strlist_create __P((int));
375extern STRINGLIST *strlist_resize __P((STRINGLIST *, int));
376extern void strlist_flush __P((STRINGLIST *));
377extern void strlist_dispose __P((STRINGLIST *));
378extern int strlist_remove __P((STRINGLIST *, char *));
379extern STRINGLIST *strlist_copy __P((STRINGLIST *));
380extern STRINGLIST *strlist_merge __P((STRINGLIST *, STRINGLIST *));
381extern STRINGLIST *strlist_append __P((STRINGLIST *, STRINGLIST *));
382extern STRINGLIST *strlist_prefix_suffix __P((STRINGLIST *, char *, char *));
383extern void strlist_print __P((STRINGLIST *, char *));
384extern void strlist_walk __P((STRINGLIST *, sh_strlist_map_func_t *));
385extern void strlist_sort __P((STRINGLIST *));
28ef6c31
JA
386
387/* declarations for functions defined in lib/sh/stringvec.c */
388
7117c2d2
JA
389extern char **strvec_create __P((int));
390extern char **strvec_resize __P((char **, int));
ac50fbac
CR
391extern char **strvec_mcreate __P((int));
392extern char **strvec_mresize __P((char **, int));
7117c2d2
JA
393extern void strvec_flush __P((char **));
394extern void strvec_dispose __P((char **));
395extern int strvec_remove __P((char **, char *));
396extern int strvec_len __P((char **));
397extern int strvec_search __P((char **, char *));
398extern char **strvec_copy __P((char **));
399extern int strvec_strcmp __P((char **, char **));
400extern void strvec_sort __P((char **));
401
402extern char **strvec_from_word_list __P((WORD_LIST *, int, int, int *));
403extern WORD_LIST *strvec_to_word_list __P((char **, int, int));
28ef6c31 404
95732b49
JA
405/* declarations for functions defined in lib/sh/strnlen.c */
406#if !defined (HAVE_STRNLEN)
407extern size_t strnlen __P((const char *, size_t));
408#endif
409
410/* declarations for functions defined in lib/sh/strpbrk.c */
411#if !defined (HAVE_STRPBRK)
412extern char *strpbrk __P((const char *, const char *));
413#endif
414
cce855bc
JA
415/* declarations for functions defined in lib/sh/strtod.c */
416#if !defined (HAVE_STRTOD)
417extern double strtod __P((const char *, char **));
418#endif
ccc6cda3 419
cce855bc 420/* declarations for functions defined in lib/sh/strtol.c */
f73dda09 421#if !HAVE_DECL_STRTOL
cce855bc
JA
422extern long strtol __P((const char *, char **, int));
423#endif
424
f73dda09
JA
425/* declarations for functions defined in lib/sh/strtoll.c */
426#if defined (HAVE_LONG_LONG) && !HAVE_DECL_STRTOLL
427extern long long strtoll __P((const char *, char **, int));
428#endif
429
cce855bc 430/* declarations for functions defined in lib/sh/strtoul.c */
f73dda09 431#if !HAVE_DECL_STRTOUL
cce855bc
JA
432extern unsigned long strtoul __P((const char *, char **, int));
433#endif
ccc6cda3 434
f73dda09
JA
435/* declarations for functions defined in lib/sh/strtoull.c */
436#if defined (HAVE_LONG_LONG) && !HAVE_DECL_STRTOULL
437extern unsigned long long strtoull __P((const char *, char **, int));
438#endif
439
440/* declarations for functions defined in lib/sh/strimax.c */
f73dda09
JA
441#if !HAVE_DECL_STRTOIMAX
442extern intmax_t strtoimax __P((const char *, char **, int));
443#endif
444
445/* declarations for functions defined in lib/sh/strumax.c */
446#if !HAVE_DECL_STRTOUMAX
447extern uintmax_t strtoumax __P((const char *, char **, int));
448#endif
449
28ef6c31
JA
450/* declarations for functions defined in lib/sh/strtrans.c */
451extern char *ansicstr __P((char *, int, int, int *, int *));
452extern char *ansic_quote __P((char *, int, int *));
f73dda09 453extern int ansic_shouldquote __P((const char *));
7117c2d2 454extern char *ansiexpand __P((char *, int, int, int *));
bb70624e
JA
455
456/* declarations for functions defined in lib/sh/timeval.c. No prototypes
457 so we don't have to count on having a definition of struct timeval in
458 scope when this file is included. */
459extern void timeval_to_secs ();
460extern void print_timeval ();
461
28ef6c31
JA
462/* declarations for functions defined in lib/sh/tmpfile.c */
463#define MT_USETMPDIR 0x0001
464#define MT_READWRITE 0x0002
465#define MT_USERANDOM 0x0004
bb70624e 466
28ef6c31
JA
467extern char *sh_mktmpname __P((char *, int));
468extern int sh_mktmpfd __P((char *, int, char **));
469/* extern FILE *sh_mktmpfp __P((char *, int, char **)); */
bb70624e 470
3185942a
JA
471/* declarations for functions defined in lib/sh/uconvert.c */
472extern int uconvert __P((char *, long *, long *));
473
474/* declarations for functions defined in lib/sh/ufuncs.c */
475extern unsigned int falarm __P((unsigned int, unsigned int));
476extern unsigned int fsleep __P((unsigned int, unsigned int));
477
495aee44
CR
478/* declarations for functions defined in lib/sh/unicode.c */
479extern int u32cconv __P((unsigned long, char *));
ac50fbac
CR
480extern void u32reset __P((void));
481
482/* declarations for functions defined in lib/sh/wcsnwidth.c */
483#if defined (HANDLE_MULTIBYTE)
484extern int wcsnwidth __P((const wchar_t *, size_t, int));
485#endif
495aee44 486
95732b49
JA
487/* declarations for functions defined in lib/sh/winsize.c */
488extern void get_new_window_size __P((int, int *, int *));
489
95732b49
JA
490/* declarations for functions defined in lib/sh/zcatfd.c */
491extern int zcatfd __P((int, int, char *));
492
3185942a 493/* declarations for functions defined in lib/sh/zgetline.c */
a0c0a00f 494extern ssize_t zgetline __P((int, char **, size_t *, int, int));
3185942a
JA
495
496/* declarations for functions defined in lib/sh/zmapfd.c */
497extern int zmapfd __P((int, char **, char *));
498
28ef6c31 499/* declarations for functions defined in lib/sh/zread.c */
f73dda09 500extern ssize_t zread __P((int, char *, size_t));
17345e5a 501extern ssize_t zreadretry __P((int, char *, size_t));
7117c2d2 502extern ssize_t zreadintr __P((int, char *, size_t));
f73dda09 503extern ssize_t zreadc __P((int, char *));
17345e5a 504extern ssize_t zreadcintr __P((int, char *));
ac50fbac 505extern ssize_t zreadn __P((int, char *, size_t));
28ef6c31
JA
506extern void zreset __P((void));
507extern void zsyncfd __P((int));
508
509/* declarations for functions defined in lib/sh/zwrite.c */
f73dda09 510extern int zwrite __P((int, char *, size_t));
bb70624e 511
495aee44 512/* declarations for functions defined in lib/glob/gmisc.c */
a0c0a00f 513extern int match_pattern_char __P((char *, char *, int));
495aee44
CR
514extern int umatchlen __P((char *, size_t));
515
516#if defined (HANDLE_MULTIBYTE)
a0c0a00f 517extern int match_pattern_wchar __P((wchar_t *, wchar_t *, int));
495aee44
CR
518extern int wmatchlen __P((wchar_t *, size_t));
519#endif
520
ccc6cda3 521#endif /* _EXTERNS_H_ */