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;
|
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 *
|
void *
|
||||||
array_pop(array *a)
|
array_pop(array *a)
|
||||||
{
|
{
|
||||||
|
@ -199,6 +210,54 @@ array_push(array *a)
|
||||||
return (char *) a->data + a->length++ * a->unit_size;
|
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
|
void
|
||||||
cmd(char *line)
|
cmd(char *line)
|
||||||
{
|
{
|
||||||
|
@ -1055,17 +1114,6 @@ init_arrays(void)
|
||||||
array_init(&sitography, sizeof(note), NOTES_START);
|
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
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
@ -1443,6 +1491,23 @@ page_head(void)
|
||||||
array_strcat(&head, "\t</head>\n");
|
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
|
void
|
||||||
print_help(void)
|
print_help(void)
|
||||||
{
|
{
|
||||||
|
@ -1516,23 +1581,6 @@ read_and_process(FILE *in)
|
||||||
free(line);
|
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 *
|
void *
|
||||||
safe_malloc(const size_t size)
|
safe_malloc(const size_t size)
|
||||||
{
|
{
|
||||||
|
@ -1615,51 +1663,3 @@ stread_param(const char *src, char **str)
|
||||||
|
|
||||||
return len + p;
|
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