Bug tracking string is now kinda C++

This commit is contained in:
2025-04-15 20:12:08 -04:00
parent 5c79999603
commit d001d2609b
4 changed files with 18 additions and 10 deletions

View File

@ -71,7 +71,6 @@ BrowserWindow *a_Bw_new(void)
bw->Docs = dList_new(8); bw->Docs = dList_new(8);
bw->num_page_bugs = 0; bw->num_page_bugs = 0;
bw->page_bugs = dStr_new("");
bw->zoom = 1.0; bw->zoom = 1.0;
@ -107,7 +106,6 @@ BrowserWindow::~BrowserWindow()
delete this->meta_refresh_url; delete this->meta_refresh_url;
dStr_free(this->page_bugs, 1);
break; break;
} }
} }

View File

@ -68,7 +68,7 @@ struct BrowserWindow {
/** HTML-bugs detected at parse time */ /** HTML-bugs detected at parse time */
int num_page_bugs; int num_page_bugs;
Dstr *page_bugs; std::string page_bugs;
/* Zoom factor */ /* Zoom factor */
float zoom; float zoom;

View File

@ -24,6 +24,9 @@
#include <errno.h> #include <errno.h>
#include <string> #include <string>
#include <sstream>
#include <Alepha/AutoRAII.h>
#include "bw.hh" /* for BrowserWindow */ #include "bw.hh" /* for BrowserWindow */
#include "msg.hh" #include "msg.hh"
@ -156,14 +159,21 @@ void DilloHtml::bugMessage(const char *format, ... )
{ {
va_list argp; va_list argp;
std::ostringstream oss;
if (bw->num_page_bugs) if (bw->num_page_bugs)
dStr_append_c(bw->page_bugs, '\n'); bw->page_bugs+= '\n';
dStr_sprintfa(bw->page_bugs, oss << "HTML warning: line %d, " << getCurrLineNumber();
"HTML warning: line %d, ", bw->page_bugs+= oss.str();
getCurrLineNumber());
va_start(argp, format); va_start(argp, format);
dStr_vsprintfa(bw->page_bugs, format, argp); auto bugs= Alepha::AutoRAII
{
[]{ return dStr_new( "" ); },
[]( auto s ){ dStr_free( s, true ); },
};
dStr_vsprintfa(bugs, format, argp);
va_end(argp); va_end(argp);
bw->page_bugs+= bugs->str;
a_UIcmd_set_bug_prog(bw, ++bw->num_page_bugs); a_UIcmd_set_bug_prog(bw, ++bw->num_page_bugs);
} }
@ -527,7 +537,7 @@ void DilloHtml::initDw()
dw = stack->getRef(0)->textblock = new Textblock (prefs.limit_text_width); dw = stack->getRef(0)->textblock = new Textblock (prefs.limit_text_width);
bw->num_page_bugs = 0; bw->num_page_bugs = 0;
dStr_truncate(bw->page_bugs, 0); bw->page_bugs.clear();
} }
/** /**

View File

@ -1344,7 +1344,7 @@ void a_UIcmd_view_page_bugs(void *vbw)
BrowserWindow *bw = (BrowserWindow*)vbw; BrowserWindow *bw = (BrowserWindow*)vbw;
if (bw->num_page_bugs > 0) { if (bw->num_page_bugs > 0) {
a_Dialog_text_window("Flenser: Detected HTML errors", bw->page_bugs->str); a_Dialog_text_window("Flenser: Detected HTML errors", bw->page_bugs.c_str());
} else { } else {
a_Dialog_msg("Flenser: Good HTML!", "No HTML errors found while parsing!"); a_Dialog_msg("Flenser: Good HTML!", "No HTML errors found while parsing!");
} }