bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #61089] [troff] assertion failed: 'desired_space.is_zero() && nspac


From: G. Branden Robinson
Subject: [bug #61089] [troff] assertion failed: 'desired_space.is_zero() && nspaces == 0'
Date: Fri, 3 Sep 2021 08:50:59 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Update of bug #61089 (project groff):

                  Status:               Confirmed => Need Info              

    _______________________________________________________

Follow-up Comment #11:

[comment #9 comment #9:]
> > John, is this enough information for you to put together a (much) smaller
reproducer? 
> 
> Aye, I narrowed it down to the following test-case:
> 
> 
> 01 .de _
> 02 .  na
> 03 .  nh
> 04 .  ll 0
> 05 .  di A
> 06 \&\\$1
> 07 .  di
> 08 .  br
> 09 ..
> 10 ._ " XYZ"
> 
> 
> Removing \& from line 6 causes the error to disappear, as does passing "XYZ"
without a leading space; i.e.,
> 
> ._ "XYZ"
> 
> but not
> 
> ._ " XYZ"
> 
> 

Thanks, John.

I find myself troubled by a more fundamental issue.

What do you expect the semantics of an output line length of zero to be?  CSTR
#54 does not seem to address this issue, and Heirloom Doctools troff appears
to clamp the line length to the minimum horizontal device resolution (which
seems reasonable) (see below).

Not saying there's no bug here, but maybe if we did as Heirloom does (and
presumably Version 7 Unix troff did--I can check), this assertion would never
trip.


$ cat ll.roff 
.tm horizontal resolution .H is \n(.Hu
.nr ll 49u
.de m1
.       ll \\n(llu
.       tm ll: \\n(llu; .l: \\n(.lu
.       nr ll -1
.       if \\n(llu>=0 .m1
..
.m1
$ ./bin/nroff ./ll.roff 
horizontal resolution .H is 24u
ll: 49u; .l: 48u
ll: 48u; .l: 48u
ll: 47u; .l: 48u
ll: 46u; .l: 48u
ll: 45u; .l: 48u
ll: 44u; .l: 48u
ll: 43u; .l: 48u
ll: 42u; .l: 48u
ll: 41u; .l: 48u
ll: 40u; .l: 48u
ll: 39u; .l: 48u
ll: 38u; .l: 48u
ll: 37u; .l: 48u
ll: 36u; .l: 24u
ll: 35u; .l: 24u
ll: 34u; .l: 24u
ll: 33u; .l: 24u
ll: 32u; .l: 24u
ll: 31u; .l: 24u
ll: 30u; .l: 24u
ll: 29u; .l: 24u
ll: 28u; .l: 24u
ll: 27u; .l: 24u
ll: 26u; .l: 24u
ll: 25u; .l: 24u
ll: 24u; .l: 24u
ll: 23u; .l: 24u
ll: 22u; .l: 24u
ll: 21u; .l: 24u
ll: 20u; .l: 24u
ll: 19u; .l: 24u
ll: 18u; .l: 24u
ll: 17u; .l: 24u
ll: 16u; .l: 24u
ll: 15u; .l: 24u
ll: 14u; .l: 24u
ll: 13u; .l: 24u
ll: 12u; .l: 24u
ll: 11u; .l: 24u
ll: 10u; .l: 24u
ll: 9u; .l: 24u
ll: 8u; .l: 24u
ll: 7u; .l: 24u
ll: 6u; .l: 24u
ll: 5u; .l: 24u
ll: 4u; .l: 24u
ll: 3u; .l: 24u
ll: 2u; .l: 24u
ll: 1u; .l: 24u
ll: 0u; .l: 24u


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?61089>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]