function marked($str = NULL) { if ($str === NULL) { return $this->marked_lines; } // If only an int is given if (is_int($str)) { $array = array($str); return CrayonUtil::arr($this->marked_lines, $array); } // A string with ints separated by commas, can also contain ranges $array = CrayonUtil::trim_e($str); $array = array_unique($array); $lines = array(); foreach ($array as $line) { // Check for ranges if (strpos($line, '-') !== FALSE) { $ranges = CrayonUtil::range_str($line); $lines = array_merge($lines, $ranges); } else { // Otherwise check the string for a number $line = intval($line); if ($line !== 0) { $lines[] = $line; } } } return CrayonUtil::arr($this->marked_lines, $lines); }