summaryrefslogtreecommitdiffstats
path: root/application/dialogs/UpdateDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'application/dialogs/UpdateDialog.cpp')
-rw-r--r--application/dialogs/UpdateDialog.cpp60
1 files changed, 1 insertions, 59 deletions
diff --git a/application/dialogs/UpdateDialog.cpp b/application/dialogs/UpdateDialog.cpp
index 6e109bcb..4bf27cf8 100644
--- a/application/dialogs/UpdateDialog.cpp
+++ b/application/dialogs/UpdateDialog.cpp
@@ -5,10 +5,8 @@
#include <settings/SettingsObject.h>
#include <Json.h>
-#include <hoedown/html.h>
-#include <hoedown/document.h>
-
#include "BuildConfig.h"
+#include "HoeDown.h"
UpdateDialog::UpdateDialog(bool hasUpdate, QWidget *parent) : QDialog(parent), ui(new Ui::UpdateDialog)
{
@@ -52,62 +50,6 @@ void UpdateDialog::loadChangelog()
dljob->start();
}
-/**
- * hoedown wrapper, because dealing with resource lifetime in C is stupid
- */
-class HoeDown
-{
-public:
- class buffer
- {
- public:
- buffer(size_t unit = 4096)
- {
- buf = hoedown_buffer_new(unit);
- }
- ~buffer()
- {
- hoedown_buffer_free(buf);
- }
- const char * cstr()
- {
- return hoedown_buffer_cstr(buf);
- }
- void put(QByteArray input)
- {
- hoedown_buffer_put(buf, (uint8_t *) input.data(), input.size());
- }
- const uint8_t * data() const
- {
- return buf->data;
- }
- size_t size() const
- {
- return buf->size;
- }
- hoedown_buffer * buf;
- } ib, ob;
- HoeDown()
- {
- renderer = hoedown_html_renderer_new((hoedown_html_flags) 0,0);
- document = hoedown_document_new(renderer, (hoedown_extensions) 0, 8);
- }
- ~HoeDown()
- {
- hoedown_document_free(document);
- hoedown_html_renderer_free(renderer);
- }
- QString process(QByteArray input)
- {
- ib.put(input);
- hoedown_document_render(document, ob.buf, ib.data(), ib.size());
- return ob.cstr();
- }
-private:
- hoedown_document * document;
- hoedown_renderer * renderer;
-};
-
QString reprocessMarkdown(QByteArray markdown)
{
HoeDown hoedown;