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