2020–04–10 - v 6.5.2:
+ +2019–12–28 - v 6.5.1:
Version: 6.4.0
+Version: 6.5.2
This document serves as a description of MultiMarkdown (MMD) v6, as well as a sample document to demonstrate the various features. Specifically, differences from MMD v5 will be pointed out.
diff --git a/QuickStart/QuickStart.pdf b/QuickStart/QuickStart.pdf index 9632066c..24a468ef 100644 Binary files a/QuickStart/QuickStart.pdf and b/QuickStart/QuickStart.pdf differ diff --git a/QuickStart/QuickStart.txt b/QuickStart/QuickStart.txt index 8c2be541..d3da1cdb 100644 --- a/QuickStart/QuickStart.txt +++ b/QuickStart/QuickStart.txt @@ -1,6 +1,6 @@ Title: MultiMarkdown v6 Quick Start Guide Author: Fletcher T. Penney -Version: 6.4.0 +Version: 6.5.2 LaTeX Config: tufte-handout Base Header Level: 3 uuid: 0d6313fa-9135-477e-9c14-7d62c1977833 diff --git a/README.md b/README.md index 8efa17a6..3e31e8b8 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ | ---------- | ------------------------- | | Title: | MultiMarkdown | | Author: | Fletcher T. Penney | -| Date: | 2019-12-28 | -| Copyright: | Copyright © 2016 - 2019 Fletcher T. Penney. | -| Version: | 6.5.1 | +| Date: | 2020-04-10 | +| Copyright: | Copyright © 2016 - 2020 Fletcher T. Penney. | +| Version: | 6.5.2 | master branch: [![Build Status](https://travis-ci.org/fletcher/MultiMarkdown-6.svg?branch=master)](https://travis-ci.org/fletcher/MultiMarkdown-6) develop branch: [![Build Status](https://travis-ci.org/fletcher/MultiMarkdown-6.svg?branch=develop)](https://travis-ci.org/fletcher/MultiMarkdown-6) diff --git a/Sources/libMultiMarkdown/itmz-reader.c b/Sources/libMultiMarkdown/itmz-reader.c index b18d7aba..adea3d50 100644 --- a/Sources/libMultiMarkdown/itmz-reader.c +++ b/Sources/libMultiMarkdown/itmz-reader.c @@ -382,5 +382,7 @@ void mmd_convert_itmz_string(mmd_engine * e, size_t start, size_t len) { // Now convert mapdata.xml -> MMD text token * chain = tokenize_itmz_string(e, 0, e->dstr->currentStringLength); parse_itmz_token_chain(e, chain); + } else { + d_string_free(text, true); } } diff --git a/Sources/libMultiMarkdown/mmd.c b/Sources/libMultiMarkdown/mmd.c index 139ac648..e6d99d96 100644 --- a/Sources/libMultiMarkdown/mmd.c +++ b/Sources/libMultiMarkdown/mmd.c @@ -3049,7 +3049,7 @@ DString * mmd_engine_convert_itmz_to_text(mmd_engine * e) { /// Return string containing engine version. char * mmd_version(void) { - char * result; + char * result = NULL; #ifndef TEST result = my_strdup(MULTIMARKDOWN_VERSION); #endif diff --git a/Sources/libMultiMarkdown/zip.c b/Sources/libMultiMarkdown/zip.c index 38790c0e..5bbeccf2 100644 --- a/Sources/libMultiMarkdown/zip.c +++ b/Sources/libMultiMarkdown/zip.c @@ -196,17 +196,21 @@ mz_bool unzip_archive_to_path(mz_zip_archive * pZip, const char * path) { // Unzip archive (as plain binary data) to specified file path mz_bool unzip_data_to_path(const void * data, size_t size, const char * path) { - mz_zip_archive pZip; - memset(&pZip, 0, sizeof(mz_zip_archive)); + mz_zip_archive * pZip = malloc(sizeof(mz_zip_archive)); + memset(pZip, 0, sizeof(mz_zip_archive)); - mz_bool status = mz_zip_reader_init_mem(&pZip, data, size, 0); + mz_bool status = mz_zip_reader_init_mem(pZip, data, size, 0); if (!status) { fprintf(stderr, "mz_zip_reader_init_mem() failed.\n"); + mz_zip_reader_end(pZip); return status; } - return unzip_archive_to_path(&pZip, path); + status = unzip_archive_to_path(pZip, path); + mz_zip_reader_end(pZip); + free(pZip); + return status; } @@ -247,22 +251,27 @@ mz_bool unzip_file_from_archive(mz_zip_archive * pZip, const char * filename, DS // Extract single file from archive mz_bool unzip_file_from_data(const void * data, size_t size, const char * filename, DString * destination) { - mz_zip_archive pZip; - memset(&pZip, 0, sizeof(mz_zip_archive)); + mz_zip_archive * pZip = malloc(sizeof(mz_zip_archive)); + memset(pZip, 0, sizeof(mz_zip_archive)); - mz_bool status = mz_zip_reader_init_mem(&pZip, data, size, 0); + mz_bool status = mz_zip_reader_init_mem(pZip, data, size, 0); if (!status) { fprintf(stderr, "mz_zip_reader_init_mem() failed.\n"); + mz_zip_reader_end(pZip); return status; } - status = mz_zip_validate_archive(&pZip, 0); + status = mz_zip_validate_archive(pZip, 0); if (!status) { fprintf(stderr, "mz_zip_validate_archive failed.\n"); + mz_zip_reader_end(pZip); return status; } - return unzip_file_from_archive(&pZip, filename, destination); + status = unzip_file_from_archive(pZip, filename, destination); + mz_zip_reader_end(pZip); + free(pZip); + return status; } diff --git a/texmf/tex/latex/mmd6/letterhead/mmd-envelope.sty b/texmf/tex/latex/mmd6/letterhead/mmd-envelope.sty index a2e633f4..64c816e6 100644 --- a/texmf/tex/latex/mmd6/letterhead/mmd-envelope.sty +++ b/texmf/tex/latex/mmd6/letterhead/mmd-envelope.sty @@ -23,8 +23,8 @@ % You should have received a copy of the GNU General Public License % along with this program; if not, write to the % Free Software Foundation, Inc. -% 59 Temple Place, Suite 330 -% Boston, MA 02111-1307 USA +% 51 Franklin Street, Fifth Floor +% Boston, MA 02110-1301 USA \ProvidesPackage{mmd-envelope} diff --git a/texmf/tex/latex/mmd6/letterhead/mmd-letterhead.sty b/texmf/tex/latex/mmd6/letterhead/mmd-letterhead.sty index 889e7966..ec399ed4 100644 --- a/texmf/tex/latex/mmd6/letterhead/mmd-letterhead.sty +++ b/texmf/tex/latex/mmd6/letterhead/mmd-letterhead.sty @@ -23,8 +23,8 @@ % You should have received a copy of the GNU General Public License % along with this program; if not, write to the % Free Software Foundation, Inc. -% 59 Temple Place, Suite 330 -% Boston, MA 02111-1307 USA +% 51 Franklin Street, Fifth Floor +% Boston, MA 02110-1301 USA \ProvidesPackage{mmd-letterhead}