Skip to content

Commit d2ec01b

Browse files
committed
fix escaped expressions inside calc() function. fix #60
1 parent d3d8bab commit d2ec01b

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

src/com/inet/lib/less/LessParser.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -898,22 +898,33 @@ private Expression parseExpression( char leftOperator ) {
898898
break;
899899
case "calc":
900900
int parenthesisCount = 0;
901+
right = null;
901902
CALC: do {
902903
ch = read();
903904
switch( ch ) {
905+
case '~':
906+
if( isWhitespace( builder ) ) {
907+
right = new Operation( reader, parseExpression( ch ), ch );
908+
continue;
909+
}
910+
break;
904911
case '(':
905912
parenthesisCount++;
906913
break;
907914
case ')':
908915
if( parenthesisCount == 0 ) {
916+
String val = trim( builder );
917+
if( right == null ) {
918+
right = new ValueExpression( reader, val, Expression.STRING );
919+
}
909920
break CALC;
910921
}
911922
parenthesisCount--;
912923
break;
913924
}
914925
builder.append( ch );
915926
} while( true );
916-
op = new Operation( reader, new ValueExpression( reader, trim( builder ), Expression.STRING ), ';' );
927+
op = new Operation( reader, right, ';' );
917928
right = new FunctionExpression( reader, str, op );
918929
break;
919930
default:

test/com/inet/lib/less/samples/general/minus.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
calcCompact: calc(100%-98px);
2727
calcVariable: calc(90% -10px);
2828
calcNested: calc(100% - (2 * 2em));
29+
calcEscaped: calc(100% - (2 * 2em));
2930
}
3031
:root {
3132
--main-bg-color: pink;

test/com/inet/lib/less/samples/general/minus.less

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
@b : 10px;
3131
calcVariable: calc(@a -@b);
3232
calcNested: calc(100% - (2 * 2em));
33+
calcEscaped: calc(~"100% - (2 * 2em)");
3334
}
3435
:root {
3536
--main-bg-color: pink;

0 commit comments

Comments
 (0)