* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
- * are also available at http://curl.haxx.se/docs/copyright.html.
+ * are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
*
***************************************************************************/
+#include "curl_setup.h"
+
+#include <curl/curl.h>
+
#include "curl_fnmatch.h"
-#include "setup.h"
+#include "curl_memory.h"
+
+/* The last #include file should be: */
+#include "memdebug.h"
#define CURLFNM_CHARSET_LEN (sizeof(char) * 256)
#define CURLFNM_CHSET_SIZE (CURLFNM_CHARSET_LEN + 15)
char keyword[KEYLEN] = { 0 };
int found = FALSE;
int i;
- register unsigned char *p = *pattern;
+ unsigned char *p = *pattern;
for(i = 0; !found; i++) {
char c = *p++;
if(i >= KEYLEN)
unsigned char rangestart = 0;
unsigned char lastchar = 0;
bool something_found = FALSE;
- register unsigned char c;
+ unsigned char c;
for(;;) {
c = **p;
switch(state) {
if(!something_found) {
if(charset[CURLFNM_NEGATE]) {
charset[c] = 1;
- something_found = 1;
+ something_found = TRUE;
}
else
charset[CURLFNM_NEGATE] = 1; /* negate charset */
}
else if(c == '\\') {
c = *(++(*p));
- if(isprint(c)) {
+ if(ISPRINT(c)) {
charset[c] = 1;
(*p)++;
}
state = CURLFNM_SCHS_DEFAULT;
}
else
- return SETCHARSET_FAIL;
+ /* used 'goto fail' instead of 'return SETCHARSET_FAIL' to avoid a
+ * nonsense warning 'statement not reached' at end of the fnc when
+ * compiling on Solaris */
+ goto fail;
break;
case CURLFNM_SCHS_RIGHTBRLEFTBR:
if(c == ']') {
break;
}
}
+fail:
return SETCHARSET_FAIL;
}
static int loop(const unsigned char *pattern, const unsigned char *string)
{
loop_state state = CURLFNM_LOOP_DEFAULT;
- register unsigned char *p = (unsigned char *)pattern;
- register unsigned char *s = (unsigned char *)string;
+ unsigned char *p = (unsigned char *)pattern;
+ unsigned char *s = (unsigned char *)string;
unsigned char charset[CURLFNM_CHSET_SIZE] = { 0 };
int rc = 0;
- for (;;) {
+ for(;;) {
switch(state) {
case CURLFNM_LOOP_DEFAULT:
if(*p == '*') {
}
}
+/*
+ * @unittest: 1307
+ */
int Curl_fnmatch(void *ptr, const char *pattern, const char *string)
{
(void)ptr; /* the argument is specified by the curl_fnmatch_callback