Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Mar 1997 22:13:10 -0700 (MST)
From:      chad@anasazi.com (Chad R. Larson)
To:        jmz@FreeBSD.org
Cc:        freebsd-stable@FreeBSD.org
Subject:   a2ps port fixes
Message-ID:  <9703050513.AA29197@chad.anasazi.com>

next in thread | raw e-mail | index | archive | help
The reason a2ps does not correctly interpret "bold" in a man page (with
the "-m" option) is that the FreeBSD supplied nroff only overstrikes
bold text once.  Apparently the author(s) of a2ps are on a machine that
overstikes twice.

This meant the test for strings with embedded back-space characters was
failing.  When I fixed that, it broke underlining.  I hate it when that
happens.

Anyway, attached are context diffs for the consolidated fixes.  Works
for FreeBSD, but now might be broken for other implementations of nroff.
Perhaps someone would like to get back to the original authors and
suggest style of overstrike strings being tested for be made some
"#define" option.

	-crl
--
Chad R. Larson (CRL22)                          Brother, can you paradigm?
602-870-3330    chad@anasazi.com     chad@anasaz.UUCP      chad@dcfinc.com 
Anasazi, Inc. - 7500 North Dreamy Draw Drive, Suite 120, Phoenix, Az 85020
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
*** a2ps.c.orig	1997/03/05 03:26:54	1.2
--- a2ps.c	1997/03/05 04:57:25
***************
*** 732,739 ****
  /*
   * This routine buffers a line of input, release one character at a time
   * or a whole sequence of characters with some meaning like bold sequences
!  * produced by nroff (no others sequences are recognized by the moment):
!  *        <c><\b><c><\b><c><\b><c>
   */
  int
  mygetc(statusp)
--- 732,740 ----
  /*
   * This routine buffers a line of input, release one character at a time
   * or a whole sequence of characters with some meaning like bold sequences
!  * or underlining produced by nroff.
!  *        <c><\b><c>
!  *        <_><\b><c>
   */
  int
  mygetc(statusp)
***************
*** 761,780 ****
      if (buffer[curr+1] != '\b')		/* this is not a special sequence */
  	return  buffer[curr++];
  
      /* Check if it is a bold sequence */
!     c = buffer[curr++];
!     if (c		== buffer[curr+1] &&
! 	buffer[curr]	== buffer[curr+2] &&
! 	c		== buffer[curr+3] &&
! 	buffer[curr]	== buffer[curr+4] &&
! 	c		== buffer[curr+5])
      {
  	*statusp = IS_BOLD;
! 	curr += 6;
      }
! 
!     /* Return the first character of the sequence */
!     return  c;
  }
  
  /*
--- 762,778 ----
      if (buffer[curr+1] != '\b')		/* this is not a special sequence */
  	return  buffer[curr++];
  
+     /* check if we're underlining */
+     if (buffer[curr] == '_')
+ 	return  buffer[curr++];
+ 
      /* Check if it is a bold sequence */
!     if ((c = buffer[curr]) == buffer[curr+2])
      {
  	*statusp = IS_BOLD;
! 	curr += 3;
      }
!     return  c;		/* Return the first character of the sequence */
  }
  
  /*
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9703050513.AA29197>