diff --git a/srohtml.c b/srohtml.c index 168f3a5..698ad44 100644 --- a/srohtml.c +++ b/srohtml.c @@ -6,7 +6,7 @@ /* macros */ #define BODY_START_SIZE 26624 /* 26 x 1024 byte = 26 KiB */ -#define CLS_MAX 8 +#define CLS_MAX 16 #define DATE_LEN 10 #define FAVICON "data:image/gif;base64,R0lGODlhEAAQAKEAAAAAcP///wAAcAAAcCH5BAEKAAIALAAAAAAQABAAQAIwlBWZxxwAQWjtTQRvlZhTnGSfYT3eZ3WaE4mjGa1UasoH7c6tzYanfqmhJMKXglcAADs=" #define LANG_LEN 2 @@ -47,6 +47,7 @@ static void cmd_ls(void); static void cmd_no(const char *line); static void cmd_p(void); static void cmd_pd(const char *line); +static void cmd_q(const char *line); static void cmd_st(const char *line); static void cmd_tm(const char *line); static void cmd_ur(const char *line); @@ -145,6 +146,8 @@ cmd(char *line) cmd_p(); else if (!strncmp(line, "PD", cmdlen)) cmd_pd(line); + else if (!strncmp(line, "Q", cmdlen)) + cmd_q(line); else if (!strncmp(line, "ST", cmdlen)) cmd_st(line); else if (!strncmp(line, "TI", cmdlen)) @@ -403,6 +406,34 @@ cmd_pd(const char *line) strncpy(pub_date, line, DATE_LEN); } +void +cmd_q(const char *line) +{ + char *cite; + + cite = NULL; + + /* move past "Q" */ + line += 1; + /* move past argument, if found it */ + line += stread_param(line, &cite); + + if (space) + string_cat(&body, " "); + string_cat(&body, ""); + space = 0; + strcpy(closure, "

"); + + free(cite); + +} + void cmd_st(const char *line) { @@ -412,7 +443,7 @@ cmd_st(const char *line) if (line[0] == ' ') line++; - if (space) + if (space && body.str[body.len - 1] != '\'') string_cat(&body, " "); string_cat(&body, ""); string_cat(&body, line); @@ -667,6 +698,7 @@ main (int argc, char *argv[]) else { if (space && line[0] != '!' && + line[0] != '\'' && line[0] != ',' && line[0] != '.' && line[0] != '.' &&