X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=src%2Fviewer.c;h=ee6fc905df3ae364c0e7d59052dfa0a2c0e9fe97;hb=a1d883fc5b7acbf45fdc80a7806b4d4c21fdcd1f;hp=76dc18c219e3eea1bd2cc28ab84ba78c282f7d52;hpb=6f9f33a6a5c7d677b4f4464218c01580a391cf08;p=smdp.git diff --git a/src/viewer.c b/src/viewer.c index 76dc18c..ee6fc90 100644 --- a/src/viewer.c +++ b/src/viewer.c @@ -114,7 +114,7 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) { if(max_lines + bar_top + bar_bottom + 2 > LINES) fprintf(stderr, "You may need to add additional horizontal rules ('***') to split your file in shorter slides.\n"); if(max_cols > COLS) - fprintf(stderr, "Automatic line wrapping is not supported jet. You may need to shorten some lines by inserting line breaks.\n"); + fprintf(stderr, "Automatic line wrapping is not supported yet. You may need to shorten some lines by inserting line breaks.\n"); return(1); } @@ -368,12 +368,45 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo char *c; // char pointer for iteration char *special = "\\*_`"; // list of interpreted chars cstack_t *stack = cstack_init(); - + if(line->text->text) { int offset = 0; // text offset + // IS_UNORDERED_LIST_3 + if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_3)) { + offset = next_nonblank(line->text, 0); + char format_s[15]; + strcpy(&format_s[0], CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)? " | " : " "); + strcpy(&format_s[4], CHECK_BIT(line->bits, IS_UNORDERED_LIST_2)? " | " : " "); + strcpy(&format_s[8], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_3)? " +- %s" : " `- %s"); + mvwprintw(window, + y, x, + format_s, + &line->text->text[offset + 2]); + + // IS_UNORDERED_LIST_2 + } else if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_2)) { + offset = next_nonblank(line->text, 0); + char format_s[11]; + strcpy(&format_s[0], CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)? " | " : " "); + strcpy(&format_s[4], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_2)? " +- %s" : " `- %s"); + mvwprintw(window, + y, x, + format_s, + &line->text->text[offset + 2]); + + // IS_UNORDERED_LIST_1 + } else if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)) { + offset = next_nonblank(line->text, 0); + char format_s[7]; + strcpy(&format_s[0], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_1)? " +- %s" : " `- %s"); + mvwprintw(window, + y, x, + format_s, + &line->text->text[offset + 2]); + // IS_CODE - if(CHECK_BIT(line->bits, IS_CODE)) { + } else if(CHECK_BIT(line->bits, IS_CODE)) { // set static offset for code offset = CODE_INDENT;