summaryrefslogtreecommitdiff
path: root/gnu/libexec/uucp/contrib/uucomp.shar
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/libexec/uucp/contrib/uucomp.shar')
-rw-r--r--gnu/libexec/uucp/contrib/uucomp.shar552
1 files changed, 552 insertions, 0 deletions
diff --git a/gnu/libexec/uucp/contrib/uucomp.shar b/gnu/libexec/uucp/contrib/uucomp.shar
new file mode 100644
index 0000000000000..da131d048c5ec
--- /dev/null
+++ b/gnu/libexec/uucp/contrib/uucomp.shar
@@ -0,0 +1,552 @@
+#! /bin/sh
+#
+# Created by shar, version 0.5 - 04/10/91
+#
+# This is a shell archive, meaning:
+# 1. Remove everything about the #! /bin/sh line.
+# 2. Save the resulting text in a file.
+# 3. Execute the file with /bin/sh to create:
+#
+# length name
+# ------ -------------------------------------
+# 128 uucomp-1.1/Compress
+# 264 uucomp-1.1/Copyright
+# 410 uucomp-1.1/INTERNALS
+# 1069 uucomp-1.1/Makefile
+# 3528 uucomp-1.1/README
+# 632 uucomp-1.1/crmail.c
+# 632 uucomp-1.1/crnews.c
+# 108 uucomp-1.1/tags
+# 3506 uucomp-1.1/uucomp.c
+# 383 uucomp-1.1/uucomp.h
+#
+
+if test ! -d uucomp-1.1 ; then
+ mkdir uucomp-1.1
+fi
+#
+# Archive number 1
+# This archive created Tue Sep 28 20:21:14 1993
+#
+
+echo "shar: extracting uucomp-1.1/Compress - (128 characters)"
+if test -f 'uucomp-1.1/Compress' ; then
+ echo shar: will not over-write existing file uucomp-1.1/Compress
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/Compress'
+Xfor i in $*
+Xdo
+X if [ -d /usr/spool/uucp/$i ]
+X then
+X# echo Looking at $i
+X cd /usr/spool/uucp/$i
+X /usr/bin/uucomp C.*
+X fi
+Xdone
+SHAR_EOF
+if test 128 -ne "`wc -c < 'uucomp-1.1/Compress'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/Compress (should have been 128 characters, but was "`wc -c < 'uucomp-1.1/Compress'`" characters) *****"
+fi
+fi
+
+touch 0715110393 uucomp-1.1/Compress
+chmod 0700 uucomp-1.1/Compress
+
+echo "shar: extracting uucomp-1.1/Copyright - (264 characters)"
+if test -f 'uucomp-1.1/Copyright' ; then
+ echo shar: will not over-write existing file uucomp-1.1/Copyright
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/Copyright'
+X
+X/*
+X *
+X * Copyright 1993 by Ed Carp (erc@apple.com) All rights reserved.
+X *
+X * Permission is hereby granted for any non-commercial use of this
+X * program, as long as this copyright notice remains intact. Commercial
+X * users may contact me - I'm easy.
+X *
+X */
+X
+SHAR_EOF
+if test 264 -ne "`wc -c < 'uucomp-1.1/Copyright'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/Copyright (should have been 264 characters, but was "`wc -c < 'uucomp-1.1/Copyright'`" characters) *****"
+fi
+fi
+
+touch 0715174993 uucomp-1.1/Copyright
+chmod 0600 uucomp-1.1/Copyright
+
+echo "shar: extracting uucomp-1.1/INTERNALS - (410 characters)"
+if test -f 'uucomp-1.1/INTERNALS' ; then
+ echo shar: will not over-write existing file uucomp-1.1/INTERNALS
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/INTERNALS'
+XThis is the basic workflow for uucomp:
+X
+Xfor (every argv)
+Xdo
+X if not "C." file skip
+X if open fail, skip
+X read 1 line from C. file
+X grab second and 10th field (second is data file name,
+X 10th is command name)
+X if open fail on second field, skip
+X if 10th field isn't "rmail" or "rnews", skip
+X execute "gzip -9" on second field
+X change "rmail" and "rnews" to "crmail" and "crnews", respectively
+X in C. file
+Xdone
+SHAR_EOF
+if test 410 -ne "`wc -c < 'uucomp-1.1/INTERNALS'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/INTERNALS (should have been 410 characters, but was "`wc -c < 'uucomp-1.1/INTERNALS'`" characters) *****"
+fi
+fi
+
+touch 0715174693 uucomp-1.1/INTERNALS
+chmod 0600 uucomp-1.1/INTERNALS
+
+echo "shar: extracting uucomp-1.1/Makefile - (1069 characters)"
+if test -f 'uucomp-1.1/Makefile' ; then
+ echo shar: will not over-write existing file uucomp-1.1/Makefile
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/Makefile'
+X#
+X# Makefile generated with genmake - version 1.1 08/22/92
+X#
+X# genmake is Copyright 1991 by Edwin R. Carp
+X#
+X# GENMAKE -B/usr/bin -tsp [files]
+X#
+X
+XCC = gcc -O6
+XCFLAGS = $(INCLUDE)
+XSOURCES = crmail.c crnews.c uucomp.c
+XOBJECTS = crmail.o crnews.o uucomp.o
+XPROGRAMS = /usr/bin/crmail /usr/bin/crnews /usr/bin/uucomp
+X
+Xall: $(PROGRAMS) tags
+X
+X/usr/bin/crmail: crmail.o
+X $(CC) $(CFLAGS) -o crmail crmail.o $(LDFLAGS) -O
+X strip crmail
+X chmod 755 crmail
+X mv crmail /usr/bin
+X
+X/usr/bin/crnews: crnews.o
+X $(CC) $(CFLAGS) -o crnews crnews.o $(LDFLAGS) -O
+X strip crnews
+X chmod 755 crnews
+X mv crnews /usr/bin
+X
+X/usr/bin/uucomp: uucomp.o
+X $(CC) $(CFLAGS) -o uucomp uucomp.o $(LDFLAGS) -O
+X strip uucomp
+X chmod 755 uucomp
+X mv uucomp /usr/bin
+X
+Xclean:
+X /bin/rm -f $(OBJECTS) MAKELOG eddep makedep
+X
+Xclobber:
+X /bin/rm -f $(OBJECTS) $(PROGRAMS) MAKELOG eddep makedep *~ *.bak *.BAK
+X /bin/rm -f tags
+X
+Xhidden:
+X echo "make all > MAKELOG 2>&1 &"|/bin/sh
+X
+Xmakefile:
+X genmake -B/usr/bin -tsp $(SOURCES) &
+X
+Xmakeall:
+X genmake -B/usr/bin -tsp *.c &
+X
+Xtags: $(SOURCES)
+X ctags $(SOURCES) > tags
+X
+SHAR_EOF
+if test 1069 -ne "`wc -c < 'uucomp-1.1/Makefile'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/Makefile (should have been 1069 characters, but was "`wc -c < 'uucomp-1.1/Makefile'`" characters) *****"
+fi
+fi
+
+touch 0714235093 uucomp-1.1/Makefile
+chmod 0600 uucomp-1.1/Makefile
+
+echo "shar: extracting uucomp-1.1/README - (3528 characters)"
+if test -f 'uucomp-1.1/README' ; then
+ echo shar: will not over-write existing file uucomp-1.1/README
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/README'
+XLike most people these days, I'm looking for ways to make my computing
+Xenvironment more efficient. This environment consists of a 486, a 386,
+Xand a 386SL laptop, all of which run Taylor uucp under Linux. The 386
+Xlaptop gets used a lot, since it goes wherever I go and I answer a lot
+Xof news and email every day. Often, I must use other people's facilities
+X(phone lines and such) to send out replies and post news if I'm not at home.
+XSince it's not fair to the client for them to pay for my zone calls back
+Xto my home in Fremont, I place the calls on my phone card. Unfortunately,
+XPacBell is very proud of the services they offer, especially in regards
+Xto this convenience of automatically charging calls to my house wherever I
+Xmay be. Considering that this can be very expensive to do, I searched for
+Xa way to cut my phone bill down to something I could afford to pay each
+Xmonth without fainting every time I saw the bill.
+X
+XThe first thing I did was to go out and plunk $195 for a 14.4KB modem.
+XThat helped, but C-News is very slow on my laptop, and batching articles
+Xis even slower, and email (of course) isn't batched at all. Even with
+XMNP5 compression turned on, this doesn't make for a very efficient setup,
+Xeven at high speeds.
+X
+XPlaying around with uucp told me that the line turnaround wasn't that much
+Xoverhead, nor was sending the C./X. files (the execute files) - the real
+Xoverhead was sending out uncompressed news and especially email, since
+XI subscribe to several mailing lists and digests can run quite large.
+X
+XI looked at uubatch, but the most current version I could find (1.05) was
+Xnot compatible with Taylor uucp (and I had no other alternative), so I
+Xdecided to write my own. Experiments with "gzip -9" convinced me that
+Xthat was the way to go, since gzip gives email and news 60 to 75 percent
+Xcompression, which would tend to cut one's phone bill significantly.
+X
+XYou hold in your mailbox (or news reader) the end result of that effort.
+XBear in mind that (1) this is a "first cut" and while it is unlikely that
+Xthere are very many bugs, there are certainly places where the programs could
+Xbe improved and tuned. Suggestions and comments are welcome!
+X
+XTo install:
+X
+X 1. Feed this to shar.
+X 2. Look at the Makefile. Make sure that the paths for
+X things are set up correctly.
+X 3. Look at uucomp.h and make sure that the path and
+X options for COMPRESS/UNCOMPRESS are set up properly.
+X 3. Type "make". This will make uucomp, crmail, and crnews
+X and will place them in /usr/bin. Move Compress into
+X /usr/lib/uucp.
+X 4. Make an entry in crontab to do
+X /usr/lib/uucp/Compress site1 site2 site3...
+X occasionally. It is suggested that this be done fairly
+X frequently. Alternately, you could set up a login shell
+X for selected sites to run uucomp every time that site
+X logged in.
+X 5. Don't forget to add /usr/bin/crmail and /usr/bin/crnews
+X to the list of programs allowed to be executed in your
+X Permissions file (if running HDB UUCP), or whatever is
+X appropriate for your version of uucp.
+X
+XEnjoy! Any questions or comments can be sent to erc@apple.com.
+X
+XNote: This is tuned for Taylor uucp, but would not be particularly
+Xdifficult to adapt to other version of uucp. See the file INTERNALS for
+Xdetails of how this works.
+X
+XJuly 15, 1993
+XEd Carp
+Xerc@apple.com
+X------------------------------------------------------------------------------
+XChanges since 1.0:
+X
+X Version Date Description
+X
+X 1.1 08/04/93 Added sanity check in C. file (check that
+X 'E' is first char in file, otherwise skip)
+SHAR_EOF
+if test 3528 -ne "`wc -c < 'uucomp-1.1/README'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/README (should have been 3528 characters, but was "`wc -c < 'uucomp-1.1/README'`" characters) *****"
+fi
+fi
+
+touch 0804224993 uucomp-1.1/README
+chmod 0600 uucomp-1.1/README
+
+echo "shar: extracting uucomp-1.1/crmail.c - (632 characters)"
+if test -f 'uucomp-1.1/crmail.c' ; then
+ echo shar: will not over-write existing file uucomp-1.1/crmail.c
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/crmail.c'
+X/*
+X * crmail - get compressed mail from host, uncompress
+X * WARNING: This may be insecure!
+X */
+X
+X/*
+X *
+X * Copyright 1993 by Ed Carp (erc@apple.com) All rights reserved.
+X *
+X * Permission is hereby granted for any non-commercial use of this
+X * program, as long as this copyright notice remains intact. Commercial
+X * users may contact me - I'm easy.
+X *
+X */
+X
+X#include <stdio.h>
+X#include "uucomp.h"
+Xmain (argc, argv)
+Xint argc;
+Xchar **argv;
+X{
+X char cmd[1024];
+X int i;
+X
+X sprintf (cmd, "%s|%s ", UNCOMPRESS, RMAIL);
+X for (i = 1; i < argc; i++)
+X {
+X strcat (cmd, argv[i]);
+X strcat (cmd, " ");
+X }
+X system (cmd);
+X exit (0);
+X}
+SHAR_EOF
+if test 632 -ne "`wc -c < 'uucomp-1.1/crmail.c'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/crmail.c (should have been 632 characters, but was "`wc -c < 'uucomp-1.1/crmail.c'`" characters) *****"
+fi
+fi
+
+touch 0715195493 uucomp-1.1/crmail.c
+chmod 0600 uucomp-1.1/crmail.c
+
+echo "shar: extracting uucomp-1.1/crnews.c - (632 characters)"
+if test -f 'uucomp-1.1/crnews.c' ; then
+ echo shar: will not over-write existing file uucomp-1.1/crnews.c
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/crnews.c'
+X/*
+X * crnews - get compressed news from host, uncompress
+X * WARNING: This may be insecure!
+X */
+X
+X/*
+X *
+X * Copyright 1993 by Ed Carp (erc@apple.com) All rights reserved.
+X *
+X * Permission is hereby granted for any non-commercial use of this
+X * program, as long as this copyright notice remains intact. Commercial
+X * users may contact me - I'm easy.
+X *
+X */
+X
+X#include <stdio.h>
+X#include "uucomp.h"
+Xmain (argc, argv)
+Xint argc;
+Xchar **argv;
+X{
+X char cmd[1024];
+X int i;
+X
+X sprintf (cmd, "%s|%s ", UNCOMPRESS, RNEWS);
+X for (i = 1; i < argc; i++)
+X {
+X strcat (cmd, argv[i]);
+X strcat (cmd, " ");
+X }
+X system (cmd);
+X exit (0);
+X}
+SHAR_EOF
+if test 632 -ne "`wc -c < 'uucomp-1.1/crnews.c'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/crnews.c (should have been 632 characters, but was "`wc -c < 'uucomp-1.1/crnews.c'`" characters) *****"
+fi
+fi
+
+touch 0715195593 uucomp-1.1/crnews.c
+chmod 0600 uucomp-1.1/crnews.c
+
+echo "shar: extracting uucomp-1.1/tags - (108 characters)"
+if test -f 'uucomp-1.1/tags' ; then
+ echo shar: will not over-write existing file uucomp-1.1/tags
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/tags'
+Xmain crmail.c /^main (argc, argv)$/
+Xmain crnews.c /^main (argc, argv)$/
+Xmain uucomp.c /^main (argc, argv)$/
+SHAR_EOF
+if test 108 -ne "`wc -c < 'uucomp-1.1/tags'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/tags (should have been 108 characters, but was "`wc -c < 'uucomp-1.1/tags'`" characters) *****"
+fi
+fi
+
+touch 0804224993 uucomp-1.1/tags
+chmod 0600 uucomp-1.1/tags
+
+echo "shar: extracting uucomp-1.1/uucomp.c - (3506 characters)"
+if test -f 'uucomp-1.1/uucomp.c' ; then
+ echo shar: will not over-write existing file uucomp-1.1/uucomp.c
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/uucomp.c'
+X/*
+X * uucomp - compress outgoing news/mail
+X *
+X * usage: uucomp C.*
+X *
+X * This works for Taylor uucp (available from prep.ai.mit.edu:/pub/gnu/uucp*),
+X * but I don't promise it works for anyone else's uucp package. Basically, this
+X * is a quick-n-dirty hack to get compressed mail and news to a uucp site. This
+X * becomes important when you're on the other end of a 1200 baud packet radio
+X * link, where the throughput can be 60 CPS (or lower). It also tends to hide
+X * any nasties that people might want to say to you, since the packets *are*
+X * public readable. Yes, I looked at uubatch, but it was too complicated for
+X * me to figure out <grin>, and it didn't work with Taylor-uucp. This is almost
+X * too simple to work...
+X *
+X * To use this little guy, do something like this in the .bashrc or .profile
+X * or .cshrc of the uucp's login shell:
+X *
+X * cd /usr/spool/uucp/<wherever the C. and D. files are kept>
+X * /usr/bin/uucomp C.*
+X * exec /usr/lib/uucp/uucico
+X *
+X * This program was written by Ed Carp (erc@apple.com). It can be used for any
+X * non-commercial purpose. This software is freely redistributable.
+X */
+X
+X/*
+X *
+X * Copyright 1993 by Ed Carp (erc@apple.com) All rights reserved.
+X *
+X * Permission is hereby granted for any non-commercial use of this
+X * program, as long as this copyright notice remains intact. Commercial
+X * users may contact me - I'm easy.
+X *
+X */
+X
+X#include <stdio.h>
+X#include "uucomp.h"
+X#undef NULL
+X#define NULL (0)
+Xmain (argc, argv)
+Xint argc;
+Xchar **argv;
+X{
+X int i, j, sw, ctr = 0, errflag = 0, mctr = 0, nctr = 0, skipctr = 0;
+X char scr[64], rcmd[10], line[1024], lineout[1024];
+X char *strtok (), *ptr, *lineptr, compfile[32];
+X FILE *in;
+X
+X printf ("uucomp 1.1 08/04/93 ... by erc@apple.com\nscanning %d files.", argc - 1);
+X for (i = 1; i < argc; i++)
+X {
+X if (strncmp (argv[i], "C.", 2) != 0)
+X {
+X skipctr++;
+X continue;
+X }
+X if ((in = fopen (argv[i], "r+")) == (FILE *) NULL)
+X {
+X skipctr++;
+X continue;
+X }
+X fgets (line, 1022, in);
+X if(*line != 'E')
+X {
+X skipctr++;
+X continue;
+X }
+X line[strlen (line) - 1] = NULL;
+X rewind (in);
+X *lineout = NULL;
+X lineptr = line;
+X sw = errflag = 0;
+X printf (".");
+X fflush (stdout);
+X for (j = 0;; j++)
+X {
+X ptr = strtok (lineptr, " ");
+X if (ptr == NULL)
+X break;
+X lineptr = NULL;
+X if (j == 1)
+X {
+X if (access (ptr, 4) == EOF)
+X {
+X#ifdef DEBUG
+X printf ("skip: file '%s' doesn't exist\n", ptr);
+X#endif
+X errflag = 1;
+X break; /*
+X * skip it if the data file isn't
+X * there yet
+X */
+X }
+X strcpy (compfile, ptr);
+X }
+X if (j == 9)
+X {
+X if (strcmp (ptr, "rmail") != 0 && strcmp (ptr, "rnews") != 0)
+X {
+X#ifdef DEBUG
+X printf ("skip: '%s' wrong command\n", ptr);
+X#endif
+X errflag = 1;
+X break;
+X }
+X if (strcmp (ptr, "rmail") == 0)
+X mctr++;
+X if (strcmp (ptr, "rnews") == 0)
+X nctr++;
+X sw = 1;
+X strcat (lineout, "c");
+X }
+X strcat (lineout, ptr);
+X strcat (lineout, " ");
+X }
+X if (errflag == 1)
+X {
+X skipctr++;
+X fclose (in);
+X continue;
+X }
+X fprintf (in, "%s\n", lineout);
+X fclose (in);
+X sprintf (line,
+X "%s -fc > /tmp/uucomp.%d < %s;cp /tmp/uucomp.%d %s",
+X COMPRESS, getpid (), compfile, getpid (), compfile);
+X system (line);
+X ctr++;
+X }
+X sprintf (line, "/tmp/uucomp.%d", getpid ());
+X unlink (line);
+X printf ("\n%d skipped, %d compressed (%d mail, %d news).\n",
+X skipctr, ctr, mctr, nctr);
+X exit (0);
+X}
+SHAR_EOF
+if test 3506 -ne "`wc -c < 'uucomp-1.1/uucomp.c'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/uucomp.c (should have been 3506 characters, but was "`wc -c < 'uucomp-1.1/uucomp.c'`" characters) *****"
+fi
+fi
+
+touch 0804224693 uucomp-1.1/uucomp.c
+chmod 0600 uucomp-1.1/uucomp.c
+
+echo "shar: extracting uucomp-1.1/uucomp.h - (383 characters)"
+if test -f 'uucomp-1.1/uucomp.h' ; then
+ echo shar: will not over-write existing file uucomp-1.1/uucomp.h
+else
+sed 's/^X//' << \SHAR_EOF > 'uucomp-1.1/uucomp.h'
+X/*
+X *
+X * Copyright 1993 by Ed Carp (erc@apple.com) All rights reserved.
+X *
+X * Permission is hereby granted for any non-commercial use of this
+X * program, as long as this copyright notice remains intact. Commercial
+X * users may contact me - I'm easy.
+X *
+X */
+X
+X#define COMPRESS "/usr/bin/gzip -9c"
+X#define UNCOMPRESS "/usr/bin/gzip -dc"
+X#define RMAIL "rmail"
+X#define RNEWS "rnews"
+SHAR_EOF
+if test 383 -ne "`wc -c < 'uucomp-1.1/uucomp.h'`" ; then
+ echo "shar: ***** error transmitting file uucomp-1.1/uucomp.h (should have been 383 characters, but was "`wc -c < 'uucomp-1.1/uucomp.h'`" characters) *****"
+fi
+fi
+
+touch 0715190293 uucomp-1.1/uucomp.h
+chmod 0600 uucomp-1.1/uucomp.h
+echo End of all shell archives
+exit 0