home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
misc
/
volume28
/
tin
/
part01
next >
Wrap
Text File
|
1992-02-23
|
52KB
|
1,762 lines
Newsgroups: comp.sources.misc
From: iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE
Subject: v28i045: tin - threaded full screen newsreader v1.1, Part01/11
Message-ID: <csm-v28i045=tin.222508@sparky.IMD.Sterling.COM>
X-Md4-Signature: 225cd7cbbefa40450f3032ed5ebde5ac
Date: Tue, 18 Feb 1992 04:26:55 GMT
Approved: kent@sparky.imd.sterling.com
Submitted-by: iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE
Posting-number: Volume 28, Issue 45
Archive-name: tin/part01
Environment: BSD, SCO, ISC, SUNOS, SYSVR3, SYSVR4, ULTRIX, XENIX
Supersedes: tin: Volume 23, Issue 15-23
This is version 1.1 PL0 (patchlevel 0) of the tin newsreader.
- Based more on Notes and tass than rn type newreaders.
- Full screen, easy to use with on-line help at all levels.
- Reads news locally (ie. /usr/spool/news) and via NNTP.
- Threads on Subject: and/or Archive-name: mail headers.
- Four different operating levels:
o Group selection level
o Thread selection level
o Article selection level
o Article viewer
- Same interface to mail, pipe, print and save articles.
- Batch mode to mail/save news when user is on holiday.
Enjoy
Iain.
-- Cut here --
#!/bin/sh
# This is tin1.1, a shell archive (shar 3.47)
# made 02/10/1992 06:21 UTC by iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE
# Source directory /var/home/lea/.src/tin
#
# existing files will NOT be overwritten unless -c is specified
#
# This is part 1 of a multipart archive
# do not concatenate these parts, unpack them in order with /bin/sh
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 9324 -rw------- Makefile
# 832 -rw------- MANIFEST
# 2483 -rw------- README
# 6149 -rw------- CHANGES
# 2455 -rw------- TODO
# 3693 -rw------- INSTALL
# 31684 -rw------- tin.1
# 2247 -rw------- wildmat.3
# 41067 -rw------- tin.nrf
# 23976 -rw------- art.c
# 7108 -rw------- curses.c
# 3249 -rw------- debug.c
# 12822 -rw------- feed.c
# 11498 -rw------- getline.c
# 20637 -rw------- group.c
# 2466 -rw------- hashstr.c
# 5206 -rw------- help.c
# 9634 -rw------- init.c
# 11196 -rw------- kill.c
# 20471 -rw------- lang.c
# 11249 -rw------- main.c
# 6571 -rw------- memory.c
# 19128 -rw------- misc.c
# 19837 -rw------- newsrc.c
# 7366 -rw------- open.c
# 23335 -rw------- page.c
# 19458 -rw------- post.c
# 3748 -rw------- prompt.c
# 22451 -rw------- rcfile.c
# 24939 -rw------- save.c
# 2661 -rw------- screen.c
# 7006 -rw------- search.c
# 19773 -rw------- select.c
# 10822 -rw------- signal.c
# 14120 -rw------- thread.c
# 4749 -rw------- wildmat.c
# 8937 -rw------- tin.h
# 14178 -rw------- extern.h
# 3669 -rw------- nntp.h
# 23136 -rw------- proto.h
# 548 -rw------- patchlev.h
#
if test -r _shar_seq_.tmp; then
echo 'Must unpack archives in sequence!'
echo Please unpack part `cat _shar_seq_.tmp` next
exit 1
fi
# ============= Makefile ==============
if test -f 'Makefile' -a X"$1" != X"-c"; then
echo 'x - skipping Makefile (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting Makefile (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'Makefile' &&
# Makefile for tin - for tin compiler flag options please read INSTALL.
X
EXE = tin
BINDIR = /usr/local/bin
MANDIR = /usr/man/man1
X
STRIP = strip
ROFF = + drf -F Helvetica -man3
PRINT = -Pps0
BASE_VER= ../110
PATCH_VER = 110
MAIL_ADDR = iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE
X
HFILES = tin.h extern.h nntp.h proto.h patchlev.h
X
CFILES = art.c curses.c debug.c feed.c getline.c group.c hashstr.c \
X help.c init.c kill.c lang.c main.c memory.c misc.c newsrc.c \
X open.c page.c post.c prompt.c rcfile.c save.c screen.c search.c \
X select.c signal.c thread.c wildmat.c
X
OFILES = art.o curses.o debug.o feed.o getline.o group.o hashstr.o \
X help.o init.o kill.o lang.o main.o memory.o misc.o newsrc.o \
X open.o page.o post.o prompt.o rcfile.o save.o screen.o search.o \
X select.o signal.o thread.o wildmat.o
X
SUPPORT = Makefile MANIFEST README CHANGES TODO INSTALL *.[13] $(EXE).nrf
X
LINTFLAGS=-a -c -h -n -x
X
CC=cc
X
.c.o:
X $(CC) $(CFLAGS) $*.c
X
all:
X @echo "There is no default. Specify one of the following targets."
X @echo " make bsd (BSD/Dec/Next/Sun)"
X @echo " make sysv (SysV)"
X @echo " make sysvr4 (SysV R4)"
X @echo " make sco (SCO Unix)"
X @echo " make aix (IBM AIX)"
X @echo " make xenix (Xenix 386)"
X @echo " make sinix (SNI SysV)"
X @echo " make tower (NCR Tower)"
X @echo " make minix (Minix 386)"
X @echo " make dgux (DG Aviion)"
X
# For Berkeley systems:
# NNTPLIB=clientlib.o \
#
bsd:
X @echo "Compiling for BSD/Ultrix..."
X @$(MAKE) CFLAGS='-c -O -DBSD -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
# For System V:
# NNTPLIB=clientlib.o \
# NETLIBS="-lnet -lnsl_s" \
#
sysv:
X @echo "Compiling for System V..."
X @$(MAKE) CFLAGS='-c -O -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
# For IBM AIX:
# NNTPLIB=clientlib.o \
#
aix:
X @echo "Compiling for AIX..."
X @$(MAKE) CFLAGS='-c -O -DSYSV -DRS6000 -DREAD_CHAR_HACK -DUSE_LONG_FILENAMES -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
# For System V Release 4:
# NNTPLIB=clientlib.o \
# NETLIBS="-lnsl -lsocket" \
#
sysvr4:
X @echo "Compiling for System V Release 4..."
X @$(MAKE) CFLAGS='-c -O -DPOSIX_JOB_CONTROL -DUSE_INVERSE_HACK -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X LIBS="-lcurses -ltermcap -L/usr/ucblib -lucb" \
X EXE=tin linkit
X
# For SCO Unix:
# NNTPLIB=clientlib.o \
# NETLIBS="-lnsl_s -lsocket" \
#
sco:
X @echo "Compiling for SCO Unix..."
X @$(MAKE) CFLAGS='-c -O -UM_XENIX -DUSE_INVERSE_HACK -DAUTO_RESIZE -DLIBDIR="\"/usr/lib/news\"" -DSPOOLDIR="\"/usr/spool/news\""' \
X LIBS="-lcurses -lgen -lc_s" \
X EXE=tin linkit
X
# For Xenix 386:
# NNTPLIB=clientlib.o \
# NETLIBS="-lsocket" \
#
xenix:
X @echo "Compiling for Xenix 386..."
X @$(MAKE) CFLAGS='-c -Zi -DSYSV -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
X LIBS="-lcurses -ltinfo -lx" \
X LFLAGS=-Zi EXE=tin linkit
X
# For SNI Sinix:
# NNTPLIB=clientlib.o \
# NETLIBS="-lsocket" \
#
sinix:
X @echo "Compiling for SNI Sinix..."
X @$(MAKE) CFLAGS='-c -O -DSINIX -DLOG_USER -DUSE_MKDIR -DAUTO_RESIZE -DLIBDIR=\\"/usr/lib/news\\" -DSPOOLDIR=\\"/usr2/spool/news\\"' \
X LIBS="-lcurses" \
X EXE=tin linkit
X
# For NCR Tower:
# NNTPLIB=clientlib.o \
# NETLIBS="-lnet -lnsl_s" \
#
tower:
X @echo "Compiling for NCR Tower..."
X @$(MAKE) CFLAGS='-c -O -DSYSV -DNCR -DISTRING -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
# For Minix 386:
#
minix:
X @echo "Compiling for Minix 386..."
X @$(MAKE) CFLAGS='-c -O -DMINIX -D_POSIX_SOURCE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X LIBS="-lcurses" \
X EXE=tin linkit
X chmem +131072 $(EXE)
X
# For Data General Aviion
# NNTPLIB=clientlib.o \
#
dgux:
X @echo "Compiling for DG Aviion..."
X @$(MAKE) CFLAGS='-c -O -DUSE_LONG_FILENAMES -DPOSIX_JOB_CONTROL -DUSE_INVERSE_HACK -DAUTO_RESIZE -DLIBDIR=\"/usr/lib/news\" -DSPOOLDIR=\"/usr/spool/news\"' \
X LIBS="-lcurses" \
X EXE=tin linkit
X
# THE FOLLOWING ARE SITE SPECIFIC - IGNORE
norisc:
X @echo "Compiling for NORISC with NNTP..."
X @$(MAKE) CFLAGS='-c -O -DBSD -DDEBUG -DLOG_USER -DUSE_NNTP -DAUTO_RESIZE -DLIBDIR=\"/news/lib\" -DSPOOLDIR=\"/news/spool\"' \
X NNTPLIB=/news/nntp/clientlib.o \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
sony01:
X @echo "Compiling for SONY01..."
X @$(MAKE) CFLAGS='-c -g -DBSD -DDEBUG -DLOG_USER -DLIBDIR=\"/a/NEWS/lib\" -DSPOOLDIR=\"/a/NEWS/news\"' \
X LIBS="-lcurses -ltermcap" \
X EXE=tin linkit
X
kommu:
X @echo "Compiling for KOMMU with NNTP..."
X @$(MAKE) CFLAGS='-c -O -UM_XENIX -DDEBUG -DUSE_INVERSE_HACK -DAUTO_RESIZE -DUSE_NNTP -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
X NNTPLIB=./clientlib.o \
X NETLIBS="-lnsl_s -lsocket" \
X LIBS="-lcurses -lgen -lc_s" \
X EXE=tin linkit
X
# For Xenix 386:
home:
X @echo "Compiling for (HOME) Xenix 386..."
X @$(MAKE) CFLAGS='-c -W2 -Zi -DSYSV -DDEBUG -DLOG_USER -DLIBDIR="\\"/usr/lib/news\\"" -DSPOOLDIR="\\"/usr/spool/news\\""' \
X LIBS="-lcurses -ltinfo -lx" \
X LFLAGS=-Zi EXE=tin linkit
X
linkit: $(OFILES)
X @echo "Linking $(EXE)..."
X $(CC) $(LFLAGS) -o $(EXE) $(OFILES) $(NNTPLIB) $(NETLIBS) $(LIBS)
X @ls -l $(EXE)
X
install:
X @echo "Installing $(EXE)..."
X @$(STRIP) $(EXE)
X @-mv $(EXE) $(BINDIR)
X @-rm $(BINDIR)/r$(EXE)
X @ln $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
X @chmod 755 $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
X @ls -l $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
X @cp $(EXE).1 $(MANDIR)
X
install_setuid:
X @echo "Installing SETUID $(EXE)..."
X @$(STRIP) $(EXE)
X @-mv $(EXE) $(BINDIR)
X @chown news $(BINDIR)/$(EXE)
X @-rm $(BINDIR)/r$(EXE)
X @ln $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
X @su news -c "chmod 4755 $(BINDIR)/$(EXE)"
X @su news -c "chmod 4755 $(BINDIR)/r$(EXE)"
X @ls -l $(BINDIR)/$(EXE) $(BINDIR)/r$(EXE)
X @cp $(EXE).1 $(MANDIR)
X
proto:
X @echo "Generating function prototypes for proto.h..."
# @cextract -DSIGTSTP -DSIGWINCH $(CFILES) > PROTO.H
# @-mv PROTO.H proto.h
X @echo "#if __STDC__" > PROTO.H
X @echo " " >> PROTO.H
X @cproto -e $(CFILES) >> PROTO.H
X @echo " " >> PROTO.H
X @echo "#else" >> PROTO.H
X @echo " " >> PROTO.H
X @cproto -e -f1 $(CFILES) >> PROTO.H
X @echo " " >> PROTO.H
X @echo "#endif" >> PROTO.H
X @-mv PROTO.H proto.h
X
nroff:
X @echo "Creating nroff man page..."
X @nroff -man $(EXE).1 > $(EXE).nrf
X
manifest:
X @echo "Creating MANIFEST..."
X @echo "MANIFEST for tin newsreader (`date`)" > MANIFEST
X @echo "----------------------------------------------------------" >> MANIFEST
X @wc -c $(SUPPORT) $(HFILES) $(CFILES) >> MANIFEST
X
shar:
X @echo "Generating shell archive..."
X @make nroff
X @make manifest
X @shar -a -n $(EXE)1.1 -s $(MAIL_ADDR) -L50 -o ../$(EXE).shar $(SUPPORT) $(CFILES) $(HFILES)
X
uuencode:
X @make tar
X @echo "Uuencoding $(EXE).tar.Z..."
X @uuencode $(EXE).tar.Z $(EXE).tar.Z > $(EXE).tar.Z.uue
X @ls -l $(EXE).tar.Z.uue
X
diff:
X @echo "Generating diffs against $(BASE_VER)..."
X @make nroff
X @make manifest
X @-mv -f $(EXE).diff $(EXE).diff-
X @-diff -rcs $(BASE_VER) . > $(EXE).diff
X @ls -l $(EXE).diff
X
patch:
X @make diff
X @echo "Generating patch against $(BASE_VER)..."
X @-mv $(EXE).diff $(EXE).patch$(PATCH_VER)
X @shar -a -n $(EXE) -s $(MAIL_ADDR) -L50 -o patch$(PATCH_VER).shar $(EXE).patch$(PATCH_VER)
X @ls -l patch$(PATCH_VER).shar*
X
tar:
X @echo "Generating compressed tar file..."
X @-rm $(EXE).tar $(EXE).tar.Z > /dev/null 2>&1
X @tar cvf $(EXE).tar $(SUPPORT) $(CFILES) $(HFILES)
X @echo "Compressing $(EXE).tar..."
X @compress $(EXE).tar
X @ls -l $(EXE).tar.Z
X
zoo:
X @echo "Generating zoo archive file..."
X @-rm $(EXE).zoo > /dev/null 2>&1
X @zoo ah $(EXE).zoo $(SUPPORT) $(CFILES) $(HFILES)
X @ls -l $(EXE).zoo
X
tags:
X @echo "Generating tags (results in ./tags)..."
X @-rm tags
X @ctags $(HFILES) $(CFILES)
X
lint:
X @echo "Linting source (results in ./LINT)..."
X @lint $(LINTFLAGS) -DUSE_NNTP $(CFILES) > LINT
X
clean:
X @echo "Cleaning..."
X @-'rm' -rf $(OFILES) '#*' $(EXE).diff*
X
clobber:
X @echo "Clobbering..."
X @-'rm' -rf $(OFILES) '#*' tags $(EXE) $(EXE).diff* patch.shar*
X
cflow:
X @echo "Creating cflow for $(EXE)..."
X @cflow $(CFILES) > cflow.$(EXE) &
X
man:
X @echo "Printing $(EXE) manual to $(PRINT)..."
X @$(ROFF) $(PRINT) $(EXE).1
X
print:
X @for FILE in $(HFILES) $(CFILES) $(SUPPORT); do \
X echo "Printing $$FILE to $(PRINT)..."; \
X expand -4 $$FILE | enscript -2r -h -G $(PRINT) -b $$FILE; \
X done
X
art.o: art.c $(HFILES)
curses.o: curses.c $(HFILES)
debug.o: debug.c $(HFILES)
feed.o: feed.c $(HFILES)
getline.o: getline.c $(HFILES)
group.o: group.c $(HFILES)
hashstr.o: hashstr.c $(HFILES)
help.o: help.c $(HFILES)
init.o: kill.c $(HFILES)
kill.o: kill.c $(HFILES)
lang.o: lang.c $(HFILES)
main.o: main.c $(HFILES)
memory.o: memory.c $(HFILES)
misc.o: misc.c $(HFILES)
newsrc.o: newsrc.c $(HFILES)
open.o: open.c nntp.h
page.o: page.c $(HFILES)
post.o: post.c $(HFILES)
prompt.o: prompt.c $(HFILES)
rcfile.o: rcfile.c $(HFILES)
save.o: save.c $(HFILES)
screen.o: screen.c $(HFILES)
search.o: search.c $(HFILES)
select.o: select.c $(HFILES)
signal.o: signal.c $(HFILES)
thread.o: thread.c $(HFILES)
wildmat.o: wildmat.c
SHAR_EOF
chmod 0600 Makefile ||
echo 'restore of Makefile failed'
Wc_c="`wc -c < 'Makefile'`"
test 9324 -eq "$Wc_c" ||
echo 'Makefile: original size 9324, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= MANIFEST ==============
if test -f 'MANIFEST' -a X"$1" != X"-c"; then
echo 'x - skipping MANIFEST (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting MANIFEST (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'MANIFEST' &&
MANIFEST for tin newsreader (Mon Feb 10 07:21:06 MET 1992)
----------------------------------------------------------
X 9324 Makefile
X 118 MANIFEST
X 2483 README
X 6149 CHANGES
X 2455 TODO
X 3693 INSTALL
X 31684 tin.1
X 2247 wildmat.3
X 41067 tin.nrf
X 8937 tin.h
X 14178 extern.h
X 3669 nntp.h
X 23136 proto.h
X 548 patchlev.h
X 23976 art.c
X 7108 curses.c
X 3249 debug.c
X 12822 feed.c
X 11498 getline.c
X 20637 group.c
X 2466 hashstr.c
X 5206 help.c
X 9634 init.c
X 11196 kill.c
X 20471 lang.c
X 11249 main.c
X 6571 memory.c
X 19128 misc.c
X 19837 newsrc.c
X 7366 open.c
X 23335 page.c
X 19458 post.c
X 3748 prompt.c
X 22451 rcfile.c
X 24939 save.c
X 2661 screen.c
X 7006 search.c
X 19773 select.c
X 10822 signal.c
X 14120 thread.c
X 4749 wildmat.c
X 495164 total
SHAR_EOF
chmod 0600 MANIFEST ||
echo 'restore of MANIFEST failed'
Wc_c="`wc -c < 'MANIFEST'`"
test 832 -eq "$Wc_c" ||
echo 'MANIFEST: original size 832, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= README ==============
if test -f 'README' -a X"$1" != X"-c"; then
echo 'x - skipping README (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting README (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'README' &&
This is version 1.1 PL0 (patchlevel 0) of the tin newsreader.
X
- Based more on Notes and tass than rn type newreaders.
X
- Full screen, easy to use with on-line help at all levels.
X
- Reads news locally (ie. /usr/spool/news) and via NNTP.
X
- Threads on Subject: and/or Archive-name: mail headers.
X
- Four different operating levels:
X o Group selection level
X o Thread selection level
X o Article selection level
X o Article viewer
X
- Same interface to mail, pipe, print and save articles.
X
- Batch mode to mail/save news when user is on holiday.
X
NOTE: PLEASE READ THE MAN PAGE tin.1 BEFORE SENDING A BUG REPORT/COMMENT.
X
Major improvements over tin 1.0 PL7 are the following:
X
o added 'l' command to manipulate threads easier.
X
o added 'd' command to toggle display of subject or subject and author.
X
o added 'u' command to toggle display of articles unthreaded/threaded.
X
o added -H option and also brief intro when started for the first time.
X
o added emacs style line editing with scrollable editing area.
X
o added auto unshar if group is *sources* or uudecode if *binaries*.
X
o added support for DG Aviion.
X
o fixed -M and -S options so that screen is correctly reset.
X
o fixed 'F' command that was using the wrong reply address.
X
o fixed unlink of ~/.article so that error message is not displayed.
X
o fixed bug that caused signal 11 when pressing 'M' command with no
X articles in the group.
X
For more bug fixes, changes & additions read the CHANGES & TODO files.
X
For compilation and installation information read the INSTALL file.
X
I wish to thank all the people that sent me bug fixes and comments for
tin v1.0. I still want to hear of any bug reports and comments.
X
I am still off the net, but am contactable at the following address:
X
X Iain J. Lea
X BrueckenStr. 12
X 8500 Nuernberg 90
X Germany.
X Phone. +49-911-331963 (home)
X Phone. +49-911-3089-407 (work)
X Email. iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE
X iain@estevax.uucp (only reading mailbox weekly)
X
Due to above problem if anyone wants the latest released version or
an early version of the next patchlevel I am willing to send a copy
in unix compressed tar or msdos format 5.25 or 3.5 inch disks.
I will make a small handling charge for this service as listed below:
X Germany 15 Deustche Marks
X England 5 Pounds Sterling
X USA 10 Dollars
Please send money/cheque with self-addressed envelope to above addess.
X
Enjoy
X Iain.
SHAR_EOF
chmod 0600 README ||
echo 'restore of README failed'
Wc_c="`wc -c < 'README'`"
test 2483 -eq "$Wc_c" ||
echo 'README: original size 2483, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= CHANGES ==============
if test -f 'CHANGES' -a X"$1" != X"-c"; then
echo 'x - skipping CHANGES (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting CHANGES (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'CHANGES' &&
CHANGES tin v1.0 PL7 -> tin 1.1 PL0
-----------------------------------
X
1) uunet!atlantis!bugs (Dan Berry)
X BUG. Toggling inverse video with 'I' command does not switch on
X highlighted bar when inverse is toggled on.
X FIX. misc.c - switches highlighted bar on if USE_INVERSE_HACK is
X not defined.
X
2) iain@estevax.uucp (Iain Lea)
X ADD. thread.c - added 'l' command to manipulate threads easier.
X
3) becker@med-in.uni-sb.de (Dieter Becker)
X BUG. define INDEWSDIR in tin.h should be INEWSDIR.
X FIX. changed to INEWSDIR.
X
4) john@iti.org (John Sauter)
X BUG. The ! command only allows 80 characters minus the length of the
X prompt. Frequently this is way too small!
X FIX. prompt.c getline.c - added emacs style line editing which allows
X horizontal scrolling of editing area.
X
5) john@iti.org (John Sauter)
X BUG. When saving threads by Archive-name: field the default is sometimes
X wrong. ie. unshar on a binaries group should be uudecode & zoo.
X FIX. feed.c - check whether group is sources and therefore unshar,
X or if group is binaries uudecode it.
X
6) iain@estevax.uucp (Iain Lea)
X BUG. Artivles should be marked read if saved, printed, piped etc.
X FIX. feed.c - saved, printed piped etc. are marked read if mark
X saved read is set ON in 'M' menu.
X
7) unido!asd.tds.philips.se!kko (Karl-Koenig Koenigsson)
X BUG. When articles are tagged and 'K' command is done the tagged
X article number is not redisplayed.
X FIX. group.c - modified 'K' command to redisplay tagged art number.
X
8) otto@norisc.uucp (Otto Niesser)
X BUG. When ESC is pressed to exit 'M' menu at group selection level
X the screen is redrawn but part of the right side of the 'M'
X menu is still present.
X FIX. select.c - added clear screen when -> is used.
X
9) otto@norisc.uucp (Otto Niesser)
X BUG. When ESC is pressed to abort a selected option, the option is
X set even though you wish to abort the operation.
X FIX. rcfile.c prompt.c - option set to original value if ESC pressed
X
10) unido!asd.tds.philips.se!kko (Karl-Koenig Koenigsson)
X BUG. Tagged articles are not automatically untagged when processed.
X FIX. feed.c - untags all articles after post processing.
X
11) hakanl@lulea.telesoft.se (Hakan Lennestal)
X BUG. post_base() & post_response() unlink ~/.article too soon.
X FIX. post.c - applied the supplied patch.
X
12) hakanl@lulea.telesoft.se (Hakan Lennestal)
X BUG. setuid() problems in posting routines.
X FIX. post.c - applied the supplied patch.
X
13) pgd@compuram.bbt.se (Per Lindqvist)
X BUG. The "addr (username) writes: " when doing a 'F' command is
X wrong.
X FIX. page.c post.c - added extra parameter to post_response()
X routine.
X
14) pgd@compuram.bbt.se (Per Lindqvist)
X BUG. When doing a 'f'/'F' followup to an article, when you come
X back to the newsgroup the wrong article is displayed.
X FIX. page.c post.c - check if followup succeeded in post_response().
X
15) marc@CAM.ORG (Marc Boucher)
X BUG. mark_unthreaded_groups() does not do a setuid() before
X accessing ~/.tin/unthread.
X FIX. misc.c - applied supplied patch.
X
16) m31z@jupiter.sun.csd.unb.ca (Steven Cogswell)
X BUG. When pressing 'M' menu with no articles in group at article
X selection level a signal 11 causes the program to crash.
X FIX. group.c - modified if() to check if top_base > 0 not top > 0.
X
17) iain@estevax.uucp (Iain Lea)
X BUG. Posted subject line is not extracted from ~/.article.
X FIX. post.c - modified find_mail_header() to read Subject: line.
X
18) otto@norisc.uucp (Otto Niesser)
X BUG. threads are saved with 0 bytes length at article page level
X when reading news via NNTP.
X FIX. save.c - changed save_thread_to_file() to use save_art_to_file().
X
19) robinson@mdivax1.mdd.comm.mot.com (Jim Robinson)
X BUG. Save paths that begin with '/' should not be expanded, and
X pathnames beginning with '$' should be treated as an enviroment
X variable and be expanded until the first '/' is encountered.
X FIX. save.c - applied supplied patch.
X
20) otto@norisc.uucp (Otto Niesser)
X BUG. Usage message for -r option has DEFAULT_PRINTER as output
X parameter even though no %s is in text.
X FIX. main.c - changed output parameter to (char *) 0.
X
21) otto@norisc.uucp (Otto Niesser)
X BUG. When a printer is specified with the -p option it should only
X last the duration of the current session and should not be
X written to the tinrc file.
X FIX. main.c init.c feed.c - added cmd_line_printer varaible so that
X tinrc printer varaible is not affected.
X
22) georg@norisc.uucp (Georg Biehler)
X BUG. When '1'<BS><TAB><CR> is pressed when prompting for a number
X the cursor is wrongly positioned above the first entry listed.
X FIX. select.c - added check to test if entered number is negative.
X
23) robert@sys.sweden.dg.com (Robert Claeson)
X ADD. Makefile - applied supplied patch to support DG Aviion.
X
24) iain@estevax.uucp (Iain Lea)
X ADD. group.c - added 'd' command to toggle display of subject only
X or subject and author.
X
25) iain@estevax.uucp (Iain Lea)
X ADD. main.c - added -H option and also when tin is started for the
X first time a brief introduction message is printed for first
X time users.
X
26) john@iti.org (John Sauter)
X BUG. -M and -S options cause screen not to be reset correctly.
X FIX. main.c - changed exit() call to tin_done() to reset screen.
X
27) iain@estevax.uucp (Iain Lea)
X BUG. Archive-Name: field in comp.sources.unix is not threaded.
X FIX. art.c - added extra check for Archive-name: and Archive-name:.
X
28) iain@estevax.uucp (Iain Lea)
X ADD. group.c - added 'u' command to toggle threading/unthreading
X of all articles within current group.
X
29) tho@slxger.specialix.de (Torsten Homeyer)
X BUG. Under SCO 3.2.2 the cal getlogin() isn't able to return the
X expected info nor a null pointer. It returns just garbage.
X FIX. init.c - applied supplied patch.
SHAR_EOF
chmod 0600 CHANGES ||
echo 'restore of CHANGES failed'
Wc_c="`wc -c < 'CHANGES'`"
test 6149 -eq "$Wc_c" ||
echo 'CHANGES: original size 6149, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= TODO ==============
if test -f 'TODO' -a X"$1" != X"-c"; then
echo 'x - skipping TODO (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting TODO (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'TODO' &&
FIX FEATURES V1.1
-----------------
X
o Fix 'l' thread command so 2nd page of thread is correct. Need a
X routine to give the next response in thread.
X
o Fix -R option to read saved new news from <savedir>
X
o Fix -S option to save new news to <savedir>. Create an active file
X when new articles are saved to <savedir>.
X
o Fix -n option to hash the groups read in from ~/.tin/active and
X mark active[].flag as TRUE. then find flag=FALSE and ask user if
X they want to subscribe to group. On xenix386 takes 15 seconds on
X current -n option.
X
FIX FEATURES V2.0
-----------------
X
o Fix uuscram code in uudecode.
X
o Fix code to sort arts. At page level funny things happen.
X
o Fix code to KILL articles. At page level funny things happen.
X
o Fix code to KILL articles with 't' command.
X
o Fix so that it always finds unread messages.
X
o Fix 'z' so that it stays unread even if a KILL is performed before
X leaving the group.
X
o Fix 'z' at group selection level so whole screen is not redrawn.
X
o Fix code to display only groups with unread news. look at
X setup_base() also for killing.
X
ADD FEATURES
------------
X
o Add -P <pattern> or -P <file> to search for in new news and to
X notify user by mail. Should understand 'subject=text' 'from=text'
X 'body=text' and .AND. && .OR. || for filtering purposes.
X
o Add elm style print command with %s in it for printing in 'M'.
X
o Add crossposting of articles so that read ones are marked read in
X other groups. in rn it uses Xref: line to do this. Perhaps just
X use update_group() to do it?
X Needs to handle 'c' 'C' 'k' 'K' commands. Perhaps it should be an
X option so that performance is not impaired.
X
o Add 'C' command at group level to catchup present group and
X enter next group with unread news in it.
X
o Sort .newsrc according to preference. (sort active file as it is read)
X
o Add time period kill article
X
PIPEDREAMS
----------
o Add rebindable keymaps and provide different terminal keymaps
X (ie. keymap.ansi, keymap.wy50 etc.)
X
o Add Virtual newsgroups (combination of newsgroups ie. virtual.ibm
X consists of comp.sys.ibm.* groups).
X
o Add threading on References like trn with mthreads database.
X
o Add full curses support instead of using printf()'s.
X
o Sub all not empty groups by looking at min max values in active array
X and Unsub all empty groups by looking at min max values in active
X array. have a command to do this in a toggle effect.
SHAR_EOF
chmod 0600 TODO ||
echo 'restore of TODO failed'
Wc_c="`wc -c < 'TODO'`"
test 2455 -eq "$Wc_c" ||
echo 'TODO: original size 2455, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= INSTALL ==============
if test -f 'INSTALL' -a X"$1" != X"-c"; then
echo 'x - skipping INSTALL (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting INSTALL (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'INSTALL' &&
Compilation and installation notes for tin - 01-02-92
-----------------------------------------------------
X
Tin has been compiled on a wide range of Unix machines with cc and gcc.
A list of these machines can be found at the bottom of this file.
X
It can be compiled to read news in any of the following ways:
X o locally from your machines news spool dir, usually /usr/spool/news.
X o remotely from another machine via NNTP.
X o locally and remotely (rtin or tin -r option).
X
The NNTP (NetNews Transport Protocol RFC 977) software needs to be
installed on your machine if want to read news remotely. It is a
SEPERATE PACKAGE that is available from many FTP and mailserver
sites. The file that has to be linked with tin is clientlib.o.
X
Building Tin
------------
X
1) type 'make' and a few system types will be displayed
2) edit Makefile if you want to add/change -D<dfines>
3) type 'make <system type>' to compile for your system
4) type 'make install' / 'make install_setuid' to install
X
Compiler flags (-D<name> define directives)
-------------------------------------------
News directory structure
------------------------
X
LIBDIR
Define if news software is not in /usr/lib/news.
X
INEWSDIR
Define if bnews/cnews program 'inews' is not in LIBDIR.
X
SPOOLDIR
Define if news articles are not in /usr/spool/news.
X
X
Reading news via NNTP
---------------------
X
USE_NNTP
Define if reading news remotely via an NNTP server.
X
NNTP_SERVER_FILE
Only define if your nntpserver file is other than /etc/nntpserver.
X
NNTPLIB
Contains the path of the file clientlib.o that is part of NNTP software.
X
NETLIBS
Contains the networking libraries needed to link with clientlib.o file.
X
X
Miscellaneous options
---------------------
X
POSIX_JOB_CONTROL
Define if your machine uses Posix style sigaction() signal handling.
X
USE_MKDIR
Define if your machine does not have the mkdir() system call.
X
USE_LONG_FILENAMES
Define if your machines filesystem supports filenames longer than 14
chars (default for BSD type systems).
X
USE_INVERSE_HACK
Define if you want inverse video and highlighted bar disabled. (default
for SCO Unix & SysVR4). Can be toggled in tin by the 'I' command and
highlight bar by 'M' command.
X
USE_CLEARSCREEN
Define if the you wish screen to use ClearScreen() and not MoveCursor()
and CleartoEOLN(). This is perhaps faster on slow terminals but I have
not really run any speed tests recently.
X
SLOW_SCREEN_UPDATE
Define if running over a low speed connection (ie. 2400baud). It stops
the percentage info being shown at bottom of select and group menus and
stops the groupname being displayed at the bottom of the screen as it is
subscribed/unsubscribed.
X
NO_REGEX
Define if you do not want to use regular expression pattern matching.
X
NO_START_LINE
Do not start editor with line offset into file.
X
NO_SHELL_ESCAPE
Do not allow shell escapes.
X
NO_POSTING
Do not allow posting/followup of articles.
X
LOG_USER
Log user info each time tin is started to /tmp/.tin_log for usage statistics.
X
Compiled & installed on the following machines
----------------------------------------------
X
1) * Dec 5000/Vax & Ultrix 4.1/4.2
2) * Vax 11/785 & BSD 4.3
3) * 386 PC & Xenix 2.3/ATT SysVr4.0/SCO SysVR3.2/ISC SysVR3.2
3) * Sun 3/4/IPC/SS1/SS2 & SunOS 4.0.3/4.1/4.1.1
4) * Sony News & SysVR4/BSD 4.3
5) * SNI MX300/MX500 & Sinix 5.22/5.23/5.24
6) ICL DRS6000 & SysVR4.0
7) Atari STe & Minix 1.5.10.3b
8) Apricot VX/FT & SCO 3.2.2
9) DIAB DS90 & D-NIX 5.3
10) Amdahl & SysVR3
11) HP 9000/845 & HP-UX 7.0
12) IBM RS/6000 & AIX 3.1.5
13) NCR Tower & SysV
14) Atari STe & Minix 1.5.10.3b
15) 386 PC & Minix 386
16) DG Aviion & DG-UX
X
* = compiled, installed and used by author
SHAR_EOF
chmod 0600 INSTALL ||
echo 'restore of INSTALL failed'
Wc_c="`wc -c < 'INSTALL'`"
test 3693 -eq "$Wc_c" ||
echo 'INSTALL: original size 3693, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= tin.1 ==============
if test -f 'tin.1' -a X"$1" != X"-c"; then
echo 'x - skipping tin.1 (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting tin.1 (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'tin.1' &&
.TH TIN 1 "Version 1.1 PL0"
.SH NAME
tin/rtin \- A threaded Netnews reader
.SH SYNOPSIS
.B tin/rtin
[options] [newsgroups]
.SH DESCRIPTION
.I Tin
is a full-screen threaded Netnews reader. It can read news locally
(ie. \fI/usr/spool/news\fP) or remotely (rtin or tin -r option) via
a NNTP (Network News Transport Protocol) server.
.PP
Tin has four newsreading levels:
the newsgroup selection page, the group index page, the thread listing
page and the article viewer.
Use the 'h' (help) command to view a list of the commands available at a
particular level.
.PP
On startup Tin will show a list of the newsgroups found in \fI$HOME/.newsrc\fP.
An arrow '->' or highlighted bar will point to the first newsgroup.
Move to a group by using the terminal arrow keys (ansi/at386/vt100 only) or 'j'
and 'k'. Use PgUp/PgDn (ansi/at386/vt100 only) or Ctrl-U and Ctrl-D to
page up/down. Enter a newsgroup by pressing RETURN.
.PP
The TAB key may be used to advance to the next newsgroup with unread articles
and enter it.
.SH OPTIONS
.TP 10
\fB-c\fP
create/update index files for every group in \fI$HOME/.newsrc\fP or
file specified by -f option and mark all articles as read.
.TP
\fB-d dir\fP
save articles to directory. Default is \fI$HOME/News\fP.
.TP
\fB-f file\fP
Use the specified file in place of \fI$HOME/.newsrc\fP.
.TP
\fB-h\fP
help listing all command line options.
.TP
\fB-m dir\fP
mailbox directory to use. Default is \fI$HOME/Mail\fP.
.TP
\fB-M user\fP
mail unread articles to specified user for later reading. For more
information read section Automatic Mailing and Saving New News.
.TP
\fB-n\fP
notify the user of any newly created newsgroups since the last session.
.TP
\fB-p file\fP
print program with options.\fP.
.TP
\fB-r\fP
read news remotely from the default NNTP server specified in the
environment variable NNTPSERVER or contained in the file
\fI/etc/nntpserver\fP.
.TP
\fB-R\fP
read news saved by -S option (not yet implemented).
.TP
\fB-s dir\fP
spool directory where news is stored. Default is \fI/usr/spool/news\fP.
.TP
\fB-S\fP
save unread articles for later reading by -R option. For more information
read section Automatic Mailing and Saving New News.
.TP
\fB-u\fP
create/update index files for every group in \fI$HOME/.newsrc\fP or
file specified by -f option.
.TP
\fB-U\fP
start tin in the background to update index files while reading news
in the foreground.
.TP
\fB-v\fP
verbose mode for -c -M -S -u and -Z options.
.TP
\fB-z\fP
only start tin if there is any new/unread news. If there is news tin
will position cursor at first group with unread news. Useful for putting
in login file.
.TP
\fB-Z\fP
check if there is any new/unread news and exit with appropiate status.
If -v option is specified the number of unread articles in each group
is printed. An exit code 0 indicates no news, 1 that an error occurred
and 2 that new/unread news exists. Useful for writing scripts.
.PP
Tin can also dynamically change its options by the 'M' menu command.
Any changes are written to \fI$HOME/.tin/tinrc\fP.
.SH "INDEX FILES"
In order to keep track of threads, Tin maintains an index for each group.
If Tin is made setuid to news, the indexes will be stored in the news spool
directory (typically \fI/usr/spool/news\fP). If Tin is not setuid, it
will store index files in the subdirectory \fI$HOME/.tin/.index\fP.
Do not make Tin setuid news if news will be obtained via NNTP and not
from \fI/usr/spool/news\fP.
.PP
Entering a group the first time tends to be slow because the index file must
be built from scratch. Subsequent readings of a group will cause
Tin to incrementally update the index file, adding or removing entries as new
articles come in or as news expires. If reading news remotely indexing
will be somewhat slower because the articles must be retrieved via the
NNTP.
.PP
A good way to keep Tin index files current is to run tin -u from cron:
.RS
.nf
20 6 * * * /usr/local/bin/tin -u -f /usr/lib/news/tin_groups
.fi
.RE
This would update the index files for those groups appearing in
\fI/usr/lib/news/tin_groups\fP. To index all of the groups on the
system, run tin -u with -f indicating the active file:
.RS
.nf
20 6 * * * /usr/local/bin/tin -u -f /usr/lib/news/active
.fi
.RE
.SH "SCREEN FORMAT"
Tin has three separate levels of operation: Selection Group level, Group level
and Article level.
.PP
At the Selection Group level the title displays the number of subscribed
groups. The newsgroups are displayed on the left of the screen with the
number of unread articles displayed on the same line in the middle of
the screen.
.RS
.nf
.in +.5i
.ta +\w'1 'u +\w'news.software.readers 'u
<Selection Num> <Newsgroup> <Num of unread articles>
.ti -.5i
i.e.,
1 alt.sources 10
2 comp.sources.misc 3
3 news.software.readers 12
.in -.5i
.fi
.RE
.PP
At the Group level the title contains the name of the group, the number
of conversation threads and total number of articles i.e., alt.sources (7 23).
If the group has been setup not to thread articles (i.e., alt.sources
is in \fI$(HOME)/.tin/unthread\fP) the title will be alt.sources (U 23).
There are two possible display formats as shown below:
.RS
.nf
.in +.5i
.ta +\w'1 'u +\w'+ +\w'This question has 'u +\w'1
<Selection Num> <Unread> <Responses> <Subject> <Author>
.ti -.5i
i.e.,
1 + 3 Bnews sources? iain@estevax.uucp
2 1 This question has ether@net
.ti -.5i
or
.ta +\w'1 'u +\w'+ 'u +\w'This question has a long subject line 'u
<Selection Num> <Unread> <Responses> <Subject (longer)>
.ti -.5i
i.e.,
1 + 3 Bnews sources?
2 1 This question has a longer subject line
.in -.5i
.fi
.RE
.PP
At the Article level the page header has the following format:
.RS
.nf
.in +.5i
.ta \w'<Date posted> <Newsgroup> 'u
<Date posted> <Newsgroup> <Thread 1 of n>
<Article Num> <Subject> <Num of responses in thread>
<Author> <Organization>
X
<Article body>
.ti -.5i
i.e.,
.ta \w'24 Jul 15:20:03 GMT 'u +\w'Bnews sources? 'u
24 Jul 15:20:03 GMT alt.sources Thread 1 of 2
Article 452 Bnews sources? 3 responses
iain@estevax.uucp Organization name
X
<Article boby>
.in -.5i
.fi
.RE
.SH "COMMON MOVING KEYS"
This table shows the common keys/commands for moving at all three levels
within Tin.
.RS
.nf
.ta \w'Beginning of list/article 'u +\w'ansi/at386/vt100 'u
X ansi/at386/vt100 Other Terminals
Beginning of list/article \fBHome\fP \fB1\fP (\fB^R\fP or \fBg\fP at article level)
End of list/article \fBEnd\fP \fB$\fP (also \fBG\fP at article level)
Page Up \fBPgUp\fP \fB^U\fP or \fBb\fP
Page Down \fBPgDn\fP \fB^D\fP or \fB<SPACE>\fP
Line Up \fBUp arrow\fP \fBk\fP (not at article level)
Line Down \fBDown arrow\fP \fBj\fP (not at article level)
.fi
.RE
.SH "COMMON EDITING COMMANDS"
An emacs style editing package allows the easy editing of input strings.
An history list allows the easy re-use of previously entered strings.
The following commands are available when editing a string:
X
.TP 10
\fB^A,^E\fP
move to beginnning or end of line, respectively.
.TP
\fB^F,^B\fP
nondestructive move forward or back one location, respectively.
.TP
\fB^D\fP
delete the character currently under the cursor, or send EOF if no
characters in the buffer.
.TP
\fB^H,<DEL>\fP
delete character left of the cursor.
.TP
\fB^K\fP
delete from cursor to end of line.
.TP
\fB^P,^N\fP
move through history, previous and next, respectively.
.TP
\fB^L,^R\fP
redraw the current line.
.TP
\fB<CR>\fP
places line on history list if nonblank, appends newline and returns
to the caller.
.TP
\fB<ESC>\fP
aborts the present editing operation.
.SH "NEWSGROUP SELECTION COMMANDS"
.TP 10
\fB4\fP
Select group 4.
.TP
\fB^K\fP
Delete current group from \fI$HOME/.newsrc\fP file.
.TP
\fB^L\fP
Redraw page.
.TP
\fB^R\fP
Reset \fI$HOME/.newsrc\fP file.
.TP
\fB<CR>\fP
Read current group.
.TP
\fB<TAB>\fP
View next unread group.
.TP
\fBB\fP
Mail a bug report or comment to the author. This is the best way of
getting bugs fixed and features added/changed.
.TP
\fBc\fP
Mark current group as all read and goto next group in group selection
list.
.TP
\fBC\fP
Mark current group as all read and goto next unread group in group
selection list.
.TP
\fBg\fP
Choose a new group by name. The position of the group within the group
list will also be asked for. By entering '1' the new group will be the
first group in the displayed list, by entering '8' the group will be
the eighth group in the list etc. By entering '$' the group will be the
last group displayed.
.TP
\fBh\fP
help screen of newsgroup selection commands.
.TP
\fBH\fP
help screen of context sensitive help about newsgroup selection level.
.TP
\fBI\fP
Toggle inverse video.
.TP
\fBm\fP
Move the current group within the group selection list.
By entering '1' the group will become the first displayed group in
the list, by entering '8' the eighth group in the list etc. By
entering '$' the group will be the last group displayed.
.TP
\fBM\fP
User configurable options menu (for more information see section Options Menu).
.TP
\fBq\fP
Quit tin.
.TP
\fBs\fP
Subscribe to current group.
.TP
\fBS\fP
Subscribe to groups matching user specified pattern.
.TP
\fBu\fP
Unsubscribe to current group.
.TP
\fBU\fP
Unsubscribe to groups matching user specified pattern.
.TP
\fBv\fP
Print tin version number.
.TP
\fBw\fP
Post an article to current group.
.TP
\fBW\fP
List articles posted by user. The date posted, the newsgroup and the
subject are listed.
.TP
\fBy\fP
The first time this command is called it will yank in all groups from
\fI/usr/local/news/active\fP that are not in \fI$HOME/.newsrc\fP.
After any groups have been subscribed/unsubscribed to, this command
if pressed again will reread \fI$HOME/.newsrc\fP and display only
subscribed groups.
.TP
\fBY\fP
Reread group list from \fI$HOME/.newsrc\fP file.
.TP
\fBz\fP
Mark all articles in the current group as unread.
.TP
\fBZ\fP
Undelete previously deleted group from \fI$HOME/.newsrc\fP file.
.TP
\fB/\fP
Group forward search.
.TP
\fB?\fP
Group backward search.
.SH "GROUP INDEX COMMANDS"
.TP 10
\fB4\fP
Select article 4.
.TP
\fB^K\fP
Kill current article (for more information read section Kill Article Menu).
.TP
\fB^L\fP
Redraw page.
.TP
\fB<CR>\fP
Read current article.
.TP
\fB<TAB>\fP
View next unread article or group.
.TP
\fBa\fP
Author forward search.
.TP
\fBA\fP
Author backward search.
.TP
\fBB\fP
Mail a bug report or comment to the author. This is the best way of
getting bugs fixed and features added/changed.
.TP
\fBc\fP
Mark all articles as read.
.TP
\fBC\fP
Cancel current article. It must have been posted by the same user. The
cancel message can be seen in the newsgroup 'control'.
.TP
\fBd\fP
Toggle display to show just the subject or the subject and author.
.TP
\fBg\fP
Choose a new group by name.
.TP
\fBh\fP
help screen of group index commands.
.TP
\fBH\fP
help screen of context sensitive help about group index level.
.TP
\fBI\fP
Toggle inverse video.
.TP
\fBK\fP
Mark article/thread as read and advance to next unread article/thread.
.TP
\fBl\fP
List the author of each response in current thread and enter thread
selection level.
.TP
\fBm\fP
Mail current article / thread / articles matching pattern / tagged articles
to someone.
.TP
\fBM\fP
User configurable options menu (for more information see section Options Menu).
.TP
\fBn\fP
Go to next group.
.TP
\fBN\fP
Go to next unread article.
.TP
\fBo\fP
Output current article / thread / articles matching pattern / tagged articles
to printer.
.TP
\fBp\fP
Go to previous group.
.TP
\fBP\fP
Go to previous unread article.
.TP
\fBq\fP
Quit tin.
.TP
\fBs\fP
Save current article / thread / articles matching pattern / tagged
articles to file / files / mailbox. To save to a mailbox enter '='
or '=mailbox' when asked for filename to save to. To save in
<newsgroup name>/<filename> format enter '+filename'. Environment
variables are allowed within a filename (ie. $SOURCES/dir/filename).
.TP
\fBT\fP
Tag current article for mailing ('m') / piping ('|') / printing ('o') / saving ('s').
.TP
\fBt\fP
Return to group selection index.
.TP
\fBu\fP
Toggle display to show all articles as unthreaded or threaded.
.TP
\fBU\fP
Untag all articles that were tagged.
.TP
\fBv\fP
Print tin version number.
.TP
\fBw\fP
Post an article to current group.
.TP
\fBW\fP
List articles posted by user. The date posted, the newsgroup and the
subject are listed.
.TP
\fBz\fP
Mark current article as unread.
.TP
\fBZ\fP
Mark current thread as unread.
.TP
\fB/\fP
Search forward for specified subject.
.TP
\fB?\fP
Search backward for specified subject.
.TP
\fB-\fP
Show last message.
.TP
\fB|\fP
Pipe current article / thread / articles matching pattern / tagged articles
into command.
.SH "THREAD LISTING COMMANDS"
.TP 10
\fB4\fP
Select article 4 within thread.
.TP
\fB^L\fP
Redraw page.
.TP
\fB<CR>\fP
Read current article within thread.
.TP
\fB<TAB>\fP
View next unread article within thread.
.TP
\fBh\fP
help screen of thread listing commands.
.TP
\fBI\fP
Toggle inverse video.
.TP
\fBK\fP
Mark thread as read and return to group index level.
.TP
\fBq\fP
Quit thread listing level.
.TP
\fBt\fP
Return to group index level.
.TP
\fBv\fP
Print tin version number.
.TP
\fBz\fP
Mark current article in thread as unread.
.TP
\fBZ\fP
Mark all articles in thread as unread.
.SH "ARTICLE VIEWER COMMANDS"
.TP 10
\fB0\fP
Read the base article in this thread.
.TP
\fB4\fP
Read response 4 in this thread.
.TP
\fB^H\fP
Show all of the articles mail header.
.TP
\fB^K\fP
Kill current article (for more information read section Kill Article Menu).
.TP
\fB^L\fP
Redraw page.
.TP
\fB<CR>\fP
Goto next base article.
.TP
\fB<TAB>\fP
Goto next unread article.
.TP
\fBa\fP
Author forward search.
.TP
\fBA\fP
Author backward search.
.TP
\fBB\fP
Mail a bug report or comment to the author. This is the best way of
getting bugs fixed and features added/changed.
.TP
\fBc\fP
Mark all articles as read.
.TP
\fBd\fP
Toggle rot-13 decoding for this article.
.TP
\fBf\fP
Post a followup to current article.
.TP
\fBF\fP
Post a followup with a copy of the current article included.
.TP
\fBh\fP
Help screen of article page commands.
.TP
\fBH\fP
Help screen of context sensitive help about article page level.
.TP
\fBi\fP
Return to index page.
.TP
\fBI\fP
Toggle inverse video.
.TP
\fBk\fP
Mark article as read and advance to next unread article.
.TP
\fBK\fP
Mark thread as read and advance to next unread thread.
.TP
\fBm\fP
Mail current article / thread / articles matching pattern / tagged articles
to someone.
.TP
\fBM\fP
User configurable options menu (for more information see section Options Menu).
.TP
\fBn\fP
Go to the next article.
.TP
\fBN\fP
Go to the next unread article.
.TP
\fBo\fP
Output current article / thread / articles matching pattern / tagged articles
to printer.
.TP
\fBo\fP
Output article/thread/tagged articles to printer.
.TP
\fBp\fP
Go to the previous article.
.TP
\fBP\fP
Go to the previous unread article.
.TP
\fBq\fP
Quit tin.
.TP
\fBr\fP
Reply through mail to author.
.TP
\fBR\fP
Reply through mail to author with a copy of the current article included.
.TP
\fBs\fP
Save current article / thread / articles matching pattern / tagged
articles to file / files / mailbox. To save to a mailbox enter '='
or '=mailbox' when asked for filename to save to. To save in
<newsgroup name>/<filename> format enter '+filename'. Environment
variables are allowed within a filename (ie. $SOURCES/dir/filename).
.TP
\fBt\fP
Return to group selection index.
.TP
\fBv\fP
Print tin version number.
.TP
\fBw\fP
Post an article to current group.
.TP
\fBW\fP
List articles posted by user. The date posted, the newsgroup and the
subject are listed.
.TP
\fBz\fP
Mark article as unread.
.TP
\fB/\fP
Article forward search.
.TP
\fB?\fP
Article backward search
.TP
\fB|\fP
Pipe current article / thread / articles matching pattern / tagged articles
into command.
.TP
\fB<\fP
Goto the first article in the current thread.
.TP
\fB>\fP
Goto the last article in the current thread.
.SH "OPTIONS MENU"
This menu is accessed by pressing 'M' at all levels. It allows the user
to customize the behaviour of tin. The options are saved to the file
\fI$HOME/.tin/tinrc\fP. Use <SPACE> to toggle the required option and
<CR> to set.
.TP 4
\fBAuto save\fP
Automatically save articles/threads by Archive-name: line in article
header. This is useful to set ON in conjunction with 'Save separate'.
.TP
\fBSave separate\fP
Save articles/threads to separate files. Set ON if saving source code.
Set OFF if saving a conversational thread.
.TP
\fBMark saved read\fP
This allows saved articles/threads to be automatically marked as
having been read.
.TP
\fBKill articles\fP
This allows the user to kill articles that match entries in the kill
file \fI$HOME/.tin/kill\fP.
.TP
\fBDraw arrow\fP
Allows groups/articles to be selected by an arrow '->' if set ON or
by an highlighted bar if set OFF.
.TP
\fBPrint header\fP
This allows the complete mail header or only the Siubject: and From:
fields to be output when printing articles.
.TP
\fBGoto 1st unread\fP
This allows the cursor to be placed at the first / last unread article
upon entering a newsgroup with unread news.
.TP
\fBScroll full page\fP
If set ON scrolling of groups/articles will be a full page at a time,
otherwise half a page at a time.
.TP
\fBCatchup on quit\fP
If set ON the user is asked when quitting if all groups read during the
current session should be marked read.
.TP
\fBThread articles\fP
If set ON articles will be threaded in all groups (default), otherwise
articles will be shown unthreaded. If set ON but certain user specified
groups are in \fI$HOME/.tin/unthread\fP, the specified groups will be
unthreaded and the rest will be threaded.
.TP
\fBShow only unread\fP
If set ON show only new/unread articles, otherwise show all articles.
.TP
\fBShow Author\fP
If set 'None' only the Subject: line will be displayed. If set 'Addr'
Subject: line & the address part of the From: line are displayed. If
set 'Name' Subject: line & the authors full name part of the From:
line are displayed. If set 'Both' Subject: line & all of the From: line
are displayed.
.TP
\fBProcess type\fP
This specifies the default type of post processing to perform on saved
articles. The following types of processing are allowed:
.in +.5i
.ti -\w'\(em'u
\(emnone.
.ti -\w'\(em'u
\(emunpacking of multi-part shell archives.
.ti -\w'\(em'u
\(emunpacking of multi-part uuencoded files.
.ti -\w'\(em'u
\(emunpacking of multi-part uuencoded files that produce a *.zoo archive
whose contents is listed.
.ti -\w'\(em'u
\(emunpacking of multi-part uuencoded files that produce a *.zoo archive
whose contents is extracted.
.in -.5i
.TP
\fBSort articles by\fP
This specifies how articles should be sorted. The following sort
types are allowed:
.in +.5i
.ti -\w'\(em'u
\(emdon't sort articles (default).
.ti -\w'\(em'u
\(emsort articles by Subject: field (ascending & descending).
.ti -\w'\(em'u
\(emsort articles by From: field (ascending & descending).
.ti -\w'\(em'u
\(emsort articles by Date: field (ascending & descending).
.in -.5i
.TP
\fBSave directory\fP
The directory where articles/threads are to be saved. Default is
\fI$HOME/News\fP.
.TP
\fBMail directory\fP
The directory where articles/threads are to be saved in mailbox format.
This feature is mainly for use with the Elm mail program. It allows
the user to save articles/threads/groups simply by giving '=' as
the filename to save to.
.TP
\fBPrinter\fP
The printer program with options that is to be used to print
articles. Default is lpr for BSD machines and lp for SysV machines.
.SH "KILL ARTICLE MENU"
This menu is accessed by pressing '^K' at the group and page levels. It
allows the user to kill an article that matches the current Subject:
line, From: line or a string entered by the user. The user entered string
can be applied to the Subject: or From: lines of an article. The kill
description can be limited to the current newsgroup or it can apply to all newsgroups.
Once entered the user can abort the command and not save the kill
description, edit the kill file or save the kill description.
.PP
On starting tin the users killfile \fI$HOME/.tin/kill\fP is read and
on entering a newsgroup any kill descriptions are applied. Articles
that match a kill description are marked killed and are not displayed.
SHAR_EOF
true || echo 'restore of tin.1 failed'
fi
echo 'End of tin1.1 part 1'
echo 'File tin.1 is continued in part 2'
echo 2 > _shar_seq_.tmp
exit 0
--
NAME Iain Lea
EMAIL iain%estevax.uucp@unido.Informatik.Uni-Dortmund.DE
SNAIL Bruecken Strasse 12, 8500 Nuernberg 90, Germany
PHONE +49-911-331963 (home) +49-911-3089-407 (work)
--
Dr. med. dipl.-math Dieter Becker Tel.: (0 / +49) 6841 - 16 3046
Medizinische Universitaets- und Poliklinik Fax.: (0 / +49) 6841 - 16 3369
Innere Medizin III
D - 6650 Homburg / Saar Email: becker@med-in.uni-sb.de
exit 0 # Just in case...