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