![]() |
|||||
|
00001 /* 00002 * File: glob.h 00003 * 00004 * Purpose: Declaration of the glob() API functions and types for the 00005 * Win32 platform. 00006 * 00007 * Created 13th November 2002 00008 * Updated: 3rd November 2003 00009 * 00010 * Author: Matthew Wilson, Synesis Software Pty Ltd. 00011 * 00012 * License: (Licensed under the Synesis Software Standard Source License) 00013 * 00014 * Copyright (C) 2002, Synesis Software Pty Ltd. 00015 * 00016 * All rights reserved. 00017 * 00018 * www: http://www.synesis.com.au/ 00019 * http://www.synesis.com.au/software/ 00020 * 00021 * email: software@synesis.com.au 00022 * software@synesis-group.com 00023 * 00024 * Redistribution and use in source and binary forms, with or 00025 * without modification, are permitted provided that the following 00026 * conditions are met: 00027 * 00028 * (i) Redistributions of source code must retain the above 00029 * copyright notice and contact information, this list of 00030 * conditions and the following disclaimer. 00031 * 00032 * (ii) Any derived versions of this software (howsoever modified) 00033 * remain the sole property of Synesis Software. 00034 * 00035 * (iii) Any derived versions of this software (howsoever modified) 00036 * remain subject to all these conditions. 00037 * 00038 * (iv) Neither the name of Synesis Software nor the names of any 00039 * subdivisions, employees or agents of Synesis Software, nor the 00040 * names of any other contributors to this software may be used to 00041 * endorse or promote products derived from this software without 00042 * specific prior written permission. 00043 * 00044 * This source code is provided by Synesis Software "as is" and any 00045 * warranties, whether expressed or implied, including, but not 00046 * limited to, the implied warranties of merchantability and 00047 * fitness for a particular purpose are disclaimed. In no event 00048 * shall the Synesis Software be liable for any direct, indirect, 00049 * incidental, special, exemplary, or consequential damages 00050 * (including, but not limited to, procurement of substitute goods 00051 * or services; loss of use, data, or profits; or business 00052 * interruption) however caused and on any theory of liability, 00053 * whether in contract, strict liability, or tort (including 00054 * negligence or otherwise) arising in any way out of the use of 00055 * this software, even if advised of the possibility of such 00056 * damage. 00057 * 00058 * 00059 00060 00061 #ifndef _SYNSOFT_INCL_H_GLOB 00062 #define _SYNSOFT_INCL_H_GLOB 00063 00064 #ifndef _SYNSOFT_DOCUMENTATION_SKIP_SECTION 00065 #define _SYNSOFT_VER_H_GLOB_MAJOR 1 00066 #define _SYNSOFT_VER_H_GLOB_MINOR 0 00067 #define _SYNSOFT_VER_H_GLOB_REVISION 2 00068 #define _SYNSOFT_VER_H_GLOB_EDIT 14 00069 #endif /* !_SYNSOFT_DOCUMENTATION_SKIP_SECTION */ 00070 00071 /* 00072 00073 #ifndef WIN32 00074 # error This file is only currently defined for Win32 compilation units 00075 #endif /* WIN32 */ 00076 00077 /* 00078 * Constants and definitions 00079 */ 00080 00081 /* Error codes */ 00082 #define GLOB_NOSPACE (1) 00083 #define GLOB_ABORTED (2) 00084 #define GLOB_NOMATCH (3) 00085 #define GLOB_NOSYS (4) 00086 #define GLOB_ABEND GLOB_ABORTED 00088 /* Flags */ 00089 #define GLOB_ERR 0x00000001 00090 #define GLOB_MARK 0x00000002 00091 #define GLOB_NOSORT 0x00000004 00092 #define GLOB_DOOFFS 0x00000008 00093 #define GLOB_NOCHECK 0x00000010 00094 #define GLOB_APPEND 0x00000020 00095 #define GLOB_NOESCAPE 0x00000040 00096 #define GLOB_PERIOD 0x00000080 00098 # define GLOB_MAGCHAR 0x00000100 00099 # define GLOB_ALTDIRFUNC 0x00000200 00100 # define GLOB_BRACE 0x00000400 00101 # define GLOB_NOMAGIC 0x00000800 00102 # define GLOB_TILDE 0x00001000 00103 # define GLOB_ONLYDIR 0x00002000 00104 # define GLOB_TILDE_CHECK 0x00004000 00106 /* 00107 * Typedefs 00108 */ 00109 00114 typedef struct 00115 { 00116 int gl_pathc; 00117 int gl_matchc; 00118 int gl_offs; 00119 int gl_flags; 00120 char **gl_pathv; 00121 } glob_t; 00122 00123 /* 00124 * API functions 00125 */ 00126 00127 #ifdef __cplusplus 00128 extern "C" { 00129 #endif /* __cplusplus */ 00130 00142 int glob( char const *pattern 00143 , int flags 00144 , const int (*errfunc)(char const *, int) 00145 , glob_t *pglob); 00146 00154 void globfree(glob_t *pglob); 00155 00156 #ifdef __cplusplus 00157 } 00158 #endif /* __cplusplus */ 00159 00160 /* 00161 00162 #endif /* _SYNSOFT_INCL_H_GLOB */ 00163 00164 /*
|
UNIX Emulation for Win32 Libraries documentation © Synesis Software Pty Ltd, 2001-2003 |