Introduction
Introduction Statistics Contact Development Disclaimer Help
code-style pass #1, also using sizeof(char) is retarded - smu - smu - simple ma…
git clone git://git.codemadness.org/smu
Log
Files
Refs
README
LICENSE
---
commit cb1471bace36cbe8097e56367f0d07d04e553217
parent dc715a83638a2c710c99718d9ae7a95478913395
Author: Hiltjo Posthuma <[email protected]>
Date: Tue, 11 May 2021 02:13:42 +0200
code-style pass #1, also using sizeof(char) is retarded
Diffstat:
M smu.c | 360 +++++++++++++++++------------…
1 file changed, 196 insertions(+), 164 deletions(-)
---
diff --git a/smu.c b/smu.c
@@ -11,7 +11,7 @@
#endif
#define LENGTH(x) sizeof(x)/sizeof(x[0])
-#define ADDC(b,i) if(i % BUFSIZ == 0) { b = realloc(b, (i + BUFSIZ) * sizeof(…
+#define ADDC(b,i) if (i % BUFSIZ == 0) { b = realloc(b, (i + BUFSIZ)); if (!b…
typedef int (*Parser)(const char *, const char *, int);
typedef struct {
@@ -95,24 +95,27 @@ static const char *insert[][2] = {
};
void
-eprint(const char *format, ...) {
+eprint(const char *format, ...)
+{
va_list ap;
va_start(ap, format);
vfprintf(stderr, format, ap);
va_end(ap);
- exit(EXIT_FAILURE);
+ exit(1);
}
int
-doamp(const char *begin, const char *end, int newblock) {
+doamp(const char *begin, const char *end, int newblock)
+{
const char *p;
- if(*begin != '&')
+ if (*begin != '&')
return 0;
- if(!nohtml) {
- for(p = begin + 1; p != end && !strchr("; \\\n\t", *p); p++);
- if(p == end || *p == ';')
+ if (!nohtml) {
+ for (p = begin + 1; p != end && !strchr("; \\\n\t", *p); p++)
+ ;
+ if (p == end || *p == ';')
return 0;
}
fputs("&amp;", stdout);
@@ -120,21 +123,21 @@ doamp(const char *begin, const char *end, int newblock) {
}
int
-dogtlt(const char *begin, const char *end, int newblock) {
+dogtlt(const char *begin, const char *end, int newblock)
+{
int brpos;
char c;
- if(nohtml || begin + 1 >= end)
+ if (nohtml || begin + 1 >= end)
return 0;
brpos = begin[1] == '>';
- if(!brpos && *begin != '<')
+ if (!brpos && *begin != '<')
return 0;
c = begin[brpos ? 0 : 1];
- if(!brpos && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z')) {
+ if (!brpos && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z')) {
fputs("&lt;", stdout);
return 1;
- }
- else if(brpos && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && !strc…
+ } else if (brpos && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && !s…
fprintf(stdout, "%c&gt;",c);
return 2;
}
@@ -142,104 +145,106 @@ dogtlt(const char *begin, const char *end, int newblock…
}
int
-docomment(const char *begin, const char *end, int newblock) {
+docomment(const char *begin, const char *end, int newblock)
+{
char *p;
- if(nohtml || strncmp("<!--", begin, 4))
+ if (nohtml || strncmp("<!--", begin, 4))
return 0;
p = strstr(begin, "-->");
- if(!p || p + 3 >= end)
+ if (!p || p + 3 >= end)
return 0;
fprintf(stdout, "%.*s\n", (int)(p + 3 - begin), begin);
return (p + 3 - begin) * (newblock ? -1 : 1);
}
int
-dohtml(const char *begin, const char *end, int newblock) {
+dohtml(const char *begin, const char *end, int newblock)
+{
const char *p, *tag, *tagend;
- if(nohtml || begin + 2 >= end)
+ if (nohtml || begin + 2 >= end)
return 0;
p = begin;
- if(p[0] != '<' || !isalpha(p[1]))
+ if (p[0] != '<' || !isalpha(p[1]))
return 0;
p++;
tag = p;
- for(; isalnum(*p) && p < end; p++);
+ for (; isalnum(*p) && p < end; p++)
+ ;
tagend = p;
- if(p > end || tag == tagend)
+ if (p > end || tag == tagend)
return 0;
- while((p = strstr(p, "</")) && p < end) {
+ while ((p = strstr(p, "</")) && p < end) {
p += 2;
- if(strncmp(p, tag, tagend - tag) == 0 && p[tagend - tag] == '>…
+ if (strncmp(p, tag, tagend - tag) == 0 && p[tagend - tag] == '…
p++;
- fwrite(begin, sizeof(char), p - begin + tagend - tag +…
+ fwrite(begin, 1, p - begin + tagend - tag + 1, stdout);
return p - begin + tagend - tag + 1;
}
}
- p = strchr(tagend, '>');
- if(p) {
- fwrite(begin, sizeof(char), p - begin + 2, stdout);
+ if ((p = strchr(tagend, '>'))) {
+ fwrite(begin, 1, p - begin + 2, stdout);
return p - begin + 2;
- }
- else
+ } else {
return 0;
+ }
}
int
-dolineprefix(const char *begin, const char *end, int newblock) {
+dolineprefix(const char *begin, const char *end, int newblock)
+{
unsigned int i, j, l;
char *buffer;
const char *p;
- if(newblock)
+ if (newblock)
p = begin;
- else if(*begin == '\n')
+ else if (*begin == '\n')
p = begin + 1;
else
return 0;
- for(i = 0; i < LENGTH(lineprefix); i++) {
+ for (i = 0; i < LENGTH(lineprefix); i++) {
l = strlen(lineprefix[i].search);
- if(end - p < l)
+ if (end - p < l)
continue;
- if(strncmp(lineprefix[i].search, p, l))
+ if (strncmp(lineprefix[i].search, p, l))
continue;
- if(*begin == '\n')
+ if (*begin == '\n')
fputc('\n', stdout);
fputs(lineprefix[i].before, stdout);
- if(lineprefix[i].search[l-1] == '\n') {
+ if (lineprefix[i].search[l-1] == '\n') {
fputc('\n', stdout);
return l - 1;
}
- if(!(buffer = malloc(BUFSIZ)))
+ if (!(buffer = malloc(BUFSIZ)))
eprint("malloc");
buffer[0] = '\0';
/* Collect lines into buffer while they start with the prefix …
j = 0;
- while((strncmp(lineprefix[i].search, p, l) == 0) && p + l < en…
+ while ((strncmp(lineprefix[i].search, p, l) == 0) && p + l < e…
p += l;
/* Special case for blockquotes: optional space after …
- if(lineprefix[i].search[0] == '>' && *p == ' ') {
+ if (lineprefix[i].search[0] == '>' && *p == ' ') {
p++;
}
- while(p < end) {
+ while (p < end) {
ADDC(buffer, j) = *p;
j++;
- if(*(p++) == '\n')
+ if (*(p++) == '\n')
break;
}
}
/* Skip empty lines in block */
- while(*(buffer + j - 1) == '\n') {
+ while (*(buffer + j - 1) == '\n')
j--;
- }
ADDC(buffer, j) = '\0';
- if(lineprefix[i].process)
+ if (lineprefix[i].process)
process(buffer, buffer + strlen(buffer), lineprefix[i]…
else
hprint(buffer, buffer + strlen(buffer));
@@ -251,90 +256,93 @@ dolineprefix(const char *begin, const char *end, int newb…
}
int
-dolink(const char *begin, const char *end, int newblock) {
+dolink(const char *begin, const char *end, int newblock)
+{
long width = 0, height = 0;
int img, len, sep, parens_depth = 1;
char *numend;
const char *desc, *link, *p, *q, *descend, *linkend;
const char *title = NULL, *titleend = NULL;
- if(*begin == '[')
+ if (*begin == '[')
img = 0;
- else if(strncmp(begin, "![", 2) == 0)
+ else if (strncmp(begin, "![", 2) == 0)
img = 1;
else
return 0;
p = desc = begin + 1 + img;
- if(!(p = strstr(desc, "](")) || p > end)
+ if (!(p = strstr(desc, "](")) || p > end)
return 0;
- for(q = strstr(desc, "!["); q && q < end && q < p; q = strstr(q + 1, "…
- if(!(p = strstr(p + 1, "](")) || p > end)
+ for (q = strstr(desc, "!["); q && q < end && q < p; q = strstr(q + 1, …
+ if (!(p = strstr(p + 1, "](")) || p > end)
return 0;
descend = p;
link = p + 2;
/* find end of link while handling nested parens */
q = link;
- while(parens_depth) {
- if(!(q = strpbrk(q, "()")) || q > end)
+ while (parens_depth) {
+ if (!(q = strpbrk(q, "()")) || q > end)
return 0;
- if(*q == '(')
+ if (*q == '(')
parens_depth++;
else
parens_depth--;
- if(parens_depth && q < end)
+ if (parens_depth && q < end)
q++;
}
- if((p = strpbrk(link, "\"'")) && p < end && q > p) {
+ if ((p = strpbrk(link, "\"'")) && p < end && q > p) {
sep = p[0]; /* separator: can be " or ' */
title = p + 1;
/* strip trailing whitespace */
- for(linkend = p; linkend > link && isspace(*(linkend - 1)); li…
- for(titleend = title; titleend < q && *titleend != sep; titlee…
- for(p = titleend + 1; p < end && isspace(*p); p++);
+ for (linkend = p; linkend > link && isspace(*(linkend - 1)); l…
+ ;
+ for (titleend = title; titleend < q && *titleend != sep; title…
+ ;
+ for (p = titleend + 1; p < end && isspace(*p); p++)
+ ;
/* image dimensions */
- if(*p == '=') {
+ if (*p == '=') {
width = strtol(++p, &numend, 10);
p = numend;
- if(*numend == 'x')
+ if (*numend == 'x')
height = strtol(++p, &numend, 10);
}
- }
- else {
+ } else {
/* strip trailing whitespace */
- for(linkend = q; linkend > link && isspace(*(linkend - 1)); li…
+ for (linkend = q; linkend > link && isspace(*(linkend - 1)); l…
+ ;
}
/* Links can be given in angular brackets */
- if(*link == '<' && *(linkend - 1) == '>') {
+ if (*link == '<' && *(linkend - 1) == '>') {
link++;
linkend--;
}
len = q + 1 - begin;
- if(img) {
+ if (img) {
fputs("<img src=\"", stdout);
hprintattr(link, linkend);
fputs("\" alt=\"", stdout);
hprintattr(desc, descend);
fputs("\" ", stdout);
- if(title && titleend) {
+ if (title && titleend) {
fputs("title=\"", stdout);
hprintattr(title, titleend);
fputs("\" ", stdout);
}
- if(width > 0)
+ if (width > 0)
printf("width=\"%ld\" ", width);
- if(height > 0)
+ if (height > 0)
printf("height=\"%ld\" ", height);
fputs("/>", stdout);
- }
- else {
+ } else {
fputs("<a href=\"", stdout);
hprintattr(link, linkend);
fputs("\"", stdout);
- if(title && titleend) {
+ if (title && titleend) {
fputs(" title=\"", stdout);
hprintattr(title, titleend);
fputs("\"", stdout);
@@ -347,48 +355,52 @@ dolink(const char *begin, const char *end, int newblock) {
}
int
-dolist(const char *begin, const char *end, int newblock) {
+dolist(const char *begin, const char *end, int newblock)
+{
unsigned int i, j, indent, run, ul, isblock;
const char *p, *q;
char *buffer = NULL;
char marker;
isblock = 0;
- if(newblock)
+ if (newblock)
p = begin;
- else if(*begin == '\n')
+ else if (*begin == '\n')
p = begin + 1;
else
return 0;
q = p;
- if(*p == '-' || *p == '*' || *p == '+') {
+ if (*p == '-' || *p == '*' || *p == '+') {
ul = 1;
marker = *p;
} else {
ul = 0;
- for(; p < end && *p >= '0' && *p <= '9'; p++);
- if(p >= end || *p != '.')
+ for (; p < end && *p >= '0' && *p <= '9'; p++)
+ ;
+ if (p >= end || *p != '.')
return 0;
}
p++;
- if(p >= end || !(*p == ' ' || *p == '\t'))
+ if (p >= end || !(*p == ' ' || *p == '\t'))
return 0;
- for(p++; p != end && (*p == ' ' || *p == '\t'); p++);
+ for (p++; p != end && (*p == ' ' || *p == '\t'); p++)
+ ;
indent = p - q;
buffer = ereallocz(buffer, BUFSIZ);
- if(!newblock)
+ if (!newblock)
fputc('\n', stdout);
fputs(ul ? "<ul>\n" : "<ol>\n", stdout);
run = 1;
- for(; p < end && run; p++) {
- for(i = 0; p < end && run; p++, i++) {
- if(*p == '\n') {
- if(p + 1 == end)
+ for (; p < end && run; p++) {
+ for (i = 0; p < end && run; p++, i++) {
+ if (*p == '\n') {
+ if (p + 1 == end)
break;
else {
/* Handle empty lines */
- for(q = p + 1; (*q == ' ' || *q == '\t…
- if(*q == '\n') {
+ for (q = p + 1; (*q == ' ' || *q == '\…
+ ;
+ if (*q == '\n') {
ADDC(buffer, i) = '\n';
i++;
run = 0;
@@ -398,25 +410,27 @@ dolist(const char *begin, const char *end, int newblock) {
}
q = p + 1;
j = 0;
- if(ul && *q == marker)
+ if (ul && *q == marker)
j = 1;
- else if(!ul) {
- for(; q + j != end && q[j] >= '0' && q…
- if(q + j == end)
+ else if (!ul) {
+ for (; q + j != end && q[j] >= '0' && …
+ ;
+ if (q + j == end)
break;
- if(j > 0 && q[j] == '.')
+ if (j > 0 && q[j] == '.')
j++;
else
j = 0;
}
- if(q + indent < end)
- for(; (q[j] == ' ' || q[j] == '\t') &&…
- if(j == indent) {
+ if (q + indent < end)
+ for (; (q[j] == ' ' || q[j] == '\t') &…
+ ;
+ if (j == indent) {
ADDC(buffer, i) = '\n';
i++;
p += indent;
run = 1;
- if(*q == ' ' || *q == '\t')
+ if (*q == ' ' || *q == '\t')
p++;
else
break;
@@ -434,39 +448,44 @@ dolist(const char *begin, const char *end, int newblock) {
fputs(ul ? "</ul>\n" : "</ol>\n", stdout);
free(buffer);
p--;
- while(*(--p) == '\n');
+ while (*(--p) == '\n')
+ ;
+
return -(p - begin + 1);
}
int
-doparagraph(const char *begin, const char *end, int newblock) {
+doparagraph(const char *begin, const char *end, int newblock)
+{
const char *p;
- if(!newblock)
+ if (!newblock)
return 0;
p = strstr(begin, "\n\n");
- if(!p || p > end)
+ if (!p || p > end)
p = end;
- if(p - begin <= 1)
+ if (p - begin <= 1)
return 0;
fputs("<p>", stdout);
process(begin, p, 0);
fputs("</p>\n", stdout);
+
return -(p - begin);
}
int
-doreplace(const char *begin, const char *end, int newblock) {
+doreplace(const char *begin, const char *end, int newblock)
+{
unsigned int i, l;
- for(i = 0; i < LENGTH(insert); i++)
- if(strncmp(insert[i][0], begin, strlen(insert[i][0])) == 0)
+ for (i = 0; i < LENGTH(insert); i++)
+ if (strncmp(insert[i][0], begin, strlen(insert[i][0])) == 0)
fputs(insert[i][1], stdout);
- for(i = 0; i < LENGTH(replace); i++) {
+ for (i = 0; i < LENGTH(replace); i++) {
l = strlen(replace[i][0]);
- if(end - begin < l)
+ if (end - begin < l)
continue;
- if(strncmp(replace[i][0], begin, l) == 0) {
+ if (strncmp(replace[i][0], begin, l) == 0) {
fputs(replace[i][1], stdout);
return l;
}
@@ -475,13 +494,14 @@ doreplace(const char *begin, const char *end, int newbloc…
}
int
-doshortlink(const char *begin, const char *end, int newblock) {
+doshortlink(const char *begin, const char *end, int newblock)
+{
const char *p, *c;
int ismail = 0;
- if(*begin != '<')
+ if (*begin != '<')
return 0;
- for(p = begin + 1; p != end; p++) {
+ for (p = begin + 1; p != end; p++) {
switch(*p) {
case ' ':
case '\t':
@@ -492,20 +512,20 @@ doshortlink(const char *begin, const char *end, int newbl…
ismail = -1;
break;
case '@':
- if(ismail == 0)
+ if (ismail == 0)
ismail = 1;
break;
case '>':
- if(ismail == 0)
+ if (ismail == 0)
return 0;
fputs("<a href=\"", stdout);
- if(ismail == 1) {
+ if (ismail == 1) {
/* mailto: */
fputs("&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:", stdo…
- for(c = begin + 1; *c != '>'; c++)
+ for (c = begin + 1; *c != '>'; c++)
fprintf(stdout, "&#%u;", *c);
fputs("\">", stdout);
- for(c = begin + 1; *c != '>'; c++)
+ for (c = begin + 1; *c != '>'; c++)
fprintf(stdout, "&#%u;", *c);
}
else {
@@ -521,13 +541,14 @@ doshortlink(const char *begin, const char *end, int newbl…
}
int
-dosurround(const char *begin, const char *end, int newblock) {
+dosurround(const char *begin, const char *end, int newblock)
+{
unsigned int i, l;
const char *p, *start, *stop;
- for(i = 0; i < LENGTH(surround); i++) {
+ for (i = 0; i < LENGTH(surround); i++) {
l = strlen(surround[i].search);
- if(end - begin < 2*l || strncmp(begin, surround[i].search, l) …
+ if (end - begin < 2*l || strncmp(begin, surround[i].search, l)…
continue;
start = begin + l;
p = start - 1;
@@ -537,7 +558,7 @@ dosurround(const char *begin, const char *end, int newblock…
} while(p && p[-1] == '\\');
if (p && p[-1] != '\\')
stop = p;
- if(!stop || stop < start || stop >= end)
+ if (!stop || stop < start || stop >= end)
continue;
fputs(surround[i].before, stdout);
@@ -548,7 +569,7 @@ dosurround(const char *begin, const char *end, int newblock…
l++;
}
- if(surround[i].process)
+ if (surround[i].process)
process(start, stop, 0);
else
hprint(start, stop);
@@ -559,22 +580,25 @@ dosurround(const char *begin, const char *end, int newblo…
}
int
-dounderline(const char *begin, const char *end, int newblock) {
+dounderline(const char *begin, const char *end, int newblock)
+{
unsigned int i, j, l;
const char *p;
- if(!newblock)
+ if (!newblock)
return 0;
p = begin;
- for(l = 0; p + l != end && p[l] != '\n'; l++);
+ for (l = 0; p + l != end && p[l] != '\n'; l++)
+ ;
p += l + 1;
- if(l == 0)
+ if (l == 0)
return 0;
- for(i = 0; i < LENGTH(underline); i++) {
- for(j = 0; p + j != end && p[j] != '\n' && p[j] == underline[i…
- if(j >= l) {
+ for (i = 0; i < LENGTH(underline); i++) {
+ for (j = 0; p + j != end && p[j] != '\n' && p[j] == underline[…
+ ;
+ if (j >= l) {
fputs(underline[i].before, stdout);
- if(underline[i].process)
+ if (underline[i].process)
process(begin, begin + l, 0);
else
hprint(begin, begin + l);
@@ -586,27 +610,29 @@ dounderline(const char *begin, const char *end, int newbl…
}
void *
-ereallocz(void *p, size_t size) {
+ereallocz(void *p, size_t size)
+{
void *res;
res = realloc(p, size);
- if(!res)
+ if (!res)
eprint("realloc: %zu bytes\n", size);
return res;
}
void
-hprintattr(const char *begin, const char *end) {
+hprintattr(const char *begin, const char *end)
+{
const char *p;
- for(p = begin; p != end; p++) {
- if(*p == '&')
+ for (p = begin; p != end; p++) {
+ if (*p == '&')
fputs("&amp;", stdout);
- else if(*p == '"')
+ else if (*p == '"')
fputs("&quot;", stdout);
- else if(*p == '>')
+ else if (*p == '>')
fputs("&gt;", stdout);
- else if(*p == '<')
+ else if (*p == '<')
fputs("&lt;", stdout);
else
fputc(*p, stdout);
@@ -614,15 +640,16 @@ hprintattr(const char *begin, const char *end) {
}
void
-hprint(const char *begin, const char *end) {
+hprint(const char *begin, const char *end)
+{
const char *p;
- for(p = begin; p != end; p++) {
- if(*p == '&')
+ for (p = begin; p != end; p++) {
+ if (*p == '&')
fputs("&amp;", stdout);
- else if(*p == '>')
+ else if (*p == '>')
fputs("&gt;", stdout);
- else if(*p == '<')
+ else if (*p == '<')
fputs("&lt;", stdout);
else
fputc(*p, stdout);
@@ -630,31 +657,33 @@ hprint(const char *begin, const char *end) {
}
void
-process(const char *begin, const char *end, int newblock) {
+process(const char *begin, const char *end, int newblock)
+{
const char *p, *q;
int affected;
unsigned int i;
- for(p = begin; p < end;) {
- if(newblock)
- while(*p == '\n')
- if(++p == end)
+ for (p = begin; p < end;) {
+ if (newblock)
+ while (*p == '\n')
+ if (++p == end)
return;
affected = 0;
- for(i = 0; i < LENGTH(parsers) && !affected; i++)
+ for (i = 0; i < LENGTH(parsers) && !affected; i++)
affected = parsers[i](p, end, newblock);
p += abs(affected);
- if(!affected) {
- if(nohtml)
+ if (!affected) {
+ if (nohtml)
hprint(p, p + 1);
else
fputc(*p, stdout);
p++;
}
- for(q = p; q != end && *q == '\n'; q++);
- if(q == end)
+ for (q = p; q != end && *q == '\n'; q++)
+ ;
+ if (q == end)
return;
- else if(p[0] == '\n' && p + 1 != end && p[1] == '\n')
+ else if (p[0] == '\n' && p + 1 != end && p[1] == '\n')
newblock = 1;
else
newblock = affected < 0;
@@ -662,12 +691,14 @@ process(const char *begin, const char *end, int newblock)…
}
void
-usage(char **argv) {
+usage(char **argv)
+{
eprint("usage: %s [-n]\n\t-n escape HTML strictly\n", argv[0]);
}
int
-main(int argc, char *argv[]) {
+main(int argc, char *argv[])
+{
char *buffer = NULL;
int s, i;
unsigned long len, bsize;
@@ -676,14 +707,14 @@ main(int argc, char *argv[]) {
if (pledge("stdio", NULL) == -1)
eprint("pledge");
- for(i = 1; i < argc; i++) {
- if(!strcmp("-v", argv[i]))
+ for (i = 1; i < argc; i++) {
+ if (!strcmp("-v", argv[i]))
eprint("simple markup %s\n",VERSION);
- else if(!strcmp("-n", argv[i]))
+ else if (!strcmp("-n", argv[i]))
nohtml = 1;
- else if(argv[i][0] != '-' || !strcmp("-h", argv[i]))
+ else if (argv[i][0] != '-' || !strcmp("-h", argv[i]))
usage(argv);
- else if(!strcmp("--", argv[i])) {
+ else if (!strcmp("--", argv[i])) {
i++;
break;
}
@@ -693,16 +724,17 @@ main(int argc, char *argv[]) {
bsize = 2 * BUFSIZ;
buffer = ereallocz(buffer, bsize);
len = 0;
- while((s = fread(buffer + len, 1, BUFSIZ, source))) {
+ while ((s = fread(buffer + len, 1, BUFSIZ, source))) {
len += s;
- if(BUFSIZ + len + 1 > bsize) {
+ if (BUFSIZ + len + 1 > bsize) {
bsize += BUFSIZ;
- if(!(buffer = realloc(buffer, bsize)))
+ if (!(buffer = realloc(buffer, bsize)))
eprint("realloc failed.");
}
}
buffer[len] = '\0';
process(buffer, buffer + len, 1);
free(buffer);
- return EXIT_SUCCESS;
+
+ return 0;
}
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.