[alt.sources] biff's own mailer

meo@rsiatl.UUCP (Miles ONeal) (07/24/90)

There is a long story as to how this code came into my hands.
The DIA has suggested I not relate that story just yet. Suffice
it to say that this little coup had somewhat to do with the
Soviet parliament giving Gorby a free hand, and with the lowered
volume of inanity from portal and psu lately. Isn't that really
enough?

#!/bin/sh
#
#THIS IS BIFFMAIL _ MY FAVORITE MAILER!!!
#
#  SINCE I WROITE IT!
#
#I COULDNT FIND SHAR SO I DID THIS BY HAND.
#
cat > BM.c << THISISNEAT!






/* BIFF WROTE THIS BAR (HAHA! REALLY ITS CODE!!!) COPYRIGT !(*( BY BIFF */
/* YOU CAN DISTURBUTE THIS CODE ALL YOU WANT IF YOU KEEP THIS COPYWRIGHT */
/* IN IT AND DON"T MAKE ANY MONEY OFF IT!!! UNLESS I GIVE PERMISSION!!! */



#ifdef COMMENTS

BIFFMAIL (I STARTED CALLING IT BM BUT THEN REMEMBEREDS WHAT THAT MEANS
(YUK!) BUT ITS ALLOVER THE PLASE AS BM SI ITS TOO LATE NOW HAHA!!!

ANYWAY IF YOU LIKE THIS, SEND ME MAILL. IF NOT, IM SORRY JUST DONT USE
IT! DONT BE LIKE THOSE NASTY PEEOPLE ON THE NET THATS FLAME ALL THE TIME,,
YOU KNOEW, DUDES AND DUDETTS?

ANYWAY, ---I--- LIKE IT, AND I LIKE ME, A>ND I LIKE ***YOU***

SPELING CHEKCER COMES LATER

#endif COMEMNTS


#include <stdio.h>
#include <ctype.h>
#include "biff.h"

#define ONE		1
main()
{
	register signed long i = 0;
	register int error;
	char s [1019];
/******** THIS DIDNT WORK TRY AGAIN!!!
	while (i !< 0 && i !> 0) {
                                      ***********/
	while (i IS 0) {
		printf ("WELCOME TO BIFFMAIL!!!\n");
		error = (/* register POR CC DIDN:T LIKE THIS!!!*/ int) gets (s);
		if (error IS 0) {
				/****** NOT VERY STRUCTURED, DUDE!
				exit (error);
                                                                  ***/
				i = 1; /* MUCH BETER!!! ***/
		}
		else  /*** <<< WHY DO I NED THIS??? &*/
		if (strncmp (s, "S", ONE) IS 0) { /**** SNED A MASSAGE! **/
			snedit (); }
		else if (strncmp (s, "R", ONE) IS 0) { /** READ A MASSAGES! **/
			 getone (); }
		else if (strncmp (s, "H", ONE) IS 0) { /** HELP A MASSAGES! **/
			 help (); }
		else if (strncmp (s, "?", ONE) IS 0) { /** HELP A MASSAGES! **/
			 help (); }
		else
			{
			 uhoh (); }	/* MISS SCAHLET? WHATEVAH SHAL I DU? */
					/* HAHA!!! */
	}
}

snedit ()
{/* THIS MAY STILL HALVE SOME PROMNBLEMSB!?! ***
*/
FILE *SMP, *SP;
	register signed long i = 0;
	register int error;
	register int j;
	char s [1019];
	printf ("ENTER THE NAME THIS IS TO, OK???!");
	error = gets (s);
	SMP = popen ("mail -f BIFFSNOT.HER > /dev/null", "w");
	fprintf (SMP, "m ");
	fprintf (SMP, "%s\n", s);
	while (i IS 0) {
		error = (/* register POR CC DIDN:T LIKE THIS!!!*/ int) gets (s);
		if (error IS 0) {
				/****** NOT VERY STRUCTURED, DUDE!
				exit (error);
                                                                  ***/
				i = 1; /* MUCH BETER!!! ***/
		}
		else  /*** <<< WHY DO I NED THIS??? &*/
		if (strncmp (s, ".", ONE) IS 0) { /**** STOP A MASSAGE! **/
			i = error = 1 ; }
		else
			{ /*** DONT DO THIS HERE !!! ;^) getone (); *****/
			for (j = 0; s[j] ISNT 0; j = j+1) {
				if (strncmp (&(s[j]), " ", ONE) IS 0)
					s[j]=s[j]; else
				{
				switch (s[j]){
					case ':': /* MAIL AND STUFF! **/
					case '!':
					case '.':
					case ',':
					case '@':
					case ';':
					case '^':
					case ')':
					case '(':
					case '%':
					case '?':
					case '-':
						s[j]=s[j];
						break;
					case '0' : case '1' : case '2' :
					case '3' : case '4' : case '5' :
					case '6' : case '7' : case '8' :
					case '9' : /* s[j]-=16; UNDO CAPS LOK*/
						break;
					default:
					if (isupper(s[j])) s[j]=s[j] ; else
						  if (islower(s[j])) /*NOTE*/
							s[j]=toupper(s[j]);
						else s[j]-=16;
						break;}
/*   A NEAT THING CALLED LINT SAYS THIS NEXT IS A DEGENERATE UNSIGNED
     COMPARISON!!! NEAT, HUH?!!! */
				if (s[j] <0) s[j]+= 128 - 32;
				if (s[j] <16)s[j]+= 16;; }
				}
			fprintf (SMP, "%s\n", s);
		}
	}
	if ((SP = fopen (".signature", "r")) ISNT NULL) {
		fclose (SP);
		fprintf (SMP, "~r .signature\n");
		fprintf (SMP, "~r .signature\n"); /* JUST TO BE SURE!!! */
	}
	else 
	if ((SP = fopen (".BIFF", "r")) ISNT NULL) { /* AM I ME? */
		fclose (SP);
		fprintf (SMP, "~r .BIFF\n");
		fprintf (SMP, "~r .BIFF\n"); /* JUST TO BE SURE!!! */
	}
	else {
		fprintf (SMP, "SORRY, NO SIGNATURE AVAILABLLE!!!\n"); }
#ifdef BIFFLESS		/* PRETTY SCARRY, HUH? !!! */
	fprintf (SMP, ".\n");
#endif BIFFLESS
fclose (SMP);
}

help ()
{
printf (" TRY S TO SEND A MESSGE\n");
printf (" OR R TO READ THEM!!!\n");
}

uhoh ()
{
printf (" SORRY! THIS DOESN\"T WORK REEL GIOOD YET!\n");
printf (" TRY AGAIN ANOTHER TIME!!!\n");
}

getone ()
{
printf (" SORRY! THIS DOESN\"T WORK REEL GIOOD YET!\n");
printf (" TRY AGAIN ANOTHER TIME!!!\n");
}


#ifdef COMMENTS

/* PROGRMANER NOTES!!! **/

/*NOTE*/

ONE OF THE C COMPILERS I USE LET THIS STATEMENYT GO BY WITHOUT ANY
PPARENSTHESISES _ I GUESS THE PERSON WHO DID THEIR MACRO LIBARRY WAS
PRETTY COOL, HUH? WAY RAD!

#endif COMMENTS
THISISNEAT!
cat > BM.n << THISISNEAT!
.TH "BIFFMAIL" 1 "SEPT 29, 1988" "REV 0.00B"
.SH NAME
BM \- MAIL PROGRAM FOR DUMB USERS AND TERMINALS
.SH SYNOPSIS
.IP (VMS)
RUN BM/VERBOSE=ALWAYS (DONT WORK YET)
.IP (UNIX)
BM
.IP (VM)
EXECUTE BIFFMAIL,RECSIZE=1000,ISP=18xaf0,PSU=1,PORTAL=1
ONLY WORKS IF RUNNING AIX AND THEN DONT NEED THIS STUFF
.IP (MAC)
<CLICK> <CLICK> AU/X ONLY!!!
.SH DESCRIPTION
BIFFMAIL WILL TRANSLATE EVERYTHING TO UPPER CASE
IF THE TERMINAL ISN'T SMART ENOUGH TO DO THAT
ALREADY!
.IP
.I BM
WILL AUTOMAGICAL;Y APPEND YOUR SIGNATUER
FILE AT LEAST ONCET AT THE END OF YO*R
POSTING,
FIX PUNCTUATION AND
FIX ANY SPELING MISERROR YOU MITE MAKE.
.IP
.SH GLOBAL VARIABLES
.IP
DON"T WORRY WE ALREADY TAKED CARE OF
ALL THIS FOUR YOU!!!
.SH REQUIREMENTS
THE
.I BM
MAILER MAY BE RUN BY ANYONE WITH A GROUP ID
GREATER THAN ) AND AN IQ LESS THAN @%.
.IP
BM WAS ORIGINALLY ONLY AVAILABLE
TO USERS ON THE FOLLOWINJ
SYTEMS:
PORTAL,
PSU,
PSUVM,
NUNKI!
NOW ANYONE CAN BE COOL WITH THEIR MAIL!
.SH AUTHOR
I WROTE THIS!
MY NAME IS BIFF!
AREWN{T COMPUETRESE NEET!
.SH BUGS
I DONT PUT BUGS IN MY CODE!!!]
GROSS!!!   :^)  :^)
THISISNEAT!
cat > README << THISISNEAT!
BM, IS SHORT FOR BIFFMAIL.

JUST MAKE IT AND TYPE BM.

IT WILL LET YOU USE A S TO SNED A MESSAGE
AND R TO READ MAIL (EXCEPT THIS
DOESN"T IMPLEMENTED YET!!! SORRRY!!!

;^)

HELP IS THERE, AND MORS IS ON THE WAY!!!

OH YEA, THE MESSAGE ENDS JUST LKIKE REAL
MALE WITH A . OR A CONTROL_D. OK???

-BIFF@PORTAL.CUP.COM
-BIFF@PSUVM.PSU.EDU
-BIFF@BIFF.NET
THISISNEAT!
cat > biff.h << THISISNEAT!
#define IS ==
#define ISNT !=
THISISNEAT!
cat > .BIFF << THISISNEAT!
-BIFF

BIFF@PSUVM.PSU.EDU             BIFF@PORTAL.CUP.COM               BIFF@BIFF.NET
THISISNEAT!
cat > makefile << THISISNEAT!
BM: BM.c biff.h
	cc -o BM BM.c
THISISNEAT!

smulrine@cs.strath.ac.uk (Robotron 2084) (07/24/90)

In alt.sources, meo@rsiatl.UUCP (Miles ONeal) writes:
>...
>	SMP = popen ("mail -f BIFFSNOT.HER > /dev/null", "w");

Change this to .....("bifflex | mail -f BIFFSNOT.HER > /dev/null", "w");

And now you need a program called "bifflex" somewhere in your path which
will correct your grammar and spelling for you. Well, bless my cotton socks,
I just happen to have such a thing! It works like a dream. Unpack the
following zumfy little proglet and type "make".

#	This is a shell archive.
#	Remove everything above and including the cut line.
#	Then run the rest of the file through sh.
#-----cut here-----cut here-----cut here-----cut here-----
#!/bin/sh
# shar:	Shell Archiver
#	Run the following text with /bin/sh to create:
#	Makefile
#	biff.l
# This archive created: Tue Jul 24 15:48:50 1990
# By:	Stephen K Mulrine (Strathclyde University CS Dept)
cat << \SHAR_EOF > Makefile
bifflex:	biff.l
		lex biff.l
		cc -O -s -o bifflex lex.yy.c -ll
		rm lex.yy.c
SHAR_EOF
cat << \SHAR_EOF > biff.l

T	[" .!?,"]*
%%

LOOK			printf("WATCH");
WATCH			printf("LOOK");
HEAR			printf("LISTEN");
LISTEN			printf("HEAR");
GOOD			printf("WELL");
WELL			printf("GOOD");
SAY			printf("SPEAKS");
SAID			printf("SPEAKED");
BEING			printf("BE");
CK			printf("KK");
NN			printf("N");
MM			printf("M");
TT			printf("T");
SS			printf("S");
DD			printf("D");
" HAD "			printf(" HAVE ");
" THAN "		printf(" TO ");
" WAS "			printf(" WERE ");
" CAN "			printf(" BE ABLE TO ");
" DO "			printf(" DOING ");
" DOES "		printf(" DOINGS ");
" SEE "			printf(" BE SEEING ");
" BE "			printf(" BEING ");
" AM "			printf(" DO BE ");
" AS "			printf(" SO ");
" SO "			printf(" AS ");
" IS "			printf(" DOES BE ");
" MY "			printf(" THE OF ME ");
"MY "			printf("THE OF ME ");
" HIS "			printf(" THE OF HIM ");
"HIS "			printf("THE OF HIM ");
YOUR			printf("THE OF YOU");
" A "			printf(" ");
" THE "			printf(" ");
"A "			printf("ONE ");
"TS "			printf("T'S ");
"T'S "			printf("TS ");
THAT			printf("THIS");
THIS			printf("THAT");
INTO			printf("IN");
" IN "			printf(" INTO ");
ONTO			printf("ON");
" ON "			printf(" ONTO ");
NEVER			printf("NOT ONCE");
ONCE			printf("ONE TIME");
TWICE			printf("TWO TIMES");
ABOUT			printf("BY");
WHY			printf("HOW");
" BY "			printf(" FROM ");
" TO "			printf(" FOR ");
" FOR "			printf(" TO ");
"ING "			printf("ED ");
%%

main()
{
	srand(getpid());
	yylex();
}
SHAR_EOF
#	End of shell archive
exit 0
-- 
Robotron 2084 <> I like grils <> special short sig for jenine <> grils - yum!