summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Andreas Krennmair <ak@synflood.at> 2006-11-18 19:39:08 +0000
committerGravatar Andreas Krennmair <ak@synflood.at> 2006-11-18 19:39:08 +0000
commit805a249ba75b21a0abb0c3849e9381ca1f9d98b0 (patch)
treeb9a25545e117f4edfe72d8227a911b83bee47bf2
parent802fe52c86786f741514e4801f026c7315798429 (diff)
downloadnewsboat-805a249ba75b21a0abb0c3849e9381ca1f9d98b0.tar.gz
newsboat-805a249ba75b21a0abb0c3849e9381ca1f9d98b0.tar.zst
newsboat-805a249ba75b21a0abb0c3849e9381ca1f9d98b0.zip
Andreas Krennmair:
improved HTML rendering a little bit
-rw-r--r--src/htmlrenderer.cpp15
-rw-r--r--src/view.cpp2
-rw-r--r--stfl/itemview.stfl2
3 files changed, 14 insertions, 5 deletions
diff --git a/src/htmlrenderer.cpp b/src/htmlrenderer.cpp
index a9f638a0..aa12c862 100644
--- a/src/htmlrenderer.cpp
+++ b/src/htmlrenderer.cpp
@@ -1,4 +1,5 @@
#include <htmlrenderer.h>
+#include <iostream>
using namespace noos;
@@ -6,7 +7,8 @@ htmlrenderer::htmlrenderer(unsigned int width) : w(width) { }
std::vector<std::string> htmlrenderer::render(const std::string& source) {
std::vector<std::string> lines;
- std::string curline, cleaned_source;
+ std::string curline;
+ std::string cleaned_source;
const char * begin = source.c_str();
bool addchar = true;
@@ -18,6 +20,9 @@ std::vector<std::string> htmlrenderer::render(const std::string& source) {
char str[2];
str[0] = *begin;
str[1] = '\0';
+ if (str[0] == '\n' || str[0] == '\r') {
+ str[0] = ' ';
+ }
cleaned_source.append(str);
} else {
addchar = false;
@@ -31,6 +36,8 @@ std::vector<std::string> htmlrenderer::render(const std::string& source) {
++begin;
}
+ std::cerr << "cleaned_source: `" << cleaned_source << "'" << std::endl;
+
begin = cleaned_source.c_str();
while (strlen(begin) >= w) {
const char * end = begin + w;
@@ -44,12 +51,12 @@ std::vector<std::string> htmlrenderer::render(const std::string& source) {
} else {
char x[end-begin+1];
strncpy(x,begin,end-begin);
- x[w] = '\0';
+ x[end-begin] = '\0';
curline = x;
}
lines.push_back(curline);
- begin += w;
+ begin += curline.length() + 1;
}
- lines.push_back(begin);
+ lines.push_back(std::string(begin));
return lines;
}
diff --git a/src/view.cpp b/src/view.cpp
index 566b3f4c..ff5d92d6 100644
--- a/src/view.cpp
+++ b/src/view.cpp
@@ -257,6 +257,8 @@ void view::run_itemview(rss_item& item) {
stfl_modify(itemview_form,"article","replace_inner",code.c_str());
+ stfl_set(itemview_form,"articleoffset","0");
+
do {
const char * event = stfl_run(itemview_form,0);
if (!event) continue;
diff --git a/stfl/itemview.stfl b/stfl/itemview.stfl
index 2df3b6d0..031d0e7f 100644
--- a/stfl/itemview.stfl
+++ b/stfl/itemview.stfl
@@ -7,7 +7,7 @@ vbox
textview[article]
style_end:fg=blue,attr=bold
.expand:vh
- .offset:0
+ offset[articleoffset]:0
label#info
text[help]:"q:Quit s:Save o:Open in Browser"
.expand:h