diff --git a/src/elogd.c b/src/elogd.c index 801decef..37685a61 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -5536,8 +5536,8 @@ PATTERN_LIST pattern_list[] = { {"[list]\r", ""}, + {"[/list]\r", ""}, // either or + {"[/list]", ""}, {"[list=", "
    "}, /* headings */ @@ -5573,7 +5573,7 @@ char *email_quote_table = void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str) { - int i, j, k, l, m, interprete_elcode, escape_char; + int i, j, k, l, m, interprete_elcode, escape_char, ordered_list; char *p, *pd, link[1000], link_text[1000], tmp[1000], attrib[1000], hattrib[1000], value[1000], subst[1000], base_url[256], param[256]; @@ -5584,6 +5584,7 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str) } interprete_elcode = TRUE; + ordered_list = FALSE; escape_char = FALSE; j = strlen_retbuf; m = 0; @@ -5713,6 +5714,9 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str) if (interprete_elcode) { + if (stristr(pattern_list[l].pattern, "[list=")) + ordered_list = TRUE; + if (stristr(pattern_list[l].pattern, "[quote")) { if (pattern_list[l].pattern[strlen(pattern_list[l].pattern) - 1] == '=') { i += strlen(pattern_list[l].pattern); @@ -5836,6 +5840,17 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str) sprintf(return_buffer + j, pattern_list[l].subst, attrib); j += strlen(return_buffer + j); + } else if (strncmp(pattern_list[l].pattern, "[/list]", 7) == 0) { + + if (ordered_list) + strcpy(subst, "
"); + else + strcpy(subst, ""); + ordered_list = FALSE; + + strcpy(return_buffer + j, subst); + j += strlen(subst); + i += strlen(pattern_list[l].pattern) - 1; // 1 gets added in for loop... } else { /* simple substitution */