[augeas-devel] [PATCH 2 of 5] Escape label strings when creating the key regexp for them

David Lutterkort dlutter at redhat.com
Fri May 23 17:23:32 UTC 2008


1 file changed, 12 insertions(+), 1 deletion(-)
src/lens.c |   13 ++++++++++++-


# HG changeset patch
# User David Lutterkort <dlutter at redhat.com>
# Date 1211562967 25200
# Node ID 4a53de92ffb310d3b6d95d57d8e1b50060847b9b
# Parent  ab1c134964d93741daf8b60cb03b0334431c2376
Escape label strings when creating the key regexp for them

diff -r ab1c134964d9 -r 4a53de92ffb3 src/lens.c
--- a/src/lens.c	Fri May 23 10:16:05 2008 -0700
+++ b/src/lens.c	Fri May 23 10:16:07 2008 -0700
@@ -21,6 +21,7 @@
  */
 
 #include "lens.h"
+#include "memory.h"
 
 static struct regexp *regexp_digits = NULL;
 
@@ -477,7 +478,17 @@ static struct regexp *lns_key_regexp(str
     case L_KEY:
         return make_key_regexp(l->info, l->regexp->pattern->str);
     case L_LABEL:
-        return make_key_regexp(l->info, l->string->str);
+        {
+            struct regexp *r = make_regexp_literal(l->info, l->string->str);
+            if (r == NULL)
+                return NULL;
+            if (REALLOC_N(r->pattern->str, strlen(r->pattern->str) + 2) == -1) {
+                unref(r, regexp);
+                return NULL;
+            }
+            strcat((char *) r->pattern->str, "/");
+            return r;
+        }
     case L_CONCAT:
         {
             struct regexp *k = NULL;




More information about the augeas-devel mailing list