1/* Copyright (C) 2002, 2010 by Red Hat, Incorporated. All rights reserved. 2 * 3 * Permission to use, copy, modify, and distribute this software 4 * is freely granted, provided that this notice is preserved. 5 */ 6 7#ifndef _WORDEXP_H_ 8#define _WORDEXP_H_ 9 10#include <sys/types.h> 11 12#ifdef __cplusplus 13extern "C" { 14#endif 15 16struct _wordexp_t 17{ 18 size_t we_wordc; /* Count of words matched by words. */ 19 char **we_wordv; /* Pointer to list of expanded words. */ 20 size_t we_offs; /* Slots to reserve at the beginning of we_wordv. */ 21}; 22 23typedef struct _wordexp_t wordexp_t; 24 25#define WRDE_DOOFFS 0x0001 /* Use we_offs. */ 26#define WRDE_APPEND 0x0002 /* Append to output from previous call. */ 27#define WRDE_NOCMD 0x0004 /* Don't perform command substitution. */ 28#define WRDE_REUSE 0x0008 /* pwordexp points to a wordexp_t struct returned from 29 a previous successful call to wordexp. */ 30#define WRDE_SHOWERR 0x0010 /* Print error messages to stderr. */ 31#define WRDE_UNDEF 0x0020 /* Report attempt to expand undefined shell variable. */ 32 33enum { 34 WRDE_SUCCESS, 35 WRDE_NOSPACE, 36 WRDE_BADCHAR, 37 WRDE_BADVAL, 38 WRDE_CMDSUB, 39 WRDE_SYNTAX, 40 WRDE_NOSYS 41}; 42 43/* Note: This implementation of wordexp requires a version of bash 44 that supports the --wordexp and --protected arguments to be present 45 on the system. It does not support the WRDE_UNDEF flag. */ 46int wordexp(const char *, wordexp_t *, int); 47void wordfree(wordexp_t *); 48 49#ifdef __cplusplus 50} 51#endif 52 53#endif /* _WORDEXP_H_ */ 54