File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / win32 / glob.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:34 2012 UTC (12 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, HEAD
php 5.4.3+patches

    1: /*      $Id: glob.h,v 1.1.1.2 2012/05/29 12:34:34 misho Exp $ */
    2: /*	OpenBSD: glob.h,v 1.7 2002/02/17 19:42:21 millert Exp 	*/
    3: /*	NetBSD: glob.h,v 1.5 1994/10/26 00:55:56 cgd Exp 	*/
    4: 
    5: /*
    6:  * Copyright (c) 1989, 1993
    7:  *	The Regents of the University of California.  All rights reserved.
    8:  *
    9:  * This code is derived from software contributed to Berkeley by
   10:  * Guido van Rossum.
   11:  *
   12:  * Redistribution and use in source and binary forms, with or without
   13:  * modification, are permitted provided that the following conditions
   14:  * are met:
   15:  * 1. Redistributions of source code must retain the above copyright
   16:  *    notice, this list of conditions and the following disclaimer.
   17:  * 2. Redistributions in binary form must reproduce the above copyright
   18:  *    notice, this list of conditions and the following disclaimer in the
   19:  *    documentation and/or other materials provided with the distribution.
   20:  * 3. All advertising materials mentioning features or use of this software
   21:  *    must display the following acknowledgement:
   22:  *	This product includes software developed by the University of
   23:  *	California, Berkeley and its contributors.
   24:  * 4. Neither the name of the University nor the names of its contributors
   25:  *    may be used to endorse or promote products derived from this software
   26:  *    without specific prior written permission.
   27:  *
   28:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   29:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   30:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   31:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   32:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   33:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   34:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   35:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   36:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   37:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   38:  * SUCH DAMAGE.
   39:  *
   40:  *	@(#)glob.h	8.1 (Berkeley) 6/2/93
   41:  */
   42: 
   43: #ifndef _GLOB_H_
   44: #define	_GLOB_H_
   45: 
   46: #ifndef PHP_WIN32
   47: # include <sys/cdefs.h>
   48: #endif
   49: 
   50: struct stat;
   51: typedef struct {
   52: 	int gl_pathc;		/* Count of total paths so far. */
   53: 	int gl_matchc;		/* Count of paths matching pattern. */
   54: 	int gl_offs;		/* Reserved at beginning of gl_pathv. */
   55: 	int gl_flags;		/* Copy of flags parameter to glob. */
   56: 	char **gl_pathv;	/* List of paths matching pattern. */
   57: 				/* Copy of errfunc parameter to glob. */
   58: 	int (*gl_errfunc)(const char *, int);
   59: 
   60: 	/*
   61: 	 * Alternate filesystem access methods for glob; replacement
   62: 	 * versions of closedir(3), readdir(3), opendir(3), stat(2)
   63: 	 * and lstat(2).
   64: 	 */
   65: 	void (*gl_closedir)(void *);
   66: 	struct dirent *(*gl_readdir)(void *);	
   67: 	void *(*gl_opendir)(const char *);
   68: 	int (*gl_lstat)(const char *, struct stat *);
   69: 	int (*gl_stat)(const char *, struct stat *);
   70: } glob_t;
   71: 
   72: /* Flags */
   73: #define	GLOB_APPEND	0x0001	/* Append to output from previous call. */
   74: #define	GLOB_DOOFFS	0x0002	/* Use gl_offs. */
   75: #define	GLOB_ERR	0x0004	/* Return on error. */
   76: #define	GLOB_MARK	0x0008	/* Append / to matching directories. */
   77: #define	GLOB_NOCHECK	0x0010	/* Return pattern itself if nothing matches. */
   78: #define	GLOB_NOSORT	0x0020	/* Don't sort. */
   79: 
   80: #ifndef _POSIX_SOURCE
   81: #define	GLOB_ALTDIRFUNC	0x0040	/* Use alternately specified directory funcs. */
   82: #define	GLOB_BRACE	0x0080	/* Expand braces ala csh. */
   83: #define	GLOB_MAGCHAR	0x0100	/* Pattern had globbing characters. */
   84: #define	GLOB_NOMAGIC	0x0200	/* GLOB_NOCHECK without magic chars (csh). */
   85: #define	GLOB_QUOTE	0x0400	/* Quote special chars with \. */
   86: #define	GLOB_TILDE	0x0800	/* Expand tilde names from the passwd file. */
   87: #define	GLOB_NOESCAPE	0x1000	/* Disable backslash escaping. */
   88: #define GLOB_LIMIT	0x2000	/* Limit pattern match output to ARG_MAX */
   89: #endif
   90: 
   91: /* Error values returned by glob(3) */
   92: #define	GLOB_NOSPACE	(-1)	/* Malloc call failed. */
   93: #define	GLOB_ABORTED	(-2)	/* Unignored error. */
   94: #define	GLOB_NOMATCH	(-3)	/* No match and GLOB_NOCHECK not set. */
   95: #define	GLOB_NOSYS	(-4)	/* Function not supported. */
   96: #define GLOB_ABEND	GLOB_ABORTED
   97: 
   98: BEGIN_EXTERN_C()
   99: PHPAPI int	glob(const char *, int, int (*)(const char *, int), glob_t *);
  100: PHPAPI void	globfree(glob_t *);
  101: END_EXTERN_C()
  102: #endif /* !_GLOB_H_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>