#include <sys/types.h>
#include <sys/stat.h>
#include <glob.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
Include dependency graph for SimpleGlob.h:
Go to the source code of this file.
Data Structures | |
| class | SimpleGlobUtil |
| String manipulation functions. More... | |
| struct | SimpleGlobBase< SOCHAR > |
| Unix glob implementation. More... | |
| class | CSimpleGlobTempl< SOCHAR > |
| Implementation of the SimpleGlob class. More... | |
Defines | |
| #define | MAX_PATH PATH_MAX |
| #define | sg_strchr ::strchr |
| #define | sg_strrchr ::strrchr |
| #define | sg_strlen ::strlen |
| #define | sg_strcpy_s(a, n, b) ::strcpy(a,b) |
| #define | sg_strcmp ::strcmp |
| #define | sg_strcasecmp ::strcasecmp |
| #define | SOCHAR_T char |
| #define | SG_ASSERT(b) |
| #define | SG_PATH_CHAR '/' |
| #define | CSimpleGlob CSimpleGlobA |
| TCHAR version dependent on if _UNICODE is defined. | |
Typedefs | |
| typedef CSimpleGlobTempl< char > | CSimpleGlobA |
| ASCII/MBCS version of CSimpleGlob. | |
| typedef CSimpleGlobTempl< wchar_t > | CSimpleGlobW |
| wchar_t version of CSimpleGlob | |
Enumerations | |
| enum | SG_Flags { SG_GLOB_ERR = 1 << 0, SG_GLOB_MARK = 1 << 1, SG_GLOB_NOSORT = 1 << 2, SG_GLOB_NOCHECK = 1 << 3, SG_GLOB_TILDE = 1 << 4, SG_GLOB_ONLYDIR = 1 << 5, SG_GLOB_ONLYFILE = 1 << 6, SG_GLOB_NODOT = 1 << 7, SG_GLOB_FULLSORT = 1 << 8 } |
| The operation of SimpleGlob is fine-tuned via the use of a combination of the following flags. More... | |
| enum | SG_Error { SG_SUCCESS = 0, SG_ERR_NOMATCH = 1, SG_ERR_MEMORY = -1, SG_ERR_FAILURE = -2 } |
| Error return codes. More... | |
| enum | SG_FileType { SG_FILETYPE_INVALID, SG_FILETYPE_FILE, SG_FILETYPE_DIR } |
#include "SimpleGlob.h"
CSimpleGlob glob(FLAGS);
glob.Add("file*");
glob.Add(argc, argv);
for (int n = 0; n < glob.FileCount(); ++n) {
ProcessFile(glob.File(n));
}
Copyright (c) 2006-2007, Brodie Thiesfield
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Definition in file SimpleGlob.h.
| #define CSimpleGlob CSimpleGlobA |
| #define MAX_PATH PATH_MAX |
| #define SG_ASSERT | ( | b | ) |
Definition at line 195 of file SimpleGlob.h.
Referenced by CSimpleGlobTempl< SOCHAR >::File(), SimpleGlobBase< SOCHAR >::FindNextFileS(), SimpleGlobBase< SOCHAR >::GetFileNameS(), SimpleGlobBase< SOCHAR >::IsDirS(), and CSimpleGlobTempl< SOCHAR >::SetArgvArrayType().
| #define SG_PATH_CHAR '/' |
Definition at line 339 of file SimpleGlob.h.
Referenced by CSimpleGlobTempl< SOCHAR >::Add(), and CSimpleGlobTempl< SOCHAR >::AppendName().
| #define sg_strcasecmp ::strcasecmp |
| #define sg_strchr ::strchr |
| #define sg_strcmp ::strcmp |
| #define sg_strcpy_s | ( | a, | |||
| n, | |||||
| b | ) | ::strcpy(a,b) |
| #define sg_strlen ::strlen |
Definition at line 174 of file SimpleGlob.h.
| #define sg_strrchr ::strrchr |
| #define SOCHAR_T char |
Definition at line 178 of file SimpleGlob.h.
Referenced by SimpleGlobUtil::strcasecmp(), SimpleGlobUtil::strchr(), SimpleGlobUtil::strcmp(), SimpleGlobUtil::strcpy_s(), and SimpleGlobUtil::strrchr().
| typedef CSimpleGlobTempl< char > CSimpleGlobA |
| typedef CSimpleGlobTempl< wchar_t > CSimpleGlobW |
| enum SG_Error |
Error return codes.
Definition at line 138 of file SimpleGlob.h.
00138 { 00139 SG_SUCCESS = 0, 00140 SG_ERR_NOMATCH = 1, 00141 SG_ERR_MEMORY = -1, 00142 SG_ERR_FAILURE = -2 00143 };
| enum SG_FileType |
Definition at line 252 of file SimpleGlob.h.
00252 { 00253 SG_FILETYPE_INVALID, 00254 SG_FILETYPE_FILE, 00255 SG_FILETYPE_DIR 00256 };
| enum SG_Flags |
The operation of SimpleGlob is fine-tuned via the use of a combination of the following flags.
The flags may be passed at initialization of the class and used for every filespec added, or alternatively they may optionally be specified in the call to Add() and be different for each filespec.
| SG_GLOB_ERR | Return upon read error (e.g. directory does not have read permission) | |
| SG_GLOB_MARK | Append a slash (backslash in Windows) to every path which corresponds to a directory | |
| SG_GLOB_NOSORT | By default, files are returned in sorted into string order. With this flag, no sorting is done. This is not compatible with SG_GLOB_FULLSORT. | |
| SG_GLOB_FULLSORT | By default, files are sorted in groups belonging to each filespec that was added. For example if the filespec "b*" was added before the filespec "a*" then the argv array will contain all b* files sorted in order, followed by all a* files sorted in order. If this flag is specified, the entire array will be sorted ignoring the filespec groups. | |
| SG_GLOB_NOCHECK | If the pattern doesn't match anything, return the original pattern. | |
| SG_GLOB_TILDE | Tilde expansion is carried out (on Unix platforms) | |
| SG_GLOB_ONLYDIR | Return only directories which match (not compatible with SG_GLOB_ONLYFILE) | |
| SG_GLOB_ONLYFILE | Return only files which match (not compatible with SG_GLOB_ONLYDIR) | |
| SG_GLOB_NODOT | Do not return the "." or ".." special directories. |
| SG_GLOB_ERR | |
| SG_GLOB_MARK | |
| SG_GLOB_NOSORT | |
| SG_GLOB_NOCHECK | |
| SG_GLOB_TILDE | |
| SG_GLOB_ONLYDIR | |
| SG_GLOB_ONLYFILE | |
| SG_GLOB_NODOT | |
| SG_GLOB_FULLSORT |
Definition at line 125 of file SimpleGlob.h.
00125 { 00126 SG_GLOB_ERR = 1 << 0, 00127 SG_GLOB_MARK = 1 << 1, 00128 SG_GLOB_NOSORT = 1 << 2, 00129 SG_GLOB_NOCHECK = 1 << 3, 00130 SG_GLOB_TILDE = 1 << 4, 00131 SG_GLOB_ONLYDIR = 1 << 5, 00132 SG_GLOB_ONLYFILE = 1 << 6, 00133 SG_GLOB_NODOT = 1 << 7, 00134 SG_GLOB_FULLSORT = 1 << 8 00135 };
1.4.7