summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinnnus <[email protected]>2024-02-17 00:38:57 +0100
committerLinnnus <[email protected]>2024-02-17 00:48:21 +0100
commitcd39c2a2fdf57b82fa8584cac3c201b8aafb72b5 (patch)
tree6809203eccbe7af52f422f711b9815c0f149927f
parentad937750d754676f8e9e01ce2c1021ad1a80ee04 (diff)
chore: avoid sign warnings
-rw-r--r--src/creole.c32
-rw-r--r--src/strutil.c6
2 files changed, 19 insertions, 19 deletions
diff --git a/src/creole.c b/src/creole.c
index 9331bcb..8bdeb19 100644
--- a/src/creole.c
+++ b/src/creole.c
@@ -13,12 +13,12 @@
#define DEBUG(...) (fprintf(stderr, __VA_ARGS__), fflush(stderr))
void process(const char *begin, const char *end, bool new_block, FILE *out);
-int do_headers(const char *begin, const char *end, bool new_block, FILE *out);
-int do_paragraph(const char *begin, const char *end, bool new_block, FILE *out);
-int do_replacements(const char *begin, const char *end, bool new_block, FILE *out);
-int do_link(const char *begin, const char *end, bool new_block, FILE *out);
-int do_raw_url(const char *begin, const char *end, bool new_block, FILE *out);
-int do_emphasis(const char *begin, const char *end, bool new_block, FILE *out);
+long do_headers(const char *begin, const char *end, bool new_block, FILE *out);
+long do_paragraph(const char *begin, const char *end, bool new_block, FILE *out);
+long do_replacements(const char *begin, const char *end, bool new_block, FILE *out);
+long do_link(const char *begin, const char *end, bool new_block, FILE *out);
+long do_raw_url(const char *begin, const char *end, bool new_block, FILE *out);
+long do_emphasis(const char *begin, const char *end, bool new_block, FILE *out);
// Prints string escaped.
void hprint(FILE *out, const char *begin, const char *end) {
@@ -41,11 +41,11 @@ void hprint(FILE *out, const char *begin, const char *end) {
//
// The parameter `new_block` determines whether `begin` points to the beginning of a new block.
// The sign of the return value determines whether a new block should begin, after the consumed text.
-typedef int (* parser_t)(const char *begin, const char *end, bool new_block, FILE *out);
+typedef long (* parser_t)(const char *begin, const char *end, bool new_block, FILE *out);
static parser_t parsers[] = { do_headers, do_paragraph, do_emphasis, do_link, do_raw_url, do_replacements };
-int do_headers(const char *begin, const char *end, bool new_block, FILE *out) {
+long do_headers(const char *begin, const char *end, bool new_block, FILE *out) {
if (!new_block) { // Headers are block-level elements.
return 0;
}
@@ -86,7 +86,7 @@ int do_headers(const char *begin, const char *end, bool new_block, FILE *out) {
return -(eol - begin);
}
-int do_paragraph(const char *begin, const char *end, bool new_block, FILE *out) {
+long do_paragraph(const char *begin, const char *end, bool new_block, FILE *out) {
if (!new_block) { // Paragraphs are block-level elements.
return 0;
}
@@ -123,11 +123,11 @@ static struct {
{"&", "&amp;"},
};
-int do_replacements(const char *begin, const char *end, bool new_block, FILE *out)
+long do_replacements(const char *begin, const char *end, bool new_block, FILE *out)
{
for (unsigned i = 0; i < LENGTH(replacements); ++i) {
size_t length = strlen(replacements[i].from);
- if (end - begin < length) {
+ if ((size_t)(end - begin) < length) {
continue;
}
if (strncmp(replacements[i].from, begin, length) == 0) {
@@ -139,7 +139,7 @@ int do_replacements(const char *begin, const char *end, bool new_block, FILE *ou
return 0;
}
-int do_link(const char *begin, const char *end, bool new_block, FILE *out)
+long do_link(const char *begin, const char *end, bool new_block, FILE *out)
{
// Links start with "[[".
if (begin + 2 >= end || begin[0] != '[' || begin[1] != '[') {
@@ -182,7 +182,7 @@ int do_link(const char *begin, const char *end, bool new_block, FILE *out)
return stop - start + 4 /* [[]] */;
}
-int do_raw_url(const char *begin, const char *end, bool new_block, FILE *out)
+long do_raw_url(const char *begin, const char *end, bool new_block, FILE *out)
{
// Eat a scheme followed by a ":". Here are the relevant rules from RFC 3986.
// - URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
@@ -246,7 +246,7 @@ end_url:
return q - begin;
}
-int do_emphasis(const char *begin, const char *end, bool new_block, FILE *out) {
+long do_emphasis(const char *begin, const char *end, bool new_block, FILE *out) {
if (begin + 2 >= end || begin[0] != '/' || begin[1] != '/') {
return 0;
}
@@ -281,7 +281,7 @@ void process(const char *begin, const char *end, bool new_block, FILE *out) {
}
// Greedily try all parsers.
- int affected;
+ long affected;
for (unsigned i = 0; i < LENGTH(parsers); ++i) {
affected = parsers[i](p, end, new_block, out);
if (affected) {
@@ -289,7 +289,7 @@ void process(const char *begin, const char *end, bool new_block, FILE *out) {
}
}
if (affected) {
- p += abs(affected);
+ p += labs(affected);
} else {
fputc(*p, out);
p += 1;
diff --git a/src/strutil.c b/src/strutil.c
index 46778ae..cf0fa68 100644
--- a/src/strutil.c
+++ b/src/strutil.c
@@ -82,13 +82,13 @@ char *replace(struct arena *a, const char *orig, const char *rep, const char *wi
char *tmp; // varies
- int len_rep = strlen(rep);
+ size_t len_rep = strlen(rep);
if (len_rep == 0) {
errno = EINVAL; // empty rep causes infinite loop during count
return NULL;
}
- int len_with;
+ size_t len_with;
if (with == NULL)
with = "";
len_with = strlen(with);
@@ -111,7 +111,7 @@ char *replace(struct arena *a, const char *orig, const char *rep, const char *wi
// orig points to the remainder of orig after "end of rep"
while (count--) {
ins = strstr(orig, rep);
- int len_front = ins - orig;
+ ssize_t len_front = ins - orig;
tmp = strncpy(tmp, orig, len_front) + len_front;
tmp = strcpy(tmp, with) + len_with;
orig += len_front + len_rep; // move to next "end of rep"