view runtime/doc/maketags.awk @ 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 3fc0f57ecb91
children aa539262b6a7
line wrap: on
line source

BEGIN   { FS="	"; }

NR == 1 { nf=split(FILENAME,f,".")
	print "<HTML>";
	print "<HEAD><TITLE>" f[1] "</TITLE></HEAD>";
	print "<BODY BGCOLOR=\"#ffffff\">";
	print "<H1>Vim Documentation: " f[1] "</H1>";
	print "<A NAME=\"top\"></A>";
	print "<HR>";
	print "<PRE>";
}

{
	#
	# protect special chars
	#
	gsub(/&/,"\\&amp;");
	gsub(/>/,"\\&gt;");
	gsub(/</,"\\&lt;");
	gsub(/"/,"\\&quot;");
	gsub(/%/,"\\&#37;");

	nf=split($0,tag,"	");
	tagkey[t]=tag[1];tagref[t]=tag[2];tagnum[t]=NR;
	print $1 "	" $2 "	line " NR >"tags.ref"
	n=split($2,w,".");
	printf ("|<A HREF=\"%s.html#%s\">%s</A>|	%s\n",w[1],$1,$1,$2);
}

END     {
	topback();
	print "</PRE>\n</BODY>\n\n\n</HTML>";
	}

#
# as main we keep index.txt (by default)
# other candidate, help.txt
#
function topback () {
	printf("<A HREF=\"#top\">top</A> - ");
	printf("<A HREF=\"help.html\">back to help</A>\n");
}