From dd024efeca3b29d20b3d5b5b826562c015cce31a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 15 Jul 2015 11:14:00 +1000 Subject: [PATCH 001/226] Travis work --- .travis.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..4e38b33 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +language: cpp + +compiler: + - gcc + +before_install: + - echo $LANG + - echo $LC_ALL + - if [ $TRAVIS_OS_NAME == linux ]; then sudo apt-get update && sudo apt-get install -y llvm-3.4 llvm-3.4-dev; fi + - if [ $TRAVIS_OS_NAME == osx ]; then brew update && brew install llvm35 && brew link --force llvm35; fi + - rvm use $RVM --install --binary --fuzzy + - gem update --system + - gem --version + +before_script: + - travis_retry bundle + - if [ $TRAVIS_OS_NAME == linux ]; then travis_retry ./configure --llvm-config llvm-config-3.4; fi + - if [ $TRAVIS_OS_NAME == osx ]; then travis_retry ./configure; fi + +os: + - linux + - osx \ No newline at end of file From d5a0a624eef43a509ee08c249f1f8136944c2b6c Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 15 Jul 2015 11:23:50 +1000 Subject: [PATCH 002/226] More Travis work --- .travis.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4e38b33..e8a0d65 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,11 +12,6 @@ before_install: - gem update --system - gem --version -before_script: - - travis_retry bundle - - if [ $TRAVIS_OS_NAME == linux ]; then travis_retry ./configure --llvm-config llvm-config-3.4; fi - - if [ $TRAVIS_OS_NAME == osx ]; then travis_retry ./configure; fi - os: - linux - osx \ No newline at end of file From a6659cd246eacd406472f7a437cb65b246862f9f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 15 Jul 2015 13:21:15 +1000 Subject: [PATCH 003/226] More Travis --- .travis.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index e8a0d65..5d9555a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,9 +9,15 @@ before_install: - if [ $TRAVIS_OS_NAME == linux ]; then sudo apt-get update && sudo apt-get install -y llvm-3.4 llvm-3.4-dev; fi - if [ $TRAVIS_OS_NAME == osx ]; then brew update && brew install llvm35 && brew link --force llvm35; fi - rvm use $RVM --install --binary --fuzzy - - gem update --system + - apt-get install php - gem --version +before_script: + - git submodule init + - git submodule update + +script: + - bundle php install.php + os: - linux - - osx \ No newline at end of file From d0fd400fa83b4e8bee83fd7d7295efa156b2defa Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:06:26 +1000 Subject: [PATCH 004/226] Travis - expose script & test --- .travis.yml | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5d9555a..e3fbf99 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,22 +2,40 @@ language: cpp compiler: - gcc + - clang before_install: - echo $LANG - echo $LC_ALL - if [ $TRAVIS_OS_NAME == linux ]; then sudo apt-get update && sudo apt-get install -y llvm-3.4 llvm-3.4-dev; fi - if [ $TRAVIS_OS_NAME == osx ]; then brew update && brew install llvm35 && brew link --force llvm35; fi - - rvm use $RVM --install --binary --fuzzy - - apt-get install php - - gem --version - -before_script: - git submodule init - git submodule update + +before_script: + - travis_retry bundle + - if [ $TRAVIS_OS_NAME == linux ]; then travis_retry ./configure --llvm-config llvm-config-3.4; fi + - if [ $TRAVIS_OS_NAME == osx ]; then travis_retry ./configure; fi + +install: + - make get-deps + script: - - bundle php install.php + - make clean + - cd lib/libsass && make && cd ../.. + - phpize + - ./configure + - make + +after_success: + - make test + + +notifications: + on_success: never + on_failure: never os: - linux + - osx From 1ec903069a63b862492015774e8394a39e2c653a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:12:08 +1000 Subject: [PATCH 005/226] Remove redundant make --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index e3fbf99..95d5c4e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,9 +18,6 @@ before_script: - if [ $TRAVIS_OS_NAME == linux ]; then travis_retry ./configure --llvm-config llvm-config-3.4; fi - if [ $TRAVIS_OS_NAME == osx ]; then travis_retry ./configure; fi -install: - - make get-deps - script: - make clean - cd lib/libsass && make && cd ../.. From dc60b5e2d9e27b8e1212179d69c75ed45aa80c77 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:14:09 +1000 Subject: [PATCH 006/226] More Friday --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 95d5c4e..40ad9e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,6 @@ script: after_success: - make test - notifications: on_success: never on_failure: never From 04314ae792ec52c1b9cf1754b1bea4e6c53775bb Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:15:26 +1000 Subject: [PATCH 007/226] Remove Gemfile --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 40ad9e4..7189340 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,6 @@ before_install: before_script: - - travis_retry bundle - if [ $TRAVIS_OS_NAME == linux ]; then travis_retry ./configure --llvm-config llvm-config-3.4; fi - if [ $TRAVIS_OS_NAME == osx ]; then travis_retry ./configure; fi From 00708aaa480152ac2f84ab5413891804269cffd2 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:17:59 +1000 Subject: [PATCH 008/226] Simpler travis --- .travis.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7189340..892ecc8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,16 +7,9 @@ compiler: before_install: - echo $LANG - echo $LC_ALL - - if [ $TRAVIS_OS_NAME == linux ]; then sudo apt-get update && sudo apt-get install -y llvm-3.4 llvm-3.4-dev; fi - - if [ $TRAVIS_OS_NAME == osx ]; then brew update && brew install llvm35 && brew link --force llvm35; fi - git submodule init - git submodule update - -before_script: - - if [ $TRAVIS_OS_NAME == linux ]; then travis_retry ./configure --llvm-config llvm-config-3.4; fi - - if [ $TRAVIS_OS_NAME == osx ]; then travis_retry ./configure; fi - script: - make clean - cd lib/libsass && make && cd ../.. From 21c0b38015af7839783f95f9dd1d6254c6b71985 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:26:56 +1000 Subject: [PATCH 009/226] Need PHPize stuff --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 892ecc8..d1cdc0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ compiler: before_install: - echo $LANG - echo $LC_ALL + - sudo apt-get install php5-dev - git submodule init - git submodule update From 8259eaf4f8f86d10bf4ca47887a2757260ff036f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:29:47 +1000 Subject: [PATCH 010/226] Still trying to get PHP dev on --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index d1cdc0c..41fe800 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,7 @@ compiler: before_install: - echo $LANG - echo $LC_ALL + - sudo apt-get update - sudo apt-get install php5-dev - git submodule init - git submodule update From 8f74b249be0513f993e0ff8ecd426f18007a8c47 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:40:47 +1000 Subject: [PATCH 011/226] Travis: preconf web server & install extension on sequence --- .travis.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.travis.yml b/.travis.yml index 41fe800..7a57234 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,19 @@ before_install: - echo $LC_ALL - sudo apt-get update - sudo apt-get install php5-dev + - sudo apt-get install apache2 + - sudo a2enmod actions + - sudo a2enmod rewrite + - echo "export PATH=/home/vagrant/.phpenv/bin:$PATH" | sudo tee -a /etc/apache2/envvars > /dev/null + - echo "$(curl -fsSL https://gist.github.com/roderik/16d751c979fdeb5a14e3/raw/gistfile1.txt)" | sudo tee /etc/apache2/conf.d/phpconfig > /dev/null + - echo "$(curl -fsSL https://gist.github.com/roderik/2eb301570ed4a1f4c33d/raw/gistfile1.txt)" | sed -e "s,PATH,`pwd`/web,g" | sudo tee /etc/apache2/sites-available/default > /dev/null + - sudo service apache2 restart + - mysql -u root -e "CREATE USER 'myproject'@'localhost' IDENTIFIED BY 'mypass'" + - mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'myproject'@'localhost' WITH GRANT OPTION;" + - bin/vendors install + - app/console doctrine:database:create + - app/console doctrine:schema:update --force + - app/console doctrine:fixtures:load - git submodule init - git submodule update @@ -18,6 +31,7 @@ script: - phpize - ./configure - make + - make install after_success: - make test From b11fda599cd6d589ad5fdefa489cdef1a4d3ce35 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:46:28 +1000 Subject: [PATCH 012/226] More Travis work --- .travis.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7a57234..811d0ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,9 +7,9 @@ compiler: before_install: - echo $LANG - echo $LC_ALL - - sudo apt-get update - - sudo apt-get install php5-dev - - sudo apt-get install apache2 + - sudo apt-get update -qq + - sudo apt-get install -y php5-dev + - sudo apt-get install -y apache2 - sudo a2enmod actions - sudo a2enmod rewrite - echo "export PATH=/home/vagrant/.phpenv/bin:$PATH" | sudo tee -a /etc/apache2/envvars > /dev/null @@ -18,10 +18,6 @@ before_install: - sudo service apache2 restart - mysql -u root -e "CREATE USER 'myproject'@'localhost' IDENTIFIED BY 'mypass'" - mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'myproject'@'localhost' WITH GRANT OPTION;" - - bin/vendors install - - app/console doctrine:database:create - - app/console doctrine:schema:update --force - - app/console doctrine:fixtures:load - git submodule init - git submodule update From 7a7c1bfaa30c8fd72e3ed47e37c02a028d36369c Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 7 Aug 2015 15:54:53 +1000 Subject: [PATCH 013/226] Remove make install from Travis. Leave it at tests --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 811d0ae..c033719 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,9 +27,6 @@ script: - phpize - ./configure - make - - make install - -after_success: - make test notifications: From cf526a3c11eaaba5b315b1e52dbad36df601a185 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 11 Aug 2015 08:52:41 +1000 Subject: [PATCH 014/226] Test Windows conf --- config.w32 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 config.w32 diff --git a/config.w32 b/config.w32 new file mode 100644 index 0000000..ee90852 --- /dev/null +++ b/config.w32 @@ -0,0 +1,14 @@ +// vim:ft=javascript + +ARG_ENABLE("sass", "whether to enable sass extension", "yes"); + +if (PHP_SASS == "yes") { + CHECK_LIB("sass", lib/libexec, LIBSASS_SHARED_LIBADD); + LDFLAGS="-lsass -L"`pwd`"/lib/libsass/lib/ -lstdc++"; + EXTENSION("sass", "src/sass.c src/utilities.c"); + + if ("x$sass_version" != "x") { + CFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CFLAGS"; + CXXFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CXXFLAGS"; + } +} \ No newline at end of file From 27163830965e704bba02b15679080f0a2c39b2d6 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 11 Aug 2015 13:38:33 +1000 Subject: [PATCH 015/226] Force install of PHP extension - see if it breaks on Travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index c033719..1d906a5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,7 @@ script: - phpize - ./configure - make + - make install - make test notifications: From bdc38d003851d7f8400861a4baf85caf220c83fc Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 11:29:18 +1000 Subject: [PATCH 016/226] Appveyor test setup --- appveyor.yml | 25 +++++++++++++++++++++++++ config.w32 | 8 ++++++++ 2 files changed, 33 insertions(+) create mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..d01bfaf --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,25 @@ +platform: + - x64 + - x86 + +configuration: + - Debug + - Release + +install: + - git git clone -q --branch=master https://github.com/absalomedia/sassphp.git C:\projects\sassphp + - cinst php-devel + - SET PATH=C:\php\;%PATH% + - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' + - cd C:\php-src\ + - buildconf.bat --add-modules-dir=C:\projects\sassphp + - configure.bat --disable-all --enable-cli --enable-sass + - nmake php_sass.dll + +build: OFF + +test: OFF + +test_script: OFF + +deploy: OFF \ No newline at end of file diff --git a/config.w32 b/config.w32 index ee90852..55991b5 100644 --- a/config.w32 +++ b/config.w32 @@ -2,6 +2,14 @@ ARG_ENABLE("sass", "whether to enable sass extension", "yes"); +ADD_FLAG('CFLAGS', ' /wd4005 /wd4267 /wd4244 '); +ADD_FLAG('CFLAGS_BD_ZEND', ' /wd4018 /wd4101 /wd4090 /wd4273 '); +ADD_FLAG('CFLAGS_BD_MAIN', ' /wd4018 /wd4090 '); +ADD_FLAG('CFLAGS_BD_MAIN_STREAMS', ' /wd4013 '); +DEFINE('RC', '$(RC) /nologo /d _USING_V110_SDK71_'); +ADD_FLAG('CFLAGS_BD_EXT_STANDARD', ' /wd4047 /wd4018 '); +ADD_FLAG('CFLAGS_BD_SAPI_CLI', ' /wd4018 '); + if (PHP_SASS == "yes") { CHECK_LIB("sass", lib/libexec, LIBSASS_SHARED_LIBADD); LDFLAGS="-lsass -L"`pwd`"/lib/libsass/lib/ -lstdc++"; From fefa5e744a53cfd23ee9913d1e886078cd6b57f9 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 11:37:32 +1000 Subject: [PATCH 017/226] Appveyor restructure --- appveyor.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index d01bfaf..4852875 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,7 +7,9 @@ configuration: - Release install: - - git git clone -q --branch=master https://github.com/absalomedia/sassphp.git C:\projects\sassphp + - cd C:\projects\sassphp + - git submodule init + - git submodule update - cinst php-devel - SET PATH=C:\php\;%PATH% - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' From 832a86680b761943765bdf49e5ee09a735d07198 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 11:58:00 +1000 Subject: [PATCH 018/226] Get right link to PHP5 dev in Chocolatey --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 4852875..cdc2948 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,7 +10,7 @@ install: - cd C:\projects\sassphp - git submodule init - git submodule update - - cinst php-devel + - cinst php5-dev - SET PATH=C:\php\;%PATH% - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - cd C:\php-src\ From 69be397100c15cca312daa5a68e47ee96b6a0a0f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 13:50:07 +1000 Subject: [PATCH 019/226] Powershell hack to get PHP src as Chocolatey dev is broken --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index cdc2948..a80750b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,8 +10,8 @@ install: - cd C:\projects\sassphp - git submodule init - git submodule update - - cinst php5-dev - - SET PATH=C:\php\;%PATH% + - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'C:\php-5.6.12-src.zip') + - ps: (new-object -com shell.application).namespace('C:\php-src').CopyHere((new-object -com shell.application).namespace('C:\php-5.6.12-src.zip').Items(),16) - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - cd C:\php-src\ - buildconf.bat --add-modules-dir=C:\projects\sassphp From 50babeccd5e84fced214a61c4272f0e6ae543537 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 13:59:47 +1000 Subject: [PATCH 020/226] Make PS call single line as breaking on AppVeyor --- appveyor.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index a80750b..543ba90 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,8 +10,7 @@ install: - cd C:\projects\sassphp - git submodule init - git submodule update - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'C:\php-5.6.12-src.zip') - - ps: (new-object -com shell.application).namespace('C:\php-src').CopyHere((new-object -com shell.application).namespace('C:\php-5.6.12-src.zip').Items(),16) + - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'C:\php-5.6.12-src.zip');(new-object -com shell.application).namespace('C:\php-src').CopyHere((new-object -com shell.application).namespace('C:\php-5.6.12-src.zip').Items(),16) - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - cd C:\php-src\ - buildconf.bat --add-modules-dir=C:\projects\sassphp From 74a1a4f4723b1af100be9ba2a025a311c691a807 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 14:03:11 +1000 Subject: [PATCH 021/226] Set extension to create DLL --- config.w32 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.w32 b/config.w32 index 55991b5..e4c0e73 100644 --- a/config.w32 +++ b/config.w32 @@ -13,7 +13,7 @@ ADD_FLAG('CFLAGS_BD_SAPI_CLI', ' /wd4018 '); if (PHP_SASS == "yes") { CHECK_LIB("sass", lib/libexec, LIBSASS_SHARED_LIBADD); LDFLAGS="-lsass -L"`pwd`"/lib/libsass/lib/ -lstdc++"; - EXTENSION("sass", "src/sass.c src/utilities.c"); + EXTENSION("sass", "src/sass.c src/utilities.c", true); if ("x$sass_version" != "x") { CFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CFLAGS"; From 853d390a9f24571d3b2f3c128492801ef92c7d8d Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 14:22:53 +1000 Subject: [PATCH 022/226] More work on Powershell structures for Appveyor --- appveyor.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 543ba90..860b76f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -10,7 +10,10 @@ install: - cd C:\projects\sassphp - git submodule init - git submodule update - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'C:\php-5.6.12-src.zip');(new-object -com shell.application).namespace('C:\php-src').CopyHere((new-object -com shell.application).namespace('C:\php-5.6.12-src.zip').Items(),16) + - cd C:\ + - mkdir php-src + - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'php-5.6.12-src.zip') + - ps: (new-object -com shell.application).namespace('C:\php-src').CopyHere((new-object -com shell.application).namespace('C:\php-5.6.12-src.zip').Items(),16) - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - cd C:\php-src\ - buildconf.bat --add-modules-dir=C:\projects\sassphp From ceb03c30c3a305e7533885b4c60a3b6767e929d4 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 15:27:16 +1000 Subject: [PATCH 023/226] Restructure based on local R2 testing --- appveyor.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 860b76f..bb82ec1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,15 +7,17 @@ configuration: - Release install: + - cinst 7zip.commandline - cd C:\projects\sassphp - git submodule init - git submodule update - cd C:\ - mkdir php-src - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'php-5.6.12-src.zip') - - ps: (new-object -com shell.application).namespace('C:\php-src').CopyHere((new-object -com shell.application).namespace('C:\php-5.6.12-src.zip').Items(),16) + - ps: cd ~ + - 7z x -y php-5.6.12-src.zip -oC:\php-src - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - - cd C:\php-src\ + - cd C:\php-src\php-5.6.12-src - buildconf.bat --add-modules-dir=C:\projects\sassphp - configure.bat --disable-all --enable-cli --enable-sass - nmake php_sass.dll From ca1ce822de65d32cdb0cabaace0274557cbcf399 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 15:40:08 +1000 Subject: [PATCH 024/226] Restructure to $home --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index bb82ec1..3cb33f4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -14,7 +14,7 @@ install: - cd C:\ - mkdir php-src - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'php-5.6.12-src.zip') - - ps: cd ~ + - ps: cd $home - 7z x -y php-5.6.12-src.zip -oC:\php-src - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - cd C:\php-src\php-5.6.12-src From 35155cf5251347816fb8d6e42676958c79581ad4 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 12 Aug 2015 15:54:05 +1000 Subject: [PATCH 025/226] Remove 7z install - not needed --- appveyor.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 3cb33f4..e7f7fec 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,14 +7,12 @@ configuration: - Release install: - - cinst 7zip.commandline - cd C:\projects\sassphp - git submodule init - git submodule update - cd C:\ - mkdir php-src - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'php-5.6.12-src.zip') - - ps: cd $home - 7z x -y php-5.6.12-src.zip -oC:\php-src - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - cd C:\php-src\php-5.6.12-src From e64d9392d4912351d7bcbbb8a3acd8ca19da1e9f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 08:04:50 +1000 Subject: [PATCH 026/226] Get build folder --- appveyor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/appveyor.yml b/appveyor.yml index e7f7fec..0117bd4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -13,6 +13,7 @@ install: - cd C:\ - mkdir php-src - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'php-5.6.12-src.zip') + - cd %appveyor_build_folder% - 7z x -y php-5.6.12-src.zip -oC:\php-src - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - cd C:\php-src\php-5.6.12-src From 99c00584f115e6a7b184ed59187a2d3c352ec31c Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 08:18:24 +1000 Subject: [PATCH 027/226] More work trying to extract PHP src --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 0117bd4..1f147b9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -14,7 +14,7 @@ install: - mkdir php-src - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'php-5.6.12-src.zip') - cd %appveyor_build_folder% - - 7z x -y php-5.6.12-src.zip -oC:\php-src + - 7z x -y %appveyor_build_folder%\php-5.6.12-src.zip -oC:\php-src - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - cd C:\php-src\php-5.6.12-src - buildconf.bat --add-modules-dir=C:\projects\sassphp From a9ab37f684b862a6fc71fc999e667b97cff72d3a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:16:48 +1000 Subject: [PATCH 028/226] Redesigned Appveyor --- appveyor.yml | 53 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 1f147b9..5fc81ac 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,10 +1,29 @@ -platform: - - x64 - - x86 +environment: + matrix: + - PHP_VERSION: 5.6.12 + platform: x86 + - PHP_VERSION: 5.5.28 + platform: x86 + #x64 + - PHP_VERSION: 5.6.12 + platform: x64 + - PHP_VERSION: 5.5.28 + platform: x64 -configuration: - - Debug - - Release +os: + - Visual Studio 2015 + - Windows Server 2012 R2 + +configuration: Release + +version: '0.0.{build}-$(PHP_VERSION)' + +build: + parallel: true + verbosity: detailed + +matrix: + fast_finish: true install: - cd C:\projects\sassphp @@ -12,19 +31,25 @@ install: - git submodule update - cd C:\ - mkdir php-src - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-5.6.12-src.zip', 'php-5.6.12-src.zip') - - cd %appveyor_build_folder% - - 7z x -y %appveyor_build_folder%\php-5.6.12-src.zip -oC:\php-src - - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - - cd C:\php-src\php-5.6.12-src + - cd %APPVEYOR_BUILD_FOLDER% + - echo Preparing Windows build... + - echo Downloading PHP source code [%PHP_VERSION%] + - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-' + ${env:PHP_VERSION} + 'src.zip', ${env:APPVEYOR_BUILD_FOLDER} + '\..\php-src.zip') + - cd .. + - 7z x -y php-src.zip -oC:\php-src + - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /' + ${env:platform} + '' + +build_script: + - cd C:\php-src\php-' + ${env:PHP_VERSION} + '-src - buildconf.bat --add-modules-dir=C:\projects\sassphp - configure.bat --disable-all --enable-cli --enable-sass - nmake php_sass.dll -build: OFF - test: OFF test_script: OFF -deploy: OFF \ No newline at end of file +deploy: OFF + +artifacts: + - path: ext\Release_TS\php_sass.dll \ No newline at end of file From 68893e6626b8050126a00216b97b113da33769e6 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:18:36 +1000 Subject: [PATCH 029/226] More tweaks --- appveyor.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 5fc81ac..66d1083 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -18,10 +18,6 @@ configuration: Release version: '0.0.{build}-$(PHP_VERSION)' -build: - parallel: true - verbosity: detailed - matrix: fast_finish: true From abbf456b7454e0fa9f7b98af83a614a86a36d151 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:23:51 +1000 Subject: [PATCH 030/226] More redesign of App --- appveyor.yml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 66d1083..eec7ada 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,22 +1,16 @@ environment: - matrix: - PHP_VERSION: 5.6.12 - platform: x86 - - PHP_VERSION: 5.5.28 - platform: x86 - #x64 - - PHP_VERSION: 5.6.12 - platform: x64 - - PHP_VERSION: 5.5.28 - platform: x64 - os: - Visual Studio 2015 - Windows Server 2012 R2 +platform: + - x86 + - x64 + configuration: Release -version: '0.0.{build}-$(PHP_VERSION)' +version: '{build}-$(PHP_VERSION)' matrix: fast_finish: true From 9f34ff6df4d050b4d2c4342407f8f13ab5cd1f30 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:28:49 +1000 Subject: [PATCH 031/226] More Appveyor --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index eec7ada..03b090d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -27,7 +27,7 @@ install: - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-' + ${env:PHP_VERSION} + 'src.zip', ${env:APPVEYOR_BUILD_FOLDER} + '\..\php-src.zip') - cd .. - 7z x -y php-src.zip -oC:\php-src - - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /' + ${env:platform} + '' + - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - cd C:\php-src\php-' + ${env:PHP_VERSION} + '-src From f66778070722503ec465bcaed8efc12260f8841b Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:32:39 +1000 Subject: [PATCH 032/226] YAML work --- appveyor.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index 03b090d..e5477f1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,8 @@ +shallow_clone: true + environment: - PHP_VERSION: 5.6.12 + os: - Visual Studio 2015 - Windows Server 2012 R2 From 4cb7ed50b821f4a9b9085ce0ae66269217b52868 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:36:12 +1000 Subject: [PATCH 033/226] Trying to get environment var right --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index e5477f1..01b9348 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,8 +1,8 @@ shallow_clone: true environment: - - PHP_VERSION: 5.6.12 - + PHP_VERSION: 5.6.12 + os: - Visual Studio 2015 - Windows Server 2012 R2 From a5d534bff5e7307a8281cf719941e37bd044bcf0 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:38:06 +1000 Subject: [PATCH 034/226] Drop PHP version from App build --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 01b9348..6cace87 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -13,7 +13,7 @@ platform: configuration: Release -version: '{build}-$(PHP_VERSION)' +version: '0.0.{build}' matrix: fast_finish: true From d14b13284c2eeff051276546e5290cc1847a99ff Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:50:58 +1000 Subject: [PATCH 035/226] No need to shallow clone --- appveyor.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 6cace87..b85619b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,3 @@ -shallow_clone: true - environment: PHP_VERSION: 5.6.12 From c5985398b09707bb7204970d07f7e1bd8a46a499 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 09:58:51 +1000 Subject: [PATCH 036/226] Reconcile PHP version --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index b85619b..30d036b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -25,13 +25,13 @@ install: - cd %APPVEYOR_BUILD_FOLDER% - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-' + ${env:PHP_VERSION} + 'src.zip', ${env:APPVEYOR_BUILD_FOLDER} + '\..\php-src.zip') + - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-' + %PHP_VERSION% + 'src.zip', %APPVEYOR_BUILD_FOLDER% + '\..\php-src.zip') - cd .. - 7z x -y php-src.zip -oC:\php-src - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - - cd C:\php-src\php-' + ${env:PHP_VERSION} + '-src + - cd C:\php-src\php-' + %PHP_VERSION% + '-src - buildconf.bat --add-modules-dir=C:\projects\sassphp - configure.bat --disable-all --enable-cli --enable-sass - nmake php_sass.dll From 0953fde2c9c486ee9f80ce113c7785f40073a8a2 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 10:19:48 +1000 Subject: [PATCH 037/226] Still trying to resolve dynamic linking --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 30d036b..cd01b77 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -25,7 +25,7 @@ install: - cd %APPVEYOR_BUILD_FOLDER% - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-' + %PHP_VERSION% + 'src.zip', %APPVEYOR_BUILD_FOLDER% + '\..\php-src.zip') + - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-' + $env:PHP_VERSION + 'src.zip', $env:APPVEYOR_BUILD_FOLDER + '\..\php-src.zip') - cd .. - 7z x -y php-src.zip -oC:\php-src - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' From efb29ba27212868dcc8bf3de9be2d97eeed32f62 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 10:48:56 +1000 Subject: [PATCH 038/226] More redesign on download --- appveyor.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index cd01b77..58cc60e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -22,16 +22,15 @@ install: - git submodule update - cd C:\ - mkdir php-src - - cd %APPVEYOR_BUILD_FOLDER% - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-' + $env:PHP_VERSION + 'src.zip', $env:APPVEYOR_BUILD_FOLDER + '\..\php-src.zip') - - cd .. - - 7z x -y php-src.zip -oC:\php-src + - cd C:\php-src + - appveyor DownloadFile http://windows.php.net/downloads/releases/php-' + echo %PHP_VERSION% + '-src.zip -FileName php-src.zip + - 7z x -y php-src.zip - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - - cd C:\php-src\php-' + %PHP_VERSION% + '-src + - cd C:\php-src\php-' + echo %PHP_VERSION% + '-src - buildconf.bat --add-modules-dir=C:\projects\sassphp - configure.bat --disable-all --enable-cli --enable-sass - nmake php_sass.dll From f83a1ae8eedfa8a8f7a743e269051f098e798299 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 10:56:53 +1000 Subject: [PATCH 039/226] Return of hardcoding --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 58cc60e..aac1526 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -25,12 +25,12 @@ install: - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - cd C:\php-src - - appveyor DownloadFile http://windows.php.net/downloads/releases/php-' + echo %PHP_VERSION% + '-src.zip -FileName php-src.zip + - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.12-src.zip -FileName php-src.zip - 7z x -y php-src.zip - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - - cd C:\php-src\php-' + echo %PHP_VERSION% + '-src + - cd C:\php-src\php-5.6.12-src - buildconf.bat --add-modules-dir=C:\projects\sassphp - configure.bat --disable-all --enable-cli --enable-sass - nmake php_sass.dll From f3017dbcb2b358d5b79ad14c620ada5409707de0 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 11:24:19 +1000 Subject: [PATCH 040/226] Quench 7z output, cscript call --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index aac1526..aa55057 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -26,13 +26,13 @@ install: - echo Downloading PHP source code [%PHP_VERSION%] - cd C:\php-src - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.12-src.zip -FileName php-src.zip - - 7z x -y php-src.zip + - 7z x -y php-src.zip > nul - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - cd C:\php-src\php-5.6.12-src - buildconf.bat --add-modules-dir=C:\projects\sassphp - - configure.bat --disable-all --enable-cli --enable-sass + - cscript /nologo configure.js % --disable-all --enable-cli --enable-sass - nmake php_sass.dll test: OFF From 08a14c5a4a73a3d38f3e1214c94f5ef4278c4253 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 11:41:44 +1000 Subject: [PATCH 041/226] Better PHP build negotation on App --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index aa55057..2f64262 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -31,8 +31,8 @@ install: build_script: - cd C:\php-src\php-5.6.12-src - - buildconf.bat --add-modules-dir=C:\projects\sassphp - - cscript /nologo configure.js % --disable-all --enable-cli --enable-sass + - buildconf.bat --add-modules-dir=C:\projects + - configure --disable-all --enable-cli --enable-sass - nmake php_sass.dll test: OFF From 143af9395fd1f2fbc97d1205fda771ddd7f946c8 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 12:50:52 +1000 Subject: [PATCH 042/226] Config.w32 quote marks --- config.w32 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.w32 b/config.w32 index e4c0e73..400f2f9 100644 --- a/config.w32 +++ b/config.w32 @@ -12,7 +12,7 @@ ADD_FLAG('CFLAGS_BD_SAPI_CLI', ' /wd4018 '); if (PHP_SASS == "yes") { CHECK_LIB("sass", lib/libexec, LIBSASS_SHARED_LIBADD); - LDFLAGS="-lsass -L"`pwd`"/lib/libsass/lib/ -lstdc++"; + LDFLAGS="-lsass -L"'pwd'"/lib/libsass/lib/ -lstdc++"; EXTENSION("sass", "src/sass.c src/utilities.c", true); if ("x$sass_version" != "x") { From 2f67f2c787256ca27b3b38152fd4eaa51d551e7c Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 12:54:27 +1000 Subject: [PATCH 043/226] Hide notifications --- appveyor.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index 2f64262..0bcca47 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -41,5 +41,10 @@ test_script: OFF deploy: OFF +notifications: + - on_build_success: false + on_build_failure: false + on_build_status_changed: false + artifacts: - path: ext\Release_TS\php_sass.dll \ No newline at end of file From 79ee566e55a7440e96edaeacbaa160acf67b0854 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 13 Aug 2015 13:07:19 +1000 Subject: [PATCH 044/226] Comment out LDFlags in testing --- config.w32 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.w32 b/config.w32 index 400f2f9..ee923a8 100644 --- a/config.w32 +++ b/config.w32 @@ -12,7 +12,7 @@ ADD_FLAG('CFLAGS_BD_SAPI_CLI', ' /wd4018 '); if (PHP_SASS == "yes") { CHECK_LIB("sass", lib/libexec, LIBSASS_SHARED_LIBADD); - LDFLAGS="-lsass -L"'pwd'"/lib/libsass/lib/ -lstdc++"; + // LDFLAGS="-lsass -L"`pwd`"/lib/libsass/lib/ -lstdc++"; EXTENSION("sass", "src/sass.c src/utilities.c", true); if ("x$sass_version" != "x") { From a1bc56ac02b3d8c85184b1156f8e25baefbd3466 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 19 Aug 2015 12:53:51 +1000 Subject: [PATCH 045/226] Redesigned LDFLAGS for VS --- config.w32 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.w32 b/config.w32 index ee923a8..cb0ce4a 100644 --- a/config.w32 +++ b/config.w32 @@ -12,7 +12,7 @@ ADD_FLAG('CFLAGS_BD_SAPI_CLI', ' /wd4018 '); if (PHP_SASS == "yes") { CHECK_LIB("sass", lib/libexec, LIBSASS_SHARED_LIBADD); - // LDFLAGS="-lsass -L"`pwd`"/lib/libsass/lib/ -lstdc++"; + LDFLAGS="-lsass /libpath:/lib/libsass/lib/"; EXTENSION("sass", "src/sass.c src/utilities.c", true); if ("x$sass_version" != "x") { From 5aa15395e75fc78cd9bca1ff7659b0e1d4b4e2f5 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 20 Aug 2015 09:13:23 +1000 Subject: [PATCH 046/226] Try to find libexec --- config.w32 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.w32 b/config.w32 index cb0ce4a..dc7bd5c 100644 --- a/config.w32 +++ b/config.w32 @@ -11,7 +11,7 @@ ADD_FLAG('CFLAGS_BD_EXT_STANDARD', ' /wd4047 /wd4018 '); ADD_FLAG('CFLAGS_BD_SAPI_CLI', ' /wd4018 '); if (PHP_SASS == "yes") { - CHECK_LIB("sass", lib/libexec, LIBSASS_SHARED_LIBADD); + CHECK_LIB("sass", ' + PROGRAM_FILES + '\\Apache Group\\Apache\\libexec', LIBSASS_SHARED_LIBADD); LDFLAGS="-lsass /libpath:/lib/libsass/lib/"; EXTENSION("sass", "src/sass.c src/utilities.c", true); From 21ee3f3826f046dcbe19185e4782c447f9ba06b3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 10 Sep 2015 14:14:12 +1000 Subject: [PATCH 047/226] Simplify Appveyor --- appveyor.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 0bcca47..8e247c6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -3,11 +3,6 @@ environment: os: - Visual Studio 2015 - - Windows Server 2012 R2 - -platform: - - x86 - - x64 configuration: Release From 138fe0d5df64949ddfc63b6245ef50300e9fe9ed Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 10 Sep 2015 14:22:38 +1000 Subject: [PATCH 048/226] PHP 5.6.13 appveyor --- appveyor.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 8e247c6..e4cc1c1 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ environment: - PHP_VERSION: 5.6.12 + PHP_VERSION: 5.6.13 os: - Visual Studio 2015 @@ -20,12 +20,12 @@ install: - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - cd C:\php-src - - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.12-src.zip -FileName php-src.zip + - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.13-src.zip -FileName php-src.zip - 7z x -y php-src.zip > nul - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - - cd C:\php-src\php-5.6.12-src + - cd C:\php-src\php-5.6.13-src - buildconf.bat --add-modules-dir=C:\projects - configure --disable-all --enable-cli --enable-sass - nmake php_sass.dll From 8f6d290ab95f4823784a6ef96d905f83594337b1 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 14 Sep 2015 14:06:40 +1000 Subject: [PATCH 049/226] Fix documentation as call does both map & inline comments --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index f75c400..7e3af0e 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,6 @@ Aliases also exist so you can also use: You can set the source map file for the library to use: $sass = new Sass(); - $sass->setComments(true); $sass->setMapPath('/random.output.css.map'); $css = $sass->compileFile($source); From 46bd88c2c9f91aa365b59389d8213a1c9e7687f9 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Sun, 20 Sep 2015 01:51:18 +1000 Subject: [PATCH 050/226] Fix typo on map root --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 58254c8..c504f20 100644 --- a/src/sass.c +++ b/src/sass.c @@ -115,7 +115,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) sass_option_set_source_map_contents(opts, true); } if (this->map_root != NULL) - ssass_option_set_source_map_root(opts, this->map_root); + sass_option_set_source_map_root(opts, this->map_root); } From cfbf1a7a3e3f03a2e8cc7da6febb2b3a3e4ed5e3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Sat, 26 Sep 2015 23:39:17 +1000 Subject: [PATCH 051/226] Stronger type control --- src/sass.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/sass.c b/src/sass.c index c504f20..3bcb9ed 100644 --- a/src/sass.c +++ b/src/sass.c @@ -101,8 +101,9 @@ void set_options(sass_object *this, struct Sass_Context *ctx) sass_option_set_precision(opts, this->precision); sass_option_set_output_style(opts, this->style); - if (this->include_paths != NULL) + if (this->include_paths != NULL) { sass_option_set_include_path(opts, this->include_paths); + } sass_option_set_source_comments(opts, this->comments); if (this->comments != NULL) { sass_option_set_omit_source_map_url(opts, false); @@ -114,8 +115,9 @@ void set_options(sass_object *this, struct Sass_Context *ctx) sass_option_set_omit_source_map_url(opts, false); sass_option_set_source_map_contents(opts, true); } - if (this->map_root != NULL) + if (this->map_root != NULL) { sass_option_set_source_map_root(opts, this->map_root); + } } @@ -202,11 +204,11 @@ PHP_METHOD(Sass, compileFile) else { - if (this->map_path != NULL ) { + if (this->map_path != NULL ) { // Send it over to PHP. add_next_index_string(return_value, sass_context_get_output_string(ctx), 1); } else { - RETVAL_STRING(sass_context_get_output_string(ctx), 1); + RETVAL_STRING(sass_context_get_output_string(ctx), 1); } // Do we have source maps to go? @@ -465,11 +467,11 @@ zend_function_entry sass_methods[] = { PHP_ME(Sass, getPrecision, arginfo_sass_void, ZEND_ACC_PUBLIC) PHP_ME(Sass, setPrecision, arginfo_sass_setPrecision, ZEND_ACC_PUBLIC) PHP_ME(Sass, getComments, arginfo_sass_void, ZEND_ACC_PUBLIC) - PHP_ME(Sass, setComments, arginfo_sass_setComments, ZEND_ACC_PUBLIC) + PHP_ME(Sass, setComments, arginfo_sass_setComments, ZEND_ACC_PUBLIC) PHP_ME(Sass, getEmbed, arginfo_sass_void, ZEND_ACC_PUBLIC) PHP_ME(Sass, setEmbed, arginfo_sass_setComments, ZEND_ACC_PUBLIC) PHP_ME(Sass, getMapPath, arginfo_sass_void, ZEND_ACC_PUBLIC) - PHP_ME(Sass, setMapPath, arginfo_sass_setMapPath, ZEND_ACC_PUBLIC) + PHP_ME(Sass, setMapPath, arginfo_sass_setMapPath, ZEND_ACC_PUBLIC) PHP_ME(Sass, getLibraryVersion, arginfo_sass_void, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) PHP_MALIAS(Sass, compile_file, compileFile, NULL, ZEND_ACC_PUBLIC) {NULL, NULL, NULL} From 7fc6fd3d29ce65c04507b4742583849b04c3572a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 10:49:47 +1000 Subject: [PATCH 052/226] Restructured Travis --- .travis.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1d906a5..5a87500 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,11 @@ -language: cpp +language: php +php: + - 5.4 + - 5.5 + - 5.6 compiler: - gcc - - clang before_install: - echo $LANG @@ -16,8 +19,6 @@ before_install: - echo "$(curl -fsSL https://gist.github.com/roderik/16d751c979fdeb5a14e3/raw/gistfile1.txt)" | sudo tee /etc/apache2/conf.d/phpconfig > /dev/null - echo "$(curl -fsSL https://gist.github.com/roderik/2eb301570ed4a1f4c33d/raw/gistfile1.txt)" | sed -e "s,PATH,`pwd`/web,g" | sudo tee /etc/apache2/sites-available/default > /dev/null - sudo service apache2 restart - - mysql -u root -e "CREATE USER 'myproject'@'localhost' IDENTIFIED BY 'mypass'" - - mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'myproject'@'localhost' WITH GRANT OPTION;" - git submodule init - git submodule update @@ -27,7 +28,7 @@ script: - phpize - ./configure - make - - make install + - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - make test notifications: From dc641746df2667416e7be70c712ed2ad428768eb Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 10:58:20 +1000 Subject: [PATCH 053/226] Simpler Travis --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5a87500..3f79c14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: php php: - - 5.4 - 5.5 - 5.6 @@ -37,4 +36,3 @@ notifications: os: - linux - - osx From a812e47d8afd236b6ae3a825413ca91344a32eee Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 14:08:45 +1000 Subject: [PATCH 054/226] Return of 5.4 in Travis --- .travis.yml | 3 +++ src/sass.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3f79c14..cc7260e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: php php: + - 5.4 - 5.5 - 5.6 @@ -28,6 +29,8 @@ script: - ./configure - make - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini + +after_success: - make test notifications: diff --git a/src/sass.c b/src/sass.c index 3bcb9ed..e71eef5 100644 --- a/src/sass.c +++ b/src/sass.c @@ -102,7 +102,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) sass_option_set_precision(opts, this->precision); sass_option_set_output_style(opts, this->style); if (this->include_paths != NULL) { - sass_option_set_include_path(opts, this->include_paths); + sass_option_set_include_path(opts, this->include_paths); } sass_option_set_source_comments(opts, this->comments); if (this->comments != NULL) { From 8d68f5a82fe0c6b44c3c9259efd02d01db2be2d5 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 14:42:03 +1000 Subject: [PATCH 055/226] Capture PHPT into Travis --- .travis.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index cc7260e..da9f1c6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,11 @@ php: - 5.5 - 5.6 +global: + # Configure the .phpt tests to be Travis friendly + - REPORT_EXIT_STATUS=1 + - TEST_PHP_ARGS="-q -s output.txt -g XFAIL,FAIL,BORK,WARN,LEAK,SKIP -x --show-diff" + compiler: - gcc @@ -21,8 +26,6 @@ before_install: - sudo service apache2 restart - git submodule init - git submodule update - -script: - make clean - cd lib/libsass && make && cd ../.. - phpize @@ -30,8 +33,9 @@ script: - make - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini -after_success: - - make test +script: + - make test + - ./bin/phpunit notifications: on_success: never From 62b048eed5f4c7571f0ba9f088a7f1b086b23c88 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 14:46:17 +1000 Subject: [PATCH 056/226] Set env for tests --- .travis.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index da9f1c6..28c6a74 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,10 +4,13 @@ php: - 5.5 - 5.6 -global: +env: + global: # Configure the .phpt tests to be Travis friendly - REPORT_EXIT_STATUS=1 - TEST_PHP_ARGS="-q -s output.txt -g XFAIL,FAIL,BORK,WARN,LEAK,SKIP -x --show-diff" + # Add the pip installation folder to the PATH, until https://github.com/travis-ci/travis-ci/issues/3563 is fixed + - PATH=$HOME/.local/bin:$PATH compiler: - gcc @@ -26,14 +29,15 @@ before_install: - sudo service apache2 restart - git submodule init - git submodule update + + +script: - make clean - cd lib/libsass && make && cd ../.. - phpize - ./configure - make - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - -script: - make test - ./bin/phpunit From 9a9ba2ce7c02d1c394364fb53c90c8203aed0e09 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 14:54:23 +1000 Subject: [PATCH 057/226] Remove PHP Unit pathing --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 28c6a74..9684bbf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,7 +39,7 @@ script: - make - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - make test - - ./bin/phpunit + - phpunit notifications: on_success: never From 73e3c899d0a0fad6a1c694385da641c363cb831a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 15:12:33 +1000 Subject: [PATCH 058/226] Travis LD_Library --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 9684bbf..2442ed3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,6 +38,7 @@ script: - ./configure - make - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini + - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - make test - phpunit From 63980e5de1ff36d2c146481a288e72aefc0911d9 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 15:24:41 +1000 Subject: [PATCH 059/226] Return of make install --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 2442ed3..de61b45 100644 --- a/.travis.yml +++ b/.travis.yml @@ -39,6 +39,7 @@ script: - make - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" + - make install - make test - phpunit From a3c9757cf9161b73eba18c195847b42b291d9a6d Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 15:54:31 +1000 Subject: [PATCH 060/226] PHP Unit work --- .travis.yml | 2 +- phpunit.xml | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 phpunit.xml diff --git a/.travis.yml b/.travis.yml index de61b45..6738b06 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,7 +41,7 @@ script: - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - make install - make test - - phpunit + - phpunit -c phpunit.xml notifications: on_success: never diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..5c3d696 --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,27 @@ + + + + + + ./tests/ + + + + + ./tests + ./vendor/ + + + + + + + \ No newline at end of file From 40d955c687857d188e6763bda62609f4ae401e3b Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 6 Oct 2015 21:15:10 +1000 Subject: [PATCH 061/226] More Clover work --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6738b06..c776ee9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -40,8 +40,9 @@ script: - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - make install - - make test - - phpunit -c phpunit.xml + - mkdir -p build/logs + - make test + - phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml notifications: on_success: never From c9b15c559074b0c1487b83d787ea970f5b6f3653 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 7 Oct 2015 08:37:51 +1000 Subject: [PATCH 062/226] CodeClimate coverage --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index c776ee9..f22bf4e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,12 +12,17 @@ env: # Add the pip installation folder to the PATH, until https://github.com/travis-ci/travis-ci/issues/3563 is fixed - PATH=$HOME/.local/bin:$PATH +addons: + code_climate: + repo_token: 5238e0804b03668ded6dad5dc40b8c274c038b97c2df34c3353e6fae8a1bbf10 + compiler: - gcc before_install: - echo $LANG - echo $LC_ALL + - composer require codeclimate/php-test-reporter --dev - sudo apt-get update -qq - sudo apt-get install -y php5-dev - sudo apt-get install -y apache2 From f36d87a987f30910d065fd19685ee3506a4292d2 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 23 Oct 2015 08:54:07 +1000 Subject: [PATCH 063/226] Libsass source indenting --- src/php_sass.h | 2 ++ src/sass.c | 40 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/src/php_sass.h b/src/php_sass.h index 294107c..15b1714 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -39,6 +39,8 @@ PHP_METHOD(Sass, getPrecision); PHP_METHOD(Sass, setPrecision); PHP_METHOD(Sass, getComments); PHP_METHOD(Sass, setComments); +PHP_METHOD(Sass, getIndent); +PHP_METHOD(Sass, setIndent); PHP_METHOD(Sass, getEmbed); PHP_METHOD(Sass, setEmbed); PHP_METHOD(Sass, getMapPath); diff --git a/src/sass.c b/src/sass.c index e71eef5..690e49a 100644 --- a/src/sass.c +++ b/src/sass.c @@ -24,6 +24,7 @@ typedef struct sass_object { int style; char* include_paths; bool comments; + bool indent; long precision; char* map_path; bool omit_map_url; @@ -87,6 +88,7 @@ PHP_METHOD(Sass, __construct) obj->map_path = NULL; obj->map_root = NULL; obj->comments = false; + obj->indent = false; obj->map_embed = false; obj->map_contents = false; obj->omit_map_url = true; @@ -101,6 +103,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) sass_option_set_precision(opts, this->precision); sass_option_set_output_style(opts, this->style); + sass_option_set_is_indented_syntax_src(opts, this->indent); if (this->include_paths != NULL) { sass_option_set_include_path(opts, this->include_paths); } @@ -399,6 +402,35 @@ PHP_METHOD(Sass, setComments) } +PHP_METHOD(Sass, getIndent) +{ + zval *this = getThis(); + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "", NULL) == FAILURE) { + RETURN_FALSE; + } + + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + RETURN_LONG(obj->indent); +} + +PHP_METHOD(Sass, setIndent) +{ + zval *this = getThis(); + + bool new_indent; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &new_indent) == FAILURE) { + RETURN_FALSE; + } + + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + obj->indent = new_indent; + + RETURN_NULL(); +} + + PHP_METHOD(Sass, getLibraryVersion) { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "", NULL) == FAILURE) { @@ -447,6 +479,10 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_sass_setComments, 0, 0, 1) ZEND_ARG_INFO(0, comments) ZEND_END_ARG_INFO() +ZEND_BEGIN_ARG_INFO_EX(arginfo_sass_setIndent, 0, 0, 1) + ZEND_ARG_INFO(0, indent) +ZEND_END_ARG_INFO() + ZEND_BEGIN_ARG_INFO_EX(arginfo_sass_setEmbed, 0, 0, 1) ZEND_ARG_INFO(0, map_embed) ZEND_END_ARG_INFO() @@ -468,8 +504,10 @@ zend_function_entry sass_methods[] = { PHP_ME(Sass, setPrecision, arginfo_sass_setPrecision, ZEND_ACC_PUBLIC) PHP_ME(Sass, getComments, arginfo_sass_void, ZEND_ACC_PUBLIC) PHP_ME(Sass, setComments, arginfo_sass_setComments, ZEND_ACC_PUBLIC) + PHP_ME(Sass, getIndent, arginfo_sass_void, ZEND_ACC_PUBLIC) + PHP_ME(Sass, setIndent, arginfo_sass_setIndent, ZEND_ACC_PUBLIC) PHP_ME(Sass, getEmbed, arginfo_sass_void, ZEND_ACC_PUBLIC) - PHP_ME(Sass, setEmbed, arginfo_sass_setComments, ZEND_ACC_PUBLIC) + PHP_ME(Sass, setEmbed, arginfo_sass_setEmbed, ZEND_ACC_PUBLIC) PHP_ME(Sass, getMapPath, arginfo_sass_void, ZEND_ACC_PUBLIC) PHP_ME(Sass, setMapPath, arginfo_sass_setMapPath, ZEND_ACC_PUBLIC) PHP_ME(Sass, getLibraryVersion, arginfo_sass_void, ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) From 579c49adcfef470668618dd3cccdbea39838dc78 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Sun, 25 Oct 2015 23:37:45 +1000 Subject: [PATCH 064/226] Version bump & update documentation --- README.md | 23 ++++++++++++++++++----- src/php_sass.h | 2 +- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7e3af0e..dc01e87 100644 --- a/README.md +++ b/README.md @@ -91,6 +91,12 @@ Aliases also exist so you can also use: $css = $sass->compile_file($source); +You can tell the compiler to use indented syntax (SASS syntax). By default it expects SCSS syntax: + + $sass = new Sass(); + $sass->setIndent(true); //TRUE -> SASS, FALSE -> SCSS + $css = $sass->compile($source); + You can set the source map file for the library to use: $sass = new Sass(); @@ -124,18 +130,25 @@ If there's a problem, the extension will throw a `SassException`: * The file_comments test will fail as it remains unable to figure out the path the test has been run in. It generates the output successfully +## Variant builds -## Forward planning +These extensions also conform to LibSass 3.2.5 & remain in varying states of completion -* HHVM Zend compatibility? -* Nginx extension? +* Facebook [HHVM](https://github.com/absalomedia/hhvm) extension +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module ## Changelog -** Version 0.4.5 +** Version 0.4.7 +* SCSS vs SASS detection - indents + +** Version 0.4.6 +* Travis experimental + +** Version 0.4.5 * Holiday Patch (Libsass 3.2.5) stable -** Version 0.4.4 +** Version 0.4.4 * Refactor correctly for LibSass 3.2.4 ** Version 0.4.2 diff --git a/src/php_sass.h b/src/php_sass.h index 15b1714..3c6dc16 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -13,7 +13,7 @@ #include "config.h" #endif -#define SASS_VERSION "0.4.5" +#define SASS_VERSION "0.4.7" #define SASS_FLAVOR "Sassyphpras" #include From 28a97e4568ddf824e968bc09f656198090937ad8 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Sun, 25 Oct 2015 23:45:21 +1000 Subject: [PATCH 065/226] Typo fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dc01e87..73aaa90 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ If there's a problem, the extension will throw a `SassException`: These extensions also conform to LibSass 3.2.5 & remain in varying states of completion -* Facebook [HHVM](https://github.com/absalomedia/hhvm) extension +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) extension * [Nginx](https://github.com/absalomedia/sass-nginx-module) module ## Changelog From 17970358762449f4ecb69c02c3e55f7dcf81bdb3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 26 Oct 2015 08:54:40 +1000 Subject: [PATCH 066/226] Libsass to 3.3 --- lib/libsass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libsass b/lib/libsass index 0e6b4a2..bb090ed 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit 0e6b4a2850092356aa3ece07c6b249f0221caced +Subproject commit bb090edb2fb09b6dbe609ca9bbfd4814759113bd From 04126d65546c8981c1847f83ef2823fa1829c5aa Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 26 Oct 2015 09:23:51 +1000 Subject: [PATCH 067/226] Get right directory for context --- src/php_sass.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/php_sass.h b/src/php_sass.h index 3c6dc16..5902704 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -21,7 +21,7 @@ #include #include -#include "lib/libsass/sass_context.h" +#include "lib/libsass/include/sass/context.h" zend_class_entry *sass_ce; zend_class_entry *sass_exception_ce; From 1effd6673cf62abc6d6fa78bce10d8645c678333 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 26 Oct 2015 11:46:17 +1000 Subject: [PATCH 068/226] More 3.3 API experiments --- src/php_sass.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/php_sass.h b/src/php_sass.h index 5902704..b0a26dd 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -21,7 +21,7 @@ #include #include -#include "lib/libsass/include/sass/context.h" +#include zend_class_entry *sass_ce; zend_class_entry *sass_exception_ce; From ca95b26c9b5d57d205568546932228f3404257a6 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 26 Oct 2015 11:58:02 +1000 Subject: [PATCH 069/226] More 3.3ish work --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 690e49a..e428aa7 100644 --- a/src/sass.c +++ b/src/sass.c @@ -10,8 +10,8 @@ #include -#include "php_sass.h" -#include "utilities.h" +#include +#include /* -------------------------------------------------------------- * Sass From 7f6109a475a1cfd9e84c1a9fc7349df59b4e3617 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 26 Oct 2015 13:49:24 +1000 Subject: [PATCH 070/226] Base PHPT for SASS vs SCSS test --- tests/file_indent.phpt | 16 ++++++++++++++++ tests/support/mixin.sass | 20 ++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 tests/file_indent.phpt create mode 100644 tests/support/mixin.sass diff --git a/tests/file_indent.phpt b/tests/file_indent.phpt new file mode 100644 index 0000000..88fd98e --- /dev/null +++ b/tests/file_indent.phpt @@ -0,0 +1,16 @@ +--TEST-- +compiles SASS file in comparison to SCSS based SASS file +--SKIPIF-- + +--FILE-- +setIndent(true); +$css = $sass->compileFile(__DIR__.'/support/minix.sass'); +echo $css; + + +?> +--EXPECT-- + diff --git a/tests/support/mixin.sass b/tests/support/mixin.sass new file mode 100644 index 0000000..eac2329 --- /dev/null +++ b/tests/support/mixin.sass @@ -0,0 +1,20 @@ +@mixin texto($font, $size, $color) + font-family: $font + font-size: $size + color: $color + margin: 0 + +@mixin shadow($x, $y, $blur, $color) + text-shadow: $x $y $blur $color + filter: Shadow(Color=$color, Direction=130, Strength=1) + +@mixin filterS($x, $y, $blur, $color) + -moz-box-shadow: $x $y $blur $color + -webkit-box-shadow: $x $y $blur $color + box-shadow: $x $y $blur $color + +@mixin img($url, $w, $h) + background: url($url) 0 0 no-repeat + width: $w + height: $h + From 146d76770c31537e247cdce409348940ffba443a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 26 Oct 2015 13:52:03 +1000 Subject: [PATCH 071/226] Base handler test for SCSS vs SASS --- tests/handles_indent.phpt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/handles_indent.phpt diff --git a/tests/handles_indent.phpt b/tests/handles_indent.phpt new file mode 100644 index 0000000..7ffc7d5 --- /dev/null +++ b/tests/handles_indent.phpt @@ -0,0 +1,23 @@ +--TEST-- +correctly handles setting and getting SCSS / SASS file indents +--SKIPIF-- + +--FILE-- +getIndent(); + +// test SCSS +$sass->setIndent(false); +echo $sass->getIndent(); + +// test SASS +$sass->setIndent(true); +echo $sass->getIndent(); + + +?> +--EXPECT-- +001 From 3deaf74a8de55e6a4496c2d1bc21a669efd02411 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 08:13:33 +1000 Subject: [PATCH 072/226] Keep trying to find file --- src/php_sass.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/php_sass.h b/src/php_sass.h index b0a26dd..7e2d2c8 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -21,7 +21,7 @@ #include #include -#include +#include zend_class_entry *sass_ce; zend_class_entry *sass_exception_ce; From b671003b1253e9bb0dbc39499c23bc45d9991f2e Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 08:21:29 +1000 Subject: [PATCH 073/226] Try to find php_sass --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index e428aa7..f8005be 100644 --- a/src/sass.c +++ b/src/sass.c @@ -10,7 +10,7 @@ #include -#include +#include "php_sass.h" #include /* -------------------------------------------------------------- From 78a98b3adc953a4dd6a6857648b1c5fbbcb3cff7 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 08:36:04 +1000 Subject: [PATCH 074/226] Keep trying to get file right --- src/php_sass.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/php_sass.h b/src/php_sass.h index 7e2d2c8..75fa89d 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -21,7 +21,7 @@ #include #include -#include +#include zend_class_entry *sass_ce; zend_class_entry *sass_exception_ce; From 0c054f7bea1a0d397c57ba209d91ecc527b067ee Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 08:44:01 +1000 Subject: [PATCH 075/226] More file hunting --- src/php_sass.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/php_sass.h b/src/php_sass.h index 75fa89d..b0a26dd 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -21,7 +21,7 @@ #include #include -#include +#include zend_class_entry *sass_ce; zend_class_entry *sass_exception_ce; From 41a157dc96f85da0a49bb52c18188ab89ae7adb3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 10:57:11 +1000 Subject: [PATCH 076/226] More 3.3 work with updated tests --- config.m4 | 1 + src/php_sass.h | 4 ++-- src/sass.c | 2 +- tests/check_bundled_libsass_version.phpt | 2 +- tests/file_embed.phpt | 7 +------ tests/file_indent.phpt | 2 +- 6 files changed, 7 insertions(+), 11 deletions(-) diff --git a/config.m4 b/config.m4 index 3eca316..234a670 100644 --- a/config.m4 +++ b/config.m4 @@ -2,6 +2,7 @@ PHP_ARG_ENABLE(sass, [whether to enable sass extension], [ --enable-sass Enable sass extension], yes, yes) if test "$PHP_SASS" != "no"; then + PHP_ADD_INCLUDE(lib/libsass/include) PHP_ADD_LIBRARY_WITH_PATH(sass, lib/libexec, LIBSASS_SHARED_LIBADD) LDFLAGS="-lsass -L"`pwd`"/lib/libsass/lib/ -lstdc++" diff --git a/src/php_sass.h b/src/php_sass.h index b0a26dd..ddff04b 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -13,7 +13,7 @@ #include "config.h" #endif -#define SASS_VERSION "0.4.7" +#define SASS_VERSION "0.4.8" #define SASS_FLAVOR "Sassyphpras" #include @@ -21,7 +21,7 @@ #include #include -#include +#include zend_class_entry *sass_ce; zend_class_entry *sass_exception_ce; diff --git a/src/sass.c b/src/sass.c index f8005be..690e49a 100644 --- a/src/sass.c +++ b/src/sass.c @@ -11,7 +11,7 @@ #include #include "php_sass.h" -#include +#include "utilities.h" /* -------------------------------------------------------------- * Sass diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index ab47032..a8ab21e 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- diff --git a/tests/file_embed.phpt b/tests/file_embed.phpt index 605db4d..e7bbd92 100644 --- a/tests/file_embed.phpt +++ b/tests/file_embed.phpt @@ -13,9 +13,4 @@ echo $css; ?> --EXPECT-- -@import url(../blahblah/blah.blah); -div { - blah: "hello 4 world px bloo blah"; } - -div { - blah: "foo iphone"; } \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosR0FBRyxDQUFDO0VBQ0YsSUFBSSxFQUFFLDRCQUFpRCxHQUN4RDs7QUFJRCxHQUFHLENBQUM7RUFDQSxJQUFJLEVBQUUsWUFBYSxHQUN0QiIsCgkibmFtZXMiOiBbXQp9 */ \ No newline at end of file diff --git a/tests/file_indent.phpt b/tests/file_indent.phpt index 88fd98e..7e54891 100644 --- a/tests/file_indent.phpt +++ b/tests/file_indent.phpt @@ -7,7 +7,7 @@ compiles SASS file in comparison to SCSS based SASS file $sass = new Sass(); $sass->setIndent(true); -$css = $sass->compileFile(__DIR__.'/support/minix.sass'); +$css = $sass->compileFile(__DIR__.'/support/mixin.sass'); echo $css; From 8ee31fb78a8ddfe64e27dd11a51081d7d0666aeb Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 11:08:47 +1000 Subject: [PATCH 077/226] Fix embed test --- tests/handles_embed.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/handles_embed.phpt b/tests/handles_embed.phpt index adcf15c..8a054da 100644 --- a/tests/handles_embed.phpt +++ b/tests/handles_embed.phpt @@ -7,7 +7,7 @@ correctly handles setting and getting source embedding $sass = new Sass(); // test default from constructor -echo $sass->getComments(); +echo $sass->getEmbed(); // test SASS_SOURCE_NONE $sass->setEmbed(false); From 3771b66d0c8faeab0d90a517c09a32015d1af726 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 11:29:34 +1000 Subject: [PATCH 078/226] Fix embed output test --- tests/file_embed.phpt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/file_embed.phpt b/tests/file_embed.phpt index e7bbd92..0f7c94b 100644 --- a/tests/file_embed.phpt +++ b/tests/file_embed.phpt @@ -13,4 +13,11 @@ echo $css; ?> --EXPECT-- -/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosR0FBRyxDQUFDO0VBQ0YsSUFBSSxFQUFFLDRCQUFpRCxHQUN4RDs7QUFJRCxHQUFHLENBQUM7RUFDQSxJQUFJLEVBQUUsWUFBYSxHQUN0QiIsCgkibmFtZXMiOiBbXQp9 */ \ No newline at end of file +@import url(../blahblah/blah.blah); +div { + blah: "hello 4 world px bloo blah"; } + +div { + blah: "foo iphone"; } + +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosR0FBRyxDQUFDO0VBQ0YsSUFBSSxFQUFFLDRCQUFpRCxHQUN4RDs7QUFJRCxHQUFHLENBQUM7RUFDQSxJQUFJLEVBQUUsWUFBYSxHQUN0QiIsCgkibmFtZXMiOiBbXQp9 */ From d1712414308af273ea5740c7e258419ece777633 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 12:55:05 +1000 Subject: [PATCH 079/226] Libsass 3.3.0 update on documentation --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 73aaa90..b81eeb7 100644 --- a/README.md +++ b/README.md @@ -132,13 +132,16 @@ If there's a problem, the extension will throw a `SassException`: ## Variant builds -These extensions also conform to LibSass 3.2.5 & remain in varying states of completion +These extensions also utilise Libsass & remain in varying states of completion -* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) extension -* [Nginx](https://github.com/absalomedia/sass-nginx-module) module +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) extension - with Libsass 3.3.0 - stable +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.2.5 - unstable ## Changelog +** Version 0.4.8 +* Greased Lightning (Libsass 3.3.0) stable + ** Version 0.4.7 * SCSS vs SASS detection - indents From 52bc14f782a801e88897504aa4abf9111defa62d Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 13:19:20 +1000 Subject: [PATCH 080/226] Fix comparison type --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 690e49a..f837c6d 100644 --- a/src/sass.c +++ b/src/sass.c @@ -108,7 +108,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) sass_option_set_include_path(opts, this->include_paths); } sass_option_set_source_comments(opts, this->comments); - if (this->comments != NULL) { + if (this->comments) { sass_option_set_omit_source_map_url(opts, false); } sass_option_set_source_map_embed(opts, this->map_embed); From def2694745e4467a5f1f699fa708847ddfb1b7ad Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 13:26:01 +1000 Subject: [PATCH 081/226] Appveyor update --- appveyor.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index e4cc1c1..fbd16b5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ environment: - PHP_VERSION: 5.6.13 + PHP_VERSION: 5.6.14 os: - Visual Studio 2015 @@ -20,12 +20,12 @@ install: - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - cd C:\php-src - - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.13-src.zip -FileName php-src.zip + - appveyor DownloadFile http://windows.php.net/downloads/releases/php-[%PHP_VERSION%]-src.zip -FileName php-src.zip - 7z x -y php-src.zip > nul - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - - cd C:\php-src\php-5.6.13-src + - cd C:\php-src\php-[%PHP_VERSION%]-src - buildconf.bat --add-modules-dir=C:\projects - configure --disable-all --enable-cli --enable-sass - nmake php_sass.dll From 52d4e23215f1fa996d905648f9a039fa4725fc59 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 27 Oct 2015 13:28:28 +1000 Subject: [PATCH 082/226] Appveyor: code to 5.6.14 --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index fbd16b5..1b1fb7b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -20,12 +20,12 @@ install: - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - cd C:\php-src - - appveyor DownloadFile http://windows.php.net/downloads/releases/php-[%PHP_VERSION%]-src.zip -FileName php-src.zip + - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.14-src.zip -FileName php-src.zip - 7z x -y php-src.zip > nul - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - - cd C:\php-src\php-[%PHP_VERSION%]-src + - cd C:\php-src\php-5.6.14-src - buildconf.bat --add-modules-dir=C:\projects - configure --disable-all --enable-cli --enable-sass - nmake php_sass.dll From c41b8cb566645a4da64c2df3f7b53682db136707 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 30 Oct 2015 11:31:41 +1000 Subject: [PATCH 083/226] Libsass 3.3.1 version bump --- lib/libsass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libsass b/lib/libsass index bb090ed..42e22fb 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit bb090edb2fb09b6dbe609ca9bbfd4814759113bd +Subproject commit 42e22fbadfcdc8ac3b983890518dfa0ebff3c229 From 8cb73bae3f7294f9da873fa609475450a30b927a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 30 Oct 2015 11:37:32 +1000 Subject: [PATCH 084/226] More 3.3.1 work --- config.m4 | 2 +- src/php_sass.h | 2 +- tests/check_bundled_libsass_version.phpt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config.m4 b/config.m4 index 234a670..28dd91d 100644 --- a/config.m4 +++ b/config.m4 @@ -14,7 +14,7 @@ if test "$PHP_SASS" != "no"; then if test "x$sass_version" != "x" ; then # escape hell. This is what we need to pass to the - # compiler: -DLIBSASS_VERSION="\"'3.2.5\"" + # compiler: -DLIBSASS_VERSION="\"'3.3.1\"" CFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CFLAGS" CXXFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CXXFLAGS" fi diff --git a/src/php_sass.h b/src/php_sass.h index ddff04b..d5ffa03 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -13,7 +13,7 @@ #include "config.h" #endif -#define SASS_VERSION "0.4.8" +#define SASS_VERSION "0.4.9" #define SASS_FLAVOR "Sassyphpras" #include diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index a8ab21e..fb9ca18 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- From e52b7b73584d6609f0220449e011795af700fb42 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 3 Nov 2015 09:15:17 +1000 Subject: [PATCH 085/226] Cache c stuff on Travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index f22bf4e..fff1b7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ php: - 5.4 - 5.5 - 5.6 +cache: ccache env: global: From 26f3c317466a2e4c6b045cc5ae7da21b9c5d89ce Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 3 Nov 2015 09:26:12 +1000 Subject: [PATCH 086/226] Redesigned Travis --- .travis.yml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index fff1b7f..8d3df25 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,8 @@ env: - TEST_PHP_ARGS="-q -s output.txt -g XFAIL,FAIL,BORK,WARN,LEAK,SKIP -x --show-diff" # Add the pip installation folder to the PATH, until https://github.com/travis-ci/travis-ci/issues/3563 is fixed - PATH=$HOME/.local/bin:$PATH + - setup=basic + - coverage=no addons: code_climate: @@ -36,6 +38,14 @@ before_install: - git submodule init - git submodule update +before_script: + - travis_retry composer self-update + - composer config discard-changes true + - if [[ $setup = 'basic' ]]; then travis_retry composer install --prefer-source --no-interaction; fi + - if [[ $setup = 'stable' ]]; then travis_retry composer update --prefer-source --no-interaction --prefer-stable; fi + - if [[ $setup = 'lowest' ]]; then travis_retry composer update --prefer-source --no-interaction --prefer-lowest --prefer-stable; fi + - if [[ $setup = 'coveralls' ]]; then travis_retry composer require "psr/log=1.0.0" "satooshi/php-coveralls=~0.6" "symfony/yaml=~2.0" --prefer-source --no-interaction --dev; fi + script: - make clean @@ -48,7 +58,11 @@ script: - make install - mkdir -p build/logs - make test - - phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml + - if [[ $coverage = 'yes' ]]; then phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml; fi + - if [[ $coverage = 'no' ]]; then phpunit -c phpunit.xml; fi + +after_script: + - if [[ $setup = 'coveralls' ]]; then php vendor/bin/coveralls -v; fi notifications: on_success: never @@ -56,3 +70,13 @@ notifications: os: - linux + +matrix: + include: + - php: 5.5 + env: setup=lowest + - php: 5.5 + env: setup=stable + - php: 5.5 + env: setup=coveralls coverage=yes + fast_finish: true From 51aa5563f78af9f29731c97479678dd3175f74e7 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 09:27:38 +1000 Subject: [PATCH 087/226] Add PHP7 to Travis & restructure --- .travis.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8d3df25..0f0e9ec 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ php: - 5.4 - 5.5 - 5.6 + - nightly cache: ccache env: @@ -41,11 +42,6 @@ before_install: before_script: - travis_retry composer self-update - composer config discard-changes true - - if [[ $setup = 'basic' ]]; then travis_retry composer install --prefer-source --no-interaction; fi - - if [[ $setup = 'stable' ]]; then travis_retry composer update --prefer-source --no-interaction --prefer-stable; fi - - if [[ $setup = 'lowest' ]]; then travis_retry composer update --prefer-source --no-interaction --prefer-lowest --prefer-stable; fi - - if [[ $setup = 'coveralls' ]]; then travis_retry composer require "psr/log=1.0.0" "satooshi/php-coveralls=~0.6" "symfony/yaml=~2.0" --prefer-source --no-interaction --dev; fi - script: - make clean @@ -58,11 +54,10 @@ script: - make install - mkdir -p build/logs - make test - - if [[ $coverage = 'yes' ]]; then phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml; fi - - if [[ $coverage = 'no' ]]; then phpunit -c phpunit.xml; fi + - phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml after_script: - - if [[ $setup = 'coveralls' ]]; then php vendor/bin/coveralls -v; fi + - php vendor/bin/coveralls -v; fi notifications: on_success: never From c404a04ed447c81741e4946fb85cb1cfda317387 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 09:36:29 +1000 Subject: [PATCH 088/226] More cleaning --- .travis.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0f0e9ec..cf89d31 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,8 +13,6 @@ env: - TEST_PHP_ARGS="-q -s output.txt -g XFAIL,FAIL,BORK,WARN,LEAK,SKIP -x --show-diff" # Add the pip installation folder to the PATH, until https://github.com/travis-ci/travis-ci/issues/3563 is fixed - PATH=$HOME/.local/bin:$PATH - - setup=basic - - coverage=no addons: code_climate: @@ -57,7 +55,7 @@ script: - phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml after_script: - - php vendor/bin/coveralls -v; fi + - php vendor/bin/coveralls -v notifications: on_success: never @@ -67,11 +65,4 @@ os: - linux matrix: - include: - - php: 5.5 - env: setup=lowest - - php: 5.5 - env: setup=stable - - php: 5.5 - env: setup=coveralls coverage=yes fast_finish: true From 01c52317db61ebc6dec7ebd4072c6a144b8a90f2 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 09:56:25 +1000 Subject: [PATCH 089/226] Fix typo on version string --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index f837c6d..ef132a9 100644 --- a/src/sass.c +++ b/src/sass.c @@ -437,7 +437,7 @@ PHP_METHOD(Sass, getLibraryVersion) RETURN_FALSE; } - RETURN_STRING(libsass_version(), 1) + RETURN_STRING(libsass_version(), 1); } /* -------------------------------------------------------------- * EXCEPTION HANDLING From 175312bd8e73cdcfb0ea8ff2075e0f6139c405d8 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 10:06:11 +1000 Subject: [PATCH 090/226] More typo fixes --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index ef132a9..3172edd 100644 --- a/src/sass.c +++ b/src/sass.c @@ -263,7 +263,7 @@ PHP_METHOD(Sass, getIncludePath) sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); if (obj->include_paths == NULL) RETURN_STRING("", 1) - RETURN_STRING(obj->include_paths, 1) + RETURN_STRING(obj->include_paths, 1); } PHP_METHOD(Sass, setIncludePath) @@ -294,7 +294,7 @@ PHP_METHOD(Sass, getMapPath) sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); if (obj->map_path == NULL) RETURN_STRING("", 1) - RETURN_STRING(obj->map_path, 1) + RETURN_STRING(obj->map_path, 1); } PHP_METHOD(Sass, setMapPath) From 3d2dac584a36cb606b4ec22232932f834a853459 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 10:14:46 +1000 Subject: [PATCH 091/226] More obvious typos --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 3172edd..cd7c1d1 100644 --- a/src/sass.c +++ b/src/sass.c @@ -262,7 +262,7 @@ PHP_METHOD(Sass, getIncludePath) } sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - if (obj->include_paths == NULL) RETURN_STRING("", 1) + if (obj->include_paths == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->include_paths, 1); } @@ -293,7 +293,7 @@ PHP_METHOD(Sass, getMapPath) } sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - if (obj->map_path == NULL) RETURN_STRING("", 1) + if (obj->map_path == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->map_path, 1); } From 5a8e62a864f5a3b771b75cbe4cf67f82b75c0b63 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 10:45:11 +1000 Subject: [PATCH 092/226] Experimental PHP7 test --- src/sass.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index cd7c1d1..bbd7fbb 100644 --- a/src/sass.c +++ b/src/sass.c @@ -134,6 +134,8 @@ PHP_METHOD(Sass, compile) sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + // We need a file name and a length + #if ZEND_MODULE_API_NO <= 20131226 // Define our parameters as local variables char *source; int source_len; @@ -142,6 +144,18 @@ PHP_METHOD(Sass, compile) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &source, &source_len) == FAILURE){ RETURN_FALSE; } + #endif + + // We need a file name and a length + #if ZEND_MODULE_API_NO > 20131226 + // Define our parameters as local variables + zend_string *source; + + // Use zend_parse_parameters() to grab our source from the function call + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &source) == FAILURE){ + RETURN_FALSE; + } + #endif // Create a new sass_context struct Sass_Data_Context* data_context = sass_make_data_context(strdup(source)); @@ -158,7 +172,12 @@ PHP_METHOD(Sass, compile) } else { + #if ZEND_MODULE_API_NO <= 20131226 RETVAL_STRING(sass_context_get_output_string(ctx), 1); + #endif + #if ZEND_MODULE_API_NO > 20131226 + RETVAL_STRING(sass_context_get_output_string(ctx)); + #endif } sass_delete_data_context(data_context); @@ -175,6 +194,7 @@ PHP_METHOD(Sass, compileFile) sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length + #if ZEND_MODULE_API_NO <= 20131226 char *file; int file_len; @@ -183,6 +203,18 @@ PHP_METHOD(Sass, compileFile) { RETURN_FALSE; } + #endif + + // We need a file name and a length + #if ZEND_MODULE_API_NO > 20131226 + zend_string *file; + + // Grab the file name from the function + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file) == FAILURE) + { + RETURN_FALSE; + } + #endif // First, do a little checking of our own. Does the file exist? if( access( file, F_OK ) == -1 ) @@ -206,7 +238,8 @@ PHP_METHOD(Sass, compileFile) } else { - + + #if ZEND_MODULE_API_NO <= 20131226 if (this->map_path != NULL ) { // Send it over to PHP. add_next_index_string(return_value, sass_context_get_output_string(ctx), 1); @@ -220,6 +253,23 @@ PHP_METHOD(Sass, compileFile) // Send it over to PHP. add_next_index_string(return_value, sass_context_get_source_map_string(ctx), 1); } + #endif + + #if ZEND_MODULE_API_NO > 20131226 + if (this->map_path != NULL ) { + // Send it over to PHP. + add_next_index_string(return_value, sass_context_get_output_string(ctx)); + } else { + RETVAL_STRING(sass_context_get_output_string(ctx)); + } + + // Do we have source maps to go? + if (this->map_path != NULL) + { + // Send it over to PHP. + add_next_index_string(return_value, sass_context_get_source_map_string(ctx)); + } + #endif } sass_delete_file_context(file_ctx); From 90b56e73fc10f0d86fd69535b4a24c5b0d9675d7 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 10:55:05 +1000 Subject: [PATCH 093/226] More PHP7 experiments --- src/sass.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/sass.c b/src/sass.c index bbd7fbb..596fbe1 100644 --- a/src/sass.c +++ b/src/sass.c @@ -158,7 +158,14 @@ PHP_METHOD(Sass, compile) #endif // Create a new sass_context + #if ZEND_MODULE_API_NO <= 20131226 struct Sass_Data_Context* data_context = sass_make_data_context(strdup(source)); + #endif + + #if ZEND_MODULE_API_NO > 20131226 + struct Sass_Data_Context* data_context = sass_make_data_context(strdup(source->val)); + #endif + struct Sass_Context* ctx = sass_data_context_get_context(data_context); set_options(this, ctx); @@ -224,7 +231,13 @@ PHP_METHOD(Sass, compileFile) } // Create a new sass_file_context + #if ZEND_MODULE_API_NO <= 20131226 struct Sass_File_Context* file_ctx = sass_make_file_context(file); + #endif + #if ZEND_MODULE_API_NO > 20131226 + struct Sass_File_Context* file_ctx = sass_make_file_context(file->val); + #endif + struct Sass_Context* ctx = sass_file_context_get_context(file_ctx); set_options(this, ctx); From d1e72e0a967abbafcba46f9349ac2213e8a45fc5 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 11:06:07 +1000 Subject: [PATCH 094/226] More PHP7 string work --- src/sass.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/sass.c b/src/sass.c index 596fbe1..75cd56b 100644 --- a/src/sass.c +++ b/src/sass.c @@ -325,8 +325,15 @@ PHP_METHOD(Sass, getIncludePath) } sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO <= 20131226 if (obj->include_paths == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->include_paths, 1); + #endif + + #if ZEND_MODULE_API_NO > 20131226 + if (obj->include_paths == NULL) RETURN_STRING(""); + RETURN_STRING(obj->include_paths); + #endif } PHP_METHOD(Sass, setIncludePath) @@ -356,8 +363,15 @@ PHP_METHOD(Sass, getMapPath) } sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO <= 20131226 if (obj->map_path == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->map_path, 1); + #endif + + #if ZEND_MODULE_API_NO > 20131226 + if (obj->map_path == NULL) RETURN_STRING(""); + RETURN_STRING(obj->map_path); + #endif } PHP_METHOD(Sass, setMapPath) @@ -500,7 +514,14 @@ PHP_METHOD(Sass, getLibraryVersion) RETURN_FALSE; } + #if ZEND_MODULE_API_NO <= 20131226 RETURN_STRING(libsass_version(), 1); + #endif + + #if ZEND_MODULE_API_NO > 20131226 + RETURN_STRING(libsass_version()); + #endif + } /* -------------------------------------------------------------- * EXCEPTION HANDLING From 4d2e385ae6adbba3ab928955c0aab28257ec7281 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 11:16:06 +1000 Subject: [PATCH 095/226] More PHP7 structure --- src/sass.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/sass.c b/src/sass.c index 75cd56b..81bf628 100644 --- a/src/sass.c +++ b/src/sass.c @@ -224,7 +224,12 @@ PHP_METHOD(Sass, compileFile) #endif // First, do a little checking of our own. Does the file exist? + #if ZEND_MODULE_API_NO <= 20131226 if( access( file, F_OK ) == -1 ) + #endif + #if ZEND_MODULE_API_NO > 20131226 + if( access( file->val, F_OK ) == -1 ) + #endif { zend_throw_exception_ex(sass_exception_ce, 0 TSRMLS_CC, "File %s could not be found", file); RETURN_FALSE; From 1bead01aef3c398cd96269362522ef173cf778bc Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 11:17:56 +1000 Subject: [PATCH 096/226] Better PHP7 error checking --- src/sass.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 81bf628..78a5ed0 100644 --- a/src/sass.c +++ b/src/sass.c @@ -226,14 +226,19 @@ PHP_METHOD(Sass, compileFile) // First, do a little checking of our own. Does the file exist? #if ZEND_MODULE_API_NO <= 20131226 if( access( file, F_OK ) == -1 ) + { + zend_throw_exception_ex(sass_exception_ce, 0 TSRMLS_CC, "File %s could not be found", file); + RETURN_FALSE; + } #endif #if ZEND_MODULE_API_NO > 20131226 if( access( file->val, F_OK ) == -1 ) - #endif { - zend_throw_exception_ex(sass_exception_ce, 0 TSRMLS_CC, "File %s could not be found", file); + zend_throw_exception_ex(sass_exception_ce, 0 TSRMLS_CC, "File %s could not be found", file->val); RETURN_FALSE; } + #endif + // Create a new sass_file_context #if ZEND_MODULE_API_NO <= 20131226 From 2333711c524db736d375ccebb4faf928066d0f89 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 11:40:43 +1000 Subject: [PATCH 097/226] PHP7 refactor object handler --- src/sass.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/sass.c b/src/sass.c index 78a5ed0..f547438 100644 --- a/src/sass.c +++ b/src/sass.c @@ -53,6 +53,7 @@ void sass_free_storage(void *object TSRMLS_DC) zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) { + #if ZEND_MODULE_API_NO <= 20131226 zval *tmp; zend_object_value retval; @@ -72,8 +73,39 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) retval.handlers = &sass_handlers; return retval; + + #endif + + #if ZEND_MODULE_API_NO > 20131226 + struct sass_object *intern = ecalloc(1, + sizeof(struct sass_object) + + zend_object_properties_size(ce)); + + zend_object_std_init(&intern->std, ce TSRMLS_CC); + custom_object_handlers.offset = XtOffsetOf(struct custom_obj, std); + custom_object_handlers.free_obj = custom_free_storage; + + intern->std.handlers = custom_object_handlers; + + return &intern->std; + #endif } +#if ZEND_MODULE_API_NO > 20131226 +/** + * PHP7 sass object creation + */ + +static inline struct sass_object * php_custom_object_fetch_object(zend_object *obj) { + return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, std)); +} + +#define Z_CUSTOM_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); + +struct sass_object* obj = Z_CUSTOM_OBJ_P(getThis()); + +#endif + PHP_METHOD(Sass, __construct) { zval *this = getThis(); From 09b41b0917cdefce4ec5b33e1d96adea81a89e6d Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 11:46:48 +1000 Subject: [PATCH 098/226] PHP7 get right zend object --- src/sass.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sass.c b/src/sass.c index f547438..454c140 100644 --- a/src/sass.c +++ b/src/sass.c @@ -82,12 +82,12 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) zend_object_properties_size(ce)); zend_object_std_init(&intern->std, ce TSRMLS_CC); - custom_object_handlers.offset = XtOffsetOf(struct custom_obj, std); + custom_object_handlers.offset = XtOffsetOf(struct custom_obj, zo); custom_object_handlers.free_obj = custom_free_storage; intern->std.handlers = custom_object_handlers; - return &intern->std; + return &intern->zo; #endif } @@ -97,7 +97,7 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) */ static inline struct sass_object * php_custom_object_fetch_object(zend_object *obj) { - return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, std)); + return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, zo)); } #define Z_CUSTOM_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); From a9c41168871f52016812fe8c9fd4694bdc710c1a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 11:53:28 +1000 Subject: [PATCH 099/226] More PHP7 refactoring --- src/sass.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/sass.c b/src/sass.c index 454c140..6346bd5 100644 --- a/src/sass.c +++ b/src/sass.c @@ -9,7 +9,10 @@ */ #include - +#if ZEND_MODULE_API_NO > 20131226 +#include . +#endif + #include "php_sass.h" #include "utilities.h" @@ -79,9 +82,9 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) #if ZEND_MODULE_API_NO > 20131226 struct sass_object *intern = ecalloc(1, sizeof(struct sass_object) + - zend_object_properties_size(ce)); + zend_object_properties_size(type)); - zend_object_std_init(&intern->std, ce TSRMLS_CC); + zend_object_std_init(&intern->zo, type TSRMLS_CC); custom_object_handlers.offset = XtOffsetOf(struct custom_obj, zo); custom_object_handlers.free_obj = custom_free_storage; From d79e32aef4fb5773e840032187b25353c73efb03 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 12:02:04 +1000 Subject: [PATCH 100/226] More PHP7 handler work --- src/sass.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sass.c b/src/sass.c index 6346bd5..1307a0a 100644 --- a/src/sass.c +++ b/src/sass.c @@ -12,7 +12,7 @@ #if ZEND_MODULE_API_NO > 20131226 #include . #endif - + #include "php_sass.h" #include "utilities.h" @@ -86,9 +86,9 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) zend_object_std_init(&intern->zo, type TSRMLS_CC); custom_object_handlers.offset = XtOffsetOf(struct custom_obj, zo); - custom_object_handlers.free_obj = custom_free_storage; + custom_object_handlers.free_obj = sass_free_storage; - intern->std.handlers = custom_object_handlers; + intern->zo.handlers = sass_object_handlers; return &intern->zo; #endif From ae644f67146d63ec6476c3eff726437ce023cdb4 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 12:13:45 +1000 Subject: [PATCH 101/226] More PHP7 naming work --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 1307a0a..0bfd165 100644 --- a/src/sass.c +++ b/src/sass.c @@ -85,8 +85,8 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) zend_object_properties_size(type)); zend_object_std_init(&intern->zo, type TSRMLS_CC); - custom_object_handlers.offset = XtOffsetOf(struct custom_obj, zo); - custom_object_handlers.free_obj = sass_free_storage; + sass_object_handlers.offset = XtOffsetOf(struct custom_obj, zo); + sass_object_handlers.free_obj = sass_free_storage; intern->zo.handlers = sass_object_handlers; From 42149fc163a1f658b496e367103a5d1a28d9ba57 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 12:21:24 +1000 Subject: [PATCH 102/226] More PHP7 object refactor --- src/sass.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/sass.c b/src/sass.c index 0bfd165..085bf25 100644 --- a/src/sass.c +++ b/src/sass.c @@ -54,9 +54,10 @@ void sass_free_storage(void *object TSRMLS_DC) efree(obj); } +#if ZEND_MODULE_API_NO <= 20131226 zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) { - #if ZEND_MODULE_API_NO <= 20131226 + zval *tmp; zend_object_value retval; @@ -76,10 +77,11 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) retval.handlers = &sass_handlers; return retval; - - #endif +} +#endif - #if ZEND_MODULE_API_NO > 20131226 +#if ZEND_MODULE_API_NO > 20131226 +zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { struct sass_object *intern = ecalloc(1, sizeof(struct sass_object) + zend_object_properties_size(type)); @@ -91,23 +93,20 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) intern->zo.handlers = sass_object_handlers; return &intern->zo; - #endif } -#if ZEND_MODULE_API_NO > 20131226 -/** - * PHP7 sass object creation - */ - + static inline struct sass_object * php_custom_object_fetch_object(zend_object *obj) { return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, zo)); } -#define Z_CUSTOM_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); + #define Z_CUSTOM_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); -struct sass_object* obj = Z_CUSTOM_OBJ_P(getThis()); + struct sass_object* obj = Z_CUSTOM_OBJ_P(getThis()); -#endif + #endif + +#endif PHP_METHOD(Sass, __construct) { From 465ad23a415f621332812feb1f148b102d32d238 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 13:13:35 +1000 Subject: [PATCH 103/226] Better PHP7 refactoring --- src/sass.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/sass.c b/src/sass.c index 085bf25..59c10d1 100644 --- a/src/sass.c +++ b/src/sass.c @@ -55,9 +55,7 @@ void sass_free_storage(void *object TSRMLS_DC) } #if ZEND_MODULE_API_NO <= 20131226 -zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) -{ - +zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) { zval *tmp; zend_object_value retval; @@ -77,7 +75,7 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) retval.handlers = &sass_handlers; return retval; -} + } #endif #if ZEND_MODULE_API_NO > 20131226 @@ -95,18 +93,14 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { return &intern->zo; } - static inline struct sass_object * php_custom_object_fetch_object(zend_object *obj) { return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, zo)); } - - #define Z_CUSTOM_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); - - struct sass_object* obj = Z_CUSTOM_OBJ_P(getThis()); - #endif + struct sass_object* obj = Z_CUSTOM_OBJ_P(getThis()); + +#endif -#endif PHP_METHOD(Sass, __construct) { From 20a245e294773e0d1c0ce5ef3412ca03491a2af8 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 13:19:11 +1000 Subject: [PATCH 104/226] More refactor work PHP7 --- src/sass.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sass.c b/src/sass.c index 59c10d1..802d4ab 100644 --- a/src/sass.c +++ b/src/sass.c @@ -85,10 +85,10 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { zend_object_properties_size(type)); zend_object_std_init(&intern->zo, type TSRMLS_CC); - sass_object_handlers.offset = XtOffsetOf(struct custom_obj, zo); - sass_object_handlers.free_obj = sass_free_storage; + sass_handlers.offset = XtOffsetOf(struct sass_object, zo); + sass_handlers.free_obj = sass_free_storage; - intern->zo.handlers = sass_object_handlers; + intern->zo.handlers = sass_handlers; return &intern->zo; } From 81a25f629d4e01ebf009351b528905ddc80c3efc Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 13:31:55 +1000 Subject: [PATCH 105/226] PHP7: set offset --- src/sass.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sass.c b/src/sass.c index 802d4ab..b395ccc 100644 --- a/src/sass.c +++ b/src/sass.c @@ -649,6 +649,9 @@ static PHP_MINIT_FUNCTION(sass) sass_ce->create_object = sass_create_handler; memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); + #if ZEND_MODULE_API_NO > 20131226 + sass_handlers.offset = XtOffsetOf(sass_ce, ce); + #endif sass_handlers.clone_obj = NULL; INIT_CLASS_ENTRY(exception_ce, "SassException", NULL); From 9f466bc03299806412ca46854fa3539d8259a597 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 13:39:25 +1000 Subject: [PATCH 106/226] Experimental PHP7 refactor --- src/sass.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sass.c b/src/sass.c index b395ccc..a1c1dae 100644 --- a/src/sass.c +++ b/src/sass.c @@ -160,7 +160,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) PHP_METHOD(Sass, compile) { - sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + sass_object *this = (&sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -226,7 +226,7 @@ PHP_METHOD(Sass, compile) PHP_METHOD(Sass, compileFile) { array_init(return_value); - sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + sass_object *this = (&sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -334,7 +334,7 @@ PHP_METHOD(Sass, getStyle) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = (&sass_object *)zend_object_store_get_object(this TSRMLS_CC); RETURN_LONG(obj->style); } From 3a48657dd0f9cd700ea3602a3df9adf2ce476f98 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 13:54:54 +1000 Subject: [PATCH 107/226] More PHP7 rework --- src/sass.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sass.c b/src/sass.c index a1c1dae..d91634f 100644 --- a/src/sass.c +++ b/src/sass.c @@ -88,7 +88,7 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { sass_handlers.offset = XtOffsetOf(struct sass_object, zo); sass_handlers.free_obj = sass_free_storage; - intern->zo.handlers = sass_handlers; + intern->zo.handlers = &sass_handlers; return &intern->zo; } @@ -160,7 +160,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) PHP_METHOD(Sass, compile) { - sass_object *this = (&sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + sass_object *this = &(sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -226,7 +226,7 @@ PHP_METHOD(Sass, compile) PHP_METHOD(Sass, compileFile) { array_init(return_value); - sass_object *this = (&sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + sass_object *this = &(sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -334,7 +334,7 @@ PHP_METHOD(Sass, getStyle) RETURN_FALSE; } - sass_object *obj = (&sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = &(sass_object *)zend_object_store_get_object(this TSRMLS_CC); RETURN_LONG(obj->style); } From ed3e3803d7e1e3f6f586e9bab6ac0e7d66500a52 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 14:07:10 +1000 Subject: [PATCH 108/226] More PHP7 formatting work --- src/sass.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/sass.c b/src/sass.c index d91634f..4eb2ec9 100644 --- a/src/sass.c +++ b/src/sass.c @@ -86,9 +86,9 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { zend_object_std_init(&intern->zo, type TSRMLS_CC); sass_handlers.offset = XtOffsetOf(struct sass_object, zo); - sass_handlers.free_obj = sass_free_storage; + sass_handlers.free_obj = &sass_free_storage; - intern->zo.handlers = &sass_handlers; + intern->zo.handlers = sass_handlers; return &intern->zo; } @@ -160,7 +160,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) PHP_METHOD(Sass, compile) { - sass_object *this = &(sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -226,7 +226,7 @@ PHP_METHOD(Sass, compile) PHP_METHOD(Sass, compileFile) { array_init(return_value); - sass_object *this = &(sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -334,7 +334,7 @@ PHP_METHOD(Sass, getStyle) RETURN_FALSE; } - sass_object *obj = &(sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); RETURN_LONG(obj->style); } From 218fca7e8b80baa098820e6cf2da52a18163da68 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 14:27:44 +1000 Subject: [PATCH 109/226] PHP7 work --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 4eb2ec9..542ce00 100644 --- a/src/sass.c +++ b/src/sass.c @@ -110,7 +110,7 @@ PHP_METHOD(Sass, __construct) RETURN_NULL(); } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = (sass_object *) uintptr_t(zend_object_store_get_object(this TSRMLS_CC)); obj->style = SASS_STYLE_NESTED; obj->include_paths = NULL; obj->map_path = NULL; From 0113bb8800da615caf8663d324ab3eba1354ce20 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 14:33:40 +1000 Subject: [PATCH 110/226] More PHP7 --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 542ce00..fe20d8f 100644 --- a/src/sass.c +++ b/src/sass.c @@ -110,7 +110,7 @@ PHP_METHOD(Sass, __construct) RETURN_NULL(); } - sass_object *obj = (sass_object *) uintptr_t(zend_object_store_get_object(this TSRMLS_CC)); + sass_object *obj = uintptr_t((sass_object *)zend_object_store_get_object(this TSRMLS_CC)); obj->style = SASS_STYLE_NESTED; obj->include_paths = NULL; obj->map_path = NULL; From 2e0fb1dd0fd6c60217a2617b256574d030967323 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 14:46:36 +1000 Subject: [PATCH 111/226] PHP7: See if this works --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index fe20d8f..f41b9bb 100644 --- a/src/sass.c +++ b/src/sass.c @@ -104,13 +104,13 @@ static inline struct sass_object * php_custom_object_fetch_object(zend_object *o PHP_METHOD(Sass, __construct) { - zval *this = getThis(); + zval *this = getThis(sass_object *); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "", NULL) == FAILURE) { RETURN_NULL(); } - sass_object *obj = uintptr_t((sass_object *)zend_object_store_get_object(this TSRMLS_CC)); + sass_object *obj = (intptr_t)zend_object_store_get_object(this TSRMLS_CC); obj->style = SASS_STYLE_NESTED; obj->include_paths = NULL; obj->map_path = NULL; From 5a43a4089c5ba91c65af97481c5f06f4f9423035 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Nov 2015 14:54:56 +1000 Subject: [PATCH 112/226] back to basics --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index f41b9bb..4eb2ec9 100644 --- a/src/sass.c +++ b/src/sass.c @@ -104,13 +104,13 @@ static inline struct sass_object * php_custom_object_fetch_object(zend_object *o PHP_METHOD(Sass, __construct) { - zval *this = getThis(sass_object *); + zval *this = getThis(); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "", NULL) == FAILURE) { RETURN_NULL(); } - sass_object *obj = (intptr_t)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); obj->style = SASS_STYLE_NESTED; obj->include_paths = NULL; obj->map_path = NULL; From 52a63c2ef0355ec22121d8f45f2815a4adc3b938 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 10:50:43 +1000 Subject: [PATCH 113/226] Testing pointers --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 4eb2ec9..8f2c7e9 100644 --- a/src/sass.c +++ b/src/sass.c @@ -110,7 +110,7 @@ PHP_METHOD(Sass, __construct) RETURN_NULL(); } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); obj->style = SASS_STYLE_NESTED; obj->include_paths = NULL; obj->map_path = NULL; From f8358d1d948b44247398c1327565810c6bb5f42b Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 11:21:47 +1000 Subject: [PATCH 114/226] Experimental objects --- src/sass.c | 48 ++++++++++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/src/sass.c b/src/sass.c index 8f2c7e9..35f7574 100644 --- a/src/sass.c +++ b/src/sass.c @@ -110,7 +110,8 @@ PHP_METHOD(Sass, __construct) RETURN_NULL(); } - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); + obj->style = SASS_STYLE_NESTED; obj->include_paths = NULL; obj->map_path = NULL; @@ -152,6 +153,16 @@ void set_options(sass_object *this, struct Sass_Context *ctx) } +void set_object(sass_object *this) + { + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *this = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 + sass_object *this = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + + } /** * $sass->parse(string $source, [ ]); * @@ -159,8 +170,8 @@ void set_options(sass_object *this, struct Sass_Context *ctx) */ PHP_METHOD(Sass, compile) { - - sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + zval *this = getThis(); + set_object(this); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -226,7 +237,8 @@ PHP_METHOD(Sass, compile) PHP_METHOD(Sass, compileFile) { array_init(return_value); - sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + + set_object(this); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -334,7 +346,7 @@ PHP_METHOD(Sass, getStyle) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); RETURN_LONG(obj->style); } @@ -348,7 +360,7 @@ PHP_METHOD(Sass, setStyle) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); obj->style = new_style; RETURN_NULL(); @@ -362,7 +374,7 @@ PHP_METHOD(Sass, getIncludePath) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); #if ZEND_MODULE_API_NO <= 20131226 if (obj->include_paths == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->include_paths, 1); @@ -384,7 +396,7 @@ PHP_METHOD(Sass, setIncludePath) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); if (obj->include_paths != NULL) efree(obj->include_paths); obj->include_paths = estrndup(path, path_len); @@ -400,7 +412,7 @@ PHP_METHOD(Sass, getMapPath) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); #if ZEND_MODULE_API_NO <= 20131226 if (obj->map_path == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->map_path, 1); @@ -422,7 +434,7 @@ PHP_METHOD(Sass, setMapPath) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); if (obj->map_path != NULL) efree(obj->map_path); obj->map_path = estrndup(path, path_len); @@ -439,7 +451,7 @@ PHP_METHOD(Sass, getPrecision) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); RETURN_LONG(obj->precision); } @@ -453,7 +465,7 @@ PHP_METHOD(Sass, setPrecision) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); obj->precision = new_precision; RETURN_NULL(); @@ -467,7 +479,7 @@ PHP_METHOD(Sass, getEmbed) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); RETURN_LONG(obj->map_embed); } @@ -481,7 +493,7 @@ PHP_METHOD(Sass, setEmbed) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); obj->map_embed = new_map_embed; RETURN_NULL(); @@ -496,7 +508,7 @@ PHP_METHOD(Sass, getComments) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); RETURN_LONG(obj->comments); } @@ -510,7 +522,7 @@ PHP_METHOD(Sass, setComments) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); obj->comments = new_comments; RETURN_NULL(); @@ -525,7 +537,7 @@ PHP_METHOD(Sass, getIndent) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); RETURN_LONG(obj->indent); } @@ -539,7 +551,7 @@ PHP_METHOD(Sass, setIndent) RETURN_FALSE; } - sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + sass_object *obj = set_object(this); obj->indent = new_indent; RETURN_NULL(); From 44fbd0e5008fc10c64cff3a68af1d66023e8859e Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 11:27:19 +1000 Subject: [PATCH 115/226] Revert "Experimental objects" This reverts commit f8358d1d948b44247398c1327565810c6bb5f42b. --- src/sass.c | 48 ++++++++++++++++++------------------------------ 1 file changed, 18 insertions(+), 30 deletions(-) diff --git a/src/sass.c b/src/sass.c index 35f7574..8f2c7e9 100644 --- a/src/sass.c +++ b/src/sass.c @@ -110,8 +110,7 @@ PHP_METHOD(Sass, __construct) RETURN_NULL(); } - sass_object *obj = set_object(this); - + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); obj->style = SASS_STYLE_NESTED; obj->include_paths = NULL; obj->map_path = NULL; @@ -153,16 +152,6 @@ void set_options(sass_object *this, struct Sass_Context *ctx) } -void set_object(sass_object *this) - { - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *this = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); - #endif - #if ZEND_MODULE_API_NO < 20131226 - sass_object *this = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif - - } /** * $sass->parse(string $source, [ ]); * @@ -170,8 +159,8 @@ void set_object(sass_object *this) */ PHP_METHOD(Sass, compile) { - zval *this = getThis(); - set_object(this); + + sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -237,8 +226,7 @@ PHP_METHOD(Sass, compile) PHP_METHOD(Sass, compileFile) { array_init(return_value); - - set_object(this); + sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -346,7 +334,7 @@ PHP_METHOD(Sass, getStyle) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); RETURN_LONG(obj->style); } @@ -360,7 +348,7 @@ PHP_METHOD(Sass, setStyle) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); obj->style = new_style; RETURN_NULL(); @@ -374,7 +362,7 @@ PHP_METHOD(Sass, getIncludePath) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #if ZEND_MODULE_API_NO <= 20131226 if (obj->include_paths == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->include_paths, 1); @@ -396,7 +384,7 @@ PHP_METHOD(Sass, setIncludePath) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); if (obj->include_paths != NULL) efree(obj->include_paths); obj->include_paths = estrndup(path, path_len); @@ -412,7 +400,7 @@ PHP_METHOD(Sass, getMapPath) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #if ZEND_MODULE_API_NO <= 20131226 if (obj->map_path == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->map_path, 1); @@ -434,7 +422,7 @@ PHP_METHOD(Sass, setMapPath) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); if (obj->map_path != NULL) efree(obj->map_path); obj->map_path = estrndup(path, path_len); @@ -451,7 +439,7 @@ PHP_METHOD(Sass, getPrecision) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); RETURN_LONG(obj->precision); } @@ -465,7 +453,7 @@ PHP_METHOD(Sass, setPrecision) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); obj->precision = new_precision; RETURN_NULL(); @@ -479,7 +467,7 @@ PHP_METHOD(Sass, getEmbed) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); RETURN_LONG(obj->map_embed); } @@ -493,7 +481,7 @@ PHP_METHOD(Sass, setEmbed) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); obj->map_embed = new_map_embed; RETURN_NULL(); @@ -508,7 +496,7 @@ PHP_METHOD(Sass, getComments) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); RETURN_LONG(obj->comments); } @@ -522,7 +510,7 @@ PHP_METHOD(Sass, setComments) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); obj->comments = new_comments; RETURN_NULL(); @@ -537,7 +525,7 @@ PHP_METHOD(Sass, getIndent) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); RETURN_LONG(obj->indent); } @@ -551,7 +539,7 @@ PHP_METHOD(Sass, setIndent) RETURN_FALSE; } - sass_object *obj = set_object(this); + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); obj->indent = new_indent; RETURN_NULL(); From 58838ba018e729d28c06461f13032f864ee865d4 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 11:35:04 +1000 Subject: [PATCH 116/226] Keep objects inline for time being with PHP7 tests --- src/sass.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 8f2c7e9..9891723 100644 --- a/src/sass.c +++ b/src/sass.c @@ -109,8 +109,14 @@ PHP_METHOD(Sass, __construct) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "", NULL) == FAILURE) { RETURN_NULL(); } - + #if ZEND_MODULE_API_NO >= 20131226 sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + + #if ZEND_MODULE_API_NO < 20131226 + sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + obj->style = SASS_STYLE_NESTED; obj->include_paths = NULL; obj->map_path = NULL; @@ -159,8 +165,13 @@ void set_options(sass_object *this, struct Sass_Context *ctx) */ PHP_METHOD(Sass, compile) { + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *this = (sass_object *)(uintptr_t)zend_object_store_get_object(getThis() TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + #endif // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -226,7 +237,14 @@ PHP_METHOD(Sass, compile) PHP_METHOD(Sass, compileFile) { array_init(return_value); + + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *this = (sass_object *)(uintptr_t)zend_object_store_get_object(getThis() TSRMLS_CC); + #endif + + #if ZEND_MODULE_API_NO < 20131226 sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); + #endif // We need a file name and a length #if ZEND_MODULE_API_NO <= 20131226 @@ -334,7 +352,13 @@ PHP_METHOD(Sass, getStyle) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + RETURN_LONG(obj->style); } @@ -348,7 +372,12 @@ PHP_METHOD(Sass, setStyle) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif obj->style = new_style; RETURN_NULL(); @@ -362,7 +391,13 @@ PHP_METHOD(Sass, getIncludePath) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO <= 20131226 if (obj->include_paths == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->include_paths, 1); @@ -384,7 +419,13 @@ PHP_METHOD(Sass, setIncludePath) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + if (obj->include_paths != NULL) efree(obj->include_paths); obj->include_paths = estrndup(path, path_len); @@ -400,7 +441,13 @@ PHP_METHOD(Sass, getMapPath) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO <= 20131226 if (obj->map_path == NULL) RETURN_STRING("", 1); RETURN_STRING(obj->map_path, 1); @@ -422,7 +469,13 @@ PHP_METHOD(Sass, setMapPath) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + if (obj->map_path != NULL) efree(obj->map_path); obj->map_path = estrndup(path, path_len); @@ -439,7 +492,13 @@ PHP_METHOD(Sass, getPrecision) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + RETURN_LONG(obj->precision); } @@ -453,7 +512,13 @@ PHP_METHOD(Sass, setPrecision) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + obj->precision = new_precision; RETURN_NULL(); @@ -467,7 +532,13 @@ PHP_METHOD(Sass, getEmbed) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + RETURN_LONG(obj->map_embed); } @@ -481,7 +552,13 @@ PHP_METHOD(Sass, setEmbed) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + obj->map_embed = new_map_embed; RETURN_NULL(); @@ -496,7 +573,13 @@ PHP_METHOD(Sass, getComments) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + RETURN_LONG(obj->comments); } @@ -510,7 +593,13 @@ PHP_METHOD(Sass, setComments) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + obj->comments = new_comments; RETURN_NULL(); @@ -525,7 +614,13 @@ PHP_METHOD(Sass, getIndent) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + RETURN_LONG(obj->indent); } @@ -539,7 +634,13 @@ PHP_METHOD(Sass, setIndent) RETURN_FALSE; } + #if ZEND_MODULE_API_NO >= 20131226 + sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #endif + #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); + #endif + obj->indent = new_indent; RETURN_NULL(); From d7a386a3f0279c76f3f253c683aedc2350cb64dd Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 13:29:08 +1000 Subject: [PATCH 117/226] More PHP7 groundwork --- src/sass.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 9891723..a67a46b 100644 --- a/src/sass.c +++ b/src/sass.c @@ -640,7 +640,7 @@ PHP_METHOD(Sass, setIndent) #if ZEND_MODULE_API_NO < 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #endif - + obj->indent = new_indent; RETURN_NULL(); @@ -751,12 +751,19 @@ static PHP_MINIT_FUNCTION(sass) memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); #if ZEND_MODULE_API_NO > 20131226 - sass_handlers.offset = XtOffsetOf(sass_ce, ce); + sass_handlers.offset = XtOffsetOf(sass_object, ce); #endif sass_handlers.clone_obj = NULL; INIT_CLASS_ENTRY(exception_ce, "SassException", NULL); + + #if ZEND_MODULE_API_NO > 20131226 + sass_exception_ce = zend_register_internal_class_ex(&exception_ce, sass_get_exception_base(TSRMLS_C)); + #endif + + #if ZEND_MODULE_API_NO <= 20131226 sass_exception_ce = zend_register_internal_class_ex(&exception_ce, sass_get_exception_base(TSRMLS_C), NULL TSRMLS_CC); + #endif #define REGISTER_SASS_CLASS_CONST_LONG(name, value) zend_declare_class_constant_long(sass_ce, ZEND_STRS( #name ) - 1, value TSRMLS_CC) From a7e36c289bc45250bd9f4f575ac34d89de5fd328 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 13:35:11 +1000 Subject: [PATCH 118/226] More PHP7 --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index a67a46b..a771185 100644 --- a/src/sass.c +++ b/src/sass.c @@ -751,7 +751,7 @@ static PHP_MINIT_FUNCTION(sass) memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); #if ZEND_MODULE_API_NO > 20131226 - sass_handlers.offset = XtOffsetOf(sass_object, ce); + sass_handlers.offset = XtOffsetOf(sass_object, zo); #endif sass_handlers.clone_obj = NULL; From 7b56bd58e011d3828653156e39ed6bc7d62e3870 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 13:52:13 +1000 Subject: [PATCH 119/226] PHP7 custom object define --- src/sass.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/sass.c b/src/sass.c index a771185..9f7c81f 100644 --- a/src/sass.c +++ b/src/sass.c @@ -97,6 +97,8 @@ static inline struct sass_object * php_custom_object_fetch_object(zend_object *o return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, zo)); } +#define Z_CUSTOM_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); + struct sass_object* obj = Z_CUSTOM_OBJ_P(getThis()); #endif From d1b8d7f515e36ad6081daefa76607ab225bf0fcf Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 13:55:12 +1000 Subject: [PATCH 120/226] PHP7: notation fixes --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 9f7c81f..b9b39e0 100644 --- a/src/sass.c +++ b/src/sass.c @@ -86,9 +86,9 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { zend_object_std_init(&intern->zo, type TSRMLS_CC); sass_handlers.offset = XtOffsetOf(struct sass_object, zo); - sass_handlers.free_obj = &sass_free_storage; + sass_handlers.free_obj = sass_free_storage; - intern->zo.handlers = sass_handlers; + intern->zo.handlers = &sass_handlers; return &intern->zo; } From 831032829db58fafb6d4c7b956c69d94a1d6b4b1 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 14:14:46 +1000 Subject: [PATCH 121/226] More PHP7 --- src/sass.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/sass.c b/src/sass.c index b9b39e0..178a78a 100644 --- a/src/sass.c +++ b/src/sass.c @@ -92,15 +92,6 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { return &intern->zo; } - -static inline struct sass_object * php_custom_object_fetch_object(zend_object *obj) { - return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, zo)); -} - -#define Z_CUSTOM_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); - - struct sass_object* obj = Z_CUSTOM_OBJ_P(getThis()); - #endif From ddbbe99ef7bcc5a3bdca67b226cc1c3e0e84468f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 14:53:37 +1000 Subject: [PATCH 122/226] PHP7: more refactoring --- src/sass.c | 118 ++++++++++++++++++++++++++--------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/src/sass.c b/src/sass.c index 178a78a..042e9e2 100644 --- a/src/sass.c +++ b/src/sass.c @@ -102,11 +102,11 @@ PHP_METHOD(Sass, __construct) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "", NULL) == FAILURE) { RETURN_NULL(); } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #endif @@ -158,11 +158,11 @@ void set_options(sass_object *this, struct Sass_Context *ctx) */ PHP_METHOD(Sass, compile) { - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *this = (sass_object *)(uintptr_t)zend_object_store_get_object(getThis() TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *this = Z_MEMC_OBJ_P(getThis()); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); #endif @@ -231,11 +231,11 @@ PHP_METHOD(Sass, compileFile) { array_init(return_value); - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *this = (sass_object *)(uintptr_t)zend_object_store_get_object(getThis() TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *this = Z_MEMC_OBJ_P(getThis()); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); #endif @@ -345,10 +345,10 @@ PHP_METHOD(Sass, getStyle) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #endif @@ -365,10 +365,10 @@ PHP_METHOD(Sass, setStyle) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #endif obj->style = new_style; @@ -384,12 +384,12 @@ PHP_METHOD(Sass, getIncludePath) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif #if ZEND_MODULE_API_NO <= 20131226 if (obj->include_paths == NULL) RETURN_STRING("", 1); @@ -412,12 +412,12 @@ PHP_METHOD(Sass, setIncludePath) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif if (obj->include_paths != NULL) efree(obj->include_paths); @@ -434,12 +434,12 @@ PHP_METHOD(Sass, getMapPath) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif #if ZEND_MODULE_API_NO <= 20131226 if (obj->map_path == NULL) RETURN_STRING("", 1); @@ -462,12 +462,12 @@ PHP_METHOD(Sass, setMapPath) if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif if (obj->map_path != NULL) efree(obj->map_path); @@ -485,12 +485,12 @@ PHP_METHOD(Sass, getPrecision) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif RETURN_LONG(obj->precision); } @@ -505,10 +505,10 @@ PHP_METHOD(Sass, setPrecision) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #endif @@ -525,12 +525,12 @@ PHP_METHOD(Sass, getEmbed) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif RETURN_LONG(obj->map_embed); } @@ -545,12 +545,12 @@ PHP_METHOD(Sass, setEmbed) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif obj->map_embed = new_map_embed; @@ -566,10 +566,10 @@ PHP_METHOD(Sass, getComments) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #endif @@ -586,12 +586,12 @@ PHP_METHOD(Sass, setComments) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif obj->comments = new_comments; @@ -607,10 +607,10 @@ PHP_METHOD(Sass, getIndent) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #endif @@ -627,10 +627,10 @@ PHP_METHOD(Sass, setIndent) RETURN_FALSE; } - #if ZEND_MODULE_API_NO >= 20131226 - sass_object *obj = (sass_object *)(uintptr_t)zend_object_store_get_object(this TSRMLS_CC); + #if ZEND_MODULE_API_NO > 20131226 + sass_object *obj = Z_MEMC_OBJ_P(this); #endif - #if ZEND_MODULE_API_NO < 20131226 + #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); #endif From 0a372d0043e486d0790c175fc2f8d69e79e3fa5e Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 15:10:03 +1000 Subject: [PATCH 123/226] PHP7: hopefully final tweaks --- src/sass.c | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/src/sass.c b/src/sass.c index 042e9e2..afe1ffe 100644 --- a/src/sass.c +++ b/src/sass.c @@ -92,6 +92,13 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { return &intern->zo; } + +static inline struct sass_object * php_custom_object_fetch_object(zend_object *obj) { + return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, zo)); +} + +#define Z_SASS_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); + #endif @@ -103,7 +110,7 @@ PHP_METHOD(Sass, __construct) RETURN_NULL(); } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 @@ -159,7 +166,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) PHP_METHOD(Sass, compile) { #if ZEND_MODULE_API_NO > 20131226 - sass_object *this = Z_MEMC_OBJ_P(getThis()); + sass_object *this = Z_SASS_OBJ_P(getThis()); #endif #if ZEND_MODULE_API_NO <= 20131226 @@ -232,7 +239,7 @@ PHP_METHOD(Sass, compileFile) array_init(return_value); #if ZEND_MODULE_API_NO > 20131226 - sass_object *this = Z_MEMC_OBJ_P(getThis()); + sass_object *this = Z_SASS_OBJ_P(getThis()); #endif #if ZEND_MODULE_API_NO <= 20131226 @@ -346,7 +353,7 @@ PHP_METHOD(Sass, getStyle) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -366,7 +373,7 @@ PHP_METHOD(Sass, setStyle) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -385,7 +392,7 @@ PHP_METHOD(Sass, getIncludePath) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -413,7 +420,7 @@ PHP_METHOD(Sass, setIncludePath) RETURN_FALSE; #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -435,7 +442,7 @@ PHP_METHOD(Sass, getMapPath) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -463,7 +470,7 @@ PHP_METHOD(Sass, setMapPath) RETURN_FALSE; #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -486,7 +493,7 @@ PHP_METHOD(Sass, getPrecision) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -506,7 +513,7 @@ PHP_METHOD(Sass, setPrecision) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -526,7 +533,7 @@ PHP_METHOD(Sass, getEmbed) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -546,7 +553,7 @@ PHP_METHOD(Sass, setEmbed) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -567,7 +574,7 @@ PHP_METHOD(Sass, getComments) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -587,7 +594,7 @@ PHP_METHOD(Sass, setComments) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -608,7 +615,7 @@ PHP_METHOD(Sass, getIndent) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -628,7 +635,7 @@ PHP_METHOD(Sass, setIndent) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_MEMC_OBJ_P(this); + sass_object *obj = Z_SASS_OBJ_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); From 4fb1402c66dae91d2662594dd8e465c045488ce0 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 10 Nov 2015 15:43:21 +1000 Subject: [PATCH 124/226] PHP7 stable base --- README.md | 6 ++++++ src/php_sass.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b81eeb7..631b3b6 100644 --- a/README.md +++ b/README.md @@ -139,6 +139,12 @@ These extensions also utilise Libsass & remain in varying states of completion ## Changelog +** Version 0.5 +* PHP 7 compatibility + +** Version 0.4.9 +* Too Fast To Furious (Libsass 3.3.1) stable + ** Version 0.4.8 * Greased Lightning (Libsass 3.3.0) stable diff --git a/src/php_sass.h b/src/php_sass.h index d5ffa03..0e0d564 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -13,7 +13,7 @@ #include "config.h" #endif -#define SASS_VERSION "0.4.9" +#define SASS_VERSION "0.5.0" #define SASS_FLAVOR "Sassyphpras" #include From ca890661c72b1a75582bde224c9c82c1334ab793 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 Nov 2015 07:59:18 +1000 Subject: [PATCH 125/226] Updated documentation --- README.md | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 631b3b6..4955a45 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ The `sass` extension for PHP gives you an object-oriented system of parsing [Sas Sass is a CSS pre-processor language to add on exciting, new, awesome features to CSS. Sass was the first language of its kind and by far the most mature and up to date codebase. -Sass was originally created by Hampton Catlin ([@hcatlin](http://twitter.com/hcatlin)). The extension and continuing evolution of the language has all been the result of years of work by Natalie Weizenbaum ([@nex4](http://twitter.com/nex4)) and Chris Eppstein ([@chriseppstein](http://twitter.com/chriseppstein)). +Sass was originally created by Hampton Catlin ([@hcatlin](http://twitter.com/hcatlin)). The extension and continuing evolution of the language has all been the result of years of work by Natalie Weizenbaum ([@nex3](http://twitter.com/nex3)) and Chris Eppstein ([@chriseppstein](http://twitter.com/chriseppstein)). For more information about Sass itself, please visit [http://sass-lang.com](http://sass-lang.com) @@ -71,17 +71,20 @@ You can set the style of your SASS file to suit your needs: $sass = new Sass(); $sass->setStyle(Sass::STYLE_COMPRESSED); -The new additions to this build from the [Sensational](https://github.com/sensational/sassphp) codebase are: -* Camel case rename of `compile_file` to `compileFile` -* SASS file compilation is now an array when a source map is enabled. Otherwise, as per normal, it's a string. +As the [Libsass](https://github.com/hcatlin/libsass) library has matured to get closer to 100% SASS coverage, so this extension has also matured: +* SASS file compilation is an array when a source map file is specified. * The ability to define source comments +* The ability to embed the source map into the CSS output +* The ability to specify .SASS file input instead of .SCSS * The ability to set a source map path, required when generating a dedicated .map file +* The ability to define a root directory for the source map itself +* PHP 5.4 to PHP 7.1 (nightly) support -It also reports itself as the `Sassyphpras` version of the Apache SASS module to help differentiate builds. +The output of `compileFile()` is an array when creating source map files, allowing both compiled SASS file and .map file to be generated in the same function call. -The output of `compileFile()` is now an array instead of a string, allowing both compiled SASS file and .map file to be generated in the same function call. As there are multiple ways of generating source comments, there are now PHP level settings to control that output. +As there are multiple ways of generating source comments, there are now PHP level settings to control that output. -To generate source comments for a file inline - now in camelCase: +To generate source comments for a file inline: $sass = new Sass(); $sass->setComments(true); @@ -97,6 +100,12 @@ You can tell the compiler to use indented syntax (SASS syntax). By default it ex $sass->setIndent(true); //TRUE -> SASS, FALSE -> SCSS $css = $sass->compile($source); +You can tell the compiler to embed the source map into the actual CSS file as well: + + $sass = new Sass(); + $sass->setEmbed(true); + $css = $sass->compile($source); + You can set the source map file for the library to use: $sass = new Sass(); @@ -111,6 +120,13 @@ The first array item will always be the compiled SASS file: The second array item will always be the source map output: $css[1] +You can set the root of the generated source map file like so: + + $sass = new Sass(); + $sass->setMapRoot('/some/dir'); + $sass->setMapPath('/random.output.css.map'); + $css = $sass->compileFile($source); + If there's a problem, the extension will throw a `SassException`: $sass = new Sass(); @@ -132,10 +148,10 @@ If there's a problem, the extension will throw a `SassException`: ## Variant builds -These extensions also utilise Libsass & remain in varying states of completion +These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) library & remain in varying states of completion: -* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) extension - with Libsass 3.3.0 - stable -* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.2.5 - unstable +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.3.1 - stable - tested up to HHVM 3.10.x +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.3.1 - unstable ## Changelog @@ -152,7 +168,7 @@ These extensions also utilise Libsass & remain in varying states of completion * SCSS vs SASS detection - indents ** Version 0.4.6 -* Travis experimental +* Travis experimental (unreleased) ** Version 0.4.5 * Holiday Patch (Libsass 3.2.5) stable From d158f86f7c131ba862d88fb73fac9e505b8189e5 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 Nov 2015 21:11:44 +1000 Subject: [PATCH 126/226] Simplify travis --- .travis.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index cf89d31..034d3f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,13 +27,13 @@ before_install: - composer require codeclimate/php-test-reporter --dev - sudo apt-get update -qq - sudo apt-get install -y php5-dev - - sudo apt-get install -y apache2 - - sudo a2enmod actions - - sudo a2enmod rewrite - - echo "export PATH=/home/vagrant/.phpenv/bin:$PATH" | sudo tee -a /etc/apache2/envvars > /dev/null - - echo "$(curl -fsSL https://gist.github.com/roderik/16d751c979fdeb5a14e3/raw/gistfile1.txt)" | sudo tee /etc/apache2/conf.d/phpconfig > /dev/null - - echo "$(curl -fsSL https://gist.github.com/roderik/2eb301570ed4a1f4c33d/raw/gistfile1.txt)" | sed -e "s,PATH,`pwd`/web,g" | sudo tee /etc/apache2/sites-available/default > /dev/null - - sudo service apache2 restart +# - sudo apt-get install -y apache2 +# - sudo a2enmod actions +# - sudo a2enmod rewrite +# - echo "export PATH=/home/vagrant/.phpenv/bin:$PATH" | sudo tee -a /etc/apache2/envvars > /dev/null +# - echo "$(curl -fsSL https://gist.github.com/roderik/16d751c979fdeb5a14e3/raw/gistfile1.txt)" | sudo tee /etc/apache2/conf.d/phpconfig > /dev/null +# - echo "$(curl -fsSL https://gist.github.com/roderik/2eb301570ed4a1f4c33d/raw/gistfile1.txt)" | sed -e "s,PATH,`pwd`/web,g" | sudo tee /etc/apache2/sites-available/default > /dev/null +# - sudo service apache2 restart - git submodule init - git submodule update From 8483d22e39822b4683e696cb35529eeb4c3502d8 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 12 Nov 2015 08:47:44 +1000 Subject: [PATCH 127/226] Libsass 3.3.2 --- README.md | 3 +++ config.m4 | 2 +- lib/libsass | 2 +- src/php_sass.h | 2 +- tests/check_bundled_libsass_version.phpt | 2 +- 5 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4955a45..1b0eec7 100644 --- a/README.md +++ b/README.md @@ -155,6 +155,9 @@ These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) ## Changelog +** Version 0.5.1 +* Eleanor (Libsass 3.3.2) stable + ** Version 0.5 * PHP 7 compatibility diff --git a/config.m4 b/config.m4 index 28dd91d..559d97f 100644 --- a/config.m4 +++ b/config.m4 @@ -14,7 +14,7 @@ if test "$PHP_SASS" != "no"; then if test "x$sass_version" != "x" ; then # escape hell. This is what we need to pass to the - # compiler: -DLIBSASS_VERSION="\"'3.3.1\"" + # compiler: -DLIBSASS_VERSION="\"'3.3.2\"" CFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CFLAGS" CXXFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CXXFLAGS" fi diff --git a/lib/libsass b/lib/libsass index 42e22fb..f47645c 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit 42e22fbadfcdc8ac3b983890518dfa0ebff3c229 +Subproject commit f47645c2ebb98c9e0c970f59820b239ab417dda3 diff --git a/src/php_sass.h b/src/php_sass.h index 0e0d564..96a5088 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -13,7 +13,7 @@ #include "config.h" #endif -#define SASS_VERSION "0.5.0" +#define SASS_VERSION "0.5.1" #define SASS_FLAVOR "Sassyphpras" #include diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index fb9ca18..fa86baf 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- From e0c9285b116a5b5f4913d6b1135efc7c02ca8019 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 12 Nov 2015 14:12:48 +1000 Subject: [PATCH 128/226] More Travis --- .travis.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 034d3f3..0c7b592 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,6 @@ php: - 5.5 - 5.6 - nightly -cache: ccache env: global: @@ -14,17 +13,13 @@ env: # Add the pip installation folder to the PATH, until https://github.com/travis-ci/travis-ci/issues/3563 is fixed - PATH=$HOME/.local/bin:$PATH -addons: - code_climate: - repo_token: 5238e0804b03668ded6dad5dc40b8c274c038b97c2df34c3353e6fae8a1bbf10 - compiler: - gcc before_install: - echo $LANG - echo $LC_ALL - - composer require codeclimate/php-test-reporter --dev + - composer require satooshi/php-coveralls --dev - sudo apt-get update -qq - sudo apt-get install -y php5-dev # - sudo apt-get install -y apache2 @@ -52,7 +47,7 @@ script: - make install - mkdir -p build/logs - make test - - phpunit -c phpunit.xml --coverage-clover build/logs/clover.xml + - php vendor/bin/phpunit -c phpunit.xml after_script: - php vendor/bin/coveralls -v From 1092f03b97341f8b799b134dbc8b80850eb5a1a3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 12 Nov 2015 14:36:08 +1000 Subject: [PATCH 129/226] More Travis --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0c7b592..47aacc1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -47,10 +47,10 @@ script: - make install - mkdir -p build/logs - make test - - php vendor/bin/phpunit -c phpunit.xml + - phpunit --coverage-clover build/logs/clover.xml -after_script: - - php vendor/bin/coveralls -v +after_success: + - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then php vendor/bin/coveralls -v; fi;' notifications: on_success: never From a9f2c0bc935ecf0e637f7b1569e0dc4d38594b6f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 13 Nov 2015 11:10:49 +1000 Subject: [PATCH 130/226] Remove tests from Travis for time being --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 47aacc1..a848790 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,12 +45,12 @@ script: - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - make install - - mkdir -p build/logs - - make test - - phpunit --coverage-clover build/logs/clover.xml +# - mkdir -p build/logs +# - make test +# - phpunit --coverage-clover build/logs/clover.xml after_success: - - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then php vendor/bin/coveralls -v; fi;' +# - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then php vendor/bin/coveralls -v; fi;' notifications: on_success: never From f5d54d93a1bbe867e2e3ab90a1ac4033ca15b9f9 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 13 Nov 2015 11:19:45 +1000 Subject: [PATCH 131/226] Travis: move script around --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index a848790..963c706 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,8 +35,6 @@ before_install: before_script: - travis_retry composer self-update - composer config discard-changes true - -script: - make clean - cd lib/libsass && make && cd ../.. - phpize @@ -49,6 +47,9 @@ script: # - make test # - phpunit --coverage-clover build/logs/clover.xml +script: + - make test + after_success: # - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then php vendor/bin/coveralls -v; fi;' From 083b928878e500eb2aefcc22076a9c27dca6b647 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 13 Nov 2015 11:25:27 +1000 Subject: [PATCH 132/226] Yet more Travis --- .travis.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 963c706..1ed8bc4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -35,6 +35,8 @@ before_install: before_script: - travis_retry composer self-update - composer config discard-changes true + +script: - make clean - cd lib/libsass && make && cd ../.. - phpize @@ -44,14 +46,8 @@ before_script: - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - make install # - mkdir -p build/logs -# - make test # - phpunit --coverage-clover build/logs/clover.xml - -script: - - make test - -after_success: -# - sh -c 'if [ "$TRAVIS_PHP_VERSION" != "hhvm" ]; then php vendor/bin/coveralls -v; fi;' + - make test notifications: on_success: never From ea4954fc1ca90dc97c53bc469acdcc2e394d343e Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 15 Dec 2015 13:49:20 +1000 Subject: [PATCH 133/226] Container Travis --- .travis.yml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1ed8bc4..a2cb17e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,11 @@ php: - 5.6 - nightly +addons: + apt: + packages: + - php-5dev + env: global: # Configure the .phpt tests to be Travis friendly @@ -20,15 +25,6 @@ before_install: - echo $LANG - echo $LC_ALL - composer require satooshi/php-coveralls --dev - - sudo apt-get update -qq - - sudo apt-get install -y php5-dev -# - sudo apt-get install -y apache2 -# - sudo a2enmod actions -# - sudo a2enmod rewrite -# - echo "export PATH=/home/vagrant/.phpenv/bin:$PATH" | sudo tee -a /etc/apache2/envvars > /dev/null -# - echo "$(curl -fsSL https://gist.github.com/roderik/16d751c979fdeb5a14e3/raw/gistfile1.txt)" | sudo tee /etc/apache2/conf.d/phpconfig > /dev/null -# - echo "$(curl -fsSL https://gist.github.com/roderik/2eb301570ed4a1f4c33d/raw/gistfile1.txt)" | sed -e "s,PATH,`pwd`/web,g" | sudo tee /etc/apache2/sites-available/default > /dev/null -# - sudo service apache2 restart - git submodule init - git submodule update @@ -45,9 +41,9 @@ script: - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - make install -# - mkdir -p build/logs -# - phpunit --coverage-clover build/logs/clover.xml - - make test + - mkdir -p build/logs + - phpunit --coverage-clover build/logs/clover.xml + - make test notifications: on_success: never From 4636a54d5e4e581690e656812b8803546bae34de Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 6 Jan 2016 13:00:54 +1000 Subject: [PATCH 134/226] Appveyor PHP version update --- appveyor.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 1b1fb7b..9cb774d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ environment: - PHP_VERSION: 5.6.14 + PHP_VERSION: 5.6.16 os: - Visual Studio 2015 @@ -20,12 +20,12 @@ install: - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - cd C:\php-src - - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.14-src.zip -FileName php-src.zip + - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.16-src.zip -FileName php-src.zip - 7z x -y php-src.zip > nul - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' build_script: - - cd C:\php-src\php-5.6.14-src + - cd C:\php-src\php-5.6.16-src - buildconf.bat --add-modules-dir=C:\projects - configure --disable-all --enable-cli --enable-sass - nmake php_sass.dll From 507a3afb59a12651d9bae3ee0a8e02855866d667 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 6 Jan 2016 13:03:53 +1000 Subject: [PATCH 135/226] Appveyor OS drop --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 9cb774d..361e958 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,7 +2,7 @@ environment: PHP_VERSION: 5.6.16 os: - - Visual Studio 2015 + - Visual Studio 2012 configuration: Release From 81970b842eddf1d074caa607bd9a52073ec2f9f8 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 6 Jan 2016 13:06:39 +1000 Subject: [PATCH 136/226] Appveyor remove OS / image --- appveyor.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 361e958..ce97a9a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,9 +1,6 @@ environment: PHP_VERSION: 5.6.16 -os: - - Visual Studio 2012 - configuration: Release version: '0.0.{build}' From 30cb5da8fea6c4a2f42c686643a2aff8c683f09a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 8 Jan 2016 08:58:45 +1000 Subject: [PATCH 137/226] Valgrind on Travis? --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index a2cb17e..5ab9d2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ addons: apt: packages: - php-5dev + - valgrind env: global: From 353ace8525564cd20fd1834e68dd14080eac8f0a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 8 Jan 2016 10:46:06 +1000 Subject: [PATCH 138/226] Restructure Travis --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5ab9d2e..f424b66 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,13 @@ php: - 5.4 - 5.5 - 5.6 + - 7.0 - nightly +allow_failures: + - php: nightly + fast_finish: true + addons: apt: packages: @@ -41,7 +46,6 @@ script: - make - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - - make install - mkdir -p build/logs - phpunit --coverage-clover build/logs/clover.xml - make test From 5b9b65d14387e7f16973d3a66b90c7508a8d6f70 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 8 Jan 2016 10:53:29 +1000 Subject: [PATCH 139/226] Remove dupe call from Travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index f424b66..91c5d30 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,6 @@ php: allow_failures: - php: nightly - fast_finish: true addons: apt: From 985bbb51c5cdf0b9f815513ed8322ca2d20f0f59 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 8 Jan 2016 10:57:57 +1000 Subject: [PATCH 140/226] Return of make install to Travis: it is needed --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 91c5d30..dc23239 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,6 +45,7 @@ script: - make - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" + - make install - mkdir -p build/logs - phpunit --coverage-clover build/logs/clover.xml - make test From a5523fc7bf63945dc6b030241c69ca5a5d71200b Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 8 Jan 2016 11:01:48 +1000 Subject: [PATCH 141/226] See if it works without extension install --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index dc23239..c61dad1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,9 +43,9 @@ script: - phpize - ./configure - make - - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - - make install + # - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini + # - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" + # - make install - mkdir -p build/logs - phpunit --coverage-clover build/logs/clover.xml - make test From ef82f193552fa9475821d8a48b1bf35a34369fbc Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 8 Jan 2016 11:16:20 +1000 Subject: [PATCH 142/226] Revert "See if it works without extension install" This reverts commit a5523fc7bf63945dc6b030241c69ca5a5d71200b. --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index c61dad1..dc23239 100644 --- a/.travis.yml +++ b/.travis.yml @@ -43,9 +43,9 @@ script: - phpize - ./configure - make - # - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - # - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - # - make install + - echo "extension = sass.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini + - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" + - make install - mkdir -p build/logs - phpunit --coverage-clover build/logs/clover.xml - make test From 66c332b70941abd8738279ab65e9a41c94c03b9e Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 15 Jan 2016 08:10:47 +1000 Subject: [PATCH 143/226] PHP7: redesign getting file/source structure --- src/sass.c | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/src/sass.c b/src/sass.c index afe1ffe..32d8f5e 100644 --- a/src/sass.c +++ b/src/sass.c @@ -173,28 +173,19 @@ PHP_METHOD(Sass, compile) sass_object *this = (sass_object *)zend_object_store_get_object(getThis() TSRMLS_CC); #endif - // We need a file name and a length - #if ZEND_MODULE_API_NO <= 20131226 // Define our parameters as local variables char *source; + #if ZEND_MODULE_API_NO <= 20131226 int source_len; - - // Use zend_parse_parameters() to grab our source from the function call - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &source, &source_len) == FAILURE){ - RETURN_FALSE; - } #endif - - // We need a file name and a length #if ZEND_MODULE_API_NO > 20131226 - // Define our parameters as local variables - zend_string *source; + size_t source_len; + #endif // Use zend_parse_parameters() to grab our source from the function call - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &source) == FAILURE){ + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &source, &source_len) == FAILURE){ RETURN_FALSE; } - #endif // Create a new sass_context #if ZEND_MODULE_API_NO <= 20131226 @@ -247,27 +238,19 @@ PHP_METHOD(Sass, compileFile) #endif // We need a file name and a length - #if ZEND_MODULE_API_NO <= 20131226 char *file; + #if ZEND_MODULE_API_NO <= 20131226 int file_len; - - // Grab the file name from the function - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file, &file_len) == FAILURE) - { - RETURN_FALSE; - } #endif - - // We need a file name and a length #if ZEND_MODULE_API_NO > 20131226 - zend_string *file; + size_t file_len; + #endif // Grab the file name from the function - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file) == FAILURE) + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file, &file_len) == FAILURE) { RETURN_FALSE; } - #endif // First, do a little checking of our own. Does the file exist? #if ZEND_MODULE_API_NO <= 20131226 From 3986209ed20eea80cf4188eebf9eaf1117bae4fa Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 15 Jan 2016 08:22:42 +1000 Subject: [PATCH 144/226] More PHP7 work --- src/sass.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/sass.c b/src/sass.c index 32d8f5e..0ad6413 100644 --- a/src/sass.c +++ b/src/sass.c @@ -188,13 +188,7 @@ PHP_METHOD(Sass, compile) } // Create a new sass_context - #if ZEND_MODULE_API_NO <= 20131226 struct Sass_Data_Context* data_context = sass_make_data_context(strdup(source)); - #endif - - #if ZEND_MODULE_API_NO > 20131226 - struct Sass_Data_Context* data_context = sass_make_data_context(strdup(source->val)); - #endif struct Sass_Context* ctx = sass_data_context_get_context(data_context); From 097e0346954f4c81e136be2c68f4827bf860ae35 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 15 Jan 2016 08:27:46 +1000 Subject: [PATCH 145/226] Simplify stuff for PHP7 --- src/sass.c | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/sass.c b/src/sass.c index 0ad6413..5723582 100644 --- a/src/sass.c +++ b/src/sass.c @@ -247,29 +247,13 @@ PHP_METHOD(Sass, compileFile) } // First, do a little checking of our own. Does the file exist? - #if ZEND_MODULE_API_NO <= 20131226 if( access( file, F_OK ) == -1 ) { zend_throw_exception_ex(sass_exception_ce, 0 TSRMLS_CC, "File %s could not be found", file); RETURN_FALSE; } - #endif - #if ZEND_MODULE_API_NO > 20131226 - if( access( file->val, F_OK ) == -1 ) - { - zend_throw_exception_ex(sass_exception_ce, 0 TSRMLS_CC, "File %s could not be found", file->val); - RETURN_FALSE; - } - #endif - - - // Create a new sass_file_context - #if ZEND_MODULE_API_NO <= 20131226 + struct Sass_File_Context* file_ctx = sass_make_file_context(file); - #endif - #if ZEND_MODULE_API_NO > 20131226 - struct Sass_File_Context* file_ctx = sass_make_file_context(file->val); - #endif struct Sass_Context* ctx = sass_file_context_get_context(file_ctx); From 964777760050f63e915110aa283d9db57c0dd1c6 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 15 Jan 2016 08:42:32 +1000 Subject: [PATCH 146/226] Travis core dump tracking --- .travis.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dc23239..152eb60 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ addons: apt: packages: - php-5dev - - valgrind + - gdb env: global: @@ -36,6 +36,7 @@ before_install: before_script: - travis_retry composer self-update - composer config discard-changes true + - ulimit -c unlimited -S # enable core dumps script: - make clean @@ -54,6 +55,11 @@ notifications: on_success: never on_failure: never +after_failure: +- COREFILE=$(find . -maxdepth 1 -name "core*" | head -n 1) # find core file +- if [[ -f "$COREFILE" ]]; then gdb -c "$COREFILE" example -ex "thread apply all bt" -ex "set pagination 0" -batch; fi + + os: - linux From 9b1a22b6ecc674252abf8bfbc9f6fd22630c5083 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 15 Jan 2016 08:51:20 +1000 Subject: [PATCH 147/226] Revise documentation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1b0eec7..bf1ce41 100644 --- a/README.md +++ b/README.md @@ -150,8 +150,8 @@ If there's a problem, the extension will throw a `SassException`: These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) library & remain in varying states of completion: -* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.3.1 - stable - tested up to HHVM 3.10.x -* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.3.1 - unstable +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.3.2 - tested up to HHVM 3.10.x +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.3.2 ## Changelog From a2dcab9071a02a349e95624d9cbfd2b98a6374f3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 18 Jan 2016 09:04:37 +1000 Subject: [PATCH 148/226] More work on PHP7 --- src/sass.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/sass.c b/src/sass.c index 5723582..808e575 100644 --- a/src/sass.c +++ b/src/sass.c @@ -48,8 +48,13 @@ void sass_free_storage(void *object TSRMLS_DC) if (obj->map_root != NULL) efree(obj->map_root); +#if ZEND_MODULE_API_NO <= 20131226 zend_hash_destroy(obj->zo.properties); FREE_HASHTABLE(obj->zo.properties); +#endif +#if ZEND_MODULE_API_NO > 20131226 + zend_object_std_dtor(obj->zo.properties); + #endif efree(obj); } @@ -80,17 +85,17 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) { #if ZEND_MODULE_API_NO > 20131226 zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { - struct sass_object *intern = ecalloc(1, + struct sass_object *obj = ecalloc(1, sizeof(struct sass_object) + zend_object_properties_size(type)); - zend_object_std_init(&intern->zo, type TSRMLS_CC); + zend_object_std_init(&obj->zo, type TSRMLS_CC); sass_handlers.offset = XtOffsetOf(struct sass_object, zo); sass_handlers.free_obj = sass_free_storage; - intern->zo.handlers = &sass_handlers; + obj->zo.handlers = &sass_handlers; - return &intern->zo; + return &obj->zo; } static inline struct sass_object * php_custom_object_fetch_object(zend_object *obj) { From 8d347c80831841828ff4df14b3e216ff6bc1e97a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 18 Jan 2016 09:11:13 +1000 Subject: [PATCH 149/226] PHP7: better object deletion --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 808e575..12e5854 100644 --- a/src/sass.c +++ b/src/sass.c @@ -53,7 +53,7 @@ void sass_free_storage(void *object TSRMLS_DC) FREE_HASHTABLE(obj->zo.properties); #endif #if ZEND_MODULE_API_NO > 20131226 - zend_object_std_dtor(obj->zo.properties); + zend_object_std_dtor(obj); #endif efree(obj); From 46dbd83326920faa082592aced080d56f137feff Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 25 Jan 2016 11:31:57 +1000 Subject: [PATCH 150/226] Libsass 3.3.3 update --- README.md | 7 +++++-- config.m4 | 2 +- lib/libsass | 2 +- src/php_sass.h | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index bf1ce41..2d002a4 100644 --- a/README.md +++ b/README.md @@ -150,11 +150,14 @@ If there's a problem, the extension will throw a `SassException`: These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) library & remain in varying states of completion: -* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.3.2 - tested up to HHVM 3.10.x -* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.3.2 +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.3.3 - tested up to HHVM 3.11.x +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.3.3 ## Changelog +** Version 0.5.2 +* Delorean (Libsass 3.3.3) stable & PHP7 rewrite + ** Version 0.5.1 * Eleanor (Libsass 3.3.2) stable diff --git a/config.m4 b/config.m4 index 559d97f..472eb75 100644 --- a/config.m4 +++ b/config.m4 @@ -14,7 +14,7 @@ if test "$PHP_SASS" != "no"; then if test "x$sass_version" != "x" ; then # escape hell. This is what we need to pass to the - # compiler: -DLIBSASS_VERSION="\"'3.3.2\"" + # compiler: -DLIBSASS_VERSION="\"'3.3.3\"" CFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CFLAGS" CXXFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CXXFLAGS" fi diff --git a/lib/libsass b/lib/libsass index f47645c..bc1e6db 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit f47645c2ebb98c9e0c970f59820b239ab417dda3 +Subproject commit bc1e6db3117d4769023a92344cd7f48dfddd4972 diff --git a/src/php_sass.h b/src/php_sass.h index 96a5088..442e76b 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -13,7 +13,7 @@ #include "config.h" #endif -#define SASS_VERSION "0.5.1" +#define SASS_VERSION "0.5.2" #define SASS_FLAVOR "Sassyphpras" #include From 0b768b34881acefc0654b17f390f617c2eaef4c7 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 2 Feb 2016 14:18:26 +1000 Subject: [PATCH 151/226] New PHP7 based PR --- README.md | 2 +- appveyor.yml | 42 ------------------------------------------ config.w32 | 22 ---------------------- src/php_sass.h | 3 ++- 4 files changed, 3 insertions(+), 66 deletions(-) delete mode 100644 appveyor.yml delete mode 100644 config.w32 diff --git a/README.md b/README.md index 2d002a4..398a08c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ For more information about Sass itself, please visit [http://sass-lang.com](http Currently, the only way to install the extension is manually: - $ git clone git://github.com/absalomedia/sassphp + $ git clone git://github.com/sensational/sassphp Remember to grab your submodules: diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index ce97a9a..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,42 +0,0 @@ -environment: - PHP_VERSION: 5.6.16 - -configuration: Release - -version: '0.0.{build}' - -matrix: - fast_finish: true - -install: - - cd C:\projects\sassphp - - git submodule init - - git submodule update - - cd C:\ - - mkdir php-src - - echo Preparing Windows build... - - echo Downloading PHP source code [%PHP_VERSION%] - - cd C:\php-src - - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.16-src.zip -FileName php-src.zip - - 7z x -y php-src.zip > nul - - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' - -build_script: - - cd C:\php-src\php-5.6.16-src - - buildconf.bat --add-modules-dir=C:\projects - - configure --disable-all --enable-cli --enable-sass - - nmake php_sass.dll - -test: OFF - -test_script: OFF - -deploy: OFF - -notifications: - - on_build_success: false - on_build_failure: false - on_build_status_changed: false - -artifacts: - - path: ext\Release_TS\php_sass.dll \ No newline at end of file diff --git a/config.w32 b/config.w32 deleted file mode 100644 index dc7bd5c..0000000 --- a/config.w32 +++ /dev/null @@ -1,22 +0,0 @@ -// vim:ft=javascript - -ARG_ENABLE("sass", "whether to enable sass extension", "yes"); - -ADD_FLAG('CFLAGS', ' /wd4005 /wd4267 /wd4244 '); -ADD_FLAG('CFLAGS_BD_ZEND', ' /wd4018 /wd4101 /wd4090 /wd4273 '); -ADD_FLAG('CFLAGS_BD_MAIN', ' /wd4018 /wd4090 '); -ADD_FLAG('CFLAGS_BD_MAIN_STREAMS', ' /wd4013 '); -DEFINE('RC', '$(RC) /nologo /d _USING_V110_SDK71_'); -ADD_FLAG('CFLAGS_BD_EXT_STANDARD', ' /wd4047 /wd4018 '); -ADD_FLAG('CFLAGS_BD_SAPI_CLI', ' /wd4018 '); - -if (PHP_SASS == "yes") { - CHECK_LIB("sass", ' + PROGRAM_FILES + '\\Apache Group\\Apache\\libexec', LIBSASS_SHARED_LIBADD); - LDFLAGS="-lsass /libpath:/lib/libsass/lib/"; - EXTENSION("sass", "src/sass.c src/utilities.c", true); - - if ("x$sass_version" != "x") { - CFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CFLAGS"; - CXXFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CXXFLAGS"; - } -} \ No newline at end of file diff --git a/src/php_sass.h b/src/php_sass.h index 442e76b..d6b0dff 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -4,6 +4,7 @@ * * https://github.com/jamierumbelow/sassphp * Copyright (c)2012 Jamie Rumbelow + * with work done by Philip Hofstetter & Lawrence Meckan */ #ifndef PHP_SASS_H @@ -14,7 +15,7 @@ #endif #define SASS_VERSION "0.5.2" -#define SASS_FLAVOR "Sassyphpras" +#define SASS_FLAVOR "sensational" #include #include From 7e14e8dc201be22440c761fe42ca492a0a71c32c Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 3 Feb 2016 15:34:21 +1000 Subject: [PATCH 152/226] Travis: trying to catch coredumps --- .travis.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 152eb60..e13edfb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,11 @@ env: compiler: - gcc +install: + # What is the current file size max for core files? + # It is usually 0, which means no core file will be dumped if there is a crash + - ulimit -c + before_install: - echo $LANG - echo $LC_ALL @@ -49,16 +54,15 @@ script: - make install - mkdir -p build/logs - phpunit --coverage-clover build/logs/clover.xml - - make test + - make test || RESULT=$? + - if [[ ${RESULT} == 0 ]]; then echo "\\o/ our test worked without problems"; else echo "ruhroh test returned an errorcode of $RESULT"; fi; + - for i in $(find ./ -maxdepth 1 -name 'core*' -print); do gdb $(pwd)/test core* -ex "thread apply all bt" -ex "set pagination 0" -batch; done; + - if [[ ${RESULT} != 0 ]]; then exit $RESULT ; fi; notifications: on_success: never on_failure: never -after_failure: -- COREFILE=$(find . -maxdepth 1 -name "core*" | head -n 1) # find core file -- if [[ -f "$COREFILE" ]]; then gdb -c "$COREFILE" example -ex "thread apply all bt" -ex "set pagination 0" -batch; fi - os: - linux From 39f4e44b74435ed68d6d12268ccec92f46f9a797 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 3 Feb 2016 15:48:59 +1000 Subject: [PATCH 153/226] Update tests --- tests/check_bundled_libsass_version.phpt | 2 +- tests/file_embed.phpt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index fa86baf..740c5e5 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- diff --git a/tests/file_embed.phpt b/tests/file_embed.phpt index 0f7c94b..c991895 100644 --- a/tests/file_embed.phpt +++ b/tests/file_embed.phpt @@ -20,4 +20,4 @@ div { div { blah: "foo iphone"; } -/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosR0FBRyxDQUFDO0VBQ0YsSUFBSSxFQUFFLDRCQUFpRCxHQUN4RDs7QUFJRCxHQUFHLENBQUM7RUFDQSxJQUFJLEVBQUUsWUFBYSxHQUN0QiIsCgkibmFtZXMiOiBbXQp9 */ +sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosQUFBQSxHQUFHLENBQUM7RUFDRixJQUFJLEVBQUUsNEJBQWlELEdBQ3hEOztBQUlELEFBQUEsR0FBRyxDQUFDO0VBQ0EsSUFBSSxFQUFFLFlBQWEsR0FDdEIiLAoJIm5hbWVzIjogW10KfQ== */ From 885512a21f7c9f85d973604574ee0098f7b72937 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 5 Feb 2016 09:08:41 +1000 Subject: [PATCH 154/226] Typo fix file embed test --- tests/file_embed.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/file_embed.phpt b/tests/file_embed.phpt index c991895..b27a622 100644 --- a/tests/file_embed.phpt +++ b/tests/file_embed.phpt @@ -20,4 +20,4 @@ div { div { blah: "foo iphone"; } -sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosQUFBQSxHQUFHLENBQUM7RUFDRixJQUFJLEVBQUUsNEJBQWlELEdBQ3hEOztBQUlELEFBQUEsR0FBRyxDQUFDO0VBQ0EsSUFBSSxFQUFFLFlBQWEsR0FDdEIiLAoJIm5hbWVzIjogW10KfQ== */ + /*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosQUFBQSxHQUFHLENBQUM7RUFDRixJQUFJLEVBQUUsNEJBQWlELEdBQ3hEOztBQUlELEFBQUEsR0FBRyxDQUFDO0VBQ0EsSUFBSSxFQUFFLFlBQWEsR0FDdEIiLAoJIm5hbWVzIjogW10KfQ== */ From b0a5a60a98855efd8e1586c7230d7b096ae92ef8 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 5 Feb 2016 09:18:30 +1000 Subject: [PATCH 155/226] File embed test: remove unneeded space --- tests/file_embed.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/file_embed.phpt b/tests/file_embed.phpt index b27a622..ace8f90 100644 --- a/tests/file_embed.phpt +++ b/tests/file_embed.phpt @@ -20,4 +20,4 @@ div { div { blah: "foo iphone"; } - /*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosQUFBQSxHQUFHLENBQUM7RUFDRixJQUFJLEVBQUUsNEJBQWlELEdBQ3hEOztBQUlELEFBQUEsR0FBRyxDQUFDO0VBQ0EsSUFBSSxFQUFFLFlBQWEsR0FDdEIiLAoJIm5hbWVzIjogW10KfQ== */ +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosQUFBQSxHQUFHLENBQUM7RUFDRixJQUFJLEVBQUUsNEJBQWlELEdBQ3hEOztBQUlELEFBQUEsR0FBRyxDQUFDO0VBQ0EsSUFBSSxFQUFFLFlBQWEsR0FDdEIiLAoJIm5hbWVzIjogW10KfQ== */ From 139236fb28d45a7bc7b781e476c3fa35a7fd9677 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 5 Feb 2016 09:32:39 +1000 Subject: [PATCH 156/226] More test work --- tests/file_indent.phpt | 6 +- tests/handles_map.phpt | 7 +- tests/support/huge.scss | 27136 ------------------------------------- tests/support/mixin.sass | 20 - 4 files changed, 8 insertions(+), 27161 deletions(-) delete mode 100644 tests/support/huge.scss delete mode 100644 tests/support/mixin.sass diff --git a/tests/file_indent.phpt b/tests/file_indent.phpt index 7e54891..d21bb57 100644 --- a/tests/file_indent.phpt +++ b/tests/file_indent.phpt @@ -7,10 +7,12 @@ compiles SASS file in comparison to SCSS based SASS file $sass = new Sass(); $sass->setIndent(true); -$css = $sass->compileFile(__DIR__.'/support/mixin.sass'); +$css = $sass->compileFile(__DIR__.'/support/source_type.sass'); echo $css; ?> --EXPECT-- - +body { + background: red; + border: 1px solid green; } \ No newline at end of file diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index 52ec1ac..5c8795f 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -8,11 +8,12 @@ correctly handles setting and getting source map formats $sass = new Sass(); // test default from constructor $sass->setComments(true); -$sass->setMapPath(__DIR__.'/support/huge.css.map'); +$sass->setMapPath(__DIR__.'/support/test.css.map'); $sass->compileFile(__DIR__.'/support/test.scss'); - +$css = $sass->compileFile($source); +file_put_contents(__DIR__.'/support/test.css.map',$css[1]); ?> --EXPECT_EXTERNAL-- -support/huge.css.map +support/test.css.map --EXPECT-- diff --git a/tests/support/huge.scss b/tests/support/huge.scss deleted file mode 100644 index d138ff6..0000000 --- a/tests/support/huge.scss +++ /dev/null @@ -1,27136 +0,0 @@ -$blah: a b c; -$bloo: "hello"; - -div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - $blah: a b c; - $bloo: "hello"; - - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - div { - color: red; - width: 100%; - p { - margin: $blah; - $blee: goodbye; - padding: 10px 5px; - a { - display: inline-block; - padding: 5px; - color: $blee; - } - foo: $bloo; - empty { - not-empty { - background: lightgray; - border: 1px solid blue; - span { - display: block; - -webkit-box-sizing: border-box; - } - } - } - } - } - } - } - } - } - } -} \ No newline at end of file diff --git a/tests/support/mixin.sass b/tests/support/mixin.sass deleted file mode 100644 index eac2329..0000000 --- a/tests/support/mixin.sass +++ /dev/null @@ -1,20 +0,0 @@ -@mixin texto($font, $size, $color) - font-family: $font - font-size: $size - color: $color - margin: 0 - -@mixin shadow($x, $y, $blur, $color) - text-shadow: $x $y $blur $color - filter: Shadow(Color=$color, Direction=130, Strength=1) - -@mixin filterS($x, $y, $blur, $color) - -moz-box-shadow: $x $y $blur $color - -webkit-box-shadow: $x $y $blur $color - box-shadow: $x $y $blur $color - -@mixin img($url, $w, $h) - background: url($url) 0 0 no-repeat - width: $w - height: $h - From 9cfdc9c1e8eb01efb90cb6f5177ca108700a1227 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 5 Feb 2016 09:33:09 +1000 Subject: [PATCH 157/226] Map test revision --- tests/handles_map.phpt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index 5c8795f..44cfeee 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -11,9 +11,8 @@ $sass->setComments(true); $sass->setMapPath(__DIR__.'/support/test.css.map'); $sass->compileFile(__DIR__.'/support/test.scss'); $css = $sass->compileFile($source); -file_put_contents(__DIR__.'/support/test.css.map',$css[1]); +file_put_contents(__DIR__.'test.css.map',$css[1]); ?> --EXPECT_EXTERNAL-- -support/test.css.map ---EXPECT-- +test.css.map From 071c2ec74a0da4b84c900f1e979608c72bb19a82 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 5 Feb 2016 10:25:31 +1000 Subject: [PATCH 158/226] More test work --- tests/handles_map.phpt | 3 +-- tests/support/source_type.sass | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 tests/support/source_type.sass diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index 44cfeee..7fb1b55 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -14,5 +14,4 @@ $css = $sass->compileFile($source); file_put_contents(__DIR__.'test.css.map',$css[1]); ?> --EXPECT_EXTERNAL-- -test.css.map - +test.css.map \ No newline at end of file diff --git a/tests/support/source_type.sass b/tests/support/source_type.sass new file mode 100644 index 0000000..c046a36 --- /dev/null +++ b/tests/support/source_type.sass @@ -0,0 +1,8 @@ +$color: red + +=my-border($color) + border: 1px solid $color + +body + background: $color + +my-border(green) From f2179c08f565c4b20884380f73e2495906a9174d Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 5 Feb 2016 10:53:47 +1000 Subject: [PATCH 159/226] More source map test work --- tests/handles_map.phpt | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index 7fb1b55..38e1293 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -9,9 +9,20 @@ $sass = new Sass(); // test default from constructor $sass->setComments(true); $sass->setMapPath(__DIR__.'/support/test.css.map'); -$sass->compileFile(__DIR__.'/support/test.scss'); -$css = $sass->compileFile($source); -file_put_contents(__DIR__.'test.css.map',$css[1]); +$css = $sass->compileFile(__DIR__.'/support/test.scss'); +echo $css[1]; + ?> ---EXPECT_EXTERNAL-- -test.css.map \ No newline at end of file +--EXPECT-- +{ + "version": 3, + "file": "test.css", + "sources": [ + "test.scss" + ], + "sourcesContent": [ + "@import url(../blahblah/blah.blah);\n\ndiv {\n blah: \"hello #{2+2} world #{unit(23px)} #{'bloo'} blah\";\n}\n\n$foo: iphone;\n\ndiv {\n blah: \"foo #{$foo}\"\n}\n" + ], + "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB", + "names": [] +} \ No newline at end of file From a1ccfb1b5281b1374c328b53c6ef8e1bc1d38adb Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 5 Feb 2016 11:42:38 +1000 Subject: [PATCH 160/226] Map test with tabs --- tests/handles_map.phpt | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index 38e1293..13c5682 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -15,14 +15,14 @@ echo $css[1]; ?> --EXPECT-- { - "version": 3, - "file": "test.css", - "sources": [ - "test.scss" - ], - "sourcesContent": [ - "@import url(../blahblah/blah.blah);\n\ndiv {\n blah: \"hello #{2+2} world #{unit(23px)} #{'bloo'} blah\";\n}\n\n$foo: iphone;\n\ndiv {\n blah: \"foo #{$foo}\"\n}\n" - ], - "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB", - "names": [] + "version": 3, + "file": "test.css", + "sources": [ + "test.scss" + ], + "sourcesContent": [ + "@import url(../blahblah/blah.blah);\n\ndiv {\n blah: \"hello #{2+2} world #{unit(23px)} #{'bloo'} blah\";\n}\n\n$foo: iphone;\n\ndiv {\n blah: \"foo #{$foo}\"\n}\n" + ], + "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB", + "names": [] } \ No newline at end of file From 5e95f4683849e719048958d6b9a50c159dc3875e Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 5 Feb 2016 11:47:26 +1000 Subject: [PATCH 161/226] More map test --- tests/handles_map.phpt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index 13c5682..f7f1686 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -25,4 +25,5 @@ echo $css[1]; ], "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB", "names": [] -} \ No newline at end of file +} + From 48d65facf29115f94a723081646983a8fc50c72b Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 08:55:10 +1000 Subject: [PATCH 162/226] Tweak object freeing for PHP7 --- src/sass.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/sass.c b/src/sass.c index 12e5854..7cec7b4 100644 --- a/src/sass.c +++ b/src/sass.c @@ -38,6 +38,20 @@ typedef struct sass_object { zend_class_entry *sass_ce; +#if PHP_MAJOR_VERSION >= 7 +void sass_free_storage(void *object) +{ + sass_object *obj = (sass_object *)object; + if (obj->include_paths != NULL) + efree(obj->include_paths); + if (obj->map_path != NULL) + efree(obj->map_path); + if (obj->map_root != NULL) + efree(obj->map_root); + zend_object_std_dtor(obj); + efree(obj); +} +#else void sass_free_storage(void *object TSRMLS_DC) { sass_object *obj = (sass_object *)object; @@ -47,17 +61,11 @@ void sass_free_storage(void *object TSRMLS_DC) efree(obj->map_path); if (obj->map_root != NULL) efree(obj->map_root); - -#if ZEND_MODULE_API_NO <= 20131226 zend_hash_destroy(obj->zo.properties); - FREE_HASHTABLE(obj->zo.properties); -#endif -#if ZEND_MODULE_API_NO > 20131226 - zend_object_std_dtor(obj); - #endif - + FREE_HASHTABLE(obj->zo.properties); efree(obj); } +#endif #if ZEND_MODULE_API_NO <= 20131226 zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) { From 242dba4f38126e8e3d20c3349418070117e06c16 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 09:16:10 +1000 Subject: [PATCH 163/226] Typo fix --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 7cec7b4..a5f7c96 100644 --- a/src/sass.c +++ b/src/sass.c @@ -48,7 +48,7 @@ void sass_free_storage(void *object) efree(obj->map_path); if (obj->map_root != NULL) efree(obj->map_root); - zend_object_std_dtor(obj); + zend_object_std_dtor(obj->zo); efree(obj); } #else @@ -65,7 +65,7 @@ void sass_free_storage(void *object TSRMLS_DC) FREE_HASHTABLE(obj->zo.properties); efree(obj); } -#endif + #if ZEND_MODULE_API_NO <= 20131226 zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) { From 3a61fb5f851121e192a0911da0b6e8619fdfe028 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 09:26:24 +1000 Subject: [PATCH 164/226] Fix introduced typo --- src/sass.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sass.c b/src/sass.c index a5f7c96..3fd4a1e 100644 --- a/src/sass.c +++ b/src/sass.c @@ -65,6 +65,7 @@ void sass_free_storage(void *object TSRMLS_DC) FREE_HASHTABLE(obj->zo.properties); efree(obj); } +#endif #if ZEND_MODULE_API_NO <= 20131226 From 48047e7095640b5f13a3f07064fce479f3184356 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 09:37:20 +1000 Subject: [PATCH 165/226] Rearrange zend_object --- src/sass.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 3fd4a1e..deb0953 100644 --- a/src/sass.c +++ b/src/sass.c @@ -23,7 +23,9 @@ zend_object_handlers sass_handlers; typedef struct sass_object { + #if PHP_MAJOR_VERSION < 7 zend_object zo; + #endif int style; char* include_paths; bool comments; @@ -34,6 +36,9 @@ typedef struct sass_object { bool map_embed; bool map_contents; char* map_root; + #if PHP_MAJOR_VERSION >= 7 + zend_object zo; + #endif } sass_object; zend_class_entry *sass_ce; @@ -65,7 +70,7 @@ void sass_free_storage(void *object TSRMLS_DC) FREE_HASHTABLE(obj->zo.properties); efree(obj); } -#endif +#enfi #if ZEND_MODULE_API_NO <= 20131226 From e9ef9d62d3878adbc93e113326bf020eb2cffe8d Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 09:50:22 +1000 Subject: [PATCH 166/226] More Monday typos --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index deb0953..a44744d 100644 --- a/src/sass.c +++ b/src/sass.c @@ -70,7 +70,7 @@ void sass_free_storage(void *object TSRMLS_DC) FREE_HASHTABLE(obj->zo.properties); efree(obj); } -#enfi +#endif #if ZEND_MODULE_API_NO <= 20131226 From 8852934ce0343375311abb2cf32b7675461508eb Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 11:32:10 +1000 Subject: [PATCH 167/226] See what this does --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index a44744d..27af455 100644 --- a/src/sass.c +++ b/src/sass.c @@ -53,7 +53,7 @@ void sass_free_storage(void *object) efree(obj->map_path); if (obj->map_root != NULL) efree(obj->map_root); - zend_object_std_dtor(obj->zo); + zend_object_std_dtor(obj->zo.properties); efree(obj); } #else From 298102361095f99aa8134bf36a6e78497b943b44 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 11:34:46 +1000 Subject: [PATCH 168/226] Remove PHP 5.4 from Travis --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e13edfb..abdf2d9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: php php: - - 5.4 - 5.5 - 5.6 - 7.0 From a5d752f54c7427f82c236ef33f5bcd6affb9a1a3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 11:55:32 +1000 Subject: [PATCH 169/226] More PHP7 experiment --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 27af455..cd05084 100644 --- a/src/sass.c +++ b/src/sass.c @@ -44,7 +44,7 @@ typedef struct sass_object { zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 -void sass_free_storage(void *object) +void sass_free_storage(void *object TSRMLS_DC) { sass_object *obj = (sass_object *)object; if (obj->include_paths != NULL) @@ -53,7 +53,7 @@ void sass_free_storage(void *object) efree(obj->map_path); if (obj->map_root != NULL) efree(obj->map_root); - zend_object_std_dtor(obj->zo.properties); + zend_object_std_dtor(obj TSRMLS_CC); efree(obj); } #else From 124a4ad487cb79851b3d895cfa0a0885d25fc51b Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 12:00:15 +1000 Subject: [PATCH 170/226] More on PHP7 --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index cd05084..55f6153 100644 --- a/src/sass.c +++ b/src/sass.c @@ -24,7 +24,7 @@ zend_object_handlers sass_handlers; typedef struct sass_object { #if PHP_MAJOR_VERSION < 7 - zend_object zo; + struct zend_object zo; #endif int style; char* include_paths; @@ -53,7 +53,7 @@ void sass_free_storage(void *object TSRMLS_DC) efree(obj->map_path); if (obj->map_root != NULL) efree(obj->map_root); - zend_object_std_dtor(obj TSRMLS_CC); + zend_object_std_dtor(obj->zo TSRMLS_CC); efree(obj); } #else From 18aa570de10af0eb2d08c1e24995a34a71bbebf9 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 12:35:16 +1000 Subject: [PATCH 171/226] More PHP7 testing --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 55f6153..2857384 100644 --- a/src/sass.c +++ b/src/sass.c @@ -46,7 +46,7 @@ zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 void sass_free_storage(void *object TSRMLS_DC) { - sass_object *obj = (sass_object *)object; + struct sass_object *obj = (sass_object *)object; if (obj->include_paths != NULL) efree(obj->include_paths); if (obj->map_path != NULL) From 7a16f5e2700d991c689a4c1f95a5a4a3b8986467 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 12:42:49 +1000 Subject: [PATCH 172/226] Get zend object ordering righ --- src/sass.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sass.c b/src/sass.c index 2857384..afdf2fa 100644 --- a/src/sass.c +++ b/src/sass.c @@ -24,7 +24,7 @@ zend_object_handlers sass_handlers; typedef struct sass_object { #if PHP_MAJOR_VERSION < 7 - struct zend_object zo; + zend_object zo; #endif int style; char* include_paths; @@ -37,7 +37,7 @@ typedef struct sass_object { bool map_contents; char* map_root; #if PHP_MAJOR_VERSION >= 7 - zend_object zo; + struct zend_object *zo; #endif } sass_object; @@ -46,7 +46,7 @@ zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 void sass_free_storage(void *object TSRMLS_DC) { - struct sass_object *obj = (sass_object *)object; + sass_object *obj = (sass_object *)object; if (obj->include_paths != NULL) efree(obj->include_paths); if (obj->map_path != NULL) From 810ff58594f8c973891acf5ec1681abd25ec00d0 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 12:49:34 +1000 Subject: [PATCH 173/226] Object traversal --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index afdf2fa..9cf3fdc 100644 --- a/src/sass.c +++ b/src/sass.c @@ -37,7 +37,7 @@ typedef struct sass_object { bool map_contents; char* map_root; #if PHP_MAJOR_VERSION >= 7 - struct zend_object *zo; + zend_object zo; #endif } sass_object; @@ -53,7 +53,7 @@ void sass_free_storage(void *object TSRMLS_DC) efree(obj->map_path); if (obj->map_root != NULL) efree(obj->map_root); - zend_object_std_dtor(obj->zo TSRMLS_CC); + zend_object_std_dtor(&obj->zo); efree(obj); } #else From ddc3ebc2cceef7c961f12d4c5ca5694d9dc7eaac Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 12:57:26 +1000 Subject: [PATCH 174/226] More work on object freeing --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 9cf3fdc..b196096 100644 --- a/src/sass.c +++ b/src/sass.c @@ -44,7 +44,7 @@ typedef struct sass_object { zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 -void sass_free_storage(void *object TSRMLS_DC) +static void sass_free_storage(void *object) { sass_object *obj = (sass_object *)object; if (obj->include_paths != NULL) From 8d71f7dc4ecfb8df0c73d6f9f1ef89b6dd22ee09 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 13:08:21 +1000 Subject: [PATCH 175/226] More work on SASS free storage --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index b196096..e97d752 100644 --- a/src/sass.c +++ b/src/sass.c @@ -44,7 +44,7 @@ typedef struct sass_object { zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 -static void sass_free_storage(void *object) +void sass_free_storage(void *object) { sass_object *obj = (sass_object *)object; if (obj->include_paths != NULL) @@ -105,7 +105,7 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { zend_object_std_init(&obj->zo, type TSRMLS_CC); sass_handlers.offset = XtOffsetOf(struct sass_object, zo); - sass_handlers.free_obj = sass_free_storage; + sass_handlers.free_obj = &sass_free_storage; obj->zo.handlers = &sass_handlers; From 781e21c0a4327fcae24e862346858ebaef9dd7c4 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 13:21:19 +1000 Subject: [PATCH 176/226] More restructure work --- src/sass.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/sass.c b/src/sass.c index e97d752..a15cbdc 100644 --- a/src/sass.c +++ b/src/sass.c @@ -104,11 +104,6 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { zend_object_properties_size(type)); zend_object_std_init(&obj->zo, type TSRMLS_CC); - sass_handlers.offset = XtOffsetOf(struct sass_object, zo); - sass_handlers.free_obj = &sass_free_storage; - - obj->zo.handlers = &sass_handlers; - return &obj->zo; } @@ -731,6 +726,7 @@ static PHP_MINIT_FUNCTION(sass) memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); #if ZEND_MODULE_API_NO > 20131226 + sass.handlers.free_obj = sass_free_storage; sass_handlers.offset = XtOffsetOf(sass_object, zo); #endif sass_handlers.clone_obj = NULL; From 8a843fc4aa349a6460dcec333fc0b51552e27d8c Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 13:28:43 +1000 Subject: [PATCH 177/226] Partial revert --- src/sass.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index a15cbdc..7dfbcb6 100644 --- a/src/sass.c +++ b/src/sass.c @@ -5,7 +5,7 @@ * https://github.com/jamierumbelow/sassphp * Copyright (c)2012 Jamie Rumbelow * - * Fork updated and maintained by https://github.com/pilif + * Fork updated and maintained by https://github.com/absalomedia */ #include @@ -104,6 +104,8 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { zend_object_properties_size(type)); zend_object_std_init(&obj->zo, type TSRMLS_CC); + obj->zo.handlers = &sass_handlers; + return &obj->zo; } From c303fe5699c7e23cc2eec4e30af8f1c880d79529 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 13:49:12 +1000 Subject: [PATCH 178/226] More Sass handling --- src/sass.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 7dfbcb6..64edda0 100644 --- a/src/sass.c +++ b/src/sass.c @@ -104,8 +104,10 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { zend_object_properties_size(type)); zend_object_std_init(&obj->zo, type TSRMLS_CC); + object_properties_init(&obj->zo, type TSRMLS_CC); + obj->zo.handlers = &sass_handlers; - + return &obj->zo; } @@ -728,7 +730,7 @@ static PHP_MINIT_FUNCTION(sass) memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); #if ZEND_MODULE_API_NO > 20131226 - sass.handlers.free_obj = sass_free_storage; + sass_handlers.free_obj = sass_free_storage; sass_handlers.offset = XtOffsetOf(sass_object, zo); #endif sass_handlers.clone_obj = NULL; From 373ae54a89e3858b34daf646c9c6c4314e6bf818 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 13:54:08 +1000 Subject: [PATCH 179/226] Try to ix pointer type --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 64edda0..f9f2b5e 100644 --- a/src/sass.c +++ b/src/sass.c @@ -730,7 +730,7 @@ static PHP_MINIT_FUNCTION(sass) memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); #if ZEND_MODULE_API_NO > 20131226 - sass_handlers.free_obj = sass_free_storage; + sass_handlers.free_obj = &sass_free_storage; sass_handlers.offset = XtOffsetOf(sass_object, zo); #endif sass_handlers.clone_obj = NULL; From cec35fd388b5cc5a21aff78c0233d0589c08e7e0 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 13:55:13 +1000 Subject: [PATCH 180/226] Visual Studio start of commit --- Sassphp.sln | 28 ++++++ Sassphp.vcxproj | 250 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 278 insertions(+) create mode 100644 Sassphp.sln create mode 100644 Sassphp.vcxproj diff --git a/Sassphp.sln b/Sassphp.sln new file mode 100644 index 0000000..21c55f8 --- /dev/null +++ b/Sassphp.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Sassphp", "Sassphp.vcxproj", "{DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}.Debug|x64.ActiveCfg = Debug|x64 + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}.Debug|x64.Build.0 = Debug|x64 + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}.Debug|x86.ActiveCfg = Debug|Win32 + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}.Debug|x86.Build.0 = Debug|Win32 + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}.Release|x64.ActiveCfg = Release|x64 + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}.Release|x64.Build.0 = Release|x64 + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}.Release|x86.ActiveCfg = Release|Win32 + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sassphp.vcxproj b/Sassphp.vcxproj new file mode 100644 index 0000000..11ae298 --- /dev/null +++ b/Sassphp.vcxproj @@ -0,0 +1,250 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {DA0105A7-279B-4B5C-B8BC-39AABF5A2FBF} + Win32Proj + + + + DynamicLibrary + true + v140 + + + DynamicLibrary + false + v140 + + + Application + true + v140 + + + Application + false + v140 + + + + + + + + + + + + + + + + + + + + + true + + + true + + + + WIN32;_DEBUG;_WINDOWS;_USRDLL;SASSPHP_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + ProgramDatabase + Disabled + + + MachineX86 + true + Windows + + + + + WIN32;NDEBUG;_WINDOWS;_USRDLL;SASSPHP_EXPORTS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + ProgramDatabase + + + MachineX86 + true + Windows + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From d409d85c33b5df940b6d4a7bd42fea9ac5e889ac Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 14:02:58 +1000 Subject: [PATCH 181/226] More VS stuff --- Sassphp.vcxproj.filters | 309 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 309 insertions(+) create mode 100644 Sassphp.vcxproj.filters diff --git a/Sassphp.vcxproj.filters b/Sassphp.vcxproj.filters new file mode 100644 index 0000000..8b4e02c --- /dev/null +++ b/Sassphp.vcxproj.filters @@ -0,0 +1,309 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file From fbbace08f066ced5c42052fb0d74e296096f22f5 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 14:11:37 +1000 Subject: [PATCH 182/226] More free object stuff --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index f9f2b5e..8e67826 100644 --- a/src/sass.c +++ b/src/sass.c @@ -730,8 +730,8 @@ static PHP_MINIT_FUNCTION(sass) memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); #if ZEND_MODULE_API_NO > 20131226 - sass_handlers.free_obj = &sass_free_storage; - sass_handlers.offset = XtOffsetOf(sass_object, zo); + sass_handlers.offset = XtOffsetOf(struct sass_object, zo); + sass_handlers.free_obj = sass_free_storage; #endif sass_handlers.clone_obj = NULL; From 24720f9ca717f5188fafc5fa0f24a65e2fcc2eee Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 14:18:15 +1000 Subject: [PATCH 183/226] More PHP7 free stuff --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 8e67826..3cbda34 100644 --- a/src/sass.c +++ b/src/sass.c @@ -731,7 +731,7 @@ static PHP_MINIT_FUNCTION(sass) memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); #if ZEND_MODULE_API_NO > 20131226 sass_handlers.offset = XtOffsetOf(struct sass_object, zo); - sass_handlers.free_obj = sass_free_storage; + sass_handlers.free_obj = *sass_free_storage; #endif sass_handlers.clone_obj = NULL; From 35c686d69e8b7c09b1d68cea9de5be15ea56e81f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 14:27:33 +1000 Subject: [PATCH 184/226] Better config.w32 --- config.w32 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.w32 b/config.w32 index dc7bd5c..20ed69c 100644 --- a/config.w32 +++ b/config.w32 @@ -11,9 +11,9 @@ ADD_FLAG('CFLAGS_BD_EXT_STANDARD', ' /wd4047 /wd4018 '); ADD_FLAG('CFLAGS_BD_SAPI_CLI', ' /wd4018 '); if (PHP_SASS == "yes") { - CHECK_LIB("sass", ' + PROGRAM_FILES + '\\Apache Group\\Apache\\libexec', LIBSASS_SHARED_LIBADD); + CHECK_LIB("sass", ' '+ PROGRAM_FILES + '\\Apache Group\\Apache\\libexec', LIBSASS_SHARED_LIBADD); LDFLAGS="-lsass /libpath:/lib/libsass/lib/"; - EXTENSION("sass", "src/sass.c src/utilities.c", true); + EXTENSION("sass", "src/sass.c src/utilities.c", PHP_EXTNAME_SHARED, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); if ("x$sass_version" != "x") { CFLAGS="-DLIBSASS_VERSION=\"\\\"$sass_version\\\"\" $CFLAGS"; From f3b19849b423b0adf47b60b384d0df133fcb59b2 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 14:28:00 +1000 Subject: [PATCH 185/226] Standardise PHP7 --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 3cbda34..8e67826 100644 --- a/src/sass.c +++ b/src/sass.c @@ -731,7 +731,7 @@ static PHP_MINIT_FUNCTION(sass) memcpy(&sass_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); #if ZEND_MODULE_API_NO > 20131226 sass_handlers.offset = XtOffsetOf(struct sass_object, zo); - sass_handlers.free_obj = *sass_free_storage; + sass_handlers.free_obj = sass_free_storage; #endif sass_handlers.clone_obj = NULL; From 4b3c8f5f9e4ea8f0bfe5bc8c8bc71a3f59db77ec Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 14:40:00 +1000 Subject: [PATCH 186/226] Rewritten free object storage PHP7 --- src/sass.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sass.c b/src/sass.c index 8e67826..bbb8b17 100644 --- a/src/sass.c +++ b/src/sass.c @@ -44,16 +44,17 @@ typedef struct sass_object { zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 -void sass_free_storage(void *object) +static void sass_free_object_storage(zend_object *zo) { - sass_object *obj = (sass_object *)object; + sass_object *obj = FETCH_CUSTOM_OBJ(zo,sass_object); if (obj->include_paths != NULL) efree(obj->include_paths); if (obj->map_path != NULL) efree(obj->map_path); if (obj->map_root != NULL) efree(obj->map_root); - zend_object_std_dtor(&obj->zo); + zend_hash_destroy(&obj->zo); + zend_object_std_dtor(zo); efree(obj); } #else From b6d12d3d5f20f65ab576080a4d80b91937aa23a7 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 14:51:57 +1000 Subject: [PATCH 187/226] Typo fix --- src/sass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index bbb8b17..b94c197 100644 --- a/src/sass.c +++ b/src/sass.c @@ -44,9 +44,9 @@ typedef struct sass_object { zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 -static void sass_free_object_storage(zend_object *zo) +static void sass_free_storage(zend_object *zo) { - sass_object *obj = FETCH_CUSTOM_OBJ(zo,sass_object); + sass_object *obj = (sass_object *)zo; if (obj->include_paths != NULL) efree(obj->include_paths); if (obj->map_path != NULL) From 171bd94a2ebf6c7bab258b68f0358a5aaf7229c8 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 14:57:01 +1000 Subject: [PATCH 188/226] Better PHP7 hash destroy --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index b94c197..0ba62ae 100644 --- a/src/sass.c +++ b/src/sass.c @@ -53,7 +53,7 @@ static void sass_free_storage(zend_object *zo) efree(obj->map_path); if (obj->map_root != NULL) efree(obj->map_root); - zend_hash_destroy(&obj->zo); + zend_hash_destroy(obj->zo.properties); zend_object_std_dtor(zo); efree(obj); } From a00091c678a569dcdcc14a0874bdee9724d8496f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 15:02:00 +1000 Subject: [PATCH 189/226] More PHP7 zend stuff --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 0ba62ae..f997776 100644 --- a/src/sass.c +++ b/src/sass.c @@ -46,7 +46,7 @@ zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 static void sass_free_storage(zend_object *zo) { - sass_object *obj = (sass_object *)zo; + sass_object *obj = (sass_object *)object; if (obj->include_paths != NULL) efree(obj->include_paths); if (obj->map_path != NULL) From 95e350d65d2d5cd0a0811ff27914f66753395526 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 15:18:37 +1000 Subject: [PATCH 190/226] Void object? --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index f997776..7cada8b 100644 --- a/src/sass.c +++ b/src/sass.c @@ -44,7 +44,7 @@ typedef struct sass_object { zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 -static void sass_free_storage(zend_object *zo) +static void sass_free_storage(void *object TSRMLS_DC) { sass_object *obj = (sass_object *)object; if (obj->include_paths != NULL) From 306e974752b45dada1f5f52c7916ce240c4be6e3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 15:25:21 +1000 Subject: [PATCH 191/226] Still trying to debug this last issue --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 7cada8b..65fe8e0 100644 --- a/src/sass.c +++ b/src/sass.c @@ -54,7 +54,7 @@ static void sass_free_storage(void *object TSRMLS_DC) if (obj->map_root != NULL) efree(obj->map_root); zend_hash_destroy(obj->zo.properties); - zend_object_std_dtor(zo); + zend_object_std_dtor(&obj->zo); efree(obj); } #else From 928a9fd0ad7f1a7adfda4f33e5a3f4ea63d5268e Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 22 Feb 2016 15:35:59 +1000 Subject: [PATCH 192/226] More tweaks --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 65fe8e0..08e0d8c 100644 --- a/src/sass.c +++ b/src/sass.c @@ -44,7 +44,7 @@ typedef struct sass_object { zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 -static void sass_free_storage(void *object TSRMLS_DC) +static void sass_free_storage(zend_object *object) { sass_object *obj = (sass_object *)object; if (obj->include_paths != NULL) From a14b9a19db6d0665afd11ca3009de3d68b479adb Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 11 Apr 2016 14:05:34 +1000 Subject: [PATCH 193/226] Libsass 3.3.4 & badge --- README.md | 2 ++ lib/libsass | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d002a4..a882553 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ The `sass` extension for PHP gives you an object-oriented system of parsing [Sass](http://sass-lang.com/) from within your PHP applications. Under the hood it uses [libsass](https://github.com/hcatlin/libsass) to provide super speedy and compatible Sass parsing. +![Libsass 3.3.4](https://img.shields.io/badge/libsass-3.3.4-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) + ## What's Sass? Sass is a CSS pre-processor language to add on exciting, new, awesome features to CSS. Sass was the first language of its kind and by far the most mature and up to date codebase. diff --git a/lib/libsass b/lib/libsass index bc1e6db..213339a 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit bc1e6db3117d4769023a92344cd7f48dfddd4972 +Subproject commit 213339a802827fab23cb61b79ad7d592fad33c2d From ccb4dcfaff329efc5d1e0d8eb733f8d2eace92b7 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 11 Apr 2016 14:06:58 +1000 Subject: [PATCH 194/226] Libsass 3.3.4 --- lib/libsass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/libsass b/lib/libsass index bc1e6db..213339a 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit bc1e6db3117d4769023a92344cd7f48dfddd4972 +Subproject commit 213339a802827fab23cb61b79ad7d592fad33c2d From d4cae89613a59cb6bf2022623bf2545a01d409f9 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 4 May 2016 14:14:59 +1000 Subject: [PATCH 195/226] 0.5.5 release with 3.3.6 Libsass --- README.md | 9 ++++++--- lib/libsass | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a882553..a43246e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The `sass` extension for PHP gives you an object-oriented system of parsing [Sass](http://sass-lang.com/) from within your PHP applications. Under the hood it uses [libsass](https://github.com/hcatlin/libsass) to provide super speedy and compatible Sass parsing. -![Libsass 3.3.4](https://img.shields.io/badge/libsass-3.3.4-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) +![Libsass 3.3.6](https://img.shields.io/badge/libsass-3.3.6-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) ## What's Sass? @@ -152,11 +152,14 @@ If there's a problem, the extension will throw a `SassException`: These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) library & remain in varying states of completion: -* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.3.3 - tested up to HHVM 3.11.x -* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.3.3 +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.3.6 - tested up to HHVM 3.11.x +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.3.6 ## Changelog +** Version 0.5.5 +* Herbie (Libsass 3.3.6) stable + ** Version 0.5.2 * Delorean (Libsass 3.3.3) stable & PHP7 rewrite diff --git a/lib/libsass b/lib/libsass index 213339a..3ae9a20 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit 213339a802827fab23cb61b79ad7d592fad33c2d +Subproject commit 3ae9a2066152f9438aebaaacd12f39deaceaebc2 From bcf8416161d3896a9c9f60d85a1c1b6fecbdc247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Harasimowicz?= Date: Tue, 10 May 2016 11:43:13 +0200 Subject: [PATCH 196/226] Compatibility fixes with libsass 3.3.6 --- tests/check_bundled_libsass_version.phpt | 2 +- tests/file_comments.phpt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index 740c5e5..ac9354b 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- diff --git a/tests/file_comments.phpt b/tests/file_comments.phpt index fe810b4..e2d57ff 100644 --- a/tests/file_comments.phpt +++ b/tests/file_comments.phpt @@ -12,13 +12,13 @@ echo $css; ?> ---EXPECT-- +--EXPECTF-- @import url(../blahblah/blah.blah); -/* line 3, tests/support/test.scss */ +/* line 3, %s/support/test.scss */ div { blah: "hello 4 world px bloo blah"; } -/* line 9, tests/support/test.scss */ +/* line 9, %s/support/test.scss */ div { blah: "foo iphone"; } From 848974e749d74fd2088366ea8c815e1d5517d4ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Harasimowicz?= Date: Tue, 10 May 2016 16:42:03 +0200 Subject: [PATCH 197/226] Attempt to fix segfaults. --- src/sass.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/sass.c b/src/sass.c index 08e0d8c..ad5f9f3 100644 --- a/src/sass.c +++ b/src/sass.c @@ -68,7 +68,7 @@ void sass_free_storage(void *object TSRMLS_DC) if (obj->map_root != NULL) efree(obj->map_root); zend_hash_destroy(obj->zo.properties); - FREE_HASHTABLE(obj->zo.properties); + FREE_HASHTABLE(obj->zo.properties); efree(obj); } #endif @@ -100,8 +100,8 @@ zend_object_value sass_create_handler(zend_class_entry *type TSRMLS_DC) { #if ZEND_MODULE_API_NO > 20131226 zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { - struct sass_object *obj = ecalloc(1, - sizeof(struct sass_object) + + struct sass_object *obj = ecalloc(1, + sizeof(struct sass_object) + zend_object_properties_size(type)); zend_object_std_init(&obj->zo, type TSRMLS_CC); @@ -271,7 +271,7 @@ PHP_METHOD(Sass, compileFile) zend_throw_exception_ex(sass_exception_ce, 0 TSRMLS_CC, "File %s could not be found", file); RETURN_FALSE; } - + struct Sass_File_Context* file_ctx = sass_make_file_context(file); struct Sass_Context* ctx = sass_file_context_get_context(file_ctx); @@ -287,7 +287,7 @@ PHP_METHOD(Sass, compileFile) } else { - + #if ZEND_MODULE_API_NO <= 20131226 if (this->map_path != NULL ) { // Send it over to PHP. @@ -337,7 +337,7 @@ PHP_METHOD(Sass, getStyle) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif RETURN_LONG(obj->style); } @@ -357,7 +357,7 @@ PHP_METHOD(Sass, setStyle) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif obj->style = new_style; RETURN_NULL(); @@ -376,7 +376,7 @@ PHP_METHOD(Sass, getIncludePath) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif #if ZEND_MODULE_API_NO <= 20131226 if (obj->include_paths == NULL) RETURN_STRING("", 1); @@ -404,7 +404,7 @@ PHP_METHOD(Sass, setIncludePath) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif if (obj->include_paths != NULL) efree(obj->include_paths); @@ -426,7 +426,7 @@ PHP_METHOD(Sass, getMapPath) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif #if ZEND_MODULE_API_NO <= 20131226 if (obj->map_path == NULL) RETURN_STRING("", 1); @@ -454,7 +454,7 @@ PHP_METHOD(Sass, setMapPath) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif if (obj->map_path != NULL) efree(obj->map_path); @@ -477,7 +477,7 @@ PHP_METHOD(Sass, getPrecision) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif RETURN_LONG(obj->precision); } @@ -497,7 +497,7 @@ PHP_METHOD(Sass, setPrecision) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif obj->precision = new_precision; @@ -517,7 +517,7 @@ PHP_METHOD(Sass, getEmbed) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif RETURN_LONG(obj->map_embed); } @@ -528,7 +528,7 @@ PHP_METHOD(Sass, setEmbed) bool new_map_embed; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &new_map_embed) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &new_map_embed) == FAILURE) { RETURN_FALSE; } @@ -537,7 +537,7 @@ PHP_METHOD(Sass, setEmbed) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif obj->map_embed = new_map_embed; @@ -558,7 +558,7 @@ PHP_METHOD(Sass, getComments) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif RETURN_LONG(obj->comments); } @@ -569,7 +569,7 @@ PHP_METHOD(Sass, setComments) bool new_comments; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &new_comments) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &new_comments) == FAILURE) { RETURN_FALSE; } @@ -578,7 +578,7 @@ PHP_METHOD(Sass, setComments) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif obj->comments = new_comments; @@ -599,7 +599,7 @@ PHP_METHOD(Sass, getIndent) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif RETURN_LONG(obj->indent); } @@ -610,7 +610,7 @@ PHP_METHOD(Sass, setIndent) bool new_indent; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &new_indent) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &new_indent) == FAILURE) { RETURN_FALSE; } @@ -619,7 +619,7 @@ PHP_METHOD(Sass, setIndent) #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); - #endif + #endif obj->indent = new_indent; @@ -640,7 +640,7 @@ PHP_METHOD(Sass, getLibraryVersion) #if ZEND_MODULE_API_NO > 20131226 RETURN_STRING(libsass_version()); #endif - + } /* -------------------------------------------------------------- * EXCEPTION HANDLING From 2da862f063ffbfe210327461e81ed5a88688082d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Harasimowicz?= Date: Tue, 10 May 2016 16:55:57 +0200 Subject: [PATCH 198/226] Some style improvements. --- install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.php b/install.php index a7dda70..d488760 100644 --- a/install.php +++ b/install.php @@ -4,4 +4,4 @@ system('cd lib/libsass && make && cd ../..'); system('phpize'); system('./configure'); -system('make'); \ No newline at end of file +system('make'); From 8a4a4d76fc3017371f71823db467c306e5576389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Harasimowicz?= Date: Tue, 10 May 2016 17:04:09 +0200 Subject: [PATCH 199/226] Updated appveyor with up-to-date windows PHP version. --- appveyor.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index ce97a9a..f705651 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ environment: - PHP_VERSION: 5.6.16 + PHP_VERSION: 5.6.21 configuration: Release @@ -17,12 +17,12 @@ install: - echo Preparing Windows build... - echo Downloading PHP source code [%PHP_VERSION%] - cd C:\php-src - - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.16-src.zip -FileName php-src.zip + - appveyor DownloadFile http://windows.php.net/downloads/releases/php-5.6.21-src.zip -FileName php-src.zip - 7z x -y php-src.zip > nul - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64' -build_script: - - cd C:\php-src\php-5.6.16-src +build_script: + - cd C:\php-src\php-5.6.21-src - buildconf.bat --add-modules-dir=C:\projects - configure --disable-all --enable-cli --enable-sass - nmake php_sass.dll From 9c8988f4ebb51875e7fd43437cdbde285978e4ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?W=C5=82adys=C5=82aw=20Bodzek?= Date: Tue, 10 May 2016 17:33:12 +0200 Subject: [PATCH 200/226] Fix stack smashing errors --- src/sass.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/sass.c b/src/sass.c index ad5f9f3..3025cbc 100644 --- a/src/sass.c +++ b/src/sass.c @@ -394,7 +394,12 @@ PHP_METHOD(Sass, setIncludePath) zval *this = getThis(); char *path; + #if ZEND_MODULE_API_NO <= 20131226 int path_len; + #endif + #if ZEND_MODULE_API_NO > 20131226 + size_t path_len; + #endif if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; @@ -444,7 +449,12 @@ PHP_METHOD(Sass, setMapPath) zval *this = getThis(); char *path; + #if ZEND_MODULE_API_NO <= 20131226 int path_len; + #endif + #if ZEND_MODULE_API_NO > 20131226 + size_t path_len; + #endif if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; From 83d040ed97e73e12b1c8e7f76f2dae000ff982c5 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 11:01:48 +1000 Subject: [PATCH 201/226] Tweak PHP7 object free rule --- src/sass.c | 2 +- tests/check_bundled_libsass_version.phpt | 2 +- tests/file_comments.phpt | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sass.c b/src/sass.c index 08e0d8c..1587d18 100644 --- a/src/sass.c +++ b/src/sass.c @@ -47,6 +47,7 @@ zend_class_entry *sass_ce; static void sass_free_storage(zend_object *object) { sass_object *obj = (sass_object *)object; + obj = (sass_object *)((char *)object - XoffsetOf(sass_object, zobj)); if (obj->include_paths != NULL) efree(obj->include_paths); if (obj->map_path != NULL) @@ -55,7 +56,6 @@ static void sass_free_storage(zend_object *object) efree(obj->map_root); zend_hash_destroy(obj->zo.properties); zend_object_std_dtor(&obj->zo); - efree(obj); } #else void sass_free_storage(void *object TSRMLS_DC) diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index 740c5e5..ac9354b 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- diff --git a/tests/file_comments.phpt b/tests/file_comments.phpt index fe810b4..74d3b14 100644 --- a/tests/file_comments.phpt +++ b/tests/file_comments.phpt @@ -14,11 +14,11 @@ echo $css; ?> --EXPECT-- @import url(../blahblah/blah.blah); -/* line 3, tests/support/test.scss */ +/* line 3, %s/support/test.scss */ div { blah: "hello 4 world px bloo blah"; } -/* line 9, tests/support/test.scss */ +/* line 9, %s/support/test.scss */ div { blah: "foo iphone"; } From c80b630ebe0d2ee2b3cb5ccf059e84d5523c2900 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 11:11:52 +1000 Subject: [PATCH 202/226] Partial commit --- src/sass.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 1587d18..9f80833 100644 --- a/src/sass.c +++ b/src/sass.c @@ -394,7 +394,13 @@ PHP_METHOD(Sass, setIncludePath) zval *this = getThis(); char *path; + #if ZEND_MODULE_API_NO <= 20131226 int path_len; + #endif + #if ZEND_MODULE_API_NO > 20131226 + size_t path_len; + #endif + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; @@ -444,7 +450,12 @@ PHP_METHOD(Sass, setMapPath) zval *this = getThis(); char *path; + #if ZEND_MODULE_API_NO <= 20131226 int path_len; + #endif + #if ZEND_MODULE_API_NO > 20131226 + size_t path_len; + #endif if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &path, &path_len) == FAILURE) RETURN_FALSE; @@ -528,7 +539,7 @@ PHP_METHOD(Sass, setEmbed) bool new_map_embed; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &new_map_embed) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &new_map_embed) == FAILURE) { RETURN_FALSE; } @@ -569,7 +580,7 @@ PHP_METHOD(Sass, setComments) bool new_comments; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &new_comments) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &new_comments) == FAILURE) { RETURN_FALSE; } From 656bf20d93921deabb14c940f10ce63b53f8c57d Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 11:17:59 +1000 Subject: [PATCH 203/226] More PHP7 experiments --- src/sass.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/sass.c b/src/sass.c index 9f80833..5471b88 100644 --- a/src/sass.c +++ b/src/sass.c @@ -46,8 +46,7 @@ zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 static void sass_free_storage(zend_object *object) { - sass_object *obj = (sass_object *)object; - obj = (sass_object *)((char *)object - XoffsetOf(sass_object, zobj)); + sass_object obj = (sass_object *)object; if (obj->include_paths != NULL) efree(obj->include_paths); if (obj->map_path != NULL) From 0bfd3ef4bd5ddcbd2b30bff9022835f4670a1047 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 11:21:54 +1000 Subject: [PATCH 204/226] Zend change --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 5471b88..8ab261b 100644 --- a/src/sass.c +++ b/src/sass.c @@ -620,7 +620,7 @@ PHP_METHOD(Sass, setIndent) bool new_indent; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &new_indent) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &new_indent) == FAILURE) { RETURN_FALSE; } From bb03649f14f1651b078daf45baf2a013fc90e905 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 11:23:43 +1000 Subject: [PATCH 205/226] Fix test --- tests/file_comments.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/file_comments.phpt b/tests/file_comments.phpt index 74d3b14..e2d57ff 100644 --- a/tests/file_comments.phpt +++ b/tests/file_comments.phpt @@ -12,7 +12,7 @@ echo $css; ?> ---EXPECT-- +--EXPECTF-- @import url(../blahblah/blah.blah); /* line 3, %s/support/test.scss */ div { From f3514557033259fcd8c78ee9ae0b2513a5510356 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 11:30:14 +1000 Subject: [PATCH 206/226] Rewrite free storage function PHP7 --- src/sass.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/sass.c b/src/sass.c index 8ab261b..275240c 100644 --- a/src/sass.c +++ b/src/sass.c @@ -46,15 +46,17 @@ zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 static void sass_free_storage(zend_object *object) { - sass_object obj = (sass_object *)object; - if (obj->include_paths != NULL) + sass_object *obj = FETCH_CUSTOM_OBJ(object, sass_object); + zend_hash_destroy(obj->zo.properties); + zend_object_std_dtor(&obj->zo); + + if (obj->include_paths) efree(obj->include_paths); - if (obj->map_path != NULL) + if (obj->map_path) efree(obj->map_path); - if (obj->map_root != NULL) + if (obj->map_root) efree(obj->map_root); - zend_hash_destroy(obj->zo.properties); - zend_object_std_dtor(&obj->zo); + } #else void sass_free_storage(void *object TSRMLS_DC) From 12a57448667aa9cd1ac6e948719edf1583125bf0 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 11:40:39 +1000 Subject: [PATCH 207/226] Trying to get PHP7 free object right --- src/sass.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 275240c..626fc1b 100644 --- a/src/sass.c +++ b/src/sass.c @@ -46,7 +46,7 @@ zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 static void sass_free_storage(zend_object *object) { - sass_object *obj = FETCH_CUSTOM_OBJ(object, sass_object); + sass_object *obj = Z_OBJ(object); zend_hash_destroy(obj->zo.properties); zend_object_std_dtor(&obj->zo); From 975fcbc66c3c331cd3741850bf97af2987bd9150 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 11:49:31 +1000 Subject: [PATCH 208/226] More PHP7 object free work --- src/sass.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sass.c b/src/sass.c index 626fc1b..ffb524d 100644 --- a/src/sass.c +++ b/src/sass.c @@ -46,7 +46,8 @@ zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 static void sass_free_storage(zend_object *object) { - sass_object *obj = Z_OBJ(object); + sass_object *obj = (sass_object *)object; + obj = (sass_object *)((char *)object - XoffsetOf(sass_object, zobj)); zend_hash_destroy(obj->zo.properties); zend_object_std_dtor(&obj->zo); From 93132215798c1afa35ebd2ac0e6f0ed4ac2e38e0 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 12:01:22 +1000 Subject: [PATCH 209/226] Version patch, more PHP7 --- src/php_sass.h | 2 +- src/sass.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/php_sass.h b/src/php_sass.h index 442e76b..c6adbf7 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -13,7 +13,7 @@ #include "config.h" #endif -#define SASS_VERSION "0.5.2" +#define SASS_VERSION "0.5.6" #define SASS_FLAVOR "Sassyphpras" #include diff --git a/src/sass.c b/src/sass.c index ffb524d..31348fe 100644 --- a/src/sass.c +++ b/src/sass.c @@ -44,10 +44,19 @@ typedef struct sass_object { zend_class_entry *sass_ce; #if PHP_MAJOR_VERSION >= 7 + +static inline sass_object *sass_fetch_object(zend_object *obj) +{ + return (sass_object *) ((char*) (obj) - XtOffsetOf(sass_object, zo)); +} + +#define Z_SASS_P(zv) sass_fetch_object(Z_OBJ_P((zv))); + + + static void sass_free_storage(zend_object *object) { - sass_object *obj = (sass_object *)object; - obj = (sass_object *)((char *)object - XoffsetOf(sass_object, zobj)); + sass_object *obj = sass_fetch_object(object); zend_hash_destroy(obj->zo.properties); zend_object_std_dtor(&obj->zo); From f9ea8ae13a8d2fe5b24adc02b6b0ea829823b72d Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 13:12:59 +1000 Subject: [PATCH 210/226] More PHP7 free storage rewrite --- src/sass.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/sass.c b/src/sass.c index 31348fe..531ab22 100644 --- a/src/sass.c +++ b/src/sass.c @@ -52,20 +52,11 @@ static inline sass_object *sass_fetch_object(zend_object *obj) #define Z_SASS_P(zv) sass_fetch_object(Z_OBJ_P((zv))); - - -static void sass_free_storage(zend_object *object) +static void sass_free_storage(zend_object *object TSRMLS_DC) { - sass_object *obj = sass_fetch_object(object); - zend_hash_destroy(obj->zo.properties); - zend_object_std_dtor(&obj->zo); - - if (obj->include_paths) - efree(obj->include_paths); - if (obj->map_path) - efree(obj->map_path); - if (obj->map_root) - efree(obj->map_root); + sass_object *obj; + obj = sass_fetch_object(object); + zend_object_std_dtor(object TSRMLS_DC); } #else From b1f2ce6e54ce6c7a3552d61652d060b8c5675862 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 11 May 2016 13:31:20 +1000 Subject: [PATCH 211/226] 0.5.6 documentation revision --- README.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a43246e..132dff1 100644 --- a/README.md +++ b/README.md @@ -144,10 +144,6 @@ If there's a problem, the extension will throw a `SassException`: $css = FALSE; } -## Potential / known issues - -* The file_comments test will fail as it remains unable to figure out the path the test has been run in. It generates the output successfully - ## Variant builds These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) library & remain in varying states of completion: @@ -157,6 +153,9 @@ These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) ## Changelog +** Version 0.5.6 +* Hancock - PHP5 & PHP7 stable build - All Travis builds passing + ** Version 0.5.5 * Herbie (Libsass 3.3.6) stable From 400fcd53f3a100a82cd4cc145364c4f1a2ddddc3 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 12 May 2016 08:26:57 +1000 Subject: [PATCH 212/226] Start of removal possible redundant loop --- src/sass.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/sass.c b/src/sass.c index 513e605..2f0d71e 100644 --- a/src/sass.c +++ b/src/sass.c @@ -131,7 +131,7 @@ PHP_METHOD(Sass, __construct) RETURN_NULL(); } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 @@ -187,7 +187,7 @@ void set_options(sass_object *this, struct Sass_Context *ctx) PHP_METHOD(Sass, compile) { #if ZEND_MODULE_API_NO > 20131226 - sass_object *this = Z_SASS_OBJ_P(getThis()); + sass_object *this = Z_SASS_P(getThis()); #endif #if ZEND_MODULE_API_NO <= 20131226 @@ -245,7 +245,7 @@ PHP_METHOD(Sass, compileFile) array_init(return_value); #if ZEND_MODULE_API_NO > 20131226 - sass_object *this = Z_SASS_OBJ_P(getThis()); + sass_object *this = Z_SASS_P(getThis()); #endif #if ZEND_MODULE_API_NO <= 20131226 @@ -335,7 +335,7 @@ PHP_METHOD(Sass, getStyle) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -355,7 +355,7 @@ PHP_METHOD(Sass, setStyle) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -374,7 +374,7 @@ PHP_METHOD(Sass, getIncludePath) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -407,7 +407,7 @@ PHP_METHOD(Sass, setIncludePath) RETURN_FALSE; #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -429,7 +429,7 @@ PHP_METHOD(Sass, getMapPath) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -462,7 +462,7 @@ PHP_METHOD(Sass, setMapPath) RETURN_FALSE; #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -485,7 +485,7 @@ PHP_METHOD(Sass, getPrecision) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -505,7 +505,7 @@ PHP_METHOD(Sass, setPrecision) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -525,7 +525,7 @@ PHP_METHOD(Sass, getEmbed) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -545,7 +545,7 @@ PHP_METHOD(Sass, setEmbed) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -566,7 +566,7 @@ PHP_METHOD(Sass, getComments) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -586,7 +586,7 @@ PHP_METHOD(Sass, setComments) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -607,7 +607,7 @@ PHP_METHOD(Sass, getIndent) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); @@ -627,7 +627,7 @@ PHP_METHOD(Sass, setIndent) } #if ZEND_MODULE_API_NO > 20131226 - sass_object *obj = Z_SASS_OBJ_P(this); + sass_object *obj = Z_SASS_P(this); #endif #if ZEND_MODULE_API_NO <= 20131226 sass_object *obj = (sass_object *)zend_object_store_get_object(this TSRMLS_CC); From a49b4862b661daad5cd05af7fd449fb887bef8af Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 12 May 2016 08:36:57 +1000 Subject: [PATCH 213/226] Remove last part of redundant function --- src/sass.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/sass.c b/src/sass.c index 2f0d71e..50e802b 100644 --- a/src/sass.c +++ b/src/sass.c @@ -114,12 +114,6 @@ zend_object * sass_create_handler(zend_class_entry *type TSRMLS_DC) { return &obj->zo; } -static inline struct sass_object * php_custom_object_fetch_object(zend_object *obj) { - return (struct sass_object *)((char *)obj - XtOffsetOf(struct sass_object, zo)); -} - -#define Z_SASS_OBJ_P(zv) php_custom_object_fetch_object(Z_OBJ_P(zv)); - #endif From 5dfe886532b9861c0e159392bab9d7f8ec9587c1 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 12 May 2016 08:42:43 +1000 Subject: [PATCH 214/226] Return 5.4 Travis test --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index abdf2d9..e13edfb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: php php: + - 5.4 - 5.5 - 5.6 - 7.0 From 4fcb453979befa8c117016f74da0c8f65210b0ef Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 16 May 2016 15:02:04 +1000 Subject: [PATCH 215/226] Whitelist test --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e13edfb..c8075ca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,7 +53,7 @@ script: - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - make install - mkdir -p build/logs - - phpunit --coverage-clover build/logs/clover.xml + - phpunit --whitelist --coverage-clover build/logs/clover.xml - make test || RESULT=$? - if [[ ${RESULT} == 0 ]]; then echo "\\o/ our test worked without problems"; else echo "ruhroh test returned an errorcode of $RESULT"; fi; - for i in $(find ./ -maxdepth 1 -name 'core*' -print); do gdb $(pwd)/test core* -ex "thread apply all bt" -ex "set pagination 0" -batch; done; From 62e6c6b9194c9dd62e7a34662510a270eceff159 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Mon, 16 May 2016 15:06:05 +1000 Subject: [PATCH 216/226] More whitelisting --- .travis.yml | 2 +- phpunit.xml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c8075ca..e13edfb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,7 +53,7 @@ script: - export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${TRAVIS_BUILD_DIR}/modules" - make install - mkdir -p build/logs - - phpunit --whitelist --coverage-clover build/logs/clover.xml + - phpunit --coverage-clover build/logs/clover.xml - make test || RESULT=$? - if [[ ${RESULT} == 0 ]]; then echo "\\o/ our test worked without problems"; else echo "ruhroh test returned an errorcode of $RESULT"; fi; - for i in $(find ./ -maxdepth 1 -name 'core*' -print); do gdb $(pwd)/test core* -ex "thread apply all bt" -ex "set pagination 0" -batch; done; diff --git a/phpunit.xml b/phpunit.xml index 5c3d696..a8fd5a5 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -15,6 +15,9 @@ + + ./tests/ + ./tests ./vendor/ From ea667bd1ff2cd7b6d566bf198fca93f1f95b3a4c Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Tue, 17 May 2016 10:39:20 +1000 Subject: [PATCH 217/226] Update README.md Simplify changelog --- README.md | 84 +++++++++++++++---------------------------------------- 1 file changed, 22 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 132dff1..51a3487 100644 --- a/README.md +++ b/README.md @@ -153,65 +153,25 @@ These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) ## Changelog -** Version 0.5.6 -* Hancock - PHP5 & PHP7 stable build - All Travis builds passing - -** Version 0.5.5 -* Herbie (Libsass 3.3.6) stable - -** Version 0.5.2 -* Delorean (Libsass 3.3.3) stable & PHP7 rewrite - -** Version 0.5.1 -* Eleanor (Libsass 3.3.2) stable - -** Version 0.5 -* PHP 7 compatibility - -** Version 0.4.9 -* Too Fast To Furious (Libsass 3.3.1) stable - -** Version 0.4.8 -* Greased Lightning (Libsass 3.3.0) stable - -** Version 0.4.7 -* SCSS vs SASS detection - indents - -** Version 0.4.6 -* Travis experimental (unreleased) - -** Version 0.4.5 -* Holiday Patch (Libsass 3.2.5) stable - -** Version 0.4.4 -* Refactor correctly for LibSass 3.2.4 - -** Version 0.4.2 -* CamelCase compile sequence - -** Version 0.4.1** -* SOURCE_DEFAULT works & is documented -* PHP test for SOURCE_DEFAULT (output unable to understand source directory in test, so functional pass, technical fail) -* Revise other tests to pass as output varies on source negotiation. - -** Version 0.4** -* Reconciled file compliation loop -* Expand documentation -* Addition of basic test for source comments -* More work on compile sequence - -** Version 0.3.9** -* Addition of source map url paths to SASS file compilation - -** Version 0.3.5** -* Restructure of compile sequence (file only at this time) to account for source map output - -** Version 0.3.0** -* Addition of source comments - none, inline, file. Set default to none. - -** Version 0.2.0** -* Changed methods to be non-static -* Allow setting include-path and image-path - -**Version 0.1.0 - IN DEVELOPMENT** -* Initial release +| Release | Description | +| --- | --- | +| 0.5.7 | Hancock - Optimise loops & Travis. Simplify changelog documentation | +| 0.5.6 | Green Giant - PHP5 & PHP7 stable build - All Travis builds passing | +| 0.5.5 | Herbie (Libsass 3.3.6) stable | +| 0.5.2 | Delorean (Libsass 3.3.3) stable & continuing PHP7 rewrite | +| 0.5.1 | Eleanor (Libsass 3.3.2) stable | +| 0.5.0 | Start of PHP 7 compatibility | +| 0.4.9 | Too Fast To Furious (Libsass 3.3.1) stable | +| 0.4.8 | Greased Lightning (Libsass 3.3.0) stable | +| 0.4.7 | SCSS vs SASS detection - indents | +| 0.4.6 | Travis experimental (unreleased) | +| 0.4.5 | Holiday Patch (Libsass 3.2.5) stable | +| 0.4.4 | Refactor correctly for LibSass 3.2.4 | +| 0.4.2 | CamelCase compile sequence | +| 0.4.1 | Addition of SOURCE_DEFAULT test & structure. Revise other tests | +| 0.4.0 | Refactor file compliation. Basic tests for source comments. Expand documentation | +| 0.3.9 | Addition of source map url paths to SASS file compilation | +| 0.3.5 | Restructure of compile sequence (file only at this time) to account for source map output | +| 0.3.0 | Addition of source comments - none, inline, file. Set default to none. | +| 0.2.0 | Changed methods to be non-static. Allow setting include-path and image-path | +| 0.1.0 | Initial release | From b385cbe200e0e89a4993b85963ff481a6b8be9c2 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 18 May 2016 10:52:53 +1000 Subject: [PATCH 218/226] Travis Coveralls test --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index e13edfb..1b8ed00 100644 --- a/.travis.yml +++ b/.travis.yml @@ -59,6 +59,9 @@ script: - for i in $(find ./ -maxdepth 1 -name 'core*' -print); do gdb $(pwd)/test core* -ex "thread apply all bt" -ex "set pagination 0" -batch; done; - if [[ ${RESULT} != 0 ]]; then exit $RESULT ; fi; +after_success: + - travis_retry php vendor/bin/coveralls + notifications: on_success: never on_failure: never From 8660a6826310e6e103362d9cae46b6783bcb823a Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 14 Dec 2016 02:52:55 +1000 Subject: [PATCH 219/226] Libsass 3.4.0 update --- README.md | 7 ++++--- lib/libsass | 2 +- src/php_sass.h | 2 +- tests/check_bundled_libsass_version.phpt | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 51a3487..1912cd6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The `sass` extension for PHP gives you an object-oriented system of parsing [Sass](http://sass-lang.com/) from within your PHP applications. Under the hood it uses [libsass](https://github.com/hcatlin/libsass) to provide super speedy and compatible Sass parsing. -![Libsass 3.3.6](https://img.shields.io/badge/libsass-3.3.6-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) +![Libsass 3.4.0](https://img.shields.io/badge/libsass-3.4.0-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) ## What's Sass? @@ -148,13 +148,14 @@ If there's a problem, the extension will throw a `SassException`: These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) library & remain in varying states of completion: -* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.3.6 - tested up to HHVM 3.11.x -* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.3.6 +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.4.0 - tested up to HHVM 3.11.x +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.4.0 ## Changelog | Release | Description | | --- | --- | +| 0.5.8 | AI - KITT (Libsass 3.4.0) stable | | 0.5.7 | Hancock - Optimise loops & Travis. Simplify changelog documentation | | 0.5.6 | Green Giant - PHP5 & PHP7 stable build - All Travis builds passing | | 0.5.5 | Herbie (Libsass 3.3.6) stable | diff --git a/lib/libsass b/lib/libsass index 3ae9a20..5b92405 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit 3ae9a2066152f9438aebaaacd12f39deaceaebc2 +Subproject commit 5b92405db76df2acf620fbaf37e3d1c3662af720 diff --git a/src/php_sass.h b/src/php_sass.h index c6adbf7..1ec486b 100644 --- a/src/php_sass.h +++ b/src/php_sass.h @@ -13,7 +13,7 @@ #include "config.h" #endif -#define SASS_VERSION "0.5.6" +#define SASS_VERSION "0.5.8" #define SASS_FLAVOR "Sassyphpras" #include diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index ac9354b..eaf3639 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- From c8c484e7022ba289bfce23e452407c48cba802a4 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 14 Dec 2016 03:33:23 +1000 Subject: [PATCH 220/226] Update tests based on 3.4.0 changes --- tests/file_embed.phpt | 2 +- tests/handles_map.phpt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/file_embed.phpt b/tests/file_embed.phpt index ace8f90..1d9dc16 100644 --- a/tests/file_embed.phpt +++ b/tests/file_embed.phpt @@ -20,4 +20,4 @@ div { div { blah: "foo iphone"; } -/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm1hcHBpbmdzIjogIkFBQUEsT0FBTyxDQUFDLDBCQUFJO0FBRVosQUFBQSxHQUFHLENBQUM7RUFDRixJQUFJLEVBQUUsNEJBQWlELEdBQ3hEOztBQUlELEFBQUEsR0FBRyxDQUFDO0VBQ0EsSUFBSSxFQUFFLFlBQWEsR0FDdEIiLAoJIm5hbWVzIjogW10KfQ== */ +/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAidGVzdHMvc3VwcG9ydC90ZXN0LmNzcyIsCgkic291cmNlcyI6IFsKCQkidGVzdHMvc3VwcG9ydC90ZXN0LnNjc3MiCgldLAoJIm5hbWVzIjogW10sCgkibWFwcGluZ3MiOiAiQUFBQSxPQUFPLENBQUMsMEJBQUk7QUFFWixBQUFBLEdBQUcsQ0FBQztFQUNGLElBQUksRUFBRSw0QkFBaUQsR0FDeEQ7O0FBSUQsQUFBQSxHQUFHLENBQUM7RUFDQSxJQUFJLEVBQUUsWUFBYSxHQUN0QiIKfQ== */ diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index f7f1686..2c3aadc 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -23,7 +23,7 @@ echo $css[1]; "sourcesContent": [ "@import url(../blahblah/blah.blah);\n\ndiv {\n blah: \"hello #{2+2} world #{unit(23px)} #{'bloo'} blah\";\n}\n\n$foo: iphone;\n\ndiv {\n blah: \"foo #{$foo}\"\n}\n" ], - "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB", - "names": [] + "names": [], + "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB" } From 18c455cc8eb10404dc1614941d9dc25b34b1f31f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Wed, 14 Dec 2016 03:40:37 +1000 Subject: [PATCH 221/226] Fix spacing / line issue on updated test --- tests/handles_map.phpt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index 2c3aadc..df5ac79 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -23,7 +23,7 @@ echo $css[1]; "sourcesContent": [ "@import url(../blahblah/blah.blah);\n\ndiv {\n blah: \"hello #{2+2} world #{unit(23px)} #{'bloo'} blah\";\n}\n\n$foo: iphone;\n\ndiv {\n blah: \"foo #{$foo}\"\n}\n" ], - "names": [], - "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB" + "names": [], + "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB" } From f26478099940bb509e7f4ca96a0847ab811da4dd Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Thu, 5 Jan 2017 22:59:33 +1000 Subject: [PATCH 222/226] Libsass 3.4.2 --- README.md | 7 ++++--- lib/libsass | 2 +- tests/check_bundled_libsass_version.phpt | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1912cd6..46aa226 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The `sass` extension for PHP gives you an object-oriented system of parsing [Sass](http://sass-lang.com/) from within your PHP applications. Under the hood it uses [libsass](https://github.com/hcatlin/libsass) to provide super speedy and compatible Sass parsing. -![Libsass 3.4.0](https://img.shields.io/badge/libsass-3.4.0-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) +![Libsass 3.4.2](https://img.shields.io/badge/libsass-3.4.2-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) ## What's Sass? @@ -148,13 +148,14 @@ If there's a problem, the extension will throw a `SassException`: These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) library & remain in varying states of completion: -* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.4.0 - tested up to HHVM 3.11.x -* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.4.0 +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.4.2 - tested up to HHVM 3.11.x +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.4.2 ## Changelog | Release | Description | | --- | --- | +| 0.5.9 | Rickshaw (Libsass 3.4.2) stable | | 0.5.8 | AI - KITT (Libsass 3.4.0) stable | | 0.5.7 | Hancock - Optimise loops & Travis. Simplify changelog documentation | | 0.5.6 | Green Giant - PHP5 & PHP7 stable build - All Travis builds passing | diff --git a/lib/libsass b/lib/libsass index 5b92405..2a9f386 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit 5b92405db76df2acf620fbaf37e3d1c3662af720 +Subproject commit 2a9f386e54c83a9e265707fe239f4fad9f3f937c diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index eaf3639..2ffa782 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- From 4db40dcc26c31224dc1f962aad3aecfb6375751f Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Jan 2017 14:40:40 +1000 Subject: [PATCH 223/226] Update .travis.yml --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1b8ed00..fc03f98 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,6 @@ addons: apt: packages: - php-5dev - - gdb env: global: From 066945bfa1ea9ca6d967afbfd05bbb4b16af3c78 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 6 Jan 2017 14:43:59 +1000 Subject: [PATCH 224/226] Update .travis.yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index fc03f98..527ba18 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,7 @@ php: - 5.5 - 5.6 - 7.0 + - 7.1 - nightly allow_failures: From cfcb9fbbd69b10ec18fcd1ae769ece448229cb7e Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 13 Jan 2017 10:59:41 +1000 Subject: [PATCH 225/226] Libsass & Travis --- .travis.yml | 3 ++- README.md | 7 ++++--- lib/libsass | 2 +- tests/check_bundled_libsass_version.phpt | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 527ba18..1f66159 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,8 @@ allow_failures: addons: apt: packages: - - php-5dev + - php5-dev + - gdb env: global: diff --git a/README.md b/README.md index 46aa226..cb5597f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ The `sass` extension for PHP gives you an object-oriented system of parsing [Sass](http://sass-lang.com/) from within your PHP applications. Under the hood it uses [libsass](https://github.com/hcatlin/libsass) to provide super speedy and compatible Sass parsing. -![Libsass 3.4.2](https://img.shields.io/badge/libsass-3.4.2-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) +![Libsass 3.4.3](https://img.shields.io/badge/libsass-3.4.3-yellow.svg) [![Build Status](https://travis-ci.org/absalomedia/sassphp.svg)](https://travis-ci.org/absalomedia/sassphp) ## What's Sass? @@ -148,13 +148,14 @@ If there's a problem, the extension will throw a `SassException`: These extensions also utilise the [Libsass](https://github.com/hcatlin/libsass) library & remain in varying states of completion: -* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.4.2 - tested up to HHVM 3.11.x -* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.4.2 +* Facebook [HHVM](https://github.com/absalomedia/sasshhvm) native (non Zend) extension - with Libsass 3.4.3 - tested up to HHVM 3.11.x +* [Nginx](https://github.com/absalomedia/sass-nginx-module) module - with Libsass 3.4.3 ## Changelog | Release | Description | | --- | --- | +| 0.5.10 | Elwood (Libsass 3.4.3) stable & Travis fix | | 0.5.9 | Rickshaw (Libsass 3.4.2) stable | | 0.5.8 | AI - KITT (Libsass 3.4.0) stable | | 0.5.7 | Hancock - Optimise loops & Travis. Simplify changelog documentation | diff --git a/lib/libsass b/lib/libsass index 2a9f386..b28de01 160000 --- a/lib/libsass +++ b/lib/libsass @@ -1 +1 @@ -Subproject commit 2a9f386e54c83a9e265707fe239f4fad9f3f937c +Subproject commit b28de01270a663b3e89427a18816732c4d573c1d diff --git a/tests/check_bundled_libsass_version.phpt b/tests/check_bundled_libsass_version.phpt index 2ffa782..58996f1 100644 --- a/tests/check_bundled_libsass_version.phpt +++ b/tests/check_bundled_libsass_version.phpt @@ -5,7 +5,7 @@ check bundled libsass version --FILE-- --EXPECT-- From d6ec46441db7cf158c102e495e0cab7bacc0b527 Mon Sep 17 00:00:00 2001 From: Lawrence Meckan Date: Fri, 13 Jan 2017 11:30:20 +1000 Subject: [PATCH 226/226] Fix test --- tests/handles_map.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/handles_map.phpt b/tests/handles_map.phpt index df5ac79..06c832f 100644 --- a/tests/handles_map.phpt +++ b/tests/handles_map.phpt @@ -24,6 +24,6 @@ echo $css[1]; "@import url(../blahblah/blah.blah);\n\ndiv {\n blah: \"hello #{2+2} world #{unit(23px)} #{'bloo'} blah\";\n}\n\n$foo: iphone;\n\ndiv {\n blah: \"foo #{$foo}\"\n}\n" ], "names": [], - "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB" + "mappings": "AAAA,OAAO,CAAC,0BAAI;;AAEZ,AAAA,GAAG,CAAC;EACF,IAAI,EAAE,4BAAiD,GACxD;;;AAID,AAAA,GAAG,CAAC;EACA,IAAI,EAAE,YAAa,GACtB" }