diff options
author | 2006-11-18 19:39:08 +0000 | |
---|---|---|
committer | 2006-11-18 19:39:08 +0000 | |
commit | 805a249ba75b21a0abb0c3849e9381ca1f9d98b0 (patch) | |
tree | b9a25545e117f4edfe72d8227a911b83bee47bf2 | |
parent | 802fe52c86786f741514e4801f026c7315798429 (diff) | |
download | newsboat-805a249ba75b21a0abb0c3849e9381ca1f9d98b0.tar.gz newsboat-805a249ba75b21a0abb0c3849e9381ca1f9d98b0.tar.zst newsboat-805a249ba75b21a0abb0c3849e9381ca1f9d98b0.zip |
Andreas Krennmair:
improved HTML rendering a little bit
-rw-r--r-- | src/htmlrenderer.cpp | 15 | ||||
-rw-r--r-- | src/view.cpp | 2 | ||||
-rw-r--r-- | stfl/itemview.stfl | 2 |
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 |