чување 7e1395d676b3571d20b80e04a943274c80ba252d
родитељ 09cb6170cb3cd833940dd479429918006af56b77
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Sun, 22 Aug 2021 12:27:26 +0200
Added const qualifiers, rearranged function parameters to be more consistent
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
| M | slweb.c | | | 379 | +++++++++++++++++++++++++++++++++++++++---------------------------------------- |
измењених датотека: 1, додавања: 189(+), брисања: 190(-)
diff --git a/slweb.c b/slweb.c
@@ -5,7 +5,7 @@
static size_t lineno = 0;
static size_t colno = 1;
static BOOL output_firstcol = TRUE;
-static char* input_filename = NULL;
+static const char* input_filename = NULL;
static char* input_dirname = NULL;
static char* basedir = NULL;
static size_t basedir_size = 0;
@@ -103,7 +103,7 @@ usage()
}
int
-error(int code, u8* fmt, ...)
+error(const int code, const u8* fmt, ...)
{
char buf[BUFSIZE];
va_list args;
@@ -117,7 +117,7 @@ error(int code, u8* fmt, ...)
}
int
-warning(int code, u8* fmt, ...)
+warning(const int code, const u8* fmt, ...)
{
char buf[BUFSIZE];
va_list args;
@@ -129,7 +129,7 @@ warning(int code, u8* fmt, ...)
}
int
-free_keyvalue(KeyValue** list, size_t list_count)
+free_keyvalue(KeyValue** list, const size_t list_count)
{
if (!list || !*list)
return 1;
@@ -171,8 +171,8 @@ slweb_cleanup()
return 0;
}
-int slweb_parse(u8* buffer, FILE* output, BOOL body_only,
- BOOL read_yaml_macros_and_links);
+int slweb_parse(FILE* output, const u8* buffer, const BOOL body_only,
+ const BOOL read_yaml_macros_and_links);
BOOL
startswith(const char* s, const char* what)
@@ -190,7 +190,7 @@ startswith(const char* s, const char* what)
}
u8*
-get_value(KeyValue* list, size_t list_count, u8* key, BOOL* seen)
+get_value(KeyValue* list, const size_t list_count, const u8* key, BOOL* seen)
{
KeyValue* plist = list;
while (plist < list + list_count)
@@ -210,7 +210,7 @@ get_value(KeyValue* list, size_t list_count, u8* key, BOOL* seen)
}
int
-set_basedir(char* arg, char** basedir, size_t* basedir_size)
+set_basedir(char** basedir, size_t* basedir_size, const char* arg)
{
size_t basedir_len = 0;
size_t arg_len = strlen(arg);
@@ -233,8 +233,8 @@ set_basedir(char* arg, char** basedir, size_t* basedir_size)
}
int
-set_global_link_prefix(char* arg, char** global_link_prefix,
- size_t* global_link_prefix_size)
+set_global_link_prefix(char** global_link_prefix,
+ size_t* global_link_prefix_size, const char* arg)
{
size_t arg_len = strlen(arg);
@@ -276,7 +276,7 @@ strip_ext(const char* fn)
}
int
-print_output(FILE* output, char* fmt, ...)
+print_output(FILE* output, const char* fmt, ...)
{
char buf[BUFSIZE];
va_list args;
@@ -320,8 +320,8 @@ print_output(FILE* output, char* fmt, ...)
#define PIPE_WRITE_INDEX 1
int
-print_command(const char* command, const u8* pass_arguments[],
- const u8* pipe_arguments[], FILE* output, BOOL strip_newlines)
+print_command(FILE* output, const char* command, const u8* pass_arguments[],
+ const u8* pipe_arguments[], const BOOL strip_newlines)
{
if (!command || !pass_arguments)
exit(error(EINVAL, (u8*)"print_command: Invalid argument"));
@@ -403,8 +403,8 @@ print_command(const char* command, const u8* pass_arguments[],
}
int
-read_file_into_buffer(u8** buffer, size_t* buffer_size, char* input_filename,
- char** input_dirname, FILE** input)
+read_file_into_buffer(FILE** input, u8** buffer, size_t* buffer_size,
+ const char* input_filename, char** input_dirname)
{
struct stat fs;
char* slash = NULL;
@@ -427,8 +427,8 @@ read_file_into_buffer(u8** buffer, size_t* buffer_size, char* input_filename,
if (slash)
{
CALLOC(*input_dirname, char, strlen(input_filename) + 1);
- char* pinput_dirname = *input_dirname;
- char* pinput_filename = input_filename;
+ char* pinput_dirname = *input_dirname;
+ const char* pinput_filename = input_filename;
while (pinput_filename && *pinput_filename
&& pinput_filename != slash)
*pinput_dirname++ = *pinput_filename++;
@@ -474,7 +474,8 @@ print_meta_var(FILE* output, u8** csv_header, u8** csv_register)
}
int
-process_heading_start(FILE* output, UBYTE heading_level, ULONG heading_count)
+process_heading_start(FILE* output, const UBYTE heading_level,
+ const ULONG heading_count)
{
print_output(output, "<h%d id=\"heading-%lu\">", heading_level,
heading_count);
@@ -482,7 +483,7 @@ process_heading_start(FILE* output, UBYTE heading_level, ULONG heading_count)
}
int
-process_heading(u8* token, FILE* output, UBYTE heading_level)
+process_heading(FILE* output, const u8* token, const UBYTE heading_level)
{
if (!token || strlen((char*)token) < 1)
warning(1, (u8*)"Empty heading");
@@ -513,8 +514,8 @@ process_git_log(FILE* output)
u8* pipe_args[] = {(u8*)basename, NULL};
print_output(output, "<div id=\"git-log\">\nPrevious commit:\n");
- result = print_command(CMD_GIT_LOG, (const u8**)CMD_GIT_LOG_ARGS,
- (const u8**)pipe_args, output, FALSE);
+ result = print_command(output, CMD_GIT_LOG,
+ (const u8**)CMD_GIT_LOG_ARGS, (const u8**)pipe_args, FALSE);
print_output(output, "</div><!--git-log-->\n");
output_firstcol = TRUE;
@@ -813,8 +814,8 @@ read_csv(FILE* output, const char* filename, csv_callback_t callback)
}
int
-process_csv(u8* arg_token, FILE* output, BOOL read_yaml_macros_and_links,
- BOOL end_tag)
+process_csv(FILE* output, const u8* arg_token,
+ const BOOL read_yaml_macros_and_links, const BOOL end_tag)
{
if (end_tag)
{
@@ -875,7 +876,8 @@ process_csv(u8* arg_token, FILE* output, BOOL read_yaml_macros_and_links,
}
int
-process_include(u8* token, FILE* output, BOOL read_yaml_macros_and_links)
+process_include(FILE* output, const u8* token,
+ const BOOL read_yaml_macros_and_links)
{
if (read_yaml_macros_and_links)
return 0;
@@ -900,6 +902,7 @@ process_include(u8* token, FILE* output, BOOL read_yaml_macros_and_links)
wait(&pstatus);
else if (pid == 0)
{
+ char* filename = NULL;
prctl(PR_SET_PDEATHSIG, SIGTERM);
CALLOC(include_filename, char, BUFSIZE);
@@ -912,10 +915,10 @@ process_include(u8* token, FILE* output, BOOL read_yaml_macros_and_links)
ptoken++;
if (!strcmp(basedir, "."))
- set_basedir(input_dirname, &basedir, &basedir_size);
+ set_basedir(&basedir, &basedir_size, input_dirname);
- CALLOC(input_filename, char, BUFSIZE);
- snprintf(input_filename, BUFSIZE, "%s/%s.slw", basedir,
+ CALLOC(filename, char, BUFSIZE);
+ snprintf(filename, BUFSIZE, "%s/%s.slw", basedir,
include_filename);
free(include_filename);
@@ -926,9 +929,10 @@ process_include(u8* token, FILE* output, BOOL read_yaml_macros_and_links)
int result = 0;
ULLONG saved_state = ST_NONE;
- read_file_into_buffer(&buffer, &buffer_size, input_filename,
- &input_dirname, &input);
+ read_file_into_buffer(&input, &buffer, &buffer_size, filename,
+ &input_dirname);
+ free(filename);
free_keyvalue(&links, links_count);
free(links);
links = NULL;
@@ -952,7 +956,7 @@ process_include(u8* token, FILE* output, BOOL read_yaml_macros_and_links)
state = ST_NONE;
/* First pass: read YAML, macros and links */
- result = slweb_parse(buffer, output, TRUE, TRUE);
+ result = slweb_parse(output, buffer, TRUE, TRUE);
if (result)
{
@@ -965,7 +969,7 @@ process_include(u8* token, FILE* output, BOOL read_yaml_macros_and_links)
current_inline_footnote = 0;
/* Second pass: parse and output */
- result = slweb_parse(buffer, output, TRUE, FALSE);
+ result = slweb_parse(output, buffer, TRUE, FALSE);
state = saved_state;
@@ -1086,11 +1090,11 @@ reverse_alphacompare(const struct dirent** a, const struct dirent** b)
}
int process_timestamp(FILE* output, const u8* link_prefix, const char* link,
- u8* permalink_macro, u8* date);
+ const u8* permalink_macro, const u8* date);
int
-process_incdir_subdir(const char* subdirname, const u8* link_prefix,
- FILE* output, BOOL details_open, u8* macro_body)
+process_incdir_subdir(FILE* output, const char* subdirname,
+ const u8* link_prefix, const BOOL details_open, const u8* macro_body)
{
print_output(output, "<li>\n<details%s>\n<summary>",
details_open ? " open" : "");
@@ -1136,9 +1140,11 @@ process_incdir_subdir(const char* subdirname, const u8* link_prefix,
wait(&pstatus);
else if (pid == 0)
{
- set_basedir(abs_subdirname, &basedir, &basedir_size);
- snprintf(input_filename, BUFSIZE, "%s/%s",
- abs_subdirname, (*pnamelist)->d_name);
+ char* filename = NULL;
+ set_basedir(&basedir, &basedir_size, abs_subdirname);
+ CALLOC(filename, char, BUFSIZE);
+ snprintf(filename, BUFSIZE, "%s/%s", abs_subdirname,
+ (*pnamelist)->d_name);
FILE* input = NULL;
FILE* output = stdout;
@@ -1147,9 +1153,10 @@ process_incdir_subdir(const char* subdirname, const u8* link_prefix,
int result = 0;
ULLONG saved_state = ST_NONE;
- read_file_into_buffer(&buffer, &buffer_size,
- input_filename, &input_dirname, &input);
+ read_file_into_buffer(&input, &buffer, &buffer_size,
+ input_filename, &input_dirname);
+ free(filename);
free_keyvalue(&links, links_count);
free(links);
links = NULL;
@@ -1173,7 +1180,7 @@ process_incdir_subdir(const char* subdirname, const u8* link_prefix,
state = ST_NONE;
/* First pass: read YAML, macros and links */
- result = slweb_parse(buffer, output, TRUE, TRUE);
+ result = slweb_parse(output, buffer, TRUE, TRUE);
if (result)
{
@@ -1191,7 +1198,7 @@ process_incdir_subdir(const char* subdirname, const u8* link_prefix,
current_inline_footnote = 0;
/* Second pass: parse and output */
- result = slweb_parse(buffer, output, TRUE, FALSE);
+ result = slweb_parse(output, buffer, TRUE, FALSE);
state = saved_state;
@@ -1222,8 +1229,8 @@ process_incdir_subdir(const char* subdirname, const u8* link_prefix,
}
int
-process_incdir(u8* token, const u8* link_prefix, FILE* output,
- BOOL read_yaml_macros_and_links)
+process_incdir(FILE* output, const u8* token, const u8* link_prefix,
+ const BOOL read_yaml_macros_and_links)
{
if (read_yaml_macros_and_links)
return 0;
@@ -1302,7 +1309,7 @@ process_incdir(u8* token, const u8* link_prefix, FILE* output,
names_output = 0;
while (names_output < num && pnamelist && *pnamelist)
{
- process_incdir_subdir((*pnamelist)->d_name, link_prefix, output,
+ process_incdir_subdir(output, (*pnamelist)->d_name, link_prefix,
details_open, macro_body);
details_open = FALSE;
pnamelist++;
@@ -1323,7 +1330,7 @@ BOOL url_is_local(const char* url);
int
process_timestamp(FILE* output, const u8* link_prefix, const char* link,
- u8* permalink_macro, u8* date)
+ const u8* permalink_macro, const u8* date)
{
u8* day = NULL;
u8* month = NULL;
@@ -1384,8 +1391,8 @@ process_timestamp_cleanup:
}
int
-process_macro(u8* token, FILE* output, BOOL read_yaml_macros_and_links,
- BOOL end_tag)
+process_macro(FILE* output, const u8* token,
+ const BOOL read_yaml_macros_and_links, const BOOL end_tag)
{
if (!end_tag)
{
@@ -1454,8 +1461,9 @@ process_macro(u8* token, FILE* output, BOOL read_yaml_macros_and_links,
}
int
-process_tag(u8* token, const u8* link_prefix, FILE* output,
- BOOL read_yaml_macros_and_links, BOOL* skip_eol, BOOL end_tag)
+process_tag(FILE* output, const u8* token, const u8* link_prefix,
+ const BOOL read_yaml_macros_and_links, BOOL* skip_eol,
+ const BOOL end_tag)
{
if (!token || strlen((char*)token) < 1)
return warning(1, (u8*)"%s:%ld:%ld: Empty tag name",
@@ -1480,22 +1488,22 @@ process_tag(u8* token, const u8* link_prefix, FILE* output,
}
else if (startswith((char*)token, "csv")) /* {csv} */
{
- process_csv(token, output, read_yaml_macros_and_links, end_tag);
+ process_csv(output, token, read_yaml_macros_and_links, end_tag);
}
else if (startswith((char*)token, "include")) /* {include} */
{
- process_include(token, output, read_yaml_macros_and_links);
+ process_include(output, token, read_yaml_macros_and_links);
*skip_eol = TRUE;
}
else if (startswith((char*)token, "incdir")) /* {incdir} */
{
- process_incdir(token, link_prefix, output,
+ process_incdir(output, token, link_prefix,
read_yaml_macros_and_links);
*skip_eol = TRUE;
}
else if (*token == '=') /* {=macro} */
{
- process_macro(token, output, read_yaml_macros_and_links,
+ process_macro(output, token, read_yaml_macros_and_links,
end_tag);
*skip_eol = TRUE;
}
@@ -1558,42 +1566,42 @@ process_tag(u8* token, const u8* link_prefix, FILE* output,
}
int
-process_bold(FILE* output, BOOL end_tag)
+process_bold(FILE* output, const BOOL end_tag)
{
print_output(output, "<%sstrong>", end_tag ? "/" : "");
return 0;
}
int
-process_italic(FILE* output, BOOL end_tag)
+process_italic(FILE* output, const BOOL end_tag)
{
print_output(output, "<%sem>", end_tag ? "/" : "");
return 0;
}
int
-process_code(FILE* output, BOOL end_tag)
+process_code(FILE* output, const BOOL end_tag)
{
print_output(output, "<%scode>", end_tag ? "/" : "");
return 0;
}
int
-process_blockquote(FILE* output, BOOL end_tag)
+process_blockquote(FILE* output, const BOOL end_tag)
{
print_output(output, "<%sblockquote>", end_tag ? "/" : "");
return 0;
}
int
-process_kbd(FILE* output, BOOL end_tag)
+process_kbd(FILE* output, const BOOL end_tag)
{
print_output(output, "<%skbd>", end_tag ? "/" : "");
return 0;
}
int
-process_strike(FILE* output, BOOL end_tag)
+process_strike(FILE* output, const BOOL end_tag)
{
print_output(output, "<%ss>", end_tag ? "/" : "");
return 0;
@@ -1623,7 +1631,7 @@ process_table_header_end(FILE* output)
}
int
-process_table_body_start(FILE* output, BOOL start_row)
+process_table_body_start(FILE* output, const BOOL start_row)
{
print_output(output, "<tbody>\n");
if (start_row)
@@ -1668,7 +1676,7 @@ url_is_local(const char* url)
}
int
-get_realpath(char** realpath, char* relativeto, char* path)
+get_realpath(char** realpath, const char* relativeto, const char* path)
{
u8* command = NULL;
FILE* cmd_output = NULL;
@@ -1706,8 +1714,8 @@ get_realpath(char** realpath, char* relativeto, char* path)
}
int
-process_inline_link(u8* link_text, const u8* link_prefix, u8* link_macro_body,
- u8* link_url, FILE* output)
+process_inline_link(FILE* output, const u8* link_text, const u8* link_prefix,
+ const u8* link_macro_body, const u8* link_url)
{
print_output(output, "<a href=\"%s%s%s\">%s%s</a>",
global_link_prefix ? (const char*)global_link_prefix : "",
@@ -1720,17 +1728,16 @@ process_inline_link(u8* link_text, const u8* link_prefix, u8* link_macro_body,
}
int
-process_link(u8* link_text, const u8* link_prefix, u8* link_macro_body,
- u8* link_id, FILE* output)
+process_link(FILE* output, const u8* link_text, const u8* link_prefix,
+ const u8* link_macro_body, const u8* link_id)
{
u8* url = get_value(links, links_count, link_id, NULL);
- return process_inline_link(link_text, link_prefix, link_macro_body, url,
- output);
+ return process_inline_link(output, link_text, link_prefix,
+ link_macro_body, url);
}
int
-print_image_dimensions(FILE* output, const u8* image_file_prefix,
- const u8* path, int* width, int* height)
+print_image_dimensions(FILE* output, const u8* image_file_prefix, const u8* path)
{
struct stat sb;
FILE* cmd_output = NULL;
@@ -1744,13 +1751,12 @@ print_image_dimensions(FILE* output, const u8* image_file_prefix,
snprintf(image_path, BUFSIZE - 1, "%s%s%s",
image_file_prefix ? (char*)image_file_prefix : ".",
- *path == '/' ? "" : "/",
- path);
+ *path == '/' ? "" : "/", path);
char cwd[BUFSIZE];
- getcwd(cwd, BUFSIZE-1);
+ getcwd(cwd, BUFSIZE - 1);
fprintf(stderr, "image-file-prefix: %s\n",
- image_file_prefix ? (char*)image_file_prefix : "(NULL)");
+ image_file_prefix ? (char*)image_file_prefix : "(NULL)");
fprintf(stderr, "cwd: %s\n", cwd);
fprintf(stderr, "basedir: %s\n", basedir);
fprintf(stderr, "image_path: %s\n", image_path);
@@ -1778,9 +1784,9 @@ print_dimensions_cleanup:
}
int
-process_inline_image(u8* image_text, const u8* image_file_prefix,
- const u8* link_prefix, u8* image_url, FILE* output, BOOL add_link,
- BOOL add_figcaption)
+process_inline_image(FILE* output, const u8* image_text,
+ const u8* image_file_prefix, const u8* link_prefix, const u8* image_url,
+ const BOOL add_link, const BOOL add_figcaption)
{
int width = -1;
int height = -1;
@@ -1800,8 +1806,7 @@ process_inline_image(u8* image_text, const u8* image_file_prefix,
print_output(output, "<img src=\"%s\" alt=\"%s\" ",
image_url ? (char*)image_url : "", image_text);
if (image_url)
- print_image_dimensions(output, image_file_prefix, image_url,
- &width, &height);
+ print_image_dimensions(output, image_file_prefix, image_url);
print_output(output, "%s/>", image_url ? " " : "");
output_firstcol = FALSE;
@@ -1819,18 +1824,19 @@ process_inline_image(u8* image_text, const u8* image_file_prefix,
}
int
-process_image(u8* image_text, const u8* image_file_prefix, const u8* link_prefix,
- u8* image_id, FILE* output, BOOL add_link, BOOL add_figcaption)
+process_image(FILE* output, const u8* image_text, const u8* image_file_prefix,
+ const u8* link_prefix, const u8* image_id, const BOOL add_link,
+ const BOOL add_figcaption)
{
u8* url = get_value(links, links_count, image_id, NULL);
- return process_inline_image(image_text, image_file_prefix, link_prefix, url,
- output, add_link, add_figcaption);
+ return process_inline_image(output, image_text, image_file_prefix,
+ link_prefix, url, add_link, add_figcaption);
}
int
-process_line_start(u8* line, const u8* link_prefix, BOOL first_line_in_doc,
- BOOL previous_line_blank, BOOL read_yaml_macros_and_links,
- BOOL list_para, FILE* output, u8** token, u8** ptoken)
+process_line_start(FILE* output, const u8* line, const u8* link_prefix,
+ const BOOL first_line_in_doc, const BOOL previous_line_blank,
+ const BOOL read_yaml_macros_and_links, const BOOL list_para)
{
if ((first_line_in_doc || previous_line_blank)
&& !(ANY(state, ST_BLOCKQUOTE | ST_PRE)))
@@ -1882,18 +1888,18 @@ process_line_start(u8* line, const u8* link_prefix, BOOL first_line_in_doc,
}
int
-process_text_token(u8* line, const u8* link_prefix, BOOL first_line_in_doc,
- BOOL previous_line_blank, BOOL processed_start_of_line,
- BOOL read_yaml_macros_and_links, BOOL list_para, FILE* output,
- u8** token, u8** ptoken, size_t* token_size,
- BOOL add_enclosing_paragraph)
+process_text_token(FILE* output, const u8* line, const u8* link_prefix,
+ const BOOL first_line_in_doc, const BOOL previous_line_blank,
+ const BOOL processed_start_of_line,
+ const BOOL read_yaml_macros_and_links, const BOOL list_para, u8** token,
+ u8** ptoken, size_t* token_size, const BOOL add_enclosing_paragraph)
{
if (!(state & ST_YAML))
{
if (add_enclosing_paragraph && !processed_start_of_line)
- process_line_start(line, link_prefix, first_line_in_doc,
- previous_line_blank, read_yaml_macros_and_links,
- list_para, output, token, ptoken);
+ process_line_start(output, line, link_prefix,
+ first_line_in_doc, previous_line_blank,
+ read_yaml_macros_and_links, list_para);
**ptoken = 0;
if (**token && !read_yaml_macros_and_links
&& !(state & ST_MACRO_BODY))
@@ -1913,7 +1919,8 @@ process_text_token(u8* line, const u8* link_prefix, BOOL first_line_in_doc,
}
int
-process_inline_footnote(u8* token, BOOL read_yaml_macros_and_links, FILE* output)
+process_inline_footnote(const u8* token, const BOOL read_yaml_macros_and_links,
+ FILE* output)
{
current_inline_footnote++;
@@ -1955,8 +1962,8 @@ process_inline_footnote(u8* token, BOOL read_yaml_macros_and_links, FILE* output
}
int
-process_footnote(u8* token, BOOL footnote_definition, BOOL footnote_output,
- FILE* output)
+process_footnote(FILE* output, const u8* token, const BOOL footnote_definition,
+ const BOOL footnote_output)
{
current_footnote++;
@@ -2009,15 +2016,15 @@ process_horizontal_rule(FILE* output)
}
int
-process_formula(FILE* output, const u8* token, BOOL display_formula)
+process_formula(FILE* output, const u8* token, const BOOL display_formula)
{
int result = 0;
const u8* pipe_args[] = {token, NULL};
- result = print_command(CMD_KATEX,
+ result = print_command(output, CMD_KATEX,
display_formula ? (const u8**)CMD_KATEX_DISPLAY_ARGS
: (const u8**)CMD_KATEX_INLINE_ARGS,
- (const u8**)pipe_args, output, TRUE);
+ (const u8**)pipe_args, TRUE);
if (result)
{
@@ -2144,10 +2151,10 @@ begin_article(FILE* output, const u8* link_prefix,
if (date && input_filename)
{
- char* link = strip_ext(input_filename);
- char* real_link = NULL;
- u8* permalink_macro = get_value(macros, macros_count,
- (u8*)"permalink", NULL);
+ char* link = strip_ext(input_filename);
+ char* real_link = NULL;
+ u8* permalink_macro = get_value(macros, macros_count,
+ (u8*)"permalink", NULL);
CALLOC(real_link, char, BUFSIZE);
if (ext_in_permalink)
@@ -2235,8 +2242,8 @@ end_body_and_html(FILE* output)
}
int
-slweb_parse(u8* buffer, FILE* output, BOOL body_only,
- BOOL read_yaml_macros_and_links)
+slweb_parse(FILE* output, const u8* buffer, const BOOL body_only,
+ const BOOL read_yaml_macros_and_links)
{
u8* title = NULL;
u8* title_heading_level = NULL;
@@ -2251,7 +2258,7 @@ slweb_parse(u8* buffer, FILE* output, BOOL body_only,
u8* var_add_footnote_div = NULL;
u8* image_file_prefix = NULL;
u8* link_prefix = NULL;
- u8* pbuffer = NULL;
+ const u8* pbuffer = NULL;
u8* line = NULL;
u8* pline = NULL;
size_t line_len = 0;
@@ -2504,12 +2511,11 @@ do_line:
else
{
/* Output existing text up to ~~ */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2547,12 +2553,11 @@ do_line:
else
{
/* Output existing text up to ~ */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2621,12 +2626,11 @@ do_line:
else
{
/* Output existing text up to ` */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2729,12 +2733,11 @@ do_line:
else
{
/* Output existing text up to __ */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2773,12 +2776,11 @@ do_line:
else
{
/* Output existing text up to _ */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2856,9 +2858,9 @@ do_line:
pline_len = strlen((char*)pline);
if (colno == 1 && pline_len > 1 && *(pline + 1) == '[')
{
- process_line_start(line, link_prefix, first_line_in_doc,
- previous_line_blank, read_yaml_macros_and_links,
- list_para, output, &token, &ptoken);
+ process_line_start(output, line, link_prefix,
+ first_line_in_doc, previous_line_blank,
+ read_yaml_macros_and_links, list_para);
/* Ignore abbreviations (for now) */
pline = NULL;
@@ -2927,12 +2929,11 @@ do_line:
else
{
/* Output existing text up to * */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2972,12 +2973,11 @@ do_line:
else
{
/* Output existing text up to * */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -3022,10 +3022,11 @@ do_line:
&& startswith((char*)pline, " "))
{
list_para = TRUE;
- process_text_token(line, link_prefix, first_line_in_doc,
- previous_line_blank, processed_start_of_line,
- read_yaml_macros_and_links, list_para, output,
- &token, &ptoken, &token_size, TRUE);
+ process_text_token(output, line, link_prefix,
+ first_line_in_doc, previous_line_blank,
+ processed_start_of_line,
+ read_yaml_macros_and_links, list_para, &token,
+ &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
while (*pline == ' ' || *pline == '\t')
{
@@ -3114,10 +3115,11 @@ do_line:
else
{
/* Output existing text up to { */
- process_text_token(line, link_prefix, first_line_in_doc,
- previous_line_blank, processed_start_of_line,
- read_yaml_macros_and_links, list_para, output,
- &token, &ptoken, &token_size, FALSE);
+ process_text_token(output, line, link_prefix,
+ first_line_in_doc, previous_line_blank,
+ processed_start_of_line,
+ read_yaml_macros_and_links, list_para, &token,
+ &ptoken, &token_size, FALSE);
processed_start_of_line = TRUE;
}
@@ -3164,7 +3166,7 @@ do_line:
state &= ~ST_TAG;
*ptoken = 0;
- process_tag(token, link_prefix, output,
+ process_tag(output, token, link_prefix,
read_yaml_macros_and_links, &skip_eol, end_tag);
RESET_TOKEN(token, ptoken, token_size);
@@ -3212,12 +3214,11 @@ do_line:
else
{
/* Output existing text up to || */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -3469,10 +3470,11 @@ do_line:
{
/* Output existing text up to ! */
*ptoken = 0;
- process_text_token(line, link_prefix, first_line_in_doc,
- previous_line_blank, processed_start_of_line,
- read_yaml_macros_and_links, list_para, output,
- &token, &ptoken, &token_size, FALSE);
+ process_text_token(output, line, link_prefix,
+ first_line_in_doc, previous_line_blank,
+ processed_start_of_line,
+ read_yaml_macros_and_links, list_para, &token,
+ &ptoken, &token_size, FALSE);
processed_start_of_line = TRUE;
RESET_TOKEN(token, ptoken, token_size);
@@ -3544,12 +3546,11 @@ do_line:
{
/* Output existing text up to [^ */
*ptoken = 0;
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
}
processed_start_of_line = TRUE;
@@ -3563,10 +3564,11 @@ do_line:
{
/* Output existing text up to [ */
*ptoken = 0;
- process_text_token(line, link_prefix, first_line_in_doc,
- previous_line_blank, processed_start_of_line,
- read_yaml_macros_and_links, list_para, output,
- &token, &ptoken, &token_size, TRUE);
+ process_text_token(output, line, link_prefix,
+ first_line_in_doc, previous_line_blank,
+ processed_start_of_line,
+ read_yaml_macros_and_links, list_para, &token,
+ &ptoken, &token_size, TRUE);
}
processed_start_of_line = TRUE;
@@ -3669,15 +3671,15 @@ do_line:
if (!read_yaml_macros_and_links)
{
if (state & ST_LINK_SECOND_ARG)
- process_inline_link(link_text,
+ process_inline_link(output, link_text,
link_prefix,
get_value(macros, macros_count,
link_macro, NULL),
- token, output);
+ token);
else
- process_inline_image(link_text,
+ process_inline_image(output, link_text,
image_file_prefix, link_prefix,
- token, output, add_image_links,
+ token, add_image_links,
add_figcaption);
}
RESET_TOKEN(token, ptoken, token_size);
@@ -3718,12 +3720,11 @@ do_line:
&& (*(pline + 1) == ':')
&& footnote_at_line_start;
- process_footnote(token,
+ process_footnote(output, token,
footnote_definition
&& read_yaml_macros_and_links,
!footnote_definition
- && !read_yaml_macros_and_links,
- output);
+ && !read_yaml_macros_and_links);
RESET_TOKEN(token, ptoken, token_size);
state &= ~ST_FOOTNOTE;
@@ -3745,10 +3746,10 @@ do_line:
else if (state & ST_LINK_SECOND_ARG)
{
if (!read_yaml_macros_and_links)
- process_link(link_text, link_prefix,
+ process_link(output, link_text, link_prefix,
get_value(macros, macros_count,
link_macro, NULL),
- token, output);
+ token);
RESET_TOKEN(token, ptoken, token_size);
state &= ~(ST_LINK | ST_LINK_SECOND_ARG);
pline++;
@@ -3757,8 +3758,8 @@ do_line:
else if (state & ST_IMAGE_SECOND_ARG)
{
if (!read_yaml_macros_and_links)
- process_image(link_text, image_file_prefix,
- link_prefix, token, output,
+ process_image(output, link_text,
+ image_file_prefix, link_prefix, token,
add_image_links, add_figcaption);
RESET_TOKEN(token, ptoken, token_size);
state &= ~(ST_IMAGE | ST_IMAGE_SECOND_ARG);
@@ -3856,10 +3857,11 @@ do_line:
{
/* Output existing text up to ^[ */
*ptoken = 0;
- process_text_token(line, link_prefix, first_line_in_doc,
- previous_line_blank, processed_start_of_line,
- read_yaml_macros_and_links, list_para, output,
- &token, &ptoken, &token_size, TRUE);
+ process_text_token(output, line, link_prefix,
+ first_line_in_doc, previous_line_blank,
+ processed_start_of_line,
+ read_yaml_macros_and_links, list_para, &token,
+ &ptoken, &token_size, TRUE);
processed_start_of_line = TRUE;
RESET_TOKEN(token, ptoken, token_size);
@@ -3920,12 +3922,11 @@ do_line:
if (!(state & ST_DISPLAY_FORMULA))
{
/* Output existing text up to $$ */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
}
processed_start_of_line = TRUE;
@@ -3957,12 +3958,11 @@ do_line:
if (!(state & ST_FORMULA))
{
/* Output existing text up to $ */
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
}
processed_start_of_line = TRUE;
@@ -4215,7 +4215,7 @@ done_line:
state &= ~(ST_HEADING | ST_HEADING_TEXT);
if (!read_yaml_macros_and_links)
{
- process_heading(token, output,
+ process_heading(output, token,
heading_level);
output_firstcol = FALSE;
}
@@ -4226,12 +4226,11 @@ done_line:
else if (!ANY(state,
ST_DISPLAY_FORMULA | ST_FORMULA
| ST_IMAGE | ST_LINK))
- process_text_token(line, link_prefix,
+ process_text_token(output, line, link_prefix,
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- output, &token, &ptoken, &token_size,
- TRUE);
+ &token, &ptoken, &token_size, TRUE);
}
if (!ANY(state,
@@ -4395,9 +4394,9 @@ done_buffer:
}
int
-main(int argc, char** argv)
+main(const int argc, const char** argv)
{
- char* arg;
+ const char* arg;
Command cmd = CMD_NONE;
BOOL body_only = FALSE;
int result = 0;
@@ -4426,17 +4425,17 @@ main(int argc, char** argv)
else if (startswith(arg, "basedir"))
{
arg += strlen("basedir");
- result = set_basedir(arg, &basedir,
- &basedir_size);
+ result = set_basedir(&basedir,
+ &basedir_size, arg);
if (result)
return result;
}
else if (startswith(arg, "global-link-prefix"))
{
arg += strlen("global-link-prefix");
- result = set_global_link_prefix(arg,
+ result = set_global_link_prefix(
&global_link_prefix,
- &global_link_prefix_size);
+ &global_link_prefix_size, arg);
if (result)
return result;
}
@@ -4483,8 +4482,8 @@ main(int argc, char** argv)
if (cmd == CMD_BASEDIR)
{
- result = set_basedir(arg, &basedir,
- &basedir_size);
+ result = set_basedir(&basedir, &basedir_size,
+ arg);
if (result)
return result;
}
@@ -4506,8 +4505,8 @@ main(int argc, char** argv)
size_t buffer_size = 0;
if (input_filename)
- read_file_into_buffer(&buffer, &buffer_size, input_filename,
- &input_dirname, &input);
+ read_file_into_buffer(&input, &buffer, &buffer_size,
+ input_filename, &input_dirname);
else
{
u8* bufline = NULL;
@@ -4554,7 +4553,7 @@ main(int argc, char** argv)
inline_footnote_count = 0;
/* First pass: read YAML, macros and links */
- result = slweb_parse(buffer, output, body_only, TRUE);
+ result = slweb_parse(output, buffer, body_only, TRUE);
if (result)
{
@@ -4568,7 +4567,7 @@ main(int argc, char** argv)
current_inline_footnote = 0;
/* Second pass: parse and output */
- result = slweb_parse(buffer, output, body_only, FALSE);
+ result = slweb_parse(output, buffer, body_only, FALSE);
slweb_cleanup();
free(buffer);