فهرست منبع

wc2regex: Backport https://trac.osgeo.org/grass/changeset/62399 and https://trac.osgeo.org/grass/changeset/62400

git-svn-id: https://svn.osgeo.org/grass/grass/branches/releasebranch_7_0@62402 15284696-431f-4ddb-bdfa-cd5b030d7da7
Huidae Cho 10 سال پیش
والد
کامیت
3306000fcd
1فایلهای تغییر یافته به همراه9 افزوده شده و 5 حذف شده
  1. 9 5
      lib/gis/ls_filter.c

+ 9 - 5
lib/gis/ls_filter.c

@@ -84,6 +84,11 @@ static int wc2regex(struct buffer *buf, const char *pat)
     for (p = pat; p && *p; p++) {
 	switch (*p) {
 	case '\\':
+	    add(buf, '\\');
+	    if (!*++p)
+		return 0;
+	    add(buf, *p);
+	    break;
 	case '.':
 	case '|':
 	case '(':
@@ -100,15 +105,13 @@ static int wc2regex(struct buffer *buf, const char *pat)
 	    add(buf, '.');
 	    break;
 	case '{':
-	    if (in_brace)
-		return 0;
-	    in_brace = 1;
+	    in_brace++;
 	    add(buf, '(');
 	    break;
 	case '}':
 	    if (!in_brace)
 		return 0;
-	    in_brace = 0;
+	    in_brace--;
 	    add(buf, ')');
 	    break;
 	case ',':
@@ -118,7 +121,8 @@ static int wc2regex(struct buffer *buf, const char *pat)
 		add(buf, ',');
 	    break;
 	case '[':
-	    p = do_set(buf, p);
+	    if (!(p = do_set(buf, p)))
+		return 0;
 	    break;
 	default:
 	    add(buf, *p);