diff --git a/srohtml.c b/srohtml.c
index 797fd34..8ea9ff6 100644
--- a/srohtml.c
+++ b/srohtml.c
@@ -177,6 +177,17 @@ array_at(array *a, const size_t i)
return (char *) a->data + i * a->unit_size;
}
+void
+array_init(array *a, const size_t size, size_t num)
+{
+ num = num == 0 ? 1 : num;
+
+ a->data = safe_malloc(size * num);
+ a->length = 0;
+ a->size = num;
+ a->unit_size = size;
+}
+
void *
array_pop(array *a)
{
@@ -199,6 +210,54 @@ array_push(array *a)
return (char *) a->data + a->length++ * a->unit_size;
}
+char *
+array_strcat(array *dst, const char *src)
+{
+ char *c;
+ size_t i, len;
+
+ len = strlen(src);
+
+ for (i = 0; i < len; i++) {
+ c = array_push(dst);
+ *c = src[i];
+ }
+ c = array_push(dst);
+ *c = '\0';
+ dst->length--;
+
+ return dst->data;
+}
+
+char *
+array_strcat_html(array *dst, const char *src, const html_val_type t)
+{
+ char *c;
+ size_t i, len;
+
+ len = strlen(src);
+
+ for (i = 0; i < len; i++) {
+ if (t == tag_attribute && src[i] == '"')
+ array_strcat(dst, """);
+ else if (src[i] == '&')
+ array_strcat(dst, "&");
+ else if (src[i] == '<')
+ array_strcat(dst, "<");
+ else if (src[i] == '>')
+ array_strcat(dst, ">");
+ else {
+ c = array_push(dst);
+ *c = src[i];
+ }
+ }
+ c = array_push(dst);
+ *c = '\0';
+ dst->length--;
+
+ return dst->data;
+}
+
void
cmd(char *line)
{
@@ -1055,19 +1114,8 @@ init_arrays(void)
array_init(&sitography, sizeof(note), NOTES_START);
}
-void
-array_init(array *a, const size_t size, size_t num)
-{
- num = num == 0 ? 1 : num;
-
- a->data = safe_malloc(size * num);
- a->length = 0;
- a->size = num;
- a->unit_size = size;
-}
-
int
-main (int argc, char *argv[])
+main(int argc, char *argv[])
{
FILE *in, *out;
@@ -1443,6 +1491,23 @@ page_head(void)
array_strcat(&head, "\t\n");
}
+void
+pop_closure(array *a)
+{
+ closure *tag;
+
+ if (a->length <= 0)
+ return;
+
+ tag = array_at(a, a->length - 1);
+ if (tag == NULL) {
+ fprintf(stderr, BIN ": Can't find tag closure at position %i, in array type.\n", a->length - 1);
+ exit(1);
+ }
+ free(tag->name);
+ array_pop(a);
+}
+
void
print_help(void)
{
@@ -1516,23 +1581,6 @@ read_and_process(FILE *in)
free(line);
}
-void
-pop_closure(array *a)
-{
- closure *tag;
-
- if (a->length <= 0)
- return;
-
- tag = array_at(a, a->length - 1);
- if (tag == NULL) {
- fprintf(stderr, BIN ": Can't find tag closure at position %i, in array type.\n", a->length - 1);
- exit(1);
- }
- free(tag->name);
- array_pop(a);
-}
-
void *
safe_malloc(const size_t size)
{
@@ -1615,51 +1663,3 @@ stread_param(const char *src, char **str)
return len + p;
}
-
-char *
-array_strcat(array *dst, const char *src)
-{
- char *c;
- size_t i, len;
-
- len = strlen(src);
-
- for (i = 0; i < len; i++) {
- c = array_push(dst);
- *c = src[i];
- }
- c = array_push(dst);
- *c = '\0';
- dst->length--;
-
- return dst->data;
-}
-
-char *
-array_strcat_html(array *dst, const char *src, const html_val_type t)
-{
- char *c;
- size_t i, len;
-
- len = strlen(src);
-
- for (i = 0; i < len; i++) {
- if (t == tag_attribute && src[i] == '"')
- array_strcat(dst, """);
- else if (src[i] == '&')
- array_strcat(dst, "&");
- else if (src[i] == '<')
- array_strcat(dst, "<");
- else if (src[i] == '>')
- array_strcat(dst, ">");
- else {
- c = array_push(dst);
- *c = src[i];
- }
- }
- c = array_push(dst);
- *c = '\0';
- dst->length--;
-
- return dst->data;
-}