Function implementations in alphabetical order
This commit is contained in:
parent
d83e30da19
commit
556d7b6ff8
152
srohtml.c
152
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,17 +1114,6 @@ 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[])
|
||||
{
|
||||
|
@ -1443,6 +1491,23 @@ page_head(void)
|
|||
array_strcat(&head, "\t</head>\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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue