You are here

function lessc::removeComments in Less CSS Preprocessor 6.3

Same name and namespace in other branches
  1. 6 lessc.inc.php \lessc::removeComments()
2 calls to lessc::removeComments()
lessc::chunk in lessphp/lessc.inc.php
lessc::parse in lessphp/lessc.inc.php

File

lessphp/lessc.inc.php, line 1268

Class

lessc

Code

function removeComments($text) {
  $out = '';
  while (!empty($text) && preg_match('/^(.*?)("|\'|\\/\\/|\\/\\*|url\\(|$)/is', $text, $m)) {
    if (!trim($text)) {
      break;
    }
    $out .= $m[1];
    $text = substr($text, strlen($m[0]));
    switch ($m[2]) {
      case 'url(':
        preg_match('/^(.*?)(\\)|$)/is', $text, $inner);
        $text = substr($text, strlen($inner[0]));
        $out .= $m[2] . $inner[1] . $inner[2];
        break;
      case '//':
        preg_match("/^(.*?)(\n|\$)/is", $text, $inner);

        // give back the newline
        $text = substr($text, strlen($inner[0]) - 1);
        break;
      case '/*':
        preg_match("/^(.*?)(\\*\\/|\$)/is", $text, $inner);
        $text = substr($text, strlen($inner[0]));
        break;
      case '"':
      case "'":
        preg_match("/^(.*?)(" . $m[2] . "|\$)/is", $text, $inner);
        $text = substr($text, strlen($inner[0]));
        $out .= $m[2] . $inner[1] . $inner[2];
        break;
    }
  }
  return $out;
}