xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/wordexp.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /* Copyright (C) 1991, 92, 1996-1999, 2001, 2003 Free Software Foundation, Inc.
2*53ee8cc1Swenshuai.xi    This file is part of the GNU C Library.
3*53ee8cc1Swenshuai.xi 
4*53ee8cc1Swenshuai.xi    The GNU C Library is free software; you can redistribute it and/or
5*53ee8cc1Swenshuai.xi    modify it under the terms of the GNU Lesser General Public
6*53ee8cc1Swenshuai.xi    License as published by the Free Software Foundation; either
7*53ee8cc1Swenshuai.xi    version 2.1 of the License, or (at your option) any later version.
8*53ee8cc1Swenshuai.xi 
9*53ee8cc1Swenshuai.xi    The GNU C Library is distributed in the hope that it will be useful,
10*53ee8cc1Swenshuai.xi    but WITHOUT ANY WARRANTY; without even the implied warranty of
11*53ee8cc1Swenshuai.xi    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12*53ee8cc1Swenshuai.xi    Lesser General Public License for more details.
13*53ee8cc1Swenshuai.xi 
14*53ee8cc1Swenshuai.xi    You should have received a copy of the GNU Lesser General Public
15*53ee8cc1Swenshuai.xi    License along with the GNU C Library; if not, write to the Free
16*53ee8cc1Swenshuai.xi    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17*53ee8cc1Swenshuai.xi    02111-1307 USA.  */
18*53ee8cc1Swenshuai.xi 
19*53ee8cc1Swenshuai.xi #ifndef	_WORDEXP_H
20*53ee8cc1Swenshuai.xi #define	_WORDEXP_H	1
21*53ee8cc1Swenshuai.xi 
22*53ee8cc1Swenshuai.xi #include <features.h>
23*53ee8cc1Swenshuai.xi #define __need_size_t
24*53ee8cc1Swenshuai.xi #include <stddef.h>
25*53ee8cc1Swenshuai.xi 
26*53ee8cc1Swenshuai.xi __BEGIN_DECLS
27*53ee8cc1Swenshuai.xi 
28*53ee8cc1Swenshuai.xi /* Bits set in the FLAGS argument to `wordexp'.  */
29*53ee8cc1Swenshuai.xi enum
30*53ee8cc1Swenshuai.xi   {
31*53ee8cc1Swenshuai.xi     WRDE_DOOFFS = (1 << 0),	/* Insert PWORDEXP->we_offs NULLs.  */
32*53ee8cc1Swenshuai.xi     WRDE_APPEND = (1 << 1),	/* Append to results of a previous call.  */
33*53ee8cc1Swenshuai.xi     WRDE_NOCMD = (1 << 2),	/* Don't do command substitution.  */
34*53ee8cc1Swenshuai.xi     WRDE_REUSE = (1 << 3),	/* Reuse storage in PWORDEXP.  */
35*53ee8cc1Swenshuai.xi     WRDE_SHOWERR = (1 << 4),	/* Don't redirect stderr to /dev/null.  */
36*53ee8cc1Swenshuai.xi     WRDE_UNDEF = (1 << 5),	/* Error for expanding undefined variables.  */
37*53ee8cc1Swenshuai.xi     __WRDE_FLAGS = (WRDE_DOOFFS | WRDE_APPEND | WRDE_NOCMD |
38*53ee8cc1Swenshuai.xi 		    WRDE_REUSE | WRDE_SHOWERR | WRDE_UNDEF)
39*53ee8cc1Swenshuai.xi   };
40*53ee8cc1Swenshuai.xi 
41*53ee8cc1Swenshuai.xi /* Structure describing a word-expansion run.  */
42*53ee8cc1Swenshuai.xi typedef struct
43*53ee8cc1Swenshuai.xi   {
44*53ee8cc1Swenshuai.xi     size_t we_wordc;		/* Count of words matched.  */
45*53ee8cc1Swenshuai.xi     char **we_wordv;		/* List of expanded words.  */
46*53ee8cc1Swenshuai.xi     size_t we_offs;		/* Slots to reserve in `we_wordv'.  */
47*53ee8cc1Swenshuai.xi   } wordexp_t;
48*53ee8cc1Swenshuai.xi 
49*53ee8cc1Swenshuai.xi /* Possible nonzero return values from `wordexp'.  */
50*53ee8cc1Swenshuai.xi enum
51*53ee8cc1Swenshuai.xi   {
52*53ee8cc1Swenshuai.xi #ifdef __USE_XOPEN
53*53ee8cc1Swenshuai.xi     WRDE_NOSYS = -1,		/* Never used since we support `wordexp'.  */
54*53ee8cc1Swenshuai.xi #endif
55*53ee8cc1Swenshuai.xi     WRDE_NOSPACE = 1,		/* Ran out of memory.  */
56*53ee8cc1Swenshuai.xi     WRDE_BADCHAR,		/* A metachar appears in the wrong place.  */
57*53ee8cc1Swenshuai.xi     WRDE_BADVAL,		/* Undefined var reference with WRDE_UNDEF.  */
58*53ee8cc1Swenshuai.xi     WRDE_CMDSUB,		/* Command substitution with WRDE_NOCMD.  */
59*53ee8cc1Swenshuai.xi     WRDE_SYNTAX			/* Shell syntax error.  */
60*53ee8cc1Swenshuai.xi   };
61*53ee8cc1Swenshuai.xi 
62*53ee8cc1Swenshuai.xi /* Do word expansion of WORDS into PWORDEXP.  */
63*53ee8cc1Swenshuai.xi extern int wordexp (__const char *__restrict __words,
64*53ee8cc1Swenshuai.xi 		    wordexp_t *__restrict __pwordexp, int __flags);
65*53ee8cc1Swenshuai.xi 
66*53ee8cc1Swenshuai.xi /* Free the storage allocated by a `wordexp' call.  */
67*53ee8cc1Swenshuai.xi extern void wordfree (wordexp_t *__wordexp) __THROW;
68*53ee8cc1Swenshuai.xi 
69*53ee8cc1Swenshuai.xi __END_DECLS
70*53ee8cc1Swenshuai.xi 
71*53ee8cc1Swenshuai.xi #endif /* wordexp.h  */
72