чување 2e89ed6038a4a22c4af2dcdb3dcb7302142ceb59
родитељ bee0cf82af7a4ee0179b35219710ccc9912730c4
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Mon, 22 Mar 2021 12:37:18 +0100
Added link-prefix variable
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
| M | slw2gmi.c | | | 244 | ++++++++++++++++++++++++++++++++++++++----------------------------------------- |
измењених датотека: 1, додавања: 118(+), брисања: 126(-)
diff --git a/slw2gmi.c b/slw2gmi.c
@@ -925,17 +925,17 @@ process_list_item_start(FILE* output)
}
int
-process_paralinks(FILE* output);
+process_paralinks(const uint8_t* link_prefix, FILE* output);
int
-process_list_item_end(FILE* output)
+process_list_item_end(const uint8_t* link_prefix, FILE* output)
{
if (state & ST_PARA_OPEN)
{
state &= ~ST_PARA_OPEN;
fprintf(output, "\n");
output_colno = 1;
- process_paralinks(output);
+ process_paralinks(link_prefix, output);
}
return 0;
}
@@ -1011,12 +1011,12 @@ reverse_alphacompare(const struct dirent** a, const struct dirent** b)
}
int
-process_timestamp(FILE* output, const char* link, uint8_t* permalink_macro,
- uint8_t* date, uint8_t* title);
+process_timestamp(FILE* output, const uint8_t* link_prefix, const char* link,
+ uint8_t* permalink_macro, uint8_t* date, uint8_t* title);
int
-process_incdir_subdir(const char* subdirname, FILE* output, BOOL details_open,
- uint8_t* macro_body)
+process_incdir_subdir(const char* subdirname, const uint8_t* link_prefix,
+ FILE* output, BOOL details_open, uint8_t* macro_body)
{
/*
*print_output(output, "%s\n", subdirname);
@@ -1128,7 +1128,7 @@ process_incdir_subdir(const char* subdirname, FILE* output, BOOL details_open,
uint8_t* title = get_value(vars, vars_count, (uint8_t*)"title",
NULL);
if (title && date)
- process_timestamp(output, link, NULL, date, title);
+ process_timestamp(output, link_prefix, link, NULL, date, title);
/*
*print_output(output, "%s%s", link, title);
*/
@@ -1163,7 +1163,8 @@ process_incdir_subdir(const char* subdirname, FILE* output, BOOL details_open,
}
int
-process_incdir(uint8_t* token, FILE* output, BOOL read_yaml_macros_and_links)
+process_incdir(uint8_t* token, const uint8_t* link_prefix, FILE* output,
+ BOOL read_yaml_macros_and_links)
{
if (read_yaml_macros_and_links)
return 0;
@@ -1246,8 +1247,8 @@ process_incdir(uint8_t* token, FILE* output, BOOL read_yaml_macros_and_links)
print_output(output, "\n");
while (names_output < num && pnamelist && *pnamelist)
{
- process_incdir_subdir((*pnamelist)->d_name, output, details_open,
- macro_body);
+ process_incdir_subdir((*pnamelist)->d_name, link_prefix, output,
+ details_open, macro_body);
details_open = FALSE;
pnamelist++;
names_output++;
@@ -1263,8 +1264,11 @@ process_incdir(uint8_t* token, FILE* output, BOOL read_yaml_macros_and_links)
return 0;
}
+BOOL
+url_is_local(const char* url);
+
int
-process_timestamp(FILE* output, const char* link, uint8_t* permalink_macro,
+process_timestamp(FILE* output, const uint8_t* link_prefix, const char* link, uint8_t* permalink_macro,
uint8_t* date, uint8_t* title)
{
uint8_t* day = NULL;
@@ -1309,10 +1313,15 @@ process_timestamp(FILE* output, const char* link, uint8_t* permalink_macro,
ptimestamp_format++;
}
if (title)
- print_output(output, "=> %s.gmi\t%s [%s]\n", link,
- title, formatted_date);
+ print_output(output, "=> %s%s.gmi\t%s [%s]\n",
+ url_is_local(link) && link_prefix
+ ? (const char*)link_prefix : "",
+ link, title, formatted_date);
else
- print_output(output, "=> %s.gmi\t%s\n", link, formatted_date);
+ print_output(output, "=> %s%s.gmi\t%s\n",
+ url_is_local(link) && link_prefix
+ ? (const char*)link_prefix : "",
+ link, formatted_date);
output_colno = 1;
}
}
@@ -1383,8 +1392,8 @@ process_macro(uint8_t* token, FILE* output, BOOL read_yaml_macros_and_links,
}
int
-process_tag(uint8_t* token, FILE* output, BOOL read_yaml_macros_and_links,
- BOOL* skip_eol, BOOL end_tag)
+process_tag(uint8_t* token, const uint8_t* link_prefix, FILE* output,
+ BOOL read_yaml_macros_and_links, BOOL* skip_eol, BOOL end_tag)
{
if (!token || u8_strlen(token) < 1)
return warning(1, (uint8_t*)"%s:%ld:%ld: Empty tag name",
@@ -1413,7 +1422,7 @@ process_tag(uint8_t* token, FILE* output, BOOL read_yaml_macros_and_links,
}
else if (startswith((char*)token, "incdir")) /* {incdir} */
{
- process_incdir(token, output, read_yaml_macros_and_links);
+ process_incdir(token, link_prefix, output, read_yaml_macros_and_links);
*skip_eol = TRUE;
}
else if (*token == '=') /* {=macro} */
@@ -1532,10 +1541,11 @@ process_table_end(FILE* output)
}
BOOL
-url_is_local(char* url)
+url_is_local(const char* url)
{
return !(startswith(url, "http://")
|| startswith(url, "https://")
+ || startswith(url, "gemini://")
|| startswith(url, "ftp://")
|| startswith(url, "ftps://")
|| startswith(url, "mailto://"));
@@ -1647,15 +1657,17 @@ process_image(uint8_t* image_text, uint8_t* image_id, FILE* output,
}
int
-process_paralinks(FILE* output)
+process_paralinks(const uint8_t* link_prefix, FILE* output)
{
KeyValue* pparalink = paralinks;
while (pparalink < paralinks + paralinks_count)
{
if (pparalink->key)
{
- print_output(output, "%s=> %s\t%s\n",
+ print_output(output, "%s=> %s%s\t%s\n",
output_colno == 1 ? "" : "\n",
+ url_is_local((const char*)pparalink->key) && link_prefix
+ ? (const char*)link_prefix : "",
pparalink->key, pparalink->value);
output_colno = 1;
}
@@ -1677,9 +1689,10 @@ process_paralinks(FILE* output)
}
int
-process_line_start(uint8_t* line, BOOL first_line_in_doc,
- BOOL previous_line_blank, BOOL read_yaml_macros_and_links,
- BOOL list_para, FILE* output, uint8_t** token, uint8_t** ptoken)
+process_line_start(uint8_t* line, const uint8_t* link_prefix, BOOL
+ first_line_in_doc, BOOL previous_line_blank,
+ BOOL read_yaml_macros_and_links, BOOL list_para, FILE* output,
+ uint8_t** token, uint8_t** ptoken)
{
if ((first_line_in_doc || previous_line_blank)
&& !(ANY(state, ST_BLOCKQUOTE | ST_PRE)))
@@ -1691,7 +1704,7 @@ process_line_start(uint8_t* line, BOOL first_line_in_doc,
state &= ~ST_LIST;
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_list_end(output);
}
}
@@ -1701,7 +1714,7 @@ process_line_start(uint8_t* line, BOOL first_line_in_doc,
state &= ~ST_NUMLIST;
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_numlist_end(output);
}
}
@@ -1712,7 +1725,7 @@ process_line_start(uint8_t* line, BOOL first_line_in_doc,
{
print_output(output, "\n\n");
output_colno = 1;
- process_paralinks(output);
+ process_paralinks(link_prefix, output);
}
state &= ~(ST_FOOTNOTE_TEXT | ST_PARA_OPEN);
}
@@ -1726,19 +1739,18 @@ process_line_start(uint8_t* line, BOOL first_line_in_doc,
}
int
-process_text_token(uint8_t* line, 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, uint8_t** token,
- uint8_t** ptoken, size_t* token_size,
- BOOL add_enclosing_paragraph)
+process_text_token(uint8_t* line, const uint8_t* 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, uint8_t** token, uint8_t** ptoken,
+ size_t* token_size, BOOL add_enclosing_paragraph)
{
if (!(state & ST_YAML))
{
if (add_enclosing_paragraph && !processed_start_of_line)
- process_line_start(line, first_line_in_doc, previous_line_blank,
- read_yaml_macros_and_links, list_para, output, token, ptoken);
+ process_line_start(line, link_prefix, first_line_in_doc,
+ previous_line_blank, read_yaml_macros_and_links, list_para,
+ output, token, ptoken);
**ptoken = 0;
if (**token && !read_yaml_macros_and_links
&& !(state & ST_MACRO_BODY))
@@ -1897,7 +1909,7 @@ begin_article(FILE* output, const BOOL add_article_header,
}
int
-end_footnotes(FILE* output, BOOL add_footnote_div)
+end_footnotes(FILE* output, const uint8_t* link_prefix, BOOL add_footnote_div)
{
size_t footnote = 0;
@@ -1906,7 +1918,7 @@ end_footnotes(FILE* output, BOOL add_footnote_div)
print_output(output, "\n\n");
output_colno = 1;
state &= ~ST_PARA_OPEN;
- process_paralinks(output);
+ process_paralinks(link_prefix, output);
}
process_horizontal_rule(output);
@@ -1945,6 +1957,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
uint8_t* var_add_image_links = NULL;
uint8_t* var_add_figcaption = NULL;
uint8_t* var_add_footnote_div = NULL;
+ uint8_t* link_prefix = NULL;
uint8_t* pbuffer = NULL;
uint8_t* line = NULL;
uint8_t* pline = NULL;
@@ -1997,6 +2010,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
add_figcaption = !(var_add_figcaption && *var_add_figcaption == '0');
var_add_footnote_div = get_value(vars, vars_count, (uint8_t*)"add-footnote-div", NULL);
add_footnote_div = var_add_footnote_div && *var_add_footnote_div == '1';
+ link_prefix = get_value(vars, vars_count, (uint8_t*)"link-prefix", NULL);
CALLOC(line, uint8_t, BUFSIZE)
token_size = BUFSIZE;
@@ -2088,7 +2102,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
state &= ~ST_NUMLIST;
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_numlist_end(output);
}
}
@@ -2097,7 +2111,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
if (!(state & ST_LIST))
process_list_start(output);
else
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_list_item_start(output);
}
@@ -2217,12 +2231,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
else
{
/* Output existing text up to ` */
- process_text_token(line, 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(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);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2258,7 +2270,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
state &= ~ST_LIST;
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_list_end(output);
}
}
@@ -2268,7 +2280,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
state &= ~ST_NUMLIST;
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_numlist_end(output);
}
}
@@ -2316,12 +2328,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
| ST_FOOTNOTE_TEXT | ST_LINK))
{
/* Output existing text up to __ */
- process_text_token(line, 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(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);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2340,12 +2350,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
| ST_FOOTNOTE_TEXT | ST_LINK))
{
/* Output existing text up to _ */
- process_text_token(line, 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(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);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2384,7 +2392,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
state &= ~ST_NUMLIST;
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_numlist_end(output);
}
}
@@ -2393,7 +2401,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
if (!(state & ST_LIST))
process_list_start(output);
else
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_list_item_start(output);
}
@@ -2432,7 +2440,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
if (colno == 1
&& pline_len > 1 && *(pline+1) == '[')
{
- process_line_start(line, first_line_in_doc,
+ process_line_start(line, link_prefix, first_line_in_doc,
previous_line_blank, read_yaml_macros_and_links,
list_para, output, &token, &ptoken);
@@ -2456,7 +2464,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
state &= ~ST_NUMLIST;
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_numlist_end(output);
}
}
@@ -2465,7 +2473,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
if (!(state & ST_LIST))
process_list_start(output);
else
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_list_item_start(output);
}
@@ -2484,12 +2492,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
| ST_FOOTNOTE_TEXT | ST_LINK))
{
/* Output existing text up to * */
- process_text_token(line, 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(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);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2509,12 +2515,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
{
/* Output existing text up to * */
- process_text_token(line, 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(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);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2552,12 +2556,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
&& startswith((char*)pline, " "))
{
list_para = TRUE;
- process_text_token(line, 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(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);
processed_start_of_line = TRUE;
while (*pline == ' ' || *pline == '\t')
{
@@ -2637,7 +2639,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
else
{
/* Output existing text up to { */
- process_text_token(line, first_line_in_doc,
+ 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);
@@ -2691,8 +2693,8 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
state &= ~ST_TAG;
*ptoken = 0;
- process_tag(token, output, read_yaml_macros_and_links,
- &skip_eol, end_tag);
+ process_tag(token, link_prefix, output,
+ read_yaml_macros_and_links, &skip_eol, end_tag);
RESET_TOKEN(token, ptoken, token_size)
end_tag = FALSE;
@@ -2742,12 +2744,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
else
{
/* Output existing text up to || */
- process_text_token(line, 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(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);
processed_start_of_line = TRUE;
if (!read_yaml_macros_and_links
@@ -2976,7 +2976,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
{
/* Output existing text up to ! */
*ptoken = 0;
- process_text_token(line, first_line_in_doc,
+ 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);
@@ -3048,7 +3048,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
{
print_output(output, "\n\n");
output_colno = 1;
- process_paralinks(output);
+ process_paralinks(link_prefix, output);
}
state &= ~(ST_FOOTNOTE_TEXT | ST_PARA_OPEN);
}
@@ -3060,7 +3060,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
{
/* Output existing text up to [^ */
*ptoken = 0;
- process_text_token(line, first_line_in_doc,
+ 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);
@@ -3078,12 +3078,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
{
/* Output existing text up to [ */
*ptoken = 0;
- process_text_token(line, 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(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);
}
processed_start_of_line = TRUE;
@@ -3356,7 +3354,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
{
/* Output existing text up to ^[ */
*ptoken = 0;
- process_text_token(line, first_line_in_doc,
+ 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);
@@ -3432,12 +3430,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
if (!(state & ST_DISPLAY_FORMULA))
{
/* Output existing text up to $$ */
- process_text_token(line, 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(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);
}
processed_start_of_line = TRUE;
@@ -3468,12 +3464,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
if (!(state & ST_FORMULA))
{
/* Output existing text up to $ */
- process_text_token(line, 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(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);
}
processed_start_of_line = TRUE;
@@ -3520,7 +3514,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
state &= ~ST_LIST;
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_list_end(output);
}
}
@@ -3529,7 +3523,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
if (!(state & ST_NUMLIST))
process_numlist_start(output);
else
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_list_item_start(output);
}
@@ -3672,12 +3666,10 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
}
else if (!ANY(state, ST_DISPLAY_FORMULA | ST_FORMULA
| ST_IMAGE | ST_LINK))
- process_text_token(line, 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(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);
}
if (!ANY(state, ST_PRE | ST_IMAGE_SECOND_ARG | ST_LINK_SECOND_ARG
@@ -3693,7 +3685,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
|| previous_line_blank
? "" : "\n");
output_colno = 1;
- process_paralinks(output);
+ process_paralinks(link_prefix, output);
}
if (state & ST_LIST)
skip_eol = TRUE;
@@ -3704,7 +3696,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
{
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_list_end(output);
}
state &= ~ST_LIST;
@@ -3714,7 +3706,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
{
if (!read_yaml_macros_and_links)
{
- process_list_item_end(output);
+ process_list_item_end(link_prefix, output);
process_numlist_end(output);
}
state &= ~ST_NUMLIST;
@@ -3812,7 +3804,7 @@ slweb_parse(uint8_t* buffer, FILE* output, BOOL read_yaml_macros_and_links)
if (!read_yaml_macros_and_links
&& (footnote_count > 0 || inline_footnote_count > 0))
- end_footnotes(output, add_footnote_div);
+ end_footnotes(output, link_prefix, add_footnote_div);
if (!read_yaml_macros_and_links)
{