| 1 | tim | 284 | #ifndef WILDCARD_H_INCLUDED | 
| 2 |  |  | #define WILDCARD_H_INCLUDED | 
| 3 |  |  |  | 
| 4 |  |  | // Copyright (C) 1996 - 2002 Florian Schintke | 
| 5 |  |  | // | 
| 6 |  |  | // This is free software; you can redistribute it and/or modify it under | 
| 7 |  |  | // the terms of the GNU General Public License as published by the Free | 
| 8 |  |  | // Software Foundation; either version 2, or (at your option) any later | 
| 9 |  |  | // version. | 
| 10 |  |  | // | 
| 11 |  |  | // Thanks to the E.S.O. - ACS project that has done this C++ interface | 
| 12 |  |  | // to the wildcards pttern matching algorithm | 
| 13 |  |  |  | 
| 14 | chrisfen | 299 | //#ifndef __cplusplus | 
| 15 |  |  | //#error This is a C++ include file and cannot be used from plain C | 
| 16 |  |  | //#endif | 
| 17 | tim | 284 |  | 
| 18 |  |  | // Implementation of the UN*X wildcards | 
| 19 |  |  | // Supported wild-characters: '*', '?'; sets: [a-z], '!' negation | 
| 20 |  |  | // Examples: | 
| 21 |  |  | //       '[a-g]l*i?n' matches 'florian' | 
| 22 |  |  | //       '[!abc]*e' matches 'smile' | 
| 23 |  |  | //       '[-z] matches 'a' | 
| 24 |  |  |  | 
| 25 |  |  | class Wildcard | 
| 26 |  |  | { | 
| 27 | gezelter | 507 | public: | 
| 28 | tim | 284 | // This function implements the UN*X wildcards and returns: | 
| 29 |  |  | // 0 - if *wildcard does not match *test | 
| 30 |  |  | // 1 - if *wildcard matches *test | 
| 31 |  |  | static int wildcardfit (const char *wildcard, const char *test); | 
| 32 |  |  |  | 
| 33 | gezelter | 507 | private: | 
| 34 | tim | 284 | // Scans a set of characters and returns 0 if the set mismatches at this | 
| 35 |  |  | // position in the teststring and 1 if it is matching | 
| 36 |  |  | // wildcard is set to the closing ] and test is unmodified if mismatched | 
| 37 |  |  | // and otherwise the char pointer is pointing to the next character | 
| 38 |  |  | static int set (const char **wildcard, const char **test); | 
| 39 |  |  |  | 
| 40 |  |  | // Scans an asterisk | 
| 41 |  |  | static int asterisk (const char **wildcard, const char **test); | 
| 42 |  |  | }; | 
| 43 |  |  |  | 
| 44 |  |  | #endif |