diff --git a/src/CSS.php b/src/CSS.php index 761006d..89fcf1b 100644 --- a/src/CSS.php +++ b/src/CSS.php @@ -708,7 +708,8 @@ protected function extractCalcs() return $placeholder.$rest; }; - $this->registerPattern('/calc(\(.+?)(?=$|;|calc\()/m', $callback); + $this->registerPattern('/calc(\(.+?)(?=$|;|}|calc\()/', $callback); + $this->registerPattern('/calc(\(.+?)(?=$|;|}|calc\()/m', $callback); } /** diff --git a/tests/css/CSSTest.php b/tests/css/CSSTest.php index 4233542..76f80ab 100644 --- a/tests/css/CSSTest.php +++ b/tests/css/CSSTest.php @@ -505,6 +505,12 @@ public function dataProvider() '.cvp-live-filter select{background-position:calc(100% - 20px) calc(1em + 2px),calc(100% - 15px) calc(1em + 2px),calc(100% - 2.5em) .5em}', ); + // https://github.com/matthiasmullie/minify/issues/301 + $tests[] = array( + '.e-gallery-masonry .e-gallery-item{--percent-height: 0;position:absolute;width:calc(100% / var(--columns) - (var(--hgap) * (var(--columns) - 1) / var(--columns)));left:calc((100% / var(--columns) - (var(--hgap) * (var(--columns) - 1) / var(--columns))) * var(--column) + (var(--hgap) * var(--column)));top:calc(var(--percent-height) + (var(--row) * var(--vgap)))}.e-gallery-masonry .e-gallery-image{padding-bottom:var(--item-height)}', + '.e-gallery-masonry .e-gallery-item{--percent-height:0;position:absolute;width:calc(100% / var(--columns) - (var(--hgap) * (var(--columns) - 1) / var(--columns)));left:calc((100% / var(--columns) - (var(--hgap) * (var(--columns) - 1) / var(--columns))) * var(--column) + (var(--hgap) * var(--column)));top:calc(var(--percent-height) + (var(--row) * var(--vgap)))}.e-gallery-masonry .e-gallery-image{padding-bottom:var(--item-height)}', + ); + // https://github.com/matthiasmullie/minify/issues/139 $tests[] = array( __DIR__.'/sample/line_endings/lf/parent.css',