diff --git a/Makefile.in b/Makefile.in index 750d9b7..6a6ab1b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -28,7 +28,7 @@ OBJS=mkdio.o markdown.o dumptree.o generate.o \ resource.o docheader.o version.o toc.o css.o \ xml.o Csio.o xmlpage.o basename.o emmatch.o \ github_flavoured.o setup.o tags.o html5.o \ - @AMALLOC@ @H1TITLE@ flags.o + @AMALLOC@ @H1TITLE@ flags.o v2compat.o TESTFRAMEWORK=echo cols branch pandoc_headers # modules that markdown, makepage, mkd2html, &tc use @@ -186,6 +186,7 @@ xml.o: xml.c config.h cstring.h amalloc.h markdown.h xmlpage.o: xmlpage.c config.h cstring.h amalloc.h markdown.h setup.o: setup.c config.h cstring.h amalloc.h markdown.h github_flavoured.o: github_flavoured.c config.h cstring.h amalloc.h markdown.h +v2compat.o: v2compat.c config.h cstring.h amalloc.h markdown.h gethopt.o: gethopt.c gethopt.h h1title.o: h1title.c markdown.h notspecial.o: notspecial.c config.h diff --git a/configure.inc b/configure.inc index fd0c9ba..0c2a550 100755 --- a/configure.inc +++ b/configure.inc @@ -1432,9 +1432,8 @@ make) FLAGS="$AC_CFLAGS -dynamiclib" VFLAGS="-current_version \$VERSION -compatibility_version \$MAJOR" rm -f \$LIBRARY - if $AC_CC \$FLAGS \$VFLAGS -o \$FULLNAME "\$@"; then - $PROG_LN_S \$FULLNAME \$LIBRARY - fi + $AC_CC \$FLAGS \$VFLAGS -o \$FULLNAME "\$@" || exit \$? + $PROG_LN_S \$FULLNAME \$LIBRARY ;; files) echo "\$FULLNAME" ;; @@ -1489,11 +1488,10 @@ make) FLAGS="$AC_CFLAGS -shared" test "$USE_SONAME" && VFLAGS="-Wl,-soname,\$LIBNAME.\$MAJOR" rm -f \$LIBRARY \$LIBNAME \$LIBNAME.\$MAJOR - if $AC_CC \$FLAGS \$VFLAGS -o \$FULLNAME "\$@"; then - $PROG_LN_S \$FULLNAME \$LIBRARY - $PROG_LN_S \$FULLNAME \$LIBNAME - $PROG_LN_S \$FULLNAME \$LIBNAME.\$MAJOR - fi + $AC_CC \$FLAGS \$VFLAGS -o \$FULLNAME "\$@" || exit \$? + $PROG_LN_S \$FULLNAME \$LIBRARY + $PROG_LN_S \$FULLNAME \$LIBNAME + $PROG_LN_S \$FULLNAME \$LIBNAME.\$MAJOR ;; files) echo "\$FULLNAME" "\$LIBNAME" "\$LIBNAME.\$MAJOR" ;; diff --git a/mkdio.h.in b/mkdio.h.in index 13d2d36..0f647c0 100644 --- a/mkdio.h.in +++ b/mkdio.h.in @@ -55,10 +55,10 @@ void mkd_set_flag_num(mkd_flag_t*, unsigned long);/* set a specific flag */ void mkd_clr_flag_num(mkd_flag_t*, unsigned long);/* clear a specific flag */ void mkd_set_flag_bitmap(mkd_flag_t*,long); /* set a bunch of flags */ - /* * sneakily back-define the published interface (leaving the old functions for v2 compatability) */ + #define mkd_in mkd3_in #define mkd_string mkd3_string #define gfm_in gfm3_in diff --git a/pgm_options.c b/pgm_options.c index a27b037..706b75d 100644 --- a/pgm_options.c +++ b/pgm_options.c @@ -20,8 +20,8 @@ #include #endif -static void set_dlist(mkd_flag_t *, int); -static void set_standard(mkd_flag_t *, int); +static void set_dlist(mkd_flag_t *flags, int enable); +extern void ___mkd_strict_mode(mkd_flag_t *flags, int enable); static struct _special { char *name; @@ -29,7 +29,7 @@ static struct _special { } special[] = { { "definitionlist", set_dlist }, { "dlist", set_dlist }, - { "standard", set_standard }, + { "standard", ___mkd_strict_mode }, }; static struct _opt { @@ -133,47 +133,6 @@ show_flags(int byname, int verbose, mkd_flag_t *flags) } } -static void -set_dlist(mkd_flag_t *flags, int enable) -{ - if ( enable ) { - set_mkd_flag(flags, MKD_DLDISCOUNT); - set_mkd_flag(flags, MKD_DLEXTRA); - } - else { - clear_mkd_flag(flags, MKD_DLDISCOUNT); - clear_mkd_flag(flags, MKD_DLEXTRA); - } -} - - -static void -set_standard(mkd_flag_t *flags, int enable) -{ - if ( enable ) { - clear_mkd_flag(flags, MKD_FENCEDCODE); - clear_mkd_flag(flags, MKD_LATEX); - clear_mkd_flag(flags, MKD_TABSTOP); - clear_mkd_flag(flags, MKD_EXTRA_FOOTNOTE); - clear_mkd_flag(flags, MKD_AUTOLINK); - clear_mkd_flag(flags, MKD_SAFELINK); - clear_mkd_flag(flags, MKD_TOC); - clear_mkd_flag(flags, MKD_DLDISCOUNT); - clear_mkd_flag(flags, MKD_DLEXTRA); - set_mkd_flag(flags, MKD_NOSUPERSCRIPT); - set_mkd_flag(flags, MKD_NORMAL_LISTITEM); - set_mkd_flag(flags, MKD_NO_EXT); - set_mkd_flag(flags, MKD_NOSUPERSCRIPT); - set_mkd_flag(flags, MKD_NORELAXED); - set_mkd_flag(flags, MKD_NOTABLES); - set_mkd_flag(flags, MKD_NOSTRIKETHROUGH); - set_mkd_flag(flags, MKD_NOHEADER); - set_mkd_flag(flags, MKD_NODIVQUOTE); - set_mkd_flag(flags, MKD_NOALPHALIST); - set_mkd_flag(flags, MKD_NOSTYLE); - } -} - static void handle_special(mkd_flag_t *flags, char *opt, int enable) @@ -187,6 +146,7 @@ handle_special(mkd_flag_t *flags, char *opt, int enable) } } + char * mkd_set_flag_string(mkd_flag_t *flags, char *optionstring) { @@ -266,3 +226,16 @@ mkd_set_flag_bitmap(mkd_flag_t *p, long bits) if ( bits & (1< +#include +#include +#include +#include +#include + +#include "config.h" +#include "markdown.h" +#include "amalloc.h" + +#if HAVE_LIBGEN_H +#include +#endif + /* * discount2 shim layer */ -#include -#include "markdown.h" -#define MKD2_NOLINKS 0x00000001 -#define MKD2_NOIMAGE 0x00000002 -#define MKD2_NOPANTS 0x00000004 -#define MKD2_NOHTML 0x00000008 -#define MKD2_NORMAL_LISTITEM 0x00000010 -#define MKD2_TAGTEXT 0x00000020 -#define MKD2_NO_EXT 0x00000040 -#define MKD2_CDATA 0x00000080 -#define MKD2_NOSUPERSCRIPT 0x00000100 -#define MKD2_NORELAXED 0x00000200 -#define MKD2_NOTABLES 0x00000400 -#define MKD2_NOSTRIKETHROUGH 0x00000800 -#define MKD2_TOC 0x00001000 -#define MKD2_1_COMPAT 0x00002000 -#define MKD2_AUTOLINK 0x00004000 -#define MKD2_SAFELINK 0x00008000 -#define MKD2_NOHEADER 0x00010000 -#define MKD2_TABSTOP 0x00020000 -#define MKD2_NODIVQUOTE 0x00040000 -#define MKD2_NOALPHALIST 0x00080000 -#define MKD2_EXTRA_FOOTNOTE 0x00200000 -#define MKD2_NOSTYLE 0x00400000 -#define MKD2_DLDISCOUNT 0x00800000 -#define MKD2_DLEXTRA 0x01000000 -#define MKD2_FENCEDCODE 0x02000000 -#define MKD2_IDANCHOR 0x04000000 -#define MKD2_GITHUBTAGS 0x08000000 -#define MKD2_URLENCODEDANCHOR 0x10000000 -#define MKD2_LATEX 0x40000000 -#define MKD2_EXPLICITLIST 0x80000000 +/* 2.2.6 flags */ +#define MKD2_NOLINKS 0x00000001 +#define MKD2_NOIMAGE 0x00000002 +#define MKD2_NOPANTS 0x00000004 +#define MKD2_NOHTML 0x00000008 +#define MKD2_STRICT 0x00000010 +#define MKD2_TAGTEXT 0x00000020 +#define MKD2_NO_EXT 0x00000040 +#define MKD2_CDATA 0x00000080 +#define MKD2_NOSUPERSCRIPT 0x00000100 +#define MKD2_NORELAXED 0x00000200 +#define MKD2_NOTABLES 0x00000400 +#define MKD2_NOSTRIKETHROUGH 0x00000800 +#define MKD2_TOC 0x00001000 +#define MKD2_1_COMPAT 0x00002000 +#define MKD2_AUTOLINK 0x00004000 +#define MKD2_SAFELINK 0x00008000 +#define MKD2_NOHEADER 0x00010000 +#define MKD2_TABSTOP 0x00020000 +#define MKD2_NODIVQUOTE 0x00040000 +#define MKD2_NOALPHALIST 0x00080000 +#define MKD2_NODLIST 0x00100000 +#define MKD2_EXTRA_FOOTNOTE 0x00200000 +#define MKD2_NOSTYLE 0x00400000 +#define MKD2_NODLDISCOUNT 0x00800000 +#define MKD2_DLEXTRA 0x01000000 +#define MKD2_FENCEDCODE 0x02000000 +#define MKD2_IDANCHOR 0x04000000 +#define MKD2_GITHUBTAGS 0x08000000 +#define MKD2_URLENCODEDANCHOR 0x10000000 +#define MKD2_LATEX 0x40000000 +#define MKD2_EXPLICITLIST 0x80000000 + + +void +___mkd_strict_mode(mkd_flag_t *flags, int enable) +{ + if ( enable ) { + clear_mkd_flag(flags, MKD_FENCEDCODE); + clear_mkd_flag(flags, MKD_LATEX); + clear_mkd_flag(flags, MKD_TABSTOP); + clear_mkd_flag(flags, MKD_EXTRA_FOOTNOTE); + clear_mkd_flag(flags, MKD_AUTOLINK); + clear_mkd_flag(flags, MKD_SAFELINK); + clear_mkd_flag(flags, MKD_TOC); + clear_mkd_flag(flags, MKD_DLDISCOUNT); + clear_mkd_flag(flags, MKD_DLEXTRA); + set_mkd_flag(flags, MKD_NOSUPERSCRIPT); + set_mkd_flag(flags, MKD_NORMAL_LISTITEM); + set_mkd_flag(flags, MKD_NO_EXT); + set_mkd_flag(flags, MKD_NOSUPERSCRIPT); + set_mkd_flag(flags, MKD_NORELAXED); + set_mkd_flag(flags, MKD_NOTABLES); + set_mkd_flag(flags, MKD_NOSTRIKETHROUGH); + set_mkd_flag(flags, MKD_NOHEADER); + set_mkd_flag(flags, MKD_NODIVQUOTE); + set_mkd_flag(flags, MKD_NOALPHALIST); + set_mkd_flag(flags, MKD_NOSTYLE); + } +} /* @@ -46,12 +96,16 @@ convert_v2flags(DWORD bitmask, mkd_flag_t *blob) DWORD bit; mkd_init_flags(blob); + set_mkd_flag(blob, MKD_DLDISCOUNT); /* default for discount dls changed from on to off in v3 */ + for (i=0; i < sizeof(DWORD)*4; i++) { bit = 1<