Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!bcm!bcm.tmc.edu!sob From: sob@bcm.tmc.edu (Stan Barber) Newsgroups: comp.sources.bugs Subject: patch 42 to rn creating rn/rrn combo (2 of 3) Message-ID: <110@gazette.bcm.tmc.edu> Date: 7 Jan 90 11:06:00 GMT Sender: usenet@bcm.tmc.edu Organization: Baylor College of Medicine, Houston, Tx Lines: 2622 Status: O Description: This is an official patch for rn 4.3. It is the first official to originate from someone other than the author of rn, Larry Wall. Larry has agreed to allow me (Stan Barber) to maintain patches to this version of rn until such time that a new release of rn is available. This one logical patch is actually composed of three physical patches numbered 41,42 and 43. Please install all of them if you intend to install any of them. This is the second part, patch #42. If you missed the other parts, you can get them via the Archive Server by sending mail to "archive-server@bcm.tmc.edu" with the subject line "send public rn.41.patch" for patch #41 or "send public rn.43.patch" for patch #43. Comments or other fixes should be sent to rrn@lib.tmc.edu. Please see patch #41 for a description of what is fixed. NOTE: Even if you don't intented to use RRN, you will still want to apply this patch to take advantage of all the bug fixes. Fix: cd to your rn source directory and patch away NOTE: You must be running patch 2.0 with patches up though #12 to insure this will patch correctly. It is known for a fact that patch 2.0 with patches up to #7 will fail. Index: patchlevel Prereq: 41 *** patchlevel Mon Feb 2 17:24:23 1987 --- ../rn/patchlevel Mon Nov 6 00:51:21 1989 *************** *** 1 ! Patch #: 41 --- 1 ----- ! Patch #: 42 Index: Configure Prereq: 4.3.1.6 *** Configure Fri Nov 21 16:44:21 1986 --- ../rn/Configure Mon Dec 18 00:03:20 1989 *************** *** 3,9 # If these # comments don't work, trim them. Don't worry about the other # shell scripts, Configure will trim # comments from them for you. # ! # $Header: Configure,v 4.3.1.6 86/07/24 14:41:18 lwall Exp $ # # $Log: Configure,v $ # Revision 4.3.1.6 86/07/24 14:41:18 lwall --- 3,9 ----- # If these # comments don't work, trim them. Don't worry about the other # shell scripts, Configure will trim # comments from them for you. # ! # $Header: Configure,v 4.3.2.15 89/12/18 00:02:04 sob Exp $ # # $Log: Configure,v $ # Revision 4.3.2.15 89/12/18 00:02:04 sob *************** *** 6,11 # $Header: Configure,v 4.3.1.6 86/07/24 14:41:18 lwall Exp $ # # $Log: Configure,v $ # Revision 4.3.1.6 86/07/24 14:41:18 lwall # Handles missing Relay-Version: from news 2.10.3 headers. # --- 6,57 ----- # $Header: Configure,v 4.3.2.15 89/12/18 00:02:04 sob Exp $ # # $Log: Configure,v $ + # Revision 4.3.2.15 89/12/18 00:02:04 sob + # Fixed bug reported by Jim Thompson on the + # use of ypmatch against the so-called services.byname YP map. + # Sigh. Will YP EVER work? + # + # Revision 4.3.2.14 89/12/17 12:55:39 sob + # Minor bug fix to yp detection code. + # + # Revision 4.3.2.13 89/12/17 01:53:21 sob + # Changed from using ypcat to using ypmatch + # + # Revision 4.3.2.12 89/12/15 19:35:20 sob + # getpwent was not getting defined when YP is present. + # bug reported by dglo@ads.com + # + # Revision 4.3.2.11 89/12/13 00:42:59 sob + # Included suggested patches by weening@gang-of-four.stanford.edu. + # + # Revision 4.3.2.10 89/12/09 01:47:49 sob + # Configure now removes myread when exiting. + # + # Revision 4.3.2.9 89/12/08 22:41:14 sob + # Added minor changes suggested by weening@Gang-of-Four.Stanford.EDU and + # jik@pit-manager.mit.edu + # + # Revision 4.3.2.8 89/11/28 00:30:06 sob + # Attempted to make some of the references to the news software version + # levels more clear for the benefit of novice news installers. + # + # Revision 4.3.2.7 89/11/27 02:25:26 sob + # Better detection of SunOS 4.0 and getpwent will be used on systems + # that support YP, just in case. + # + # Revision 4.3.2.6 89/11/27 01:32:56 sob + # Added some changes suggested by various usenet postings. + # Limited support for NeXT. + # + # Revision 4.3.2.5 89/11/08 04:47:27 sob + # Added VOIDSIG handling for SunOS 4.X + # + # Revision 4.3.2.4 89/11/06 00:05:38 sob + # Added RRN support originally distributed with NNTP 1.5 + # + # Revision 4.3.2.3 89/11/05 23:35:43 sob + # Added checks for ultrix and sun + # # Revision 4.3.1.6 86/07/24 14:41:18 lwall # Handles missing Relay-Version: from news 2.10.3 headers. # *************** *** 56,61 inews='' grep='' egrep='' contains='' lib='' nametype='' --- 102,108 ----- inews='' grep='' egrep='' + ypmatch='' contains='' lib='' nametype='' *************** *** 77,82 Log='' Header='' sitename='' orgname='' isadmin='' newsadmin='' --- 124,130 ----- Log='' Header='' sitename='' + domain='' orgname='' isadmin='' newsadmin='' *************** *** 110,115 fcntl='' ioctl='' normsig='' havetlib='' getpwent='' gethostname='' --- 158,164 ----- fcntl='' ioctl='' normsig='' + voidsig='' havetlib='' getpwent='' gethostname='' *************** *** 117,122 phostname='' hostcmd='' norelay='' CONFIG='' echo "Beginning of configuration questions for rn kit." --- 166,174 ----- phostname='' hostcmd='' norelay='' + isrrn='' + serverfile='' + NNTPSRC='' CONFIG='' echo "Beginning of configuration questions for rn kit." *************** *** 128,134 export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) if test ! -t 0; then ! echo "Say 'sh Configure', not 'sh usg echo exit 1 >v7 else ! if $contains fcntl.o libc.list >/dev/null 2>&1 ; then ! echo "Looks kind of like a USG system, but we'll see..." ! echo exit 1 >bsd ! echo exit 0 >usg echo exit 1 >v7 else echo "Looks kind of like a version 7 system, but we'll see..." --- 324,333 ----- echo exit 1 >usg echo exit 1 >v7 else ! if $contains SIGTSTP /usr/include/sys/signal.h >/dev/null 2>&1 ; then ! echo "Looks sort of like a BSD system, but we'll see..." ! echo exit 0 >bsd ! echo exit 1 >usg echo exit 1 >v7 else if $contains fcntl.o libc.list >/dev/null 2>&1 ; then *************** *** 278,287 echo exit 0 >usg echo exit 1 >v7 else ! echo "Looks kind of like a version 7 system, but we'll see..." ! echo exit 1 >bsd ! echo exit 1 >usg ! echo exit 0 >v7 fi fi if $contains vmssystem.o libc.list >/dev/null 2>&1 ; then --- 330,346 ----- echo exit 1 >usg echo exit 1 >v7 else ! if $contains fcntl.o libc.list >/dev/null 2>&1 ; then ! echo "Looks kind of like a USG system, but we'll see..." ! echo exit 1 >bsd ! echo exit 0 >usg ! echo exit 1 >v7 ! else ! echo "Looks kind of like a version 7 system, but we'll see..." ! echo exit 1 >bsd ! echo exit 1 >usg ! echo exit 0 >v7 ! fi fi fi if $contains vmssystem.o libc.list >/dev/null 2>&1 ; then *************** *** 329,341 echo "Hooray, it works! I was beginning to wonder." cpp='/lib/cpp' else ! echo 'Hmm...maybe you already told me...' ! case "$cpp" in ! '') ;; ! *) $cpp testcpp.c >testcpp.out 2>&1;; ! esac ! if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Hooray, you did! I was beginning to wonder." else echo "Nope. I can't find a C preprocessor. Name one: $c" . myread --- 388,396 ----- echo "Hooray, it works! I was beginning to wonder." cpp='/lib/cpp' else ! if $contains 'abc +xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Found it! You're on a NeXT, aren't you?" ! cpp='/lib/cpp' else echo 'Hmm...maybe you already told me...' case "$cpp" in *************** *** 337,346 if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then echo "Hooray, you did! I was beginning to wonder." else ! echo "Nope. I can't find a C preprocessor. Name one: $c" ! . myread ! cpp="$ans" ! $cpp testcpp.c >testcpp.out 2>&1 if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then echo "OK, that will do." else --- 392,402 ----- echo "Found it! You're on a NeXT, aren't you?" cpp='/lib/cpp' else ! echo 'Hmm...maybe you already told me...' ! case "$cpp" in ! '') ;; ! *) $cpp testcpp.c >testcpp.out 2>&1;; ! esac if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then echo "Hooray, you did! I was beginning to wonder." else *************** *** 342,348 cpp="$ans" $cpp testcpp.c >testcpp.out 2>&1 if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "OK, that will do." else echo "Sorry, I can't get that to work. Go find one." exit 1 --- 398,404 ----- *) $cpp testcpp.c >testcpp.out 2>&1;; esac if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Hooray, you did! I was beginning to wonder." else echo "Nope. I can't find a C preprocessor. Name one: $c" . myread *************** *** 344,351 if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then echo "OK, that will do." else ! echo "Sorry, I can't get that to work. Go find one." ! exit 1 fi fi fi --- 400,415 ----- if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then echo "Hooray, you did! I was beginning to wonder." else ! echo "Nope. I can't find a C preprocessor. Name one: $c" ! . myread ! cpp="$ans" ! $cpp testcpp.c >testcpp.out 2>&1 ! if $contains 'abc+xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "OK, that will do." ! else ! echo "Sorry, I can't get that to work. Go find one." ! exit 1 ! fi fi fi fi *************** *** 352,358 fi fi rm -f testcpp.c testcpp.out ! : check for pdp11 echo " " if usg; then --- 416,423 ----- fi fi rm -f testcpp.c testcpp.out ! : undefine voidsig ! voidsig=undef : check for pdp11 echo " " if usg; then *************** *** 375,380 else echo "This doesn't look like a pdp11 to me." fi : see if sh knows # comments echo " " --- 440,461 ----- else echo "This doesn't look like a pdp11 to me." fi + : check for ultrix + cat <<'EOT' >ultrix.c + #ifdef ultrix + exit 0 + #else + exit 1 + #endif + EOT + $cpp ultrix.c | grep exit >ultrix + chmod 755 ultrix + $eunicefix ultrix + rm ultrix.c + if ultrix; then + echo "Running ultrix, eh?" + voidsig=define + fi : check for sun 4.0 cat <<'EOT' >sun.c *************** *** 376,381 echo "This doesn't look like a pdp11 to me." fi : see if sh knows # comments echo " " echo "Checking your sh to see if it knows about # comments..." --- 457,482 ----- voidsig=define fi + : check for sun 4.0 + cat <<'EOT' >sun.c + #ifdef sun + exit 0 + #else + exit 1 + #endif + EOT + $cpp sun.c | grep exit >sun + chmod 755 sun + $eunicefix sun + rm sun.c + if sun; then + echo "This looks like a sun to me." + if test -f /usr/kvm/libkvm.a ; then + echo "And it appears your are running SunOS 4.0 or greater." + voidsig=define + fi + fi + : see if sh knows # comments echo " " echo "Checking your sh to see if it knows about # comments..." *************** *** 439,445 : find out where common programs are echo " " echo "Locating common programs..." ! pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /etc /usr/lib" cat <loc $startsh thing=\$1 --- 540,546 ----- : find out where common programs are echo " " echo "Locating common programs..." ! pth="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /etc /usr/lib /usr/etc /usr/5bin" cat <loc $startsh thing=\$1 *************** *** 468,474 chmod 755 loc $eunicefix loc loclist="expr sed echo cat rm mv cp tail tr mkdir sort uniq grep" ! trylist="test inews egrep more pg Mcc" for file in $loclist; do xxx=`loc $file $file $pth` eval $file=$xxx --- 569,575 ----- chmod 755 loc $eunicefix loc loclist="expr sed echo cat rm mv cp tail tr mkdir sort uniq grep" ! trylist="test inews egrep more pg Mcc ypmatch" for file in $loclist; do xxx=`loc $file $file $pth` eval $file=$xxx *************** *** 538,544 echo=echo ;; esac ! : decide how portable to be case "$portable" in define) dflt=y;; --- 639,666 ----- echo=echo ;; esac ! $echo " " ! : test yp ! case $ypmatch in ! ypmatch) ! $echo "I don't see ypmatch out there, so YP is not available. We'll seach the passwd" ! $echo "file the old fashioned way!" ! ;; ! *) ! $ypmatch login services > /dev/null 2>/dev/null ! status=$? ! if $test $status -ne 0 ; then ! $echo "YP installed, but not operational. We won't use it." ! else ! $echo "YP installed and operational." ! fi ! ! ;; ! esac ! if $test "$ypmatch" = "ypmatch"; then ! ypmatch="" ! fi ! : decide how portable to be case "$portable" in define) dflt=y;; *************** *** 585,591 $echo "" else name=\`$expr x\$1 : '..\([^/]*\)'\` ! dir=\`$sed &2 --- 707,718 ----- $echo "" else name=\`$expr x\$1 : '..\([^/]*\)'\` ! if $test "$ypmatch" != ""; then ! dir=\`$ypmatch \$name passwd 2>/dev/null | $sed "s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/"'\` ! fi ! if $test "\$dir" = ""; then ! dir=\`$sed &2 *************** *** 633,639 hostcmd="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' /dev/null 2>&1 ; then ! dflt=news else if eunice; then dflt=system --- 887,893 ----- dflt=news else if $contains "^usenet:" /etc/passwd >/dev/null 2>&1 ; then ! dflt=usenet else if eunice; then dflt=system *************** *** 743,749 in charge of administering news. (If you don't have such a user, take the default answer.) What is the login name (not directory) that is used for news EOM ! echo $n "administration? [$dflt] $c" . myread newsadmin="$ans" case $newsadmin in --- 906,912 ----- in charge of administering news. (If you don't have such a user, take the default answer.) What is the login name (not directory) that is used for news EOM ! $echo $n "administration? [$dflt] $c" . myread newsadmin="$ans" case $newsadmin in *************** *** 769,775 blurfl*) ;; *) $echo "Directory $libexp not found";; esac ! echo $n "Where is your news library (~name okay)? [$dflt] $c" . myread case "$ans" in '') ans="$dflt";; --- 932,942 ----- blurfl*) ;; *) $echo "Directory $libexp not found";; esac ! $echo "(If you are building this as rrn, it is a good idea" ! $echo "to make your news library directory the same as where the rn" ! $echo "library directory is, usually /usr/local/lib/rn)" ! $echo " " ! $echo $n "Where is your news library (~name okay)? [$dflt] $c" . myread case "$ans" in '') ans="$dflt";; *************** *** 778,784 case $lib in ~*) libexp=`filexp $lib` ! echo "(That is $libexp on this particular system.)" case $portable in undef) lib=$libexp ;; esac --- 945,951 ----- case $lib in ~*) libexp=`filexp $lib` ! $echo "(That is $libexp on this particular system.)" case $portable in undef) lib=$libexp ;; esac *************** *** 789,803 esac done if $test -f $libexp/inews; then ! echo "Aha! Inews is really in $libexp! Maybe this is 2.10.2..." ! case $inews in ! inews) ! : null ! ;; ! *) ! echo "(Make sure $inews isn't an old version.)" ! ;; ! esac inews=$libexp/inews fi --- 956,963 ----- esac done if $test -f $libexp/inews; then ! $echo "Aha! Inews is really in $libexp!" ! $echo "Maybe this is Bnews 2.10.2 or later, or rrn." inews=$libexp/inews fi *************** *** 1019,1025 control codes between articles, so one of those would be first. On your system, if a file is in mailbox format, what is the first character of EOM ! echo $n "that file? [$dflt] $c" . myread mboxchar="$ans" case $mboxchar in --- 1179,1185 ----- control codes between articles, so one of those would be first. On your system, if a file is in mailbox format, what is the first character of EOM ! $echo $n "that file? [$dflt] $c" . myread mboxchar="$ans" case $mboxchar in *************** *** 1033,1039 EOM case $shsharp in false) ! echo "comments in mbox.saver.std." ;; true) echo "comments in the shell script itself." --- 1193,1199 ----- EOM case $shsharp in false) ! $echo "comments in mbox.saver.std." ;; true) $echo "comments in the shell script itself." *************** *** 1036,1042 echo "comments in mbox.saver.std." ;; true) ! echo "comments in the shell script itself." ;; esac esac --- 1196,1202 ----- $echo "comments in mbox.saver.std." ;; true) ! $echo "comments in the shell script itself." ;; esac esac *************** *** 1040,1046 ;; esac esac ! : where do we get termlib routines from $echo " " ans=`loc libcurses.a x /usr/lib /usr/local/lib /lib` --- 1200,1206 ----- ;; esac esac ! $rm -f grimble : where do we get termlib routines from $echo " " ans=`loc libcurses.a x /usr/lib /usr/local/lib /lib` *************** *** 1111,1117 esac ;; esac ! : see if there is a whoami file if $test -r /usr/include/whoami.h ; then whoami=define --- 1271,1277 ----- esac ;; esac ! $rm -f grimble : see if there is a whoami file if $test -r /usr/include/whoami.h ; then whoami=define *************** *** 1121,1127 fi : see if this is a termio system ! if $test -r /usr/include/termio.h ; then termio=define $echo "termio.h found." else --- 1281,1287 ----- fi : see if this is a termio system ! if $test -r /usr/include/termio.h -a ! ultrix -a ! sun ; then termio=define $echo "termio.h found." else *************** *** 1134,1140 fi fi ! : see if this is a termio system if $test -r /usr/include/fcntl.h ; then fcntl=define $echo "fcntl.h found." --- 1294,1300 ----- fi fi ! : see if this system has fcntl if $test -r /usr/include/fcntl.h ; then fcntl=define $echo "fcntl.h found." *************** *** 1161,1166 novfork='define' fi : see if there is a getpw if $contains getpw.o libc.list >/dev/null 2>&1 ; then $echo "getpw() found." --- 1321,1331 ----- novfork='define' fi + : see if YP could be running here + if $contains yp_master.o libc.list >/dev/null 2>&1 ; then + $echo "YP may be running -- will use getpwent(), just in case." + getpwent='define' + else : see if there is a getpw if $contains getpw.o libc.list >/dev/null 2>&1 ; then $echo "getpw() found." *************** *** 1169,1174 $echo "No getpw() found--will use getpwent() instead." getpwent='define' fi : see how we will look up site name douname=undef --- 1334,1340 ----- $echo "No getpw() found--will use getpwent() instead." getpwent='define' fi + fi : see how we will look up site name douname=undef *************** *** 1281,1287 fi fi ! : locate spool directory case "$spool" in '') dflt=/usr/spool/news --- 1447,1541 ----- fi fi ! : locate spool directory and check if rrn ! case "$isrrn" in ! define) ! dflt="y";; ! *) ! dflt="n";; ! esac ! isrrn='' ! while $test -z "$isrrn" ; do ! $echo " " ! $echo $n "Do you want this built as remote rn (rrn)? [$dflt] $c" ! . myread ! case "$ans" in ! '') ans="$dflt";; ! esac ! case "$ans" in ! n*) ! isrrn=undef;; ! y*) ! isrrn=define ! spool=/tmp ! $echo "net.foobar 00001 00001 y" > .falseactive ! ! case "$serverfile" in ! '') dflt="no default" ;; ! *) dflt="$serverfile";; ! esac ! ! $cat <<'EOM' ! ! rrn determines the machine to use as a news server by two means: ! ! 1. It examines the environment variable NNTPSERVER for ! a machine name; this allows users to use server machines ! other than the default. ! ! 2. It looks in a file which contains the name of a server ! machine. ! ! You must create the file mentioned in (2), above. Simply put the name ! of the machine you wish to use as your news server in this file. ! If you really want, you can use # for comments and blank lines in ! this file as well. ! ! EOM ! ! ans='' ! while $test -z "$ans" ; do ! $echo $n "Enter the name of the news server file: [$dflt] $c" ! . myread ! done ! serverfile="$ans" ! ! case "$NNTPSRC" in ! '') dflt="no default";; ! *) dflt="$NNTPSRC";; ! esac ! ! ans='blurfl/dyick' ! while $test ! -d "$ans"; do ! $echo $n "Enter the pathname of the NNTP source directory: [$dflt] $c" ! . myread ! case "$ans" in ! '') ans="$dflt";; ! esac ! ans=`filexp "$ans"` ! if $test ! -r $ans/common/nntp.h ; then ! $echo "Can't find $ans/common/nntp.h!" ! ans='blurfl/dyick' ! fi ! done ! NNTPSRC="$ans" ! cat > server.h </dev/null 2>&1; then case "$norelay" in undef) dflt="n";; --- 1614,1620 ----- done : check for 2.10.2 and above ! $echo " " if $contains ' [0-9][0-9]* [0-9]' "$myactive" >/dev/null 2>&1; then case "$norelay" in undef) dflt="y";; *************** *** 1357,1364 echo " " if $contains ' [0-9][0-9]* [0-9]' "$myactive" >/dev/null 2>&1; then case "$norelay" in ! undef) dflt="n";; ! *) dflt="y";; esac $echo $n "Are you running 2.10.3 or above? [${dflt}] $c" . myread --- 1617,1624 ----- $echo " " if $contains ' [0-9][0-9]* [0-9]' "$myactive" >/dev/null 2>&1; then case "$norelay" in ! undef) dflt="y";; ! *) dflt="n";; esac case "$isrrn" in define) *************** *** 1360,1366 undef) dflt="n";; *) dflt="y";; esac ! $echo $n "Are you running 2.10.3 or above? [${dflt}] $c" . myread case "$ans" in '') ans=$dflt;; --- 1620,1631 ----- undef) dflt="y";; *) dflt="n";; esac ! case "$isrrn" in ! define) ! $echo "Is your NNTP server running an old version of news software," ;; ! *) $echo "Is your system running an old version of news software," ;; ! esac ! $echo $n "predating B News 2.10.3? [${dflt}] $c" . myread case "$ans" in '') ans=$dflt;; *************** *** 1366,1372 '') ans=$dflt;; esac case "$ans" in ! n*) norelay='undef' echo "Looks like you are running at least 2.10.2 news." ;; --- 1631,1637 ----- '') ans=$dflt;; esac case "$ans" in ! y*) norelay='undef' $echo "Looks like you are running at least 2.10.2 news." ;; *************** *** 1368,1374 case "$ans" in n*) norelay='undef' ! echo "Looks like you are running at least 2.10.2 news." ;; *) norelay='define' ;; esac --- 1633,1639 ----- case "$ans" in y*) norelay='undef' ! $echo "Looks like you are running at least 2.10.2 news." ;; *) norelay='define' ;; esac *************** *** 1374,1381 esac mininact=define else ! echo "It doesn't look like you are running 2.10.2 news yet. Are you planning" ! echo $n "to install it in the near future? [y] $c" . myread case $ans in n*) mininact=undef ;; --- 1639,1646 ----- esac mininact=define else ! $echo "It doesn't look like you are running 2.10.2 news yet. Are you planning" ! $echo $n "to install it in the near future? [y] $c" . myread case $ans in n*) mininact=undef ;; *************** *** 1495,1501 done : determine mailer for Rnmail to use ! echo " " if $test -f /usr/lib/sendmail; then mailer=/usr/lib/sendmail else --- 1760,1766 ----- done : determine mailer for Rnmail to use ! $echo " " if $test -f /usr/lib/sendmail; then mailer=/usr/lib/sendmail else *************** *** 1505,1511 mailer=/bin/mail fi fi ! echo "Mail sender is $mailer" : check for internet mailer case "$internet" in --- 1770,1776 ----- mailer=/bin/mail fi fi ! $echo "Mail sender is $mailer" : check for internet mailer case "$internet" in *************** *** 1511,1517 case "$internet" in define) dflt=y;; undef) dflt=n;; ! *) dflt=n;; esac cat < makedepend.out &"' ! echo $n "Would you like me to run it for you (it takes quite a while)? [n] $c" . myread case "$ans" in y*) makedepend;; --- 2221,2230 ----- . $file done ! $echo " " ! $echo 'Now you need to generate make dependencies by running "makedepend".' ! $echo 'You might prefer to run it in background: "makedepend > makedepend.out &"' ! $echo $n "Would you like me to run it for you (it takes quite a while)? [n] $c" . myread case "$ans" in y*) makedepend;; *************** *** 1948,1951 case "$ans" in y*) makedepend;; esac : end of Configure --- 2229,2233 ----- case "$ans" in y*) makedepend;; esac + $rm -f myread : end of Configure Index: Pnews.SH Prereq: 4.3.1.4 *** Pnews.SH Fri Nov 21 16:45:17 1986 --- ../rn/Pnews.SH Sun Dec 17 01:57:17 1989 *************** *** 4,10 echo "Extracting Pnews (with variable substitutions)" $spitshell >Pnews <Pnews <>Pnews <<'!NO!SUBS!' --- 110,116 ----- rm=${rm-rm} tr=${tr-tr} inews=${inews-inews} + ypmatch=${ypmatch} !GROK!THIS! $spitshell >>Pnews <<'!NO!SUBS!' *************** *** 102,108 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. --- 127,133 ----- 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. Type "g news.announce.newusers" and you are on your way. *************** *** 104,110 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 --- 129,135 ----- 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. Type "g news.announce.newusers" and you are on your way. EOM *************** *** 151,156 trap "$rescue" 2 $echo "" set X `$sed < $tmpart -n -e '/^Distribution: /{' -e p -e q -e '}' -e '/^$/q'` shift case $# in --- 176,204 ----- 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 *************** *** 185,191 # 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 --- 233,239 ----- # tell them what we think they are doing... !DIST! case $1 in ! world.*|comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*|alt.*) $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 *************** *** 193,198 EOM ;; $cont.*) $echo 'This program posts news to many machines throughout the continent.' ;; --- 241,255 ----- EOM ;; + vmsnet.*) + $echo 'This program posts news to many machines.' + ;; + bit.*) + $echo 'This program posts news to many machines on BITNET.' + ;; + ddn.*) + $echo 'This program posts news to many machines throughout the internet.' + ;; $cont.*) $echo 'This program posts news to many machines throughout the continent.' ;; *************** *** 214,219 *.*) $echo 'This program may post news to many machines.' ;; *) $echo 'This program posts news to everyone on the machine.' ;; --- 271,279 ----- *.*) $echo 'This program may post news to many machines.' ;; + to.*) + $echo 'This program may post news to a partcular machine.' + ;; *) $echo 'This program posts news to everyone on the machine.' ;; *************** *** 493,499 ;; esac case $ng in ! net.*|mod.*|comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*) defdist=world dist=h ;; --- 553,559 ----- ;; esac case $ng in ! bit.*|pubnet.*|bionet.*|vmsnet.*|comp.*|news.*|sci.*|rec.*|misc.*|soc.*|talk.*|alt.*) defdist=world dist=h ;; *************** *** 497,502 defdist=world dist=h ;; *.*) defdist=`expr "X$ng" : 'X\([a-z0-9]*\)'` dist=h --- 557,570 ----- defdist=world dist=h ;; + ddn.*) + defdist=inet + dist=h + ;; + to.*) + defdist='' + dist='' + ;; *.*) defdist=`expr "X$ng" : 'X\([a-z0-9]*\)'` dist=h *************** *** 518,525 Your local distribution prefixes are: Local organization: $loc ! Organization: $org ! City: $city $stpr: $state Country: $cntry Continent: $cont --- 586,593 ----- 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='' ;; *) --- 614,620 ----- ;; ''|$loc*|$org*|$city*|$state*|$cntry*|$cont*|$defdist) ;; ! world*|comp*|news*|sci*|rec*|misc*|soc*|talk*|alt*) 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) --- 631,637 ----- esac done ! follow="" case $# in 0) *************** *** 607,613 esac case ${NAME-$nametype} in bsd) ! fullname=`$sed /dev/null | $sed "s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^,:;]*\).*"'$'"/\1/"` ! fi ! if $test "$fullname" = ""; then ! fullname=`$sed /dev/null | $sed "s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q"` + fi + if $test "$fullname" = ""; then fullname=`$sed $tmpart < $tmpart < Pnews.h.new ;; + *) sed < Pnews.header -e '/^#NORMAL/s/^#NORMAL//' > Pnews.h.new ;; + esac + mv Pnews.h.new Pnews.header $eunicefix Pnews.header Index: Makefile.SH Prereq: 4.3.1.2 *** Makefile.SH Fri Nov 21 16:23:18 1986 --- ../rn/Makefile.SH Sat Dec 9 01:50:13 1989 *************** *** 1,5 case $CONFIG in ! '') . config.sh ;; esac echo "Extracting Makefile (with variable substitutions)" cat >Makefile <Makefile <Makefile <Makefile <>Makefile <<'!NO!SUBS!' ! public = rn newsetup newsgroups Pnews Rnmail private = norm.saver mbox.saver ng.help art.help pager.help subs.help makedir filexp Pnews.header manpages = rn.1 Pnews.1 Rnmail.1 newsetup.1 newsgroups.1 --- 54,60 ----- libs = $ndirlib $termlib $jobslib !GROK!THIS! cat >>Makefile <<'!NO!SUBS!' ! #NNTPnntp=getactive public = rn newsetup newsgroups Pnews Rnmail private = norm.saver mbox.saver ng.help art.help pager.help subs.help makedir filexp Pnews.header $(nntp) manpages = rn.1 Pnews.1 Rnmail.1 newsetup.1 newsgroups.1 *************** *** 31,37 cat >>Makefile <<'!NO!SUBS!' public = rn newsetup newsgroups Pnews Rnmail ! private = norm.saver mbox.saver ng.help art.help pager.help subs.help makedir filexp Pnews.header manpages = rn.1 Pnews.1 Rnmail.1 newsetup.1 newsgroups.1 util = Makefile makedepend newsnews --- 56,62 ----- cat >>Makefile <<'!NO!SUBS!' #NNTPnntp=getactive public = rn newsetup newsgroups Pnews Rnmail ! private = norm.saver mbox.saver ng.help art.help pager.help subs.help makedir filexp Pnews.header $(nntp) manpages = rn.1 Pnews.1 Rnmail.1 newsetup.1 newsgroups.1 util = Makefile makedepend newsnews *************** *** 35,40 manpages = rn.1 Pnews.1 Rnmail.1 newsetup.1 newsgroups.1 util = Makefile makedepend newsnews h1 = addng.h art.h artio.h artsrch.h backpage.h bits.h cheat.h common.h h2 = final.h head.h help.h init.h intrp.h kfile.h last.h ndir.h ng.h h3 = ngdata.h ngsrch.h ngstuff.h only.h rcln.h rcstuff.h --- 60,66 ----- manpages = rn.1 Pnews.1 Rnmail.1 newsetup.1 newsgroups.1 util = Makefile makedepend newsnews + h1 = addng.h art.h artio.h artsrch.h backpage.h bits.h cheat.h common.h h2 = final.h head.h help.h init.h intrp.h kfile.h last.h ndir.h ng.h h3 = ngdata.h ngsrch.h ngstuff.h only.h rcln.h rcstuff.h *************** *** 39,44 h2 = final.h head.h help.h init.h intrp.h kfile.h last.h ndir.h ng.h h3 = ngdata.h ngsrch.h ngstuff.h only.h rcln.h rcstuff.h h4 = respond.h rn.h search.h sw.h term.h util.h h = $(h1) $(h2) $(h3) $(h4) --- 65,71 ----- h2 = final.h head.h help.h init.h intrp.h kfile.h last.h ndir.h ng.h h3 = ngdata.h ngsrch.h ngstuff.h only.h rcln.h rcstuff.h h4 = respond.h rn.h search.h sw.h term.h util.h + #NNTPh5 = server.h h = $(h1) $(h2) $(h3) $(h4) $(h5) *************** *** 40,46 h3 = ngdata.h ngsrch.h ngstuff.h only.h rcln.h rcstuff.h h4 = respond.h rn.h search.h sw.h term.h util.h ! h = $(h1) $(h2) $(h3) $(h4) c1 = addng.c art.c artio.c artsrch.c backpage.c bits.c cheat.c c2 = final.c head.c help.c init.c intrp.c kfile.c last.c $(NDIRC) ng.c --- 67,73 ----- h4 = respond.h rn.h search.h sw.h term.h util.h #NNTPh5 = server.h ! h = $(h1) $(h2) $(h3) $(h4) $(h5) c1 = addng.c art.c artio.c artsrch.c backpage.c bits.c cheat.c c2 = final.c head.c help.c init.c intrp.c kfile.c last.c $(NDIRC) ng.c *************** *** 46,51 c2 = final.c head.c help.c init.c intrp.c kfile.c last.c $(NDIRC) ng.c c3 = ngdata.c ngsrch.c ngstuff.c only.c rcln.c rcstuff.c c4 = respond.c rn.c search.c sw.c term.c util.c c = $(c1) $(c2) $(c3) $(c4) --- 73,79 ----- c2 = final.c head.c help.c init.c intrp.c kfile.c last.c $(NDIRC) ng.c c3 = ngdata.c ngsrch.c ngstuff.c only.c rcln.c rcstuff.c c4 = respond.c rn.c search.c sw.c term.c util.c + #NNTPc5 = $(NNTPDIR)/common/clientlib.c c = $(c1) $(c2) $(c3) $(c4) $(c5) *************** *** 47,53 c3 = ngdata.c ngsrch.c ngstuff.c only.c rcln.c rcstuff.c c4 = respond.c rn.c search.c sw.c term.c util.c ! c = $(c1) $(c2) $(c3) $(c4) obj1 = addng.o art.o artio.o artsrch.o backpage.o bits.o cheat.o obj2 = final.o head.o help.o init.o intrp.o kfile.o last.o $(NDIRO) ng.o --- 75,81 ----- c4 = respond.c rn.c search.c sw.c term.c util.c #NNTPc5 = $(NNTPDIR)/common/clientlib.c ! c = $(c1) $(c2) $(c3) $(c4) $(c5) obj1 = addng.o art.o artio.o artsrch.o backpage.o bits.o cheat.o obj2 = final.o head.o help.o init.o intrp.o kfile.o last.o $(NDIRO) ng.o *************** *** 53,58 obj2 = final.o head.o help.o init.o intrp.o kfile.o last.o $(NDIRO) ng.o obj3 = ngdata.o ngsrch.o ngstuff.o only.o rcln.o rcstuff.o obj4 = respond.o rn.o search.o sw.o term.o util.o obj = $(obj1) $(obj2) $(obj3) $(obj4) --- 81,87 ----- obj2 = final.o head.o help.o init.o intrp.o kfile.o last.o $(NDIRO) ng.o obj3 = ngdata.o ngsrch.o ngstuff.o only.o rcln.o rcstuff.o obj4 = respond.o rn.o search.o sw.o term.o util.o + #NNTPobj5 = $(NNTPDIR)/common/clientlib.o obj = $(obj1) $(obj2) $(obj3) $(obj4) $(obj5) *************** *** 54,60 obj3 = ngdata.o ngsrch.o ngstuff.o only.o rcln.o rcstuff.o obj4 = respond.o rn.o search.o sw.o term.o util.o ! obj = $(obj1) $(obj2) $(obj3) $(obj4) lintflags = -phbvxac --- 83,89 ----- obj4 = respond.o rn.o search.o sw.o term.o util.o #NNTPobj5 = $(NNTPDIR)/common/clientlib.o ! obj = $(obj1) $(obj2) $(obj3) $(obj4) $(obj5) lintflags = -phbvxac *************** *** 62,68 add2 = bsd config.h config.sh eunice filexp add3 = loc makedepend makedir mbox.saver newsetup add4 = newsgroups newsnews ng.help norm.saver pager.help ! add5 = pdp11 rn subs.help usg v7 addedbyconf = $(add1) $(add2) $(add3) $(add4) $(add5) --- 91,97 ----- add2 = bsd config.h config.sh eunice filexp add3 = loc makedepend makedir mbox.saver newsetup add4 = newsgroups newsnews ng.help norm.saver pager.help ! add5 = pdp11 rn subs.help usg v7 ultrix sun server.h addedbyconf = $(add1) $(add2) $(add3) $(add4) $(add5) *************** *** 78,83 rn: $(obj) $(CC) $(LDFLAGS) $(obj) $(libs) -o rn # if a .h file depends on another .h file... $(h): touch $@ --- 107,120 ----- rn: $(obj) $(CC) $(LDFLAGS) $(obj) $(libs) -o rn + #NNTPgetactive: getactive.o $(NNTPDIR)/common/clientlib.o + #NNTP $(CC) $(LDFLAGS) getactive.o $(NNTPDIR)/common/clientlib.o -o getactive $(libs) + + # Eek! This is gross. + $(NNTPDIR)/common/clientlib.o: + $(CC) -c $(CFLAGS) $(NNTPDIR)/common/clientlib.c + mv clientlib.o $(NNTPDIR)/common/clientlib.o + # if a .h file depends on another .h file... $(h): touch $@ *************** *** 86,91 # won't work with csh export PATH || exit 1 - mv $(rnbin)/rn $(rnbin)/rn.old - if test `pwd` != $(rnbin); then cp $(public) $(rnbin); fi cd $(rnbin); chmod 755 $(public) chmod 755 makedir --- 123,129 ----- # won't work with csh export PATH || exit 1 - mv $(rnbin)/rn $(rnbin)/rn.old + #NNTP - ln -s rn $(rnbin)/rrn - if test `pwd` != $(rnbin); then cp $(public) $(rnbin); fi cd $(rnbin); chmod 755 $(public) chmod 755 makedir *************** *** 97,102 for page in $(manpages); do \ cp $$page $(mansrc)/`basename $$page .1`.$(manext); \ done; \ fi clean: --- 135,141 ----- for page in $(manpages); do \ cp $$page $(mansrc)/`basename $$page .1`.$(manext); \ done; \ + #NNTPecho ".so man$(manext)/rn.$(manext)" > $(mansrc)/rrn.$(manext) ; \ fi clean: *************** *** 103,109 rm -f *.o realclean: ! rm -f rn *.o core $(addedbyconf) # The following lint has practically everything turned on. Unfortunately, # you have to wade through a lot of mumbo jumbo that can't be suppressed. --- 142,149 ----- rm -f *.o realclean: ! rm -f rn *.o core $(addedbyconf) ! #NNTP rm -f $(NNTPDIR)/common/clientlib.o getactive # The following lint has practically everything turned on. Unfortunately, # you have to wade through a lot of mumbo jumbo that can't be suppressed. *************** *** 114,120 lint $(lintflags) $(defs) $(c) > rn.fuzz depend: ! makedepend # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE $(obj): --- 154,160 ----- lint $(lintflags) $(defs) $(c) > rn.fuzz depend: ! ./makedepend # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE $(obj): *************** *** 120,123 $(obj): @ echo "You haven't done a "'"make depend" yet!'; exit 1 !NO!SUBS! $eunicefix Makefile --- 160,168 ----- $(obj): @ echo "You haven't done a "'"make depend" yet!'; exit 1 !NO!SUBS! + case "$isrrn" in + define) sed < Makefile -e '/^#NNTP/s/^#NNTP//' > Makefile.new ;; + *) sed < Makefile -e '/^#NNTP/d' > Makefile.new ;; + esac + mv Makefile.new Makefile $eunicefix Makefile Index: sw.c Prereq: 4.3.1.2 *** sw.c Fri Nov 21 16:25:52 1986 --- ../rn/sw.c Sat Dec 9 00:53:42 1989 *************** *** 1,4 ! /* $Header: sw.c,v 4.3.1.2 85/05/21 13:36:23 lwall Exp $ * * $Log: sw.c,v $ * Revision 4.3.1.2 85/05/21 13:36:23 lwall --- 1,4 ----- ! /* $Header: sw.c,v 4.3.2.1 89/12/09 00:52:40 sob Exp $ * * $Log: sw.c,v $ * Revision 4.3.2.1 89/12/09 00:52:40 sob *************** *** 1,6 /* $Header: sw.c,v 4.3.1.2 85/05/21 13:36:23 lwall Exp $ * * $Log: sw.c,v $ * Revision 4.3.1.2 85/05/21 13:36:23 lwall * Sped up "rn -c" by not doing unnecessary initialization. * --- 1,9 ----- /* $Header: sw.c,v 4.3.2.1 89/12/09 00:52:40 sob Exp $ * * $Log: sw.c,v $ + * Revision 4.3.2.1 89/12/09 00:52:40 sob + * Now handles SIGWINCH correctly. + * * Revision 4.3.1.2 85/05/21 13:36:23 lwall * Sped up "rn -c" by not doing unnecessary initialization. * *************** *** 268,273 s++; if (*s == '=') s++; initlines = atoi(s); break; case 'l': muck_up_clear = upordown; --- 271,277 ----- s++; if (*s == '=') s++; initlines = atoi(s); + initlines_specified = TRUE; break; case 'l': muck_up_clear = upordown; Index: term.h Prereq: 4.3.1.2 *** term.h Fri Nov 21 16:23:07 1986 --- ../rn/term.h Tue Nov 28 01:54:21 1989 *************** *** 1,4 ! /* $Header: term.h,v 4.3.1.2 85/05/13 15:52:05 lwall Exp $ * * $Log: term.h,v $ * Revision 4.3.1.2 85/05/13 15:52:05 lwall --- 1,4 ----- ! /* $Header: term.h,v 4.3.2.1 89/11/28 01:54:03 sob Locked $ * * $Log: term.h,v $ * Revision 4.3.2.1 89/11/28 01:54:03 sob *************** *** 1,6 /* $Header: term.h,v 4.3.1.2 85/05/13 15:52:05 lwall Exp $ * * $Log: term.h,v $ * Revision 4.3.1.2 85/05/13 15:52:05 lwall * Declared devtty on TERMIO system. * --- 1,9 ----- /* $Header: term.h,v 4.3.2.1 89/11/28 01:54:03 sob Locked $ * * $Log: term.h,v $ + * Revision 4.3.2.1 89/11/28 01:54:03 sob + * Added better support for SIGWINCH. + * * Revision 4.3.1.2 85/05/13 15:52:05 lwall * Declared devtty on TERMIO system. * *************** *** 217,219 #ifdef CLEAREOL void home_cursor(); #endif CLEAREOL --- 220,225 ----- #ifdef CLEAREOL void home_cursor(); #endif CLEAREOL + #ifdef SIGWINCH + int winch_catcher(); + #endif /* SIGWINCH */ Index: intrp.c Prereq: 4.3.1.5 *** intrp.c Fri Nov 21 16:26:45 1986 --- ../rn/intrp.c Sun Dec 17 02:55:34 1989 *************** *** 1,4 ! /* $Header: intrp.c,v 4.3.1.5 85/05/23 17:21:24 lwall Exp $ * * $Log: intrp.c,v $ * Revision 4.3.1.5 85/05/23 17:21:24 lwall --- 1,4 ----- ! /* $Header: intrp.c,v 4.3.2.1 89/12/17 02:54:55 sob Exp $ * * $Log: intrp.c,v $ * Revision 4.3.2.1 89/12/17 02:54:55 sob *************** *** 1,6 /* $Header: intrp.c,v 4.3.1.5 85/05/23 17:21:24 lwall Exp $ * * $Log: intrp.c,v $ * Revision 4.3.1.5 85/05/23 17:21:24 lwall * Now allows 'r' and 'f' on null articles. * --- 1,9 ----- /* $Header: intrp.c,v 4.3.2.1 89/12/17 02:54:55 sob Exp $ * * $Log: intrp.c,v $ + * Revision 4.3.2.1 89/12/17 02:54:55 sob + * Removed redundant include directive. + * * Revision 4.3.1.5 85/05/23 17:21:24 lwall * Now allows 'r' and 'f' on null articles. * *************** *** 29,35 #include "rn.h" #include "artsrch.h" #include "ng.h" - #include "util.h" #include "respond.h" #include "rcstuff.h" #include "bits.h" --- 32,37 ----- #include "rn.h" #include "artsrch.h" #include "ng.h" #include "respond.h" #include "rcstuff.h" #include "bits.h" Index: subs.help.SH Prereq: 4.3 *** subs.help.SH Fri Nov 21 15:42:37 1986 --- ../rn/subs.help.SH Sun Nov 26 18:38:50 1989 *************** *** 4,10 echo "Extracting subs.help (with variable substitutions)" $spitshell >subs.help <subs.help <