From caddd5b53a7d94b29a022b0cc03587edfc6934e9 Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Mon, 19 Sep 2016 12:03:19 -0400
Subject: header, body split a more reliable regex solution

---
 src/sdp/ao_read_source_files.d | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

(limited to 'src/sdp')

diff --git a/src/sdp/ao_read_source_files.d b/src/sdp/ao_read_source_files.d
index ce3c7bd..eabc4dc 100644
--- a/src/sdp/ao_read_source_files.d
+++ b/src/sdp/ao_read_source_files.d
@@ -75,9 +75,11 @@ template SiSUmarkupRaw() {
       return source_txt_str;
     }
     final private char[][] header0Content1(in string src_text) {
-      /+ split string on _first_ match of "^:?A~\s" into [header, content] tuple +/
-      char[][] header_and_content =
-        split(cast(char[]) src_text, rgx.heading_a); // this splits on each occurance of "^:?A~\s" (does not recognize when it appears in a code block)
+      /+ split string on _first_ match of "^:?A~\s" into [header, content] array/tuple +/
+      char[][] header_and_content;
+      auto m = matchFirst(cast(char[]) src_text, rgx.heading_a);
+      header_and_content ~= m.pre;
+      header_and_content ~= m.hit ~ m.post;
       assert(header_and_content.length == 2,
         "document markup is broken, header body split == " ~ to!string(header_and_content.length) ~
         "; (header / body array split should == 2 (split is on level A~))"
-- 
cgit v1.2.3