epsilon@wet.UUCP (Eric P. Scott) (10/16/89)
These are my changes to rn patchlevel 40. They are by no means the ultimate patches--they are provided as a starting point for further work. These have been tested on NeXT 0.9 and SunOS 4.0.3. The following are NOT addressed by this patch; you'll have to deal with them manually. Configure: [NeXT only] identification as BSD look for SIGTSTP in /usr/include/sys/signal.h rather than signal.h [NeXT only] selection of /lib/cpp if $contains 'abc +xyz' testcpp.out >/dev/null 2>&1 ; then ^ add this space Note: When you run Configure, answer y to the question: is your "test" built into sh? for NeXT and SunOS. common.h: (if needed) raise MAXRCLINE from 1000 to 1500; HASHSIZ from 1103 to 1693 in NEWSHEADER change .UUCP to correct domain in CANCELHEADER change .UUCP to correct domain config.h/config.sh: (after running Configure) [NeXT only] Configure mistakenly does not find vfork undef vfork (in config.sh it's called novfork) [SunOS only] SunOS has both ioctl and termio, use ioctl only undef termio [NeXT, or SunOS+YP] define getpwent newsetup.SH: You might want to add some special treatment for alt. Pnews.SH: My restoration of the "recording" stuff isn't perfect; it doesn't work properly with groups like rec.arts.tv.uk. rn.1: [NeXT only] put a .UC 6 after the .TH line before printing with ptroff -man. If you are using the rrn patches provided with nntp 1.5.6: These "normally" reject one patch to ngdata.c since PL 40 added a #include "util.h"; you will have to edit in the #include "server.h" manually. My patches introduce two conflicts: term.c: both fix the same problem in different ways. Install one or the other, but not both. newsetup.SH: do my patch first, then the rrn patch. Ignore the rejects. All followups to news.software.b please. -=EPS=- ======= Cut here ======= *** ../old/Pnews.SH Fri Nov 21 14:45:17 1986 --- Pnews.SH Tue Oct 10 00:00:03 1989 *************** *** 102,110 **** help. If you've never posted an article to the net before, it is HIGHLY recommended ! that you read the netiquette document found in mod.announce.newusers so that you'll know to avoid the commonest blunders. To do that, interrupt ! Pnews, and get to the top-level prompt of rn. Say "g mod.announce.newusers" and you are on your way. EOM --- 102,110 ---- help. If you've never posted an article to the net before, it is HIGHLY recommended ! that you read the netiquette document found in news.announce.newusers so that you'll know to avoid the commonest blunders. To do that, interrupt ! Pnews, and get to the top-level prompt of rn. Say "g news.announce.newusers" and you are on your way. EOM *************** *** 151,156 **** --- 151,179 ---- trap "$rescue" 2 $echo "" + #: play recorded message + set X `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'` + shift + case $# in + 0|1) + ;; + *) + shift + if $test -s ${lib}/recording ; then + ng=`$echo $1 | $sed "s/,.*//"` + _rec1=${lib}/`$sed -n "/^$ng/s/^.* //p" ${lib}/recording` + _tmp=`$echo $ng |$sed "s/\..*//"` + _rec2=${lib}/`$cat -s ${lib}/recording|$grep ${_tmp}.all|$sed "s/^.* //"` + if $test -f ${_rec1} ; then + $cat -s ${_rec1} + fi + if $test -f ${_rec2} ; then + $cat -s ${_rec2} + fi + fi + ;; + esac + set X `$sed < $tmpart -n -e '/^Distribution: /{' -e p -e q -e '}' -e '/^$/q'` shift case $# in *************** *** 169,191 **** esac shift - #: play recorded message - #if $test -s ${lib}/recording ; then - # ng=`$echo $1 | $sed "s/,.*//"` - # _rec1=${lib}/`$sed -n "/^$ng/s/^.* //p" ${lib}/recording` - # _tmp=`$echo $ng |$sed "s/\..*//"` - # _rec2=${lib}/`$cat -s ${lib}/recording|$grep ${_tmp}.all|$sed "s/^.* //"` - # if $test -f ${_rec1} ; then - # $cat -s ${_rec1} - # fi - # if $test -f ${_rec2} ; then - # $cat -s ${_rec2} - # fi - #fi - # tell them what we think they are doing... !DIST! case $1 in ! net.*|world.*|comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*|mod.*) $cat <<'EOM' This program posts news to thousands of machines throughout the entire civilized world. You message will cost the net hundreds if not thousands of --- 192,200 ---- esac shift # tell them what we think they are doing... !DIST! case $1 in ! world.*|comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*) $cat <<'EOM' This program posts news to thousands of machines throughout the entire civilized world. You message will cost the net hundreds if not thousands of *************** *** 493,499 **** ;; esac case $ng in ! net.*|mod.*|comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*) defdist=world dist=h ;; --- 502,508 ---- ;; esac case $ng in ! comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*) defdist=world dist=h ;; *************** *** 518,525 **** Your local distribution prefixes are: Local organization: $loc ! Organization: $org ! City: $city $stpr: $state Country: $cntry Continent: $cont --- 527,534 ---- Your local distribution prefixes are: Local organization: $loc ! Organization: $org ! City: $city $stpr: $state Country: $cntry Continent: $cont *************** *** 546,552 **** ;; ''|$loc*|$org*|$city*|$state*|$cntry*|$cont*|$defdist) ;; ! net*|world*|comp*|news*|sci*|rec*|misc*|soc*|talk*) dist='' ;; *) --- 555,561 ---- ;; ''|$loc*|$org*|$city*|$state*|$cntry*|$cont*|$defdist) ;; ! world*|comp*|news*|sci*|rec*|misc*|soc*|talk*) dist='' ;; *) *************** *** 563,576 **** esac done ! case $ng in ! *net.general*) ! follow=`echo "$ng" | sed 's/net\.general/net.followup/g'` ! ;; ! *) ! follow="" ! ;; ! esac case $# in 0) --- 572,578 ---- esac done ! follow="" case $# in 0) *** ../old/art.c Mon Feb 2 15:24:25 1987 --- art.c Sun Oct 8 20:15:48 1989 *************** *** 104,110 **** if (fstat(artfp->_file,&filestat)) /* get article file stats */ return DA_CLEAN; ! if (filestat.st_mode & S_IFMT != S_IFREG) return DA_NORM; artsize = filestat.st_size; /* from that get article size */ --- 104,110 ---- if (fstat(artfp->_file,&filestat)) /* get article file stats */ return DA_CLEAN; ! if ((filestat.st_mode & S_IFMT) != S_IFREG) return DA_NORM; artsize = filestat.st_size; /* from that get article size */ *** ../old/newsetup.SH Fri Nov 21 14:45:19 1986 --- newsetup.SH Mon Oct 9 23:19:49 1989 *************** *** 47,71 **** $sort <\$active | $sed >/tmp/n.tmp\$\$ \\ -e 's/^\([^ ]*\) .*\$/\1:/' \\ -e '/^control:/{' \\ -e " w /tmp/n.test\$\$" \\ -e ' d' \\ -e '}' \\ -e '/^junk:/{' \\ -e " w /tmp/n.test\$\$" \\ -e ' d' \\ -e '}' \\ -e '/test:/{' \\ -e " w /tmp/n.test\$\$" \\ -e ' d' \\ -e '}' \\ - -e "/^net\./{" \\ - -e " w /tmp/n.net\$\$" \\ - -e ' d' \\ - -e '}' \\ - -e "/^mod\./{" \\ - -e " w /tmp/n.mod\$\$" \\ - -e ' d' \\ - -e '}' \\ -e "/^\$locorg\./{" \\ -e " w /tmp/n.\$locorg\$\$" \\ -e ' d' \\ --- 47,66 ---- $sort <\$active | $sed >/tmp/n.tmp\$\$ \\ -e 's/^\([^ ]*\) .*\$/\1:/' \\ -e '/^control:/{' \\ + -e " s/:/!/" \\ -e " w /tmp/n.test\$\$" \\ -e ' d' \\ -e '}' \\ -e '/^junk:/{' \\ + -e " s/:/!/" \\ -e " w /tmp/n.test\$\$" \\ -e ' d' \\ -e '}' \\ -e '/test:/{' \\ + -e " s/:/!/" \\ -e " w /tmp/n.test\$\$" \\ -e ' d' \\ -e '}' \\ -e "/^\$locorg\./{" \\ -e " w /tmp/n.\$locorg\$\$" \\ -e ' d' \\ *************** *** 82,93 **** -e " w /tmp/n.\$state\$\$" \\ -e ' d' \\ -e '}' \\ - -e "/^fa\./{" \\ - -e " w /tmp/n.fa\$\$" \\ - -e ' d' \\ - -e '}' - - $sed </tmp/n.tmp\$\$ >/tmp/n.local\$\$ \\ -e "/^\$cntry\./{" \\ -e " w /tmp/n.\$cntry\$\$" \\ -e ' d' \\ --- 77,82 ---- *************** *** 95,102 **** -e "/^\$cont\./{" \\ -e " w /tmp/n.\$cont\$\$" \\ -e ' d' \\ ! -e '}' \\ -e "/^to\./{" \\ -e " w /tmp/n.to\$\$" \\ -e ' d' \\ -e '}' \\ --- 84,94 ---- -e "/^\$cont\./{" \\ -e " w /tmp/n.\$cont\$\$" \\ -e ' d' \\ ! -e '}' ! ! $sed </tmp/n.tmp\$\$ >/tmp/n.local\$\$ \\ -e "/^to\./{" \\ + -e " s/:/!/" \\ -e " w /tmp/n.to\$\$" \\ -e ' d' \\ -e '}' \\ *************** *** 144,150 **** /tmp/n.\$state\$\$ \\ /tmp/n.\$cntry\$\$ \\ /tmp/n.\$cont\$\$ \\ - /tmp/n.mod\$\$ \\ /tmp/n.news\$\$ \\ /tmp/n.comp\$\$ \\ /tmp/n.sci\$\$ \\ --- 136,141 ---- *************** *** 152,160 **** /tmp/n.soc\$\$ \\ /tmp/n.misc\$\$ \\ /tmp/n.talk\$\$ \\ - /tmp/n.net\$\$ \\ - /tmp/n.fa\$\$ \\ /tmp/n.test\$\$ \\ | $uniq >\$dotdir/.newsrc $rm -f /tmp/n.to\$\$ \\ --- 143,150 ---- /tmp/n.soc\$\$ \\ /tmp/n.misc\$\$ \\ /tmp/n.talk\$\$ \\ /tmp/n.test\$\$ \\ + /tmp/n.to\$\$ \\ | $uniq >\$dotdir/.newsrc $rm -f /tmp/n.to\$\$ \\ *************** *** 166,172 **** /tmp/n.\$state\$\$ \\ /tmp/n.\$cntry\$\$ \\ /tmp/n.\$cont\$\$ \\ - /tmp/n.mod\$\$ \\ /tmp/n.news\$\$ \\ /tmp/n.comp\$\$ \\ /tmp/n.sci\$\$ \\ --- 156,161 ---- *************** *** 173,180 **** /tmp/n.soc\$\$ \\ /tmp/n.rec\$\$ \\ /tmp/n.talk\$\$ \\ - /tmp/n.net\$\$ \\ - /tmp/n.fa\$\$ \\ /tmp/n.misc\$\$ \\ /tmp/n.test\$\$ --- 162,167 ---- *************** *** 182,188 **** Done. If you have never used the news system before, you may find the articles ! in mod.announce.newuser to be helpful. There is also a manual entry for rn. To get rid of newsgroups you aren't interested in, use the 'u' command. Type h for help at any time while running rn. --- 169,175 ---- Done. If you have never used the news system before, you may find the articles ! in news.announce.newusers to be helpful. There is also a manual entry for rn. To get rid of newsgroups you aren't interested in, use the 'u' command. Type h for help at any time while running rn. *** ../old/newsnews.SH Fri Nov 21 13:42:52 1986 --- newsnews.SH Mon Oct 9 23:24:36 1989 *************** *** 23,28 **** her own message whenever something new happens to rn, and then the file will again be displayed, just once for each person. ! Larry Wall sdcrdcf!lwall !GROK!THIS! $eunicefix newsnews --- 23,28 ---- her own message whenever something new happens to rn, and then the file will again be displayed, just once for each person. ! Larry Wall lwall@jpl-devvax.jpl.nasa.gov !GROK!THIS! $eunicefix newsnews *** ../old/rn.1 Fri Nov 21 14:39:24 1986 --- rn.1 Tue Oct 10 22:26:38 1989 *************** *** 1416,1422 **** .Sp Newsgroups: %(%F=^$?%C:%F) .br ! Subject: %(%S=^$?%"\n\nSubject: ":Re: %S) .br Summary: .br --- 1416,1422 ---- .Sp Newsgroups: %(%F=^$?%C:%F) .br ! Subject: %(%S=^$?%"\en\enSubject: ":Re: %S) .br Summary: .br *************** *** 1430,1436 **** .br Followup-To: .br ! Distribution: %(%i=^$?%"\nDistribution: ":%D) .br Organization: %o .br --- 1430,1436 ---- .br Followup-To: .br ! Distribution: %(%i=^$?%"\enDistribution: ":%D) .br Organization: %o .br *************** *** 1630,1636 **** .I rn that it should gobble up one character after the F. .SH AUTHOR ! Larry Wall <lwall@sdcrdcf.UUCP> .br Regular expression routines are borrowed from emacs, by James Gosling. .SH FILES --- 1630,1636 ---- .I rn that it should gobble up one character after the F. .SH AUTHOR ! Larry Wall <lwall@jpl-devvax.jpl.nasa.gov> .br Regular expression routines are borrowed from emacs, by James Gosling. .SH FILES *** ../old/subs.help.SH Fri Nov 21 13:42:37 1986 --- subs.help.SH Mon Oct 9 23:07:05 1989 *************** *** 21,27 **** c Current newsgroup, directory form C Current newsgroup, dot form d Full name of newsgroup directory (%P/%c) ! D Distribution line from current article\ f Who the current article is from F Newsgroups to followup to (from Newsgroups and Followup-To) h (This help message) --- 21,27 ---- c Current newsgroup, directory form C Current newsgroup, dot form d Full name of newsgroup directory (%P/%c) ! D Distribution line from current article f Who the current article is from F Newsgroups to followup to (from Newsgroups and Followup-To) h (This help message) *************** *** 41,47 **** r Last reference (parent article id) R References list for followup article s Subject, with all Re's and (nf)'s stripped off ! S Subject, with one Re stripped off\ t New To line derived from From and Reply-To (Internet format) T New To line derived from Path u Number of unread articles --- 41,47 ---- r Last reference (parent article id) R References list for followup article s Subject, with all Re's and (nf)'s stripped off ! S Subject, with one Re stripped off t New To line derived from From and Reply-To (Internet format) T New To line derived from Path u Number of unread articles *** ../old/term.c Fri Nov 21 14:39:32 1986 --- term.c Mon Oct 2 19:43:21 1989 *************** *** 121,126 **** --- 121,129 ---- char *tgetstr(); char *s; int status; + #ifdef TIOCGWINSZ + struct winsize winsize; + #endif #ifdef PENDING #ifndef FIONREAD *************** *** 204,209 **** --- 207,218 ---- else CR = "\r"; } + #ifdef TIOCGWINSZ + if (ioctl(1, TIOCGWINSZ, &winsize)>=0) { + if (winsize.ws_row>0) LINES=winsize.ws_row; + if (winsize.ws_col>0) COLS=winsize.ws_col; + } + #endif #else ?????? /* Roll your own... */ #endif *** ../old/util.c Fri Nov 21 14:24:16 1986 --- util.c Tue Oct 10 20:20:03 1989 *************** *** 32,39 **** char *s, *shl; { int status, pid, w; ! register int (*istat)(), (*qstat)(); ! int (*signal())(); char *shell; #ifdef SIGTSTP --- 32,39 ---- char *s, *shl; { int status, pid, w; ! register void (*istat)(), (*qstat)(); ! void (*signal())(); char *shell; #ifdef SIGTSTP