Hello community,

here is the log from the commit of package discount for openSUSE:Factory 
checked in at 2018-10-23 20:33:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/discount (Old)
 and      /work/SRC/openSUSE:Factory/.discount.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "discount"

Tue Oct 23 20:33:32 2018 rev:10 rq:642548 version:2.2.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/discount/discount.changes        2018-06-27 
10:17:05.569486511 +0200
+++ /work/SRC/openSUSE:Factory/.discount.new/discount.changes   2018-10-23 
20:33:38.373028243 +0200
@@ -1,0 +2,6 @@
+Wed Oct 17 07:24:36 UTC 2018 - Martin Pluskal <[email protected]>
+
+- Update to version 2.2.4:
+  * No changelog provided
+
+-------------------------------------------------------------------

Old:
----
  discount-2.2.3a.tar.bz2

New:
----
  discount-2.2.4.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ discount.spec ++++++
--- /var/tmp/diff_new_pack.lzSmlq/_old  2018-10-23 20:33:38.933027574 +0200
+++ /var/tmp/diff_new_pack.lzSmlq/_new  2018-10-23 20:33:38.937027569 +0200
@@ -12,14 +12,14 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 %define sover 2
 %bcond_with fenced_code
 Name:           discount
-Version:        2.2.3a
+Version:        2.2.4
 Release:        0
 Summary:        Markdown text to HTML converter
 License:        BSD-3-Clause

++++++ discount-2.2.3a.tar.bz2 -> discount-2.2.4.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/INSTALL new/discount-2.2.4/INSTALL
--- old/discount-2.2.3a/INSTALL 2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/INSTALL  2018-08-05 22:39:32.000000000 +0200
@@ -35,6 +35,8 @@
 --h1-title             Have theme & mkd2html use the first h1 in a document
                        as the title if there's no pandoc header or title
                        specified on the command line.
+--cxx-binding          Wrap mkdio.h with (conditional) 'extern "C"' for c++
+                       binding.
 
 3) Installing sample programs and manpages
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/README new/discount-2.2.4/README
--- old/discount-2.2.3a/README  2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/README   2018-08-05 22:39:32.000000000 +0200
@@ -1,6 +1,7 @@
-DISCOUNT is a implementation of John Gruber's Markdown markup
-language.   It implements, as far as I can tell, all of the language
-as described in <http://daringfireball.net/projects/markdown/syntax>
+DISCOUNT is a implementation of John Gruber & Aaron Swartz's
+ Markdown markup language.   It implements, as far as I can tell,
+all of the language as described in
+ <http://daringfireball.net/projects/markdown/syntax>
 and passes the Markdown test suite at
 <http://daringfireball.net/projects/downloads/MarkdownTest_1.0.zip>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/VERSION new/discount-2.2.4/VERSION
--- old/discount-2.2.3a/VERSION 2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/VERSION  2018-08-05 22:39:32.000000000 +0200
@@ -1 +1 @@
-2.2.3
+2.2.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/configure.inc 
new/discount-2.2.4/configure.inc
--- old/discount-2.2.3a/configure.inc   2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/configure.inc    2018-08-05 22:39:32.000000000 +0200
@@ -831,16 +831,21 @@
 #
 AC_CHECK_NORETURN() {
     AC_PROG_CC
+    AC_CHECK_ATTRIBUTE noreturn
+}
 
-    echo "extern int noreturn  __attribute__((__noreturn__));" > ngc$$.c
+AC_CHECK_ATTRIBUTE() {
+    local __what=`echo $1 | tr 'a-z' 'A-Z'`
+    
+    echo "extern int thing  __attribute__((__"$1"__));" > ngc$$.c
 
-    TLOGN "Checking __attribute__((__noreturn__)) "
+    TLOGN "Checking __attribute__((__${1}__)) "
     if $AC_CC -c ngc$$.c; then
        TLOG "(yes)"
-       AC_DEFINE 'NORETURN' ' __attribute__((__noreturn__))'
+       AC_DEFINE $__what ' __attribute__((__'$1'__))'
     else
        TLOG "(no)"
-       AC_DEFINE 'NORETURN' ''
+       AC_DEFINE $__what ''
     fi
     rm -f ngc$$.o ngc$$.c
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/configure.sh 
new/discount-2.2.4/configure.sh
--- old/discount-2.2.3a/configure.sh    2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/configure.sh     2018-08-05 22:39:32.000000000 +0200
@@ -10,7 +10,11 @@
 ac_help='--enable-amalloc      Enable memory allocation debugging
 --with-tabstops=N      Set tabstops to N characters (default is 4)
 --shared               Build shared libraries (default is static)
---pkg-config           Install pkg-config(1) glue files'
+--pkg-config           Install pkg-config(1) glue files
+--cxx-binding          Install header files with c++ wrappers
+--github-checkbox[=input] Enable github-style checkboxes in lists
+                       (if =input, use <input checkbox>, otherwise
+                       use html ballot entities)'
 
 LOCAL_AC_OPTIONS='
 set=`locals $*`;
@@ -38,6 +42,16 @@
     --PKG-CONFIG)
                echo PKGCONFIG=T
                ;;
+    --CXX-BINDING)
+               echo CXX_BINDING=T
+               ;;
+    --GITHUB-CHECKBOX)
+               echo GITHUB_CHECKBOX=T
+               ;;
+    --GITHUB-CHECKBOX=INPUT)
+               echo GITHUB_CHECKBOX=T
+               echo GITHUB_CHECKBOX_AS_INPUT=T
+               ;;
     esac
 }
 
@@ -71,7 +85,7 @@
 
 AC_PROG_CC
 AC_QUIET AC_PROG git && AC_DEFINE 'HAS_GIT' '1'
-AC_CHECK_NORETURN
+AC_CHECK_ATTRIBUTE destructor
 
 test "$TRY_SHARED" && AC_COMPILER_PIC && AC_CC_SHLIBS
 
@@ -212,6 +226,11 @@
     AC_SUB 'H1TITLE' ''
 fi
 
+if [ "$GITHUB_CHECKBOX" ]; then
+    AC_DEFINE 'GITHUB_CHECKBOX' '1'
+    test "$GITHUB_CHECKBOX_AS_INPUT" && AC_DEFINE 'CHECKBOX_AS_INPUT' '1'
+fi
+
 
 [ "$OS_FREEBSD" -o "$OS_DRAGONFLY" ] || AC_CHECK_HEADERS malloc.h
 
@@ -224,3 +243,16 @@
 fi
 
 AC_OUTPUT $GENERATE
+
+if [ "$CXX_BINDING" ]; then
+    LOG "applying c++ glue to mkdio.h"
+    mv mkdio.h mkdio.h$$
+    (   echo '#ifdef __cplusplus'
+       echo 'extern "C" {'
+       echo '#endif'
+       cat mkdio.h$$
+       echo '#ifdef __cplusplus'
+       echo '}'
+       echo '#endif' ) > mkdio.h
+    rm mkdio.h$$
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/dumptree.c 
new/discount-2.2.4/dumptree.c
--- old/discount-2.2.3a/dumptree.c      2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/dumptree.c       2018-08-05 22:39:32.000000000 +0200
@@ -111,6 +111,12 @@
        d = fprintf(f, "[%s", Pptype(pp->typ));
        if ( pp->ident )
            d += fprintf(f, " %s", pp->ident);
+
+#ifdef GITHUB_CHECKBOX
+       if ( pp->flags )
+           d += fprintf(f, " %x", pp->flags);
+#endif
+           
        if ( pp->align > 1 )
            d += fprintf(f, ", <%s>", Begin[pp->align]);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/generate.c 
new/discount-2.2.4/generate.c
--- old/discount-2.2.3a/generate.c      2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/generate.c       2018-08-05 22:39:32.000000000 +0200
@@ -1643,9 +1643,10 @@
 static int
 printblock(Paragraph *pp, MMIOT *f)
 {
-    Line *t = pp->text;
     static char *Begin[] = { "", "<p>", "<p style=\"text-align:center;\">"  };
     static char *End[]   = { "", "</p>","</p>" };
+    Line *t = pp->text;
+    int align = pp->align;
 
     while (t) {
        if ( S(t->text) ) {
@@ -1665,9 +1666,9 @@
        }
        t = t->next;
     }
-    Qstring(Begin[pp->align], f);
+    Qstring(Begin[align], f);
     text(f);
-    Qstring(End[pp->align], f);
+    Qstring(End[align], f);
     return 1;
 }
 
@@ -1718,17 +1719,57 @@
 
 
 static void
-htmlify(Paragraph *p, char *block, char *arguments, MMIOT *f)
+htmlify_paragraphs(Paragraph *p, MMIOT *f)
 {
     ___mkd_emblock(f);
-    if ( block )
-       Qprintf(f, arguments ? "<%s %s>" : "<%s>", block, arguments);
-    ___mkd_emblock(f);
 
     while (( p = display(p, f) )) {
        ___mkd_emblock(f);
        Qstring("\n\n", f);
     }
+}
+
+
+#ifdef GITHUB_CHECKBOX
+static void
+li_htmlify(Paragraph *p, char *arguments, int flags, MMIOT *f)
+{
+    ___mkd_emblock(f);
+
+    Qprintf(f, "<li");
+    if ( arguments )
+       Qprintf(f, " %s", arguments);
+    if ( flags & GITHUB_CHECK )
+       Qprintf(f, " class=\"github_checkbox\"");
+    Qprintf(f, ">");
+#if CHECKBOX_AS_INPUT
+    if ( flags & GITHUB_CHECK ) {
+       Qprintf(f, "<input disabled=\"\" type=\"checkbox\"");
+       if ( flags & IS_CHECKED )
+           Qprintf(f, " checked=\"checked\"");
+       Qprintf(f, "/>");
+    }
+#else
+    if ( flags & GITHUB_CHECK )
+       Qprintf(f, flags & IS_CHECKED ? "&#x2611;" : "&#x2610;");
+#endif
+
+    htmlify_paragraphs(p, f);
+
+     Qprintf(f, "</li>");
+    ___mkd_emblock(f);
+}
+#endif
+
+
+static void
+htmlify(Paragraph *p, char *block, char *arguments, MMIOT *f)
+{
+    ___mkd_emblock(f);
+    if ( block )
+       Qprintf(f, arguments ? "<%s %s>" : "<%s>", block, arguments);
+
+    htmlify_paragraphs(p, f);
 
     if ( block )
         Qprintf(f, "</%s>", block);
@@ -1770,7 +1811,11 @@
        Qprintf(f, ">\n");
 
        for ( ; p ; p = p->next ) {
+#ifdef GITHUB_CHECKBOX
+           li_htmlify(p->down, p->ident, p->flags, f);
+#else
            htmlify(p->down, "li", p->ident, f);
+#endif
            Qchar('\n', f);
        }
 
@@ -1854,12 +1899,12 @@
        for ( j=0; j < S(m->footnotes->note); j++ ) {
            t = &T(m->footnotes->note)[j];
            if ( (t->refnumber == i) && (t->flags & REFERENCED) ) {
-               Csprintf(&m->out, "<li id=\"%s:%d\">\n<p>",
+               Csprintf(&m->out, "<li id=\"%s:%d\">\n",
                            p_or_nothing(m), t->refnumber);
-               Csreparse(&m->out, T(t->title), S(t->title), 0);
+               htmlify(t->text, 0, 0, m);
                Csprintf(&m->out, "<a href=\"#%sref:%d\" 
rev=\"footnote\">&#8617;</a>",
                            p_or_nothing(m), t->refnumber);
-               Csprintf(&m->out, "</p></li>\n");
+               Csprintf(&m->out, "</li>\n");
            }
        }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/github_flavoured.c 
new/discount-2.2.4/github_flavoured.c
--- old/discount-2.2.3a/github_flavoured.c      2018-03-02 23:52:05.000000000 
+0100
+++ new/discount-2.2.4/github_flavoured.c       2018-08-05 22:39:32.000000000 
+0200
@@ -66,9 +66,9 @@
         */
        Line *headers = T(a->content);
 
-       a->title = headers;             __mkd_header_dle(a->title);
-       a->author= headers->next;       __mkd_header_dle(a->author);
-       a->date  = headers->next->next; __mkd_header_dle(a->date);
+       a->title = headers;             __mkd_trim_line(a->title, 1);
+       a->author= headers->next;       __mkd_trim_line(a->author, 1);
+       a->date  = headers->next->next; __mkd_trim_line(a->date, 1);
 
        T(a->content) = headers->next->next->next;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/html5.c new/discount-2.2.4/html5.c
--- old/discount-2.2.3a/html5.c 2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/html5.c  2018-08-05 22:39:32.000000000 +0200
@@ -13,7 +13,6 @@
     mkd_define_tag("ASIDE", 0);
     mkd_define_tag("FOOTER", 0);
     mkd_define_tag("HEADER", 0);
-    mkd_define_tag("HGROUP", 0);
     mkd_define_tag("NAV", 0);
     mkd_define_tag("SECTION", 0);
     mkd_define_tag("ARTICLE", 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/main.c new/discount-2.2.4/main.c
--- old/discount-2.2.3a/main.c  2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/main.c   2018-08-05 22:39:32.000000000 +0200
@@ -151,7 +151,8 @@
        case 't':   text = hoptarg(&blob);
                    use_mkd_line = 1;
                    break;
-       case 'T':   toc = 1;
+       case 'T':   flags |= MKD_TOC;
+                   toc = 1;
                    break;
        case 'C':   extra_footnote_prefix = hoptarg(&blob);
                    break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/markdown.c 
new/discount-2.2.4/markdown.c
--- old/discount-2.2.3a/markdown.c      2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/markdown.c       2018-08-05 22:39:32.000000000 +0200
@@ -170,8 +170,10 @@
        tmp->next = t->next;
        t->next = tmp;
 
-       tmp->dle = t->dle;
        SUFFIX(tmp->text, T(t->text)+cutpoint, S(t->text)-cutpoint);
+       EXPAND(tmp->text) = 0;
+       S(tmp->text)--;
+       
        S(t->text) = cutpoint;
     }
 }
@@ -608,8 +610,7 @@
     Line *t = p->text, *r;
 
     for ( ; t; t = r ) {
-       CLIP(t->text,0,4);
-       t->dle = mkd_firstnonblank(t);
+       __mkd_trim_line(t,4);
 
        if ( !( (r = skipempty(t->next)) && iscode(r)) ) {
            ___mkd_freeLineRange(t,r);
@@ -804,9 +805,8 @@
            /* clip next space, if any */
            if ( T(t->text)[qp] == ' ' )
                qp++;
-           CLIP(t->text, 0, qp);
+           __mkd_trim_line(t,qp);
            UNCHECK(t);
-           t->dle = mkd_firstnonblank(t);
        }
 
        q = skipempty(t->next);
@@ -853,11 +853,35 @@
     Line *t, *q;
     int clip = indent;
     int z;
+#ifdef GITHUB_CHECKBOX
+    int firstpara = 1;
+    int ischeck;
+#define CHECK_NOT 0
+#define CHECK_NO 1
+#define CHECK_YES 2
+#endif
 
     for ( t = p->text; t ; t = q) {
-       CLIP(t->text, 0, clip);
        UNCHECK(t);
-       t->dle = mkd_firstnonblank(t);
+       __mkd_trim_line(t, clip);
+
+#ifdef GITHUB_CHECKBOX
+       if ( firstpara ) {
+           ischeck = CHECK_NOT;
+           if ( strncmp(T(t->text)+t->dle, "[ ]", 3) == 0 )
+               ischeck = CHECK_NO;
+           else if ( strncasecmp(T(t->text)+t->dle, "[x]", 3) == 0 )
+               ischeck = CHECK_YES;
+
+           if ( ischeck != CHECK_NOT ) {
+               __mkd_trim_line(t, 3);
+               p->flags |= GITHUB_CHECK;
+               if ( ischeck == CHECK_YES )
+                   p->flags |= IS_CHECKED;
+           }
+           firstpara = 0;
+       }
+#endif
 
         /* even though we had to trim a long leader off this item,
          * the indent for trailing paragraphs is still 4...
@@ -1007,6 +1031,28 @@
 
 
 /*
+ * eat lines for a markdown extra footnote
+ */
+static Line *
+extrablock(Line *p)
+{
+    Line *np;
+    
+    while ( p && p->next ) {
+       np = p->next;
+
+       if ( np->dle < 4 && np->dle < S(np->text) ) {
+           p->next = 0;
+           return np;
+       }
+       __mkd_trim_line(np,4);
+       p = np;
+    }
+    return 0;
+}
+
+
+/*
  * add a new (image or link) footnote to the footnote table
  */
 static Line*
@@ -1021,20 +1067,31 @@
     CREATE(foot->tag);
     CREATE(foot->link);
     CREATE(foot->title);
+    foot->text = 0;
     foot->flags = foot->height = foot->width = 0;
 
+    /* keep the footnote label */
     for (j=i=p->dle+1; T(p->text)[j] != ']'; j++)
        EXPAND(foot->tag) = T(p->text)[j];
-
     EXPAND(foot->tag) = 0;
     S(foot->tag)--;
+
+    /* consume the closing ]: */
     j = nextnonblank(p, j+2);
 
     if ( (f->flags & MKD_EXTRA_FOOTNOTE) && (T(foot->tag)[0] == '^') ) {
-       /* need to consume all lines until non-indented block? */
-       while ( j < S(p->text) )
-           EXPAND(foot->title) = T(p->text)[j++];
-       goto skip_to_end;
+       /* markdown extra footnote: All indented lines past this point;
+        * the first line includes the footnote reference, so we need to
+        * snip that out as we go.
+        */
+       foot->flags |= EXTRA_FOOTNOTE;
+       __mkd_trim_line(p,j);
+
+       np = extrablock(p);
+
+       foot->text = compile(p, 0, f);
+
+       return np;
     }
 
     while ( (j < S(p->text)) && !isspace(T(p->text)[j]) )
@@ -1045,8 +1102,7 @@
 
     if ( T(p->text)[j] == '=' ) {
        sscanf(T(p->text)+j, "=%dx%d", &foot->width, &foot->height);
-       while ( (j < S(p->text)) && !isspace(T(p->text)[j]) )
-           ++j;
+       j = nextblank(p, j);
        j = nextnonblank(p,j);
     }
 
@@ -1076,7 +1132,6 @@
        --S(foot->title);
     }
 
-skip_to_end:
     ___mkd_freeLine(p);
     return np;
 }
@@ -1250,6 +1305,7 @@
     ptr = consume(ptr, &para);
 
     while ( ptr ) {
+
        if ( iscode(ptr) ) {
            p = Pp(&d, ptr, CODE);
            
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/markdown.h 
new/discount-2.2.4/markdown.h
--- old/discount-2.2.3a/markdown.h      2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/markdown.h       2018-08-05 22:39:32.000000000 +0200
@@ -4,21 +4,6 @@
 #include "config.h"
 #include "cstring.h"
 
-/* reference-style links (and images) are stored in an array
- * of footnotes.
- */
-typedef struct footnote {
-    Cstring tag;               /* the tag for the reference link */
-    Cstring link;              /* what this footnote points to */
-    Cstring title;             /* what it's called (TITLE= attribute) */
-    int height, width;         /* dimensions (for image link) */
-    int dealloc;               /* deallocation needed? */
-    int refnumber;
-    int flags;
-#define EXTRA_BOOKMARK 0x01
-#define REFERENCED     0x02
-} Footnote;
-
 /* each input line is read into a Line, which contains the line,
  * the offset of the first non-space character [this assumes 
  * that all tabs will be expanded to spaces!], and a pointer to
@@ -56,10 +41,32 @@
           HDR, HR, TABLE, SOURCE } typ;
     enum { IMPLICIT=0, PARA, CENTER} align;
     int hnumber;               /* <Hn> for typ == HDR */
+#if GITHUB_CHECKBOX
+    int flags;
+#define GITHUB_CHECK           0x01
+#define IS_CHECKED             0x02
+#endif
 } Paragraph;
 
 enum { ETX, SETEXT };  /* header types */
 
+/* reference-style links (and images) are stored in an array
+ * of footnotes.
+ */
+typedef struct footnote {
+    Cstring tag;               /* the tag for the reference link */
+    Cstring link;              /* what this footnote points to */
+    Cstring title;             /* what it's called (TITLE= attribute) */
+    Paragraph *text;           /* EXTRA_FOOTNOTE content */
+    
+    int height, width;         /* dimensions (for image link) */
+    int dealloc;               /* deallocation needed? */
+    int refnumber;
+    int flags;
+#define EXTRA_FOOTNOTE 0x01
+#define REFERENCED     0x02
+} Footnote;
+
 
 typedef struct block {
     enum { bTEXT, bSTAR, bUNDER } b_type;
@@ -231,7 +238,7 @@
 
 extern Document *__mkd_new_Document();
 extern void __mkd_enqueue(Document*, Cstring *);
-extern void __mkd_header_dle(Line *);
+extern void __mkd_trim_line(Line *, int);
 
 extern int  __mkd_io_strget(struct string_stream *);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/mkdio.c new/discount-2.2.4/mkdio.c
--- old/discount-2.2.3a/mkdio.c 2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/mkdio.c  2018-08-05 22:39:32.000000000 +0200
@@ -74,13 +74,17 @@
 }
 
 
-/* trim leading blanks from a header line
+/* trim leading characters from a line, then adjust the dle.
  */
 void
-__mkd_header_dle(Line *p)
+__mkd_trim_line(Line *p, int clip)
 {
-    CLIP(p->text, 0, 1);
-    p->dle = mkd_firstnonblank(p);
+    if ( clip >= S(p->text) )
+       S(p->text) = p->dle = 0;
+    else if ( clip > 0 ) {
+       CLIP(p->text, 0, clip);
+       p->dle = mkd_firstnonblank(p);
+    }
 }
 
 
@@ -129,9 +133,9 @@
         */
        Line *headers = T(a->content);
 
-       a->title = headers;             __mkd_header_dle(a->title);
-       a->author= headers->next;       __mkd_header_dle(a->author);
-       a->date  = headers->next->next; __mkd_header_dle(a->date);
+       a->title = headers;             __mkd_trim_line(a->title, 1);
+       a->author= headers->next;       __mkd_trim_line(a->author, 1);
+       a->date  = headers->next->next; __mkd_trim_line(a->date, 1);
 
        T(a->content) = headers->next->next->next;
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/resource.c 
new/discount-2.2.4/resource.c
--- old/discount-2.2.3a/resource.c      2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/resource.c       2018-08-05 22:39:32.000000000 +0200
@@ -65,6 +65,7 @@
     DELETE(f->tag);
     DELETE(f->link);
     DELETE(f->title);
+    if ( f->text) ___mkd_freeParagraph(f->text);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/setup.c new/discount-2.2.4/setup.c
--- old/discount-2.2.3a/setup.c 2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/setup.c  2018-08-05 22:39:32.000000000 +0200
@@ -31,7 +31,7 @@
 }
 
 
-void
+void DESTRUCTOR
 mkd_shlib_destructor()
 {
     mkd_deallocate_tags();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/tests/codeblock.t 
new/discount-2.2.4/tests/codeblock.t
--- old/discount-2.2.3a/tests/codeblock.t       2018-03-02 23:52:05.000000000 
+0100
+++ new/discount-2.2.4/tests/codeblock.t        2018-08-05 22:39:32.000000000 
+0200
@@ -22,7 +22,6 @@
 <p>unrecognized code!
 ```</p>'
 
-# no <pre/> proves it’s the inline variant of `code` delimitation
 try 'fenced code disabled backtick as inline code' \
 '```
 inline code?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/tests/data/README 
new/discount-2.2.4/tests/data/README
--- old/discount-2.2.3a/tests/data/README       1970-01-01 01:00:00.000000000 
+0100
+++ new/discount-2.2.4/tests/data/README        2018-08-05 22:39:32.000000000 
+0200
@@ -0,0 +1,8 @@
+This directory contains source (.text) & expected output (.html)
+for various test that are too complicated for placing the results
+inline.
+
+The prefix characters show which test script runs the tests
+
+f  --   markdown extra footnotes (extrafootnotes.t)
+       (f01.text -> f01.html)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/tests/data/f01.html 
new/discount-2.2.4/tests/data/f01.html
--- old/discount-2.2.3a/tests/data/f01.html     1970-01-01 01:00:00.000000000 
+0100
+++ new/discount-2.2.4/tests/data/f01.html      2018-08-05 22:39:32.000000000 
+0200
@@ -0,0 +1,22 @@
+<p>is there a footnote here?<sup id="fnref:1"><a href="#fn:1" 
rel="footnote">1</a></sup></p>
+
+<p>And this is not part of the footnote</p>
+<div class="footnotes">
+<hr/>
+<ol>
+<li id="fn:1">
+<p>Yes, and it should have text</p>
+
+<p><code>
+code
+</code></p>
+
+<ul>
+<li>And</li>
+<li>A</li>
+<li>List</li>
+</ul>
+<a href="#fnref:1" rev="footnote">&#8617;</a></li>
+</ol>
+</div>
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/tests/data/f01.text 
new/discount-2.2.4/tests/data/f01.text
--- old/discount-2.2.3a/tests/data/f01.text     1970-01-01 01:00:00.000000000 
+0100
+++ new/discount-2.2.4/tests/data/f01.text      2018-08-05 22:39:32.000000000 
+0200
@@ -0,0 +1,15 @@
+is there a footnote here?[^1]
+
+[^1]:
+    Yes, and it should have text
+
+    ````
+    code
+    ````
+
+    * And
+    * A
+    * List
+
+
+And this is not part of the footnote
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/tests/extrafootnotes.t 
new/discount-2.2.4/tests/extrafootnotes.t
--- old/discount-2.2.3a/tests/extrafootnotes.t  2018-03-02 23:52:05.000000000 
+0100
+++ new/discount-2.2.4/tests/extrafootnotes.t   2018-08-05 22:39:32.000000000 
+0200
@@ -14,7 +14,7 @@
 <hr/>
 <ol>
 <li id="fn:1">
-<p>yes?<a href="#fnref:1" rev="footnote">&#8617;</a></p></li>
+yes?<a href="#fnref:1" rev="footnote">&#8617;</a></li>
 </ol>
 </div>'
 
@@ -24,7 +24,7 @@
 <hr/>
 <ol>
 <li id="foot:1">
-<p>yes?<a href="#footref:1" rev="footnote">&#8617;</a></p></li>
+yes?<a href="#footref:1" rev="footnote">&#8617;</a></li>
 </ol>
 </div>'
 
@@ -63,9 +63,9 @@
 <hr/>
 <ol>
 <li id="fn:1">
-<p>Alpha Footnote<a href="#fnref:1" rev="footnote">&#8617;</a></p></li>
+Alpha Footnote<a href="#fnref:1" rev="footnote">&#8617;</a></li>
 <li id="fn:2">
-<p>Beta Footnote<a href="#fnref:2" rev="footnote">&#8617;</a></p></li>
+Beta Footnote<a href="#fnref:2" rev="footnote">&#8617;</a></li>
 </ol>
 </div>'
 
@@ -104,17 +104,23 @@
 <hr/>
 <ol>
 <li id="fn:1">
-<p>Test footnote<a href="#fnref:1" rev="footnote">&#8617;</a></p></li>
+Test footnote<a href="#fnref:1" rev="footnote">&#8617;</a></li>
 <li id="fn:2">
-<p>Test2 footnote<a href="#fnref:2" rev="footnote">&#8617;</a></p></li>
+Test2 footnote<a href="#fnref:2" rev="footnote">&#8617;</a></li>
 <li id="fn:3">
-<p>Test3 footnote<a href="#fnref:3" rev="footnote">&#8617;</a></p></li>
+Test3 footnote<a href="#fnref:3" rev="footnote">&#8617;</a></li>
 <li id="fn:4">
-<p>Test4 footnote<a href="#fnref:4" rev="footnote">&#8617;</a></p></li>
+Test4 footnote<a href="#fnref:4" rev="footnote">&#8617;</a></li>
 </ol>
 </div>'
 
 try -ffootnote 'footnotes inside spans' "$TSRC" "$TOUT"
 
+for x in tests/data/f??.text;do
+    result=`echo $x | sed -e 's/.text$/.html/'`
+    try -ffootnote "`basename $x`" "`cat $x`" "`cat $result`"
+done
+    
+
 summary $0
 exit $rc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/tests/html.t 
new/discount-2.2.4/tests/html.t
--- old/discount-2.2.3a/tests/html.t    2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/tests/html.t     2018-08-05 22:39:32.000000000 +0200
@@ -102,5 +102,14 @@
 </form>
 </blockquote>'
 
+try 'multi-line html with trailing text' \
+'<p>test test test
+    test test test</p>+' \
+'<p>test test test
+    test test test</p>
+
+
+<p>+</p>'
+
 summary $0
 exit $rc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/theme.c new/discount-2.2.4/theme.c
--- old/discount-2.2.3a/theme.c 2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/theme.c  2018-08-05 22:39:32.000000000 +0200
@@ -521,6 +521,7 @@
     { 0, 0, 'f', 0,        "forcibly overwrite existing html files" },
     { 0, 0, 'o', "file",   "write output to `file`" },
     { 0, 0, 'p', "title",  "set the page title" },
+    { 0, 0, 't', "template",  "use `template` as template file" },
     { 0, 0, 'V', 0,        "show version info" },
 } ;
 #define NROPTS (sizeof opts / sizeof opts[0])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/toc.c new/discount-2.2.4/toc.c
--- old/discount-2.2.3a/toc.c   2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/toc.c    2018-08-05 22:39:32.000000000 +0200
@@ -38,7 +38,7 @@
     for ( tp = p->code; tp ; tp = tp->next ) {
        if ( tp->typ == SOURCE ) {
            for ( srcp = tp->down; srcp; srcp = srcp->next ) {
-               if ( srcp->typ == HDR && srcp->text ) {
+               if ( (srcp->typ == HDR) && srcp->text ) {
            
                    while ( last_hnumber > srcp->hnumber ) {
                        if ( (last_hnumber - srcp->hnumber) > 1 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/discount-2.2.3a/version.c.in 
new/discount-2.2.4/version.c.in
--- old/discount-2.2.3a/version.c.in    2018-03-02 23:52:05.000000000 +0100
+++ new/discount-2.2.4/version.c.in     2018-08-05 22:39:32.000000000 +0200
@@ -7,4 +7,7 @@
 #if USE_AMALLOC
                " DEBUG"
 #endif
+#if GITHUB_CHECKBOX
+               " GITHUB_CHECKBOX"
+#endif
                ;

++++++ discount-disable_ldconfig.patch ++++++
--- /var/tmp/diff_new_pack.lzSmlq/_old  2018-10-23 20:33:39.133027334 +0200
+++ /var/tmp/diff_new_pack.lzSmlq/_new  2018-10-23 20:33:39.133027334 +0200
@@ -1,8 +1,8 @@
-Index: discount-2.2.3a/configure.inc
+Index: discount-2.2.4/configure.inc
 ===================================================================
---- discount-2.2.3a.orig/configure.inc
-+++ discount-2.2.3a/configure.inc
-@@ -1388,7 +1388,6 @@ __AC_ELF_LIBRARIAN() {
+--- discount-2.2.4.orig/configure.inc
++++ discount-2.2.4/configure.inc
+@@ -1393,7 +1393,6 @@ __AC_ELF_LIBRARIAN() {
      if $AC_CC $_VFLAGS -o ngc$$.so ngc$$.c; then
        USE_SONAME=T
      fi
@@ -10,7 +10,7 @@
  
      if [ "$LDCONFIG" ]; then
        case `uname -s 2>/dev/null | $AC_UPPERCASE` in
-@@ -1434,7 +1433,6 @@ install)$PROG_INSTALL -c \$FULLNAME "\$1
+@@ -1439,7 +1438,6 @@ install)$PROG_INSTALL -c \$FULLNAME "\$1
        $PROG_LN_S -f \$FULLNAME \$1/\$LIBNAME.\$MAJOR
        $PROG_LN_S -f \$FULLNAME \$1/\$LIBNAME
  EOF

++++++ discount-fix-compile-warings.diff ++++++
--- /var/tmp/diff_new_pack.lzSmlq/_old  2018-10-23 20:33:39.141027325 +0200
+++ /var/tmp/diff_new_pack.lzSmlq/_new  2018-10-23 20:33:39.141027325 +0200
@@ -1,7 +1,7 @@
-Index: discount-2.2.3a/Makefile.in
+Index: discount-2.2.4/Makefile.in
 ===================================================================
---- discount-2.2.3a.orig/Makefile.in
-+++ discount-2.2.3a/Makefile.in
+--- discount-2.2.4.orig/Makefile.in
++++ discount-2.2.4/Makefile.in
 @@ -125,9 +125,9 @@ test:      $(PGMS) $(TESTFRAMEWORK) verify
  branch: tools/branch.c config.h
        $(CC) -o branch tools/branch.c


Reply via email to