Added SILC_STR_STRING and SILC_STR_STRING_APPEND and support for
[crypto.git] / lib / silcutil / tests / test_silcbuffmt.c
index dba97fd02451170693536d49ada3dbe72424e154..16c4483cf9cc554bdc8cfd7b6a30d9a7aafd9e23 100644 (file)
@@ -14,8 +14,8 @@ int print(SilcStack stack, SilcBuffer buf, void *value, void *context)
 int main(int argc, char **argv)
 {
   SilcBool success = FALSE;
-  char string[1024];
-  SilcBufferStruct buf;
+  char string[1024], *astring;
+  SilcBufferStruct buf, buf2;
 
   if (argc > 1 && !strcmp(argv[1], "-d")) {
     silc_log_debug(TRUE);
@@ -38,6 +38,23 @@ int main(int argc, char **argv)
   if (strcmp("This is barbar", silc_buffer_data(&buf)))
     goto err;
 
+  silc_snprintf(string, sizeof(string), "This is foobar string!!");
+  astring = silc_memdup(string, strlen(string));
+  silc_buffer_set(&buf, astring, strlen(astring) + 1);
+  SILC_LOG_DEBUG(("sed 's/foo/barbar/g'"));
+  SILC_LOG_DEBUG(("string: %s", astring));
+  if (silc_buffer_format(&buf,
+                        SILC_STR_REGEX("foo", SILC_STR_REGEX_ALL |
+                                              SILC_STR_REGEX_INCLUSIVE),
+                          SILC_STR_STRING_APPEND("barbar"),
+                        SILC_STR_END,
+                        SILC_STR_END) < 0)
+    goto err;
+  silc_buffer_printf(&buf, TRUE);
+  if (strcmp("This is barbarbar string!!", silc_buffer_data(&buf)))
+    goto err;
+  silc_buffer_purge(&buf);
+
   silc_snprintf(string, sizeof(string), "This is foobar\n");
   silc_buffer_set(&buf, string, strlen(string));
   SILC_LOG_DEBUG(("sed 's/\\n/\\0/'"));