Add macros to get TidyVertSpace config, and implement

This commit is contained in:
Geoff McLane 2015-07-15 20:58:00 +02:00
parent 154a61543b
commit d26cd72084

View file

@ -36,6 +36,12 @@ static int TextStartsWithWhitespace( Lexer *lexer, Node *node, uint start, uint
static Bool InsideHead( TidyDocImpl* doc, Node *node ); static Bool InsideHead( TidyDocImpl* doc, Node *node );
static Bool ShouldIndent( TidyDocImpl* doc, Node *node ); static Bool ShouldIndent( TidyDocImpl* doc, Node *node );
/*\
* Issue #228 20150715 - macros to access --vertical-space tri state configuration parameter
\*/
#define TidyClassicVS ((cfgAutoBool( doc, TidyVertSpace ) == TidyYesState) ? yes : no)
#define TidyAddVS ((cfgAutoBool( doc, TidyVertSpace ) == TidyAutoState) ? no : yes )
/*\ /*\
* 20150515 - support using tabs instead of spaces - Issue #108 * 20150515 - support using tabs instead of spaces - Issue #108
* GH: https://github.com/htacg/tidy-html5/issues/108 - Keep indent with tabs #108 * GH: https://github.com/htacg/tidy-html5/issues/108 - Keep indent with tabs #108
@ -724,9 +730,10 @@ void TY_(PFlushLineSmart)( TidyDocImpl* doc, uint indent )
if ( pprint->linelen > 0 ) if ( pprint->linelen > 0 )
PFlushLineImpl( doc ); PFlushLineImpl( doc );
Bool vertical = cfgBool( doc, TidyVertSpace ); /* Issue #228 - cfgBool( doc, TidyVertSpace ); */
if(vertical) if(TidyAddVS) {
TY_(WriteChar)( '\n', doc->docOut ); TY_(WriteChar)( '\n', doc->docOut );
}
pprint->indent[ 0 ].spaces = indent; pprint->indent[ 0 ].spaces = indent;
} }
@ -739,9 +746,10 @@ static void PCondFlushLineSmart( TidyDocImpl* doc, uint indent )
{ {
PFlushLineImpl( doc ); PFlushLineImpl( doc );
Bool vertical = cfgBool( doc, TidyVertSpace ); /* Issue #228 - cfgBool( doc, TidyVertSpace ); */
if(vertical) if(TidyAddVS) {
TY_(WriteChar)( '\n', doc->docOut ); TY_(WriteChar)( '\n', doc->docOut );
}
pprint->indent[ 0 ].spaces = indent; pprint->indent[ 0 ].spaces = indent;
} }
@ -2156,7 +2164,7 @@ void TY_(PPrintTree)( TidyDocImpl* doc, uint mode, uint indent, Node *node )
if ( nodeIsHR(node) ) if ( nodeIsHR(node) )
{ {
/* insert extra newline for classic formatting */ /* insert extra newline for classic formatting */
Bool classic = cfgBool( doc, TidyVertSpace ); Bool classic = TidyClassicVS; /* #228 - cfgBool( doc, TidyVertSpace ); */
if (classic && node->parent && node->parent->content != node) if (classic && node->parent && node->parent->content != node)
{ {
TY_(PFlushLineSmart)( doc, indent ); TY_(PFlushLineSmart)( doc, indent );
@ -2182,7 +2190,7 @@ void TY_(PPrintTree)( TidyDocImpl* doc, uint mode, uint indent, Node *node )
if ( node->tag && if ( node->tag &&
(node->tag->parser == TY_(ParsePre) || nodeIsTEXTAREA(node)) ) (node->tag->parser == TY_(ParsePre) || nodeIsTEXTAREA(node)) )
{ {
Bool classic = cfgBool( doc, TidyVertSpace ); Bool classic = TidyClassicVS; /* #228 - cfgBool( doc, TidyVertSpace ); */
uint indprev = indent; uint indprev = indent;
PCondFlushLineSmart( doc, indent ); PCondFlushLineSmart( doc, indent );
@ -2264,7 +2272,7 @@ void TY_(PPrintTree)( TidyDocImpl* doc, uint mode, uint indent, Node *node )
Bool indsmart = ( cfgAutoBool(doc, TidyIndentContent) == TidyAutoState ); Bool indsmart = ( cfgAutoBool(doc, TidyIndentContent) == TidyAutoState );
Bool hideend = cfgBool( doc, TidyHideEndTags ) || Bool hideend = cfgBool( doc, TidyHideEndTags ) ||
cfgBool( doc, TidyOmitOptionalTags ); cfgBool( doc, TidyOmitOptionalTags );
Bool classic = cfgBool( doc, TidyVertSpace ); Bool classic = TidyClassicVS; /* #228 - cfgBool( doc, TidyVertSpace ); */
uint contentIndent = indent; uint contentIndent = indent;
/* insert extra newline for classic formatting */ /* insert extra newline for classic formatting */