sob@lib.tmc.edu (Stan Barber) (12/18/89)
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 Sun Dec 17 12:56:01 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.14 89/12/17 12:55:39 sob Exp $ # # $Log: Configure,v $ # Revision 4.3.2.14 89/12/17 12:55:39 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,52 ----- # $Header: Configure,v 4.3.2.14 89/12/17 12:55:39 sob Exp $ # # $Log: Configure,v $ + # 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='' --- 97,103 ----- inews='' grep='' egrep='' + ypmatch='' contains='' lib='' nametype='' *************** *** 77,82 Log='' Header='' sitename='' orgname='' isadmin='' newsadmin='' --- 119,125 ----- Log='' Header='' sitename='' + domain='' orgname='' isadmin='' newsadmin='' *************** *** 110,115 fcntl='' ioctl='' normsig='' havetlib='' getpwent='' gethostname='' --- 153,159 ----- fcntl='' ioctl='' normsig='' + voidsig='' havetlib='' getpwent='' gethostname='' *************** *** 117,122 phostname='' hostcmd='' norelay='' CONFIG='' echo "Beginning of configuration questions for rn kit." --- 161,169 ----- 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 <Configure'" exit 1 fi --- 175,181 ----- 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 "Type 'sh Configure', not 'sh <Configure'" exit 1 fi *************** *** 143,149 contains=contains fi fi ! rm grimble : the following should work in any shell case $contains in contains*) --- 190,196 ----- contains=contains fi fi ! : the following should work in any shell case $contains in contains*) *************** *** 210,217 Much effort has been expended to ensure that this shell script will run on any Unix system. If despite that it blows up on you, your best bet is to edit Configure and run it again. (Trying to install rn without having run ! Configure is well nigh impossible.) Also, let me (lwall@sdcrdcf.UUCP) know ! how I blew it. This installation script affects things in two ways: 1) it does direct variable substitutions on some of the files included in this kit, and --- 257,264 ----- Much effort has been expended to ensure that this shell script will run on any Unix system. If despite that it blows up on you, your best bet is to edit Configure and run it again. (Trying to install rn without having run ! Configure is well nigh impossible.) Also, tell Stan Barber (sob@tmc.edu) ! how he blew it. This installation script affects things in two ways: 1) it does direct variable substitutions on some of the files included in this kit, and *************** *** 272,281 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..." --- 319,328 ----- 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 --- 325,341 ----- 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 --- 383,391 ----- 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 --- 387,397 ----- 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 --- 393,399 ----- *) $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 --- 395,410 ----- 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 --- 411,418 ----- 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 " " --- 435,456 ----- 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..." --- 452,477 ----- 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 <<EOSC >loc $startsh thing=\$1 --- 535,541 ----- : 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 <<EOSC >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 --- 564,570 ----- 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;; --- 634,661 ----- 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 </etc/passwd -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}'\` if $test ! -d "\$dir"; then me=\`basename \$0\` $echo "\$me: can't locate home directory for: \$name" >&2 --- 702,713 ----- $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 </etc/passwd -n -e "/^\${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'\$'"/\1/" -e p -e q -e '}'\` ! fi if $test ! -d "\$dir"; then me=\`basename \$0\` $echo "\$me: can't locate home directory for: \$name" >&2 *************** *** 633,639 hostcmd="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' </usr/include/whoami.h" else case "$sitename" in ! '') echo "Does this machine have an identity crisis or something?" hostcmd='' ;; *) echo "Well, you said $sitename before...";; --- 755,761 ----- hostcmd="sed -n -e '"'/sysname/s/^.*\"\\(.*\\)\"/\1/{'"' -e p -e q -e '}' </usr/include/whoami.h" else case "$sitename" in ! '') $echo "Does this machine have an identity crisis or something?" hostcmd='' ;; *) $echo "Well, you said $sitename before...";; *************** *** 636,642 '') echo "Does this machine have an identity crisis or something?" hostcmd='' ;; ! *) echo "Well, you said $sitename before...";; esac fi fi --- 758,764 ----- '') $echo "Does this machine have an identity crisis or something?" hostcmd='' ;; ! *) $echo "Well, you said $sitename before...";; esac fi fi *************** *** 646,652 set $sitename sitename=$1 ! : translate upper to lower if necessary case $sitename in *[A-Z]*) sitename=`$echo $sitename | tr '[A-Z]' '[a-z]'` --- 768,774 ----- set $sitename sitename=$1 ! : translate upper to lower case. This is mostly to help UUCP work right. case $sitename in *[A-Z]*) sitename=`$echo $sitename | tr '[A-Z]' '[a-z]'` *************** *** 681,686 hostcmd='' done : get organizaton name longshots='/usr/src/new /usr/src/local /usr/local/src' case "$orgname" in --- 803,844 ----- hostcmd='' done + : try to deal with domains + $cat << 'EOH' + + Please enter your domain name. This will be used in conjunction + with the site name for return addresses on news articles and + mail. If you use the 4.3ism of having your domain in your + hostname, all the posting programs will figure this out on the + fly, so don't worry. + + Examples of some valid domains: + + berkeley.edu + nasa.gov + Example of an invalid domain in common use: + uucp + EOH + + case "$domain" in + '') dflt="uucp";; + *) dflt="$domain" ;; + esac + $echo $n "Your domain: [$dflt] $c" + . myread + case "$ans" in + '') domain="$dflt";; + *) domain="$ans" ;; + esac + + if $test $portable = "undef" ; then + case $sitename in + *.*) ;; + *) sitename=$sitename.$domain + ;; + esac + fi + : get organizaton name longshots='/usr/src/new /usr/src/local /usr/local/src' case "$orgname" in *************** *** 724,730 dflt=news else if $contains "^usenet:" /etc/passwd >/dev/null 2>&1 ; then ! dflt=news else if eunice; then dflt=system --- 882,888 ----- 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 --- 901,907 ----- 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";; --- 927,937 ----- 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 --- 940,946 ----- 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 --- 951,958 ----- 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 --- 1174,1180 ----- 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." --- 1188,1194 ----- 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 --- 1191,1197 ----- $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` --- 1195,1201 ----- ;; 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 --- 1266,1272 ----- 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 --- 1276,1282 ----- 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." --- 1289,1295 ----- 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." --- 1316,1326 ----- 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 --- 1329,1335 ----- $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 --- 1442,1536 ----- 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 <<EOF_SERVE ! #ifdef SERVER ! ! EXT char *getserverbyfile(); ! EXT int server_init(); ! EXT void put_server(); ! EXT int get_server(); ! EXT void close_server(); ! ! #include "$NNTPSRC/common/nntp.h" ! #endif ! EOF_SERVE ! ! esac ! ! done ! case "$spool" in '') dflt=/usr/spool/news *************** *** 1288,1294 ;; *) dflt="$spool";; esac ! ans='blurfl/dyick' while $test ! -d $ans; do $echo " " case "$ans" in --- 1537,1546 ----- ;; *) dflt="$spool";; esac ! case "$isrrn" in ! define) ans=/tmp;; ! *) ans='blurfl/dyick';; ! esac while $test ! -d $ans; do $echo " " case "$ans" in *************** *** 1293,1299 $echo " " case "$ans" in blurfl*);; ! *) echo "Directory $ans not found.";; esac $echo $n "Where is news spooled (~name ok)? [$dflt] $c" . myread --- 1545,1551 ----- $echo " " case "$ans" in blurfl*);; ! *) $echo "Directory $ans not found.";; esac $echo $n "Where is news spooled (~name ok)? [$dflt] $c" . myread *************** *** 1304,1310 case $spool in ~*) ans=`filexp $spool` ! echo "(That is $ans on this particular system.)" case $portable in undef) spool=$ans ;; esac --- 1556,1562 ----- case $spool in ~*) ans=`filexp $spool` ! $echo "(That is $ans on this particular system.)" case $portable in undef) spool=$ans ;; esac *************** *** 1322,1328 ;; *) dflt="$active";; esac ! myactive='blurfl/dyick' while $test ! -f "$myactive"; do $echo " " case "$myactive" in --- 1574,1583 ----- ;; *) dflt="$active";; esac ! case "$isrrn" in ! define) myactive=.falseactive;; ! *) myactive='blurfl/dyick' ! esac while $test ! -f "$myactive"; do $echo " " case "$myactive" in *************** *** 1338,1344 case $active in ~*) myactive=`filexp $active` ! echo "(That is $myactive on this particular system.)" case $portable in undef) active=$myactive ;; esac --- 1593,1599 ----- case $active in ~*) myactive=`filexp $active` ! $echo "(That is $myactive on this particular system.)" case $portable in undef) active=$myactive ;; esac *************** *** 1354,1360 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="n";; --- 1609,1615 ----- 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 --- 1612,1619 ----- $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;; --- 1615,1626 ----- 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." ;; --- 1626,1632 ----- '') 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 --- 1628,1634 ----- 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 ;; --- 1634,1641 ----- 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 --- 1755,1761 ----- 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 --- 1765,1771 ----- 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 <<EOM --- 1771,1782 ----- case "$internet" in define) dflt=y;; undef) dflt=n;; ! *) ! case "$isrrn" in ! define) dflt=y ;; ! *) dflt=n ;; ! esac ! ;; esac cat <<EOM *************** *** 1556,1562 : determine where private executables go case "$rnlib" in '') ! dflt=$lib/rn ;; *) dflt="$rnlib" ;; --- 1821,1830 ----- : determine where private executables go case "$rnlib" in '') ! case "$isrrn" in ! define) dflt=/usr/local/lib/rn ;; ! *) dflt=$lib/rn ;; ! esac ;; *) dflt="$rnlib" ;; *************** *** 1777,1782 inews='$inews' grep='$grep' egrep='$egrep' contains='$contains' lib='$lib' libexp='$libexp' --- 2045,2051 ----- inews='$inews' grep='$grep' egrep='$egrep' + ypmatch='$ypmatch' contains='$contains' lib='$lib' libexp='$libexp' *************** *** 1799,1804 Log='$Log' Header='$Header' sitename='$sitename' orgname='$orgname' isadmin='$isadmin' newsadmin='$newsadmin' --- 2068,2074 ----- Log='$Log' Header='$Header' sitename='$sitename' + domain='$domain' orgname='$orgname' isadmin='$isadmin' newsadmin='$newsadmin' *************** *** 1832,1837 fcntl='$fcntl' ioctl='$ioctl' normsig='$normsig' havetlib='$havetlib' getpwent='$getpwent' gethostname='$gethostname' --- 2102,2108 ----- fcntl='$fcntl' ioctl='$ioctl' normsig='$normsig' + voidsig='$voidsig' havetlib='$havetlib' getpwent='$getpwent' gethostname='$gethostname' *************** *** 1839,1844 phostname='$phostname' hostcmd='$hostcmd' norelay='$norelay' CONFIG=true EOT --- 2110,2117 ----- phostname='$phostname' hostcmd='$hostcmd' norelay='$norelay' + isrrn='$isrrn' + NNTPSRC='$NNTPSRC' CONFIG=true EOT *************** *** 1919,1924 #$fcntl FCNTL /* should we include fcntl.h? */ #$ioctl IOCTL /* are ioctl args all defined in one place? */ #$normsig NORMSIG /* use signal rather than sigset? */ #$havetlib HAVETERMLIB /* do we have termlib-style routines? */ #$getpwent GETPWENT /* need we include slow getpwent? */ #$internet INTERNET /* does our mailer do INTERNET addressing? */ --- 2192,2198 ----- #$fcntl FCNTL /* should we include fcntl.h? */ #$ioctl IOCTL /* are ioctl args all defined in one place? */ #$normsig NORMSIG /* use signal rather than sigset? */ + #$voidsig VOIDSIG /* signal returns void? */ #$havetlib HAVETERMLIB /* do we have termlib-style routines? */ #$getpwent GETPWENT /* should we include getpwent? */ #$internet INTERNET /* does our mailer do INTERNET addressing? */ *************** *** 1920,1926 #$ioctl IOCTL /* are ioctl args all defined in one place? */ #$normsig NORMSIG /* use signal rather than sigset? */ #$havetlib HAVETERMLIB /* do we have termlib-style routines? */ ! #$getpwent GETPWENT /* need we include slow getpwent? */ #$internet INTERNET /* does our mailer do INTERNET addressing? */ #$gethostname GETHOSTNAME /* do we have a gethostname function? */ #$douname DOUNAME /* do we have a uname function? */ --- 2194,2200 ----- #$normsig NORMSIG /* use signal rather than sigset? */ #$voidsig VOIDSIG /* signal returns void? */ #$havetlib HAVETERMLIB /* do we have termlib-style routines? */ ! #$getpwent GETPWENT /* should we include getpwent? */ #$internet INTERNET /* does our mailer do INTERNET addressing? */ #$gethostname GETHOSTNAME /* do we have a gethostname function? */ #$douname DOUNAME /* do we have a uname function? */ *************** *** 1926,1931 #$douname DOUNAME /* do we have a uname function? */ #$phostname PHOSTNAME "$hostcmd" /* how to get host name with popen */ #$norelay NORELAY /* 2.10.3 doesn't have Relay-Version line */ EOT CONFIG=true --- 2200,2207 ----- #$douname DOUNAME /* do we have a uname function? */ #$phostname PHOSTNAME "$hostcmd" /* how to get host name with popen */ #$norelay NORELAY /* 2.10.3 doesn't have Relay-Version line */ + #$isrrn SERVER /* rrn server code */ + #$isrrn SERVER_FILE "$serverfile" EOT CONFIG=true *************** *** 1930,1936 CONFIG=true ! $rm -f libc.list .distlist kit*isdone echo " " echo "Doing variable substitutions on various files..." --- 2206,2212 ----- CONFIG=true ! $rm -f libc.list .distlist kit*isdone $echo " " $echo "Doing variable substitutions on various files..." *************** *** 1932,1940 $rm -f libc.list .distlist kit*isdone ! echo " " ! echo "Doing variable substitutions on various files..." ! echo " " set `$grep <MANIFEST '\.SH' | awk '{print $1}'` for file in $*; do . $file --- 2208,2216 ----- $rm -f libc.list .distlist kit*isdone ! $echo " " ! $echo "Doing variable substitutions on various files..." ! $echo " " set `$grep <MANIFEST '\.SH' | awk '{print $1}'` for file in $*; do . $file *************** *** 1940,1949 . $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;; --- 2216,2225 ----- . $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 --- 2224,2228 ----- 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 <<!GROK!THIS! $startsh ! # $Header: Pnews.SH,v 4.3.1.4 86/09/05 15:21:10 lwall Exp $ # # $Log: Pnews.SH,v $ # Revision 4.3.1.4 86/09/05 15:21:10 lwall --- 4,10 ----- echo "Extracting Pnews (with variable substitutions)" $spitshell >Pnews <<!GROK!THIS! $startsh ! # $Header: Pnews.SH,v 4.3.2.5 89/12/17 01:53:48 sob Exp $ # # $Log: Pnews.SH,v $ # Revision 4.3.2.5 89/12/17 01:53:48 sob *************** *** 7,12 # $Header: Pnews.SH,v 4.3.1.4 86/09/05 15:21:10 lwall Exp $ # # $Log: Pnews.SH,v $ # Revision 4.3.1.4 86/09/05 15:21:10 lwall # Changes for new top-level newsgroup names. # --- 7,29 ----- # $Header: Pnews.SH,v 4.3.2.5 89/12/17 01:53:48 sob Exp $ # # $Log: Pnews.SH,v $ + # Revision 4.3.2.5 89/12/17 01:53:48 sob + # Changed from using ypcat to using ypmatch + # + # Revision 4.3.2.4 89/12/09 01:48:30 sob + # Reply-To: field removed. This makes all the headers created by rn + # look roughly the same. + # + # Revision 4.3.2.3 89/11/26 22:20:04 sob + # Added support for some of the top level names that are not part of + # the mainstream. + # + # Revision 4.3.2.2 89/11/06 00:25:39 sob + # Some minor changes to make the help messages more accurate + # + # Revision 4.3.2.1 89/11/06 00:21:30 sob + # Added RRN support from NNTP 1.5 + # # Revision 4.3.1.4 86/09/05 15:21:10 lwall # Changes for new top-level newsgroup names. # *************** *** 39,44 define) # your site name sitename=\`$hostcmd\` # where recordings, distributions and moderators are kept lib=\`$filexp $lib\` # where important rn things are kept --- 56,68 ----- define) # your site name sitename=\`$hostcmd\` + case \$sitename in + *.*) + ;; + *) + sitename=\${sitename}.$domain + ;; + esac # where recordings, distributions and moderators are kept lib=\`$filexp $lib\` # where important rn things are kept *************** *** 86,91 rm=${rm-rm} tr=${tr-tr} inews=${inews-inews} !GROK!THIS! $spitshell >>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 </etc/passwd -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^,:;]*\).*"'$'"/\1/" -e "q" -e "}" -e "d"` case $fullname in *'&'*) : GACK lname=`$echo $logname | $tr 'a-z' 'A-Z'` --- 668,679 ----- esac case ${NAME-$nametype} in bsd) ! if $test "$ypmatch" != ""; then ! fullname=`$ypmatch $logname passwd 2>/dev/null | $sed "s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^,:;]*\).*"'$'"/\1/"` ! fi ! if $test "$fullname" = ""; then ! fullname=`$sed </etc/passwd -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^,:;]*\).*"'$'"/\1/" -e "q" -e "}" -e "d"` ! fi case $fullname in *'&'*) : GACK lname=`$echo $logname | $tr 'a-z' 'A-Z'` *************** *** 617,622 esac ;; usg) fullname=`$sed </etc/passwd -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q" -e "}" -e "d"` ;; *) --- 683,692 ----- esac ;; usg) + if $test "$ypmatch" != ""; then + fullname=`$ypmatch $logname passwd 2>/dev/null | $sed "s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q"` + fi + if $test "$fullname" = ""; then fullname=`$sed </etc/passwd -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q" -e "}" -e "d"` fi ;; *************** *** 618,623 ;; usg) fullname=`$sed </etc/passwd -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q" -e "}" -e "d"` ;; *) fullname=${NAME-`$cat $dotdir/.fullname`} --- 688,694 ----- fi if $test "$fullname" = ""; then fullname=`$sed </etc/passwd -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q" -e "}" -e "d"` + fi ;; *) fullname=${NAME-`$cat $dotdir/.fullname`} *************** *** 630,635 esac $cat > $tmpart <<EOHeader Newsgroups: $ng Subject: $title Expires: --- 701,708 ----- esac $cat > $tmpart <<EOHeader + From: $logname@$sitename ($fullname) + #NORMALPath: $sitename!$logname Newsgroups: $ng Subject: $title Expires: *************** *** 635,641 Expires: References: Sender: - Reply-To: $logname@$sitename.UUCP ($fullname) Followup-To: $follow Distribution: $dist Organization: $orgname --- 708,713 ----- Expires: References: Sender: Followup-To: $follow Distribution: $dist Organization: $orgname *************** *** 644,647 EOHeader !NO!SUBS! $eunicefix Pnews.header --- 716,724 ----- EOHeader !NO!SUBS! + case "$isrrn" in + define) sed < Pnews.header -e '/^#NORMAL/d' > 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 <<!GROK!THIS! --- 1,5 ----- case $CONFIG in ! '') . ./config.sh ;; esac echo "Extracting Makefile (with variable substitutions)" cat >Makefile <<!GROK!THIS! *************** *** 3,9 esac echo "Extracting Makefile (with variable substitutions)" cat >Makefile <<!GROK!THIS! ! # $Header: Makefile.SH,v 4.3.1.2 85/05/13 17:21:18 lwall Exp $ # # $Log: Makefile.SH,v $ # Revision 4.3.1.2 85/05/13 17:21:18 lwall --- 3,9 ----- esac echo "Extracting Makefile (with variable substitutions)" cat >Makefile <<!GROK!THIS! ! # $Header: Makefile.SH,v 4.3.2.7 89/12/09 01:49:48 sob Exp $ # # $Log: Makefile.SH,v $ # Revision 4.3.2.7 89/12/09 01:49:48 sob *************** *** 6,11 # $Header: Makefile.SH,v 4.3.1.2 85/05/13 17:21:18 lwall Exp $ # # $Log: Makefile.SH,v $ # Revision 4.3.1.2 85/05/13 17:21:18 lwall # System V make needs space before line-continuing backslash. # --- 6,35 ----- # $Header: Makefile.SH,v 4.3.2.7 89/12/09 01:49:48 sob Exp $ # # $Log: Makefile.SH,v $ + # Revision 4.3.2.7 89/12/09 01:49:48 sob + # make clean cleans up better. + # + # Revision 4.3.2.6 89/12/08 22:43:45 sob + # Added suggestions by weening@gang-of-four.stanford.edu and + # jik@pit-manager.mit.edu. rrn manual page is now created when + # doing an instllation. getactive will only be made when rrn is being + # created. + # + # Revision 4.3.2.5 89/11/08 04:47:38 sob + # Added VOIDSIG handling for SunOS 4.X + # + # Revision 4.3.2.4 89/11/08 03:16:29 sob + # Added server.h to list of things created by Configure + # + # Revision 4.3.2.3 89/11/08 01:05:52 sob + # Updated to work with RRN or RN + # + # Revision 4.3.2.2 89/11/06 00:03:19 sob + # Added RRN support originally distributed with NNTP 1.5 + # + # Revision 4.3.2.1 89/11/05 23:55:09 sob + # RRN support branch + # # Revision 4.3.1.2 85/05/13 17:21:18 lwall # System V make needs space before line-continuing backslash. # *************** *** 21,26 rnlib = $rnlib mansrc = $mansrc manext = $manext CFLAGS = $iandd -O LDFLAGS = $iandd NDIRC = $ndirc --- 45,51 ----- rnlib = $rnlib mansrc = $mansrc manext = $manext + #NNTPNNTPDIR = $NNTPSRC CFLAGS = $iandd -O LDFLAGS = $iandd NDIRC = $ndirc *************** *** 29,35 libs = $ndirlib $termlib $jobslib !GROK!THIS! 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 --- 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 <<!GROK!THIS! $startsh ! # $Header: subs.help.SH,v 4.3 85/05/01 11:50:50 lwall Exp $ # # $Log: subs.help.SH,v $ # Revision 4.3 85/05/01 11:50:50 lwall --- 4,10 ----- echo "Extracting subs.help (with variable substitutions)" $spitshell >subs.help <<!GROK!THIS! $startsh ! # $Header: subs.help.SH,v 4.3.2.1 89/11/26 18:38:47 sob Locked $ # # $Log: subs.help.SH,v $ # Revision 4.3.2.1 89/11/26 18:38:47 sob *************** *** 7,12 # $Header: subs.help.SH,v 4.3 85/05/01 11:50:50 lwall Exp $ # # $Log: subs.help.SH,v $ # Revision 4.3 85/05/01 11:50:50 lwall # Baseline for release with 4.3bsd. # --- 7,15 ----- # $Header: subs.help.SH,v 4.3.2.1 89/11/26 18:38:47 sob Locked $ # # $Log: subs.help.SH,v $ + # Revision 4.3.2.1 89/11/26 18:38:47 sob + # Removed some extra backslashes + # # Revision 4.3 85/05/01 11:50:50 lwall # Baseline for release with 4.3bsd. # *************** *** 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) --- 24,30 ----- 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 --- 44,50 ----- 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