summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--html.c60
-rw-r--r--httpd.c3
-rw-r--r--snac.c1
4 files changed, 64 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 52f30a6..d3a45c9 100644
--- a/Makefile
+++ b/Makefile
@@ -17,11 +17,11 @@ dep:
17activitypub.o: activitypub.c xs.h xs_encdec.h xs_json.h xs_curl.h \ 17activitypub.o: activitypub.c xs.h xs_encdec.h xs_json.h xs_curl.h \
18 xs_mime.h xs_openssl.h snac.h 18 xs_mime.h xs_openssl.h snac.h
19data.o: data.c xs.h xs_io.h xs_json.h xs_openssl.h snac.h 19data.o: data.c xs.h xs_io.h xs_json.h xs_openssl.h snac.h
20html.o: html.c xs.h xs_io.h xs_json.h snac.h 20html.o: html.c xs.h xs_io.h xs_json.h xs_regex.h snac.h
21http.o: http.c xs.h xs_io.h xs_encdec.h xs_openssl.h xs_curl.h snac.h 21http.o: http.c xs.h xs_io.h xs_encdec.h xs_openssl.h xs_curl.h snac.h
22httpd.o: httpd.c xs.h xs_io.h xs_encdec.h xs_json.h xs_socket.h \ 22httpd.o: httpd.c xs.h xs_io.h xs_encdec.h xs_json.h xs_socket.h \
23 xs_httpd.h snac.h 23 xs_httpd.h snac.h
24main.o: main.c xs.h xs_io.h xs_encdec.h xs_json.h snac.h 24main.o: main.c xs.h xs_io.h xs_encdec.h xs_json.h snac.h
25snac.o: snac.c xs.h xs_io.h xs_encdec.h xs_json.h xs_curl.h xs_openssl.h \ 25snac.o: snac.c xs.h xs_io.h xs_encdec.h xs_json.h xs_curl.h xs_openssl.h \
26 xs_socket.h xs_httpd.h xs_mime.h snac.h 26 xs_socket.h xs_httpd.h xs_mime.h xs_regex.h snac.h
27webfinger.o: webfinger.c xs.h xs_encdec.h xs_json.h xs_curl.h snac.h 27webfinger.o: webfinger.c xs.h xs_encdec.h xs_json.h xs_curl.h snac.h
diff --git a/html.c b/html.c
index 532c033..052656b 100644
--- a/html.c
+++ b/html.c
@@ -4,6 +4,7 @@
4#include "xs.h" 4#include "xs.h"
5#include "xs_io.h" 5#include "xs_io.h"
6#include "xs_json.h" 6#include "xs_json.h"
7#include "xs_regex.h"
7 8
8#include "snac.h" 9#include "snac.h"
9 10
@@ -15,10 +16,65 @@ d_char *not_really_markdown(char *content, d_char **f_content)
15 int in_blq = 0; 16 int in_blq = 0;
16 xs *list; 17 xs *list;
17 char *p, *v; 18 char *p, *v;
19 xs *wrk = xs_dup(content);
18 20
19 s = xs_str_new(NULL); 21 /* global changes */
22 {
23 /* backticks */
24 xs *ml = xs_regex_matchall(wrk, "`[^`]+`");
25 p = ml;
26
27 while (xs_list_iter(&p, &v)) {
28 xs *s1 = xs_crop(xs_dup(v), 1, -1);
29 xs *s2 = xs_fmt("<code>%s</code>", s1);
30
31 wrk = xs_replace_i(wrk, v, s2);
32 }
33 }
34
35 {
36 /* double asterisks */
37 xs *ml = xs_regex_matchall(wrk, "\\*\\*[^\\*]+\\*\\*");
38 p = ml;
39
40 while (xs_list_iter(&p, &v)) {
41 xs *s1 = xs_crop(xs_dup(v), 2, -2);
42 xs *s2 = xs_fmt("<b>%s</b>", s1);
43
44 wrk = xs_replace_i(wrk, v, s2);
45 }
46 }
47
48 {
49 /* single asterisks */
50 xs *ml = xs_regex_matchall(wrk, "\\*[^\\*]+\\*");
51 p = ml;
52
53 while (xs_list_iter(&p, &v)) {
54 xs *s1 = xs_crop(xs_dup(v), 1, -1);
55 xs *s2 = xs_fmt("<i>%s</i>", s1);
20 56
21 p = list = xs_split(content, "\n"); 57 wrk = xs_replace_i(wrk, v, s2);
58 }
59 }
60
61 {
62 /* urls */
63 xs *ml = xs_regex_matchall(wrk, "https?:/" "/[^ ]+");
64 p = ml;
65
66 while (xs_list_iter(&p, &v)) {
67 xs *s2 = xs_fmt("<a href=\"%s\">%s</a>", v, v);
68
69 wrk = xs_replace_i(wrk, v, s2);
70 }
71 }
72
73 /* now work on lines */
74
75 p = list = xs_split(wrk, "\n");
76
77 s = xs_str_new(NULL);
22 78
23 while (xs_list_iter(&p, &v)) { 79 while (xs_list_iter(&p, &v)) {
24 xs *ss = xs_strip(xs_dup(v)); 80 xs *ss = xs_strip(xs_dup(v));
diff --git a/httpd.c b/httpd.c
index 3746a7f..5b26122 100644
--- a/httpd.c
+++ b/httpd.c
@@ -79,6 +79,9 @@ int server_get_handler(d_char *req, char *q_path,
79 *ctype = "image/png"; 79 *ctype = "image/png";
80 } 80 }
81 81
82 if (status != 0)
83 srv_debug(1, xs_fmt("server_get_handler '%s' %d", q_path, status));
84
82 return status; 85 return status;
83} 86}
84 87
diff --git a/snac.c b/snac.c
index 04c5944..d0ab4e9 100644
--- a/snac.c
+++ b/snac.c
@@ -12,6 +12,7 @@
12#include "xs_socket.h" 12#include "xs_socket.h"
13#include "xs_httpd.h" 13#include "xs_httpd.h"
14#include "xs_mime.h" 14#include "xs_mime.h"
15#include "xs_regex.h"
15 16
16#include "snac.h" 17#include "snac.h"
17 18