move a function into rx.[hc]
[apps/madmutt.git] / lib-lib / rx.c
index 6413f69..975ed52 100644 (file)
@@ -81,3 +81,27 @@ int rx_lookup (list2_t *l, const char *pat)
 
     return -1;
 }
+
+int rx_sanitize_string(char *dst, ssize_t n, const char *src)
+{
+    while (*src) {
+        if (n <= 1)
+            break;
+
+        /* these characters must be escaped in regular expressions */
+        if (strchr("^.[$()|*+?{\\", *src)) {
+            if (n <= 2)
+                break;
+
+            *dst++ = '\\';
+            n--;
+        }
+
+        *dst++ = *src++;
+        n--;
+    }
+
+    *dst = '\0';
+
+    return *src ? -1 : 0;
+}