From: jamesd@techbook.com (James Deibele)
Subject: Re: .QWK mail reader for Waffle
Keywords: waffle, qwk, mail, offline
Organization: TECHbooks of Beaverton Oregon - Public Access Unix
Date: Sat, 12 Dec 1992 02:53:08 GMT

jhood@smoke.marlboro.vt.us (and the eyes in his head see the World spinning round) writes:
>> If I remember, plans were made to port it to UNIX as well, but it hasn't
>> happened as yet...

>I made some noises about this a year or so ago, and actually started
>on it, but gave it up.  The code was a mess to port, and QWKmail isn't
>well suited to Usenet.  It also wasn't (and still isn't) clear how

(I'm adding to the distribution of your original message because I've
seen a lot of people interested in offline readers for UNIX, but not 
much in the way of answers ...  )

Paul Buder (paulb@techbook.com) had gotten pretty far into porting
Wafline, but got stopped by circumstances a while ago.  Especially with
QWK2 looming on the horizon, if it's not here already, there doesn't 
seem to be as much point in finishing Wafline to work with QWK.  QWK,
like XMODEM, Kermit and echomail, is a "quick hack" that become popular
beyond the designer's dreams.  Many people who've designed standards
have said they would have put a lot more care into them if they'd had
any idea that it was going to <become> a standard.

From what I've heard of offline readers, they sound pretty nice.
However I don't think there's any substitute for using your favorite
editor to send messages.  If you're used to using WordPerfect, it's
unlikely that even the slickest editor is going to satisfy you.  You're
not going to have a thesaurus, your spell-checker, your macros, etc. in
an offline-reader.

In 1984 or 1985, Bob Hartman (of BinkleyTerm fame) wrote a program
called RoverMsg.  What it did was allow a user to read and reply to
FidoNet messages using their own favorite editor.  RoverMsg would
convert FidoNet-format to ASCII and back again.  I tried talking Bob
into updating RoverMsg, but it was (I assume) never that popular and
there weren't that many people running FidoNet systems then anyway.

However, I still think the idea has value: can you write a better editor
than WordPerfect?  Maybe you can convince me --- I'm not a big WordPerfect
fan, though I like Word even less.  But how many other people can you
convince?

Another problem with QWK is that UNIX systems have to translate the
messages from native UNIX format to whatever the reader wants.  Don't
know about you, but I'm interested in keeping overhead down to as little
as possible.  The major difference is the way the end-of-line is
handled, although you have to be careful of case, too.

I want something that works for people using the shell as well as for 
Waffle users.  And I find that elm and nn have done so many things
"right" that they're what I would want to use under DOS, or something
that approximates them as closely as possible.  

What Paul and Bob Hay and I came up with was a system that worked
something like this: the user sets up a Procomm/Telix/Qmodem script to
call in.  Whatever their favorite terminal program is.  That throws out
a sizeable chunk of code, since every popular program that I've seen has
its own scripting language that's powerful enough to test for files and
delete files.  While there are a lot of virtues to a database format,
it's also a lot more complicated to program.  So we'll stick to the one
message - one file format.  

I realize a lot of people use DOS Waffle, so I don't know how well this
plan of attack works for people.  But let me stumble through the UNIX
side of things.  For incoming (to the host) mail and news, we can feed
a properly formatted file into sendmail and inews respectively.  The 
reader side needs to prepare these files appropriately, but it's not 
difficult.   Here are the incoming programs:

#!/bin/ksh
#
# mail_in : receive and process messages from caller
#
TEMP="/var/tmp/$LOGNAME"
mkdir $TEMP
#
cd $TEMP
if [ -d mail_in ]
then
	# Clean it out just to be safe
	cd mail_in
	rm * 
else
	mkdir mail_in
	cd mail_in
fi
# Protocol and program given as argument. Let's assume rz
/usr/local/bin/rz -a
for file in *
do 
	# This would actually be some checking to make sure that the
	# person logged in is the same as the person in the message.
	# Maybe grep the "From:" line, cut it, & compare to $LOGNAME
	if ( 1 )
	then
		/usr/lib/sendmail -t < $file
	else
		mailx -s "problems" root < $file
	fi
	rm $file
done
echo "Proceed" > received.ok
sz -a received.ok
rm received.ok
exit 0


#!/bin/ksh
#
# news_in: receive and process news articles from caller
#
TEMP="/var/tmp/$LOGNAME"
mkdir $TEMP
# should check for existing $TEMP, but what the hey ... 
#
cd $TEMP
if [ -d news_in ]
then
	# Clean it out just to be safe
	cd news_in
	rm * 
else
	mkdir news_in
	cd news_in
fi
# Protocol and program given as argument. Let's assume rz
/usr/local/bin/rz -a
for file in *
do 
	# This would actually be some checking to make sure that the
	# person logged in is the same as the person in the message.
	# Maybe grep the "From:" line, cut it, & compare to $LOGNAME
	if ( 1 )
	then
		/usr/bin/inews -h < $file
	else
		mailx -s "problems" root < $file
	fi
	rm $file
done
echo "Proceed" > received.ok
sz -a received.ok
rm received.ok
exit 0
Xref: sparky comp.bbs.waffle:5272 comp.mail.uucp:2347