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.