aboutsummaryrefslogtreecommitdiff
path: root/browser.c
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2023-12-08 10:31:42 +0200
committerSyndamia <kamen@syndamia.com>2023-12-08 10:31:42 +0200
commit0382fccd17bdab223166f20541005bf45f113726 (patch)
tree86d8ec0bf5b0f0ac7abf124c7ef246eb77e8677a /browser.c
parent3495fadef2cf2a88f137aa4539fba4146a352658 (diff)
downloadpico-web-0382fccd17bdab223166f20541005bf45f113726.tar
pico-web-0382fccd17bdab223166f20541005bf45f113726.tar.gz
pico-web-0382fccd17bdab223166f20541005bf45f113726.zip
[browser] Implemented initial syntax parsing
Diffstat (limited to 'browser.c')
-rw-r--r--browser.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/browser.c b/browser.c
index c2588d3..fe36782 100644
--- a/browser.c
+++ b/browser.c
@@ -8,8 +8,28 @@
#include <stdio.h>
#include <string.h>
+#include <sds/sds.h>
#include <util.h>
+sds get_page(const int fd_socket) {
+ sds page = sdsempty();
+
+ char buff[512];
+ memset(buff, 0, 512);
+ while (read(fd_socket, buff, 512)) {
+ page = sdscat(page, buff);
+ memset(buff, 0, 512);
+ }
+
+ return page;
+}
+
+void renderPage(const sds page) {
+ sds toPrint = gsub(page, "\\*[^*]*\\*", "emph");
+ write(1, toPrint, sdslen(toPrint));
+ sdsfree(toPrint);
+}
+
int main(int argc, char* argv[]) {
int fd_socket;
herr(fd_socket = socket(AF_INET, SOCK_STREAM, 0), "socket");
@@ -25,13 +45,9 @@ int main(int argc, char* argv[]) {
/* char msg[] = "hello@/test.txt"; */
write(fd_socket, argv[1], strlen(argv[1]));
- char buff[256];
- memset(buff, 0, sizeof(buff));
- while (read(fd_socket, buff, 256)) {
- write(1, buff, strlen(buff));
- memset(buff, 0, sizeof(buff));
- }
- read(fd_socket, buff, 256);
+ sds page = get_page(fd_socket);
+ renderPage(page);
+ sdsfree(page);
close(fd_socket);
}