+ if(!line->text->value) {
+ return;
+ }
+
+ int i; // increment
+ int offset = 0; // text offset
+
+ // move the cursor in position
+ wmove(window, y, x);
+
+ // IS_UNORDERED_LIST_3
+ if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_3)) {
+ offset = next_nonblank(line->text, 0);
+ char prompt[13];
+ strcpy(&prompt[0], CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)? " | " : " ");
+ strcpy(&prompt[4], CHECK_BIT(line->bits, IS_UNORDERED_LIST_2)? " | " : " ");
+
+ if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_EXT)) {
+ strcpy(&prompt[8], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_3)? " | " : " ");
+ } else {
+ strcpy(&prompt[8], " +- ");
+ offset += 2;
+ }
+
+ wprintw(window,
+ "%s", prompt);
+
+ if(!CHECK_BIT(line->bits, IS_CODE))
+ inline_display(window, &line->text->value[offset], colors);
+
+ // IS_UNORDERED_LIST_2
+ } else if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_2)) {
+ offset = next_nonblank(line->text, 0);
+ char prompt[9];
+ strcpy(&prompt[0], CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)? " | " : " ");
+
+ if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_EXT)) {
+ strcpy(&prompt[4], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_2)? " | " : " ");
+ } else {
+ strcpy(&prompt[4], " +- ");
+ offset += 2;
+ }
+
+ wprintw(window,
+ "%s", prompt);
+
+ if(!CHECK_BIT(line->bits, IS_CODE))
+ inline_display(window, &line->text->value[offset], colors);
+
+ // IS_UNORDERED_LIST_1
+ } else if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)) {
+ offset = next_nonblank(line->text, 0);
+ char prompt[5];
+
+ if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_EXT)) {
+ strcpy(&prompt[0], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_1)? " | " : " ");
+ } else {
+ strcpy(&prompt[0], " +- ");
+ offset += 2;
+ }
+
+ wprintw(window,
+ "%s", prompt);
+
+ if(!CHECK_BIT(line->bits, IS_CODE))
+ inline_display(window, &line->text->value[offset], colors);
+ }
+
+ // IS_CODE
+ if(CHECK_BIT(line->bits, IS_CODE)) {
+
+ if (!CHECK_BIT(line->bits, IS_TILDE_CODE)) {
+ // set static offset for code
+ offset = CODE_INDENT;
+ }
+
+ // reverse color for code blocks
+ if(colors)
+ wattron(window, COLOR_PAIR(CP_BLACK));
+
+ // print whole lines
+ waddwstr(window, &line->text->value[offset]);
+ }
+
+ if(!CHECK_BIT(line->bits, IS_UNORDERED_LIST_1) &&
+ !CHECK_BIT(line->bits, IS_UNORDERED_LIST_2) &&
+ !CHECK_BIT(line->bits, IS_UNORDERED_LIST_3) &&
+ !CHECK_BIT(line->bits, IS_CODE)) {
+
+ // IS_QUOTE
+ if(CHECK_BIT(line->bits, IS_QUOTE)) {
+ while(line->text->value[offset] == '>') {
+ // print a reverse color block
+ if(colors) {
+ wattron(window, COLOR_PAIR(CP_BLACK));
+ wprintw(window, "%s", " ");
+ wattron(window, COLOR_PAIR(CP_WHITE));
+ wprintw(window, "%s", " ");
+ } else {
+ wprintw(window, "%s", ">");
+ }
+
+ // find next quote or break
+ offset++;
+ if(line->text->value[offset] == ' ')
+ offset = next_word(line->text, offset);
+ }
+
+ inline_display(window, &line->text->value[offset], colors);