about summary refs log tree commit diff
path: root/xe.c
diff options
context:
space:
mode:
authorLeah Neukirchen <leah@vuxu.org>2017-10-09 16:11:22 +0200
committerLeah Neukirchen <leah@vuxu.org>2017-10-09 16:11:22 +0200
commitfdf235ec2de459bf6a48e3bd06509bf6ddb1bd51 (patch)
tree61aa6b0a212fae5696b9bd3132c9eb71348543ad /xe.c
parent997357efb2cb96afb688803357e68d890163c732 (diff)
downloadxe-fdf235ec2de459bf6a48e3bd06509bf6ddb1bd51.tar.gz
xe-fdf235ec2de459bf6a48e3bd06509bf6ddb1bd51.tar.xz
xe-fdf235ec2de459bf6a48e3bd06509bf6ddb1bd51.zip
small cleanup
Diffstat (limited to 'xe.c')
-rw-r--r--xe.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/xe.c b/xe.c
index 040925c..109e161 100644
--- a/xe.c
+++ b/xe.c
@@ -393,6 +393,14 @@ perc(char *pat, char *str, int lvl)
 		if (!*str || *str == '/')
 			return 0;
 		return perc(pat+1, str+1, lvl);
+	case '/':
+		if (*str != '/')
+			return 0;
+		while (*pat == '/')
+			pat++;
+		while (*str == '/')
+			str++;
+		return perc(pat, str, lvl);
 	case '*':
 		pat++;
 		if (*pat == '*') {  // any substring
@@ -446,6 +454,7 @@ perc(char *pat, char *str, int lvl)
 		while (*pat++ != '}') {
 			if (!e)
 				e = perc(pat, str, lvl+1);
+			// skip to next , or }
 			for (l = 0;
 			     *pat && !(l == 0 && (*pat == ',' || *pat == '}'));
 			     pat++)
@@ -458,14 +467,6 @@ perc(char *pat, char *str, int lvl)
 						pat++;
 		}
 		return e ? perc(pat, e, lvl) : 0;
-	case '/':
-		if (*str != '/')
-			return 0;
-		while (*pat == '/')
-			pat++;
-		while (*str == '/')
-			str++;
-		return perc(pat, str, lvl);
 	case ',':
 	case '}':
 		if (lvl > 0)