1 |
/*- |
2 |
* Copyright (c) 2002 Tim J. Robbins. |
3 |
* All rights reserved. |
4 |
* |
5 |
* Redistribution and use in source and binary forms, with or without |
6 |
* modification, are permitted provided that the following conditions |
7 |
* are met: |
8 |
* 1. Redistributions of source code must retain the above copyright |
9 |
* notice, this list of conditions and the following disclaimer. |
10 |
* 2. Redistributions in binary form must reproduce the above copyright |
11 |
* notice, this list of conditions and the following disclaimer in the |
12 |
* documentation and/or other materials provided with the distribution. |
13 |
* |
14 |
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND |
15 |
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
16 |
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
17 |
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
18 |
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
19 |
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
20 |
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
21 |
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
22 |
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
23 |
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
24 |
* SUCH DAMAGE. |
25 |
* |
26 |
* $FreeBSD: src/include/wordexp.h,v 1.5 2004/06/30 13:55:08 tjr Exp $ |
27 |
* $MidnightBSD$ |
28 |
*/ |
29 |
|
30 |
#ifndef _WORDEXP_H_ |
31 |
#define _WORDEXP_H_ |
32 |
|
33 |
#include <sys/cdefs.h> |
34 |
#include <sys/_types.h> |
35 |
|
36 |
#if __XSI_VISIBLE && !defined(_SIZE_T_DECLARED) |
37 |
typedef __size_t size_t; |
38 |
#define _SIZE_T_DECLARED |
39 |
#endif |
40 |
|
41 |
typedef struct { |
42 |
__size_t we_wordc; /* count of words matched */ |
43 |
char **we_wordv; /* pointer to list of words */ |
44 |
__size_t we_offs; /* slots to reserve in we_wordv */ |
45 |
char *we_strings; /* storage for wordv strings */ |
46 |
__size_t we_nbytes; /* size of we_strings */ |
47 |
} wordexp_t; |
48 |
|
49 |
/* |
50 |
* Flags for wordexp(). |
51 |
*/ |
52 |
#define WRDE_APPEND 0x1 /* append to previously generated */ |
53 |
#define WRDE_DOOFFS 0x2 /* we_offs member is valid */ |
54 |
#define WRDE_NOCMD 0x4 /* disallow command substitution */ |
55 |
#define WRDE_REUSE 0x8 /* reuse wordexp_t */ |
56 |
#define WRDE_SHOWERR 0x10 /* don't redirect stderr to /dev/null */ |
57 |
#define WRDE_UNDEF 0x20 /* disallow undefined shell vars */ |
58 |
|
59 |
/* |
60 |
* Return values from wordexp(). |
61 |
*/ |
62 |
#define WRDE_BADCHAR 1 /* unquoted special character */ |
63 |
#define WRDE_BADVAL 2 /* undefined variable */ |
64 |
#define WRDE_CMDSUB 3 /* command substitution not allowed */ |
65 |
#define WRDE_NOSPACE 4 /* no memory for result */ |
66 |
#if __XSI_VISIBLE |
67 |
#define WRDE_NOSYS 5 /* obsolete, reserved */ |
68 |
#endif |
69 |
#define WRDE_SYNTAX 6 /* shell syntax error */ |
70 |
|
71 |
__BEGIN_DECLS |
72 |
int wordexp(const char * __restrict, wordexp_t * __restrict, int); |
73 |
void wordfree(wordexp_t *); |
74 |
__END_DECLS |
75 |
|
76 |
#endif /* !_WORDEXP_H_ */ |