diff --git a/NT/elogd.vcproj b/NT/elogd.vcproj
index c4976f14..3619cfc5 100755
--- a/NT/elogd.vcproj
+++ b/NT/elogd.vcproj
@@ -316,7 +316,7 @@
>
Enable Smileys = 0|1diff --git a/src/elogd.c b/src/elogd.c index 2ac7540d..d7036acd 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -6035,7 +6035,8 @@ char void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str) { - int i, j, k, l, m, elcode_disabled, elcode_disabled1, escape_char, ordered_list, substituted, inside_table; + int i, j, k, l, m, elcode_disabled, elcode_disabled1, escape_char, ordered_list, substituted, inside_table, + smileys_enabled; char *p, *pd, link[1000], link_text[1000], tmp[1000], attrib[1000], hattrib[1000], value[1000], subst[1000], base_url[256], param[256], *lstr, domain[256]; @@ -6049,10 +6050,15 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str) elcode_disabled1 = FALSE; ordered_list = FALSE; escape_char = FALSE; + smileys_enabled = TRUE; inside_table = 0; j = strlen_retbuf; m = 0; + /* check for smileys */ + if (getcfg(lbs->name, "Enable smileys", tmp, sizeof(tmp)) && atoi(tmp) == 0) + smileys_enabled = FALSE; + /* make lower case copy of str */ lstr = xmalloc(strlen(str) + 1); for (pd = lstr, p = (char *) str; *p; p++, pd++) @@ -6189,6 +6195,18 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str) break; } + /* check for blank before smiley and if smileys are allowed */ + if (l <= 20 && + (str[i - 1] != ' ' && str[i - 1] != '\r' && str[i - 1] != '\n') || + (smileys_enabled == FALSE)) { + strncpy(return_buffer + j, str + i, strlen(pattern_list[l].pattern)); + j += strlen(pattern_list[l].pattern); + i += strlen(pattern_list[l].pattern) - 1; // 1 gets added in for loop... + substituted = TRUE; + + break; + } + if (!elcode_disabled && !elcode_disabled1) { substituted = TRUE;