[net.sources] 4.2 BUGLIST, Part 1 of 10

vance@mtxinu.UUCP (Vance Vaughan) (11/06/84)

4.2 BUGLIST ABSTRACTS from MT XINU, part 1 of 10:

	The following is part of the 4.2 buglist abstracts as processed by
	Mt Xinu.  The initial line of each abstract gives the offending
	program or source file and source directory (separated by --),
	who submitted the bug, when, and whether or not it contained
	a proposed fix.  Due to license restrictions, no source is
	included in these abstracts.

	Important general information and disclaimers about this and
	other lists is appended at the end of the list...

adb/runpcs.c--bin	  rws@mit-bold (Robert W. Scheifler)   18 Nov 83   +FIX
	When using adb,
		:r foo bar foobar bletch
	ends up passing "foo ar oobar letch" as arguments.

    REPEAT BY:
	adb /bin/echo
	:r foo bar bletch
_______________________________________________________________________________
ar.c--bin			   salkind@nyu (Lou Salkind)   10 Feb 84   +FIX
	If you try to archive a file with a uid or gid greater than
	32K, ar will fail when you try to read the archive back in.
	You will get the message "Malformed archive."

    REPEAT BY:
	mkdir f
	chgrp 50000 f
	cd f
	cp /etc/passwd f
	ar r f.a passwd
	ar t f.a

    FIX:
		When the file header is written out, cast the uid and gid to an
		unsigned short.  "diff ar.c.dist ar.c" follows:
	510,511c510,511
	< 	   stbuf.st_uid,
	< 	   stbuf.st_gid,
	---
	> 	   (u_short)stbuf.st_uid,
	> 	   (u_short)stbuf.st_gid,
_______________________________________________________________________________
arff.c--etc			   salkind@nyu (Lou Salkind)   17 Nov 83   +FIX
	"arff x" will only extract files in the first segment of a multiply
	segmented RT-11 filesystem.  (All the other commands seem to work
	properly, though.)

    REPEAT BY:
	Try "arff x" on a floppy with more than one directory
	segment (such as our VMS boot floppy).  Watch it break.
_______________________________________________________________________________
as--bin				  Bob Brown <rlb@RIACS.ARPA>   31 May 84   +FIX
	The .fill pseudo-op fills in the requested amount of data but
	does not increment the location assignment counter on pass two,
	causing the locations (r_address) in the relocation_info table
	to be wrong.

    REPEAT BY:
	Assemble a program that contains a relocatable symbol after a
	.fill statement - the loader will relocate the wrong word:
	
		.globl	foobar
		.data	0
	here:	.fill	8,4,0
	addr:	.long	foobar
	
	This will result in the first longword at symbol "here" to be
	relocated by the amount that should have been added to the
	longword at symbol "addr" and the longword at "addr" will not be
	relocated at all.
_______________________________________________________________________________
as--bin				 Steve Draper <draper@nprdc>   25 Mar 84  
	If I have a buggy program which redefines a variable (see attached short demo)
	the message comes from the assembler, referring to a line number in a file
	that is deleted by cc, and NOT giving the name of the symbol in question.
	This happens, with different wording, on both vax 4.2, and Sun 1.0.
	The compiler should surely catch this and give a more intelligible message.
	As it is, the user has to understand that "as:" means assembler, know how to
	generate a .s file, rerun cc to do that, and then edit the .s file to turn the
	line number into the symbol name.  Clearly not a step toward a high-level
	programming language environment.

    REPEAT BY:
	---------------------------------------
	#include <stdio.h>
	
	char *help = "hallo";
	char *help;
	
	main(argc, argv)
		unsigned int argc;  char *argv[];
	  {
		return(0);
	  }
_______________________________________________________________________________
as--bin				Hans Boehm <boehm@rice.ARPA>   8 Sep 84   
	The use of multiple text segments appears to prevent jeql and similar
	instructions from being expanded correctly all the time.  It
	generates "Branch too far" messages with all conceivable assembler
	options, even when the branch and destination are clearly less than
	1K apart (and in the same segment).	

    REPEAT BY:
	The assembly program which is known to exhibit this behaviour is
	approximately 1400 lines long, and available on request.
_______________________________________________________________________________
as.c--bin			   cbosgd!mark (Mark Horton)   6 Jun 83   
	When the enclosed program is compiled with -g, e.g.
		cc -c -g y.c
	I get the message from as:
		/tmp/ctm000000: line 00 CM expected
	(The numbers in the error message are actually correct.)
	The line in question contains a symbol table entry for
	the structure - one very long line.

    REPEAT BY:
		cc -c -g y.c
		where y.c is:
	/*
	 * This program, when compiled with -g, produces a syntax error
	 * message from the 4.1c assembler.  It apparently has too many fields
	 * for something in the fancy symbol table line it outputs, or
	 * else an fgets is done with too small a buffer.  This program
	 * (and a similar one with 3 times as many fields) compiled fine
	 * with and without -g on 4.1BSD.
	 */
	typedef char *charptr;
	
	struct strs {
	    charptr
		Back_tab,		
		Bell,			
		Carriage_return,	
		Change_scroll_region,	
		Clear_all_tabs,		
		Clear_screen,		
		Clr_eol,		
		Clr_eos,		
		Column_address,		
		Command_character,	
		Cursor_address,		
		Cursor_down,		
		Cursor_home,		
		Cursor_invisible,	
		Cursor_left,		
		Cursor_mem_address,	
		Cursor_normal,		
		Cursor_right,		
		Cursor_to_ll,		
		Cursor_up,		
		Cursor_visible,		
		Delete_character,	
		Delete_line,		
		Dis_status_line,	
		Down_half_line,		
		Enter_alt_charset_mode,	
		Enter_blink_mode,	
		Enter_bold_mode,	
		Enter_ca_mode,		
		Enter_delete_mode,	
		Enter_dim_mode,		
		Enter_insert_mode,	
		Enter_secure_mode,	
		Enter_protected_mode,	
		Enter_reverse_mode,	
		Enter_standout_mode,	
		Enter_underline_mode,	
		Erase_chars,		
		Exit_alt_charset_mode,	
		Exit_attribute_mode,	
		Exit_ca_mode,		
		Exit_delete_mode,	
		Exit_insert_mode,	
		Exit_standout_mode,	
		Exit_underline_mode,	
		Flash_screen,		
		Form_feed,		
		From_status_line,	
		Init_1string,		
		Init_2string,		
		Init_3string,		
		Init_file,		
		Insert_character,	
		Insert_line,		
		Insert_padding,		
		Key_backspace,		
		Key_catab,		
		Key_clear,		
		Key_ctab,		
		Key_dc,			
		Key_dl,			
		Key_down,		
		Key_eic,		
		Key_eol,		
		Key_eos,		
		Key_f0,			
		Key_f1,			
		Key_f10,		
		Key_f2,			
		Key_f3,			
		Key_f4,			
		Key_f5,			
		Key_f6,			
		Key_f7,			
		Key_f8,			
		Key_f9,			
		Key_home,		
		Key_ic,			
		Key_il,			
		Key_left,		
		Key_ll,			
		Key_npage,		
		Key_ppage,		
		Key_right,		
		Key_sf,			
		Key_sr,			
		Key_stab,		
		Key_up,			
		Keypad_local,		
		Keypad_xmit,		
		Lab_f0,			
		Lab_f1,			
		Lab_f10,		
		Lab_f2,			
		Lab_f3,			
		Lab_f4,			
		Lab_f5,			
		Lab_f6,			
		Lab_f7,			
		Lab_f8;			
	};
	
	main()
	{
	}
	
_______________________________________________________________________________
atrun.c--usr.lib	   hpda!hpdsd!hpdsa!mojo (Joe Moran)   14 Feb 84   +FIX
	When atrun is used to run a shell script created by at(1),
	it sets the uid and gid to that of the file ownership.
	Because initgroups(3X) is not used to set all the access
	groups that the original user had access to, the command
	can fail if you must belong to multiple groups to execute
	the "cd" or other commands.

    REPEAT BY:
	If you belong to multiple access groups and the directory
	you are in when executing at(1) is rwxrwx--- and the group
	is one which is in your access group, but not your "primary"
	group as determined by /etc/passwd, the at(1) command will
	run successfully.  However, when atrun is used to execute
	the command the will fail to be executed but no errors messages
	will be apparent.  The file created by at(1) will then be removed.
	This happens because the "cd" to the directory in which at(1)
	was orginally run will fail because atrun does not initial
	all the access groups from /etc/group.
_______________________________________________________________________________
awk--bin			  sun!shannon (Bill Shannon)   9 Dec 83    +FIX
	Awk doesn't allow you to replace fields.  This bug was
	introduced when the indirect-through-zero bugs in awk
	were fixed.

    REPEAT BY:
	The following command
		echo 1 2 3 | awk '{$1 = NF; print}'
	should give
		3 2 3
	if it works.
	If it's broken it will give
		1 2 3
_______________________________________________________________________________
awk--usr.bin			James Larus <jlarus@bbn-vax>   13 Jul 84  
	awk does not properly concatenate a pair of strings passed to the
	function substr.

    REPEAT BY:
	% cat t.awk
	{print "'" substr($1 "        ", 1, 8) "'"}
	
	% cat t.d
	a
	ab
	abc
	abcd
	abcde
	abcdef
	abcdefg
	abcdefgh
	abcdefghi
	
	% awk -f t.awk < t.d
	'a        '		<- all strings should be 8 chars
	'ab        '
	'abc        '
	'abcd    '
	'abcde   '
	'abcdef  '
	'abcdefg '
	'abcdefgh'
	'abcdefgh'
	
	But it works with a variable, rather than a concatenation
	% cat t.awk
	{x = $1 "        "
	 print "'" substr(x, 1, 8) "'"}
	
	% cat t.d
	a
	ab
	abc
	abcd
	abcde
	abcdef
	abcdefg
	abcdefgh
	
	% awk -f t.awk < t.d 
	'a       '
	'ab      '
	'abc     '
	'abcd    '
	'abcde   '
	'abcdef  '
	'abcdefg '
	'abcdefgh'
	% 
_______________________________________________________________________________
backgammon--games      brownell@harvard.ARPA (Dave Brownell)   22 Aug 84  
	Recognizes DEL/RUBOUT directly, instead of checking which
	character is USED for interrupt.  VERY annoying -- I've
	never worked on a UNIX system where DELETE is really the
	standard interrupt character, and as it stands I get knocked
	out of backgammon whenever I make a typo and try to correct it.

    REPEAT BY:
	% stty intr ^c quit ^b erase '^?'
	% backgammon
	    (hit DELETE)

    FIX:
	ioctl() call to get local editing characters, and then compare
	against the INTR character rather than DEL.
_______________________________________________________________________________
c2--lib				chris@maryland (Chris Torek)   6 Aug 84    +FIX
	1) c2 incorrectly converts ``extv'' and ``extzv'' instructions
	   (to mov's) that occur in word 1 (extzv $16,$16,...).
	2) c2 mangles certain movz and cvt instructions which are
	   followed by bic's and then branches.

    REPEAT BY:
	1) run /lib/c2 over this input:
	
	extv	$16,$16,_a,_a
	extzv	$16,$16,_b,_b
	
	c2 will convert them to movwl and movzwl's that reference
	_a+1 and _b+1 (instead of _a+2 and _b+2)
	
	2) run /lib/c2 over this input:
	
		.globl	_main
	_main:
		.word	0
		jbr	L26
	L15:
		movzwl	(r6)+,r0
		bicl2	$-65536,r0
		jeql	L16
		calls	$0,_foo
	L16:
		ret
	L26:
		jbr	L15
	
	It will put out an extzv instruction, which increments
	r6 by the wrong amount (4 instead of 2).  There are other
	things that can go wrong here, too; this is just one of
	a set.
_______________________________________________________________________________
c2--lib			   Vincent Broman <broman%BUGS@Nosc>   21 Sep 84  
	The c2 optimizer mungs up the label placement in the code in
	the next paragraph. This is the minimum error-causing example
	from a long winnowing process. Cause of error, unimaginable.

    REPEAT BY:
	compare the assembler output from pc -S -O for the following procedure,
	with and without the optimizer on.
	{------------------------------------------}
	procedure badoptim(a: integer; q: boolean);
	    begin
		q := false;
		if a > 0 then
		    q := true
		else
		    q := false;
		if q = true then	{ends up in the else clause}
		    a := 4
	    end;
	{------------------------------------------}
	or do the same experiment with cc -S -O on this.
	/*--------------------*/
	badoptim(a,q)
	int a;
	char q;
	{
		q = 0;
		if (a > 0)
			q = 1;
		else
			q = 0;
		if (q == 1)	/*ends up in the else clause*/
			a = 4;
	}
	/*--------------------*/
	
	the error disappears if the unnecessary 'q := false;' is removed,
	or if 'if q = true then' is replaced by 'if q then',
	or if any innocuous statement is inserted before the 'if q'.
	
	UUCP: sdcsvax!noscvax!broman	Vincent Broman
	ARPA: broman@nosc		Naval Ocean Systems Center, code 632
	Phone: (619) 225-2365		San Diego, CA 92152
_______________________________________________________________________________
c2/c21.c--lib		   Vincent Broman <broman%BUGS@Nosc>   26 Sep 84   +FIX
	This is a followup on my previous bug report.
	c2 keeps track to some extent of the contents of the registers
	and of one other variable (source string) with a known constant value.
	(i.e. conloc/conval). The address described by conloc may be
	rewritten without rmove() properly noting the change. e.g.

    REPEAT BY:
	Run c2 on the following code, noting that it combines the jump
	to a compare-and-jump into one jump because it assumes that _a
	is still 0 arriving at L2, despite the previous "cvtlb $1,_a" .
	Essentially, the second "if" statement ends up inside the first
	"else" clause.
	.text
	.align	1
	_optim:	.word	0x0
		clrb	_a
		tstl	_b
		jleq	L1
		cvtlb	$1,_a
		jbr	L2
	L1:	bicl3	sp,$-2,_a
	L2:	cmpb	_a,$1
		jneq	L3
		movl	$4,_b
	L3:	ret
_______________________________________________________________________________
c2/c21.c--lib			 root.Oregon-Grad@Rand-Relay   4 Nov 83   
	The C object-code improver /lib/c2 for VAXes generates
	incorrect code for source of the type:
	
	    int i;
	    double x;
	    i = ((int) x) & 03777;
	
	The conditions for creating the erroneous code are that a
	double (or float) is converted to int, then and'd with a mask
	(03777 in this case) which must be a power of 2 minus 1; i.e.,
	in binary, contiguous 1's starting at bit 0 (LSB).
	
	/lib/c2 replaces this correct code:
	
	    cvtdl   _x,r0
	    bicl2   $-2048,r0
	    movl    r0,_i
	
	with this incorrect code:
	
	    extzv   $0,$11,_x,_i
	
	The optimization, which would be correct for int x, is to
	replace the bic with extraction of bits when the mask meets the
	conditions mentioned above.  However, the incorrect code
	apparently ignores the fact that _x and r0 in the cvtdl
	instruction are not the same.

    REPEAT BY:
	At the end of this report are the source files, delimited by
	"=======", for the examples below.  Compile and run the C source
	as shown below; it will print out incorrect numerical results
	when compiled with the -O flag.
	
	Correct results without -O flag:
	
	    % cc maskbug.c
	    % a.out
	    32.000000 == 32
	
	Incorrect results with -O flag:
	
	    % cc -O maskbug.c
	    % a.out
	    32.000000 == 768
	
	For a simplified demonstration, the three lines of correct
	assembler code shown above may be filtered through /lib/c2:
	
	    % /lib/c2 maskcode.s
	    extzv   $0,$11,_x,_i
	
	Results are the same with the 4.1, 4.1c, and 4.2 versions of
	/lib/c2.
	
	The c2 code involved is in the file /usr/src/lib/c2/c21.c, in
	the routines bflow(), bicopt(), and bixprep().
	
	
	Bruce Jerrick
	Oregon Graduate Center
	(503) 645-1121 ex. 355
	CSNet:  bruce@Oregon-Grad
	UUCP:   ...teklabs!ogcvax!bruce
	
	=========== maskbug.c =============
	/* This gives incorrect value of i when compiled with -O .
	Problem exists on VAX 4.1, 4.1c and 4.2 .
	*/
	
	double  x = 32.0;       /* or float */
	int     i;
	
	main()
	{
	i = ((int) x) & 03777;
	printf("%f == %d\n", x, i);
	}
	===================================
	
	=========== maskcode.s ============
	cvtdl   _x,r0
	bicl2   $-2048,r0
	movl    r0,_i
	===================================
_______________________________________________________________________________
calendar--usr.bin     ihnp4!garfield!andrew (Andrew Draskoy)   5 May 84    +FIX
	Calendar doesn't recognize tabs as valid white space,
	which can cause wrong dates to be recognized as valid.

    REPEAT BY:
	Put a line like:
	
	month<tab>number
	
	in a file called calendar in the current directory,
	where number is the current day of the month, with an extra
	digit or two prepended to it.  Run /bin/calendar, and the
	line will be printed out, even though it shouldn't be.
_______________________________________________________________________________
canfield--games	       brownell@harvard.ARPA (Dave Brownell)   22 Aug 84  
	Canfield does not correctly run through the hand.  After one
	pass through the hand, I am supposed to have seen every card
	in it.  On the contrary, I have frequently gotten new base
	cards on the foundation on the third or fourth pass through
	the hand.
	
	Also, the tableau is supposed to be shown THREE cards at a
	time.  No fair saying I owe $3 each time ... the last time
	I read Hoyle, it gave MARKEDLY different rules for the game
	than this program enforces.

    REPEAT BY:
	Try playing it!!!!
_______________________________________________________________________________
catman--etc		     ucsfcgl!blia!eric (Eric Allman)   22 Feb 84   +FIX
	The command "/etc/catman l" silently does nothing.
	This is because catman insists that all names be *.[0-9]
	followed by an optional letter.

    REPEAT BY:
	rm -f /usr/man/catl/*
	/etc/catman l
	ls /usr/man/catl
	
	The ls will show that /usr/man/catl is still empty.
_______________________________________________________________________________
cc--bin			weemba@ucbbrahms (Matthew P. Wiener)   26 Aug 84  
	The C compiler always defaults to the old syntax.  There is no
	way of the user turning this off.

    REPEAT BY:
	compile the following:
	main()
	{	int	x,*p;
		scanf("%d",p);
		x=*p;
	}
	
_______________________________________________________________________________
cc--bin      M. Satyanarayanan <cmuitca!satya@cmu-cs-h.arpa>   21 Jul 84  
	An assignment of the form a = b, where a and b are both pointers
	to functions returning void causes the C compiler to indicate an
	error.  A similar assignment, using functions returning int
	works.

    REPEAT BY:
	#include	<stdio.h>
	
	#ifdef	BUG
	typedef void bad;
	#else
	typedef int bad;
	#endif
	
	extern bad (*rpcEpilogue)();
	bad myEpilogue();
	
	main()
	{
		rpcEpilogue = myEpilogue;
	}
	
	bad myEpilogue()
	{
	}
_______________________________________________________________________________
cc--bin			   Mike Braca <mjb%Brown@UDel-Relay>   27 Sep 83  
	The C compiler incorrectly casts unsigned bit fields (it forgets
	they're unsigned).

    REPEAT BY:
	Compile and run the following program:
	-----
	main() {
		struct { unsigned int field:16 } bit;
		unsigned short hword;
		hword = bit.field = 60000;
		printf("bits = %d, %d\n", bit.field, (int) bit.field);
		printf("hword = %d, %d\n", hword, (int) hword);
	}
	-----
	It produces as output:
	-----
	bits = 60000, -5536
	hword = 60000, 60000
	-----
	I say all the values should be 60000.
_______________________________________________________________________________
cc--usr.lib		       edhall@randvax.ARPA (Ed Hall)   11 Jan 84   +FIX
	When assignement operators such as *= are used with an integer
	Left-Hand Side and a floating-point expression on the Right-
	Hand Side, results are incorrect.  For example:
	
		int i = 6;
		i *= .5;
	
	leaves a value of 0 in i, rather than 3.  The +=, -=, and /=
	operators are similarly affected.
	
	This bug may affect all pre-5.0USG C compilers, and perhaps earlier
	5.0USG compilers as well.  The below fix only works for PCC-derived
	compilers (such as the BSD VAX C compiler).

    REPEAT BY:
	Conversion of RHS of assignment to type of LHS before application
	of the operator.
_______________________________________________________________________________
cc--bin			     Preston Mullen <mullen@NRL-CSS>   12 May 83  
	If i is declared as "unsigned" then the compiler evaluates
	(int)(i % 19) as ((int)i) % 19.  This is at best
	counterintuitive and at worst incorrect if i is such that
	((int)i) < 0.  Of course, "19" is not a magic value --
	I imagine any int will do.
	
	I find it hard to believe that the vague caveats in "The
	C Programming Language" about order of expression evaluation
	can justify this completely counterintuitive interpretation.
	The cast operator (unsigned) is not distributive over % and
	should not be treated as if it were.

    REPEAT BY:
	Look at the results of and code generated for the following
	program.
	
	/* test program to demonstrate the problem */
	main() { unsigned int x; int r;
	
		x = 2269620549;
		printf("x\t\t%u\toctal %o\n",x,x);
		printf("x%%19\t\t%u\n",x%19);
		printf("(int)(x%%19)\t%d\n",(int)(x%19));
		printf("(int)x\t\t%d\toctal %o\n",(int)x,(int)x);
		printf("((int)x)%%19\t%d\n",((int)x)%19);
		r = (int)(x%19);
		printf("\nAfter r=(int)(x%%19);\n");
		printf("r\t\t%d\n",r);
		r = x % 19;
		printf("\nAfter r=x%%19;\n");
		printf("r\t\t%d\n",r);
		x %= 19;
		printf("\nAfter x%%=19;\n");
		printf("x\t\t%u\n",x);
		printf("(int)x\t\t%d\n",(int)x);
	}
	
	(end of message)
_______________________________________________________________________________
cfscores--games	       brownell@harvard.ARPA (Dave Brownell)   22 Aug 84  
	Some info printed out by cfscores is not initialized, or is
	stored as garbage.  Runs, information, and think-time are
	reported as HUGE numbers.

    REPEAT BY:
	Play a game of canfield, then run 'cfscores'.
_______________________________________________________________________________
cfscores.c--games		  chris@gymble (Chris Torek)   9 Sep 84    +FIX
	cfscores will, if the user ID for which it is looking is past
	the last one in the score database, do odd things.

    REPEAT BY:
	Run cfscores -a on a machine other than a Vax, for example.
_______________________________________________________________________________
changes.4-81--man				 ogcvax!root   Jun 24 83   +FIX
	The version of /usr/man/man0/changes.4-81 that was distributed
	with 4.1c (as of Feb 13 01:11) seems to have regressed to
	a version that contains errors that were not in the version
	distributed with 4.1 (as of Sep 1981).

    REPEAT BY:
	Do a diff between the version distributed with 4.1 and that
	recently distributed with 4.1c.  Many typos, etc. are back
	in the 4.1c version.
	The two versions can readily be distinguished as follows:
	4.1 (good) version contains the string "Understand".
	4.1c (bad) version contains "versteht".

    FIX:
		Replace /usr/man/man0/changes.4-81 with the version distributed
		with 4.1 circa Sep 1981.
	
	--------------------------------
		Bruce Jerrick
		Oregon Graduate Center
		(503) 645-1121 ex. 355
		CSNet:  bruce@Oregon-Grad
		UUCP:   ...teklabs!ogcvax!bruce
	
_______________________________________________________________________________
compact--ucb					 allegra!rdg   Jul 2 83    +FIX
	(1) Compact will fail to compact a file and abort producing a core
	file without explanation when large (greater than 4.7 Mbyte) files
	are compacted.
	(2) Even when compact succeeds, it exits with a non-zero exit code.
	(3) Signals may cause both the compacted and uncompacted files to
	disappear.

    REPEAT BY:
	compact large_file
_______________________________________________________________________________
compact--ucb		   Mike Braca <mjb%Brown@UDel-Relay>   27 Sep 83   +FIX
	compact and uncompact complain about filenames exceeding 14 chars.

    REPEAT BY:
	Try typing "compact thisisafilewithaverylongname"
_______________________________________________________________________________
compat--games			   salkind@nyu (Lou Salkind)   7 Dec 83   
	Many many problems with compat:
	(1) floating point doesn't work
	(2) environment not passed correctly
	(3) old style directories not supported

    REPEAT BY:
	Try running the following in compatability mode
	(1) cc (with a file which has floating point code)
	(2) printenv
	(3) ls

    FIX:
	If you want a much better compat, contact me.  I use it alot
	for one application around here.
_______________________________________________________________________________
config--etc			watrose!arwhite (Alex White)   14 Dec 83   +FIX
	config blows up if you try to use wildcarded unibus drive numbers.

    REPEAT BY:
	Use something like
		device ra0 at uda? drive ?
	Mind you, it won't do much good unless you have a driver which can
	figure out drive numbers, as for the uda.  I have such a driver if
	you want it.
_______________________________________________________________________________
cp--bin			   Mike Braca <mjb%Brown@UDel-Relay>   27 Sep 83   +FIX
	cp does not close files on errors. If you get more than 17
	errors it craps out with "too many open files".

    REPEAT BY:
	Go to a directory with more than 17 files. Type "cp * ."
	You get 17 "cannot copy file to itself" messages, then
	cp dies.
_______________________________________________________________________________
cpp/cpp.c--lib		 kalsow@wisc-crys.arpa (Bill Kalsow)   19 Sep 84   +FIX
	It would often be handy to define macros that could intelligently
	handle missing arguments.  I would like to see a predefined macro,
	'ifmissing' with 3 arguments.  If the first argument was missing,
	the second argument would be the macro's value.  If the first
	argument was present (ie. a non-null string) the third argument
	would be the macro's value.  This capability is not present in
	cpp, nor is it constructable from the cpp primitives.
_______________________________________________________________________________
cpp/cpp.c--lib   Spencer W. Thomas  <UTAH-GR.thomas@utah-cs>   27 Apr 83   +FIX
	Line numbers on compiler error messages (sometimes) do not
	match the line actually in error.  Usually the reported line
	numbers are too big.

    REPEAT BY:
	Run this input through cc (without the line numbers):
	
	1  #define twice(a)	a;a
	
	3  main()
	4  {
	5  	int a;
	6  	twice(a =
	7  		0);
	8  	while;
	9  }
	
	Cc produces the following error message:
	"tmp.c", line 9: syntax error
	
	Note that the message has the wrong line number.  Inserting a
	#if 0, #endif pair will cause the line number to be even
	further off (because the preprocessor has seen 3 newlines while
	expanding the macro).
_______________________________________________________________________________
creat--man		      Jay Lepreau  <lepreau@utah-cs>   25 Apr 83   +FIX
	Since ancient history, the man entry for creat(2) has included
	the outright lie that creat is a good form of locking.  This
	continues to lead users astray (it fails for the super-user,
	of course).  That paragraph remains in the current creat(3) entry
	on monet.

    REPEAT BY:
	man creat

    FIX:
	Get rid of that stupid paragraph and substitute references to link(2)
	and flock(2) for locking.
_______________________________________________________________________________
cribbage--games			 smith@wisc-rsch (Jim Smith)   7 Dec 83   
	When counting hands, flushes are not counted (neither 4 or 5 flushes).
	This results in not only losing the points for the flush but in
	a penalty of two additional points which is particularly vexing.

    REPEAT BY:
	Playing cribbage, throwing cards into the crib at the first opportunity
	to form a flush.
_______________________________________________________________________________
csh--bin		   Mike Braca <mjb%Brown@UDel-Relay>   3 Oct 83    +FIX
	Earlier I submitted a bug report saying that "unlimit datasize"
	and "unlimit stacksize" don't work because you get a "not owner"
	error, and I suggested that the problem should be corrected in
	the kernel, /sys/sys/kern_resource.c . This is, of course, wrong,
	and I hereby retract that particular report. I now contend that
	the semantics of the csh unlimit command should be bent a bit
	instead. Instead of trying to set the limits to RLIM_INFINITY
	I think you should set the "soft" limit (rlim_cur) to the
	"hard" limit (rlim_max).

    REPEAT BY:
	Type "unlimit stacksize". Watch error message appear.

    FIX:
	Change csh to use rlim_max instead of RLIM_INFINITY for an
	"unlimit" or "limit xxx unlimit" command. Sorry I can't be
	more specific, but I already made the change in the kernel.
_______________________________________________________________________________
csh--bin		     leblanc@ucbdali (Emile LeBlanc)   15 Mar 84  
	Giving the command "history -<arg>", where <arg> is anything, to the
	csh causes an infinite loop.  It can be easily interupt'ed however.

    REPEAT BY:
	Type the following (to the cshell):
		history -a       (anything after a "-" seems to work)
	and it hangs there.
_______________________________________________________________________________
csh--bin			  edjames@ucbcory (Ed James)   5 Oct 83   
	Foreach, while and if statements work with no difficulty when run 
	from scripts.  However, the if statement, when run interactively,
	simply does not work, as the other functions do.

    REPEAT BY:
	% if (1) then
	%
_______________________________________________________________________________
csh--bin			      ralph (Ralph Campbell)   23 May 83  
	The command `sleep 10 && sleep 5 &' will create a non-interruptable
	non-suspendable pipeline which is not run in background.  I can
	reliably reproduced the problem.  It seems to fail if (any) other
	commands besides sleep are used.

    REPEAT BY:
	type `sleep 10 && sleep 5 &'
_______________________________________________________________________________
csh--bin			      ralph (Ralph Campbell)   25 May 83  
	The C shell quits silently if the parent directory (or anything back to the
	root) isn't readable when it starts up (and if it isn't a login shell).  This
	can happen when you su to someone who can't read your working directory; the
	su fails silently.
	
	Here's why:
	The Cshell's dinit() calls getwd() (defined in /usr/src/libc/libjobs/getwd.c),
	which notices the problem, writes an error message to file descriptor 2, and
	exits.  However, file descriptor 2 is closed by initdesc() before getwd()
	acts.  The whole thing is a mess because you're trying to be compatible with
	version 5 on up with respect to file descriptors, so I daren't suggest a fix.
_______________________________________________________________________________
csh--bin			      csuf!dav@trw-unix.UUCP   19 May 83  
	We have found the following bug in csh:
	
	Each case in a switch appears to REQUIRE a breaksw after it.
	We are unable to set up multiple cases for a single block of code:
	csh complains of "case: too many arguments.".
	
			{trw-unix,ucivax}!csuf!dav
			David L. Markowitz
			System Manager, Rockwell International
_______________________________________________________________________________
csh/sh.glob.c--bin      Christopher A Kent <cak@arthur.ARPA>   17 Oct 83   +FIX
	If the user has non-standard histchars, a glob expansion
	involving those characters always fails. 

    REPEAT BY:
	unset histchars
	set histchars = ',;'
	cp /dev/null \,foo
	echo \,*

    FIX:
	RCS file: RCS/sh.glob.c,v
	retrieving revision 1.1
	retrieving revision 1.2
	diff  -r1.1 -r1.2
	357c357
	< 			if (c != scc)
	---
	> 			if ((c & TRIM) != scc) 
_______________________________________________________________________________
ctags--ucb		      steveg@ucbic (Steve Greenberg)   18 Oct 83  
	In creating the regular expression to search for
	CTAGS does not put a  \ in front of any [ that may be in the string.
	This causes the regular expression analyzer to interpret the [ as a
	meta-character.

    REPEAT BY:
		Run CTAGS on a file with a define in it so that it produces a line 
		like the following:
	
	SIG	../dev/nets.c	/^#define SIG(var,i) net->buf[i].var$/
	

    FIX:
	       CTAGS should be fixed to create the line like the following:
	
	SIG	../dev/nets.c	/^#define SIG(var,i) net->buf\[i].var$/
_______________________________________________________________________________
ctype.h(3)--man		      sjk@SRIJOYCE (Scott J. Kramer)   16 Jun 83   +FIX
	The manual claims that "isprint" includes space ...
	
	isprint        c is a printing character, code 040(8)
		       (space) through 0176 (tilde)
	
	But the macro definition doesn't include space ...
	
	#define isprint(c)	((_ctype_+1)[c]&(_P|_U|_L|_N))

    REPEAT BY:
	Obvious.

    FIX:
		Change the macro or change the manual, probably the latter.
	
	scott
_______________________________________________________________________________
curses--usr.lib				 decvax!popvax!neilr   15 May 84   +FIX
	In curses, there is an improperly terminated loop which seems
	to appear only on terminals with < 24 rows.
	It has been a couple of weeks since I fixed it; I have
	forgotten exactly *why* it occurs.

    REPEAT BY:
	run 'talk' on a  vt100 terminal with vt100-s TERM
	you will get a core dump;
_______________________________________________________________________________
curses--usr.lib			 mazama!stew (Stewart Levin)   29 Jun 84   +FIX
	I tried to use an interactive graphics display program
	with data to be plotted piped through standard input
	out of a windowing filter.  The program failed.  A gcore
	dump revealed it was looping indefinitely within a subroutine
	that called wgetch() to read a character from the terminal.
	Examining the source for libcurses I found that wgetch() was
	using the stdio macro getchar().  The plot program was thereby
	being fed a few megabytes of binary data as if they were characters
	typed from the control terminal.
	The initscr() command searches around through file descriptors
	to find one that references a tty (trying file descriptor 2 first)
	and places that info in the external variable _tty_ch for use by
	other routines.  I find that some but not all of the curses routines
	use this file descriptor.

    REPEAT BY:
	Use a curses program to read screen input when stdin is redirected.
	For that matter, use curses to write screen output when stdout is
	redirected.

    FIX:
	Change the body of _putchar() in cr_put.c to:
	
	char byte = c;
	write(_tty_ch,&byte,1);
	
	Change all occurences of putchar(...) in refresh.c and scroll.c
	to _putchar(...)
	
	Change "inp = getchar()" in getch.c to "read(_tty_ch,&inp,1)"
	
	To pass muster with lint, you should have _putchar return an
	integer just as putchar() does.  Also, the returned value of
	read and write should be checked for I/O errors.
_______________________________________________________________________________
curses--usr.lib		root%wisc-spool.uwisc@wisc-crys.ARPA   4 Apr 84    +FIX
	When using a termcap with a large number of columns (e.g. 132
	instead of 80) wrefresh() of the curses package will sometimes
	try to update beyond the end of it's screen if the old and new
	screens are very similar.  A good example is starting up talk.
	The problem is that the makech() procedure in refresh.c does
	not check to see if it ran off the end of its window in one
	case.

    REPEAT BY:
	Use a termcap with a large number of columns (132 column mode
	is what I used).  Run 'talk'.  A 'segment violation' should be
	produced.
_______________________________________________________________________________
curses/cr_tty.c--usr.lib	   cbosgd!mark (Mark Horton)   19 Jul 83   +FIX
	The size of the array tspace is too small.
	Any program that uses this curses will dump core when
	run on a moderately complex terminal (the Ann Arbor
	Ambassador is an example).

    REPEAT BY:
	Run any curses program (e.g. /usr/games/mille) on a
	fancy aaa termcap entry, e.g. aaa-30-s-rv-ctxt.

    FIX:
	Increase the size of tspace from 128 to AT LEAST 256.
	I recommend even more room - 512 should be plenty.
	
	In testing this, try it on ALL the aaa entries.  I
	think the version of termcap you have has some entries
	that are too big in another dimension - the array
	passed to tgetent is 1024 bytes, yet some aaa entries
	are > 1024.   I have a fixed termcap for this which
	I am enclosing.  It duplicates some info to make them
	all fit.  These aaa entries are the most recent aaa
	termcap I have - I don't maintain a current termcap
	anymore since we have switched to terminfo.
	
		Mark Horton
	NA|aaa-unk|ann arbor ambassador (internal - don't use this directly):\
	:cr=^M:do=^J:nl=^J:bl=^G:al=3\E[L:am:le=^H:bs:\
	:cd=\E[J:ce=5\E[K:cl=156\E[H\E[J:cm=\E[%i%d;%dH:co#80:\
	:dc=4\E[P:dl=3\E[M:ho=\E[H:ic=4\E[@:\
	:md=\E[1m:mr=\E[7m:mb=\E[5m:mk=\E[8m:me=\E[m:\
	:ku=\EM:kd=\ED:kl=\E[D:kr=\E[C:kh=\E[H:ko=cl,dc,dl,ce,cd:\
	:ks=\EP`?z~[H~[[J`>z~[[J`8xz~[M`4xz~[[D`6xz~[[C`2xz~[D\E\\:\
	:ke=\EP`?y~[H~[[J`>y~[[2J`8xy~[M`4xy~[[D`6xy~[[C`2xy~[D\E\\:\
	:ch=\E[%i%d`:\
	:ul:ei=:im=:pt:bw:bt=\E[Z:\
	:mi:nd=\E[C:se=\E[m:so=\E[7m:ue=\E[m:us=\E[4m:up=\EM:
	NB|aaa-18|ann arbor ambassador/18 lines:\
	:ti=\E[2J\E[18;0;0;18p:te=\E[60;0;0;18p\E[18;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;18p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#18:tc=aaa-unk:
	NC|aaa-20|ann arbor ambassador/20 lines:\
	:ti=\E[2J\E[20;0;0;20p:te=\E[60;0;0;20p\E[20;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;20p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#20:tc=aaa-unk:
	ND|aaa-22|ann arbor ambassador/22 lines:\
	:ti=\E[2J\E[22;0;0;22p:te=\E[60;0;0;22p\E[22;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;22p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#22:tc=aaa-unk:
	NE|aaa-24|ann arbor ambassador/24 lines:\
	:ti=\E[2J\E[24;0;0;24p:te=\E[60;0;0;24p\E[24;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;24p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#24:tc=aaa-unk:
	NF|aaa-26|ann arbor ambassador/26 lines:\
	:ti=\E[2J\E[26;0;0;26p:te=\E[60;0;0;26p\E[26;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;26p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#26:tc=aaa-unk:
	NG|aaa-28|ann arbor ambassador/28 lines:\
	:ti=\E[2J\E[28;0;0;28p:te=\E[60;0;0;28p\E[28;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;28p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#28:tc=aaa-unk:
	NH|aaa|aaa-30|ambas|ambassador|ann arbor ambassador/30 lines:\
	:ti=\E[2J\E[30;0;0;30p:te=\E[60;0;0;30p\E[30;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;30p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#30:tc=aaa-unk:
	NI|aaa-36|ann arbor ambassador/36 lines:\
	:ti=\E[2J\E[36;0;0;36p:te=\E[60;0;0;36p\E[36;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;36p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#36:tc=aaa-unk:
	NJ|aaa-40|ann arbor ambassador/40 lines:\
	:ti=\E[2J\E[40;0;0;40p:te=\E[60;0;0;40p\E[40;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;40p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#40:tc=aaa-unk:
	NK|aaa-48|ann arbor ambassador/48 lines:\
	:ti=\E[2J\E[48;0;0;48p:te=\E[60;0;0;48p\E[48;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;48p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#48:tc=aaa-unk:
	NL|aaa-60|ann arbor ambassador/60 lines:\
	:ti=\E[2J\E[60;0;0;60p:te=\E[60;0;0;60p\E[60;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;0;0;60p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#60:tc=aaa-unk:
	NS|aaa-unk-s|ann arbor ambassador unknown with/status:\
	:es:hs:i2=\E7\E[>51h\E[H\E[2K\E[>51l\E8:\
	:ts=\E7\E[>51h\E[H\E[2K:fs=\E[>51l\E8:\
	:ds=\E7\E[>51h\E[H\E[2K\E[>51l\E8:\
	:tc=aaa-unk:
	NM|aaa-18-s|ambassador|ann arbor ambassador/18 lines + status line:\
	:ti=\E[2J\E[18;1;0;18p:\
	:te=\E[60;1;0;18p\E[18;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;18p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#17:tc=aaa-unk-s:
	NN|aaa-20-s|ambassador|ann arbor ambassador/20 lines + status line:\
	:ti=\E[2J\E[20;1;0;20p:\
	:te=\E[60;1;0;20p\E[20;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;20p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#19:tc=aaa-unk-s:
	NO|aaa-22-s|ambassador|ann arbor ambassador/22 lines + status line:\
	:ti=\E[2J\E[22;1;0;22p:\
	:te=\E[60;1;0;22p\E[22;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;22p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#21:tc=aaa-unk-s:
	NP|aaa-24-s|ambassador|ann arbor ambassador/24 lines + status line:\
	:ti=\E[2J\E[24;1;0;24p:\
	:te=\E[60;1;0;24p\E[24;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;24p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#23:tc=aaa-unk-s:
	NQ|aaa-26-s|ambassador|ann arbor ambassador/26 lines + status line:\
	:ti=\E[2J\E[26;1;0;26p:\
	:te=\E[60;1;0;26p\E[26;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;26p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#25:tc=aaa-unk-s:
	NR|aaa-28-s|ambassador|ann arbor ambassador/28 lines + status line:\
	:ti=\E[2J\E[28;1;0;28p:\
	:te=\E[60;1;0;28p\E[28;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;28p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#27:tc=aaa-unk-s:
	NT|aaa-30-s|ambassador|ann arbor ambassador/30 lines + status line:\
	:ti=\E[2J\E[30;1;0;30p:\
	:te=\E[60;1;0;30p\E[30;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;30p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#29:tc=aaa-unk-s:
	NU|aaa-36-s|ambassador|ann arbor ambassador/36 lines + status line:\
	:ti=\E[2J\E[36;1;0;36p:\
	:te=\E[60;1;0;36p\E[36;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;36p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#35:tc=aaa-unk-s:
	NV|aaa-40-s|ambassador|ann arbor ambassador/40 lines + status line:\
	:ti=\E[2J\E[40;1;0;40p:\
	:te=\E[60;1;0;40p\E[40;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;40p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#39:tc=aaa-unk-s:
	NW|aaa-48-s|ann arbor ambassador/48 lines+sl:\
	:ti=\E[2J\E[48;1;0;48p:te=\E[60;1;0;48p\E[48;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\EP`?y~[[2J~[[H\E7\E[60;1;0;48p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#47:tc=aaa-unk-s:
	NX|aaa-60-s|ambassador|ann arbor ambassador/60 lines + status line:\
	:ti=\E[2J\E[60;1;0;60p:te=\E[60;1;0;60p\E[60;1H\E[J:\
	:is=\EP`+x~M\E\\\E[m\E7\E[60;1;0;60p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#59:tc=aaa-unk-s:
	NY|aaa-18-rv|ambassador/18 lines+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;18p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-18:
	NZ|aaa-20-rv|ambassador/20 lines+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;20p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-20:
	Na|aaa-22-rv|ambassador/22 lines+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;22p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-22:
	Nb|aaa-24-rv|ambassador/24 lines+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;24p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-24:
	Nc|aaa-26-rv|ambassador/26 lines+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;26p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-26:
	Nd|aaa-28-rv|ambassador/28 lines+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;28p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-28:
	Ne|aaa-30-rv|ann arbor ambassador/30 lines in reverse video:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;30p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-30:
	Nf|aaa-36-rv|ann arbor ambassador/36 lines in reverse video:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;36p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-36:
	Ng|aaa-40-rv|ann arbor ambassador/40 lines in reverse video:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;40p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-40:
	Nh|aaa-48-rv|ann arbor ambassador/48 lines in reverse video:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;48p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-48:
	Ni|aaa-60-rv|ann arbor ambassador/60 lines in reverse video:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;60p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-60:
	Nj|aaa-18-rv-s|aaa-18-s-rv|ambassador/18 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[18;1;0;18p:te=\E[60;1;0;18p\E[18;1H\E[J:li#17:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;18p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Nk|aaa-20-rv-s|aaa-20-s-rv|ambassador/20 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[20;1;0;20p:te=\E[60;1;0;20p\E[20;1H\E[J:li#19:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;20p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Nl|aaa-22-rv-s|aaa-22-s-rv|ambassador/22 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[22;1;0;22p:te=\E[60;1;0;22p\E[22;1H\E[J:li#21:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;22p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Nm|aaa-24-rv-s|aaa-24-s-rv|ambassador/24 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[24;1;0;24p:te=\E[60;1;0;24p\E[24;1H\E[J:li#23:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;24p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Nn|aaa-26-rv-s|aaa-26-s-rv|ambassador/26 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[26;1;0;26p:te=\E[60;1;0;26p\E[26;1H\E[J:li#25:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;26p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	No|aaa-28-rv-s|aaa-28-s-rv|ambassador/28 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[28;1;0;28p:te=\E[60;1;0;28p\E[28;1H\E[J:li#27:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;28p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Np|aaa-rv|aaa-30-rv-s|aaa-30-s-rv|ambassador/30 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[30;1;0;30p:te=\E[60;1;0;30p\E[30;1H\E[J:li#29:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;30p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Nq|aaa-36-rv-s|aaa-36-s-rv|ambassador/36 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[36;1;0;36p:te=\E[60;1;0;36p\E[36;1H\E[J:li#35:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;36p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Nr|aaa-40-rv-s|aaa-40-s-rv|ambassador/40 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[40;1;0;40p:te=\E[60;1;0;40p\E[40;1H\E[J:li#39:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;40p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Ns|aaa-48-rv-s|aaa-48-s-rv|ambassador/48 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:ti=\E[2J\E[48;1;0;48p:te=\E[60;1;0;48p\E[48;1H\E[J:li#47:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;48p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:tc=aaa-unk-s:
	Nt|aaa-60-rv-s|aaa-60-s-rv|ambassador/60 lines+sl+rv:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;60p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#50:tc=aaa-unk-s:
	NL|aaa-24-ctxt|ann arbor ambassador/24 lines:\
	:ti=\E[30;1H\E[K\E[24;0;0;24p:te=\E[60;1;0;24p\E[60;1H\E[K:tc=aaa-24:
	NL|aaa-24-rv-ctxt|ambassador/24+rv:\
	:ti=\E[30;1H\E[K\E[24;0;0;24p:te=\E[60;1;0;24p\E[60;1H\E[K:tc=aaa-24-rv:
	NL|aaa-s-ctxt|aaa-30-s-ctxt|hairy aaa:\
	:ti=\E[30;1H\E[K\E[30;1;0;30p:te=\E[60;1;0;30p\E[59;1H\E[K:tc=aaa-30-s:
	NL|aaa-s-rv-ctxt|aaa-30-s-rv-ctxt|hairy aaa:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;1;0;30p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:ti=\E[30;1H\E[K\E[30;1;0;30p:te=\E[60;1;0;30p\E[59;1H\E[K:\
	:li#29:tc=aaa-unk-s:
	NH|aaa-ctxt|aaa-30-ctxt|ann arbor ambassador/30 lines:\
	:ti=\E[30;0;0;30p:te=\E[60;0;0;30p\E[60;1H\E[K:tc=aaa-30:
	NH|aaa-rv-ctxt|aaa-30-rv-ctxt|ann arbor ambassador/30 lines:\
	:ti=\E[30;0;0;30p:te=\E[60;0;0;30p\E[60;1H\E[K:\
	:md=\E[1;7m:mr=\E[m:mb=\E[5;7m:mk=\E[7;8m:me=\E[7m:\
	:us=\E[4;7m:ue=\E[7m:se=\E[7m:so=\E[m:\
	:is=\EP`+x~M\E\\\E[7m\E7\E[60;0;0;30p\E[3g\E[f\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E[8a\EH\E8\E[>6h\E[1Q:\
	:li#30:tc=aaa-unk:
	Nd|aaa-db|ann arbor ambassador 30/destructive backspace:\
	:ti=\E[H\E[J\E[30;0;0;30p:te=\E7\E[60;0;0;30p\E8:li#30:\
	:is=\E[60;0;0;30p\E[H\E[J\E[1Q\E[m\E[20l\E[>30h:le=\E[D:bc=\E[D:bs@:\
	:tc=aaa-unk:
	N0|aaa-29-np|aaa-29 with no padding (for psl):\
	:al=\E[L:ce=\E[K:cl=\E[H\E[J:\
	:dc=\E[P:dl=\E[M:ic=\E[@:tc=aaa-29:
_______________________________________________________________________________

              GENERAL INFORMATION ON THE 4.2 BUGLIST FROM MT XINU

          _________________________________________________________________

                           --IMPORTANT DISCLAIMERS--

          Material in this announcement and the  accompanying  reports
          has been edited and organized by MT XINU as a service to the
          UNIX community on a non-profit,  non-commercial  basis.   MT
          XINU  MAKES  NO  WARRANTY,  EXPRESSED  OR IMPLIED, ABOUT THE
          ACCURACY, COMPLETENESS, OR FITNESS FOR USE FOR  ANY  PURPOSE
          OF ANY MATERIAL INCLUDED IN THESE REPORTS.

          MT XINU welcomes comments in writing about the  contents  of
          these reports via uucp or US mail.  MT XINU cannot, however,
          accept telephone calls or enter into telephone conversations
          about this material.

          _________________________________________________________________

          Legal  difficulties  which  have delayed the distribution of
          4.2bsd buglist summaries by MT XINU have been  resolved  and
          three versions of the buglist are now available.

          The current buglist has been derived from reports  submitted
          to  4bsd-bugs@BERKELEY  (not  from reports submitted only to
          net.bugs.4bsd, for example).  Reports  are  integrated  into
          the  buglist as they are received, so that any distributions
          are current to within a week or so.

          Buglists now being distributed are  essentially  "raw".   No
          judgment  has been passed as to whether the submitted bug is
          real or not or whether it has been fixed. Only minimal edit-
          ing  has  been  done  to produce a manageable list.  Reports
          which are complaints (rather than  bug  reports)  have  been
          eliminated;  obscenities  and  content-free flames have been
          eliminated; and duplicates have been combined.  The  result-
          ing collection contains over 500 bugs.


          Three versions of the buglist are now  ready  for  distribu-
          tion:

          2-Liners:
               Two lines per bug, including a concise description, the
               affected   module,  the  submittor.  Approximately  55K
               bytes, it is  being  distributed  to  net.sources  con-
               currently with this announcement.

          All-but-Source:
               All material, except that all but the most inocuous  of
               source  material  has been removed to meet AT&T license
               restrictions.   Nearly  a  mega-byte,  this   will   be
               distributed  to  net.sources in several 50K byte pieces
               later this week.

               A paper listing or mag  tape  is  also  available,  see
               below.

               Please note that local  usenet  size  restrictions  may
               prevent   large   files   from  being  received  and/or
               retransmitted.  MT XINU will not dump this material  on
               the  net  a  second time; if your site has not received
               material of interest to you within a  reasonable  time,
               please send for a paper or tape copy.

          All-with-Source (FOR SOURCE LICENSEES ONLY):

               4.2 licensees who also  have  a  suitable  AT&T  source
               license  can obtain a tape containing all the material,
               including proposed source fixes where such were submit-
               ted.

               Once again, MT XINU has not evaluated, tested or passed
               judgment  on proposed fixes; all we have done is organ-
               ize the collection and eliminate obvious  irrelevancies
               and duplications.


          A free paper copy of the All-but-Source list can be obtained
          by sending mail to:
                  MT XINU
                  739 Allston Way
                  Berkeley CA 94710

                  attn: buglist

          or electronic mail to:

                  ucbvax!mtxinu!buglist

          (Be sure to include your US mail address!)

          For a tape, send a check for $110 or a  purchase  order  for
          $150  to  cover  MT  XINU's costs to the address given above
          (California orders add sales tax).  For the  All-with-Source
          list, mail us a request for the details of license verifica-
          tion at either of the above addresses.