diff -u --recursive --new-file trn-3.6.orig/.config/README trn-3.6/.config/README --- trn-3.6.orig/.config/README Wed Dec 31 19:00:00 1969 +++ trn-3.6/.config/README Mon Jan 9 15:54:53 1995 @@ -0,0 +1,4 @@ +This directory created by Configure to save information that should +persist across sessions. + +You may safely delete it if you wish. diff -u --recursive --new-file trn-3.6.orig/.config/instruct trn-3.6/.config/instruct --- trn-3.6.orig/.config/instruct Wed Dec 31 19:00:00 1969 +++ trn-3.6/.config/instruct Mon Jan 9 15:55:51 1995 @@ -0,0 +1 @@ +root diff -u --recursive --new-file trn-3.6.orig/Makefile trn-3.6/Makefile --- trn-3.6.orig/Makefile Wed Dec 31 19:00:00 1969 +++ trn-3.6/Makefile Mon Jan 9 16:03:28 1995 @@ -0,0 +1,990 @@ +# $Id: Makefile.SH,v 3.0 1992/03/01 02:13:32 davison Trn $ +# +# This software is Copyright 1991 by Stan Barber. +# +# Permission is hereby granted to copy, reproduce, redistribute or otherwise +# use this software as long as: there is no monetary profit gained +# specifically from the use or reproduction of this software, it is not +# sold, rented, traded or otherwise marketed, and this copyright notice is +# included prominently in any copy made. +# +# The author make no claims as to the fitness or correctness of this software +# for any use whatsoever, and it is provided as is. Any use of this software +# is at the user's own risk. +# +# optional defines you can add to the CFLAGS +# -DDEBUG compile in support for the -D option +# -DNO_LISTGROUP avoids attempting to use LISTGROUP +# -DREPLYTO_POSTER_CHECKING makes -p also check Reply-To (slow) + +srcdir = . +VPATH = . + +CC = gcc +TOUCH = touch +#YACC = yacc +#LINT = lint +lintflags = -phbvxac + +CFLAGS = -O2 +LDFLAGS = -s + +rnbin = /usr/bin +rnlib = /usr/lib/trn +mansrc = /usr/man/man1 +manext = 1 +ndirc = +ndiro = +strftimec = +strftimeo = +installfilexp = /usr/lib/trn/filexp + +libs = -ltermcap -lm +public = trn newsetup newsgroups Pnews Rnmail trn-artchk $(nntpbin) +private = norm.saver mbox.saver makedir Pnews.header Speller filexp +util = makedepend newsnews +manpages = trn.1 Pnews.1 Rnmail.1 newsetup.1 newsgroups.1 + +h1 = addng.h art.h artio.h artsrch.h autosub.h backpage.h bits.h cache.h +h2 = charsubst.h common.h decode.h final.h hash.h head.h help.h init.h intrp.h +h3 = kfile.h last.h ng.h ngdata.h ngsrch.h ngstuff.h only.h rcln.h rcstuff.h +h4 = respond.h rthread.h rt-mt.h rt-ov.h rt-page.h rt-process.h rt-select.h +h5 = rt-util.h rt-wumpus.h search.h sw.h term.h trn.h util.h util2.h + +h = $(h1) $(h2) $(h3) $(h4) $(h5) + +c1 = addng.c art.c artio.c artsrch.c autosub.c backpage.c bits.c cache.c +c2 = charsubst.c decode.c edit_dist.c final.c hash.c head.c help.c init.c +c3 = intrp.c kfile.c last.c $(ndirc) ng.c ngdata.c nghash.c ngsrch.c ngstuff.c +c4 = only.c rcln.c rcstuff.c respond.c rthread.c rt-mt.c rt-ov.c +c5 = rt-process.c rt-page.c rt-select.c rt-util.c rt-wumpus.c search.c +c6 = $(strftimec) sw.c term.c trn.c util.c util2.c unship.c uudecode.c +c7 = $(nntpsrc) charsubst.c + +c = $(c1) $(c2) $(c3) $(c4) $(c5) $(c6) $(c7) + +obj1 = addng.o art.o artio.o artsrch.o autosub.o backpage.o bits.o cache.o +obj2 = charsubst.o decode.o edit_dist.o final.o hash.o head.o help.o init.o +obj3 = intrp.o kfile.o last.o $(ndiro) ng.o ngdata.o nghash.o ngsrch.o +obj4 = ngstuff.o only.o rcln.o rcstuff.o respond.o rthread.o rt-mt.o rt-ov.o +obj5 = rt-process.o rt-page.o rt-select.o rt-util.o rt-wumpus.o search.o +obj6 = $(strftimeo) sw.o term.o trn.o util.o util2.o unship.o uudecode.o +obj7 = parsedate.o $(nntpobj1) $(nntpobj2) + +obj = $(obj1) $(obj2) $(obj3) $(obj4) $(obj5) $(obj6) $(obj7) + +addedbymake = $(public) $(private) $(util) Makefile.old config.h\ + parsedate.c cppstdin all + +# grrr +SHELL = /bin/sh + +.c.o: + $(CC) -c $(CFLAGS) $< + +all: $(public) $(private) $(util) Makefile + $(TOUCH) all + +trn: $(obj) + $(CC) $(LDFLAGS) $(obj) $(libs) -o trn + +trn-artchk: trn-artchk.o util2.o $(nntpobj1) + $(CC) $(LDFLAGS) trn-artchk.o util2.o $(nntpobj1) -o trn-artchk $(libs) + +parsedate.c: parsedate.y + @echo 'Expect 6 shift/reduce conflicts' + $(YACC) $(srcdir)/parsedate.y + mv -f y.tab.c parsedate.c + +unipatch: unipatch.o + $(CC) $(LDFLAGS) unipatch.o -o unipatch + +Pnews.header: Pnews + +# if a .h file depends on another .h file... +$(h): + -$(TOUCH) $@ + +install: $(public) $(private) $(manpages) +# won't work with csh + export PATH || exit 1 + - (cd `./filexp $(rnbin)`; mv trn trn.old) + - if test `pwd` != `./filexp $(rnbin)`; then cp $(public) `./filexp $(rnbin)`;\ + (cd `./filexp $(rnbin)`; chmod o+x $(public); strip trn trn-artchk $(nntpbin)); fi + - if test $(installfilexp) = Rnfilexp; then cp ./filexp `./filexp $(rnbin)/Rnfilexp`; fi + - ./makedir `./filexp $(rnlib)` + - chmod o+r `./filexp $(rnlib)` + - if test `pwd` != `./filexp $(rnlib)`; then cp $(srcdir)/INIT $(private) `./filexp $(rnlib)`; fi + - if test ! -f `./filexp $(rnlib)/newsnews`; then cp newsnews `./filexp $(rnlib)`; fi + - (cd `./filexp $(rnlib)`; chmod o+x $(private); chmod o+r INIT newsnews) + - if test "X$(mansrc)" != "X" -a "X`pwd`" != X`./filexp $(mansrc)`; then \ +for page in $(manpages); do \ +dest=$(mansrc)/`basename $$page .1`.$(manext); \ +rm -f $$dest; cp $(srcdir)/$$page $$dest; chmod 444 $$dest; \ +done; \ +fi + +clean: + @echo 'Use "make realclean" to also remove the Makefile.' + @echo 'Use "make spotless" to even remove config.sh.' + rm -rf UU + rm -f *.o core $(addedbymake) + +realclean: + @echo 'You can use "Configure -S ; make depend ; make" to reverse this.' + rm -rf UU + rm -f *.o core $(addedbymake) Makefile + +spotless: + rm -rf UU .config + rm -f *.o core $(addedbymake) Makefile config.sh + +# The following lint has practically everything turned on. Unfortunately, +# you have to wade through a lot of mumbo jumbo that can't be suppressed. +# If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message +# for that spot. + +lint: $(c) parsedate.c + $(LINT) $(lintflags) $(defs) $? > trn.fuzz 2>&1 + +sabertrn: $(c) parsedate.c + #load $(c) parsedate.c $(libs) + +depend: config.h Makefile makedepend + ./makedepend + +# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE +addng.o: EXTERN.h +addng.o: INTERN.h +addng.o: addng.c +addng.o: addng.h +addng.o: common.h +addng.o: config.h +addng.o: final.h +addng.o: intrp.h +addng.o: last.h +addng.o: ngdata.h +addng.o: nntp.h +addng.o: nntpclient.h +addng.o: only.h +addng.o: rcstuff.h +addng.o: search.h +addng.o: trn.h +addng.o: util.h +art.o: EXTERN.h +art.o: INTERN.h +art.o: art.c +art.o: art.h +art.o: artio.h +art.o: artstate.h +art.o: backpage.h +art.o: bits.h +art.o: cache.h +art.o: charsubst.h +art.o: common.h +art.o: config.h +art.o: final.h +art.o: head.h +art.o: help.h +art.o: intrp.h +art.o: ng.h +art.o: ngdata.h +art.o: ngstuff.h +art.o: nntp.h +art.o: nntpclient.h +art.o: rcstuff.h +art.o: rt-select.h +art.o: rt-util.h +art.o: rt-wumpus.h +art.o: rthread.h +art.o: search.h +art.o: sw.h +art.o: term.h +art.o: trn.h +art.o: util.h +art.o: util2.h +artio.o: EXTERN.h +artio.o: INTERN.h +artio.o: art.h +artio.o: artio.c +artio.o: artio.h +artio.o: bits.h +artio.o: cache.h +artio.o: common.h +artio.o: config.h +artio.o: final.h +artio.o: head.h +artio.o: ngdata.h +artio.o: nntp.h +artio.o: nntpclient.h +artio.o: rthread.h +artsrch.o: EXTERN.h +artsrch.o: INTERN.h +artsrch.o: artio.h +artsrch.o: artsrch.c +artsrch.o: artsrch.h +artsrch.o: bits.h +artsrch.o: cache.h +artsrch.o: common.h +artsrch.o: config.h +artsrch.o: final.h +artsrch.o: head.h +artsrch.o: intrp.h +artsrch.o: kfile.h +artsrch.o: ng.h +artsrch.o: ngdata.h +artsrch.o: ngstuff.h +artsrch.o: nntp.h +artsrch.o: nntpclient.h +artsrch.o: rt-select.h +artsrch.o: rthread.h +artsrch.o: search.h +artsrch.o: term.h +artsrch.o: util.h +autosub.o: EXTERN.h +autosub.o: INTERN.h +autosub.o: autosub.c +autosub.o: autosub.h +autosub.o: common.h +autosub.o: config.h +autosub.o: final.h +autosub.o: ngsrch.h +autosub.o: search.h +autosub.o: util.h +backpage.o: EXTERN.h +backpage.o: INTERN.h +backpage.o: backpage.c +backpage.o: backpage.h +backpage.o: common.h +backpage.o: config.h +backpage.o: final.h +backpage.o: intrp.h +bits.o: EXTERN.h +bits.o: INTERN.h +bits.o: artio.h +bits.o: bits.c +bits.o: bits.h +bits.o: cache.h +bits.o: common.h +bits.o: config.h +bits.o: final.h +bits.o: head.h +bits.o: intrp.h +bits.o: ndir.h +bits.o: ng.h +bits.o: ngdata.h +bits.o: nntp.h +bits.o: nntpclient.h +bits.o: rcln.h +bits.o: rcstuff.h +bits.o: rt-select.h +bits.o: rt-util.h +bits.o: rthread.h +bits.o: term.h +bits.o: trn.h +bits.o: util.h +bits.o: util2.h +cache.o: EXTERN.h +cache.o: INTERN.h +cache.o: artsrch.h +cache.o: bits.h +cache.o: cache.c +cache.o: cache.h +cache.o: common.h +cache.o: config.h +cache.o: final.h +cache.o: hash.h +cache.o: head.h +cache.o: intrp.h +cache.o: ng.h +cache.o: ngdata.h +cache.o: nntp.h +cache.o: nntpclient.h +cache.o: rcstuff.h +cache.o: rt-ov.h +cache.o: rt-page.h +cache.o: rt-process.h +cache.o: rt-select.h +cache.o: rt-util.h +cache.o: rthread.h +cache.o: search.h +cache.o: term.h +cache.o: trn.h +cache.o: util.h +cache.o: util2.h +charsubst.o: EXTERN.h +charsubst.o: INTERN.h +charsubst.o: artstate.h +charsubst.o: charsubst.c +charsubst.o: charsubst.h +charsubst.o: common.h +charsubst.o: config.h +charsubst.o: search.h +decode.o: EXTERN.h +decode.o: INTERN.h +decode.o: common.h +decode.o: config.h +decode.o: decode.c +decode.o: decode.h +edit_dist.o: EXTERN.h +edit_dist.o: common.h +edit_dist.o: config.h +edit_dist.o: edit_dist.c +edit_dist.o: util.h +final.o: EXTERN.h +final.o: INTERN.h +final.o: artio.h +final.o: bits.h +final.o: cache.h +final.o: common.h +final.o: config.h +final.o: final.c +final.o: final.h +final.o: init.h +final.o: intrp.h +final.o: last.h +final.o: ng.h +final.o: ngdata.h +final.o: nntp.h +final.o: nntpclient.h +final.o: rcstuff.h +final.o: term.h +final.o: util.h +hash.o: EXTERN.h +hash.o: INTERN.h +hash.o: common.h +hash.o: config.h +hash.o: final.h +hash.o: hash.c +hash.o: hash.h +hash.o: util.h +head.o: EXTERN.h +head.o: INTERN.h +head.o: artio.h +head.o: cache.h +head.o: common.h +head.o: config.h +head.o: final.h +head.o: hash.h +head.o: head.c +head.o: head.h +head.o: ng.h +head.o: ngdata.h +head.o: nntp.h +head.o: nntpclient.h +head.o: rt-process.h +head.o: rt-util.h +head.o: rthread.h +head.o: util.h +help.o: EXTERN.h +help.o: INTERN.h +help.o: common.h +help.o: config.h +help.o: help.c +help.o: help.h +help.o: term.h +help.o: trn.h +init.o: EXTERN.h +init.o: INTERN.h +init.o: addng.h +init.o: art.h +init.o: artio.h +init.o: artsrch.h +init.o: backpage.h +init.o: bits.h +init.o: cache.h +init.o: common.h +init.o: config.h +init.o: decode.h +init.o: final.h +init.o: head.h +init.o: help.h +init.o: init.c +init.o: init.h +init.o: intrp.h +init.o: kfile.h +init.o: last.h +init.o: ng.h +init.o: ngdata.h +init.o: ngsrch.h +init.o: ngstuff.h +init.o: nntp.h +init.o: nntpclient.h +init.o: only.h +init.o: rcln.h +init.o: rcstuff.h +init.o: respond.h +init.o: rthread.h +init.o: search.h +init.o: sw.h +init.o: term.h +init.o: trn.h +init.o: util.h +intrp.o: EXTERN.h +intrp.o: INTERN.h +intrp.o: artio.h +intrp.o: artsrch.h +intrp.o: bits.h +intrp.o: cache.h +intrp.o: common.h +intrp.o: config.h +intrp.o: final.h +intrp.o: head.h +intrp.o: init.h +intrp.o: intrp.c +intrp.o: intrp.h +intrp.o: ng.h +intrp.o: ngdata.h +intrp.o: nntp.h +intrp.o: nntpclient.h +intrp.o: rcstuff.h +intrp.o: respond.h +intrp.o: rt-select.h +intrp.o: rt-util.h +intrp.o: rthread.h +intrp.o: search.h +intrp.o: term.h +intrp.o: trn.h +intrp.o: util.h +intrp.o: util2.h +kfile.o: EXTERN.h +kfile.o: INTERN.h +kfile.o: artsrch.h +kfile.o: bits.h +kfile.o: cache.h +kfile.o: common.h +kfile.o: config.h +kfile.o: hash.h +kfile.o: intrp.h +kfile.o: kfile.c +kfile.o: kfile.h +kfile.o: ng.h +kfile.o: ngdata.h +kfile.o: ngstuff.h +kfile.o: rcstuff.h +kfile.o: rt-process.h +kfile.o: rt-select.h +kfile.o: rthread.h +kfile.o: search.h +kfile.o: term.h +kfile.o: trn.h +kfile.o: util.h +last.o: EXTERN.h +last.o: INTERN.h +last.o: common.h +last.o: config.h +last.o: intrp.h +last.o: last.c +last.o: last.h +last.o: trn.h +last.o: util.h +ndir.o: EXTERN.h +ndir.o: INTERN.h +ndir.o: common.h +ndir.o: config.h +ndir.o: ndir.c +ndir.o: ndir.h +ng.o: EXTERN.h +ng.o: INTERN.h +ng.o: art.h +ng.o: artio.h +ng.o: artsrch.h +ng.o: artstate.h +ng.o: backpage.h +ng.o: bits.h +ng.o: cache.h +ng.o: charsubst.h +ng.o: common.h +ng.o: config.h +ng.o: decode.h +ng.o: final.h +ng.o: head.h +ng.o: help.h +ng.o: intrp.h +ng.o: kfile.h +ng.o: last.h +ng.o: ng.c +ng.o: ng.h +ng.o: ngdata.h +ng.o: ngstuff.h +ng.o: nntp.h +ng.o: nntpclient.h +ng.o: rcln.h +ng.o: rcstuff.h +ng.o: respond.h +ng.o: rt-select.h +ng.o: rt-wumpus.h +ng.o: rthread.h +ng.o: search.h +ng.o: sw.h +ng.o: term.h +ng.o: trn.h +ng.o: util.h +ngdata.o: EXTERN.h +ngdata.o: INTERN.h +ngdata.o: bits.h +ngdata.o: cache.h +ngdata.o: common.h +ngdata.o: config.h +ngdata.o: final.h +ngdata.o: head.h +ngdata.o: intrp.h +ngdata.o: kfile.h +ngdata.o: ndir.h +ngdata.o: ng.h +ngdata.o: ngdata.c +ngdata.o: ngdata.h +ngdata.o: nntp.h +ngdata.o: nntpclient.h +ngdata.o: rcln.h +ngdata.o: rcstuff.h +ngdata.o: rt-select.h +ngdata.o: rthread.h +ngdata.o: term.h +ngdata.o: trn.h +ngdata.o: util.h +nghash.o: EXTERN.h +nghash.o: common.h +nghash.o: config.h +nghash.o: final.h +nghash.o: hash.h +nghash.o: intrp.h +nghash.o: ndir.h +nghash.o: ngdata.h +nghash.o: nghash.c +nghash.o: nntp.h +nghash.o: nntpclient.h +nghash.o: rcln.h +nghash.o: rcstuff.h +nghash.o: term.h +nghash.o: trn.h +nghash.o: util.h +ngsrch.o: EXTERN.h +ngsrch.o: INTERN.h +ngsrch.o: common.h +ngsrch.o: config.h +ngsrch.o: final.h +ngsrch.o: ngsrch.c +ngsrch.o: ngsrch.h +ngsrch.o: rcln.h +ngsrch.o: rcstuff.h +ngsrch.o: search.h +ngsrch.o: term.h +ngsrch.o: trn.h +ngsrch.o: util.h +ngstuff.o: EXTERN.h +ngstuff.o: INTERN.h +ngstuff.o: bits.h +ngstuff.o: cache.h +ngstuff.o: common.h +ngstuff.o: config.h +ngstuff.o: decode.h +ngstuff.o: final.h +ngstuff.o: head.h +ngstuff.o: intrp.h +ngstuff.o: kfile.h +ngstuff.o: ng.h +ngstuff.o: ngdata.h +ngstuff.o: ngstuff.c +ngstuff.o: ngstuff.h +ngstuff.o: rcstuff.h +ngstuff.o: respond.h +ngstuff.o: rt-select.h +ngstuff.o: rt-wumpus.h +ngstuff.o: rthread.h +ngstuff.o: sw.h +ngstuff.o: term.h +ngstuff.o: trn.h +ngstuff.o: util.h +ngstuff.o: util2.h +nntp.o: EXTERN.h +nntp.o: artio.h +nntp.o: bits.h +nntp.o: cache.h +nntp.o: common.h +nntp.o: config.h +nntp.o: final.h +nntp.o: head.h +nntp.o: init.h +nntp.o: ngdata.h +nntp.o: nntp.c +nntp.o: nntp.h +nntp.o: nntpclient.h +nntp.o: rcln.h +nntp.o: term.h +nntp.o: trn.h +nntp.o: util.h +nntpauth.o: EXTERN.h +nntpauth.o: INTERN.h +nntpauth.o: common.h +nntpauth.o: config.h +nntpauth.o: nntp.h +nntpauth.o: nntpauth.c +nntpauth.o: nntpauth.h +nntpauth.o: nntpclient.h +nntpauth.o: util2.h +nntpclient.o: EXTERN.h +nntpclient.o: INTERN.h +nntpclient.o: common.h +nntpclient.o: config.h +nntpclient.o: nntpclient.c +nntpclient.o: nntpclient.h +nntpinit.o: EXTERN.h +nntpinit.o: common.h +nntpinit.o: config.h +nntpinit.o: nntpclient.h +nntpinit.o: nntpinit.c +nntplist.o: EXTERN.h +nntplist.o: common.h +nntplist.o: config.h +nntplist.o: nntpclient.h +nntplist.o: nntplist.c +only.o: EXTERN.h +only.o: INTERN.h +only.o: common.h +only.o: config.h +only.o: final.h +only.o: ngsrch.h +only.o: only.c +only.o: only.h +only.o: search.h +only.o: util.h +parsedate.o: config.h +parsedate.o: parsedate.y +rcln.o: EXTERN.h +rcln.o: INTERN.h +rcln.o: common.h +rcln.o: config.h +rcln.o: ngdata.h +rcln.o: rcln.c +rcln.o: rcln.h +rcln.o: rcstuff.h +rcln.o: util.h +rcln.o: util2.h +rcstuff.o: EXTERN.h +rcstuff.o: INTERN.h +rcstuff.o: autosub.h +rcstuff.o: bits.h +rcstuff.o: cache.h +rcstuff.o: common.h +rcstuff.o: config.h +rcstuff.o: final.h +rcstuff.o: hash.h +rcstuff.o: intrp.h +rcstuff.o: ngdata.h +rcstuff.o: nntp.h +rcstuff.o: nntpclient.h +rcstuff.o: only.h +rcstuff.o: rcln.h +rcstuff.o: rcstuff.c +rcstuff.o: rcstuff.h +rcstuff.o: search.h +rcstuff.o: term.h +rcstuff.o: trn.h +rcstuff.o: util.h +respond.o: EXTERN.h +respond.o: INTERN.h +respond.o: artio.h +respond.o: cache.h +respond.o: charsubst.h +respond.o: common.h +respond.o: config.h +respond.o: decode.h +respond.o: final.h +respond.o: head.h +respond.o: intrp.h +respond.o: ng.h +respond.o: ngdata.h +respond.o: nntp.h +respond.o: nntpclient.h +respond.o: respond.c +respond.o: respond.h +respond.o: term.h +respond.o: trn.h +respond.o: util.h +respond.o: util2.h +rt-mt.o: EXTERN.h +rt-mt.o: INTERN.h +rt-mt.o: bits.h +rt-mt.o: cache.h +rt-mt.o: common.h +rt-mt.o: config.h +rt-mt.o: hash.h +rt-mt.o: intrp.h +rt-mt.o: ng.h +rt-mt.o: ngdata.h +rt-mt.o: nntp.h +rt-mt.o: nntpclient.h +rt-mt.o: rcln.h +rt-mt.o: rt-mt.c +rt-mt.o: rt-mt.h +rt-mt.o: rt-process.h +rt-mt.o: rthread.h +rt-mt.o: trn.h +rt-mt.o: util.h +rt-ov.o: EXTERN.h +rt-ov.o: INTERN.h +rt-ov.o: bits.h +rt-ov.o: cache.h +rt-ov.o: common.h +rt-ov.o: config.h +rt-ov.o: final.h +rt-ov.o: hash.h +rt-ov.o: head.h +rt-ov.o: ng.h +rt-ov.o: ngdata.h +rt-ov.o: nntp.h +rt-ov.o: nntpclient.h +rt-ov.o: overview.h +rt-ov.o: rt-ov.c +rt-ov.o: rt-ov.h +rt-ov.o: rt-process.h +rt-ov.o: rt-util.h +rt-ov.o: rthread.h +rt-ov.o: term.h +rt-ov.o: trn.h +rt-ov.o: util.h +rt-page.o: EXTERN.h +rt-page.o: INTERN.h +rt-page.o: cache.h +rt-page.o: common.h +rt-page.o: config.h +rt-page.o: ngdata.h +rt-page.o: rt-page.c +rt-page.o: rt-page.h +rt-page.o: rt-select.h +rt-page.o: rt-util.h +rt-page.o: rthread.h +rt-page.o: term.h +rt-page.o: trn.h +rt-page.o: util.h +rt-process.o: EXTERN.h +rt-process.o: INTERN.h +rt-process.o: bits.h +rt-process.o: cache.h +rt-process.o: common.h +rt-process.o: config.h +rt-process.o: final.h +rt-process.o: hash.h +rt-process.o: intrp.h +rt-process.o: kfile.h +rt-process.o: ng.h +rt-process.o: ngdata.h +rt-process.o: rcln.h +rt-process.o: rt-process.c +rt-process.o: rt-process.h +rt-process.o: rt-select.h +rt-process.o: rthread.h +rt-process.o: trn.h +rt-process.o: util.h +rt-select.o: EXTERN.h +rt-select.o: INTERN.h +rt-select.o: artsrch.h +rt-select.o: bits.h +rt-select.o: cache.h +rt-select.o: common.h +rt-select.o: config.h +rt-select.o: final.h +rt-select.o: help.h +rt-select.o: kfile.h +rt-select.o: ng.h +rt-select.o: ngdata.h +rt-select.o: ngstuff.h +rt-select.o: rt-page.h +rt-select.o: rt-select.c +rt-select.o: rt-select.h +rt-select.o: rt-util.h +rt-select.o: rthread.h +rt-select.o: search.h +rt-select.o: term.h +rt-select.o: trn.h +rt-select.o: util.h +rt-util.o: EXTERN.h +rt-util.o: INTERN.h +rt-util.o: artio.h +rt-util.o: cache.h +rt-util.o: common.h +rt-util.o: config.h +rt-util.o: ngdata.h +rt-util.o: nntp.h +rt-util.o: nntpclient.h +rt-util.o: rt-select.h +rt-util.o: rt-util.c +rt-util.o: rt-util.h +rt-util.o: rthread.h +rt-util.o: term.h +rt-wumpus.o: EXTERN.h +rt-wumpus.o: INTERN.h +rt-wumpus.o: artio.h +rt-wumpus.o: backpage.h +rt-wumpus.o: cache.h +rt-wumpus.o: common.h +rt-wumpus.o: config.h +rt-wumpus.o: final.h +rt-wumpus.o: head.h +rt-wumpus.o: ng.h +rt-wumpus.o: ngdata.h +rt-wumpus.o: rt-select.h +rt-wumpus.o: rt-wumpus.c +rt-wumpus.o: rt-wumpus.h +rt-wumpus.o: rthread.h +rt-wumpus.o: term.h +rt-wumpus.o: util.h +rthread.o: EXTERN.h +rthread.o: INTERN.h +rthread.o: artstate.h +rthread.o: bits.h +rthread.o: cache.h +rthread.o: common.h +rthread.o: config.h +rthread.o: final.h +rthread.o: hash.h +rthread.o: head.h +rthread.o: intrp.h +rthread.o: kfile.h +rthread.o: ng.h +rthread.o: ngdata.h +rthread.o: nntp.h +rthread.o: nntpclient.h +rthread.o: rcln.h +rthread.o: rcstuff.h +rthread.o: rt-mt.h +rthread.o: rt-ov.h +rthread.o: rt-page.h +rthread.o: rt-process.h +rthread.o: rt-select.h +rthread.o: rt-util.h +rthread.o: rt-wumpus.h +rthread.o: rthread.c +rthread.o: rthread.h +rthread.o: search.h +rthread.o: trn.h +rthread.o: util.h +search.o: EXTERN.h +search.o: INTERN.h +search.o: common.h +search.o: config.h +search.o: search.c +search.o: search.h +search.o: util.h +strftime.o: EXTERN.h +strftime.o: common.h +strftime.o: config.h +strftime.o: strftime.c +sw.o: EXTERN.h +sw.o: INTERN.h +sw.o: artstate.h +sw.o: cache.h +sw.o: charsubst.h +sw.o: common.h +sw.o: config.h +sw.o: head.h +sw.o: intrp.h +sw.o: ng.h +sw.o: ngdata.h +sw.o: only.h +sw.o: rt-page.h +sw.o: rt-util.h +sw.o: search.h +sw.o: sw.c +sw.o: sw.h +sw.o: term.h +sw.o: trn.h +sw.o: util.h +sw.o: util2.h +term.o: EXTERN.h +term.o: INTERN.h +term.o: cache.h +term.o: common.h +term.o: config.h +term.o: final.h +term.o: help.h +term.o: intrp.h +term.o: term.c +term.o: term.h +term.o: util.h +term.o: util2.h +test.o: test.c +trn-artchk.o: EXTERN.h +trn-artchk.o: common.h +trn-artchk.o: config.h +trn-artchk.o: nntpclient.h +trn-artchk.o: trn-artchk.c +trn.o: EXTERN.h +trn.o: INTERN.h +trn.o: addng.h +trn.o: cache.h +trn.o: common.h +trn.o: config.h +trn.o: final.h +trn.o: help.h +trn.o: init.h +trn.o: intrp.h +trn.o: kfile.h +trn.o: last.h +trn.o: ng.h +trn.o: ngdata.h +trn.o: ngsrch.h +trn.o: ngstuff.h +trn.o: nntp.h +trn.o: nntpclient.h +trn.o: only.h +trn.o: patchlevel.h +trn.o: rcln.h +trn.o: rcstuff.h +trn.o: search.h +trn.o: sw.h +trn.o: term.h +trn.o: trn.c +trn.o: trn.h +trn.o: util.h +trn.o: util2.h +unipatch.o: unipatch.c +unship.o: EXTERN.h +unship.o: common.h +unship.o: config.h +unship.o: decode.h +unship.o: respond.h +unship.o: unship.c +util.o: EXTERN.h +util.o: INTERN.h +util.o: common.h +util.o: config.h +util.o: final.h +util.o: nntp.h +util.o: nntpauth.h +util.o: nntpclient.h +util.o: term.h +util.o: util.c +util.o: util.h +util2.o: EXTERN.h +util2.o: INTERN.h +util2.o: common.h +util2.o: config.h +util2.o: nntp.h +util2.o: nntpauth.h +util2.o: nntpclient.h +util2.o: util.h +util2.o: util2.c +util2.o: util2.h +uudecode.o: EXTERN.h +uudecode.o: common.h +uudecode.o: config.h +uudecode.o: decode.h +uudecode.o: respond.h +uudecode.o: uudecode.c +Makefile: Makefile.SH config.sh ; /bin/sh $(srcdir)/Makefile.SH +Pnews: Pnews.SH config.sh ; /bin/sh $(srcdir)/Pnews.SH +Policy.sh: Policy.sh.SH config.sh ; /bin/sh $(srcdir)/Policy.sh.SH +Rnmail: Rnmail.SH config.sh ; /bin/sh $(srcdir)/Rnmail.SH +Speller: Speller.SH config.sh ; /bin/sh $(srcdir)/Speller.SH +config.h: config.h.SH config.sh ; /bin/sh $(srcdir)/config.h.SH +filexp: filexp.SH config.sh ; /bin/sh $(srcdir)/filexp.SH +makedepend: makedepend.SH config.sh ; /bin/sh $(srcdir)/makedepend.SH +makedir: makedir.SH config.sh ; /bin/sh $(srcdir)/makedir.SH +mbox.saver: mbox.saver.SH config.sh ; /bin/sh $(srcdir)/mbox.saver.SH +newsetup: newsetup.SH config.sh ; /bin/sh $(srcdir)/newsetup.SH +newsgroups: newsgroups.SH config.sh ; /bin/sh $(srcdir)/newsgroups.SH +newsnews: newsnews.SH config.sh ; /bin/sh $(srcdir)/newsnews.SH +norm.saver: norm.saver.SH config.sh ; /bin/sh $(srcdir)/norm.saver.SH +# WARNING: Put nothing here or make depend will gobble it up! diff -u --recursive --new-file trn-3.6.orig/Pnews trn-3.6/Pnews --- trn-3.6.orig/Pnews Wed Dec 31 19:00:00 1969 +++ trn-3.6/Pnews Mon Jan 9 16:03:28 1995 @@ -0,0 +1,554 @@ +#!/bin/sh +# $Id: Pnews.SH,v 3.0 1992/02/23 21:25:39 davison Trn $ +# +# This software is Copyright 1991 by Stan Barber. +# +# Permission is hereby granted to copy, reproduce, redistribute or otherwise +# use this software as long as: there is no monetary profit gained +# specifically from the use or reproduction of this software, it is not +# sold, rented, traded or otherwise marketed, and this copyright notice is +# included prominently in any copy made. +# +# The author make no claims as to the fitness or correctness of this software +# for any use whatsoever, and it is provided as is. Any use of this software +# is at the user's own risk. +# +# syntax: Pnews -h headerfile or +# Pnews -h headerfile oldarticle or +# Pnews newsgroup title or just +# Pnews + +export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) + +# System dependencies + +mailer="${RNMAILER-/usr/sbin/sendmail}" +# if you change this to something that does signatures, take out signature code + +case define in +define) + # where recordings and distributions are kept + lib=`/usr/lib/trn/filexp /var/lib/news` + # where important rn things are kept + rnlib=`/usr/lib/trn/filexp /usr/lib/trn` + artcheck=trn-artchk + nntplist=nntplist + ;; +undef) + # where recordings and distributions are kept + lib="/var/lib/news" + # where important rn things are kept + rnlib="/usr/lib/trn" + artcheck=/usr/bin/trn-artchk + nntplist=/usr/bin/nntplist + ;; +esac + +# your organization name +orgname="/etc/organization" +# what pager you use--if you have kernal paging use cat +pager="${PAGER-/bin/more}" +# how you derive full names, bsd, usg, or other +nametype="bsd" +# default editor +defeditor="/usr/bin/vi" +# how not to echo with newline +n="-n" +c="" + +# You should also look at the distribution warnings below marked !DIST! +# to make sure any distribution regions you are a member of are included. +# The following are some prototypical distribution groups. If you do not +# use them all set the unused ones to a non-null string such as 'none'. +loc="none" +org="none" +multistate="none" +city="none" +state="none" +cntry="none" +cont="none" + +active=/var/lib/news/active +test=test +sed=sed +echo=echo +cat=cat +egrep=egrep +grep=grep +tr=tr +inews=/usr/bin/inews +cp=cp +sleep=sleep +rm=rm +who= +mv=mv + +nidump= +ypmatch= + +orgname=${NEWSORG-${ORGANIZATION-$orgname}} +homedir=${HOME-$LOGDIR} +dotdir=${DOTDIR-$homedir} +tmpart=$dotdir/.article +speller=$rnlib/Speller + +tmp="${TMPDIR-/tmp}" +newsgroups=${NEWSGROUPS-$lib/newsgroups} +active=${NEWSACTIVE-$active} +case "$active" in +none) active="$tmp/Pnact.$$";; +esac +news_sig=${NEWSSIGNATURE-$dotdir/.news_sig} + +case "$NETSPEED" in +fast) + if $test ! -f "$newsgroups"; then + newsgroups="$tmp/Pnng.$$"; + rmlist="$newsgroups"; + cmdlist="$nntplist -o $newsgroups newsgroups ;"; + fi + if $test ! -f "$active"; then + active="$tmp/Pnact.$$"; + rmlist="$rmlist $active"; + cmdlist="$cmdlist $nntplist -o $active active"; + fi + ;; +esac + +if $test -f $dotdir/.pnewsexpert; then + expertise=expert +else + $cat <<'EOM' +I see you've never used this version of Pnews before. I will give you extra +help this first time through, but then you must remember what you learned. +If you don't understand any question, type h and a CR (carriage return) for +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, get to the top-level prompt of [t]rn, and use the command +"g news.announce.newusers" to go to that group. + +EOM + expertise=beginner +fi + +case $cntry in + can) Stpr=Province ; stpr=province ;; + *) Stpr=State ; stpr=state ;; +esac + +case $multistate in + pnw) multistpr="Pacific NorthWest" ;; + *) multistpr="Multi-State Area" ;; +esac + +headerfile="" +case $# in +0) ;; +*) case $1 in + -h) + headerfile="$2" + shift + shift + case $# in + 0) + oldart="" + ;; + *) + oldart="$1" + shift + ;; + esac + ;; + esac + ;; +esac + +case $headerfile in +'') + . $rnlib/Pnews.header + ;; +*) + $cat < $headerfile > $tmpart + ;; +esac + rescue="$sleep 1; $cat $tmpart >>${HOME-$LOGDIR}/dead.article ; $rm -f $rmlist ; $echo Article appended to ${HOME-$LOGDIR}/dead.article ; exit" + if $test -n "$rmlist" ; then + trap "$rm -f $rmlist" 0 + fi + trap "trap : 1; $rescue" 1 + trap "$rescue" 2 + +$echo "" + +# extract the newsgroups list and distribution +hdr_newsgroups=`$sed -n -e '/^Newsgroups:/{' -e 's///' -e 's/,/ /g' -e p -e q -e '}' $tmpart` +hdr_distribution=`$sed -n -e '/^Distribution:/{' -e 's///' -e p -e q -e '}' $tmpart` + +# check for "poster" magic cookie. Allow erroneous user@site too. +flag=0 +for ng in $hdr_newsgroups ; do + case "$ng" in + poster) flag=1 ;; + *@*) flag=1 ;; + *) ;; + esac +done +case $flag in +1) + $cat <<'EOM' + +The original author has requested that messages be sent back via mail +rather than posting to news. Do you want to jump out of this and +EOM + $echo $n "mail your reply instead? [yn] $c" + read ans + case $ans in + n*) tweak="$tmp/Pntwk.$$" + $sed '1,/^[ ]*$/{/^Newsgroups:/d; + s/^X-ORIGINAL-NEWSGROUPS:/Newsgroups:/;}' $tmpart >$tweak + $cp $tweak $tmpart + $rm -f $tweak + ;; + *) exit ;; + esac + $echo " " + $echo "The Cc: line should have the poster's requested return address." + ;; +esac + +# play recorded message +if $test -s ${lib}/recording ; then + for ng in $hdr_newsgroups ; do + _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 + done +fi + +# determine the distribution of this message +set X $hdr_distribution +shift +if $test $# -gt 0 ; then + dist=$1.whatever +else + set X $hdr_newsgroups + shift + if $test $# -gt 0 ; then + dist=$1.whatever + else + dist=misc.whatever + fi +fi +case $dist in +*.*) + ;; +*) + dist=$dist.whatever + ;; +esac + +case "$FAST_PNEWS" in +y*) ;; +*) +# tell them what we think they are doing... !DIST! +case $dist 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. Your message will cost the net hundreds if not thousands of +dollars to send everywhere. Please be sure you know what you are doing. + +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.' + ;; +$cntry.*) + $echo 'This program posts news to many machines throughout the country.' + ;; +$multistate.*) + $echo "This program posts news to many machines throughout the ${multistpr}." + ;; +$state.*) + $echo "This program posts news to many machines throughout the ${stpr}." + ;; +$city.*) + $echo 'This program posts news to many machines throughout the city.' + ;; +$org.*) + $echo 'This program posts news to machines throughout the organization.' + ;; +$loc.*) + $echo 'This program posts news to machines throughout the local organization.' + ;; +*.*) + $echo 'This program may post news to many machines.' + ;; +to.*) + $echo 'This program may post news to a particular machine.' + ;; +*) + $echo 'This program posts news to everyone on the machine.' + ;; +esac +ans="" +while $test "X$ans" = X ; do + $echo $n "Are you absolutely sure that you want to do this? [ny] $c" + read ans + case $ans in + y*) ;; + f*) ;; + h*) $cat <<'EOH' + +Type n or CR to exit, y to post. + +EOH + ans="" ;; + *) exit ;; + esac +done +;; +esac + +# run nntplist in the background, if necessary +if $test -n "$cmdlist"; then + ( eval $cmdlist ) >/dev/null 2>&1 & +fi + +case "$FAST_PNEWS" in +y*) file='' + $echo "" >> $tmpart + state=edit + ;; +*) file=h;; +esac +while $test "X$file" = Xh ; do + $echo "" + $echo $n "Prepared file to include [none]: $c" + read file + case $file in + h) + $cat <<'EOH' + +If you have already produced the body of your article, type the filename +for it here. If you just want to proceed directly to the editor, type a +RETURN. In any event, you will be allowed to edit as many times as you +want before you send off the article. +EOH + ;; + '') + $echo "" >> $tmpart + state=edit + ;; + *) + $cat $file >>$tmpart + state=check + ;; + esac +done + +$echo "" + +if $test -r $news_sig; then + $echo "-- " >> $tmpart + $sed 4q $news_sig >> $tmpart +fi + +while : ; do + case $state in + edit) + case $expertise in + beginner) + $cat $dotdir/.pnewsexpert + $cat <<'EOMessage' +A temporary file has been created for you to edit. Be sure to leave at +least one blank line between the header and the body of your message. +(And until a certain bug is fixed all over the net, don't start the body of +your message with any indentation, or it may get eaten.) + +Within the header may be fields that you don't understand. If you don't +understand a field (or even if you do), you can simply leave it blank, and +it will go away when the article is posted. + +Type return to get the default editor, or type the name of your favorite +editor. + +EOMessage + ;; + esac + case "${VISUAL-${EDITOR-}}" in + '') + tmp=h + ;; + *) + tmp='' + ;; + esac + while $test "X$tmp" = Xh ; do + $echo $n "Editor [${VISUAL-${EDITOR-$defeditor}}]: $c" + read tmp + case $tmp in + h) + $cat <<'EOH' + +Type a return to get the default editor, or type the name of the editor you +prefer. The default editor depends on the VISUAL and EDITOR environment +variables. + +EOH + ;; + '') + ;; + *) + VISUAL=$tmp + export VISUAL + ;; + esac + done + trap : 2 + ${VISUAL-${EDITOR-$defeditor}} $tmpart $oldart + trap "$rescue" 2 + state=check + ;; + + check) + # wait for possible background nntplist + $test -n "$cmdlist" && wait + + # warn about long lines, malformed headers, misspelled newsgroups + ($artcheck $tmpart 79 $newsgroups $active) 2>/dev/null + state=ask + ;; + + ask) + $echo "" + $echo $n "Check spelling, Send, Abort, Edit, or List? $c" + read ans + + case "$ans" in + [aA]*) + state=rescue + ;; + [eE]*) + set $ans + case $# in + 2) VISUAL="$2" ;; + esac + state=edit + ;; + [lL]*) + $pager $tmpart + state=ask + ;; + [cC]*|[sS][pP]*) + $speller $tmpart + state=ask + ;; + [sS]*) + state=send + ;; + [hH]*) + $cat <<'EOH' + +Type c to check the article's spelling, s to send the article, a to abort +and append the article to dead.article, e to edit the article again, or l +to list the article with your pager. + +To invoke an alternate editor, type 'e editor'. +EOH + esac + ;; + + send) + set X `$sed < $tmpart -n -e '/^Newsgroups: /{' -e p -e q -e '}'` + shift + case $# in + 2) + state=cleanup + #posted_to="$2" + headerstrip='1,/^[ ]*$/{/^[A-Z][-A-Za-z0-9]*:[ ]*$/d; + /^X-ORIGINAL-NEWSGROUPS:/d; + /^[Cc][Cc]:/d; + /^Distribution: world/d;}' + if $sed "$headerstrip" $tmpart | $inews -h ; then + : null + else + state=ask + fi + cc=`$sed -n '1,/^[ ]*$/{/^[Cc][Cc]:[ ][^ ]/p;}' $tmpart| + $sed 's/^[Cc][Cc]:[ ][ ]*//'` + if $test "X$cc" != X ; then + case "$mailer" in + *recmail) set X ;; + *sendmail) set X -t ;; + *) set X `echo $cc | $sed 's/,/ /g'` ;; + esac + shift + (#$echo "X-Also-Posted-To: $posted_to" + case "$mailer" in + *recmail|*sendmail) $echo To: $cc ;; + esac + $sed "$headerstrip" $tmpart + if $test -f $homedir/.signature; then + $echo "-- " + $cat $homedir/.signature + fi + ) | $mailer $@ + fi + ;; + *) + $echo "" + $echo "Malformed Newsgroups line." + $echo "" + $sleep 1 + state=edit + ;; + esac + ;; + rescue) + if $test -s $tmpart; then + $cat $tmpart >> ${HOME-$LOGDIR}/dead.article + $echo "Article appended to ${HOME-$LOGDIR}/dead.article" + $echo "A copy may be temporarily found in $tmpart" + else + $echo "Null article discarded." + fi + exit + ;; + cleanup) + case "${AUTHORCOPY-none}" in + none) + ;; + *) + set X ${USER-${LOGNAME-`$who am i`}} unknown + shift + $rnlib/mbox.saver $tmpart "." "." 0 0 Pnews $AUTHORCOPY "From $1 `LANG= date`" + if $test $? -eq 0 ; then + $echo "Article appended to $AUTHORCOPY" + else + $echo "Cannot append to $AUTHORCOPY" + fi + ;; + esac + exit + ;; + esac +done diff -u --recursive --new-file trn-3.6.orig/Pnews.header trn-3.6/Pnews.header --- trn-3.6.orig/Pnews.header Wed Dec 31 19:00:00 1969 +++ trn-3.6/Pnews.header Mon Jan 9 16:03:29 1995 @@ -0,0 +1,208 @@ +case $# in +0) + ng=h + while $test "X$ng" = Xh ; do + $echo "" + $echo $n "Newsgroup(s): $c" + read ng + case $ng in + h) + $cat <<'EOH' + +Type the name of one or more newsgroups to which you wish to post an article. +If you want to post to multiple newsgroups, it is better to do them all at +once than to post to each newsgroup individually, which defeats the news +reading programs' strategies of eliminating duplicates. + +Separate multiple newsgroup names with commas. +EOH + ;; + esac + done + ;; +*) + ng=$1 + shift + ;; +esac +case $ng in +*\ *) + ng=`$echo "$ng" | $sed 's/[, ] */,/g'` + ;; +esac +case $ng in +ddn.*) + defdist=inet + dist=h + ;; +*.*) + defdist='' + dist=h + ;; +*) + defdist='' + dist='' + ;; +esac + +while $test "X$dist" = Xh ; do + if $test -f $lib/distributions; then + $echo " " + $echo "Your local distribution prefixes are:" + $cat $lib/distributions + $echo " " + else + $egrep -v '[ ]none$' < (not "world") + +EOM + fi + $echo $n "Distribution ($defdist): $c" + read dist + case $dist in + '') dist="$defdist" ;; + esac + case "$dist" in + h) + $cat <<'EOH' + +The Distribution line may be used to limit the distribution of an article +to some subset of the systems that would receive the article based only on +the Newsgroups line. For example, if you want to sell your car in talk.auto, +and you live in New Jersey, you might want to put "nj" on the Distribution +line to avoid advertising in California, which has enough problems of its own. +The actual area designators to use depend on where you are, of course. +EOH + ;; + world*|comp*|news*|sci*|rec*|misc*|soc*|talk*|alt*) + dist='' + ;; + ''|$loc|$org|$city|$state|$multistate|$cntry|$cont|$defdist) + ;; + *) + if $test -f $lib/distributions && \ + $egrep "^$dist[ ]" $lib/distributions >$tmpart && \ + $test -s $tmpart; then + : null + else + $echo "Unrecognized distribution prefix--type h for help, CR to use anyway." + defdist=$dist + dist=h + fi + ;; + esac +done + +follow="" + +# LCP 16-Oct-91 Subject line is required. Make it a little more +# difficult to omit. Added "while : ; do", ... "done", and "if" +# at end of while loop. +while : ; do + case $# in + 0) + title=h + while $test "X$title" = Xh ; do + $echo "" + $echo $n "Title/Subject: $c" + read title + case $title in + h) + $cat <<'EOH' + +Type the title for your article. Please make it as informative as possible +(within reason) so that people who aren't interested won't have to read the +article to find out they aren't interested. This includes marking movie +spoilers as (spoiler), and rotated jokes as (rot 13). +EOH + ;; + esac + done + ;; + *) + title="$*" + # LCP 16-Oct-91 Added "set" and "shift". Must insure $# is 0 + # in case the title is all white space and we make another + # pass thru this loop. + set X + shift + ;; + esac + if expr "X$title" : "^X[ ]*$" > /dev/null 2>&1 + then + $cat <<'EOH' + +Articles without a "Subject:" line will not be accepted by the News +system. Please give a Title/Subject line for your article. +EOH + else + break + fi +done + + +# now build a file with a header for them to edit + +set X ${USER-${LOGNAME-`$who am i`}} +shift +logname=$1 +case $logname in +*!*) logname=`expr "$logname" : '!\(.*\)$'` ;; +esac +case ${NAME-$nametype} in +bsd) + if $test "X$ypmatch" != X; then + fullname=`$ypmatch $logname passwd 2>/dev/null | $sed -e "s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^,:;]*\).*"'$'"/\1/"` + elif $test "X$nidump" != X; then + fullname=`$nidump passwd / | $sed -e "/^$logname:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^,:;]*\).*"'$'"/\1/" -e "q" -e "}" -e "d"` + fi + if $test "X$fullname" = X; then + fullname=`$sed /dev/null | $sed -e "s/^[^:]*:[^:]*:[^:]*:[^:]*:\([^(:]*\).*"'$'"/\1/" -e "s/^.*-//" -e "q"` + fi + if $test "X$fullname" = X; then + fullname=`$sed $tmpart < $tmpart < $tmpart + ;; +esac + + +file=h +while $test X$file = Xh ; do + $echo "" + $echo $n "Prepared file to include [none]: $c" + read file + case $file in + h) + $cat <<'EOH' + +If you have already produced the body of your message, type the filename +for it here. If you just want to proceed directly to the editor, type a +RETURN. In any event, you will be allowed to edit as many times as you +want before you send off the message. +EOH + ;; + '') + $echo "" >> $tmpart + state=edit + ;; + *) + $cat $file >>$tmpart + state=ask + ;; + esac +done + +$echo "" + +if $test -r $mail_sig; then + $echo "-- " >> $tmpart + $cat $mail_sig >> $tmpart +fi + +while : ; do + case $state in + edit) + rescue="$sleep 1; $cat $tmpart >>${HOME-$LOGDIR}/dead.letter ; $echo Message appended to ${HOME-$LOGDIR}/dead.letter ; exit" + trap "$rescue" 1 + trap : 2 + case "${VISUAL-${EDITOR-}}" in + '') + tmp=h + ;; + *) + tmp='' + ;; + esac + while $test "X$tmp" = Xh ; do + $echo $n "Editor [${VISUAL-${EDITOR-$defeditor}}]: $c" + read tmp + case $tmp in + h) + $cat <<'EOH' + +Type a return to get the default editor, or type the name of the editor you +prefer. The default editor depends on the VISUAL and EDITOR environment +variables. + +EOH + ;; + '') + ;; + *) + VISUAL=$tmp + export VISUAL + ;; + esac + done + ${VISUAL-${EDITOR-$defeditor}} $tmpart $oldart + trap "$rescue" 2 + state=ask + ;; + + ask) + $echo "" + $echo $n "Check spelling, Send, Abort, Edit, or List? $c" + read ans + + case $ans in + [aA]*) + state=rescue + ;; + [eE]*) + set $ans + case $# in + 2) VISUAL="$2" ;; + esac + state=edit + ;; + [lL]*) + $pager $tmpart + state=ask + ;; + [cC]*|[sS][pP]*) + $speller $tmpart + state=ask + ;; + [sS]*) + state=send + ;; + [hH]*) + $cat <<'EOH' + +Type c to check the message's spelling, s to send the message, a to abort +and append the message to dead.letter, e to edit the message again, or l +to list the message with your pager. + +To invoke an alternate editor, type 'e editor'. +EOH + esac + ;; + + send) + if $test -f $dotdir/.signature; then + $echo $n "Append .signature file? [y] $c" + read ans + case $ans in + ''|y*) + $echo "-- " >> $tmpart + cat $dotdir/.signature >> $tmpart + ;; + esac + fi + case $mailer in + *sendmail) + $mailer -t <$tmpart + ;; +# but recmail does not know about Bcc, alas + *recmail) + $mailer <$tmpart + ;; + *) + set X `$sed <$tmpart -n -e '/^To:/{' -e 's/To: *//p' -e q -e '}'` + shift + set X "$@" `$sed <$tmpart -n -e '/^Cc:/{' -e 's/Cc: *//p' -e q -e '}'` + shift + set X "$@" `$sed <$tmpart -n -e '/^Bcc:/{' -e 's/Bcc: *//p' -e q -e '}'` + shift + $grep -v "^Bcc:" <$tmpart | $mailer "$@" + ;; + esac + case $? in + 0) + state=cleanup + ;; + *) + state=rescue + ;; + esac + ;; + rescue) + $cat $tmpart >> ${HOME-$LOGDIR}/dead.letter + $echo "Message appended to ${HOME-$LOGDIR}/dead.letter" + $echo "A copy may be temporarily found in $tmpart" + exit + ;; + cleanup) + case "${MAILRECORD-none}" in + none) + ;; + *) + set X ${USER-${LOGNAME-`$who am i`}} unknown + shift + $rnlib/mbox.saver $tmpart "." "." 0 0 Pnews $MAILRECORD "From $1 `LANG= date`" + if $test $? -eq 0 ; then + $echo "Message appended to $MAILRECORD" + else + $echo "Cannot append to $MAILRECORD" + fi + ;; + esac + exit + ;; + esac +done diff -u --recursive --new-file trn-3.6.orig/Speller trn-3.6/Speller --- trn-3.6.orig/Speller Wed Dec 31 19:00:00 1969 +++ trn-3.6/Speller Mon Jan 9 16:03:29 1995 @@ -0,0 +1,163 @@ +#!/bin/sh +# $Id: Speller.SH,v 3.0 1992/02/23 21:25:39 davison Trn $ +# Speller - a script to disassemble a posting; use ispell to spell- +# check the body along with the Subject, Keywords, and Summary lines; +# and put it all back together again. +# +# Written by Eric Schnoebelen, (eric@cirr.com) +# Fri May 14 20:33:48 CDT 1993 + +export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) + +# what pager you use--if you have kernal paging use cat +pager="${PAGER-/bin/more}" +# either the ispell program or "none" +ispell=/usr/bin/ispell +ispell_options=-x +test=test +sed=sed +echo=echo +cat=cat +awk=awk +rm=rm +mv=mv +diff=diff +ed=ed +spell=spell +basename=basename + +tmpdir="${TMPDIR-/tmp}" + +# get us some temporary files. +hdrs=$tmpdir/sp$$hdr +body=$tmpdir/sp$$body +sig=$tmpdir/sp$$sig +mine=$tmpdir/sp$$mine +quoted=$tmpdir/sp$$quoted +bad=$tmpdir/sp$$bad + +Cmdname=`$basename $0` + +if $test "X$1" = X; then + $echo "$Cmdname: insufficent arguments" >&2 + $echo "$Cmdname: usage: $Cmdname " >&2 + exit 1 +fi + +trap "$rm -f $hdrs $body $body~ $sig $mine $quoted $bad; exit 1" 0 1 2 15 + +while $test "X$1" != X; do + + # create the files, so that cat is quiet later.. + >$hdrs + >$body + >$sig + >$mine + >$quoted + + # tear the wanted headers out and toss them at body, leaving the + # the remainder to be put back in later. + + $awk 'BEGIN { inhdr = 1; keephdr = 0; insig = 0 } + /^$/ { + inhdr = 0; + print $0 > Body; + next; + } + /^-- $/ { + insig = 1; + print $0 > Sig; + next; + } + /^Subject: / { + if (inhdr) { + keephdr = 1; + print $0 > Body; + next; + } + } + /^Keywords: / { + if (inhdr) { + keephdr = 1; + print $0 > Body + } + next; + } + /^Summary: / { if (inhdr) { + keephdr = 1; + print $0 > Body + } + next; + } + /^[ \t]/ { + if (keephdr && indhr) { + print $0 > Body; + } else if (inhdr) { + print $0 > Hdrs; + } + } + /^.*: / { if (inhdr) { + keephdr = 0; + print $0 > Hdrs; + next; + } } + /^.*$/ { if (!inhdr && !insig) { + print $0 > Body; + next; + } + if (insig) { + print $0 > Sig; + next + } } + ' Body=$body Hdrs=$hdrs Sig=$sig $1 + + # now rip out the quoted text from the article, so we only + # spell check our own pristine prose.. + + if $test "X$QUOTECHARS" = X ; then + $mv $body $mine + else + $sed -e "/^$QUOTECHARS/s/.*//" $body >$mine + $diff -e $mine $body > $quoted + fi + + # ok, we've torn everything asunder, now lets spell check + # the guts of the article.. + + if $test "X$ispell" = "Xnone"; then + $spell $ispell_options $mine > $bad + if $test -s $bad ; then + ($echo ---- misspelled words ------------------------------------- + #$cat $bad | fmt + $cat $bad | pr -t -4 + $echo ----------------------------------------------------------- + ) | $pager + else + $echo 'No misspelled words.' + fi + else + $ispell $ispell_options $mine + fi + + if $test $? -ne 0; then + $echo "$Cmdname: error returned, leaving message untouched" + + # don't want to mess with this file again, either + shift + continue + fi + + # resurrect the body of the article.. + if $test -s $quoted ; then + ($cat $quoted; $echo w $body; $echo q) | $ed - $mine + else + $mv $mine $body + fi + + # ..and re-assemble the article. + $cat $hdrs $body $sig >$1 + + # move to the next filename! + shift + +done diff -u --recursive --new-file trn-3.6.orig/config.h trn-3.6/config.h --- trn-3.6.orig/config.h Wed Dec 31 19:00:00 1969 +++ trn-3.6/config.h Mon Jan 9 16:03:30 1995 @@ -0,0 +1,463 @@ +/* + * This file was produced by running the config.h.SH script, which + * gets its values from config.sh, which is generally produced by + * running Configure. + * + * Feel free to modify any of this as the need arises. Note, however, + * that running config.h.SH again will wipe out any changes you've made. + * For a more permanent change edit config.sh and rerun config.h.SH. + * + * $Id: Config_h.U,v 3.0.1.2 1993/08/24 12:13:20 ram Exp $ + */ + +/* Configuration time: Mon Jan 9 15:56:22 EST 1995 + * Configured by: root + * Target system: linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 + */ + +#ifndef _config_h_ +#define _config_h_ + +/* EUNICE: + * This symbol, if defined, indicates that the program is being compiled + * under the EUNICE package under VMS. The program will need to handle + * things like files that don't go away the first time you unlink them, + * due to version numbering. It will also need to compensate for lack + * of a respectable link() command. + */ +/* VMS: + * This symbol, if defined, indicates that the program is running under + * VMS. It is currently only set in conjunction with the EUNICE symbol. + */ +/*#define EUNICE *//**/ +/*#define VMS *//**/ + +/* HAS_GETPWENT: + * This symbol, if defined, indicates that the getpwent() routine + * should be used instead of the getpw() routine. + */ +#define HAS_GETPWENT /**/ + +/* HAS_TERMLIB: + * This symbol, when defined, indicates that termlib-style routines + * are available. There is nothing to include. + */ +#define HAS_TERMLIB /**/ + +/* INTERNET: + * This symbol, if defined, indicates that there is a mailer available + * which supports internet-style addresses (user@site.domain). + */ +#define INTERNET /**/ + +/* HAS_MEMCMP: + * This symbol, if defined, indicates that the memcmp routine is available + * to compare blocks of memory. + */ +#define HAS_MEMCMP /**/ + +/* HAS_MEMCPY: + * This symbol, if defined, indicates that the memcpy routine is available + * to copy blocks of memory. + */ +#define HAS_MEMCPY /**/ + +/* HAS_MEMSET: + * This symbol, if defined, indicates that the memset routine is available + * to set blocks of memory. + */ +#define HAS_MEMSET /**/ + +/* NEWS_ADMIN: + * This symbol, if defined, contains the login name of the news + * administrator. + */ +#define NEWS_ADMIN "news" /**/ + +/* NOLINEBUF: + * This symbol, if defined, indicates that stdout is not buffered, so that + * the program can call setbuf() or setlinebuf() for efficiency. + */ +/*#define NOLINEBUF *//**/ + +/* NORMSIG: + * This symbol, if defined, indicates that normal signal handling routines + * should be used, as opposed to the ones in 4.1bsd (sigset, etc.). + */ +#define NORMSIG /**/ + +/* HAS_RDCHK: + * This symbol, if defined, indicates that the rdchk routine is available + * to find out if there is input pending on an IO channel. Generally + * the routine is used only if FIONREAD and O_NDELAY aren't available. + */ +/*#define HAS_RDCHK *//**/ + +/* HAS_RENAME: + * This symbol, if defined, indicates that the rename routine is available + * to rename files. Otherwise you should do the unlink(), link(), unlink() + * trick. + */ +#define HAS_RENAME /**/ + +/* HAS_SIGBLOCK: + * This symbol, if defined, indicates that the sigblock routine is + * available to block signal reception. + */ +#define HAS_SIGBLOCK /**/ + +/* HAS_SIGHOLD: + * This symbol, if defined, indicates that the sighold routine is + * available to hold signals. + */ +/*#define HAS_SIGHOLD *//**/ + +/* HAS_STRCASECMP: + * This symbol, if defined, indicates that the strcasecmp() routine is + * available for case-insensitive string compares. + */ +#define HAS_STRCASECMP /**/ + +/* HAS_VFORK: + * This symbol, if defined, indicates that vfork() exists. + */ +#define HAS_VFORK /**/ + +/* Signal_t: + * This symbol's value is either "void" or "int", corresponding to the + * appropriate return type of a signal handler. Thus, you can declare + * a signal handler using "Signal_t (*handler)()", and define the + * handler using "Signal_t handler(sig)". + */ +#define Signal_t void /* Signal handler's return type */ + +/* DEFEDITOR: + * This symbol contains the full pathname of the default editor. + */ +#define DEFEDITOR "/usr/bin/vi" /**/ + +/* I_DIRENT: + * This symbol, if defined, indicates to the C program that it should + * include . Using this symbol also triggers the definition + * of the Direntry_t define which ends up being 'struct dirent' or + * 'struct direct' depending on the availability of . + */ +#define I_DIRENT /**/ +#ifdef I_DIRENT +#define Direntry_t struct dirent +#else +#define Direntry_t struct direct +#endif + +/* I_STDLIB: + * This symbol, if defined, indicates that exists and should + * be included. + */ +#define I_STDLIB /**/ + +/* I_STRING: + * This symbol, if defined, indicates to the C program that it should + * include (USG systems) instead of (BSD systems). + */ +#define I_STRING /**/ + +/* I_SYS_DIR: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#define I_SYS_DIR /**/ + +/* I_SYS_IOCTL: + * This symbol, if defined, indicates that exists and should + * be included. Otherwise, include or . + */ +/* I_SYS_FILIO: + * This symbol, if defined, indicates that exists and + * should be included instead of . + */ +#define I_SYS_IOCTL /**/ +/*#define I_SYS_FILIO *//**/ + +/* I_SYS_NDIR: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +/*#define I_SYS_NDIR *//**/ + +/* I_TERMIO: + * This symbol, if defined, indicates that the program should include + * rather than . There are also differences in + * the ioctl() calls that depend on the value of this symbol. + */ +/* I_TERMIOS: + * This symbol, if defined, indicates that the program should include + * the POSIX termios.h rather than sgtty.h or termio.h. + * There are also differences in the ioctl() calls that depend on the + * value of this symbol. + */ +/* I_SGTTY: + * This symbol, if defined, indicates that the program should include + * rather than . There are also differences in + * the ioctl() calls that depend on the value of this symbol. + */ +/*#define I_TERMIO *//**/ +#define I_TERMIOS /**/ +/*#define I_SGTTY *//**/ + +/* I_UNISTD: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +#define I_UNISTD /**/ + +/* I_VFORK: + * This symbol, if defined, indicates to the C program that it should + * include vfork.h. + */ +/*#define I_VFORK *//**/ + +/* MAILFILE: + * This symbol contains the interpretable name of the mail spool file + * for the current user. The program must be prepared to substitute + * the HOME directory for %~, and the login id for %L. + */ +#define MAILFILE "/var/spool/mail/%L" /**/ + +/* MBOXCHAR: + * This symbol contains a character which will match the beginning + * of a mailbox file. + */ +#define MBOXCHAR 'F' /**/ + +/* PASSNAMES: + * This symbol, if defined, indicates that full names are stored in + * the /etc/passwd file. + */ +/* BERKNAMES: + * This symbol, if defined, indicates that full names are stored in + * the /etc/passwd file in Berkeley format (name first thing, everything + * up to first comma, with & replaced by capitalized login id, yuck). + */ +#define PASSNAMES /* (undef to take name from ~/.fullname) */ +#define BERKNAMES /* (that is, ":name,stuff:") */ + +/* ORGNAME: + * This symbol contains either the organizaton name or the full pathname + * of a file containing the organization name, which the program must + * be prepared to open and substitute the contents of. + */ +#define ORGNAME "/etc/organization" /**/ + +/* PREFSHELL: + * This symbol contains the full name of the preferred user shell on this + * system. Usual values are /bin/csh, /bin/ksh, /bin/sh. + */ +#define PREFSHELL "/bin/bash" /**/ + +/* ROOTID: + * This symbol contains the uid of root, normally 0. + */ +#define ROOTID 0 /**/ + +/* ACTIVE: + * The name of the active file for the news system. This file contains + * the list of active newsgroups. The name may have ~ on the front. + */ +/* ACTIVE_TIMES: + * The name of the active.times file for the news system. + */ +#define ACTIVE "/var/lib/news/active" /**/ +/*#define ACTIVE_TIMES "none" *//**/ + +/* HAS_FTIME: + * This symbol, if defined, indicates that the ftime() routine exists. + * It is basically a sub-second accuracy clock, but is less accurate + * than gettimeofday(2) anyway. The type "Timeval" should be used to + * refer to "struct timeb". + */ +#define HAS_FTIME /**/ + +/* HAS_GETHOSTNAME: + * This symbol, if defined, indicates that the C program may use the + * gethostname() routine to derive the host name. See also HAS_UNAME + * and PHOSTCMD. + */ +/* HAS_UNAME: + * This symbol, if defined, indicates that the C program may use the + * uname() routine to derive the host name. See also HAS_GETHOSTNAME + * and PHOSTCMD. + */ +/* PHOSTCMD: + * This symbol, if defined, indicates that the C program may use the + * contents of PHOSTCMD as a command to feed to the popen() routine + * to derive the host name. See also HAS_GETHOSTNAME and HAS_UNAME. + * Note that the command uses a fully qualified path, so that it is safe + * even if used by a process with super-user privileges. + */ +/*#define HAS_GETHOSTNAME *//**/ +/*#define HAS_UNAME *//**/ +/*#define PHOSTCMD "" *//* How to get the host name */ + +/* HAS_GETWD: + * This symbol, if defined, indicates that the getwd routine is + * available to get the working directory. + */ +/* HAS_GETCWD: + * This symbol, if defined, indicates that the getcwd routine is + * available. This is never defined if getwd is found first. + */ +#define HAS_GETWD /**/ +/*#define HAS_GETCWD *//**/ + +/* IGNOREORG: + * This symbol, if defined, indicates that the ORGANIZATION environment + * variable does not contain an organization name. + */ +/*#define IGNOREORG *//**/ + +/* MIMESHOW: + * This symbol points to the program to run to show a mime article. + */ +/* MIMESTORE: + * This symbol points to the program to run to store a mime article. + */ +/*#define MIMESHOW "none" *//**/ +/*#define MIMESTORE "none" *//**/ + +/* USE_NNTP: + * This symbol, if defined, indicates that NNTP should be used. + */ +/* USE_GENAUTH: + * This symbol, if defined, indicates that authinfo generic + * authentication is to be supported. + */ +/* SERVER_NAME: + * When using NNTP, this symbol indicates the server name or a + * file to open to read the server name. + */ +/* USE_XTHREAD: + * This symbol, if defined, indicates that .thread files can be + * gotten via NNTP. It is never defined if USE_NNTP is undefined. + */ +/* USE_XOVER: + * This symbol, if defined, indicates that .overview files can be + * gotten via NNTP. It is never defined if USE_NNTP is undefined. + */ +/*#define USE_NNTP *//**/ +/*#define USE_GENAUTH *//**/ +#define SERVER_NAME "" /**/ +/*#define USE_XTHREAD *//**/ +/*#define USE_XOVER *//**/ + +/* void: + * This symbol is used for void functions. On implementations which + * support void appropriately, its value is "void". Otherwise, its + * value should be set to "int". + */ +/*#define void int *//**/ + +/* size_t: + * This symbol is defined as an int if no size_t definition exists. + */ +/*#define size_t int *//**/ + +/* HAS_STRCHR: + * This symbol is defined to indicate that the strchr()/strrchr() + * functions are available for string searching. If not, try the + * index()/rindex() pair. + */ +#define HAS_STRCHR /**/ + +/* HAS_STRFTIME: + * This symbol, if defined, indicates that the strftime routine is + * available to format locale-specific times. + */ +#define HAS_STRFTIME /**/ + +/* EMULATE_NDIR: + * This symbol, if defined, indicates that the program should compile + * the ndir.c code provided with the package. + */ +/* I_NDIR: + * This symbol, if defined, indicates that the program should include the + * system's version of ndir.h, rather than the one with this package. + */ +/*#define EMULATE_NDIR *//**/ +/*#define I_NDIR *//**/ + +/* I_PTEM: + * This symbol, if defined, indicates to the C program that it should + * include ptem.h. + */ +/*#define I_PTEM *//**/ + +/* I_TIME: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +/* I_SYS_TIME: + * This symbol, if defined, indicates to the C program that it should + * include . + */ +/*#define I_TIME *//**/ +#define I_SYS_TIME /**/ + +/* NEWSLIB: + * This symbol contains the name of the directory serving as the news + * library. The program must be prepared to do ~ expansion on it. + */ +#define NEWSLIB "/var/lib/news" /**/ + +/* NEWSSPOOL: + * This symbol contains the directory name where news articles are + * spooled. The program must be prepared to do ~ expansion on it. + */ +#define NEWSSPOOL "/var/spool/news" /**/ + +/* PHOSTNAME: + * This symbol contains the posting host's name or a file from which + * to read its name. + */ +#define PHOSTNAME "/etc/HOSTNAME" /**/ + +/* PRIVLIB: + * This symbol contains the name of the private library for this package. + * The library is private in the sense that it needn't be in anyone's + * execution path, but it should be accessible by the world. The program + * should be prepared to do ~ expansion. + */ +#define PRIVLIB "/usr/lib/trn" /**/ + +/* THREAD_DIR: + * This symbol indicates where the thread files go. + */ +/* OVERVIEW_DIR: + * This symbol indicates where the overview files go. + */ +/* USE_MT: + * This symbol indicates if thread file support is desired. + */ +/* USE_OV: + * This symbol indicates if overview file support is desired. + */ +#define THREAD_DIR "/var/spool/news" /**/ +#define OVERVIEW_DIR "/var/spool/news" /**/ +/*#define USE_MT *//**/ +/*#define USE_OV *//**/ + +/* THREAD_INIT: + * This symbol indicates we act like trn no matter what our name is. + */ +/* SELECT_INIT: + * This symbol indicates we default to the selector for group entry. + */ +#define THREAD_INIT FALSE +#define SELECT_INIT TRUE + +/*#define LONG_THREAD_NAMES *//**/ + +#define CANCEL "/usr/bin/inews -h <%h" +#define SPEED_OVER_MEM /* use more memory to run faster */ +/*#define ANCIENT_NEWS *//* if your B news system is <= 2.10.1 */ + +#endif diff -u --recursive --new-file trn-3.6.orig/config.sh trn-3.6/config.sh --- trn-3.6.orig/config.sh Wed Dec 31 19:00:00 1969 +++ trn-3.6/config.sh Mon Jan 9 16:03:24 1995 @@ -0,0 +1,220 @@ +#!/bin/sh +# +# This file was produced by running the Configure script. It holds all the +# definitions figured out by Configure. Should you modify one of these values, +# do not forget to propagate your changes by running "Configure -der". You may +# instead choose to run each of the .SH files by yourself, or "Configure -S". +# + +# Configuration time: Mon Jan 9 15:56:22 EST 1995 +# Configured by: root +# Target system: linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 + +d_bsd='undef' +d_eunice='undef' +d_xenix='undef' +eunicefix=':' +Mcc='Mcc' +awk='awk' +basename='basename' +bash='bash' +cat='cat' +cp='cp' +cpp='cpp' +csh='csh' +date='date' +diff='diff' +echo='echo' +ed='ed' +egrep='egrep' +expr='expr' +grep='grep' +inews='inews' +ispell='ispell' +ksh='ksh' +less='less' +lint='' +mail='mail' +metamail='metamail' +mhn='mhn' +mkdir='mkdir' +more='more' +munpack='munpack' +mv='mv' +nroff='nroff' +pg='pg' +rm='rm' +rmail='rmail' +sed='sed' +sendmail='sendmail' +smail='smail' +sort='sort' +spell='spell' +tail='tail' +test='test' +tr='tr' +uname='uname' +uniq='uniq' +uuname='uuname' +vi='vi' +vspell='' +who='' +hint='recommended' +myuname='linux fuzzy 1.1.73 #1 mon dec 19 21:32:00 cst 1994 i486 ' +srcdir='.' +vincludes='' +vpath='.' +Id='$Id' +Log='$Log' +active='/var/lib/news/active' +acttimes='none' +d_acttimes='undef' +myactive='/var/lib/news/active' +bin='/usr/bin' +binexp='/usr/bin' +installbin='/usr/bin' +cc='gcc' +ccflags='' +cppflags='' +ldflags='-s' +lkflags='' +optimize='-O2' +cf_by='root' +cf_time='Mon Jan 9 15:56:22 EST 1995' +contains='grep' +cpplast='-' +cppminus='-' +cpprun='gcc -E' +cppstdin='gcc -E' +d_ftime='define' +aphostcmd='' +d_gethname='undef' +d_phostcmd='undef' +d_uname='undef' +d_getpwent='define' +d_getcwd='undef' +d_getwd='define' +d_havetlib='define' +termlib='-ltermcap' +d_ignoreorg='undef' +d_internet='define' +d_memcmp='define' +d_memcpy='define' +d_memset='define' +d_mimeshow='undef' +d_mimestore='undef' +mimeshow="none" +mimestore="none" +d_newsadm='define' +newsadmin='news' +d_nntp='undef' +d_xdata='undef' +d_genauth='undef' +servername='' +d_nolnbuf='undef' +d_normsig='define' +jobslib='' +d_novoid='undef' +void='' +d_portable='define' +d_rdchk='undef' +d_rename='define' +d_sigblock='define' +d_sighold='undef' +d_sizet='undef' +d_strccmp='define' +d_strchr='define' +d_strftime='define' +strftimec='' +strftimeo='' +d_libndir='undef' +d_usendir='undef' +libndir='' +ndirc='' +ndiro='' +d_vfork='define' +d_voidsig='define' +signal_t='void' +defeditor='/usr/bin/vi' +filexp='/usr/lib/trn/filexp' +d_dirnamlen='' +i_dirent='define' +i_ptem='undef' +i_stdlib='define' +i_string='define' +strings='/usr/include/string.h' +i_sysdir='define' +d_voidtty='' +i_bsdioctl='' +i_sysfilio='undef' +i_sysioctl='define' +i_syssockio='' +i_sysndir='undef' +i_sgtty='undef' +i_termio='undef' +i_termios='define' +i_systime='define' +i_time='undef' +i_unistd='define' +i_vfork='undef' +ispell_options='-x' +ispell_prg='/usr/bin/ispell' +libc='/usr/lib/libc.a' +plibpth='/usr/ccs/lib /usr/lib /usr/ucblib /usr/local/lib' +xlibpth='/usr/lib/386 /lib/386' +libs=' ' +citydist='none' +cntrydist='none' +contdist='none' +locdist='none' +multistatedist='none' +orgdist='none' +statedist='none' +mailer='/usr/sbin/sendmail' +mailfile='/var/spool/mail/%L' +installmansrc='/usr/man/man1' +manext='1' +mansrc='/usr/man/man1' +mansrcexp='/usr/man/man1' +mboxchar='F' +c='' +n='-n' +d_berknames='define' +d_passnames='define' +d_usgnames='undef' +nametype='bsd' +inewsloc='/usr/bin/inews' +newslib='/var/lib/news' +newslibexp='/var/lib/news' +newsspool='/var/spool/news' +orgname='/etc/organization' +package='trn' +spackage='Trn' +pager='/bin/more' +phost='/etc/HOSTNAME' +phostcmd='' +prefshell='/bin/bash' +installprivlib='/usr/lib/trn' +privlib='/usr/lib/trn' +privlibexp='/usr/lib/trn' +rootid='0' +sharpbang='#!' +shsharp='true' +spitshell='cat' +startsh='#!/bin/sh' +sysman='/usr/man/man1' +d_usemt='undef' +d_useov='undef' +overviewdir='/var/spool/news' +threaddir='/var/spool/news' +trn_init='FALSE' +trn_select='TRUE' +nm_opt='' +runnm='true' +usenm='true' +incpath='' +mips='' +mips_type='' +usrinc='/usr/include' +PATCHLEVEL="3.6 (20 Nov 1994)" +CONFIG=true diff -u --recursive --new-file trn-3.6.orig/filexp trn-3.6/filexp --- trn-3.6.orig/filexp Wed Dec 31 19:00:00 1969 +++ trn-3.6/filexp Mon Jan 9 16:03:30 1995 @@ -0,0 +1,38 @@ +#!/bin/sh +sed=sed +expr=expr +basename=basename +test=test +: expand filename +case "$1" in + ~/*|~) + echo $1 | $sed "s|~|${HOME-$LOGDIR}|" + ;; + ~*) + if $test -f /bin/csh; then + /bin/csh -f -c "glob $1" + failed=$? + echo "" + exit $failed + else + name=`$expr x$1 : '..\([^/]*\)'` + dir=`$sed -n -e "/^${name}:/{s/^[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:\([^:]*\).*"'$'"/\1/" -e p -e q -e '}' &2 + exit 1 + fi + case "$1" in + */*) + echo $dir/`$expr x$1 : '..[^/]*/\(.*\)'` + ;; + *) + echo $dir + ;; + esac + fi + ;; +*) + echo $1 + ;; +esac diff -u --recursive --new-file trn-3.6.orig/hints/Policy.sh trn-3.6/hints/Policy.sh --- trn-3.6.orig/hints/Policy.sh Wed Dec 31 19:00:00 1969 +++ trn-3.6/hints/Policy.sh Mon Jan 9 16:03:29 1995 @@ -0,0 +1,135 @@ +#!/bin/sh +# +# This file was produced by running the Polich.sh.SH script, which +# gets its values from config.sh, which is generally produced by +# running Configure. +# +# $Id: Policy.sh.SH,v 3.5 1994/04/24 16:47:38 davison Trn $ + +# login name of the person who configured trn (not particularly interesting). +cf_by='root' +# time of configuration (not particularly interesting). +cf_time='Mon Jan 9 15:56:22 EST 1995' + +# install directives. + +# bin directories (string values) +# name of the final resting place +bin='/usr/bin' +# how to get to the final resting place (thank you, AFS) +installbin='/usr/bin' + +# private libraries +# name of the final resting place for those items in the library +# directory (string value) +privlib='/usr/lib/trn' +# How to get to the library final resting place (thanks, AFS) +installprivlib='/usr/lib/trn' + +# interesting questions about man +# where do man page sources go? +mansrc='/usr/man/man1' +# what extention do man pages get? +manext='1' + +# path to assorted programs that we might want to override. +# name of the default editor. (string value) +defeditor='/usr/bin/vi' +# prefered user shell (string value) +prefshell='/bin/bash' +# favorite local pager (string value) +pager='/bin/more' +# where is inews? (string value) +inewsloc='/usr/bin/inews' +# path to interactive speller or "none" (string value) +ispell_prg='/usr/bin/ispell' +# spelling options for ispell_prg or "spell" if "none" (string value) +ispell_options='-x' + +# internal options +# ignore the ORGANIZATION environment variable? (define/undef) +d_ignoreorg='undef' +# does the mailer understand FQDN addressing? (define/undef) +d_internet='define' +# do you have a news admin? (define/undef) +d_newsadm='define' +# name of the news admin? (string value) +newsadmin='news' +# read via NNTP? (define/undef) +d_nntp='undef' +# use the XDATA NNTP extension? (define/undef) +d_xdata='undef' +# path to a file containing a server name, or a hostname (string value) +servername='' + +# distribution names (string values) +# local city +citydist='none' +# "local" country +cntrydist='none' +# "local" continent +contdist='none' +# site distribution +locdist='none' +# organizational distribution +orgdist='none' +# state/province distribution name +statedist='none' +# multistate region distribution name +multistatedist='none' + +# Naming information. +# password file contains names (define/undef) +d_passnames='define' +# berkeley style password entries (name first in GCOS) (define/undef) +d_berknames='define' +# USG style password entries (account number first in GCOS) +# (define/undef) +d_usgnames='undef' +# what type of name to use.. (bsd/usg/other) +nametype='bsd' + +# How portable do we want to be? Determines if we do lookups now +# or wait until run time. (define/undef) +d_portable='define' + +# news library information +# where is the news library (usually /usr/lib/news) may contain ~ +newslib='/var/lib/news' +# absolute path name to /usr/lib/news. +newslibexp='/var/lib/news' +# where is the news spool (usually /{var,usr}/spool/news) +newsspool='/var/spool/news' +# active file stuff, like where is it, what is its name, etc +# path to the active file. (string value) +active='/var/lib/news/active' +# do we have an active.times file? (define/undef) +d_acttimes='undef' +# path to the active.times file. (string value) +acttimes='none' +# organizations name. path to file, or constant string +orgname='/etc/organization' + +# only one of the two following is needed +# command to find the posting hosts name (string value, optional) +phostcmd='' +# file containing posting hosts name or constant string +# (string value, optional) +# +phost='/etc/HOSTNAME' + +# what should we use? mthreads or overview +# use the mthreads format? (define/undef) +d_usemt='undef' +# where do we find the thread files? (string value) +threaddir='/var/spool/news' +# use the overview format? (define/undef) +d_useov='undef' +# where do we find the .overview fils? (string value) +overviewdir='/var/spool/news' + +# trn start up options +trn_init='FALSE' +# start up with the selector? +trn_select='TRUE' + diff -u --recursive --new-file trn-3.6.orig/makedepend trn-3.6/makedepend --- trn-3.6.orig/makedepend Wed Dec 31 19:00:00 1969 +++ trn-3.6/makedepend Mon Jan 9 16:03:30 1995 @@ -0,0 +1,69 @@ +#!/bin/sh +# $Id: makedepend.SH,v 3.0 1991/09/09 20:23:31 davison Trn $ +# +# This software is Copyright 1991 by Stan Barber. +# +# Permission is hereby granted to copy, reproduce, redistribute or otherwise +# use this software as long as: there is no monetary profit gained +# specifically from the use or reproduction of this software, it is not +# sold, rented, traded or otherwise marketed, and this copyright notice is +# included prominently in any copy made. +# +# The author make no claims as to the fitness or correctness of this software +# for any use whatsoever, and it is provided as is. Any use of this software +# is at the user's own risk. +export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) + +srcdir=. +objdir=/cdrom/source/n/trn/trn-3.6 +deptmp=$objdir/.deptmp +cat /dev/null >$deptmp +echo "(Note: this is going to take a while.)" +cd $srcdir +for file in *.[cy]; do + case "$file" in + *.c) filebase=`basename $file .c`;; + *.y) filebase=`basename $file .y`;; + esac + echo "Finding dependencies for $filebase.o." + sed -n <$file \ + -e "/^${filebase}_init(/q" \ + -e '/^#/{' \ + -e 's|/\*.*$||' \ + -e 's/\\[ ]*$//' \ + -e p \ + -e '}' | gcc -E -I$objdir -I/usr/include - | sed \ + -e '/^# *line/s/line//' -e '/^# *[0-9]/!d' \ + -e 's/^.*"\(.*\)".*$/'$filebase'.o: \1/' \ + -e 's|: \./|: |' \ + -e "s|$objdir/||" \ + -e 's/: .*\.c/: '$file'/' | \ + uniq | sort | uniq >>$deptmp +done + +for file in *.SH; do + echo `basename $file .SH`: $file config.sh \; /bin/sh "\$(srcdir)/$file" >>$deptmp +done + +cd $objdir + +sed Makefile.new -e '1,/^# AUTOMATICALLY/!d' + +if test -s $deptmp; then + echo "Updating Makefile..." + sed -e 's/\$[^(]/$$/g' $deptmp | egrep -v /usr/include >dependencies +else + echo "You don't seem to have a proper C preprocessor. Using grep instead." + cd $srcdir + egrep '^#include ' *.[cyh] ?.[cyh] >$deptmp + cd $objdir + echo "Updating Makefile..." + <$deptmp sed -n 's|c:#include "\(.*\)".*$$|o: \1|p' > dependencies + <$deptmp sed -n 's|y:#include "\(.*\)".*$$|o: \1|p' >> dependencies + <$deptmp sed -n 's|h:#include "\(.*\)".*$$|h: \1|p' >> dependencies +fi +echo "# WARNING: Put nothing here or make depend will gobble it up!" >> dependencies +mv Makefile Makefile.old +mv Makefile.new Makefile +cat dependencies >>Makefile +rm $deptmp diff -u --recursive --new-file trn-3.6.orig/makedir trn-3.6/makedir --- trn-3.6.orig/makedir Wed Dec 31 19:00:00 1969 +++ trn-3.6/makedir Mon Jan 9 16:03:30 1995 @@ -0,0 +1,52 @@ +#!/bin/sh +# $Id: makedir.SH,v 2.11 90/09/17 17:03:55 hokey Exp Locker: hokey $ +# +# $Log: makedir.SH,v $ +# Revision 2.11 90/09/17 17:03:55 hokey +# 2.11 alpha baseline +# + +export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) + +case $# in + 0) + echo "makedir pathname filenameflag" + exit 1 + ;; +esac + +: guarantee one slash before 1st component +case $1 in + /*) ;; + *) set ./$1 $2 ;; +esac + +: strip last component if it is to be a filename +case X$2 in + X1) set `echo $1 | sed 's:\(.*\)/[^/]*$:\1:'` ;; + *) set $1 ;; +esac + +: return reasonable status if nothing to be created +if test -d "$1" ; then + exit 0 +fi + +list='' +while : ; do + case $1 in + */*) + list="$1 $list" + set `echo $1 | sed 's:\(.*\)/:\1 :'` + ;; + *) + break + ;; + esac +done + +set $list + +for dir do + mkdir $dir >/dev/null 2>&1 +done diff -u --recursive --new-file trn-3.6.orig/mbox.saver trn-3.6/mbox.saver --- trn-3.6.orig/mbox.saver Wed Dec 31 19:00:00 1969 +++ trn-3.6/mbox.saver Mon Jan 9 16:03:30 1995 @@ -0,0 +1,34 @@ +#!/bin/sh +# $Id: mbox.saver.SH,v 3.0 1991/09/09 20:23:31 davison Trn $ +# +# This software is Copyright 1991 by Stan Barber. +# +# Permission is hereby granted to copy, reproduce, redistribute or otherwise +# use this software as long as: there is no monetary profit gained +# specifically from the use or reproduction of this software, it is not +# sold, rented, traded or otherwise marketed, and this copyright notice is +# included prominently in any copy made. +# +# The author make no claims as to the fitness or correctness of this software +# for any use whatsoever, and it is provided as is. Any use of this software +# is at the user's own risk. +# +# Arguments: +# 1 Full name of article (%A) +# 2 Public news spool directory (%P) +# 3 Directory of current newsgroup (%c) +# 4 Article number (%a) +# 5 Where in article to start (%B) +# 6 Newsgroup name (%C) +# 7 Save destination (%b) +# 8 First line of message, normally From... +# +export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) + + ( echo "$8" + if test "$5" = 0 -a ! "$4" = 0 ; then + echo "Article: $4 of $6" + fi + tail +$5c $1 | sed "s/^[Ff]rom />& /" + echo "" + echo "" ) >> $7 diff -u --recursive --new-file trn-3.6.orig/newsetup trn-3.6/newsetup --- trn-3.6.orig/newsetup Wed Dec 31 19:00:00 1969 +++ trn-3.6/newsetup Mon Jan 9 16:03:30 1995 @@ -0,0 +1,98 @@ +#!/bin/sh +# $Id: newsetup.SH,v 3.0 1992/02/01 03:09:32 davison Trn $ +# +# This software is Copyright 1991 by Stan Barber. +# +# Permission is hereby granted to copy, reproduce, redistribute or otherwise +# use this software as long as: there is no monetary profit gained +# specifically from the use or reproduction of this software, it is not +# sold, rented, traded or otherwise marketed, and this copyright notice is +# included prominently in any copy made. +# +# The author make no claims as to the fitness or correctness of this software +# for any use whatsoever, and it is provided as is. Any use of this software +# is at the user's own risk. + +export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) + +: syntax: newsetup + +case define in +define) + # where recordings, distributions and moderators are kept + lib=`/usr/lib/trn/filexp /var/lib/news` + # where important rn things are kept + rnlib=`/usr/lib/trn/filexp /usr/lib/trn` + nntplist=nntplist + ;; +undef) + # where recordings, distributions and moderators are kept + lib="/var/lib/news" + # where important rn things are kept + rnlib="/usr/lib/trn" + nntplist=/usr/bin/nntplist + ;; +esac + +test=test +echo=echo +cat=cat +mv=mv +rm=rm +cp=cp + +dotdir="${DOTDIR-${HOME-$LOGDIR}}" +newsrc="$dotdir/.newsrc" +tmp="${TMPDIR-/tmp}" + +subs="$lib/subscriptions" +tmpsubs="$tmp/trnsubs.$$" + +$cat <<'EOH' + +Welcome to trn. Here's some important things to remember: + + o Trn is an extension of rn and has a similar command syntax. + o To access all the new features, specify the options -x and -X. These + options MAY be on by default, but it won't hurt to be redundant. + o Single-character commands don't require a carriage return -- only + commands that let you type in an argument. + o At ANY prompt, you may type 'h' for help. There are many different help + menus, depending on the context. Also, typing h in the middle of a + multi-character command will list escape substitutions. + o Typing a space to any prompt means to do the normal thing. You could + spend all day reading news and never hit anything but the space bar. + o If you have never used the news system before, you may find the articles + in news.announce.newusers to be helpful. + o Please consult the man page for complete information. + +EOH + +$rm -f $newsrc-old +$echo "Creating $newsrc to be used by news programs." + +if $test -s "$newsrc"; then + $echo "Saving your current one as $newsrc-old..." + $mv -f $newsrc $newsrc-old +fi + +if $test -r $subs; then + $cp $subs $newsrc +else + ($nntplist -o $tmpsubs subscriptions) >/dev/null 2>&1 + if $test -s $tmpsubs; then + $cp $tmpsubs $newsrc + else + $cat <$newsrc +news.announce.newusers: +EOM + fi + $rm -f $tmpsubs +fi + +$cat <<'EOH' +Done. + +To add new group use "a pattern" or "g newsgroup.name". To get rid of +newsgroups you aren't interested in, use the 'u' command. +EOH diff -u --recursive --new-file trn-3.6.orig/newsgroups trn-3.6/newsgroups --- trn-3.6.orig/newsgroups Wed Dec 31 19:00:00 1969 +++ trn-3.6/newsgroups Mon Jan 9 16:03:31 1995 @@ -0,0 +1,63 @@ +#!/bin/sh +# $Id: newsgroups.SH,v 3.0 1992/02/01 03:09:32 davison Trn $ +# +# This software is Copyright 1991 by Stan Barber. +# +# Permission is hereby granted to copy, reproduce, redistribute or otherwise +# use this software as long as: there is no monetary profit gained +# specifically from the use or reproduction of this software, it is not +# sold, rented, traded or otherwise marketed, and this copyright notice is +# included prominently in any copy made. +# +# The author make no claims as to the fitness or correctness of this software +# for any use whatsoever, and it is provided as is. Any use of this software +# is at the user's own risk. + +export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) + +: syntax: newsgroups [pattern] [pipeflag] + +: System Dependencies + +: You might want to change pager to a "make column" program if you have one. +: On the other hand, if your kernel does paging, cat would probably do. +pager="/bin/more" +active="/var/lib/news/active" + +case $active in +~*) active=`/usr/lib/trn/filexp $active` ;; +esac + +: End of system dependencies, hopefully + +if test $# -ge 2 ; then + pager=cat +else + echo "Completely unsubscribed newsgroups:" +fi + +dotdir=${DOTDIR-${HOME-$LOGDIR}} +newsrc=$dotdir/.newsrc + +: Throwing .newsrc into the pot twice is a lovely hack to prevent +: bogus newsgroups from showing up as unsubscribed. + +cat $newsrc $newsrc $active | \ +sed -n -e '/^options/d' \ + -e '/^[ ]/d' \ + -e '/^control/d' \ + -e '/^to\./d' \ + -e '/ x$/d' \ + -e 's/^\([^ !:]*\)[ !:].*$/\1/' \ + -e "/.*$1/p" | \ +sort | uniq -u | $pager +if test $# -ge 2 ; then + exit +fi +echo -n "[Type return to continue] " +read tmp +echo "" +echo "Unsubscribed but mentioned in $newsrc:" +sed -n < $newsrc \ + -e "/$1.*!/"'s/^\([^!]*\)!.*$/\1/p' | \ +sort | $pager diff -u --recursive --new-file trn-3.6.orig/newsnews trn-3.6/newsnews --- trn-3.6.orig/newsnews Wed Dec 31 19:00:00 1969 +++ trn-3.6/newsnews Mon Jan 9 16:03:31 1995 @@ -0,0 +1,13 @@ + *** NEWS NEWS *** + +Welcome to trn 3.6, which continues on the feature trail, adding support +for slow net connections, and squashing some bugs. Trn is "threaded read +news", based on rn. + +You can type 'h' at any prompt to display a summary of the commands that +are available. + +This message will not be displayed again unless it is updated with new +information. + +Wayne Davison diff -u --recursive --new-file trn-3.6.orig/norm.saver trn-3.6/norm.saver --- trn-3.6.orig/norm.saver Wed Dec 31 19:00:00 1969 +++ trn-3.6/norm.saver Mon Jan 9 16:03:31 1995 @@ -0,0 +1,32 @@ +#!/bin/sh +# $Id: norm.saver.SH,v 3.0 1991/09/09 20:23:31 davison Trn $ +# +# This software is Copyright 1991 by Stan Barber. +# +# Permission is hereby granted to copy, reproduce, redistribute or otherwise +# use this software as long as: there is no monetary profit gained +# specifically from the use or reproduction of this software, it is not +# sold, rented, traded or otherwise marketed, and this copyright notice is +# included prominently in any copy made. +# +# The author make no claims as to the fitness or correctness of this software +# for any use whatsoever, and it is provided as is. Any use of this software +# is at the user's own risk. +# +# Arguments: +# 1 Full name of article (%A) +# 2 Public news spool directory (%P) +# 3 Directory of current newsgroup (%c) +# 4 Article number (%a) +# 5 Where in article to start (%B) +# 6 Newsgroup name (%C) +# 7 Save destination (%b) +# +export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$) + +( case "$5" in + 0) echo "Article $4 of $6:" ;; + esac + tail +$5c $1 + echo "" + echo "" ) >> $7