diff options
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | src/misc.c | 6 | ||||
-rw-r--r-- | src/misc.h | 2 | ||||
-rw-r--r-- | src/plain.cc | 8 |
4 files changed, 9 insertions, 8 deletions
@@ -114,6 +114,7 @@ dillo-fltk2 - Fixed a segfault bug in VERBATIM mode. - Made image inputs less of a special case by using x,y in ComplexButton. - Made forms show their action URL upon enter/leave mouse events (safety). + - Fixed a memory leak in plain.cc. Patches: place (AKA corvid) +- Fixed a problem with locally-installed dpis. - Added code for optional image loading (nice interface) very advanced! @@ -52,13 +52,13 @@ char *a_Misc_escape_chars(const char *str, const char *esc_set) /* * Takes a string and converts any tabs to spaces. */ -char *a_Misc_expand_tabs(const char *str) +char *a_Misc_expand_tabs(const char *str, int len) { Dstr *New = dStr_new(""); - int len, i, j, pos, old_pos; + int i, j, pos, old_pos; char *val; - if ((len = strlen(str))) { + if (len) { for (pos = 0, i = 0; i < len; i++) { if (str[i] == '\t') { /* Fill with whitespaces until the next tab. */ @@ -10,7 +10,7 @@ extern "C" { char *a_Misc_escape_chars(const char *str, const char *esc_set); -char *a_Misc_expand_tabs(const char *str); +char *a_Misc_expand_tabs(const char *str, int len); int a_Misc_get_content_type_from_data(void *Data, size_t Size,const char **PT); int a_Misc_content_type_check(const char *EntryType, const char *DetectedType); void a_Misc_parse_content_type(const char *str, char **major, char **minor, diff --git a/src/plain.cc b/src/plain.cc index 9a656907..34672e3c 100644 --- a/src/plain.cc +++ b/src/plain.cc @@ -170,8 +170,8 @@ void DilloPlain::write(void *Buf, uint_t BufSize, int Eof) } break; case ST_Eol: - data = dStrndup(Start + i - len, len); - DW2TB(dw)->addText(a_Misc_expand_tabs(data), widgetStyle); + data = a_Misc_expand_tabs(Start + i - len, len); + DW2TB(dw)->addText(data, widgetStyle); DW2TB(dw)->addParbreak(0, widgetStyle); dFree(data); if (Start[i] == '\r' && Start[i + 1] == '\n') ++i; @@ -183,8 +183,8 @@ void DilloPlain::write(void *Buf, uint_t BufSize, int Eof) } Start_Ofs += i - len; if (Eof && len) { - data = dStrndup(Start + i - len, len); - DW2TB(dw)->addText(a_Misc_expand_tabs(data), widgetStyle); + data = a_Misc_expand_tabs(Start + i - len, len); + DW2TB(dw)->addText(data, widgetStyle); DW2TB(dw)->addParbreak(0, widgetStyle); dFree(data); Start_Ofs += len; |