1. Fix a bug in generate.c where MKD_NO_EXT was not being handled.

2. Add -fext to the options for the markdown program
3. `try`ify a bunch more of the test cases.
This commit is contained in:
David Parsons
2009-06-17 14:30:43 -07:00
parent 2887caf2c3
commit ebdd489ed7
18 changed files with 121 additions and 176 deletions
+8 -5
View File
@@ -602,16 +602,19 @@ linkyformat(MMIOT *f, Cstring text, int image, Footnote *ref)
if ( image )
tag = &imaget;
else if ( (f->flags & NO_PSEUDO_PROTO) || (tag = pseudo(ref->link)) == 0 ) {
else if ( tag = pseudo(ref->link) ) {
if ( f->flags & (NO_PSEUDO_PROTO|SAFELINK) )
return 0;
}
else if ( (f->flags & SAFELINK) && T(ref->link)
&& (T(ref->link)[0] != '/')
&& !isautoprefix(T(ref->link)) )
/* if SAFELINK, only accept links that are local or
* a well-known protocol
*/
if ( (f->flags & SAFELINK) && T(ref->link)
&& (T(ref->link)[0] != '/')
&& !isautoprefix(T(ref->link)) )
return 0;
else
tag = &linkt;
}
if ( f->flags & tag->flags )
return 0;
+1
View File
@@ -48,6 +48,7 @@ static struct {
{ "strict", 0, MKD_STRICT },
{ "header", 1, MKD_NOHEADER },
{ "html", 1, MKD_NOHTML },
{ "ext", 1, MKD_NO_EXT },
{ "cdata", 0, MKD_CDATA },
{ "pants", 1, MKD_NOPANTS },
{ "smarty", 1, MKD_NOPANTS },
+1 -1
View File
@@ -2,7 +2,7 @@
rc=0
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1 -1
View File
@@ -4,7 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1 -1
View File
@@ -4,7 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1
View File
@@ -4,6 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1
View File
@@ -4,6 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1 -1
View File
@@ -4,7 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1 -1
View File
@@ -4,7 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1
View File
@@ -4,6 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+55 -77
View File
@@ -3,94 +3,72 @@
rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
esac
./echo -n " $1" '..................................' | ./cols 36
Q=`./echo "$2" | ./markdown $FLAGS`
if [ "$3" = "$Q" ]; then
./echo " ok"
else
./echo " FAILED"
./echo "wanted: $3"
./echo "got : $Q"
rc=1
fi
}
HEADER='% title
% author(s)
% date'
if ./markdown -V | grep HEADER > /dev/null; then
./echo -n ' valid header ..................... '
TEXT='% title
try 'valid header' "$HEADER" ''
try -F0x0100 'valid header with -F0x0100' "$HEADER" '<p>% title
% author(s)
% date
'
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
% date</p>'
if [ "$count" -eq 0 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
./echo -n ' valid header with -F0x0100........ '
TEXT='% title
try 'invalid header' \
'% title
% author(s)
% date
'
count=`./echo "$TEXT" | ./markdown -F0x0100 | grep title | wc -l`
if [ "$count" -gt 0 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
./echo -n ' invalid header ................... '
TEXT='% title
a pony!' \
'<p>% title
% author(s)
a pony!'
a pony!</p>'
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
if [ "$count" -gt 0 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
./echo -n ' offset header .................... '
TEXT='
try 'offset header' \
'
% title
% author(s)
% date
content'
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
if [ "$count" -gt 0 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
./echo -n ' indented header .................. '
TEXT=' % title
% author(s)
% date
content'
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
if [ "$count" -gt 0 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
else
./echo -n ' ignore headers ................... '
TEXT='% title
% date' \
'<p>% title
% author(s)
% date
'
count=`./echo "$TEXT" | ./markdown | grep title | wc -l`
% date</p>'
try 'indented header' \
' % title
% author(s)
% date' \
'<p> % title
% author(s)
% date</p>'
else
try 'ignore headers' "$HEADER" '<p>% title
% author(s)
% date</p>'
if [ "$count" -gt 0 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
fi
exit $rc
+1
View File
@@ -4,6 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+20 -21
View File
@@ -3,30 +3,29 @@
rc=0
MARKDOWN_FLAGS=
./echo -n ' bogus url (-fsafelink) ........... '
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
esac
./echo -n " $1" '..................................' | ./cols 36
TRICK='[test](bad:protocol)'
Q=`./echo "$2" | ./markdown $FLAGS`
count=`./echo "$TRICK" | ./markdown -fsafelink | grep '<a' | wc -l`
if [ $count -eq 0 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
if [ "$3" = "$Q" ]; then
./echo " ok"
else
./echo " FAILED"
./echo "wanted: $3"
./echo "got : $Q"
rc=1
fi
}
./echo -n ' bogus url (-fnosafelink) ......... '
TRICK='[test](bad:protocol)'
count=`./echo "$TRICK" | ./markdown -fnosafelink | grep '<a' | wc -l`
if [ $count -eq 1 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
try -fsafelink 'bogus url (-fsafelink)' '[test](bad:protocol)' '<p>[test](bad:protocol)</p>'
try -fnosafelink 'bogus url (-fnosafelink)' '[test](bad:protocol)' '<p><a href="bad:protocol">test</a></p>'
exit $rc
+24 -65
View File
@@ -3,74 +3,33 @@
rc=0
MARKDOWN_FLAGS=
./echo -n ' [](id:) links .................... '
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
esac
./echo -n " $1" '..................................' | ./cols 36
ASK=`./echo '[foo](id:bar)' | ./markdown`
if ./echo "$ASK" | grep '<a id="bar">foo</a>' >/dev/null; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
Q=`./echo "$2" | ./markdown $FLAGS`
./echo -n ' [](id:) links with MKD_NO_EXT .... '
ASK=`./echo '[foo](id:bar)' | MARKDOWN_FLAGS=0x0040 ./markdown`
if ./echo "$ASK" | grep '<a id="bar">foo</a>' >/dev/null; then
./echo "FAILED"
rc=1
else
./echo "ok"
fi
if [ "$3" = "$Q" ]; then
./echo " ok"
else
./echo " FAILED"
./echo "wanted: $3"
./echo "got : $Q"
rc=1
fi
}
./echo -n ' [](class:) links ................. '
ASK=`./echo '[foo](class:bar)' | ./markdown`
if ./echo "$ASK" | grep '<span class="bar">foo</span>' >/dev/null; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
./echo -n ' [](class:) links with MKD_NO_EXT . '
ASK=`./echo '[foo](class:bar)' | MARKDOWN_FLAGS=0x0040 ./markdown`
if ./echo "$ASK" | grep '<span class="bar">foo</span>' >/dev/null; then
./echo "FAILED"
rc=1
else
./echo "ok"
fi
./echo -n ' [](raw:) links ................... '
ASK=`./echo '[foo](raw:bar)' | ./markdown`
count1=`./echo "$ASK" | grep foo | wc -l`
count2=`./echo "$ASK" | grep bar | wc -l`
if [ "$count1" -eq 0 -a "$count2" -eq 1 ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
./echo -n ' [](raw:) links with MKD_NO_EXT ... '
ASK=`./echo '[foo](raw:bar)' | MARKDOWN_FLAGS=0x0040 ./markdown`
count1=`./echo "$ASK" | grep 'raw:bar' | wc -l`
count2=`./echo "$ASK" | grep 'a href' | wc -l`
if [ \( "$count1" -gt 0 \) -a \( "$count2" -gt 0 \) ]; then
./echo "ok"
else
./echo "FAILED"
rc=1
fi
try '[](id:) links' '[foo](id:bar)' '<p><a id="bar">foo</a></p>'
try -fnoext '[](id:) links with -fnoext' '[foo](id:bar)' '<p>[foo](id:bar)</p>'
try '[](class:) links' '[foo](class:bar)' '<p><span class="bar">foo</span></p>'
try -fnoext '[](class:) links with -fnoext' '[foo](class:bar)' '<p>[foo](class:bar)</p>'
try '[](raw:) links' '[foo](raw:bar)' '<p>bar</p>'
try -fnoext '[](raw:) links with -fnoext' '[foo](raw:bar)' '<p>[foo](raw:bar)</p>'
exit $rc
+1 -1
View File
@@ -3,7 +3,7 @@
rc=0
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1 -1
View File
@@ -4,7 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;
+1
View File
@@ -4,6 +4,7 @@ rc=0
MARKDOWN_FLAGS=0x0; export MARKDOWN_FLAGS
try() {
unset FLAGS
case "$1" in
-*) FLAGS="$1"
shift ;;
+1 -1
View File
@@ -4,7 +4,7 @@ rc=0
MARKDOWN_FLAGS=
try() {
unset FLAGS
case "$1" in
-*) FLAGS=$1
shift ;;