[geany/geany-plugins] e244ea: Markdown: Allow choosing between Discount and peg-markdown at compile time
Matthew Brush
git-noreply at xxxxx
Mon Mar 4 01:27:50 UTC 2013
Branch: refs/heads/master
Author: Matthew Brush <mbrush at codebrainz.ca>
Committer: Matthew Brush <matt at geany.org>
Date: Mon, 04 Mar 2013 01:27:50 UTC
Commit: e244ea510efa17846636d53a24f3893741e3380d
https://github.com/geany/geany-plugins/commit/e244ea510efa17846636d53a24f3893741e3380d
Log Message:
-----------
Markdown: Allow choosing between Discount and peg-markdown at compile time
Modified Paths:
--------------
markdown/src/viewer.c
Modified: markdown/src/viewer.c
36 files changed, 30 insertions(+), 6 deletions(-)
===================================================================
@@ -22,7 +22,11 @@
#include <string.h>
#include <gtk/gtk.h>
#include <webkit/webkitwebview.h>
-#include "markdown_lib.h"
+#ifndef FULL_PRICE
+# include <mkdio.h>
+#else
+# include "markdown_lib.h"
+#endif
#include "viewer.h"
#include "conf.h"
@@ -305,11 +309,31 @@ struct _MarkdownViewerPrivate
if (!self->priv->text) {
update_internal_text(self, "");
}
-
- md_as_html = markdown_to_string(self->priv->text->str, 0, HTML_FORMAT);
- if (md_as_html) {
- html = template_replace(self, md_as_html);
- g_free(md_as_html);
+
+ {
+#ifndef FULL_PRICE /* this version using Discount markdown library
+ * is faster but may invoke endless discussions
+ * about the GPL and licenses similar to (but the
+ * same as) the old BSD 4-clause license being
+ * incompatible */
+ MMIOT *doc;
+ doc = mkd_string(self->priv->text->str, self->priv->text->len, 0);
+ mkd_compile(doc, 0);
+ if (mkd_document(doc, &md_as_html) != EOF) {
+ html = template_replace(self, md_as_html);
+ }
+ mkd_cleanup(doc);
+#else /* this version is slower but is unquestionably GPL-friendly
+ * and the lib also has much more readable/maintainable code */
+
+ md_as_html = markdown_to_string(self->priv->text->str, 0, HTML_FORMAT);
+ if (md_as_html) {
+ html = template_replace(self, md_as_html);
+ g_free(md_as_html); /* TODO: become 100% convinced this wasn't
+ * malloc()'d outside of GLIB functions with
+ * libc allocator (probably same anyway). */
+ }
+#endif
}
return html;
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list