diff options
author | Patrick McDermott <pj@pehjota.net> | 2017-10-26 17:32:02 (EDT) |
---|---|---|
committer | Patrick McDermott <pj@pehjota.net> | 2017-10-26 17:32:02 (EDT) |
commit | 5e4efa97e3aebb80e3fc2e560e19e5e9577c05fa (patch) | |
tree | 7b0cf3d157bf6ec4660dfa22fd84c95984c86da0 | |
parent | 8a630885f77b1de30f9e853001f1c02a563d7c96 (diff) | |
download | marquee-5e4efa97e3aebb80e3fc2e560e19e5e9577c05fa.zip marquee-5e4efa97e3aebb80e3fc2e560e19e5e9577c05fa.tar.gz marquee-5e4efa97e3aebb80e3fc2e560e19e5e9577c05fa.tar.bz2 |
mq_html_fieldset(): New function
-rw-r--r-- | src/html.c | 40 | ||||
-rw-r--r-- | src/html.h | 3 |
2 files changed, 43 insertions, 0 deletions
@@ -536,6 +536,46 @@ mq_html_form(const gchar *submit_label, const gchar *reset_label, ...) } gchar * +mq_html_fieldset(gchar *first_child, ...) +{ + gsize len; + va_list ap; + gchar *child; + gchar *fieldset; + gchar *ptr; + + /* Calculate length. */ + len = strlen("<fieldset>\n"); + len += strlen("<table>\n"); + len += strlen(first_child); + va_start(ap, first_child); + while ((child = va_arg(ap, gchar *))) { + len += strlen(child); + } + va_end(ap); + len += strlen("</table>\n"); + len += strlen("</fieldset>\n"); + ++len; /* NUL byte */ + + /* Build string. */ + fieldset = g_new(gchar, len); + ptr = g_stpcpy(fieldset, "<fieldset>\n"); + ptr = g_stpcpy(ptr, "<table>\n"); + ptr = g_stpcpy(ptr, first_child); + g_free(first_child); + va_start(ap, first_child); + while ((child = va_arg(ap, gchar *))) { + ptr = g_stpcpy(ptr, child); + g_free(child); + } + va_end(ap); + ptr = g_stpcpy(ptr, "</table>\n"); + ptr = g_stpcpy(ptr, "</fieldset>\n"); /* g_stpcpy() adds the NUL. */ + + return fieldset; +} + +gchar * mq_html_input_text(const gchar *name, const gchar *label, const gchar *value) { return g_strdup_printf("<label for=\"%s\">\n<span>%s</span>\n" @@ -58,6 +58,9 @@ mq_html_form(const gchar *submit_label, const gchar *reset_label, ...) G_GNUC_NULL_TERMINATED; gchar * +mq_html_fieldset(gchar *first_child, ...); + +gchar * mq_html_input_text(const gchar *name, const gchar *label, const gchar *value); gchar * |