From: gnb@bby.COM.AU (Gregory N. Bond)
Subject: ms: .B1 macro loses knowledge about current fill state.
Organization: Burdett, Buckeridge & Young, Melbourne, Australia
Distribution: gnu
Date: Wed, 2 Sep 1992 03:16:40 GMT

			   Groff Bug Report

GROFF VERSION:
1.05

MACHINE:
Solbourne 5/601 (moral equivalent to a Sun 4/360)

OS:
OS/MP 4.1A.1, equivalent to SunOs 4.1.1

COMPILER:
gcc 2.2.2

INPUT FILES: 
(see attached shar file)

COMMAND LINE:
groff -TX100 -ms t3.ms
(same problem for -Tps etc)

DESCRIPTION OF INCORRECT BEHAVIOUR:
The .B1 (begin boxed text) macro resets the adjust/fill status to ON.
The system macros retain the fill status across a .B1 call.  This
causes things that ought to be unfilled and unadjusted to get filled
and adjusted.

This doesn't happen in the system troff, nor when using the system ms
macros (i.e.
	groff -M /usr/lib/tmac/ -TX100 -ms t3.ms
works as expected.)

Moving the .nf and .na requests after the .B1 request in the attached
file makes it work as expected.

(It is debatable whether this is a bug or an implementation quirk;
I'm not aware of any definite statement in the ms man page on this
point.  It is however different to the standard Berkeley behaviour and
broke at least one print job.)

This was discovered in the man.ms file from Tom Christiansen's perl
man package.

SUGGESTED FIX [optional]:
(none)

----- cut here
#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of shell archive."
# Contents:  t3.ms
# Wrapped by gnb@leo on Wed Sep  2 13:08:26 1992
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 't3.ms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'t3.ms'\"
else
echo shar: Extracting \"'t3.ms'\" \(876 characters\)
sed "s/^X//" >'t3.ms' <<'END_OF_FILE'
X.\" Change to fixed width font of your choice. Can't call it CW as that 
X.\" breaks .B
X.de Cw
X.ft CW
X..
X.\" Change back to roman font
X.de CE
X.ft R
X..
X.\" Here begins a mostly successful attempt at
X.\" defining a macro to output a boxed, centered
X.\" figure that includes an auto-increment figure #N
X.\" line using -ms macros.
X.\" It doesn't actually do the centering. sigh.
X.nr FN 0 1
X.de BF  \" begin figure
X.ds FN \\$1
X.KF
X.nf
X.na
X.sp
X.B1
X.Cw
X..
X.\" --------------------------------------------------------
X.de EF \" end figure
X.sp .5v
X.B2
X.CE
X.ce
X\\fBFigure \\n+(FN \\(em \\*(FN\\fR
X.sp
X.fi
X.ad
X.KE
X..
X.\" ---------------------------------------------------------
X.\" Start a boxed figure
X.\" 
X.PP
XHi.  Here is a figure.
X.BF
XThis is boxed text.
XIt should not be filled.
XIt is under groff 1.05 ms macros.
X.EF
XIt does work
Xunder old troff, or gtroff using the system macros.
END_OF_FILE
if test 876 -ne `wc -c <'t3.ms'`; then
    echo shar: \"'t3.ms'\" unpacked with wrong size!
fi
# end of 't3.ms'
fi
echo shar: End of shell archive.
exit 0

--
Gregory Bond <gnb@bby.com.au> Burdett Buckeridge & Young Ltd Melbourne Australia
``USL has never sold long distance.  You're going after the wrong men in black 
  hats.  (Or, in the case of Plan 9, black space suits)'' - Tom Limoncelli


Newsgroups: gnu.ghostscript.bug