view runtime/doc/maketags.awk @ 34548:db67c09ccd53 v9.1.0175

patch 9.1.0175: wrong window positions with 'winfix{width,height}' Commit: https://github.com/vim/vim/commit/5866bc3a0f54115d5982fdc09bdbe4c45069265a Author: Sean Dewar <6256228+seandewar@users.noreply.github.com> Date: Wed Mar 13 20:17:24 2024 +0100 patch 9.1.0175: wrong window positions with 'winfix{width,height}' Problem: winframe functions incorrectly recompute window positions if the altframe wasn't adjacent to the closed frame, which is possible if adjacent windows had 'winfix{width,height}' set. Solution: recompute for windows within the parent of the altframe and closed frame. Skip this (as before) if the altframe was top/left, but only if adjacent to the closed frame, as positions won't change in that case. Also correct the return value documentation for win_screenpos. (Sean Dewar) The issue revealed itself after removing the win_comp_pos call below winframe_restore in win_splitmove. Similarly, wrong positions could result from windows closed in other tabpages, as win_free_mem uses winframe_remove (at least until it is entered later, where enter_tabpage calls win_comp_pos). NOTE: As win_comp_pos handles only curtab, it's possible via other means for positions in non-current tabpages to be wrong (e.g: after changing 'laststatus', 'showtabline', etc.). Given enter_tabpage recomputes it, maybe it's intentional as an optimization? Should probably be documented in win_screenpos then, but I won't address that here. closes: #14191 Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Wed, 13 Mar 2024 20:30:03 +0100
parents aa539262b6a7
children
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,"	");
	if (counttag[tag[1]] > 0)
	{
		print "==============" > "errors.log"
		print "Duplicate Tag " tag[1] > "errors.log"
		print "==============" > "errors.log"
	}
	counttag[tag[1]]++
	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");
}