чување 92a411ceec8bdb2c0b36444d99df81085cb1dcb8
родитељ 26c681bba16b771656dda263759d72b77f9f23a0
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Fri, 18 Mar 2022 23:16:22 +0100
BOOL -> int; small adjustments
Diffstat:
| A | AUTHORS | | | 1 | + |
| M | defs.h | | | 148 | +++++++++++++++++++++++++++++++++++++------------------------------------------ |
| M | slweb.c | | | 538 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
| M | uninstall.do | | | 2 | +- |
измењених датотека: 4, додавања: 352(+), брисања: 337(-)
diff --git a/AUTHORS b/AUTHORS
@@ -0,0 +1 @@
+Strahinya Radich <contact@strahinja.org>
diff --git a/defs.h b/defs.h
@@ -23,61 +23,52 @@
#include "utf8.h"
#define COPYRIGHTYEAR "2020, 2021, 2022"
-#define MADEBY_URL "https://strahinja.srht.site/slweb"
+#define MADEBY_URL "https://strahinja.srht.site/slweb/"
-#define BUFSIZE 1024
-#define KEYSIZE 256
+#define BUFSIZE 1024
+#define KEYSIZE 256
#define SMALL_ARGSIZE 256
#define DATEBUFSIZE 12
-static const char timestamp_format[] = "d.m.y";
+static const char timestamp_format[] = "d.m.y";
static const char timestamp_output_ext[] = ".html";
-static const char CMD_GIT_LOG[] = "xargs";
-static const char* CMD_GIT_LOG_ARGS[]
- = { "xargs", "-I{}", "git", "log", "-1",
- "--pretty=format:{} %h %ci (%cn) %d", NULL };
+static const char CMD_GIT_LOG[] = "xargs";
+static const char* CMD_GIT_LOG_ARGS[] = {"xargs", "-I{}", "git", "log", "-1",
+ "--pretty=format:{} %h %ci (%cn) %d", NULL};
-static const char CMD_KATEX[] = "katex";
-static const char* CMD_KATEX_INLINE_ARGS[] = { "katex", NULL };
-static const char* CMD_KATEX_DISPLAY_ARGS[] = { "katex", "-d", NULL };
+static const char CMD_KATEX[] = "katex";
+static const char* CMD_KATEX_INLINE_ARGS[] = {"katex", NULL};
+static const char* CMD_KATEX_DISPLAY_ARGS[] = {"katex", "-d", NULL};
-static const char* CMD_IDENTIFY =
- "identify %s | sed -e's/.* \\([0-9]\\+\\)x\\([0-9]\\+\\)"
- ".*/width=\"\\1\" height=\"\\2\"/g'";
-
-typedef enum
-{
- FALSE = 0,
- TRUE = 1
-} BOOL;
+static const char* CMD_IDENTIFY
+ = "identify %s | sed -e's/.* \\([0-9]\\+\\)x\\([0-9]\\+\\)"
+ ".*/width=\"\\1\" height=\"\\2\"/g'";
#define ALL(var, mask) (((var) & (mask)) == (mask))
#define ANY(var, mask) (((var) & (mask)) != 0)
-#define IN(var, mask) ALL(var, mask)
+#define IN(var, mask) ALL(var, mask)
-#define MIN(a,b) ((a < b) ? (a) : (b))
+#define MIN(a, b) ((a < b) ? (a) : (b))
-typedef unsigned char UBYTE;
-typedef unsigned long ULONG;
+typedef unsigned char UBYTE;
+typedef unsigned long ULONG;
typedef unsigned long long ULLONG;
-typedef enum
-{
- CMD_NONE,
- CMD_BODY_ONLY,
- CMD_BASEDIR,
- CMD_HELP,
- CMD_LINK_PREFIX,
- CMD_VERSION
+typedef enum {
+ CMD_NONE,
+ CMD_BODY_ONLY,
+ CMD_BASEDIR,
+ CMD_HELP,
+ CMD_LINK_PREFIX,
+ CMD_VERSION
} Command;
-typedef struct
-{
- u8* key;
- u8* value;
- size_t value_size;
- BOOL seen; /* for use with macros */
+typedef struct {
+ u8* key;
+ u8* value;
+ size_t value_size;
+ int seen; /* for use with macros */
} KeyValue;
typedef int (*csv_callback_t)(FILE* output, u8** csv_header, u8** csv_register);
@@ -87,54 +78,55 @@ typedef int (*tsv_callback_t)(FILE* output, u8** tsv_header, u8** tsv_register);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-const-variable"
#endif
-#define MAX_HEADING_LEVEL 4
-#define MAX_CSV_REGISTERS 9
-#define MAX_TSV_REGISTERS 9
-
-#define ST_NONE 0
-#define ST_YAML 1
-#define ST_YAML_VAL ((ULLONG)1 << 1)
-#define ST_PARA_OPEN ((ULLONG)1 << 2)
-#define ST_TAG ((ULLONG)1 << 3)
-#define ST_HEADING ((ULLONG)1 << 4)
-#define ST_HEADING_TEXT ((ULLONG)1 << 5)
-#define ST_BOLD ((ULLONG)1 << 6)
-#define ST_ITALIC ((ULLONG)1 << 7)
-#define ST_PRE ((ULLONG)1 << 8)
-#define ST_CODE ((ULLONG)1 << 9)
-#define ST_BLOCKQUOTE ((ULLONG)1 << 10)
-#define ST_LINK ((ULLONG)1 << 11)
+#define MAX_HEADING_LEVEL 4
+#define MAX_CSV_REGISTERS 9
+#define MAX_TSV_REGISTERS 9
+
+#define ST_NONE 0
+#define ST_YAML 1
+#define ST_YAML_VAL ((ULLONG)1 << 1)
+#define ST_PARA_OPEN ((ULLONG)1 << 2)
+#define ST_TAG ((ULLONG)1 << 3)
+#define ST_HEADING ((ULLONG)1 << 4)
+#define ST_HEADING_TEXT ((ULLONG)1 << 5)
+#define ST_BOLD ((ULLONG)1 << 6)
+#define ST_ITALIC ((ULLONG)1 << 7)
+#define ST_PRE ((ULLONG)1 << 8)
+#define ST_CODE ((ULLONG)1 << 9)
+#define ST_BLOCKQUOTE ((ULLONG)1 << 10)
+#define ST_LINK ((ULLONG)1 << 11)
#define ST_LINK_SECOND_ARG ((ULLONG)1 << 12)
#define ST_LINK_SECOND_ARG_END ((ULLONG)1 << 13)
-#define ST_LINK_SPAN ((ULLONG)1 << 14)
-#define ST_LINK_MACRO ((ULLONG)1 << 15)
-#define ST_IMAGE ((ULLONG)1 << 16)
+#define ST_LINK_SPAN ((ULLONG)1 << 14)
+#define ST_LINK_MACRO ((ULLONG)1 << 15)
+#define ST_IMAGE ((ULLONG)1 << 16)
#define ST_IMAGE_SECOND_ARG ((ULLONG)1 << 17)
-#define ST_MACRO_BODY ((ULLONG)1 << 18)
-#define ST_CSV_BODY ((ULLONG)1 << 19)
-#define ST_TSV_BODY ((ULLONG)1 << 20)
-#define ST_HTML_TAG ((ULLONG)1 << 21)
-#define ST_KBD ((ULLONG)1 << 22)
-#define ST_LIST ((ULLONG)1 << 23)
-#define ST_NUMLIST ((ULLONG)1 << 24)
-#define ST_FOOTNOTE ((ULLONG)1 << 25)
+#define ST_MACRO_BODY ((ULLONG)1 << 18)
+#define ST_CSV_BODY ((ULLONG)1 << 19)
+#define ST_TSV_BODY ((ULLONG)1 << 20)
+#define ST_HTML_TAG ((ULLONG)1 << 21)
+#define ST_KBD ((ULLONG)1 << 22)
+#define ST_LIST ((ULLONG)1 << 23)
+#define ST_NUMLIST ((ULLONG)1 << 24)
+#define ST_FOOTNOTE ((ULLONG)1 << 25)
#define ST_FOOTNOTE_TEXT ((ULLONG)1 << 26)
#define ST_INLINE_FOOTNOTE ((ULLONG)1 << 27)
-#define ST_FORMULA ((ULLONG)1 << 28)
+#define ST_FORMULA ((ULLONG)1 << 28)
#define ST_DISPLAY_FORMULA ((ULLONG)1 << 29)
-#define ST_TABLE_HEADER ((ULLONG)1 << 30)
-#define ST_TABLE_LINE ((ULLONG)1 << 31)
-#define ST_TABLE ((ULLONG)1 << 32)
-#define ST_STRIKE ((ULLONG)1 << 33)
-
-#define ST_CS_NONE 0
-#define ST_CS_HEADER 1
-#define ST_CS_REGISTER (1 << 2)
-#define ST_CS_QUOTE (1 << 3)
-#define ST_CS_COND (1 << 4)
+#define ST_TABLE_HEADER ((ULLONG)1 << 30)
+#define ST_TABLE_LINE ((ULLONG)1 << 31)
+#define ST_TABLE ((ULLONG)1 << 32)
+#define ST_STRIKE ((ULLONG)1 << 33)
+#define ST_ENT ((ULLONG)1 << 33)
+
+#define ST_CS_NONE 0
+#define ST_CS_HEADER 1
+#define ST_CS_REGISTER (1 << 2)
+#define ST_CS_QUOTE (1 << 3)
+#define ST_CS_COND (1 << 4)
#define ST_CS_COND_NONEMPTY (1 << 5)
#define ST_CS_COND_EMPTY (1 << 6)
-#define ST_CS_ESCAPE (1 << 7)
+#define ST_CS_ESCAPE (1 << 7)
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif
diff --git a/slweb.c b/slweb.c
@@ -4,7 +4,7 @@
static size_t lineno = 0;
static size_t colno = 1;
-static BOOL output_firstcol = TRUE;
+static int output_firstcol = 1;
static const char* input_filename = NULL;
static char* input_dirname = NULL;
static char* basedir = NULL;
@@ -165,29 +165,53 @@ slweb_cleanup()
return 0;
}
-int add_css(FILE* output, BOOL output_yaml);
+int add_css(FILE* output, int output_yaml);
int simple_parse_yaml_line(const u8* line, KeyValue** vars, size_t* vars_count,
KeyValue** pvars);
int slweb_parse(FILE* output, const char* source_filename, const u8* buffer,
- const BOOL body_only, const BOOL read_yaml_macros_and_links);
+ const int body_only, const int read_yaml_macros_and_links);
-BOOL
+int
startswith(const char* s, const char* what)
{
if (!s || !what)
- return FALSE;
+ return 0;
do
{
if (*s++ != *what++)
- return FALSE;
+ return 0;
} while (*s && *what);
return !*what;
}
+int
+endswith(const char* s, const char* what)
+{
+ const char* ps = s;
+ const char* pwhat = what;
+
+ if (!s || !what)
+ return 0;
+
+ if (!*what)
+ return 1;
+
+ while (*ps)
+ ps++;
+ while (*pwhat)
+ pwhat++;
+
+ while (ps != s && pwhat != what)
+ if (*ps-- != *pwhat--)
+ return 0;
+
+ return *ps == *pwhat && pwhat == what;
+}
+
u8*
-get_value(KeyValue* list, const size_t list_count, const u8* key, BOOL* seen)
+get_value(KeyValue* list, const size_t list_count, const u8* key, int* seen)
{
if (!list)
return NULL;
@@ -199,7 +223,7 @@ get_value(KeyValue* list, const size_t list_count, const u8* key, BOOL* seen)
if (seen)
{
*seen = plist->seen;
- plist->seen = TRUE;
+ plist->seen = 1;
}
return plist->value;
}
@@ -339,7 +363,7 @@ print_output(FILE* output, const char* fmt, ...)
int
print_command(FILE* output, const char* command, const u8* pass_arguments[],
- const u8* pipe_arguments[], const BOOL strip_newlines)
+ const u8* pipe_arguments[], const int strip_newlines)
{
if (!command || !pass_arguments)
exit(error(EINVAL, (u8*)"print_command: Invalid argument"));
@@ -406,7 +430,7 @@ print_command(FILE* output, const char* command, const u8* pass_arguments[],
strip_newlines ? "" : "\n");
}
if (!strip_newlines)
- output_firstcol = TRUE;
+ output_firstcol = 1;
free(cmd_output_line);
fclose(cmd_output);
@@ -535,10 +559,10 @@ process_git_log(FILE* output)
print_output(output, "<div id=\"git-log\">\nPrevious commit:\n");
result = print_command(output, CMD_GIT_LOG,
- (const u8**)CMD_GIT_LOG_ARGS, (const u8**)pipe_args, FALSE);
+ (const u8**)CMD_GIT_LOG_ARGS, (const u8**)pipe_args, 0);
print_output(output, "</div><!--git-log-->\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
free(basename);
@@ -546,7 +570,7 @@ process_git_log(FILE* output)
}
int
-process_stylesheet(FILE* output, const u8* css_filename, BOOL output_yaml)
+process_stylesheet(FILE* output, const u8* css_filename, int output_yaml)
{
if (output_yaml)
print_output(output, "stylesheet: %s\n", css_filename);
@@ -554,12 +578,12 @@ process_stylesheet(FILE* output, const u8* css_filename, BOOL output_yaml)
print_output(output,
"<link rel=\"stylesheet\" href=\"%s\" />\n",
css_filename);
- output_firstcol = TRUE;
+ output_firstcol = 1;
return 0;
}
int
-process_inline_stylesheet(FILE* output, const u8* css_filename, BOOL output_yaml)
+process_inline_stylesheet(FILE* output, const u8* css_filename, int output_yaml)
{
FILE* css = NULL;
u8* bufline = NULL;
@@ -584,7 +608,7 @@ process_inline_stylesheet(FILE* output, const u8* css_filename, BOOL output_yaml
if (output_yaml)
{
print_output(output, "inline-stylesheet: %s\n", css_filename);
- output_firstcol = TRUE;
+ output_firstcol = 1;
goto process_inline_stylesheet_cleanup;
}
@@ -598,7 +622,7 @@ process_inline_stylesheet(FILE* output, const u8* css_filename, BOOL output_yaml
print_output(output, "%s", bufline);
}
print_output(output, "</style>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
process_inline_stylesheet_cleanup:
free(css_pathname);
@@ -863,7 +887,7 @@ read_tsv(FILE* output, const char* filename, tsv_callback_t callback)
int
process_tsv(FILE* output, const u8* arg_token,
- const BOOL read_yaml_macros_and_links, const BOOL end_tag)
+ const int read_yaml_macros_and_links, const int end_tag)
{
if (end_tag)
{
@@ -1213,7 +1237,7 @@ read_csv(FILE* output, const char* filename, csv_callback_t callback)
int
process_csv(FILE* output, const u8* arg_token,
- const BOOL read_yaml_macros_and_links, const BOOL end_tag)
+ const int read_yaml_macros_and_links, const int end_tag)
{
if (end_tag)
{
@@ -1275,7 +1299,7 @@ process_csv(FILE* output, const u8* arg_token,
int
process_include(FILE* output, const u8* token,
- const BOOL read_yaml_macros_and_links)
+ const int read_yaml_macros_and_links)
{
u8* ptoken = (u8*)strchr((char*)token, ' ');
char* include_filename = NULL;
@@ -1388,9 +1412,9 @@ process_include(FILE* output, const u8* token,
state = ST_NONE;
/* First pass: read YAML, macros and links */
- result = slweb_parse(output, filename, buffer, TRUE, TRUE);
+ result = slweb_parse(output, filename, buffer, 1, 1);
- add_css(child_output, TRUE);
+ add_css(child_output, 1);
if (result || read_yaml_macros_and_links)
goto process_include_child_cleanup;
@@ -1399,7 +1423,7 @@ process_include(FILE* output, const u8* token,
current_inline_footnote = 0;
/* Second pass: parse and output */
- result = slweb_parse(output, filename, buffer, TRUE, FALSE);
+ result = slweb_parse(output, filename, buffer, 1, 0);
process_include_child_cleanup:
slweb_cleanup();
@@ -1435,10 +1459,10 @@ process_list_item_end(FILE* output)
{
state &= ~ST_PARA_OPEN;
fprintf(output, "</p>");
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
fprintf(output, "</li>");
- output_firstcol = FALSE;
+ output_firstcol = 0;
return 0;
}
@@ -1446,7 +1470,7 @@ int
process_list_end(FILE* output)
{
fprintf(output, "</ul>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
return 0;
}
@@ -1454,7 +1478,7 @@ int
process_numlist_start(FILE* output)
{
fprintf(output, "<ol>");
- output_firstcol = FALSE;
+ output_firstcol = 0;
return 0;
}
@@ -1462,7 +1486,7 @@ int
process_numlist_end(FILE* output)
{
fprintf(output, "</ol>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
return 0;
}
@@ -1525,7 +1549,7 @@ int process_timestamp(FILE* output, const u8* link_prefix, const char* link,
int
process_incdir_subdir(FILE* output, const char* subdirname,
- const u8* link_prefix, const BOOL details_open, const u8* macro_body)
+ const u8* link_prefix, const int details_open, const u8* macro_body)
{
print_output(output, "<li>\n<details%s>\n<summary>",
details_open ? " open" : "");
@@ -1603,8 +1627,7 @@ process_incdir_subdir(FILE* output, const char* subdirname,
state = ST_NONE;
/* First pass: read YAML, macros and links */
- result = slweb_parse(output, filename, buffer, TRUE,
- TRUE);
+ result = slweb_parse(output, filename, buffer, 1, 1);
if (result)
{
@@ -1623,8 +1646,7 @@ process_incdir_subdir(FILE* output, const char* subdirname,
current_inline_footnote = 0;
/* Second pass: parse and output */
- result = slweb_parse(output, filename, buffer, TRUE,
- FALSE);
+ result = slweb_parse(output, filename, buffer, 1, 0);
state = saved_state;
@@ -1651,20 +1673,17 @@ process_incdir_subdir(FILE* output, const char* subdirname,
free(abs_subdirname);
print_output(output, "</div>\n</details>\n</li>\n");
- output_firstcol = FALSE;
+ output_firstcol = 0;
return 0;
}
int
process_incdir(FILE* output, const u8* token, const u8* link_prefix,
- const BOOL read_yaml_macros_and_links)
+ const int read_yaml_macros_and_links)
{
- if (read_yaml_macros_and_links)
- return 0;
-
u8* saveptr = NULL;
/* skipping the first token (incdir) */
- u8* arg = (u8*)strtok_r((char*)token, " ", (char**)&saveptr);
+ u8* arg = NULL;
size_t arg_len = 0;
long num = 5;
u8* macro_body = NULL;
@@ -1672,8 +1691,12 @@ process_incdir(FILE* output, const u8* token, const u8* link_prefix,
struct dirent** namelist;
struct dirent** pnamelist;
long names_output;
- BOOL details_open = TRUE;
+ int details_open = 1;
+ if (read_yaml_macros_and_links)
+ return 0;
+
+ arg = (u8*)strtok_r((char*)token, " ", (char**)&saveptr);
arg = (u8*)strtok_r(NULL, " ", (char**)&saveptr);
if (!arg)
exit(error(1, (u8*)"incdir: Arguments required"));
@@ -1738,7 +1761,7 @@ process_incdir(FILE* output, const u8* token, const u8* link_prefix,
{
process_incdir_subdir(output, (*pnamelist)->d_name, link_prefix,
details_open, macro_body);
- details_open = FALSE;
+ details_open = 0;
pnamelist++;
names_output++;
}
@@ -1748,12 +1771,12 @@ process_incdir(FILE* output, const u8* token, const u8* link_prefix,
free(incdir);
print_output(output, "</ul>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
return 0;
}
-BOOL url_is_local(const char* url);
+int url_is_local(const char* url);
int
process_timestamp(FILE* output, const u8* link_prefix, const char* link,
@@ -1804,7 +1827,7 @@ process_timestamp(FILE* output, const u8* link_prefix, const char* link,
: "",
link, permalink_macro ? (char*)permalink_macro : "",
formatted_date);
- output_firstcol = TRUE;
+ output_firstcol = 1;
process_timestamp_cleanup:
free(formatted_date);
@@ -1816,14 +1839,14 @@ process_timestamp_cleanup:
int
process_macro(FILE* output, const u8* token,
- const BOOL read_yaml_macros_and_links, const BOOL end_tag)
+ const int read_yaml_macros_and_links, const int end_tag)
{
if (!end_tag)
{
if (IN(state, ST_MACRO_BODY))
exit(error(1, (u8*)"Macro undefined or nested"));
- BOOL seen = FALSE;
+ int seen = 0;
u8* macro_body = get_value(macros, macros_count, token + 1,
read_yaml_macros_and_links ? NULL : &seen);
@@ -1869,7 +1892,7 @@ process_macro(FILE* output, const u8* token,
pmacros = macros + macros_count - 1;
}
CALLOC(pmacros->key, u8, KEYSIZE);
- pmacros->seen = FALSE;
+ pmacros->seen = 0;
strcpy((char*)pmacros->key, (char*)token + 1);
pmacros->value = NULL;
pmacros->value_size = 0;
@@ -1885,8 +1908,7 @@ process_macro(FILE* output, const u8* token,
int
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)
+ const int read_yaml_macros_and_links, int* skip_eol, const int end_tag)
{
if (!token || strlen((char*)token) < 1)
return warning(1, (u8*)"%s:%ld:%ld: Empty tag name",
@@ -1907,7 +1929,7 @@ process_tag(FILE* output, const u8* token, const u8* link_prefix,
"© %s Strahinya Radich.\n"
"</small></p></div><!--made-by-->\n",
MADEBY_URL, COPYRIGHTYEAR);
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
else if (startswith((char*)token, "csv")) /* {csv} */
process_csv(output, token, read_yaml_macros_and_links, end_tag);
@@ -1916,19 +1938,19 @@ process_tag(FILE* output, const u8* token, const u8* link_prefix,
else if (startswith((char*)token, "include")) /* {include} */
{
process_include(output, token, read_yaml_macros_and_links);
- *skip_eol = TRUE;
+ *skip_eol = 1;
}
else if (startswith((char*)token, "incdir")) /* {incdir} */
{
process_incdir(output, token, link_prefix,
read_yaml_macros_and_links);
- *skip_eol = TRUE;
+ *skip_eol = 1;
}
else if (*token == '=') /* {=macro} */
{
process_macro(output, token, read_yaml_macros_and_links,
end_tag);
- *skip_eol = TRUE;
+ *skip_eol = 1;
}
else if (!read_yaml_macros_and_links) /* general tags */
{
@@ -1982,49 +2004,49 @@ process_tag(FILE* output, const u8* token, const u8* link_prefix,
}
}
print_output(output, ">");
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
return 0;
}
int
-process_bold(FILE* output, const BOOL end_tag)
+process_bold(FILE* output, const int end_tag)
{
print_output(output, "<%sstrong>", end_tag ? "/" : "");
return 0;
}
int
-process_italic(FILE* output, const BOOL end_tag)
+process_italic(FILE* output, const int end_tag)
{
print_output(output, "<%sem>", end_tag ? "/" : "");
return 0;
}
int
-process_code(FILE* output, const BOOL end_tag)
+process_code(FILE* output, const int end_tag)
{
print_output(output, "<%scode>", end_tag ? "/" : "");
return 0;
}
int
-process_blockquote(FILE* output, const BOOL end_tag)
+process_blockquote(FILE* output, const int end_tag)
{
print_output(output, "<%sblockquote>", end_tag ? "/" : "");
return 0;
}
int
-process_kbd(FILE* output, const BOOL end_tag)
+process_kbd(FILE* output, const int end_tag)
{
print_output(output, "<%skbd>", end_tag ? "/" : "");
return 0;
}
int
-process_strike(FILE* output, const BOOL end_tag)
+process_strike(FILE* output, const int end_tag)
{
print_output(output, "<%ss>", end_tag ? "/" : "");
return 0;
@@ -2054,7 +2076,7 @@ process_table_header_end(FILE* output)
}
int
-process_table_body_start(FILE* output, const BOOL start_row)
+process_table_body_start(FILE* output, const int start_row)
{
print_output(output, "<tbody>\n");
if (start_row)
@@ -2090,7 +2112,7 @@ process_table_end(FILE* output)
return 0;
}
-BOOL
+int
url_is_local(const char* url)
{
return !(startswith(url, "http://") || startswith(url, "https://")
@@ -2107,7 +2129,7 @@ process_inline_link(FILE* output, const u8* link_text, const u8* link_prefix,
link_prefix ? (const char*)link_prefix : "",
link_url ? (char*)link_url : "",
link_macro_body ? (char*)link_macro_body : "", link_text);
- output_firstcol = FALSE;
+ output_firstcol = 0;
return 0;
}
@@ -2153,7 +2175,7 @@ print_image_dimensions(FILE* output, const u8* image_file_prefix, const u8* path
*eol = 0;
print_output(output, "%s", cmd_output_line);
- output_firstcol = FALSE;
+ output_firstcol = 0;
print_dimensions_cleanup:
pclose(cmd_output);
@@ -2164,7 +2186,7 @@ print_dimensions_cleanup:
int
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)
+ const int add_link, const int add_figcaption)
{
if (add_figcaption)
print_output(output, "<figure>\n");
@@ -2184,7 +2206,7 @@ process_inline_image(FILE* output, const u8* image_text,
print_image_dimensions(output, image_file_prefix, image_url);
print_output(output, "%s/>", image_url ? " " : "");
- output_firstcol = FALSE;
+ output_firstcol = 0;
if (add_link)
print_output(output, "</a>");
@@ -2193,15 +2215,15 @@ process_inline_image(FILE* output, const u8* image_text,
{
print_output(output, "<figcaption>%s</figcaption>\n</figure>\n",
image_text);
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
return 0;
}
int
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)
+ const u8* link_prefix, const u8* image_id, const int add_link,
+ const int add_figcaption)
{
u8* url = get_value(links, links_count, image_id, NULL);
return process_inline_image(output, image_text, image_file_prefix,
@@ -2210,8 +2232,8 @@ process_image(FILE* output, const u8* image_text, const u8* image_file_prefix,
int
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)
+ const int first_line_in_doc, const int previous_line_blank,
+ const int read_yaml_macros_and_links, const int list_para)
{
if ((first_line_in_doc || previous_line_blank)
&& !(ANY(state, ST_BLOCKQUOTE | ST_PRE)))
@@ -2244,7 +2266,7 @@ process_line_start(FILE* output, const u8* line, const u8* link_prefix,
&& (IN(state, ST_PARA_OPEN)))
{
print_output(output, "</p>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
state &= ~(ST_FOOTNOTE_TEXT | ST_PARA_OPEN);
}
@@ -2254,7 +2276,7 @@ process_line_start(FILE* output, const u8* line, const u8* link_prefix,
if (!read_yaml_macros_and_links)
{
print_output(output, "<p>");
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
state |= ST_PARA_OPEN;
}
@@ -2264,10 +2286,10 @@ process_line_start(FILE* output, const u8* line, const u8* link_prefix,
int
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)
+ const int first_line_in_doc, const int previous_line_blank,
+ const int processed_start_of_line, const int read_yaml_macros_and_links,
+ const int list_para, u8** token, u8** ptoken, size_t* token_size,
+ const int add_enclosing_paragraph)
{
if (!(IN(state, ST_YAML)))
{
@@ -2286,7 +2308,7 @@ process_text_token(FILE* output, const u8* line, const u8* link_prefix,
= *token + strlen((char*)*token) - eol
> 0;
else
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
}
RESET_TOKEN(*token, *ptoken, *token_size);
@@ -2294,7 +2316,7 @@ process_text_token(FILE* output, const u8* line, const u8* link_prefix,
}
int
-process_inline_footnote(const u8* token, const BOOL read_yaml_macros_and_links,
+process_inline_footnote(const u8* token, const int read_yaml_macros_and_links,
FILE* output)
{
current_inline_footnote++;
@@ -2330,15 +2352,15 @@ process_inline_footnote(const u8* token, const BOOL read_yaml_macros_and_links,
"id=\"inline-footnote-text-%d\"><sup>%d</sup></a>",
current_inline_footnote, current_inline_footnote,
current_inline_footnote);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
return 0;
}
int
-process_footnote(FILE* output, const u8* token, const BOOL footnote_definition,
- const BOOL footnote_output)
+process_footnote(FILE* output, const u8* token, const int footnote_definition,
+ const int footnote_output)
{
current_footnote++;
@@ -2371,7 +2393,7 @@ process_footnote(FILE* output, const u8* token, const BOOL footnote_definition,
"<a href=\"#footnote-%d\" id=\"footnote-text-%d\">"
"<sup>%d</sup></a>",
current_footnote, current_footnote, current_footnote);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
return 0;
@@ -2386,12 +2408,12 @@ process_horizontal_rule(FILE* output)
print_output(output, "<hr />\n");
if (IN(state, ST_PARA_OPEN))
print_output(output, "<p>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
return 0;
}
int
-process_formula(FILE* output, const u8* token, const BOOL display_formula)
+process_formula(FILE* output, const u8* token, const int display_formula)
{
int result = 0;
const u8* pipe_args[] = {token, NULL};
@@ -2399,13 +2421,13 @@ process_formula(FILE* output, const u8* token, const BOOL display_formula)
result = print_command(output, CMD_KATEX,
display_formula ? (const u8**)CMD_KATEX_DISPLAY_ARGS
: (const u8**)CMD_KATEX_INLINE_ARGS,
- (const u8**)pipe_args, TRUE);
+ (const u8**)pipe_args, 1);
if (result)
{
print_output(output, "%s$%s$%s", display_formula ? "$" : "",
token, display_formula ? "$" : "");
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
return result;
@@ -2470,12 +2492,12 @@ begin_html_and_head(FILE* output)
"<meta name=\"viewport\" content=\"width=device-width,"
" initial-scale=1\" />\n<meta name=\"generator\" "
"content=\"slweb\" />\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
return 0;
}
int
-add_css(FILE* output, BOOL output_yaml)
+add_css(FILE* output, int output_yaml)
{
if (!vars)
return -1;
@@ -2496,16 +2518,16 @@ int
end_head_start_body(FILE* output)
{
print_output(output, "</head>\n<body>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
return 0;
}
int
begin_article(FILE* output, const char* source_filename, const u8* link_prefix,
- const BOOL add_article_header, const u8* author, const u8* title,
+ const int add_article_header, const u8* author, const u8* title,
const u8* header_text, const char* title_heading_level, u8* date,
- const BOOL ext_in_permalink, const char* permalink_url)
+ const int ext_in_permalink, const char* permalink_url)
{
if (author || date || header_text || title)
print_output(output, "<header>\n");
@@ -2553,21 +2575,21 @@ begin_article(FILE* output, const char* source_filename, const u8* link_prefix,
}
int
-end_footnotes(FILE* output, BOOL add_footnote_div)
+end_footnotes(FILE* output, int add_footnote_div)
{
size_t footnote = 0;
if (IN(state, ST_PARA_OPEN))
{
print_output(output, "</p>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
state &= ~ST_PARA_OPEN;
}
if (add_footnote_div)
{
print_output(output, "<div class=\"footnotes\">\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
process_horizontal_rule(output);
@@ -2580,7 +2602,7 @@ end_footnotes(FILE* output, BOOL add_footnote_div)
"%s</p>\n",
footnote + 1, footnote + 1, footnote + 1,
(char*)inline_footnotes[footnote]);
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
KeyValue* pfootnote = footnotes;
@@ -2592,7 +2614,7 @@ end_footnotes(FILE* output, BOOL add_footnote_div)
"<a href=\"#footnote-text-%d\">%d.</a> %s</p>\n",
footnote + 1, footnote + 1, footnote + 1,
(char*)pfootnote->value);
- output_firstcol = TRUE;
+ output_firstcol = 1;
pfootnote++;
footnote++;
}
@@ -2600,7 +2622,7 @@ end_footnotes(FILE* output, BOOL add_footnote_div)
if (add_footnote_div)
{
print_output(output, "</div><!--footnotes-->\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
return 0;
@@ -2610,7 +2632,7 @@ int
end_body_and_html(FILE* output)
{
print_output(output, "</body>\n</html>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
return 0;
}
@@ -2622,7 +2644,7 @@ simple_parse_yaml_line(const u8* line, KeyValue** vars, size_t* vars_count,
u8* ptoken = NULL;
u8* var_key = NULL;
const u8* pline = line;
- BOOL in_arg = FALSE;
+ int in_arg = 0;
if (!line || !vars || !vars_count || !pvars)
exit(error(EINVAL,
@@ -2635,7 +2657,7 @@ simple_parse_yaml_line(const u8* line, KeyValue** vars, size_t* vars_count,
{
if (!in_arg && *pline == ':')
{
- in_arg = TRUE;
+ in_arg = 1;
*ptoken = 0;
var_key = (u8*)strdup((char*)token);
if (!var_key)
@@ -2655,7 +2677,7 @@ simple_parse_yaml_line(const u8* line, KeyValue** vars, size_t* vars_count,
*ptoken = 0;
if (var_key && *var_key && *token)
{
- BOOL found = FALSE;
+ int found = 0;
KeyValue* cvar = NULL;
cvar = *vars;
@@ -2665,7 +2687,7 @@ simple_parse_yaml_line(const u8* line, KeyValue** vars, size_t* vars_count,
&& cvar->value_size
&& !strcmp((const char*)cvar->value,
(const char*)token))
- found = TRUE;
+ found = 1;
cvar++;
}
if (!found)
@@ -2695,46 +2717,46 @@ simple_parse_yaml_line(const u8* line, KeyValue** vars, size_t* vars_count,
int
slweb_parse(FILE* output, const char* source_filename, const u8* buffer,
- const BOOL body_only, const BOOL read_yaml_macros_and_links)
+ const int body_only, const int read_yaml_macros_and_links)
{
- u8* title = NULL;
- u8* title_heading_level = NULL;
- u8* header_text = NULL;
- u8* author = NULL;
- u8* date = NULL;
- u8* permalink_url = NULL;
- u8* ext_in_permalink = NULL;
- u8* var_add_article_header = NULL;
- u8* var_add_image_links = NULL;
- u8* var_add_figcaption = NULL;
- u8* var_add_footnote_div = NULL;
- u8* image_file_prefix = NULL;
- u8* link_prefix = NULL;
- const u8* pbuffer = NULL;
- u8* line = NULL;
- u8* pline = NULL;
- size_t line_len = 0;
- u8* token = NULL;
- u8* ptoken = NULL;
- size_t token_size = 0;
- u8* link_text = NULL;
- size_t link_size = 0;
- u8* link_macro = NULL;
- UBYTE heading_level = 0;
- ULONG heading_count = 0;
- BOOL end_tag = FALSE;
- BOOL first_line_in_doc = TRUE;
- BOOL skip_change_first_line_in_doc = FALSE;
- BOOL skip_eol = FALSE;
- BOOL keep_token = FALSE;
- BOOL previous_line_blank = FALSE;
- BOOL processed_start_of_line = FALSE;
- BOOL add_image_links = TRUE;
- BOOL add_figcaption = TRUE;
- BOOL add_footnote_div = FALSE;
- BOOL list_para = FALSE;
- BOOL footnote_at_line_start = FALSE;
- size_t pline_len = 0;
+ u8* title = NULL;
+ u8* title_heading_level = NULL;
+ u8* header_text = NULL;
+ u8* author = NULL;
+ u8* date = NULL;
+ u8* permalink_url = NULL;
+ u8* ext_in_permalink = NULL;
+ u8* var_add_article_header = NULL;
+ u8* var_add_image_links = NULL;
+ u8* var_add_figcaption = NULL;
+ u8* var_add_footnote_div = NULL;
+ u8* image_file_prefix = NULL;
+ u8* link_prefix = NULL;
+ const u8* pbuffer = NULL;
+ u8* line = NULL;
+ u8* pline = NULL;
+ size_t line_len = 0;
+ u8* token = NULL;
+ u8* ptoken = NULL;
+ size_t token_size = 0;
+ u8* link_text = NULL;
+ size_t link_size = 0;
+ u8* link_macro = NULL;
+ UBYTE heading_level = 0;
+ ULONG heading_count = 0;
+ int end_tag = 0;
+ int first_line_in_doc = 1;
+ int skip_change_first_line_in_doc = 0;
+ int skip_eol = 0;
+ int keep_token = 0;
+ int previous_line_blank = 0;
+ int processed_start_of_line = 0;
+ int add_image_links = 1;
+ int add_figcaption = 1;
+ int add_footnote_div = 0;
+ int list_para = 0;
+ int footnote_at_line_start = 0;
+ size_t pline_len = 0;
if (!buffer)
exit(error(1, (u8*)"Empty buffer"));
@@ -2778,7 +2800,7 @@ slweb_parse(FILE* output, const char* source_filename, const u8* buffer,
if (!read_yaml_macros_and_links && !body_only)
{
begin_html_and_head(output);
- add_css(output, FALSE);
+ add_css(output, 0);
end_head_start_body(output);
}
@@ -2806,10 +2828,10 @@ do_buffer:;
lineno++;
colno = 1;
- output_firstcol = TRUE;
- processed_start_of_line = FALSE;
- skip_eol = FALSE;
- list_para = FALSE;
+ output_firstcol = 1;
+ processed_start_of_line = 0;
+ skip_eol = 0;
+ list_para = 0;
do_line:
if (!pline || !*pline)
@@ -2827,7 +2849,7 @@ do_line:
else if (colno == 1 && strlen((char*)pline) > 2
&& startswith((char*)pline, "---"))
{
- skip_eol = TRUE;
+ skip_eol = 1;
if (!(IN(state, ST_YAML)) && lineno > 1
&& !read_yaml_macros_and_links)
@@ -2839,7 +2861,7 @@ do_line:
else
state &= ~ST_YAML;
- skip_change_first_line_in_doc = TRUE;
+ skip_change_first_line_in_doc = 1;
}
pline = NULL;
}
@@ -2865,8 +2887,8 @@ do_line:
state |= ST_PARA_OPEN;
}
- processed_start_of_line = TRUE;
- skip_eol = FALSE;
+ processed_start_of_line = 1;
+ skip_eol = 0;
state |= ST_LIST;
@@ -2966,8 +2988,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state,
@@ -3006,8 +3028,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state,
@@ -3047,8 +3069,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state,
@@ -3084,7 +3106,7 @@ do_line:
print_output(output, "<pre>");
else
print_output(output, "</pre>");
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
/* Skip the rest of the line (language) */
@@ -3119,8 +3141,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state, ST_PRE | ST_HEADING)))
@@ -3225,8 +3247,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state,
@@ -3267,8 +3289,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state,
@@ -3316,8 +3338,8 @@ do_line:
state |= ST_PARA_OPEN;
}
- processed_start_of_line = TRUE;
- skip_eol = FALSE;
+ processed_start_of_line = 1;
+ skip_eol = 0;
state |= ST_LIST;
@@ -3355,7 +3377,7 @@ do_line:
else if (colno == 1 && pline_len > 2
&& startswith((char*)pline, "***"))
{
- skip_eol = TRUE;
+ skip_eol = 1;
if (!read_yaml_macros_and_links)
process_horizontal_rule(output);
pline = NULL;
@@ -3382,8 +3404,8 @@ do_line:
state |= ST_PARA_OPEN;
}
- processed_start_of_line = TRUE;
- skip_eol = FALSE;
+ processed_start_of_line = 1;
+ skip_eol = 0;
state |= ST_LIST;
@@ -3419,8 +3441,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state,
@@ -3462,8 +3484,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state,
@@ -3495,7 +3517,7 @@ do_line:
heading_count++;
process_heading_start(output, heading_level,
heading_count);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
state |= ST_HEADING_TEXT;
pline++;
@@ -3506,13 +3528,13 @@ do_line:
if (colno == 1 && strlen((char*)pline) > 1
&& startswith((char*)pline, " "))
{
- list_para = TRUE;
+ list_para = 1;
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;
+ &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
while (*pline == ' ' || *pline == '\t')
{
pline++;
@@ -3527,7 +3549,7 @@ do_line:
*ptoken = 0;
strcat((char*)ptoken, "<br />");
ptoken += br_len;
- output_firstcol = FALSE;
+ output_firstcol = 0;
pline++;
colno++;
}
@@ -3560,7 +3582,7 @@ do_line:
*ptoken = 0;
size_t token_len = strlen((char*)token);
- skip_eol = TRUE;
+ skip_eol = 1;
if (read_yaml_macros_and_links)
{
if (!macros)
@@ -3602,8 +3624,8 @@ do_line:
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;
+ &ptoken, &token_size, 0);
+ processed_start_of_line = 1;
}
state |= ST_TAG;
@@ -3625,7 +3647,7 @@ do_line:
if ((IN(state, ST_TAG)) && pline - 1 && *(pline - 1) == '{')
{
- end_tag = TRUE;
+ end_tag = 1;
pline++;
}
else
@@ -3653,7 +3675,7 @@ do_line:
read_yaml_macros_and_links, &skip_eol, end_tag);
RESET_TOKEN(token, ptoken, token_size);
- end_tag = FALSE;
+ end_tag = 0;
}
pline++;
@@ -3700,8 +3722,8 @@ do_line:
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;
+ &token, &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
if (!read_yaml_macros_and_links
&& !(ANY(state,
@@ -3710,7 +3732,7 @@ do_line:
state ^= ST_KBD;
process_kbd(output,
!(IN(state, ST_KBD)));
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
}
@@ -3721,7 +3743,7 @@ do_line:
else if (!(IN(state, ST_PRE)) && colno == 1
&& strlen((char*)pline) > 1 && *(pline + 1) == '@')
{
- skip_eol = TRUE;
+ skip_eol = 1;
pline += 2;
colno += 2;
@@ -3732,7 +3754,7 @@ do_line:
if (!read_yaml_macros_and_links)
{
process_table_start(output);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
pline = NULL;
break;
@@ -3747,8 +3769,8 @@ do_line:
state &= ~ST_TABLE_HEADER;
if (!read_yaml_macros_and_links)
{
- process_table_body_start(output, FALSE);
- output_firstcol = TRUE;
+ process_table_body_start(output, 0);
+ output_firstcol = 1;
}
pline = NULL;
break;
@@ -3758,7 +3780,7 @@ do_line:
if (!read_yaml_macros_and_links)
{
process_table_body_row_start(output);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
break;
@@ -3767,7 +3789,7 @@ do_line:
if (!read_yaml_macros_and_links)
{
process_table_end(output);
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
pline = NULL;
break;
@@ -3780,7 +3802,7 @@ do_line:
}
else if (!(IN(state, ST_PRE)) && colno == 1)
{
- skip_eol = TRUE;
+ skip_eol = 1;
if (IN(state, ST_TABLE_HEADER))
{
@@ -3796,8 +3818,8 @@ do_line:
state |= ST_TABLE;
if (!read_yaml_macros_and_links)
{
- process_table_body_start(output, TRUE);
- output_firstcol = FALSE;
+ process_table_body_start(output, 1);
+ output_firstcol = 0;
}
}
else if (IN(state, ST_TABLE))
@@ -3805,7 +3827,7 @@ do_line:
if (!read_yaml_macros_and_links)
{
process_table_body_row_start(output);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
}
else
@@ -3814,7 +3836,7 @@ do_line:
if (!read_yaml_macros_and_links)
{
process_table_start(output);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
}
@@ -3828,16 +3850,16 @@ do_line:
{
print_output(output, "%s", token);
if (*token)
- output_firstcol = FALSE;
+ output_firstcol = 0;
if (strlen((char*)pline) > 1)
{
process_table_header_cell(output);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
else
{
process_table_header_end(output);
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
}
RESET_TOKEN(token, ptoken, token_size);
@@ -3851,16 +3873,16 @@ do_line:
{
print_output(output, "%s", token);
if (*token)
- output_firstcol = FALSE;
+ output_firstcol = 0;
if (strlen((char*)pline) > 1)
{
process_table_body_cell(output);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
else
{
process_table_body_row_end(output);
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
}
RESET_TOKEN(token, ptoken, token_size);
@@ -3920,8 +3942,8 @@ do_line:
if (!read_yaml_macros_and_links
&& !(IN(state, ST_BLOCKQUOTE)))
{
- process_blockquote(output, FALSE);
- output_firstcol = FALSE;
+ process_blockquote(output, 0);
+ output_firstcol = 0;
}
state |= ST_BLOCKQUOTE;
@@ -3956,13 +3978,13 @@ do_line:
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;
+ &ptoken, &token_size, 0);
+ processed_start_of_line = 1;
RESET_TOKEN(token, ptoken, token_size);
state |= ST_IMAGE;
- keep_token = TRUE;
+ keep_token = 1;
pline += 2;
colno += 2;
}
@@ -4016,7 +4038,7 @@ do_line:
&& (IN(state, ST_PARA_OPEN)))
{
print_output(output, "</p>\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
state &= ~(ST_FOOTNOTE_TEXT | ST_PARA_OPEN);
}
@@ -4032,9 +4054,9 @@ do_line:
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- &token, &ptoken, &token_size, TRUE);
+ &token, &ptoken, &token_size, 1);
}
- processed_start_of_line = TRUE;
+ processed_start_of_line = 1;
RESET_TOKEN(token, ptoken, token_size);
state |= ST_FOOTNOTE;
@@ -4051,13 +4073,13 @@ do_line:
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para, &token,
- &ptoken, &token_size, TRUE);
+ &ptoken, &token_size, 1);
}
- processed_start_of_line = TRUE;
+ processed_start_of_line = 1;
RESET_TOKEN(token, ptoken, token_size);
state |= ST_LINK;
- keep_token = TRUE;
+ keep_token = 1;
*link_macro = 0;
pline++;
colno++;
@@ -4188,7 +4210,7 @@ do_line:
process_inline_footnote(token,
read_yaml_macros_and_links, output);
- keep_token = FALSE;
+ keep_token = 0;
RESET_TOKEN(token, ptoken, token_size);
state &= ~ST_INLINE_FOOTNOTE;
pline++;
@@ -4196,7 +4218,7 @@ do_line:
}
else if (IN(state, ST_FOOTNOTE))
{
- BOOL footnote_definition = (strlen((char*)pline) > 1)
+ int footnote_definition = (strlen((char*)pline) > 1)
&& (*(pline + 1) == ':')
&& footnote_at_line_start;
@@ -4208,7 +4230,7 @@ do_line:
RESET_TOKEN(token, ptoken, token_size);
state &= ~ST_FOOTNOTE;
- footnote_at_line_start = FALSE;
+ footnote_at_line_start = 0;
pline++;
colno++;
if (footnote_definition)
@@ -4278,7 +4300,7 @@ do_line:
colno++;
}
RESET_TOKEN(token, ptoken, token_size);
- keep_token = FALSE;
+ keep_token = 0;
state |= ST_LINK_SECOND_ARG_END;
break;
@@ -4300,7 +4322,7 @@ do_line:
pline += 2;
colno += 2;
RESET_TOKEN(token, ptoken, token_size);
- keep_token = FALSE;
+ keep_token = 0;
if (IN(state, ST_LINK))
state |= ST_LINK_SECOND_ARG;
else
@@ -4339,12 +4361,12 @@ do_line:
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;
+ &ptoken, &token_size, 1);
+ processed_start_of_line = 1;
RESET_TOKEN(token, ptoken, token_size);
state |= ST_INLINE_FOOTNOTE;
- keep_token = TRUE;
+ keep_token = 1;
pline += 2;
colno += 2;
break;
@@ -4406,22 +4428,22 @@ do_line:
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- &token, &ptoken, &token_size, TRUE);
+ &token, &ptoken, &token_size, 1);
}
- processed_start_of_line = TRUE;
+ processed_start_of_line = 1;
state ^= ST_DISPLAY_FORMULA;
if (IN(state, ST_DISPLAY_FORMULA))
- keep_token = TRUE;
+ keep_token = 1;
else
{
*ptoken = 0;
if (!read_yaml_macros_and_links)
- process_formula(output, token, TRUE);
+ process_formula(output, token, 1);
- keep_token = FALSE;
+ keep_token = 0;
RESET_TOKEN(token, ptoken, token_size);
}
@@ -4442,22 +4464,22 @@ do_line:
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- &token, &ptoken, &token_size, TRUE);
+ &token, &ptoken, &token_size, 1);
}
- processed_start_of_line = TRUE;
+ processed_start_of_line = 1;
state ^= ST_FORMULA;
if (IN(state, ST_FORMULA))
- keep_token = TRUE;
+ keep_token = 1;
else
{
*ptoken = 0;
if (!read_yaml_macros_and_links)
- process_formula(output, token, FALSE);
+ process_formula(output, token, 0);
- keep_token = FALSE;
+ keep_token = 0;
RESET_TOKEN(token, ptoken, token_size);
}
@@ -4505,8 +4527,8 @@ do_line:
state |= ST_PARA_OPEN;
}
- processed_start_of_line = TRUE;
- skip_eol = FALSE;
+ processed_start_of_line = 1;
+ skip_eol = 0;
state |= ST_NUMLIST;
@@ -4595,7 +4617,7 @@ done_line:
size_t token_len = strlen((char*)token);
if (IN(state, ST_MACRO_BODY))
{
- skip_eol = TRUE;
+ skip_eol = 1;
if (!read_yaml_macros_and_links)
goto skip_macro_read;
if (!macros)
@@ -4633,7 +4655,7 @@ done_line:
}
else if (IN(state, ST_FOOTNOTE_TEXT))
{
- skip_eol = TRUE;
+ skip_eol = 1;
if (!read_yaml_macros_and_links)
goto skip_footnote_read;
if (!footnotes)
@@ -4701,9 +4723,9 @@ done_line:
{
process_heading(output, token,
heading_level);
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
- first_line_in_doc = FALSE;
+ first_line_in_doc = 0;
RESET_TOKEN(token, ptoken, token_size);
heading_level = 0;
}
@@ -4714,7 +4736,7 @@ done_line:
first_line_in_doc, previous_line_blank,
processed_start_of_line,
read_yaml_macros_and_links, list_para,
- &token, &ptoken, &token_size, TRUE);
+ &token, &ptoken, &token_size, 1);
}
if (!ANY(state,
@@ -4727,10 +4749,10 @@ done_line:
if (!read_yaml_macros_and_links)
{
print_output(output, "</p>");
- output_firstcol = FALSE;
+ output_firstcol = 0;
}
if (IN(state, ST_LIST))
- skip_eol = TRUE;
+ skip_eol = 1;
state &= ~ST_PARA_OPEN;
}
@@ -4761,7 +4783,7 @@ done_line:
*ptoken = 0;
size_t token_len = strlen((char*)token);
- skip_eol = TRUE;
+ skip_eol = 1;
if (!read_yaml_macros_and_links)
goto skip_footnote_text_read;
if (!footnotes)
@@ -4807,8 +4829,8 @@ done_line:
state &= ~ST_BLOCKQUOTE;
if (!read_yaml_macros_and_links)
{
- process_blockquote(output, TRUE);
- output_firstcol = FALSE;
+ process_blockquote(output, 1);
+ output_firstcol = 0;
}
}
@@ -4819,7 +4841,7 @@ done_line:
{
warning(1, (u8*)"Malformed table");
process_table_end(output);
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
state &= ~(ST_TABLE_HEADER | ST_TABLE_LINE);
}
@@ -4829,12 +4851,12 @@ done_line:
if (!read_yaml_macros_and_links)
{
process_table_end(output);
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
state &= ~ST_TABLE;
}
- previous_line_blank = FALSE;
+ previous_line_blank = 0;
}
if (!skip_eol && !keep_token && !read_yaml_macros_and_links
@@ -4843,18 +4865,18 @@ done_line:
| ST_LINK_SECOND_ARG_END))
{
print_output(output, "\n");
- output_firstcol = TRUE;
+ output_firstcol = 1;
}
if (!keep_token)
RESET_TOKEN(token, ptoken, token_size);
if (!skip_change_first_line_in_doc && !(IN(state, ST_YAML)))
- first_line_in_doc = FALSE;
+ first_line_in_doc = 0;
- skip_change_first_line_in_doc = FALSE;
+ skip_change_first_line_in_doc = 0;
if (line_len == 0)
- previous_line_blank = TRUE;
+ previous_line_blank = 1;
/* Lasts until the end of line */
state &= ~(ST_YAML_VAL | ST_IMAGE_SECOND_ARG | ST_LINK_SECOND_ARG
@@ -4882,9 +4904,9 @@ int
main(const int argc, const char** argv)
{
const char* arg;
- Command cmd = CMD_NONE;
- BOOL body_only = FALSE;
- int result = 0;
+ Command cmd = CMD_NONE;
+ int body_only = 0;
+ int result = 0;
basedir_size = 2;
CALLOC(basedir, char, basedir_size);
@@ -4905,7 +4927,7 @@ main(const int argc, const char** argv)
else if (!strcmp(arg, "body-only"))
{
arg += strlen("body-only");
- body_only = TRUE;
+ body_only = 1;
}
else if (startswith(arg, "basedir"))
{
@@ -4940,7 +4962,7 @@ main(const int argc, const char** argv)
switch (c)
{
case 'b':
- body_only = TRUE;
+ body_only = 1;
break;
case 'd':
cmd = CMD_BASEDIR;
@@ -5046,7 +5068,7 @@ main(const int argc, const char** argv)
inline_footnote_count = 0;
/* First pass: read YAML, macros and links */
- result = slweb_parse(output, input_filename, buffer, body_only, TRUE);
+ result = slweb_parse(output, input_filename, buffer, body_only, 1);
if (result)
{
@@ -5060,7 +5082,7 @@ main(const int argc, const char** argv)
current_inline_footnote = 0;
/* Second pass: parse and output */
- result = slweb_parse(output, input_filename, buffer, body_only, FALSE);
+ result = slweb_parse(output, input_filename, buffer, body_only, 0);
slweb_cleanup();
free(buffer);
diff --git a/uninstall.do b/uninstall.do
@@ -1,6 +1,6 @@
#!/bin/sh
redo-always
-PREFIX=/usr/local
+PREFIX=${PREFIX:-/usr/local}
BINDIR=$PREFIX/bin
#DOCDIR=$PREFIX/share/doc/slweb
MANDIR=$PREFIX/share/man/man1