summaryrefslogtreecommitdiff
path: root/src/plain.cc
diff options
context:
space:
mode:
authorJohannes Hofmann <Johannes.Hofmann@gmx.de>2009-05-29 07:51:19 +0200
committerJohannes Hofmann <Johannes.Hofmann@gmx.de>2009-05-29 07:51:19 +0200
commit72c418d40b09451e47c5b6632f3d79e93c65bed2 (patch)
tree8950632e4875955f5392910d82eee80e5eee9798 /src/plain.cc
parentf261111beac6ada3c8973fb91d683db8f9944525 (diff)
style
Diffstat (limited to 'src/plain.cc')
-rw-r--r--src/plain.cc21
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;