summaryrefslogtreecommitdiffstats
path: root/third_party/libxml/testRegexp.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libxml/testRegexp.c')
-rw-r--r--third_party/libxml/testRegexp.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/third_party/libxml/testRegexp.c b/third_party/libxml/testRegexp.c
index d5228b3..626536e 100644
--- a/third_party/libxml/testRegexp.c
+++ b/third_party/libxml/testRegexp.c
@@ -290,6 +290,9 @@ int main(int argc, char **argv) {
if (argv[i][0] != '-')
continue;
+ if (!strcmp(argv[i], "--"))
+ break;
+
if ((!strcmp(argv[i], "-debug")) || (!strcmp(argv[i], "--debug"))) {
debug++;
} else if ((!strcmp(argv[i], "-repeat")) ||
@@ -322,10 +325,15 @@ int main(int argc, char **argv) {
#endif
testRegexpFile(filename);
} else {
+ int data = 0;
#ifdef LIBXML_EXPR_ENABLED
+
if (use_exp) {
for (i = 1; i < argc ; i++) {
- if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
+ if (strcmp(argv[i], "--") == 0)
+ data = 1;
+ else if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0) ||
+ (data == 1)) {
if (pattern == NULL) {
pattern = argv[i];
printf("Testing expr %s:\n", pattern);
@@ -342,13 +350,18 @@ int main(int argc, char **argv) {
}
}
}
- if (expr != NULL)
+ if (expr != NULL) {
xmlExpFree(ctxt, expr);
+ expr = NULL;
+ }
} else
#endif
{
for (i = 1; i < argc ; i++) {
- if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0)) {
+ if (strcmp(argv[i], "--") == 0)
+ data = 1;
+ else if ((argv[i][0] != '-') || (strcmp(argv[i], "-") == 0) ||
+ (data == 1)) {
if (pattern == NULL) {
pattern = argv[i];
printf("Testing %s:\n", pattern);