Mercurial > vim
comparison src/testdir/test_xxd.vim @ 33083:79b2eb83f2df v9.0.1827
patch 9.0.1827: xxd: no color support
Commit: https://github.com/vim/vim/commit/e2528ae11134cdf35c312754b124aba4963d8054
Author: Aapo Rantalainen <aapo.rantalainen@gmail.com>
Date: Thu Aug 31 17:58:13 2023 +0200
patch 9.0.1827: xxd: no color support
Problem: xxd: no color support
Solution: Add color support using xxd -R
Add some basic color support for xxd
The hex-value and value are both colored with the same color depending
on the hex-value, e.g.:
0x00 = white
0xff = blue
printable = green
non-printable = red
tabs and linebreaks = yellow
Each character needs 11 more bytes to contain color. (Same color in a
row could contain only one overhead but the logic how xxd creates colums
must be then changed.) Size of colored output is increased by factor of
~6. Also grepping the output will break when colors is used.
Flag for color is "-R", because less uses "-R".
Color uses parameters auto,always,never same as less and grep (among
others).
E.g.
xxd -R always $FILE | less -R
Add some screen-tests (that currently on work on linux) to verify the
feature works as expected.
closes: #12131
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Aapo Rantalainen <aapo.rantalainen@gmail.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 31 Aug 2023 18:15:03 +0200 |
parents | 5a1113ece237 |
children | 2946268e7c48 |
comparison
equal
deleted
inserted
replaced
33082:7ff767f84630 | 33083:79b2eb83f2df |
---|---|
1 " Test for the xxd command | 1 " Test for the xxd command |
2 | |
3 source check.vim | |
4 source screendump.vim | |
2 | 5 |
3 if empty($XXD) && executable('..\xxd\xxd.exe') | 6 if empty($XXD) && executable('..\xxd\xxd.exe') |
4 let s:xxd_cmd = '..\xxd\xxd.exe' | 7 let s:xxd_cmd = '..\xxd\xxd.exe' |
5 elseif empty($XXD) || !executable($XXD) | 8 elseif empty($XXD) || !executable($XXD) |
6 throw 'Skipped: xxd program missing' | 9 throw 'Skipped: xxd program missing' |
309 call delete('Xxxdout') | 312 call delete('Xxxdout') |
310 endfunc | 313 endfunc |
311 | 314 |
312 " Various ways with wrong arguments that trigger the usage output. | 315 " Various ways with wrong arguments that trigger the usage output. |
313 func Test_xxd_usage() | 316 func Test_xxd_usage() |
314 for arg in ['-h', '-c', '-g', '-o', '-s', '-l', '-X', 'one two three'] | 317 for arg in ['-h', '-c', '-g', '-o', '-s', '-l', '-X', '-R', 'one two three'] |
315 new | 318 new |
316 exe 'r! ' . s:xxd_cmd . ' ' . arg | 319 exe 'r! ' . s:xxd_cmd . ' ' . arg |
317 call assert_match("Usage:", join(getline(1, 3))) | 320 call assert_match("Usage:", join(getline(1, 3))) |
318 bwipe! | 321 bwipe! |
319 endfor | 322 endfor |
413 call assert_equal('00000000: 44434241 48474645 49 ABCDEFGHI', getline(2)) | 416 call assert_equal('00000000: 44434241 48474645 49 ABCDEFGHI', getline(2)) |
414 | 417 |
415 bwipe! | 418 bwipe! |
416 endfunc | 419 endfunc |
417 | 420 |
421 func Test_xxd_color() | |
422 "Test: color=never | |
423 let s:test = 1 | |
424 | |
425 "Note Quotation mark escaped | |
426 "Note Aposhpere vaihdettu apostrophe replaced with 0x00 | |
427 "Note Backslash replaced with 0x00 | |
428 let data = [ | |
429 \ "00000000: 0001 0203 0405 0607 0809 0a0b 0c0d 0e0f ................", | |
430 \ "00000010: 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f ................", | |
431 \ "00000020: 2021 2223 2425 2600 2829 2a2b 2c2d 2e2f !\"#$%&.()*+,-./", | |
432 \ "00000030: 3031 3233 3435 3637 3839 3a3b 3c3d 3e3f 0123456789:;<=>?", | |
433 \ "00000040: 4041 4243 4445 4647 4849 4a4b 4c4d 4e4f @ABCDEFGHIJKLMNO", | |
434 \ "00000050: 5051 5253 5455 5657 5859 5a5b 005d 5e5f PQRSTUVWXYZ[.]^_", | |
435 \ "00000060: 6061 6263 6465 6667 6869 6a6b 6c6d 6e6f `abcdefghijklmno", | |
436 \ "00000070: 7071 7273 7475 7677 7879 7a7b 7c7d 7e7f pqrstuvwxyz{|}~.", | |
437 \ "00000080: 8081 8283 8485 8687 8889 8a8b 8c8d 8e8f ................", | |
438 \ "00000090: 9091 9293 9495 9697 9899 9a9b 9c9d 9e9f ................", | |
439 \ "000000a0: a0a1 a2a3 a4a5 a6a7 a8a9 aaab acad aeaf ................", | |
440 \ "000000b0: b0b1 b2b3 b4b5 b6b7 b8b9 babb bcbd bebf ................", | |
441 \ "000000c0: c0c1 c2c3 c4c5 c6c7 c8c9 cacb cccd cecf ................", | |
442 \ "000000d0: d0d1 d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf ................", | |
443 \ "000000e0: e0e1 e2e3 e4e5 e6e7 e8e9 eaeb eced eeef ................", | |
444 \ "000000f0: f0f1 f2f3 f4f5 f6f7 f8f9 fafb fcfd feff ................"] | |
445 call writefile(data,'Xinput') | |
446 | |
447 silent exe '!' . s:xxd_cmd . ' -r < Xinput > XXDfile' | |
448 | |
449 %d | |
450 exe '0r! ' . s:xxd_cmd . ' -R never ' . ' XXDfile' | |
451 $d | |
452 let expected = [ | |
453 \ "00000000: 0001 0203 0405 0607 0809 0a0b 0c0d 0e0f ................", | |
454 \ "00000010: 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f ................", | |
455 \ "00000020: 2021 2223 2425 2600 2829 2a2b 2c2d 2e2f !\"#$%&.()*+,-./", | |
456 \ "00000030: 3031 3233 3435 3637 3839 3a3b 3c3d 3e3f 0123456789:;<=>?", | |
457 \ "00000040: 4041 4243 4445 4647 4849 4a4b 4c4d 4e4f @ABCDEFGHIJKLMNO", | |
458 \ "00000050: 5051 5253 5455 5657 5859 5a5b 005d 5e5f PQRSTUVWXYZ[.]^_", | |
459 \ "00000060: 6061 6263 6465 6667 6869 6a6b 6c6d 6e6f `abcdefghijklmno", | |
460 \ "00000070: 7071 7273 7475 7677 7879 7a7b 7c7d 7e7f pqrstuvwxyz{|}~.", | |
461 \ "00000080: 8081 8283 8485 8687 8889 8a8b 8c8d 8e8f ................", | |
462 \ "00000090: 9091 9293 9495 9697 9899 9a9b 9c9d 9e9f ................", | |
463 \ "000000a0: a0a1 a2a3 a4a5 a6a7 a8a9 aaab acad aeaf ................", | |
464 \ "000000b0: b0b1 b2b3 b4b5 b6b7 b8b9 babb bcbd bebf ................", | |
465 \ "000000c0: c0c1 c2c3 c4c5 c6c7 c8c9 cacb cccd cecf ................", | |
466 \ "000000d0: d0d1 d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf ................", | |
467 \ "000000e0: e0e1 e2e3 e4e5 e6e7 e8e9 eaeb eced eeef ................", | |
468 \ "000000f0: f0f1 f2f3 f4f5 f6f7 f8f9 fafb fcfd feff ................"] | |
469 | |
470 call assert_equal(expected, getline(1,'$'), s:Mess(s:test)) | |
471 | |
472 "Test: color=always | |
473 let s:test += 1 | |
474 | |
475 %d | |
476 exe '0r! ' . s:xxd_cmd . ' -R always -c 4 ' . ' XXDfile' | |
477 $d | |
478 let expected = [ | |
479 \ "00000000: \e[1;37m00\e[0m\e[1;31m01\e[0m \e[1;31m02\e[0m\e[1;31m03\e[0m \e[1;37m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
480 \ "00000004: \e[1;31m04\e[0m\e[1;31m05\e[0m \e[1;31m06\e[0m\e[1;31m07\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
481 \ "00000008: \e[1;31m08\e[0m\e[1;33m09\e[0m \e[1;33m0a\e[0m\e[1;31m0b\e[0m \e[1;31m.\e[0m\e[1;33m.\e[0m\e[1;33m.\e[0m\e[1;31m.\e[0m", | |
482 \ "0000000c: \e[1;31m0c\e[0m\e[1;33m0d\e[0m \e[1;31m0e\e[0m\e[1;31m0f\e[0m \e[1;31m.\e[0m\e[1;33m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
483 \ "00000010: \e[1;31m10\e[0m\e[1;31m11\e[0m \e[1;31m12\e[0m\e[1;31m13\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
484 \ "00000014: \e[1;31m14\e[0m\e[1;31m15\e[0m \e[1;31m16\e[0m\e[1;31m17\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
485 \ "00000018: \e[1;31m18\e[0m\e[1;31m19\e[0m \e[1;31m1a\e[0m\e[1;31m1b\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
486 \ "0000001c: \e[1;31m1c\e[0m\e[1;31m1d\e[0m \e[1;31m1e\e[0m\e[1;31m1f\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
487 \ "00000020: \e[1;32m20\e[0m\e[1;32m21\e[0m \e[1;32m22\e[0m\e[1;32m23\e[0m \e[1;32m \e[0m\e[1;32m!\e[0m\e[1;32m\"\e[0m\e[1;32m#\e[0m", | |
488 \ "00000024: \e[1;32m24\e[0m\e[1;32m25\e[0m \e[1;32m26\e[0m\e[1;37m00\e[0m \e[1;32m$\e[0m\e[1;32m%\e[0m\e[1;32m&\e[0m\e[1;37m.\e[0m", | |
489 \ "00000028: \e[1;32m28\e[0m\e[1;32m29\e[0m \e[1;32m2a\e[0m\e[1;32m2b\e[0m \e[1;32m(\e[0m\e[1;32m)\e[0m\e[1;32m*\e[0m\e[1;32m+\e[0m", | |
490 \ "0000002c: \e[1;32m2c\e[0m\e[1;32m2d\e[0m \e[1;32m2e\e[0m\e[1;32m2f\e[0m \e[1;32m,\e[0m\e[1;32m-\e[0m\e[1;32m.\e[0m\e[1;32m/\e[0m", | |
491 \ "00000030: \e[1;32m30\e[0m\e[1;32m31\e[0m \e[1;32m32\e[0m\e[1;32m33\e[0m \e[1;32m0\e[0m\e[1;32m1\e[0m\e[1;32m2\e[0m\e[1;32m3\e[0m", | |
492 \ "00000034: \e[1;32m34\e[0m\e[1;32m35\e[0m \e[1;32m36\e[0m\e[1;32m37\e[0m \e[1;32m4\e[0m\e[1;32m5\e[0m\e[1;32m6\e[0m\e[1;32m7\e[0m", | |
493 \ "00000038: \e[1;32m38\e[0m\e[1;32m39\e[0m \e[1;32m3a\e[0m\e[1;32m3b\e[0m \e[1;32m8\e[0m\e[1;32m9\e[0m\e[1;32m:\e[0m\e[1;32m;\e[0m", | |
494 \ "0000003c: \e[1;32m3c\e[0m\e[1;32m3d\e[0m \e[1;32m3e\e[0m\e[1;32m3f\e[0m \e[1;32m<\e[0m\e[1;32m=\e[0m\e[1;32m>\e[0m\e[1;32m?\e[0m", | |
495 \ "00000040: \e[1;32m40\e[0m\e[1;32m41\e[0m \e[1;32m42\e[0m\e[1;32m43\e[0m \e[1;32m@\e[0m\e[1;32mA\e[0m\e[1;32mB\e[0m\e[1;32mC\e[0m", | |
496 \ "00000044: \e[1;32m44\e[0m\e[1;32m45\e[0m \e[1;32m46\e[0m\e[1;32m47\e[0m \e[1;32mD\e[0m\e[1;32mE\e[0m\e[1;32mF\e[0m\e[1;32mG\e[0m", | |
497 \ "00000048: \e[1;32m48\e[0m\e[1;32m49\e[0m \e[1;32m4a\e[0m\e[1;32m4b\e[0m \e[1;32mH\e[0m\e[1;32mI\e[0m\e[1;32mJ\e[0m\e[1;32mK\e[0m", | |
498 \ "0000004c: \e[1;32m4c\e[0m\e[1;32m4d\e[0m \e[1;32m4e\e[0m\e[1;32m4f\e[0m \e[1;32mL\e[0m\e[1;32mM\e[0m\e[1;32mN\e[0m\e[1;32mO\e[0m", | |
499 \ "00000050: \e[1;32m50\e[0m\e[1;32m51\e[0m \e[1;32m52\e[0m\e[1;32m53\e[0m \e[1;32mP\e[0m\e[1;32mQ\e[0m\e[1;32mR\e[0m\e[1;32mS\e[0m", | |
500 \ "00000054: \e[1;32m54\e[0m\e[1;32m55\e[0m \e[1;32m56\e[0m\e[1;32m57\e[0m \e[1;32mT\e[0m\e[1;32mU\e[0m\e[1;32mV\e[0m\e[1;32mW\e[0m", | |
501 \ "00000058: \e[1;32m58\e[0m\e[1;32m59\e[0m \e[1;32m5a\e[0m\e[1;32m5b\e[0m \e[1;32mX\e[0m\e[1;32mY\e[0m\e[1;32mZ\e[0m\e[1;32m[\e[0m", | |
502 \ "0000005c: \e[1;37m00\e[0m\e[1;32m5d\e[0m \e[1;32m5e\e[0m\e[1;32m5f\e[0m \e[1;37m.\e[0m\e[1;32m]\e[0m\e[1;32m^\e[0m\e[1;32m_\e[0m", | |
503 \ "00000060: \e[1;32m60\e[0m\e[1;32m61\e[0m \e[1;32m62\e[0m\e[1;32m63\e[0m \e[1;32m`\e[0m\e[1;32ma\e[0m\e[1;32mb\e[0m\e[1;32mc\e[0m", | |
504 \ "00000064: \e[1;32m64\e[0m\e[1;32m65\e[0m \e[1;32m66\e[0m\e[1;32m67\e[0m \e[1;32md\e[0m\e[1;32me\e[0m\e[1;32mf\e[0m\e[1;32mg\e[0m", | |
505 \ "00000068: \e[1;32m68\e[0m\e[1;32m69\e[0m \e[1;32m6a\e[0m\e[1;32m6b\e[0m \e[1;32mh\e[0m\e[1;32mi\e[0m\e[1;32mj\e[0m\e[1;32mk\e[0m", | |
506 \ "0000006c: \e[1;32m6c\e[0m\e[1;32m6d\e[0m \e[1;32m6e\e[0m\e[1;32m6f\e[0m \e[1;32ml\e[0m\e[1;32mm\e[0m\e[1;32mn\e[0m\e[1;32mo\e[0m", | |
507 \ "00000070: \e[1;32m70\e[0m\e[1;32m71\e[0m \e[1;32m72\e[0m\e[1;32m73\e[0m \e[1;32mp\e[0m\e[1;32mq\e[0m\e[1;32mr\e[0m\e[1;32ms\e[0m", | |
508 \ "00000074: \e[1;32m74\e[0m\e[1;32m75\e[0m \e[1;32m76\e[0m\e[1;32m77\e[0m \e[1;32mt\e[0m\e[1;32mu\e[0m\e[1;32mv\e[0m\e[1;32mw\e[0m", | |
509 \ "00000078: \e[1;32m78\e[0m\e[1;32m79\e[0m \e[1;32m7a\e[0m\e[1;32m7b\e[0m \e[1;32mx\e[0m\e[1;32my\e[0m\e[1;32mz\e[0m\e[1;32m{\e[0m", | |
510 \ "0000007c: \e[1;32m7c\e[0m\e[1;32m7d\e[0m \e[1;32m7e\e[0m\e[1;31m7f\e[0m \e[1;32m|\e[0m\e[1;32m}\e[0m\e[1;32m~\e[0m\e[1;31m.\e[0m", | |
511 \ "00000080: \e[1;31m80\e[0m\e[1;31m81\e[0m \e[1;31m82\e[0m\e[1;31m83\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
512 \ "00000084: \e[1;31m84\e[0m\e[1;31m85\e[0m \e[1;31m86\e[0m\e[1;31m87\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
513 \ "00000088: \e[1;31m88\e[0m\e[1;31m89\e[0m \e[1;31m8a\e[0m\e[1;31m8b\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
514 \ "0000008c: \e[1;31m8c\e[0m\e[1;31m8d\e[0m \e[1;31m8e\e[0m\e[1;31m8f\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
515 \ "00000090: \e[1;31m90\e[0m\e[1;31m91\e[0m \e[1;31m92\e[0m\e[1;31m93\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
516 \ "00000094: \e[1;31m94\e[0m\e[1;31m95\e[0m \e[1;31m96\e[0m\e[1;31m97\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
517 \ "00000098: \e[1;31m98\e[0m\e[1;31m99\e[0m \e[1;31m9a\e[0m\e[1;31m9b\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
518 \ "0000009c: \e[1;31m9c\e[0m\e[1;31m9d\e[0m \e[1;31m9e\e[0m\e[1;31m9f\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
519 \ "000000a0: \e[1;31ma0\e[0m\e[1;31ma1\e[0m \e[1;31ma2\e[0m\e[1;31ma3\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
520 \ "000000a4: \e[1;31ma4\e[0m\e[1;31ma5\e[0m \e[1;31ma6\e[0m\e[1;31ma7\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
521 \ "000000a8: \e[1;31ma8\e[0m\e[1;31ma9\e[0m \e[1;31maa\e[0m\e[1;31mab\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
522 \ "000000ac: \e[1;31mac\e[0m\e[1;31mad\e[0m \e[1;31mae\e[0m\e[1;31maf\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
523 \ "000000b0: \e[1;31mb0\e[0m\e[1;31mb1\e[0m \e[1;31mb2\e[0m\e[1;31mb3\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
524 \ "000000b4: \e[1;31mb4\e[0m\e[1;31mb5\e[0m \e[1;31mb6\e[0m\e[1;31mb7\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
525 \ "000000b8: \e[1;31mb8\e[0m\e[1;31mb9\e[0m \e[1;31mba\e[0m\e[1;31mbb\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
526 \ "000000bc: \e[1;31mbc\e[0m\e[1;31mbd\e[0m \e[1;31mbe\e[0m\e[1;31mbf\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
527 \ "000000c0: \e[1;31mc0\e[0m\e[1;31mc1\e[0m \e[1;31mc2\e[0m\e[1;31mc3\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
528 \ "000000c4: \e[1;31mc4\e[0m\e[1;31mc5\e[0m \e[1;31mc6\e[0m\e[1;31mc7\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
529 \ "000000c8: \e[1;31mc8\e[0m\e[1;31mc9\e[0m \e[1;31mca\e[0m\e[1;31mcb\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
530 \ "000000cc: \e[1;31mcc\e[0m\e[1;31mcd\e[0m \e[1;31mce\e[0m\e[1;31mcf\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
531 \ "000000d0: \e[1;31md0\e[0m\e[1;31md1\e[0m \e[1;31md2\e[0m\e[1;31md3\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
532 \ "000000d4: \e[1;31md4\e[0m\e[1;31md5\e[0m \e[1;31md6\e[0m\e[1;31md7\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
533 \ "000000d8: \e[1;31md8\e[0m\e[1;31md9\e[0m \e[1;31mda\e[0m\e[1;31mdb\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
534 \ "000000dc: \e[1;31mdc\e[0m\e[1;31mdd\e[0m \e[1;31mde\e[0m\e[1;31mdf\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
535 \ "000000e0: \e[1;31me0\e[0m\e[1;31me1\e[0m \e[1;31me2\e[0m\e[1;31me3\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
536 \ "000000e4: \e[1;31me4\e[0m\e[1;31me5\e[0m \e[1;31me6\e[0m\e[1;31me7\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
537 \ "000000e8: \e[1;31me8\e[0m\e[1;31me9\e[0m \e[1;31mea\e[0m\e[1;31meb\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
538 \ "000000ec: \e[1;31mec\e[0m\e[1;31med\e[0m \e[1;31mee\e[0m\e[1;31mef\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
539 \ "000000f0: \e[1;31mf0\e[0m\e[1;31mf1\e[0m \e[1;31mf2\e[0m\e[1;31mf3\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
540 \ "000000f4: \e[1;31mf4\e[0m\e[1;31mf5\e[0m \e[1;31mf6\e[0m\e[1;31mf7\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
541 \ "000000f8: \e[1;31mf8\e[0m\e[1;31mf9\e[0m \e[1;31mfa\e[0m\e[1;31mfb\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m", | |
542 \ "000000fc: \e[1;31mfc\e[0m\e[1;31mfd\e[0m \e[1;31mfe\e[0m\e[1;34mff\e[0m \e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;31m.\e[0m\e[1;34m.\e[0m"] | |
543 call assert_equal(expected, getline(1,'$'), s:Mess(s:test)) | |
544 | |
545 call delete('Xinput') | |
546 call delete('XXDfile') | |
547 | |
548 endfunc | |
549 | |
550 func Test_xxd_color2() | |
551 CheckScreendump | |
552 CheckUnix | |
553 CheckNotMac | |
554 CheckNotBSD | |
555 | |
556 "Note Quotation mark escaped | |
557 "Note Aposhpere vaihdettu apostrophe replaced with 0x00 | |
558 "Note Backslash replaced with 0x00 | |
559 let data = [ | |
560 \ "00000000: 0001 0203 0405 0607 0809 0a0b 0c0d 0e0f ................", | |
561 \ "00000010: 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f ................", | |
562 \ "00000020: 2021 2223 2425 2600 2829 2a2b 2c2d 2e2f !\"#$%&.()*+,-./", | |
563 \ "00000030: 3031 3233 3435 3637 3839 3a3b 3c3d 3e3f 0123456789:;<=>?", | |
564 \ "00000040: 4041 4243 4445 4647 4849 4a4b 4c4d 4e4f @ABCDEFGHIJKLMNO", | |
565 \ "00000050: 5051 5253 5455 5657 5859 5a5b 005d 5e5f PQRSTUVWXYZ[.]^_", | |
566 \ "00000060: 6061 6263 6465 6667 6869 6a6b 6c6d 6e6f `abcdefghijklmno", | |
567 \ "00000070: 7071 7273 7475 7677 7879 7a7b 7c7d 7e7f pqrstuvwxyz{|}~.", | |
568 \ "00000080: 8081 8283 8485 8687 8889 8a8b 8c8d 8e8f ................", | |
569 \ "00000090: 9091 9293 9495 9697 9899 9a9b 9c9d 9e9f ................", | |
570 \ "000000a0: a0a1 a2a3 a4a5 a6a7 a8a9 aaab acad aeaf ................", | |
571 \ "000000b0: b0b1 b2b3 b4b5 b6b7 b8b9 babb bcbd bebf ................", | |
572 \ "000000c0: c0c1 c2c3 c4c5 c6c7 c8c9 cacb cccd cecf ................", | |
573 \ "000000d0: d0d1 d2d3 d4d5 d6d7 d8d9 dadb dcdd dedf ................", | |
574 \ "000000e0: e0e1 e2e3 e4e5 e6e7 e8e9 eaeb eced eeef ................", | |
575 \ "000000f0: f0f1 f2f3 f4f5 f6f7 f8f9 fafb fcfd feff ................"] | |
576 call writefile(data, 'Xinput', 'D') | |
577 | |
578 call system(s:xxd_cmd .. ' -r < Xinput > XXDfile_colors') | |
579 | |
580 let buf = RunVimInTerminal('', #{rows: 20, cmd: 'sh'}) | |
581 call term_sendkeys(buf, s:xxd_cmd .. " -R never < XXDfile_colors\<cr>") | |
582 call TermWait(buf) | |
583 call VerifyScreenDump(buf, 'Test_xxd_color_0', {}) | |
584 | |
585 call TermWait(buf) | |
586 call term_sendkeys(buf, "clear\<CR>") | |
587 call term_sendkeys(buf, s:xxd_cmd .. " -R always < XXDfile_colors\<cr>") | |
588 call TermWait(buf) | |
589 call VerifyScreenDump(buf, 'Test_xxd_color_1', {}) | |
590 | |
591 call term_sendkeys(buf, "exit\<CR>") | |
592 | |
593 call delete('XXDfile_colors') | |
594 endfunc | |
418 " vim: shiftwidth=2 sts=2 expandtab | 595 " vim: shiftwidth=2 sts=2 expandtab |