diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-05-29 07:51:19 +0200 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2009-05-29 07:51:19 +0200 |
commit | 72c418d40b09451e47c5b6632f3d79e93c65bed2 (patch) | |
tree | 8950632e4875955f5392910d82eee80e5eee9798 /src/plain.cc | |
parent | f261111beac6ada3c8973fb91d683db8f9944525 (diff) |
style
Diffstat (limited to 'src/plain.cc')
-rw-r--r-- | src/plain.cc | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/plain.cc b/src/plain.cc index 1ba0b0e3..870cc5a9 100644 --- a/src/plain.cc +++ b/src/plain.cc @@ -135,6 +135,7 @@ bool DilloPlain::PlainEventReceiver::buttonPress (Widget *widget, return false; } +#define MAXWORD 500 /* * Here we parse plain text and put it into the page structure. * (This function is called by Plain_callback whenever there's new data) @@ -161,7 +162,15 @@ void DilloPlain::write(void *Buf, uint_t BufSize, int Eof) break; case ST_Eol: data = a_Misc_expand_tabs(Start + i - len, len); - DW2TB(dw)->addText(data, widgetStyle); + char *dp = data; + while (strlen (dp) > MAXWORD) { + char save = data[MAXWORD]; + dp[MAXWORD] = '\0'; + DW2TB(dw)->addText(dp, widgetStyle); + dp[MAXWORD] = save; + dp += MAXWORD; + } + DW2TB(dw)->addText(dp, widgetStyle); DW2TB(dw)->addParbreak(0, widgetStyle); dFree(data); if (Start[i] == '\r' && Start[i + 1] == '\n') ++i; @@ -174,7 +183,15 @@ void DilloPlain::write(void *Buf, uint_t BufSize, int Eof) Start_Ofs += i - len; if (Eof && len) { data = a_Misc_expand_tabs(Start + i - len, len); - DW2TB(dw)->addText(data, widgetStyle); + char *dp = data; + while (strlen (dp) > MAXWORD) { + char save = data[MAXWORD]; + dp[MAXWORD] = '\0'; + DW2TB(dw)->addText(dp, widgetStyle); + dp[MAXWORD] = save; + dp += MAXWORD; + } + DW2TB(dw)->addText(dp, widgetStyle); DW2TB(dw)->addParbreak(0, widgetStyle); dFree(data); Start_Ofs += len; |