From 72f8116fffa66b299231b9bb5aa1b380981c177c Mon Sep 17 00:00:00 2001 From: Brian Towles Date: Mon, 14 Apr 2014 15:32:31 -0500 Subject: [PATCH 1/3] added support for null default value in inline if --- scss.inc.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scss.inc.php b/scss.inc.php index b3bfc5b0..ffdee5fa 100644 --- a/scss.inc.php +++ b/scss.inc.php @@ -1022,6 +1022,8 @@ protected function reduce($value, $inExp = false) { } } return array("function", $name, array("list", ",", $listArgs)); + case "null": + return array("keyword","false"); default: return $value; } From f3e1cde5c976da2315e8f04d0dfc42576b95ce5f Mon Sep 17 00:00:00 2001 From: Brian Towles Date: Mon, 14 Apr 2014 17:21:20 -0500 Subject: [PATCH 2/3] real support for null default value in if --- scss.inc.php | 3 +-- tests/inputs/if_on_null.scss | 8 ++++++++ tests/outputs/if_on_null.css | 2 ++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 tests/inputs/if_on_null.scss create mode 100644 tests/outputs/if_on_null.css diff --git a/scss.inc.php b/scss.inc.php index ffdee5fa..6ca305a9 100644 --- a/scss.inc.php +++ b/scss.inc.php @@ -1022,8 +1022,6 @@ protected function reduce($value, $inExp = false) { } } return array("function", $name, array("list", ",", $listArgs)); - case "null": - return array("keyword","false"); default: return $value; } @@ -1871,6 +1869,7 @@ public function toRGB($hue, $saturation, $lightness) { protected function lib_if($args) { list($cond,$t, $f) = $args; if ($cond == self::$false) return $f; + elseif ($cond == self::$null) return $f; return $t; } diff --git a/tests/inputs/if_on_null.scss b/tests/inputs/if_on_null.scss new file mode 100644 index 00000000..ff729e74 --- /dev/null +++ b/tests/inputs/if_on_null.scss @@ -0,0 +1,8 @@ +@function testfunc($pseudo: null) { + $output: if($pseudo, "green", "red"); + @return $output; +} + +body { + background-color: testfunc(); +} \ No newline at end of file diff --git a/tests/outputs/if_on_null.css b/tests/outputs/if_on_null.css new file mode 100644 index 00000000..2dfca956 --- /dev/null +++ b/tests/outputs/if_on_null.css @@ -0,0 +1,2 @@ +body { + background-color: "red"; } From 17b7e35349f59872ffb17003c6be0d38cf9e3c22 Mon Sep 17 00:00:00 2001 From: Brian Towles Date: Mon, 14 Apr 2014 18:10:59 -0500 Subject: [PATCH 3/3] moved check for lib_if to use isTruthy --- scss.inc.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scss.inc.php b/scss.inc.php index 6ca305a9..93b6d1bd 100644 --- a/scss.inc.php +++ b/scss.inc.php @@ -1868,8 +1868,7 @@ public function toRGB($hue, $saturation, $lightness) { protected static $lib_if = array("condition", "if-true", "if-false"); protected function lib_if($args) { list($cond,$t, $f) = $args; - if ($cond == self::$false) return $f; - elseif ($cond == self::$null) return $f; + if (!$this->isTruthy($cond)) return $f; return $t; }