Skip to content

Commit 1d01175

Browse files
committed
Merge commit 'bb384a13abf5b8e96c2b50fef29e6be3b5ba9d04'
2 parents ba3fd2b + bb384a1 commit 1d01175

File tree

2 files changed

+29
-18
lines changed

2 files changed

+29
-18
lines changed

src/Utils/Formatter.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,6 +529,7 @@ public function escapeConsole($string)
529529
public function toString($token)
530530
{
531531
$text = $token->token;
532+
static $prev;
532533

533534
foreach ($this->options['formats'] as $format) {
534535
if ($token->type === $format['type']
@@ -544,15 +545,25 @@ public function toString($token)
544545
if ($this->options['type'] === 'html') {
545546
return '<span ' . $format['html'] . '>' . htmlspecialchars($text, ENT_NOQUOTES) . '</span>';
546547
} elseif ($this->options['type'] === 'cli') {
547-
return $format['cli'] . $this->escapeConsole($text);
548+
if ($prev != $format['cli']) {
549+
$prev = $format['cli'];
550+
return $format['cli'] . $this->escapeConsole($text);
551+
}
552+
553+
return $this->escapeConsole($text);
548554
}
549555

550556
break;
551557
}
552558
}
553559

554560
if ($this->options['type'] === 'cli') {
555-
return "\x1b[39m" . $this->escapeConsole($text);
561+
if ($prev != "\x1b[39m") {
562+
$prev = "\x1b[39m";
563+
return "\x1b[39m" . $this->escapeConsole($text);
564+
}
565+
566+
return $this->escapeConsole($text);
556567
} elseif ($this->options['type'] === 'html') {
557568
return htmlspecialchars($text, ENT_NOQUOTES);
558569
}

tests/Utils/FormatterTest.php

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -308,18 +308,18 @@ public function formatQueries()
308308
'DESC' . "\n" .
309309
'LIMIT 1 OFFSET 0',
310310
'cli' => "\x1b[35mSELECT" . "\n" .
311-
" \x1b[39mid\x1b[39m," . "\n" .
312-
" \x1b[35mIF\x1b[39m(\x1b[39mid \x1b[39m= \x1b[92m1\x1b[39m, \x1b[91m\"Si\"\x1b[39m, \x1b[91m\"No\"\x1b[39m)" . "\n" .
311+
" \x1b[39mid," . "\n" .
312+
" \x1b[35mIF\x1b[39m(id = \x1b[92m1\x1b[39m, \x1b[91m\"Si\"\x1b[39m, \x1b[91m\"No\"\x1b[39m)" . "\n" .
313313
"\x1b[35mFROM" . "\n" .
314314
" \x1b[36m`tbl`" . "\n" .
315315
"\x1b[35mWHERE" . "\n" .
316-
" \x1b[39mid \x1b[39m= \x1b[92m0 \x1b[35mOR \x1b[39mid \x1b[39m= \x1b[92m1" . "\n" .
316+
" \x1b[39mid = \x1b[92m0 \x1b[35mOR \x1b[39mid = \x1b[92m1" . "\n" .
317317
"\x1b[35mGROUP BY" . "\n" .
318318
" \x1b[39mid" . "\n" .
319319
"\x1b[35mORDER BY" . "\n" .
320320
" \x1b[39mid" . "\n" .
321321
"\x1b[35mDESC" . "\n" .
322-
"\x1b[35mLIMIT \x1b[92m1 \x1b[95mOFFSET \x1b[92m0" . "\x1b[0m",
322+
"LIMIT \x1b[92m1 \x1b[95mOFFSET \x1b[92m0" . "\x1b[0m",
323323
'html' => '<span class="sql-reserved">SELECT</span>' . '<br/>' .
324324
'&nbsp;&nbsp;&nbsp;&nbsp;id,' . '<br/>' .
325325
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-reserved">IF</span>(id = <span class="sql-number">1</span>, <span class="sql-string">"Si"</span>, <span class="sql-string">"No"</span>)' . '<br/>' .
@@ -396,8 +396,8 @@ public function formatQueries()
396396
'query' => 'select distinct count(*)',
397397
'text' => 'SELECT DISTINCT' . "\n" .
398398
' COUNT(*)',
399-
'cli' => "\x1b[35mSELECT \x1b[35mDISTINCT" . "\n" .
400-
" \x1b[95mCOUNT\x1b[39m(\x1b[39m*\x1b[39m)" . "\x1b[0m",
399+
'cli' => "\x1b[35mSELECT DISTINCT" . "\n" .
400+
" \x1b[95mCOUNT\x1b[39m(*)" . "\x1b[0m",
401401
'html' => '<span class="sql-reserved">SELECT</span> <span class="sql-reserved">DISTINCT</span>' . '<br/>' .
402402
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-keyword">COUNT</span>(*)',
403403
),
@@ -410,12 +410,12 @@ public function formatQueries()
410410
' SELECT' . "\n" .
411411
' *;' . "\n" .
412412
'END',
413-
'cli' => "\x1b[35mCREATE \x1b[35mPROCEDURE \x1b[39mtest_procedure\x1b[39m(\x1b[39m)\n" .
413+
'cli' => "\x1b[35mCREATE PROCEDURE \x1b[39mtest_procedure()\n" .
414414
"\x1b[95mBEGIN" . "\n" .
415415
" \x1b[35mFROM" . "\n" .
416416
" \x1b[39mtbl" . "\n" .
417417
" \x1b[35mSELECT" . "\n" .
418-
" \x1b[39m*\x1b[39m;\n" .
418+
" \x1b[39m*;\n" .
419419
"\x1b[95mEND" . "\x1b[0m",
420420
'html' => '<span class="sql-reserved">CREATE</span> <span class="sql-reserved">PROCEDURE</span> test_procedure()' . '<br/>' .
421421
'<span class="sql-keyword">BEGIN</span>' . '<br/>' .
@@ -429,8 +429,8 @@ public function formatQueries()
429429
'query' => 'insert into foo values (0, 0, 0), (1, 1, 1)',
430430
'text' => 'INSERT INTO foo' . "\n" .
431431
'VALUES(0, 0, 0),(1, 1, 1)',
432-
'cli' => "\x1b[35mINSERT \x1b[35mINTO \x1b[39mfoo" . "\n" .
433-
"\x1b[35mVALUES\x1b[39m(\x1b[92m0\x1b[39m, \x1b[92m0\x1b[39m, \x1b[92m0\x1b[39m)\x1b[39m,\x1b[39m(\x1b[92m1\x1b[39m, \x1b[92m1\x1b[39m, \x1b[92m1\x1b[39m)" . "\x1b[0m",
432+
'cli' => "\x1b[35mINSERT INTO \x1b[39mfoo" . "\n" .
433+
"\x1b[35mVALUES\x1b[39m(\x1b[92m0\x1b[39m, \x1b[92m0\x1b[39m, \x1b[92m0\x1b[39m),(\x1b[92m1\x1b[39m, \x1b[92m1\x1b[39m, \x1b[92m1\x1b[39m)" . "\x1b[0m",
434434
'html' => '<span class="sql-reserved">INSERT</span> <span class="sql-reserved">INTO</span> foo' . '<br/>' .
435435
'<span class="sql-reserved">VALUES</span>(<span class="sql-number">0</span>, <span class="sql-number">0</span>, <span class="sql-number">0</span>),(<span class="sql-number">1</span>, <span class="sql-number">1</span>, <span class="sql-number">1</span>)',
436436
),
@@ -463,7 +463,7 @@ public function formatQueries()
463463
" \x1b[91m'<s>xss'" . "\n" .
464464
"\x1b[35mFROM" . "\n" .
465465
" \x1b[36m`<s>xss`\x1b[39m," . "\n" .
466-
" \x1b[39m< \x1b[39ms \x1b[39m> \x1b[39mnxss \x1b[37m/*s<s>xss*/" . "\x1b[0m",
466+
" < s > nxss \x1b[37m/*s<s>xss*/" . "\x1b[0m",
467467
'html' => '<span class="sql-reserved">SELECT</span>' . '<br/>' .
468468
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-string">\'&lt;s&gt;xss\'</span>' . '<br/>' .
469469
'<span class="sql-reserved">FROM</span>' . '<br/>' .
@@ -484,11 +484,11 @@ public function formatQueries()
484484
' `label` VARCHAR(255) COLLATE utf8_general_ci NOT NULL DEFAULT "",' . "\n" .
485485
' `query` TEXT NOT NULL,' . "\n" .
486486
' PRIMARY KEY(`id`)',
487-
'cli' => "\x1b[35mCREATE \x1b[35mTABLE \x1b[35mIF NOT EXISTS \x1b[36m`pma__bookmark`\x1b[39m(" . "\n" .
487+
'cli' => "\x1b[35mCREATE TABLE IF NOT EXISTS \x1b[36m`pma__bookmark`\x1b[39m(" . "\n" .
488488
" \x1b[36m`id` \x1b[35mINT\x1b[39m(\x1b[92m11\x1b[39m) \x1b[35mNOT NULL \x1b[95mAUTO_INCREMENT\x1b[39m," . "\n" .
489-
" \x1b[36m`dbase` \x1b[35mVARCHAR\x1b[39m(\x1b[92m255\x1b[39m) \x1b[35mNOT NULL \x1b[35mDEFAULT \x1b[91m\"\"\x1b[39m," . "\n" .
490-
" \x1b[36m`user` \x1b[35mVARCHAR\x1b[39m(\x1b[92m255\x1b[39m) \x1b[35mNOT NULL \x1b[35mDEFAULT \x1b[91m\"\"\x1b[39m," . "\n" .
491-
" \x1b[36m`label` \x1b[35mVARCHAR\x1b[39m(\x1b[92m255\x1b[39m) \x1b[35mCOLLATE \x1b[39mutf8_general_ci \x1b[35mNOT NULL \x1b[35mDEFAULT \x1b[91m\"\"\x1b[39m," . "\n" .
489+
" \x1b[36m`dbase` \x1b[35mVARCHAR\x1b[39m(\x1b[92m255\x1b[39m) \x1b[35mNOT NULL DEFAULT \x1b[91m\"\"\x1b[39m," . "\n" .
490+
" \x1b[36m`user` \x1b[35mVARCHAR\x1b[39m(\x1b[92m255\x1b[39m) \x1b[35mNOT NULL DEFAULT \x1b[91m\"\"\x1b[39m," . "\n" .
491+
" \x1b[36m`label` \x1b[35mVARCHAR\x1b[39m(\x1b[92m255\x1b[39m) \x1b[35mCOLLATE \x1b[39mutf8_general_ci \x1b[35mNOT NULL DEFAULT \x1b[91m\"\"\x1b[39m," . "\n" .
492492
" \x1b[36m`query` \x1b[95mTEXT \x1b[35mNOT NULL\x1b[39m," . "\n" .
493493
" \x1b[35mPRIMARY KEY\x1b[39m(\x1b[36m`id`\x1b[39m)" . "\x1b[0m",
494494
'html' => '<span class="sql-reserved">CREATE</span> <span class="sql-reserved">TABLE</span> <span class="sql-reserved">IF NOT EXISTS</span> <span class="sql-variable">`pma__bookmark`</span>(' . '<br/>' .
@@ -502,7 +502,7 @@ public function formatQueries()
502502
'join' => array(
503503
'query' => 'join tbl2 on c1=c2',
504504
'text' => 'JOIN tbl2 ON c1 = c2',
505-
'cli' => "\x1b[35mJOIN \x1b[39mtbl2 \x1b[35mON \x1b[39mc1 \x1b[39m= \x1b[39mc2" .
505+
'cli' => "\x1b[35mJOIN \x1b[39mtbl2 \x1b[35mON \x1b[39mc1 = c2" .
506506
"\x1b[0m",
507507
'html' => '<span class="sql-reserved">JOIN</span> tbl2 <span class="sql-reserved">ON</span> c1 = c2',
508508
),

0 commit comments

Comments
 (0)