[comp.bugs.4bsd] ex

lyndon@cs.athabascau.ca (Lyndon Nerenberg) (12/18/90)

Index: /usr/src/ucb/ex/ex_tty.[ch] 4.3BSD tahoe

Description:

	The variable HZ conflicts with a system define in SunOS 4.1
	(and probably some others).

Repeat By:

	Compile ex under SunOS 4.1

Fix:

RCS file: ex_put.c,v
retrieving revision 1.1
diff -c -r1.1 ex_put.c
*** /tmp/,RCSt1a27377	Mon Dec 17 15:19:24 1990
--- ex_put.c	Mon Dec 17 15:18:40 1990
***************
*** 100,106 ****
  	register char *colp;
  
  	c &= (TRIM|QUOTE);
! 	if (c == '~' && HZ) {
  		normchar('\\');
  		c = '^';
  	}
--- 100,106 ----
  	register char *colp;
  
  	c &= (TRIM|QUOTE);
! 	if (c == '~' && HZ_BRAINDEAD) {
  		normchar('\\');
  		c = '^';
  	}
===================================================================
RCS file: ex_tty.c,v
retrieving revision 1.1
diff -c -r1.1 ex_tty.c
*** /tmp/,RCSt1a27377	Mon Dec 17 15:19:25 1990
--- ex_tty.c	Mon Dec 17 14:55:29 1990
***************
*** 53,60 ****
  	&AL_PARM, &DL_PARM, &UP_PARM, &DOWN_PARM, &LEFT_PARM, &RIGHT_PARM
  };
  bool *sflags[] = {
! 	&AM, &BS, &DA, &DB, &EO, &HC, &HZ, &IN, &MI, &NC, &NS, &OS, &UL,
! 	&XB, &XN, &XT, &XX
  };
  char **fkeys[10] = {
  	&F0, &F1, &F2, &F3, &F4, &F5, &F6, &F7, &F8, &F9
--- 53,60 ----
  	&AL_PARM, &DL_PARM, &UP_PARM, &DOWN_PARM, &LEFT_PARM, &RIGHT_PARM
  };
  bool *sflags[] = {
! 	&AM, &BS, &DA, &DB, &EO, &HC, &HZ_BRAINDEAD, &IN, &MI, &NC, &NS, &OS,
! 	&UL, &XB, &XN, &XT, &XX
  };
  char **fkeys[10] = {
  	&F0, &F1, &F2, &F3, &F4, &F5, &F6, &F7, &F8, &F9
===================================================================
RCS file: ex_tty.h,v
retrieving revision 1.1
diff -c -r1.1 ex_tty.h
*** /tmp/,RCSt1a27377	Mon Dec 17 15:19:26 1990
--- ex_tty.h	Mon Dec 17 14:04:59 1990
***************
*** 94,100 ****
  var	bool	EO;		/* Can erase overstrikes with ' ' */
  var	bool	GT;		/* Gtty indicates tabs */
  var	bool	HC;		/* Hard copy terminal */
! var	bool	HZ;		/* Hazeltine ~ braindamage */
  var	bool	IN;		/* Insert-null blessing */
  var	bool	MI;		/* can move in insert mode */
  var	bool	NC;		/* No Cr - \r snds \r\n then eats \n (dm2500) */
--- 94,100 ----
  var	bool	EO;		/* Can erase overstrikes with ' ' */
  var	bool	GT;		/* Gtty indicates tabs */
  var	bool	HC;		/* Hard copy terminal */
! var	bool	HZ_BRAINDEAD;	/* Hazeltine ~ braindamage */
  var	bool	IN;		/* Insert-null blessing */
  var	bool	MI;		/* can move in insert mode */
  var	bool	NC;		/* No Cr - \r snds \r\n then eats \n (dm2500) */
===================================================================
RCS file: ex_vput.c,v
retrieving revision 1.1
diff -c -r1.1 ex_vput.c
*** /tmp/,RCSt1a27377	Mon Dec 17 15:19:26 1990
--- ex_vput.c	Mon Dec 17 15:18:39 1990
***************
*** 58,64 ****
  
  	vigoto(l, 0);
  	if ((hold & HOLDAT) == 0)
! 		ex_putchar(tp > dol ? ((UPPERCASE || HZ) ? '^' : '~') : '@');
  	if (state == HARDOPEN)
  		sethard();
  	vclreol();
--- 58,64 ----
  
  	vigoto(l, 0);
  	if ((hold & HOLDAT) == 0)
! 		ex_putchar(tp > dol ? ((UPPERCASE || HZ_BRAINDEAD) ? '^' : '~') : '@');
  	if (state == HARDOPEN)
  		sethard();
  	vclreol();

-- 
    Lyndon Nerenberg  VE6BBM / Computing Services / Athabasca University
        {alberta,cbmvax,mips}!atha!lyndon || lyndon@cs.athabascau.ca
                    Packet: ve6bbm@ve6mc [.ab.can.na]
      The only thing open about OSF is their mouth.  --Chuck Musciano

rbj@uunet.UU.NET (Root Boy Jim) (12/20/90)

In article <517@aupair.cs.athabascau.ca> lyndon@cs.athabascau.ca (Lyndon Nerenberg) writes:
>Index: /usr/src/ucb/ex/ex_tty.[ch] 4.3BSD tahoe
>
>Description:
>
>	The variable HZ conflicts with a system define in SunOS 4.1
>	(and probably some others).
>
>Repeat By:
>
>	Compile ex under SunOS 4.1

I agree so far. However, vi doesn't care how fast the clock runs.

>Fix:

Try this instead:

*** WARNING: This diff isn't real, I just edited yours.

diff -c -r1.1 ex_tty.h
*** /tmp/,RCSt1a27377	Mon Dec 17 15:19:26 1990
--- ex_tty.h	Mon Dec 17 14:04:59 1990
***************
*** 94,100 ****
  var	bool	EO;		/* Can erase overstrikes with ' ' */
  var	bool	GT;		/* Gtty indicates tabs */
  var	bool	HC;		/* Hard copy terminal */
  var	bool	HZ;		/* Hazeltine ~ braindamage */
  var	bool	IN;		/* Insert-null blessing */
  var	bool	MI;		/* can move in insert mode */
  var	bool	NC;		/* No Cr - \r snds \r\n then eats \n (dm2500) */
--- 94,101 ----
  var	bool	EO;		/* Can erase overstrikes with ' ' */
  var	bool	GT;		/* Gtty indicates tabs */
  var	bool	HC;		/* Hard copy terminal */
+ #undef HZ
  var	bool	HZ;		/* Hazeltine ~ braindamage */
  var	bool	IN;		/* Insert-null blessing */
  var	bool	MI;		/* can move in insert mode */
  var	bool	NC;		/* No Cr - \r snds \r\n then eats \n (dm2500) */
-- 

	Root Boy Jim Cottrell <rbj@uunet.uu.net>
	Close the gap of the dark year in between

lyndon@cs.athabascau.ca (Lyndon Nerenberg) (12/21/90)

rbj@uunet.UU.NET (Root Boy Jim) writes:

>*** WARNING: This diff isn't real, I just edited yours.

A matter of opinion, I guess. I prefer not to assume that nothing else
requires the original HZ define. In this case, it will work either way ...

-- 
    Lyndon Nerenberg  VE6BBM / Computing Services / Athabasca University
        {alberta,cbmvax,mips}!atha!lyndon || lyndon@cs.athabascau.ca
                    Packet: ve6bbm@ve6mc [.ab.can.na]
      The only thing open about OSF is their mouth.  --Chuck Musciano

guy@auspex.auspex.com (Guy Harris) (01/04/91)

>	The variable HZ conflicts with a system define in SunOS 4.1
>	(and probably some others).

Probably *many* others, as in "every one that's SVID Issue 2 compliant",
and some that aren't (as in most S5 implementations - given that you're
building this under SunOS 4.1, which has an S5R3.1-based "ex"/"vi", the
reasons why you did so may apply to other systems with S5-flavored
"ex"/"vi" as well).

(SVID Third Edition says you get the units returned by stuff such as the
return value from "times()" by calling "sysconf()", because that's what
POSIX says.)