diff --git a/src/testdir/test_xxd.vim b/src/testdir/test_xxd.vim
index 5d739e0..7c3011f 100644
--- a/src/testdir/test_xxd.vim
+++ b/src/testdir/test_xxd.vim
@@ -444,7 +444,7 @@
   endif
   new
   let input = repeat('A', 256)
-  call writefile(['-9223372036854775808: ' . repeat("\e[1;32m41\e[0m ", 256) . ' ' . repeat("\e[1;32mA\e[0m", 256)], 'Xxdexpected', 'D')
+  call writefile(['-9223372036854775808: ' . repeat("\e[1;32m41\e[0m ", 256) . ' ' . "\e[1;32m" . repeat('A', 256) . "\e[0m"], 'Xxdexpected', 'D')
   exe 'r! printf ' . input . '| ' . s:xxd_cmd . ' -Ralways -g1 -c256 -d -o 9223372036854775808 > Xxdout'
   call assert_equalfile('Xxdexpected', 'Xxdout')
   call delete('Xxdout')
@@ -560,70 +560,70 @@
   exe '0r! ' . s:xxd_cmd . ' -R always -c 4 ' . ' XXDfile'
   $d
   let expected = [
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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",
-      \ "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"]
+      \ "00000000: \e[1;37m00\e[0m\e[1;31m01\e[0m \e[1;31m0203\e[0m  \e[1;37m.\e[0m\e[1;31m...\e[0m",
+      \ "00000004: \e[1;31m0405\e[0m \e[1;31m0607\e[0m  \e[1;31m....\e[0m",
+      \ "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;31m.\e[0m",
+      \ "0000000c: \e[1;31m0c\e[0m\e[1;33m0d\e[0m \e[1;31m0e0f\e[0m  \e[1;31m.\e[0m\e[1;33m.\e[0m\e[1;31m..\e[0m",
+      \ "00000010: \e[1;31m1011\e[0m \e[1;31m1213\e[0m  \e[1;31m....\e[0m",
+      \ "00000014: \e[1;31m1415\e[0m \e[1;31m1617\e[0m  \e[1;31m....\e[0m",
+      \ "00000018: \e[1;31m1819\e[0m \e[1;31m1a1b\e[0m  \e[1;31m....\e[0m",
+      \ "0000001c: \e[1;31m1c1d\e[0m \e[1;31m1e1f\e[0m  \e[1;31m....\e[0m",
+      \ "00000020: \e[1;32m2021\e[0m \e[1;32m2223\e[0m  \e[1;32m !\"#\e[0m",
+      \ "00000024: \e[1;32m2425\e[0m \e[1;32m26\e[0m\e[1;37m00\e[0m  \e[1;32m$%&\e[0m\e[1;37m.\e[0m",
+      \ "00000028: \e[1;32m2829\e[0m \e[1;32m2a2b\e[0m  \e[1;32m()*+\e[0m",
+      \ "0000002c: \e[1;32m2c2d\e[0m \e[1;32m2e2f\e[0m  \e[1;32m,-./\e[0m",
+      \ "00000030: \e[1;32m3031\e[0m \e[1;32m3233\e[0m  \e[1;32m0123\e[0m",
+      \ "00000034: \e[1;32m3435\e[0m \e[1;32m3637\e[0m  \e[1;32m4567\e[0m",
+      \ "00000038: \e[1;32m3839\e[0m \e[1;32m3a3b\e[0m  \e[1;32m89:;\e[0m",
+      \ "0000003c: \e[1;32m3c3d\e[0m \e[1;32m3e3f\e[0m  \e[1;32m<=>?\e[0m",
+      \ "00000040: \e[1;32m4041\e[0m \e[1;32m4243\e[0m  \e[1;32m@ABC\e[0m",
+      \ "00000044: \e[1;32m4445\e[0m \e[1;32m4647\e[0m  \e[1;32mDEFG\e[0m",
+      \ "00000048: \e[1;32m4849\e[0m \e[1;32m4a4b\e[0m  \e[1;32mHIJK\e[0m",
+      \ "0000004c: \e[1;32m4c4d\e[0m \e[1;32m4e4f\e[0m  \e[1;32mLMNO\e[0m",
+      \ "00000050: \e[1;32m5051\e[0m \e[1;32m5253\e[0m  \e[1;32mPQRS\e[0m",
+      \ "00000054: \e[1;32m5455\e[0m \e[1;32m5657\e[0m  \e[1;32mTUVW\e[0m",
+      \ "00000058: \e[1;32m5859\e[0m \e[1;32m5a5b\e[0m  \e[1;32mXYZ[\e[0m",
+      \ "0000005c: \e[1;37m00\e[0m\e[1;32m5d\e[0m \e[1;32m5e5f\e[0m  \e[1;37m.\e[0m\e[1;32m]^_\e[0m",
+      \ "00000060: \e[1;32m6061\e[0m \e[1;32m6263\e[0m  \e[1;32m`abc\e[0m",
+      \ "00000064: \e[1;32m6465\e[0m \e[1;32m6667\e[0m  \e[1;32mdefg\e[0m",
+      \ "00000068: \e[1;32m6869\e[0m \e[1;32m6a6b\e[0m  \e[1;32mhijk\e[0m",
+      \ "0000006c: \e[1;32m6c6d\e[0m \e[1;32m6e6f\e[0m  \e[1;32mlmno\e[0m",
+      \ "00000070: \e[1;32m7071\e[0m \e[1;32m7273\e[0m  \e[1;32mpqrs\e[0m",
+      \ "00000074: \e[1;32m7475\e[0m \e[1;32m7677\e[0m  \e[1;32mtuvw\e[0m",
+      \ "00000078: \e[1;32m7879\e[0m \e[1;32m7a7b\e[0m  \e[1;32mxyz{\e[0m",
+      \ "0000007c: \e[1;32m7c7d\e[0m \e[1;32m7e\e[0m\e[1;31m7f\e[0m  \e[1;32m|}~\e[0m\e[1;31m.\e[0m",
+      \ "00000080: \e[1;31m8081\e[0m \e[1;31m8283\e[0m  \e[1;31m....\e[0m",
+      \ "00000084: \e[1;31m8485\e[0m \e[1;31m8687\e[0m  \e[1;31m....\e[0m",
+      \ "00000088: \e[1;31m8889\e[0m \e[1;31m8a8b\e[0m  \e[1;31m....\e[0m",
+      \ "0000008c: \e[1;31m8c8d\e[0m \e[1;31m8e8f\e[0m  \e[1;31m....\e[0m",
+      \ "00000090: \e[1;31m9091\e[0m \e[1;31m9293\e[0m  \e[1;31m....\e[0m",
+      \ "00000094: \e[1;31m9495\e[0m \e[1;31m9697\e[0m  \e[1;31m....\e[0m",
+      \ "00000098: \e[1;31m9899\e[0m \e[1;31m9a9b\e[0m  \e[1;31m....\e[0m",
+      \ "0000009c: \e[1;31m9c9d\e[0m \e[1;31m9e9f\e[0m  \e[1;31m....\e[0m",
+      \ "000000a0: \e[1;31ma0a1\e[0m \e[1;31ma2a3\e[0m  \e[1;31m....\e[0m",
+      \ "000000a4: \e[1;31ma4a5\e[0m \e[1;31ma6a7\e[0m  \e[1;31m....\e[0m",
+      \ "000000a8: \e[1;31ma8a9\e[0m \e[1;31maaab\e[0m  \e[1;31m....\e[0m",
+      \ "000000ac: \e[1;31macad\e[0m \e[1;31maeaf\e[0m  \e[1;31m....\e[0m",
+      \ "000000b0: \e[1;31mb0b1\e[0m \e[1;31mb2b3\e[0m  \e[1;31m....\e[0m",
+      \ "000000b4: \e[1;31mb4b5\e[0m \e[1;31mb6b7\e[0m  \e[1;31m....\e[0m",
+      \ "000000b8: \e[1;31mb8b9\e[0m \e[1;31mbabb\e[0m  \e[1;31m....\e[0m",
+      \ "000000bc: \e[1;31mbcbd\e[0m \e[1;31mbebf\e[0m  \e[1;31m....\e[0m",
+      \ "000000c0: \e[1;31mc0c1\e[0m \e[1;31mc2c3\e[0m  \e[1;31m....\e[0m",
+      \ "000000c4: \e[1;31mc4c5\e[0m \e[1;31mc6c7\e[0m  \e[1;31m....\e[0m",
+      \ "000000c8: \e[1;31mc8c9\e[0m \e[1;31mcacb\e[0m  \e[1;31m....\e[0m",
+      \ "000000cc: \e[1;31mcccd\e[0m \e[1;31mcecf\e[0m  \e[1;31m....\e[0m",
+      \ "000000d0: \e[1;31md0d1\e[0m \e[1;31md2d3\e[0m  \e[1;31m....\e[0m",
+      \ "000000d4: \e[1;31md4d5\e[0m \e[1;31md6d7\e[0m  \e[1;31m....\e[0m",
+      \ "000000d8: \e[1;31md8d9\e[0m \e[1;31mdadb\e[0m  \e[1;31m....\e[0m",
+      \ "000000dc: \e[1;31mdcdd\e[0m \e[1;31mdedf\e[0m  \e[1;31m....\e[0m",
+      \ "000000e0: \e[1;31me0e1\e[0m \e[1;31me2e3\e[0m  \e[1;31m....\e[0m",
+      \ "000000e4: \e[1;31me4e5\e[0m \e[1;31me6e7\e[0m  \e[1;31m....\e[0m",
+      \ "000000e8: \e[1;31me8e9\e[0m \e[1;31meaeb\e[0m  \e[1;31m....\e[0m",
+      \ "000000ec: \e[1;31meced\e[0m \e[1;31meeef\e[0m  \e[1;31m....\e[0m",
+      \ "000000f0: \e[1;31mf0f1\e[0m \e[1;31mf2f3\e[0m  \e[1;31m....\e[0m",
+      \ "000000f4: \e[1;31mf4f5\e[0m \e[1;31mf6f7\e[0m  \e[1;31m....\e[0m",
+      \ "000000f8: \e[1;31mf8f9\e[0m \e[1;31mfafb\e[0m  \e[1;31m....\e[0m",
+      \ "000000fc: \e[1;31mfcfd\e[0m \e[1;31mfe\e[0m\e[1;34mff\e[0m  \e[1;31m...\e[0m\e[1;34m.\e[0m"]
   call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
 
   call delete('Xinput')
diff --git a/src/version.c b/src/version.c
index 570a088..327e8c8 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1459,
+/**/
     1458,
 /**/
     1457,
diff --git a/src/xxd/xxd.c b/src/xxd/xxd.c
index 072ef63..3e7c54b 100644
--- a/src/xxd/xxd.c
+++ b/src/xxd/xxd.c
@@ -67,6 +67,7 @@
  * 19.10.2024  -e did add an extra space #15899
  * 11.11.2024  improve end-of-options argument parser #9285
  * 07.12.2024  fix overflow with xxd --autoskip and large sparse files #16175
+ * 15.06.2025  improve color code logic
  *
  * (c) 1990-1998 by Juergen Weigert (jnweiger@gmail.com)
  *
@@ -147,7 +148,7 @@
 # endif
 #endif
 
-char version[] = "xxd 2024-12-07 by Juergen Weigert et al.";
+char version[] = "xxd 2025-06-15 by Juergen Weigert et al.";
 #ifdef WIN32
 char osver[] = " (Win32)";
 #else
@@ -221,6 +222,18 @@
     + 12 * COLS    /* ASCII dump with colors */ \
     + 2)           /* "\n\0" */
 
+/*
+ * LLEN_NO_COLOR is the maximum length of a line excluding the colors.
+ */
+#define LLEN_NO_COLOR \
+    (39            /* addr: ⌈log10(ULONG_MAX)⌉ if "-d" flag given. We assume ULONG_MAX = 2**128 */ \
+    + 2            /* ": " */ \
+    + 2 * COLS    /* hex dump */ \
+    + (COLS - 1)   /* whitespace between groups if "-g1" option given and "-c" maxed out */ \
+    + 2            /* whitespace */ \
+    + COLS    /* ASCII dump */ \
+    + 2)           /* "\n\0" */
+
 char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa;
 
 /* the different hextypes known by this program: */
@@ -232,18 +245,20 @@
 
 #define CONDITIONAL_CAPITALIZE(c) (capitalize ? toupper((unsigned char)(c)) : (c))
 
-#define COLOR_PROLOGUE \
-l[c++] = '\033'; \
-l[c++] = '['; \
-l[c++] = '1'; \
-l[c++] = ';'; \
-l[c++] = '3';
+#define COLOR_PROLOGUE(color) \
+l_colored[c++] = '\033'; \
+l_colored[c++] = '['; \
+l_colored[c++] = '1'; \
+l_colored[c++] = ';'; \
+l_colored[c++] = '3'; \
+l_colored[c++] = (color); \
+l_colored[c++] = 'm';
 
 #define COLOR_EPILOGUE \
-l[c++] = '\033'; \
-l[c++] = '['; \
-l[c++] = '0'; \
-l[c++] = 'm';
+l_colored[c++] = '\033'; \
+l_colored[c++] = '['; \
+l_colored[c++] = '0'; \
+l_colored[c++] = 'm';
 #define COLOR_RED '1'
 #define COLOR_GREEN '2'
 #define COLOR_YELLOW '3'
@@ -515,8 +530,54 @@
   return 0;
 }
 
+
 /*
- * Print line l. If nz is false, xxdline regards the line as a line of
+ * Print line l with given colors.
+ */
+  static void
+print_colored_line(FILE *fp, char *l, char *colors)
+{
+  static char l_colored[LLEN+1];
+
+  if (colors)
+    {
+      int c = 0;
+      if (colors[0])
+	{
+	  COLOR_PROLOGUE(colors[0])
+	}
+      l_colored[c++] = l[0];
+      int i;
+      for (i = 1; l[i]; i++)
+	{
+	  if (colors[i] != colors[i-1])
+	    {
+	      if (colors[i-1])
+		{
+		  COLOR_EPILOGUE
+		}
+	      if (colors[i])
+		{
+		  COLOR_PROLOGUE(colors[i])
+		}
+	    }
+	  l_colored[c++] = l[i];
+	}
+
+      if (colors[i])
+	{
+	  COLOR_EPILOGUE
+	}
+      l_colored[c++] = '\0';
+
+      fputs_or_die(l_colored, fp);
+    }
+  else
+    fputs_or_die(l, fp);
+}
+
+/*
+ * Print line l with given colors. If nz is false, xxdline regards the line as a line of
  * zeroes. If there are three or more consecutive lines of zeroes,
  * they are replaced by a single '*' character.
  *
@@ -528,13 +589,17 @@
  * If nz is always positive, lines are never suppressed.
  */
   static void
-xxdline(FILE *fp, char *l, int nz)
+xxdline(FILE *fp, char *l, char *colors, int nz)
 {
-  static char z[LLEN+1];
+  static char z[LLEN_NO_COLOR+1];
+  static char z_colors[LLEN_NO_COLOR+1];
   static signed char zero_seen = 0;
 
   if (!nz && zero_seen == 1)
-    strcpy(z, l);
+    {
+      strcpy(z, l);
+      memcpy(z_colors, colors, strlen(z));
+    }
 
   if (nz || !zero_seen++)
     {
@@ -543,12 +608,13 @@
 	  if (nz < 0)
 	    zero_seen--;
 	  if (zero_seen == 2)
-	    fputs_or_die(z, fp);
+	    print_colored_line(fp, z, z_colors);
 	  if (zero_seen > 2)
 	    fputs_or_die("*\n", fp);
 	}
       if (nz >= 0 || zero_seen > 0)
-	fputs_or_die(l, fp);
+	print_colored_line(fp, l, colors);
+
       if (nz)
 	zero_seen = 0;
     }
@@ -589,8 +655,8 @@
     0070,0071,0372,0373,0374,0375,0376,0377
 };
 
-  static void
-begin_coloring_char (char *l, int *c, int e, int ebcdic)
+  static char
+get_color_char (int e, int ebcdic)
 {
   if (ebcdic)
     {
@@ -601,37 +667,37 @@
 	  (e >= 208 && e <= 217) || (e >= 226 && e <= 233) ||
 	  (e >= 240 && e <= 249) || (e == 189) || (e == 64) ||
 	  (e == 173) || (e == 224) )
-	l[(*c)++] = COLOR_GREEN;
+	return COLOR_GREEN;
 
       else if (e == 37 || e == 13 || e == 5)
-	l[(*c)++] = COLOR_YELLOW;
+	return COLOR_YELLOW;
       else if (e == 0)
-	l[(*c)++] = COLOR_WHITE;
+	return COLOR_WHITE;
       else if (e == 255)
-	l[(*c)++] = COLOR_BLUE;
+	return COLOR_BLUE;
       else
-	l[(*c)++] = COLOR_RED;
+	return COLOR_RED;
     }
   else  /* ASCII */
     {
       #if defined(__MVS__) && __CHARSET_LIB == 0
       if (e >= 64)
-	l[(*c)++] = COLOR_GREEN;
+	return COLOR_GREEN;
       #else
       if (e > 31 && e < 127)
-	l[(*c)++] = COLOR_GREEN;
+	return COLOR_GREEN;
       #endif
 
       else if (e == 9 || e == 10 || e == 13)
-	l[(*c)++] = COLOR_YELLOW;
+	return COLOR_YELLOW;
       else if (e == 0)
-	l[(*c)++] = COLOR_WHITE;
+	return COLOR_WHITE;
       else if (e == 255)
-	l[(*c)++] = COLOR_BLUE;
+	return COLOR_BLUE;
       else
-	l[(*c)++] = COLOR_RED;
+	return COLOR_RED;
     }
-  l[(*c)++] = 'm';
+    return 0;
 }
 
   static int
@@ -664,15 +730,17 @@
   int capitalize = 0, decimal_offset = 0;
   int ebcdic = 0;
   int octspergrp = -1;	/* number of octets grouped in output */
-  int grplen;		/* total chars per octet group */
+  int grplen;		/* total chars per octet group excluding colors */
   long length = -1, n = 0, seekoff = 0;
   unsigned long displayoff = 0;
-  static char l[LLEN+1];  /* static because it may be too big for stack */
+  static char l[LLEN_NO_COLOR+1];  /* static because it may be too big for stack */
+  static char colors[LLEN_NO_COLOR+1]; /* color array */
   char *pp;
   char *varname = NULL;
   int addrlen = 9;
   int color = 0;
   char *no_color;
+  char cur_color = 0;
 
   no_color = getenv("NO_COLOR");
   if (no_color == NULL || no_color[0] == '\0')
@@ -1064,8 +1132,6 @@
   if (hextype != HEX_BITS)
     {
       grplen = octspergrp + octspergrp + 1;	/* chars per octet group */
-      if (color)
-	grplen += 11 * octspergrp;  /* color-code needs 11 extra characters */
     }
   else	/* hextype == HEX_BITS */
     grplen = 8 * octspergrp + 1;
@@ -1076,7 +1142,7 @@
 	{
 	  addrlen = sprintf(l, decimal_offset ? "%08ld:" : "%08lx:",
 				  ((unsigned long)(n + seekoff + displayoff)));
-	  for (c = addrlen; c < LLEN; l[c++] = ' ')
+	  for (c = addrlen; c < LLEN_NO_COLOR; l[c++] = ' ')
 	    ;
 	}
       x = hextype == HEX_LITTLEENDIAN ? p ^ (octspergrp-1) : p;
@@ -1085,17 +1151,13 @@
 	{
 	  if (color)
 	    {
-	      COLOR_PROLOGUE
-	      begin_coloring_char(l,&c,e,ebcdic);
-	      l[c++] = hexx[(e >> 4) & 0xf];
-	      l[c++] = hexx[e & 0xf];
-	      COLOR_EPILOGUE
+	      cur_color = get_color_char(e, ebcdic);
+	      colors[c] = cur_color;
+	      colors[c+1] = cur_color;
 	    }
-	  else /*No colors*/
-	    {
-	      l[c]   = hexx[(e >> 4) & 0xf];
-	      l[++c] = hexx[e & 0xf];
-	    }
+
+	  l[c]   = hexx[(e >> 4) & 0xf];
+	  l[++c] = hexx[e & 0xf];
 	}
       else /* hextype == HEX_BITS */
 	{
@@ -1104,60 +1166,43 @@
 	}
       if (e)
 	nonzero++;
-      /* When changing this update definition of LLEN above. */
+      /* When changing this update definition of LLEN and LLEN_NO_COLOR above. */
       if (hextype == HEX_LITTLEENDIAN)
 	/* last group will be fully used, round up */
 	c = grplen * ((cols + octspergrp - 1) / octspergrp);
       else
 	c = (grplen * cols - 1) / octspergrp;
 
+
+      if (ebcdic)
+	e = (e < 64) ? '.' : etoa64[e-64];
+
+      if (hextype == HEX_LITTLEENDIAN)
+	c -= 1;
+
+      c += addrlen + 3 + p;
       if (color)
 	{
-	  if (hextype == HEX_BITS)
-	    c += addrlen + 3 + p*12;
-	  else
-	    c = addrlen + 3 + (grplen * cols - 1)/octspergrp + p*12;
-
-	  COLOR_PROLOGUE
-	  begin_coloring_char(l,&c,e,ebcdic);
-#if defined(__MVS__) && __CHARSET_LIB == 0
-	  if (e >= 64)
-	    l[c++] = e;
-	  else
-	    l[c++] = '.';
-#else
-	  if (ebcdic)
-	    e = (e < 64) ? '.' : etoa64[e-64];
-	  l[c++] = (e > 31 && e < 127) ? e : '.';
-#endif
-	  COLOR_EPILOGUE
+	  colors[c] = cur_color;
 	}
-      else /*no colors*/
+      l[c++] =
+#if defined(__MVS__) && __CHARSET_LIB == 0
+	  (e >= 64)
+#else
+	  (e > 31 && e < 127)
+#endif
+	  ? e : '.';
+      n++;
+      if (++p == cols)
 	{
-	  if (ebcdic)
-	    e = (e < 64) ? '.' : etoa64[e-64];
+	  l[c++] = '\n';
+	  l[c] = '\0';
 
-	  if (hextype == HEX_LITTLEENDIAN)
-	    c -= 1;
-
-	  c += addrlen + 3 + p;
-	  l[c++] =
-#if defined(__MVS__) && __CHARSET_LIB == 0
-	      (e >= 64)
-#else
-	      (e > 31 && e < 127)
-#endif
-	      ? e : '.';
+	  xxdline(fpo, l, color ? colors : NULL, autoskip ? nonzero : 1);
+	  memset(colors, 0, c);
+	  nonzero = 0;
+	  p = 0;
 	}
-	n++;
-	if (++p == cols)
-	  {
-	    l[c++] = '\n';
-	    l[c] = '\0';
-	    xxdline(fpo, l, autoskip ? nonzero : 1);
-	    nonzero = 0;
-	    p = 0;
-	  }
     }
   if (p)
     {
@@ -1175,11 +1220,8 @@
 
 	      for (i = 0; i < fill;i++)
 		{
-		  COLOR_PROLOGUE
-		  l[c++] = COLOR_RED;
-		  l[c++] = 'm';
+		  colors[c] = COLOR_RED;
 		  l[c++] = ' '; /* empty space */
-		  COLOR_EPILOGUE
 		  x++;
 		  p++;
 		}
@@ -1193,18 +1235,17 @@
 
 	      for (i = cols - p; i > 0;i--)
 		{
-		  COLOR_PROLOGUE
-		  l[c++] = COLOR_RED;
-		  l[c++] = 'm';
+		  colors[c] = COLOR_RED;
 		  l[c++] = ' '; /* empty space */
-		  COLOR_EPILOGUE
 		}
 	    }
+	  xxdline(fpo, l, colors, 1);
 	}
-      xxdline(fpo, l, 1);
+      else
+	xxdline(fpo, l, NULL, 1);
     }
   else if (autoskip)
-    xxdline(fpo, l, -1);	/* last chance to flush out suppressed lines */
+    xxdline(fpo, l, color ? colors : NULL, -1);	/* last chance to flush out suppressed lines */
 
   fclose_or_die(fp, fpo);
   return 0;
