[augeas-devel] augeas: master - * src/lens.c: use regexp_escape to print regexps in error messages

David Lutterkort lutter at fedoraproject.org
Fri Oct 23 17:15:24 UTC 2009


Gitweb:        http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=fad9da3030dd0726606ff1ef00244cda9d29672e
Commit:        fad9da3030dd0726606ff1ef00244cda9d29672e
Parent:        14be233ae753ba1c1c2ec64b84ddfb11930115c5
Author:        David Lutterkort <lutter at redhat.com>
AuthorDate:    Fri Oct 23 17:41:40 2009 +0200
Committer:     David Lutterkort <lutter at redhat.com>
CommitterDate: Fri Oct 23 19:11:53 2009 +0200

* src/lens.c: use regexp_escape to print regexps in error messages

---
 src/lens.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/lens.c b/src/lens.c
index b1045e6..2bbe88d 100644
--- a/src/lens.c
+++ b/src/lens.c
@@ -360,7 +360,7 @@ struct value *lns_make_prim(enum lens_tag tag, struct info *info,
         cnt = regexp_match(regexp, dflt, strlen(dflt), 0, NULL);
         if (cnt != strlen(dflt)) {
             char *s = escape(dflt, -1);
-            char *r = escape(regexp->pattern->str, -1);
+            char *r = regexp_escape(regexp);
             exn = make_exn_value(info,
                    "del: the default value '%s' does not match /%s/",
                    s, r);
@@ -498,9 +498,11 @@ static struct value *ambig_check(struct info *info,
         char *e_upv = escape(upv, -1);
         char *e_pv = escape(pv, -1);
         char *e_v = escape(v, -1);
+        char *s1 = regexp_escape(r1);
+        char *s2 = regexp_escape(r2);
         exn = make_exn_value(ref(info), "%s", msg);
-        exn_printf_line(exn, "  First regexp: /%s/", escape(r1->pattern->str, -1));
-        exn_printf_line(exn, "  Second regexp: /%s/", escape(r2->pattern->str, -1));
+        exn_printf_line(exn, "  First regexp: /%s/", s1);
+        exn_printf_line(exn, "  Second regexp: /%s/", s2);
         exn_printf_line(exn, "  '%s' can be split into", e_upv);
         exn_printf_line(exn, "  '%s|=|%s'\n", e_u, e_pv);
         exn_printf_line(exn, " and");
@@ -510,6 +512,8 @@ static struct value *ambig_check(struct info *info,
         free(e_upv);
         free(e_pv);
         free(e_v);
+        free(s1);
+        free(s2);
     }
     free(upv);
     return exn;




More information about the augeas-devel mailing list