Skip to content

Commit f198973

Browse files
committed
Merge branch 'release/6.2.3'
2 parents 97503e5 + 5381140 commit f198973

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+2355
-1128
lines changed

.astylerc

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88

99
# Indents
10-
--indent=tab=4
10+
--indent=force-tab=4
1111

1212

1313
# Switch statements

CMakeLists.txt

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ cmake_minimum_required (VERSION 2.6)
88
set (My_Project_Title "MultiMarkdown")
99
set (My_Project_Description "Lightweight markup processor to produce HTML, LaTeX, and more.")
1010
set (My_Project_Author "Fletcher T. Penney")
11-
set (My_Project_Revised_Date "2017-10-13")
11+
set (My_Project_Revised_Date "2017-11-20")
1212
set (My_Project_Version_Major 6)
1313
set (My_Project_Version_Minor 2)
14-
set (My_Project_Version_Patch 2)
14+
set (My_Project_Version_Patch 3)
1515

1616
set (My_Project_Version "${My_Project_Version_Major}.${My_Project_Version_Minor}.${My_Project_Version_Patch}")
1717

@@ -183,6 +183,7 @@ set(src_files
183183
Sources/libMultiMarkdown/critic_markup.c
184184
Sources/libMultiMarkdown/d_string.c
185185
Sources/libMultiMarkdown/epub.c
186+
Sources/libMultiMarkdown/file.c
186187
Sources/libMultiMarkdown/fodt.c
187188
Sources/libMultiMarkdown/html.c
188189
Sources/libMultiMarkdown/latex.c
@@ -214,6 +215,7 @@ set(header_files
214215
Sources/libMultiMarkdown/critic_markup.h
215216
Sources/libMultiMarkdown/include/d_string.h
216217
Sources/libMultiMarkdown/epub.h
218+
Sources/libMultiMarkdown/file.h
217219
Sources/libMultiMarkdown/fodt.h
218220
Sources/libMultiMarkdown/html.h
219221
Sources/libMultiMarkdown/latex.h
211 Bytes
Binary file not shown.

DevelopmentNotes/DevelopmentNotes.fodt

+73-12
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ office:mimetype="application/vnd.oasis.opendocument.text">
276276
<office:meta>
277277
<dc:title>MultiMarkdown v6 Development Notes</dc:title>
278278
<dc:creator>Fletcher T. Penney</dc:creator>
279-
<meta:user-defined meta:name="date">2017-10-13</meta:user-defined>
279+
<meta:user-defined meta:name="date">2017-11-20</meta:user-defined>
280280
<meta:user-defined meta:name="uuid">dd2d8e76-dc2d-416d-9acd-5395d20871c2</meta:user-defined>
281281
</office:meta>
282282
<office:body>
@@ -531,7 +531,7 @@ added up and slowed down performance.</text:p>
531531

532532
<text:p text:style-name="Standard">After reading for a bit, I ended up coming up with an approach that uses
533533
larger chunks of memory. I allocate pools of of memory in large slabs for
534-
smaller &#8220;objects&#8221;&quot;. For example, I allocate memory for 1024 tokens at a
534+
smaller &quot;objects. For example, I allocate memory for 1024 tokens at a
535535
single time, and then dole that memory out as needed. When the slab is empty,
536536
a new one is allocated. This dramatically improved performance.</text:p>
537537

@@ -566,7 +566,7 @@ measurable difference.</text:p>
566566
<text:p text:style-name="Standard">I experimented with different approaches to creating the output after parsing.
567567
I tried printing directly to <text:span text:style-name="Source_20_Text">stdout</text:span>, and even played with different
568568
buffering settings. None of those seemed to work well, and all were slower
569-
than using the <text:span text:style-name="Source_20_Text">d_string</text:span> approach (formerly call <text:span text:style-name="Source_20_Text">GString</text:span> in MMD 5).</text:p>
569+
than using the <text:span text:style-name="Source_20_Text">d_string</text:span> approach (formerly called <text:span text:style-name="Source_20_Text">GString</text:span> in MMD 5).</text:p>
570570

571571
<text:h text:outline-level="4"><text:bookmark text:name="fastsearches"/>Fast Searches </text:h>
572572

@@ -684,10 +684,10 @@ application with every release.</text:p>
684684

685685
<text:h text:outline-level="4"><text:bookmark text:name="fuzztesting"/>Fuzz Testing </text:h>
686686

687-
<text:p text:style-name="Standard">I was not familiar with the concept of <text:a xlink:type="simple" xlink:href="#fuzztesting">Fuzz Testing</text:a>
688-
(https://en.wikipedia.org/wiki/Fuzzing) until a user mentioned something about
689-
it to me a year or two ago. I had never used it before, but it seemed like a
690-
good idea. I implement it in two ways.</text:p>
687+
<text:p text:style-name="Standard">I was not familiar with the concept of
688+
<text:a xlink:type="simple" xlink:href="https://en.wikipedia.org/wiki/Fuzzing">Fuzz Testing</text:a> until a user mentioned
689+
something about it to me a year or two ago. I had never used it before, but
690+
it seemed like a good idea. I implemented it in two ways.</text:p>
691691

692692
<text:p text:style-name="Standard">The first is that I created a simplified version of the line parser that
693693
simply accepts various combinations of line type identifiers to see if they
@@ -702,13 +702,13 @@ several combinations of lines that did not pass.</text:p>
702702
<text:p text:style-name="Standard"><text:span text:style-name="MMD-Bold">NOTE</text:span>: This does not verify accurate parsing, simply that the parser does
703703
not crash by an unacceptable combination of lines.</text:p>
704704

705-
<text:p text:style-name="Standard">The second form of fuzz testing I have started using more recently. This is
706-
using the <text:a xlink:type="simple" xlink:href="http://lcamtuf.coredump.cx/afl/">American fuzzy lop</text:a> program to try
707-
to find text input that crashes MMD. This works by taking sample input (e.g.
708-
files from the test suite), modifying them slightly, and trying the modified
705+
<text:p text:style-name="Standard">The second form of fuzz testing I started using later. This is using the
706+
<text:a xlink:type="simple" xlink:href="http://lcamtuf.coredump.cx/afl/">American fuzzy lop</text:a> program to try to find
707+
text input that crashes MMD. This works by taking sample input (e.g. files
708+
from the test suite), modifying them slightly, and trying the modified
709709
versions. Do this over and over and over, and some interesting edge cases are
710710
sometimes identified. I have found some interesting edge cases this way.
711-
Definitely a very useful tool!</text:p>
711+
Definitely a useful tool!</text:p>
712712

713713
<text:h text:outline-level="4"><text:bookmark text:name="unittesting"/>Unit Testing </text:h>
714714

@@ -762,6 +762,67 @@ TextBundle/TextPack, OpenDocument, etc.</text:p></text:list-item>
762762
<text:h text:outline-level="3"><text:bookmark text:name="changelog"/>Changelog </text:h>
763763

764764
<text:list text:style-name="L1">
765+
<text:list-item>
766+
<text:p text:style-name="Standard">2017&#8211;11&#8211;20 - v 6.2.3:</text:p>
767+
768+
<text:list text:style-name="L1">
769+
<text:list-item>
770+
<text:p text:style-name="P1">
771+
CHANGED: Fix typos</text:p></text:list-item>
772+
773+
<text:list-item>
774+
<text:p text:style-name="P1">
775+
CHANGED: Update superscript/subscript algorithm to allow leading instances</text:p></text:list-item>
776+
777+
<text:list-item>
778+
<text:p text:style-name="P1">
779+
FIXED: Fix bug with multiple footnotes in single paragraph when exporting to LaTeX</text:p></text:list-item>
780+
781+
<text:list-item>
782+
<text:p text:style-name="P1">
783+
FIXED: Fix potential NULL pointer dereference</text:p></text:list-item>
784+
785+
<text:list-item>
786+
<text:p text:style-name="P1">
787+
FIXED: Fix potential bug</text:p></text:list-item>
788+
789+
<text:list-item>
790+
<text:p text:style-name="P1">
791+
FIXED: Prevent pointer overflow</text:p></text:list-item>
792+
793+
<text:list-item>
794+
<text:p text:style-name="P1">
795+
FIXED: Strip UTF-8 BOM from main files, not just transcluded files</text:p></text:list-item>
796+
797+
<text:list-item>
798+
<text:p text:style-name="P1">
799+
UPDATED: Add HTML comment test cases to further demonstrate</text:p></text:list-item>
800+
801+
<text:list-item>
802+
<text:p text:style-name="P1">
803+
UPDATED: Adjust libMultiMarkdown.h so it does not recursively include other files</text:p></text:list-item>
804+
805+
<text:list-item>
806+
<text:p text:style-name="P1">
807+
UPDATED: Fix issue with AStyle indent settings</text:p></text:list-item>
808+
809+
<text:list-item>
810+
<text:p text:style-name="P1">
811+
UPDATED: Refactor file utilities into file.c/h</text:p></text:list-item>
812+
813+
<text:list-item>
814+
<text:p text:style-name="P1">
815+
UPDATED: Silence Xcode static analyzer false positives</text:p></text:list-item>
816+
817+
<text:list-item>
818+
<text:p text:style-name="P1">
819+
UPDATED: Silence analyzer warnings</text:p></text:list-item>
820+
821+
<text:list-item>
822+
<text:p text:style-name="Standard">UPDATED: Update function name in swift file</text:p></text:list-item>
823+
824+
</text:list></text:list-item>
825+
765826
<text:list-item>
766827
<text:p text:style-name="Standard">2017&#8211;10&#8211;13 - v 6.2.2.:</text:p>
767828

DevelopmentNotes/DevelopmentNotes.html

+30-12
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<meta charset="utf-8"/>
55
<title>MultiMarkdown v6 Development Notes</title>
66
<meta name="author" content="Fletcher T. Penney"/>
7-
<meta name="date" content="2017-10-13"/>
7+
<meta name="date" content="2017-11-20"/>
88
<meta name="uuid" content="dd2d8e76-dc2d-416d-9acd-5395d20871c2"/>
99
</head>
1010
<body>
@@ -209,7 +209,7 @@ <h4 id="memoryallocation">Memory Allocation </h4>
209209

210210
<p>After reading for a bit, I ended up coming up with an approach that uses
211211
larger chunks of memory. I allocate pools of of memory in large slabs for
212-
smaller &#8220;objects&#8221;&quot;. For example, I allocate memory for 1024 tokens at a
212+
smaller &quot;objects. For example, I allocate memory for 1024 tokens at a
213213
single time, and then dole that memory out as needed. When the slab is empty,
214214
a new one is allocated. This dramatically improved performance.</p>
215215

@@ -244,7 +244,7 @@ <h4 id="outputbuffering">Output Buffering </h4>
244244
<p>I experimented with different approaches to creating the output after parsing.
245245
I tried printing directly to <code>stdout</code>, and even played with different
246246
buffering settings. None of those seemed to work well, and all were slower
247-
than using the <code>d_string</code> approach (formerly call <code>GString</code> in MMD 5).</p>
247+
than using the <code>d_string</code> approach (formerly called <code>GString</code> in MMD 5).</p>
248248

249249
<h4 id="fastsearches">Fast Searches </h4>
250250

@@ -362,10 +362,10 @@ <h4 id="testsuite">Test Suite </h4>
362362

363363
<h4 id="fuzztesting">Fuzz Testing </h4>
364364

365-
<p>I was not familiar with the concept of <a href="#fuzztesting">Fuzz Testing</a>
366-
(https://en.wikipedia.org/wiki/Fuzzing) until a user mentioned something about
367-
it to me a year or two ago. I had never used it before, but it seemed like a
368-
good idea. I implement it in two ways.</p>
365+
<p>I was not familiar with the concept of
366+
<a href="https://en.wikipedia.org/wiki/Fuzzing">Fuzz Testing</a> until a user mentioned
367+
something about it to me a year or two ago. I had never used it before, but
368+
it seemed like a good idea. I implemented it in two ways.</p>
369369

370370
<p>The first is that I created a simplified version of the line parser that
371371
simply accepts various combinations of line type identifiers to see if they
@@ -380,13 +380,13 @@ <h4 id="fuzztesting">Fuzz Testing </h4>
380380
<p><strong>NOTE</strong>: This does not verify accurate parsing, simply that the parser does
381381
not crash by an unacceptable combination of lines.</p>
382382

383-
<p>The second form of fuzz testing I have started using more recently. This is
384-
using the <a href="http://lcamtuf.coredump.cx/afl/">American fuzzy lop</a> program to try
385-
to find text input that crashes <abbr title="MultiMarkdown">MMD</abbr>. This works by taking sample input (e.g.
386-
files from the test suite), modifying them slightly, and trying the modified
383+
<p>The second form of fuzz testing I started using later. This is using the
384+
<a href="http://lcamtuf.coredump.cx/afl/">American fuzzy lop</a> program to try to find
385+
text input that crashes <abbr title="MultiMarkdown">MMD</abbr>. This works by taking sample input (e.g. files
386+
from the test suite), modifying them slightly, and trying the modified
387387
versions. Do this over and over and over, and some interesting edge cases are
388388
sometimes identified. I have found some interesting edge cases this way.
389-
Definitely a very useful tool!</p>
389+
Definitely a useful tool!</p>
390390

391391
<h4 id="unittesting">Unit Testing </h4>
392392

@@ -432,6 +432,24 @@ <h3 id="dependencieslibraries">Dependencies/Libraries </h3>
432432
<h3 id="changelog">Changelog </h3>
433433

434434
<ul>
435+
<li><p>2017&#8211;11&#8211;20 - v 6.2.3:</p>
436+
437+
<ul>
438+
<li>CHANGED: Fix typos</li>
439+
<li>CHANGED: Update superscript/subscript algorithm to allow leading instances</li>
440+
<li>FIXED: Fix bug with multiple footnotes in single paragraph when exporting to LaTeX</li>
441+
<li>FIXED: Fix potential NULL pointer dereference</li>
442+
<li>FIXED: Fix potential bug</li>
443+
<li>FIXED: Prevent pointer overflow</li>
444+
<li>FIXED: Strip UTF-8 BOM from main files, not just transcluded files</li>
445+
<li>UPDATED: Add HTML comment test cases to further demonstrate</li>
446+
<li>UPDATED: Adjust libMultiMarkdown.h so it does not recursively include other files</li>
447+
<li>UPDATED: Fix issue with AStyle indent settings</li>
448+
<li>UPDATED: Refactor file utilities into file.c/h</li>
449+
<li>UPDATED: Silence Xcode static analyzer false positives</li>
450+
<li>UPDATED: Silence analyzer warnings</li>
451+
<li>UPDATED: Update function name in swift file</li>
452+
</ul></li>
435453
<li><p>2017&#8211;10&#8211;13 - v 6.2.2.:</p>
436454

437455
<ul>

DevelopmentNotes/DevelopmentNotes.pdf

392 Bytes
Binary file not shown.

DevelopmentNotes/DevelopmentNotes.txt

+30-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Title: MultiMarkdown v6 Development Notes
22
Author: Fletcher T. Penney
3-
Date: 2017-10-13
3+
Date: 2017-11-20
44
LaTeX Config: tufte-handout
55
Base Header Level: 3
66
uuid: dd2d8e76-dc2d-416d-9acd-5395d20871c2
@@ -217,7 +217,7 @@ added up and slowed down performance.
217217

218218
After reading for a bit, I ended up coming up with an approach that uses
219219
larger chunks of memory. I allocate pools of of memory in large slabs for
220-
smaller "objects"". For example, I allocate memory for 1024 tokens at a
220+
smaller "objects. For example, I allocate memory for 1024 tokens at a
221221
single time, and then dole that memory out as needed. When the slab is empty,
222222
a new one is allocated. This dramatically improved performance.
223223

@@ -254,7 +254,7 @@ measurable difference.
254254
I experimented with different approaches to creating the output after parsing.
255255
I tried printing directly to `stdout`, and even played with different
256256
buffering settings. None of those seemed to work well, and all were slower
257-
than using the `d_string` approach (formerly call `GString` in MMD 5).
257+
than using the `d_string` approach (formerly called `GString` in MMD 5).
258258

259259

260260
## Fast Searches ##
@@ -383,10 +383,10 @@ application with every release.
383383

384384
## Fuzz Testing ##
385385

386-
I was not familiar with the concept of [Fuzz Testing]
387-
(https://en.wikipedia.org/wiki/Fuzzing) until a user mentioned something about
388-
it to me a year or two ago. I had never used it before, but it seemed like a
389-
good idea. I implement it in two ways.
386+
I was not familiar with the concept of
387+
[Fuzz Testing](https://en.wikipedia.org/wiki/Fuzzing) until a user mentioned
388+
something about it to me a year or two ago. I had never used it before, but
389+
it seemed like a good idea. I implemented it in two ways.
390390

391391
The first is that I created a simplified version of the line parser that
392392
simply accepts various combinations of line type identifiers to see if they
@@ -401,13 +401,13 @@ several combinations of lines that did not pass.
401401
**NOTE**: This does not verify accurate parsing, simply that the parser does
402402
not crash by an unacceptable combination of lines.
403403

404-
The second form of fuzz testing I have started using more recently. This is
405-
using the [American fuzzy lop](http://lcamtuf.coredump.cx/afl/) program to try
406-
to find text input that crashes MMD. This works by taking sample input (e.g.
407-
files from the test suite), modifying them slightly, and trying the modified
404+
The second form of fuzz testing I started using later. This is using the
405+
[American fuzzy lop](http://lcamtuf.coredump.cx/afl/) program to try to find
406+
text input that crashes MMD. This works by taking sample input (e.g. files
407+
from the test suite), modifying them slightly, and trying the modified
408408
versions. Do this over and over and over, and some interesting edge cases are
409409
sometimes identified. I have found some interesting edge cases this way.
410-
Definitely a very useful tool!
410+
Definitely a useful tool!
411411

412412

413413
## Unit Testing ##
@@ -471,6 +471,24 @@ TextBundle/TextPack, OpenDocument, etc.
471471

472472
# Changelog #
473473

474+
* 2017-11-20 - v 6.2.3:
475+
476+
* CHANGED: Fix typos
477+
* CHANGED: Update superscript/subscript algorithm to allow leading instances
478+
* FIXED: Fix bug with multiple footnotes in single paragraph when exporting to LaTeX
479+
* FIXED: Fix potential NULL pointer dereference
480+
* FIXED: Fix potential bug
481+
* FIXED: Prevent pointer overflow
482+
* FIXED: Strip UTF-8 BOM from main files, not just transcluded files
483+
* UPDATED: Add HTML comment test cases to further demonstrate
484+
* UPDATED: Adjust libMultiMarkdown.h so it does not recursively include other files
485+
* UPDATED: Fix issue with AStyle indent settings
486+
* UPDATED: Refactor file utilities into file.c/h
487+
* UPDATED: Silence Xcode static analyzer false positives
488+
* UPDATED: Silence analyzer warnings
489+
* UPDATED: Update function name in swift file
490+
491+
474492
* 2017-10-13 - v 6.2.2.:
475493

476494
* ADDED: Add support for tables without header; test for table with multiple header rows

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -128,4 +128,4 @@ CHANGELOG:
128128
# Use astyle
129129
.PHONY : astyle
130130
astyle:
131-
astyle --options=.astylerc "Sources/libMultiMarkdown/*.c" "Sources/multimarkdown/*.c" "Sources/libMultiMarkdown/*.h"
131+
astyle --options=.astylerc "Sources/libMultiMarkdown/*.c" "Sources/multimarkdown/*.c" "Sources/libMultiMarkdown/*.h" "Sources/libMultiMarkdown/include/*.h"

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
| ---------- | ------------------------- |
55
| Title: | MultiMarkdown |
66
| Author: | Fletcher T. Penney |
7-
| Date: | 2017-10-13 |
7+
| Date: | 2017-11-20 |
88
| Copyright: | Copyright © 2016 - 2017 Fletcher T. Penney. |
9-
| Version: | 6.2.2 |
9+
| Version: | 6.2.3 |
1010

1111
master branch: [![Build Status](https://travis-ci.org/fletcher/MultiMarkdown-6.svg?branch=master)](https://travis-ci.org/fletcher/MultiMarkdown-6)
1212
develop branch: [![Build Status](https://travis-ci.org/fletcher/MultiMarkdown-6.svg?branch=develop)](https://travis-ci.org/fletcher/MultiMarkdown-6)

0 commit comments

Comments
 (0)