--- cgiutils.c.orig 2014-09-17 11:31:28.663823262 +0200 +++ cgiutils.c.orig.patched 2014-10-20 15:33:56.447652550 +0200 @@ -1018,7 +1018,7 @@ /* Most ASCII characters don't get encoded */ if(( *inwcp >= 0x20 && *inwcp <= 0x7e) && - ( !( '"' == *inwcp || '&' == *inwcp || '\'' == *inwcp || + ( !( '"' == *inwcp || '&' == *inwcp || '\'' == *inwcp || ('\\' == *inwcp && 'n' == *( inwcp + 1)) || '<' == *inwcp || '>' == *inwcp))) { wctomb_result = wctomb( mbtemp, *inwcp); if(( wctomb_result > 0) && @@ -1034,10 +1034,11 @@ outstp += 4; } - else if(escape_newlines == TRUE && '\\' == *inwcp && '\n' == *( inwcp + 1)) { + else if(escape_newlines == TRUE && '\\' == *inwcp && 'n' == *( inwcp + 1)) { strncpy( outstp, "
", 4); outstp += 4; inwcp++; /* needed so loop skips two wide characters */ + x++; /* needed also so loop skips two wide characters */ } /* TODO - strip all but allowed HTML tags out... */