It is a new [and as far as I'm concerned, better :-] program.
It needs not run as root, the databases are smaller (text only),
and does more for me than all others have done so far :-)
Problems, Praise & Bugs
=======================
Please direct these to Jan-Piet Mens <j...@Logix.DE>
---- Cut Here and feed the following to sh ----
#!/bin/sh
# This is uuhost, a shell archive (produced by shar 3.49)
# To extract the files from this archive, save it to a file, remove
# everything above the "!/bin/sh" line above, and type "sh file_name".
#
# made 10/19/1991 15:07 UTC by j...@Logix.DE
# Source directory /u/local/lib/uucpmaps/src
#
# existing files will NOT be overwritten unless -c is specified
#
# This shar contains:
# length mode name
# ------ ---------- ------------------------------------------
# 2768 -rw-r--r-- README
# 3178 -rw-r--r-- Makefile
# 403 -rw-r--r-- Copyright
# 2671 -rwxr-xr-x uuhost.S
# 3060 -rw-r--r-- uuhost.N
# 1888 -rw-r--r-- uusplit.c
# 2726 -rw-r--r-- uulookup.c
#
# ============= README ==============
if test -f 'README' -a X"$1" != X"-c"; then
echo 'x - skipping README (File already exists)'
else
echo 'x - extracting README (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'README' &&
UUHOST 2.0
==========
X
X This is uuhost 2.0
X
X It is a new [and as far as I'm concerned, better :-] program.
X It needs not run as root, the databases are smaller (text only),
X and does more for me than all others have done so far :-)
X
X Uuhost reads that UUCP maps which live in a directory, and builds a
X smallish database, containing just enough data to read the UUCP and
X USENET information from the maps.
X
X - Edit the Makefile. Set the variables described at the top of the
X Makefile to desired values.
X
X - Do a `make'. This should produce
X uusplit executable
X uulookup executable
X uuhost shell-script
X uuhost.1 manual page
X
X - Do a "make install"
X This will copy the uuhost program to your LOCALBIN directory,
X uusplit and uulookup to your BINDIR directory. Note: BINDIR need
X not be in the user's path.
X Please install the manual page `uuhost.1' manually.
X
X - Run "uuhost -l" It should show you a list of contents of your
X maps directory.
X
X - Try "uuhost -r u.usa.1" or similar. That should work too.
X
X - Now run "uuhost -index" This will take a while. The index is
X being built. (should not take much longer than five minutes)
X
X - Try "uuhost hostname" where hostname is a host that you know
X about.
X
X - Set up "uuhost -index" so that it runs once a day. This can be
X done via crontab:
X
X 00 07 * * * uuhosts -index
X
X
X - Congratulations. Finished.
X
X - If you have problems, please contact me.
X My name is Jan-Piet Mens, and my address is
X <j...@Logix.DE>
X
INTERNALS
=========
X
uuhost -index
=============
X
This program reads all files in the MAPSDIR directory.
Here is the map entry from the file `u.deu.2' (line 1451) for my site:
X
X #N logixwi, logix.de, .logix.de
X #S Tandon 486/25;SCO UNIX 3.2.2
X #O Logix GmbH
X #C Jan-Piet Mens
X #E postm...@logixwi.logix.de
X #T +49 611 309797
X #P Moritzstrasse 50, D-W-6200 Wiesbaden, Germany
X #L
X #W c...@Germany.EU.net; 910228 / b...@Germany.EU.net ; 911016
X #U unido
X #
X logixwi unido(HOURLY)
X logixwi .logix.de
X
The `#N' entry contains three names (I call them hostnames, although that
is not quite correct :-)
The `uusplit' program gets the `#N' line passed to it, prepended by a
line number (produced by grep). It will split that line into individual
hostnames, producing:
X
X logixwi u.deu.2 1451
X logix.de u.deu.2 1451
X .logix.de u.deu.2 1451
X
These lines are put into the UUHOSTINDEX database. `uuhost -index' does
this for each `#N' in all files in the MAPSDIR directory. The database is
then sorted by the first field.
X
When `uuhost' looks for a hostname, it parses (with help of `uulookup') the
database, finds (or doesn't) the desired entry, and Charly 's your uncle.
X
Problems, Praise & Bugs
=======================
X Please direct these to Jan-Piet Mens <j...@Logix.DE>
X
SHAR_EOF
chmod 0644 README ||
echo 'restore of README failed'
Wc_c="`wc -c < 'README'`"
test 2768 -eq "$Wc_c" ||
echo 'README: original size 2768, current size' "$Wc_c"
fi
# ============= Makefile ==============
if test -f 'Makefile' -a X"$1" != X"-c"; then
echo 'x - skipping Makefile (File already exists)'
else
echo 'x - extracting Makefile (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'Makefile' &&
# UUHOST, Copyright 1991, Jan-Piet Mens [Logix GmbH, Wiesbaden, Germany]
# License to freely use and distribute this software is hereby granted
# by the author, subject to the condition that this copyright notice
# remains intact. The author retains the exclusive right to publish
# derivative works based on this work, including, but not limited
# to, revised versions of this work.
# Jan-Piet Mens <j...@Logix.DE>
#
# Define MAPSDIR to be the directory in which your maps are kept.
#
#MAPSDIR=/usr/spool/maps
MAPSDIR=/u/local/lib/uucpmaps/uucpmap
X
# Define UUHOSTINDEX to the location of the UUHOST index file.
#
UUHOSTINDEX=/u/local/lib/uuhostindex
X
# LOCALBIN is for the `uuhost' program only. All others go into BINDIR.
# This directory *should* be in a user's path.
#
LOCALBIN=/u/local/bin
X
# Define BINDIR to be the directory into which targets are copied upon
# a make install. This directory need _not_ be in a user's $PATH.
#
BINDIR=/u/local/lib/uucpmaps/bin
X
# Define PATHALIAS to be the name of your pathalias file
#
#PATHALIAS=/usr/lib/uucp/paths.uucp
PATHALIAS=/u/local/lib/pathalias
X
# Define PATHLOOKUP to the the program that gets a hostname, and returns
# the uucp mail path to that host.
#
PATHLOOKUP=$(BINDIR)/uulookup -m
X
# Define CATPROG to be the program with which to view the u.* maps. If the
# maps are compressed [which I highly recommend] use `zcat'. Otherwise `cat'.
#
#CATPROG=cat
CATPROG=zcat
X
# LOOKPROG is a program which returns the entry from UUHOSTINDEX
#
LOOKPROG=$(BINDIR)/uulookup -h
X
# The name of your preferred pager (pg,more,less,...,cat ?)
#
PAGEPROG="less"
X
CC=cc
CFLAGS=-O -s
LIBS=
X
SRCS=uusplit.c uulookup.c
SHARFILES=README Makefile Copyright uuhost.S uuhost.N
X
all: uusplit uulookup uuhost uuhost.1
X
uuhost: uuhost.S Makefile
X sed -e 's|__MAPSDIR__|$(MAPSDIR)|g' \
X -e 's|__CATPROG__|$(CATPROG)|g' \
X -e 's|__PAGEPROG__|$(PAGEPROG)|g' \
X -e 's|__PATHLOOKUP__|$(PATHLOOKUP)|g' \
X -e 's|__LOOKPROG__|$(LOOKPROG)|g' \
X -e 's|__BINDIR__|$(BINDIR)|g' \
X -e 's|__UUHOSTINDEX__|$(UUHOSTINDEX)|g' uuhost.S > uuhost
X chmod +x uuhost
X
uuhost.1: uuhost.N Makefile
X rm -f uuhost.1
X sed -e 's|__MAPSDIR__|$(MAPSDIR)|g' \
X -e 's|__BINDIR__|$(BINDIR)|g' \
X -e 's|__PATHALIAS__|$(PATHALIAS)|g' \
X -e 's|__UUHOSTINDEX__|$(UUHOSTINDEX)|g' uuhost.N > uuhost.1
X chmod 444 uuhost.1
X
uusplit: uusplit.c
X $(CC) $(CFLAGS) -o uusplit uusplit.c $(LIBS)
X
uulookup: uulookup.c Makefile
X $(CC) $(CFLAGS) -DPATHALIAS='"$(PATHALIAS)"' -DUUHOSTINDEX='"$(UUHOSTINDEX)"' -o uulookup uulookup.c $(LIBS)
X
install: uusplit uulookup uuhost
X [ -d $(BINDIR) ] || mkdir $(BINDIR)
X -chmod 755 $(BINDIR)
X rm -f $(BINDIR)/uusplit && cp uusplit $(BINDIR)
X chmod 111 $(BINDIR)/uusplit
X rm -f $(BINDIR)/uulookup && cp uulookup $(BINDIR)
X chmod 111 $(BINDIR)/uulookup
X rm -f $(LOCALBIN)/uuhost && cp uuhost $(LOCALBIN)
X chmod 555 $(LOCALBIN)/uuhost
X
X touch $(UUHOSTINDEX)
X
X @echo
X @echo 'Please install the manual page "uuhost.1" manually'
X @echo
clean:
X rm -f core *.o Part.??
clobber: clean
X rm -f uusplit uulookup uuhost uuhost.1
X
dist: $(SRCS) $(SHARFILES)
X shar49 -n uuhost -a -s 'j...@Logix.DE' -o Part -l 50 -c \
X $(SHARFILES) $(SRCS)
SHAR_EOF
chmod 0644 Makefile ||
echo 'restore of Makefile failed'
Wc_c="`wc -c < 'Makefile'`"
test 3178 -eq "$Wc_c" ||
echo 'Makefile: original size 3178, current size' "$Wc_c"
fi
# ============= Copyright ==============
if test -f 'Copyright' -a X"$1" != X"-c"; then
echo 'x - skipping Copyright (File already exists)'
else
echo 'x - extracting Copyright (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'Copyright' &&
/*
X * UUHOST, Copyright 1991, Jan-Piet Mens [Logix GmbH, Wiesbaden, Germany]
X * License to freely use and distribute this software is hereby granted
X * by the author, subject to the condition that this copyright notice
X * remains intact. The author retains the exclusive right to publish
X * derivative works based on this work, including, but not limited
X * to, revised versions of this work.
X */
SHAR_EOF
chmod 0644 Copyright ||
echo 'restore of Copyright failed'
Wc_c="`wc -c < 'Copyright'`"
test 403 -eq "$Wc_c" ||
echo 'Copyright: original size 403, current size' "$Wc_c"
fi
# ============= uuhost.S ==============
if test -f 'uuhost.S' -a X"$1" != X"-c"; then
echo 'x - skipping uuhost.S (File already exists)'
else
echo 'x - extracting uuhost.S (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'uuhost.S' &&
#!/bin/sh
#
# UUHOST, Copyright 1991, Jan-Piet Mens [Logix GmbH, Wiesbaden, Germany]
# License to freely use and distribute this software is hereby granted
# by the author, subject to the condition that this copyright notice
# remains intact. The author retains the exclusive right to publish
# derivative works based on this work, including, but not limited
# to, revised versions of this work.
#
# Set this to the name of the directory containing the uucp maps (u.*)
MAPSDIR="__MAPSDIR__"
# This is the file where the UUHOST index lives
UUHOSTINDEX="__UUHOSTINDEX__"
#
# This is the program that splits up a `#N' line into individual machines
#
UUSPLITNAME="__BINDIR__/uusplit"
#
# CAT is either `cat' if maps are not compressed, or `zcat' if they *are*.
#
CAT="__CATPROG__"
#
# If you don't want to use my `uulookup', you'll have to work at this script.
#
LOOK="__LOOKPROG__"
PATHLOOKUP="__PATHLOOKUP__"
PAGER="__PAGEPROG__"
X
USAGE="$0 [-l] [-r region] [hostname]"
X
[ $# -eq 0 ] && { echo "$USAGE" >&2 ; exit 1 ; }
case "$1" in
X -l) ls -C ${MAPSDIR} | sed -e 's/\.Z//g' ; exit 0 ;;
X -r) [ $# -eq 2 ] || { echo "$USAGE" >&2 ; exit 2 ; }
X REGION="${MAPSDIR}/$2"
X [ ! -r $REGION -a ! -r ${REGION}.Z ] &&
X { echo "$0: region $2 non-existant"; exit ; }
X ${CAT} $REGION | ${PAGER}
X exit 0 ;;
X -index)
X echo "Building index '${UUHOSTINDEX}'. Patience." >&2
X cd ${MAPSDIR} # Go to dir
X ls u.* | while read mapname # Find all u. files
X do
X echo ".\c" >&2
X ${CAT} $mapname |
X grep -n '^#N' | # Only `#N' entries
X ${UUSPLITNAME} $mapname # Build list
X done > ${UUHOSTINDEX}
X echo "\n" >&2
X #
X # there is a bug in my `sort'. Otherwise, I would have put
X # it in the pipeline above...
X #
X sort -f -u ${UUHOSTINDEX} -o ${UUHOSTINDEX}
X chmod 644 ${UUHOSTINDEX}
X exit 0 ;;
X -*) echo "$USAGE" >&2 ; exit 2 ;;
esac
X
machine=$1
X
${LOOK} $machine ${UUHOSTINDEX} | # May give several per machine
X sort -1 +2 -u | # Give unique entries for mach
X while read mach map line # Get Machinename, mapfile, line
X do
X ${PATHLOOKUP} $mach # E-mail address ?
X
X echo '\n'
X
X ${CAT} ${MAPSDIR}/${map} | # Output file...
X sed -n -e "$line,/^$/p" | # ... starting at `line'
X sed -e "s/^#N/#Name /" \
X -e "s/^#S/#System-OS /" \
X -e "s/^#O/#Organisation /" \
X -e "s/^#R/#Remarks /" \
X -e "s/^#E/#Electr.Adress /" \
X -e "s/^#C/#Contact /" \
X -e "s/^#T/#Telephone /" \
X -e "s/^#P/#Postal-Address/" \
X -e "s/^#L/#Lat.-Longitude/" \
X -e "s/^#W/#Written-By: /" \
X -e "s/^#U/#Usenet links /"
X echo "===================================================\f"
X done | ${PAGER}
X
SHAR_EOF
chmod 0755 uuhost.S ||
echo 'restore of uuhost.S failed'
Wc_c="`wc -c < 'uuhost.S'`"
test 2671 -eq "$Wc_c" ||
echo 'uuhost.S: original size 2671, current size' "$Wc_c"
fi
# ============= uuhost.N ==============
if test -f 'uuhost.N' -a X"$1" != X"-c"; then
echo 'x - skipping uuhost.N (File already exists)'
else
echo 'x - extracting uuhost.N (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'uuhost.N' &&
.\" nroff -man %s
.\" UUHOST, Copyright 1991, Jan-Piet Mens [Logix GmbH, Wiesbaden, Germany]
.\" License to freely use and distribute this software is hereby granted
.\" by the author, subject to the condition that this copyright notice
.\" remains intact. The author retains the exclusive right to publish
.\" derivative works based on this work, including, but not limited
.\" to, revised versions of this work.
.\"
.TH UUHOST 1 "" "Logix GmbH" "Local user commands"
.SH NAME
uuhost - lookup UUCP mail and USENET information
.SH SYNOPSIS
.B uuhost
[
.B -l
]
[
.B -r
.I region
]
[
.I hostname
]
.br
.B uuhost
.I -index
.br
.B __BINDIR__/uulookup
[
.B -h
.I hostname
]
[
.B -m
.I machine
]
.SH DESCRIPTION
.B uuhost
looks up information on the named host
.I hostname
in the UUCP map files and presents the information to the user to peruse.
.PP
.IP "\fBuuhost\fR \fIhostname\fR"
shows information about the host
.I hostname.
.IP "\fBuuhost\fR \fI-l\fR"
displays a list of uucp map regions available on this system.
.IP "\fBuuhost\fR -r \fIregion\fR"
displays all the information for the specified
.I region.
.IP "\fBuuhost -index\fR"
is reserved for the system administrator. This parses the needed information
out of the UUCP map distribution, and creates the necessary database for
.B uuhost.
This operation should be done once a night, after the maps have arrived at
this site.
.B "uuhost -index"
may be called from a crontab entry.
.PP
The
.B uulookup
program is used to parse the
.B uuhost
index file or the
.I PATHALIAS
database.
.IP "\fBuulookup\fR -h \fIhostname\fR"
looks up information for the host
.I hostname
in the
.B uuhost
database, and presents the found
.I hostname ,
map-file name, and line number in the map to standard output.
.IP "\fBuulookup\fR -m \fImachine\fR"
looks up information for the machine
.I machine
in the
.I PATHALIAS
database, and presents the shortest path to that host.
.SH DIAGNOSTICS
Many, and (hopefully) self-explanatory.
.SH FILES
.IP "\fI__UUHOSTINDEX__\fR"
This is the main index file for
.B uuhost.
It contains lines of text, with three fields each. The first field is the
name of a host as in
.I logixwi
followed by a tab character. The second field contains the relative pathname
of the map file
.I u.deu.2
in which this host is described. The file name does not have a
.I .Z
tacked on to it, even if the maps are in compressed form (this saves 24KB on our file system :-). The third field is the relative line number in the map file
where the description of the host begins. The
.B uuhost
index file must be sorted alphabetically. It is parsed by the
.B uulookup
program with option
.I -h
.IP "\fI__PATHALIAS__\fR"
This is the
.I PATHALIAS
file. It is parsed by the
.B uulookup
program with option
.I -m
.IP "\fI__MAPSDIR__/u.*\fR"
This directory contains the maps. Either compressed (filenames ending in .Z)
or uncompressed.
.SH CREDITS
Written by Jan-Piet Mens <j...@Logix.DE>, based on an idea by
John Quarterman <j...@sally.utexas.edu>
.SH SEE ALSO
grep(1), sendmail(1), pathalias(1)
SHAR_EOF
chmod 0644 uuhost.N ||
echo 'restore of uuhost.N failed'
Wc_c="`wc -c < 'uuhost.N'`"
test 3060 -eq "$Wc_c" ||
echo 'uuhost.N: original size 3060, current size' "$Wc_c"
fi
# ============= uusplit.c ==============
if test -f 'uusplit.c' -a X"$1" != X"-c"; then
echo 'x - skipping uusplit.c (File already exists)'
else
echo 'x - extracting uusplit.c (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'uusplit.c' &&
/*
X * UUHOST, Copyright 1991, Jan-Piet Mens [Logix GmbH, Wiesbaden, Germany]
X * License to freely use and distribute this software is hereby granted
X * by the author, subject to the condition that this copyright notice
X * remains intact. The author retains the exclusive right to publish
X * derivative works based on this work, including, but not limited
X * to, revised versions of this work.
X *
X * $Id: uusplit.c,v 2.1 1991/10/19 14:27:49 jpm Exp jpm $
X *
X * $Log: uusplit.c,v $
X * Revision 2.1 1991/10/19 14:27:49 jpm
X * *** empty log message ***
X *
X *
X */
#include <stdio.h>
X
char *progname;
void usage();
X
#ifndef lint
X static char rcs_id[] = "@(#)$Id: uusplit.c,v 2.1 1991/10/19 14:27:49 jpm Exp jpm $";
#endif
X
main(argc, argv)
int argc;
char **argv;
{
X char buf[BUFSIZ];
X char *fname = argv[1];
X int n = strlen(fname) - 1;
X
X if (argc != 2)
X exit(fprintf(stderr,"Usage: %0 filename\n", *argv));
X
X /*
X * If filenames end in .Z, chop it off. We don't need that.
X * Just wastes space ...
X */
X
X if (fname[n] == 'Z' && fname[n - 1] == '.')
X fname[n - 1] = '\0';
X
X while (fgets(buf, BUFSIZ, stdin) != (char *)0)
X split(buf, argv[1]);
X return (0);
}
X
/*
X * `fname' is a relative path to a map: u.deu.2.
X * `bp' contains an `#N' line from the map which has a line-number
X * prepended to it by `grep' , as in
X *
X * 1245:#N logixwi, .logix.de, logix.de
X *
X * Split that line up into lines containing the host name, a filename, and
X * the line number.
X *
X * logixwi u.deu.2 1245
X * .logix.de u.deu.2 1245
X * logix.de u.deu.2 1245
X */
X
int split(bp, fname)
char *bp, *fname;
{
X char *ptr, *strtok();
X int line;
X
X if ((ptr = strtok(bp, ":")) == (char *)0)
X fprintf(stderr, "ERROR: no line number\n");
X line = atoi(ptr);
X
X ptr = strtok(NULL, " \t,;\n");
X
X while ((ptr = strtok(NULL, " \t,;\n")) != (char *)0)
X printf("%s\t%s\t%d\n", ptr, fname, line);
}
SHAR_EOF
chmod 0644 uusplit.c ||
echo 'restore of uusplit.c failed'
Wc_c="`wc -c < 'uusplit.c'`"
test 1888 -eq "$Wc_c" ||
echo 'uusplit.c: original size 1888, current size' "$Wc_c"
fi
# ============= uulookup.c ==============
if test -f 'uulookup.c' -a X"$1" != X"-c"; then
echo 'x - skipping uulookup.c (File already exists)'
else
echo 'x - extracting uulookup.c (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'uulookup.c' &&
/*
X * UUHOST, Copyright 1991, Jan-Piet Mens [Logix GmbH, Wiesbaden, Germany]
X * License to freely use and distribute this software is hereby granted
X * by the author, subject to the condition that this copyright notice
X * remains intact. The author retains the exclusive right to publish
X * derivative works based on this work, including, but not limited
X * to, revised versions of this work.
X *
X * $Id: uulookup.c,v 2.1 1991/10/19 14:25:54 jpm Exp jpm $
X *
X * $Log: uulookup.c,v $
X * Revision 2.1 1991/10/19 14:25:54 jpm
X * *** empty log message ***
X *
X *
X */
X
#include <stdio.h>
#include <ctype.h>
X
#define FALSE 0
#define TRUE 1
X
char *progname;
char *database; /* For look() */
X
#ifndef lint
X static char rcs_id[] = "@(#)$Id: uulookup.c,v 2.1 1991/10/19 14:25:54 jpm Exp jpm $";
#endif
void usage();
X
main(argc, argv)
int argc;
char **argv;
{
X char *addr = argv[1];
X char buf[BUFSIZ];
X int c, hm = FALSE, mf = FALSE;
X
X progname = argv[0];
X
X while ((c = getopt(argc, argv, "hm")) != EOF)
X switch (c)
X {
X case 'h':
X database = UUHOSTINDEX;
X hm = TRUE;
X break;
X case 'm':
X database = PATHALIAS;
X mf = TRUE;
X break;
X default:
X usage();
X }
X
X if (hm + mf != 1)
X usage();
X
X addr = argv[2];
X if (look(addr, buf) != 0)
X return (fprintf(stderr, "%s `%s' not found\n",
X hm == TRUE ? "HOST" : "Mail path to", addr));
X if (mf == TRUE)
X printf("Path to %s\n\t%s\n", addr, buf);
X else
X printf("%s %s\n", addr, buf);
X return (0);
}
X
/*
X * From "Portable C Software by Mark Horton"
X */
X
int look(key, result)
char *key, *result;
{
X long pos, middle, hi, lo;
X static long pathlength = 0;
X register char *s;
X int c, flag;
X static FILE *fp;
X
X if (!pathlength)
X {
X if ((fp = fopen(database,"r")) == (FILE *)0) {
X perror(database);
X pathlength = -1;
X }
X else {
X (void)fseek(fp, 0L, 2);
X pathlength = ftell(fp);
X }
X }
X
X if (pathlength == -1)
X return (-2); /* No database file */
X
X lo = 0;
X hi = pathlength;
X strcpy(result, key);
X strcat(result, "\t");
X
X while (1)
X {
X pos = middle = (hi + lo + 1) /2;
X fseek(fp, pos, 0); /* Find midpoint */
X if (pos) /* to begin of next line */
X while ((c = getc(fp)) != EOF && c != '\n')
X ; /* Nothing */
X
X for (flag = 0, s = result; !flag; s++) { /* Match ? */
X if (*s == '\0')
X goto solved;
X c = getc(fp);
X flag = tolower(c) - tolower(*s);
X }
X if (lo >= middle) /* Failure ? */
X return (-1);
X if (c != EOF && flag < 0) /* Close window */
X lo = middle;
X else
X hi = middle - 1;
X }
solved: /* Just copy result... */
X while ((c = getc(fp)) != EOF && c != '\n')
X *result++ = c;
X *result = '\0';
X return (0);
}
X
void usage()
{
X fprintf(stderr, "Usage: %s [-h hostname] [-m mailname]\n", progname);
X exit(1);
}
SHAR_EOF
chmod 0644 uulookup.c ||
echo 'restore of uulookup.c failed'
Wc_c="`wc -c < 'uulookup.c'`"
test 2726 -eq "$Wc_c" ||
echo 'uulookup.c: original size 2726, current size' "$Wc_c"
fi
exit 0
--
__ _____ __ __
| || _ \ | \/ | Logix GmbH j...@Logix.DE
__| || ___/ | | Moritzstrasse 50 j...@logixwi.UUCP
|_____||__| |__||__| D-6200 Wiesbaden ...!uunet!mcsun!unido!logixwi!jpm