From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from kerhand.co.uk (_smtpd@82-69-137-214.dsl.in-addr.zen.co.uk [82.69.137.214]) by krisdoz.my.domain (8.14.3/8.14.3) with ESMTP id o8M79KTS013044 for ; Wed, 22 Sep 2010 03:09:24 -0400 (EDT) Received: from localhost (1000@localhost [IPv6:::1]) by kerhand.co.uk (OpenSMTPD) with ESMTP id f7XiTZSv for ; Wed, 22 Sep 2010 08:08:54 +0100 (BST) Date: Wed, 22 Sep 2010 08:08:54 +0059 From: Jason McIntyre To: discuss@mdocml.bsd.lv Subject: Re: more spacing badness Message-ID: <20100922070918.GB22622@bramka.kerhand.co.uk> References: <20100910211434.GA17432@bramka.kerhand.co.uk> <4C90EC16.8010002@bsd.lv> <20100921230513.GC9516@iris.usta.de> X-Mailinglist: mdocml-discuss Reply-To: discuss@mdocml.bsd.lv Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100921230513.GC9516@iris.usta.de> User-Agent: Mutt/1.4.2.3i On Wed, Sep 22, 2010 at 01:05:13AM +0200, Ingo Schwarze wrote: > > > My last commit fixes this in a general way. The problem was "\ \&" > > being read as the string length. Now string length calculations (for > > -Tascii, -Tpdf, and -Tps) all take into account escapes. This lifts a > > long-standing feature request in the TODO. > > WOW, great. > I wouldn't have thought that could be done with so little code. > > Admittedly, it's a bit of code duplication, but by far less annoying > than i would have expected. And it's very nice to have from a > user perspective. Thanks! > not only that, but somewhere along the way the SYNOPSIS for test(1) got fixed! now we have: [ test ] instead of [ test ] not only that, but the -column alignments in sysctl(3) got fixed somewhere along the way too. super! > > Of course, i was eager to see whether Jason's "vi\ \&" would now work. > Guess what - it didn't. I first had to fix *two* bugs in my own code. > > First, my favourite function term_flushline() handled trailing white > space correctly, but not trailing escaped blank characters. In the > initial parsing loop, escaped whitespace is counted as normal > characters, then in the final output loop, it gets converted to > normal blanks, and finally, normal blanks (which break out of the > initial parsing loop) are counted again, so trailing escaped blanks > ended up being counted twice against the column width. > > Having fixed that one, Jason's "vi\ \&" still wouldn't work. > The reason was a quirk implemented for mdoc's .Bl -hang lists. > In such lists, when the head is wider than the declared head > width, the body gets pushed ahead to make room for the head; > when the head is shorter, the body gets aligned at the declared > position. The quirk being that when the head is exactly one > character shorter than the declared width, the body gets pulled > back one character - for whatever reason. That quirk got triggered > and defeated Jason's nicely escaped blank. > > So, the second fix is to remove the -hang flag from the SYNOPSIS > .Nm block handling. I don't remember why i put that flag there > in the first place, it is clearly not needed. The width is > calculated such that the header will always fit, so pushing ahead > is never needed, and we certainly do not want to pull back. > > OK? > with this my vi hack does work correctly. thanks. jmc -- To unsubscribe send an email to discuss+unsubscribe@mdocml.bsd.lv