mirror of
https://github.com/Orc/discount.git
synced 2026-09-25 04:10:00 +03:00
have v2compat convert from the 2.2.6 flags, not the flags that live in the limbo between 2.2.6 and v3
This commit is contained in:
+2
-1
@@ -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
|
||||
|
||||
+6
-8
@@ -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"
|
||||
;;
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+17
-44
@@ -20,8 +20,8 @@
|
||||
#include <libgen.h>
|
||||
#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<<i) )
|
||||
set_mkd_flag(p, i);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
+87
-35
@@ -1,39 +1,89 @@
|
||||
/* markdown: a C implementation of John Gruber's Markdown markup language.
|
||||
*
|
||||
* Copyright (C) 2007-2011 David L Parsons.
|
||||
* The redistribution terms are provided in the COPYRIGHT file that must
|
||||
* be distributed with this source code.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <limits.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "markdown.h"
|
||||
#include "amalloc.h"
|
||||
|
||||
#if HAVE_LIBGEN_H
|
||||
#include <libgen.h>
|
||||
#endif
|
||||
|
||||
/*
|
||||
* discount2 shim layer
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#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<<i;
|
||||
|
||||
switch ( bitmask & (1<<i) ) {
|
||||
case MKD2_STRICT: ___mkd_strict_mode(blob, 1);
|
||||
break;
|
||||
case MKD2_NOLINKS: set_mkd_flag(blob,MKD_NOLINKS);
|
||||
break;
|
||||
case MKD2_NOIMAGE: set_mkd_flag(blob,MKD_NOIMAGE);
|
||||
@@ -60,8 +114,6 @@ convert_v2flags(DWORD bitmask, mkd_flag_t *blob)
|
||||
break;
|
||||
case MKD2_NOHTML: set_mkd_flag(blob,MKD_NOHTML);
|
||||
break;
|
||||
case MKD2_NORMAL_LISTITEM: set_mkd_flag(blob,MKD_NORMAL_LISTITEM);
|
||||
break;
|
||||
case MKD2_TAGTEXT: set_mkd_flag(blob,MKD_TAGTEXT);
|
||||
break;
|
||||
case MKD2_NO_EXT: set_mkd_flag(blob,MKD_NO_EXT);
|
||||
@@ -96,7 +148,7 @@ convert_v2flags(DWORD bitmask, mkd_flag_t *blob)
|
||||
break;
|
||||
case MKD2_NOSTYLE: set_mkd_flag(blob,MKD_NOSTYLE);
|
||||
break;
|
||||
case MKD2_DLDISCOUNT: set_mkd_flag(blob,MKD_DLDISCOUNT);
|
||||
case MKD2_NODLDISCOUNT: clear_mkd_flag(blob,MKD_DLDISCOUNT);
|
||||
break;
|
||||
case MKD2_DLEXTRA: set_mkd_flag(blob,MKD_DLEXTRA);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user