static gboolean tf_num_parse(gint argc, GString *argv[], const gchar *func_name, gint64 *n, gint64 *m) { if (argc != 2) { msg_debug("Template function requires two arguments.", evt_tag_str("function", func_name), NULL); return FALSE; } if (!parse_number_with_suffix(argv[0]->str, n)) { msg_debug("Parsing failed, template function's first argument is not a number", evt_tag_str("function", func_name), evt_tag_str("arg1", argv[0]->str), NULL); return FALSE; } if (!parse_number_with_suffix(argv[1]->str, m)) { msg_debug("Parsing failed, template function's second argument is not a number", evt_tag_str("function", func_name), evt_tag_str("arg2", argv[1]->str), NULL); return FALSE; } return TRUE; }
static void assert_parse_with_suffix_fails(const gchar *str) { gint64 n; gboolean res; res = parse_number_with_suffix(str, &n); cr_assert_eq(res,FALSE, "Parsing (w/ suffix) %s succeeded, while expecting failure", str); }
static void assert_parse_with_suffix(const gchar *str, gint64 expected) { gint64 n; gboolean res; res = parse_number_with_suffix(str, &n); cr_assert_eq(res,TRUE,"Parsing (w/ suffix) %s failed", str); cr_assert_eq(n,expected,"Parsing (w/ suffix) %s failed", str); }
static void tf_string_padding(LogMessage *msg, gint argc, GString *argv[], GString *result) { GString *text = argv[0]; GString *padding; gint64 width, i; if (argc <= 1) { msg_debug("Not enough arguments for padding template function!", NULL); return; } if (!parse_number_with_suffix(argv[1]->str, &width)) { msg_debug("Padding template function requires a number as second argument!", NULL); return; } if (argc <= 2) padding = g_string_new(" "); else padding = argv[2]; if (text->len < width) { for (i = 0; i < width - text->len; i++) { g_string_append_c(result, *(padding->str + (i % padding->len))); } } g_string_append_len(result, text->str, text->len); if (argc <= 2) { g_string_free(padding, TRUE); } }