summaryrefslogtreecommitdiffstats
path: root/admin/survey/minify/vendor/tubalmartin/cssmin/tests/FineDiff/Render/Cli.php
blob: 86dcbbad1527d839d23265c1f3c90146e087f460 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php

namespace tubalmartin\CssMin\Tests\FineDiff\Render;

use cogpowered\FineDiff\Render\Renderer;

class Cli extends Renderer
{
    public function callback($opcode, $from, $from_offset, $from_len)
    {
        if ($opcode === 'c') {
            $text = substr($from, $from_offset, $from_len);
        } elseif ($opcode === 'd') {
            $deletion = substr($from, $from_offset, $from_len);

            if (strcspn($deletion, " \n\r") === 0) {
                $deletion = str_replace(array("\n","\r"), array('\n','\r'), $deletion);
            }

            $text = "\x1b[97m\x1b[41m".$deletion."\x1b[0m";
        } else /* if ( $opcode === 'i' ) */ {
            $text = "\x1b[97m\x1b[42m".substr($from, $from_offset, $from_len)."\x1b[0m";
        }

        return $text;
    }
}