Newsgroups: comp.sources.misc
From: Christian Schlichtherle <chris@attron.ruhr.de>
Subject:  v22i084:  XlsX - Maintain archive description files, Part02/02
Message-ID: <1991Aug31.200406.25198@sparky.IMD.Sterling.COM>
X-Md4-Signature: 15ead9067d2806f971aa3b95816ce86b
Date: Sat, 31 Aug 1991 20:04:06 GMT
Approved: kent@sparky.imd.sterling.com

Submitted-by: Christian Schlichtherle <chris@attron.ruhr.de>
Posting-number: Volume 22, Issue 84
Archive-name: XlsX/part02
Environment: SCOXENIX, ISC-UNIX

#!/bin/sh
# this is XlsX.shar.02 (part 2 of a multipart archive)
# do not concatenate these parts, unpack them in order with /bin/sh
# file XlsX.c continued
#
if touch 2>&1 | fgrep '[-amc]' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
if test ! -r shar3_seq_.tmp; then
	echo "Please unpack part 1 first!"
	exit 1
fi
(read Scheck
 if test "$Scheck" != 2; then
	echo "Please unpack part $Scheck next!"
	exit 1
 else
	exit 0
 fi
) < shar3_seq_.tmp || exit 1
echo "x - Continuing file XlsX.c"
sed 's/^X//' << 'SHAR_EOF' >> XlsX.c &&
X      case 'a':
X	 if (update || listmode	!= SIMPLE)
X	    usage();
X	 listmode = ALL;
X	 break;
X      case 'A':
X	 if (update || listmode	!= SIMPLE)
X	    usage();
X	 listmode = ALLBUTDOT;
X	 break;
X       case 'w':
X         if (update)
X           usage();
X         if ((width = atoi(optarg)) && width < 60)
X           fatal(NULL, "Illegal line width");
X         break;
X      case 't':
X         if (update || PrintNoTypes)
X            usage();
X         PrintAllTypes = 1;
X         break;
X      case 'T':
X         if (update || PrintAllTypes)
X            usage();
X         PrintNoTypes = 1;
X         break;
X      case 'd':
X         if (update || PrintNoDate)
X            usage();
X         PrintLongDate = 1;
X         break;
X      case 'D':
X	 if (update || PrintLongDate)
X	    usage();
X	 PrintNoDate = 1;
X	 break;
X      case 'o':
X	 if (update)
X	    usage();
X	 PrintOwner = 1;
X	 break;
X      case 'g':
X	 if (update)
X	    usage();
X	 PrintGroup = 1;
X	 break;
X      case 'S':
X	 if (update)
X	    usage();
X	 PrintShortSize = 1;
X	 break;
X      case 'l':
X	 multicast = optarg;
X	 break;
X      default:
X	 usage();
X      }
X#ifdef	DONT_CHEAT_ROOT
X   if (!update && listmode == SIMPLE &&	!getuid())
X      listmode = ALLBUTDOT;
X#endif
X   if (!(descfile = getenv("DESCFILE")) || !*descfile)
X     descfile = DESCFILE;
X
X   BuildPathlist(optind, &argc,	&argv);
X#ifdef	 DEBUG
X   {
X      int   i;
X
X      fputs("Pathnames to list or update:", stderr);
X      for (i = 0; i < argc; i++)
X	 fprintf(stderr,	" '%s'", argv[i]);
X      fputc('\n', stderr);
X   }
X#endif	 /* DEBUG */
X
X   if (update) {
X     signal(SIGHUP, sigcatch);
X     signal(SIGINT, sigcatch);
X     signal(SIGQUIT, sigcatch);
X     signal(SIGPIPE, sigcatch);	/* Not needed under normal circumstances */
X     signal(SIGTERM, sigcatch);
X   }
X   
X   exit(ProcessPaths(argc, argv));
X
X   return 1;
X}
SHAR_EOF
echo "File XlsX.c is complete" &&
$TOUCH -am 0830100891 XlsX.c &&
chmod 0444 XlsX.c ||
echo "restore of XlsX.c failed"
set `wc -c XlsX.c`;Wc_c=$1
if test "$Wc_c" != "24997"; then
	echo original size 24997, current size $Wc_c
fi
# ============= XrmX.SH ==============
echo "x - extracting XrmX.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > XrmX.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`${prefix}rm$suffix'..."
X
X: Extract header with variable substitutions
X$spitshell >${prefix}rm$suffix <<__SUBST__
X$startsh
X#
X# @(#) XrmX.SH 1.1.2.1 91/08/26 
X#
X# Copyright (C) 1991, Christian Schlichtherle
X# (chris@attron.ruhr.de)
X#
X# Read the COPYRIGHT* file(s) for details.
X#
X`
X#
X# Note that the *whole* script is interpreted by the shell when extracting.
X# I could circumvent this by use of some more variable definitions at the
X# header of the script, but I sacrifice the clarity in the script for some
X# speed...
X#
X# This note will self destruct when extracted! :-)
X#
X`
X
Xfor i
Xdo
X  case "\$i" in
X  -*)
X    OPTS="\$OPTS \$i"
X    ;;
X  *)
X    $rm \$OPTS "\$i" \\
X      && ${searchpath}${prefix}ls$suffix -uk "\`$dirname \$i\`" || STAT=\$?
X    ;;
X  esac
Xdone
Xexit \$STAT
X__SUBST__
SHAR_EOF
$TOUCH -am 0830100891 XrmX.SH &&
chmod 0444 XrmX.SH ||
echo "restore of XrmX.SH failed"
set `wc -c XrmX.SH`;Wc_c=$1
if test "$Wc_c" != "841"; then
	echo original size 841, current size $Wc_c
fi
# ============= config.h.SH ==============
echo "x - extracting config.h.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > config.h.SH &&
X: Load configuration
X. ./config.sh
X
Xecho "Extracting \`config.h'..."
X
X: Extract configuration header file for vls program
X$sed -e 's:^#undef:/* #undef:' >config.h <<__SUBST__
X/*
X * @(#) config.h.SH 1.1 91/08/23 
X *
X * Copyright (C) 1991, Christian Schlichtherle
X * (chris@attron.ruhr.de)
X *
X * Read the COPYRIGHT* file(s) for details.
X */
X
X/*
X * GERMAN, UK - Wether to output the date in german, UK, or USA (default)
X * format.
X */
X#$d_german	GERMAN			/* dd.mm.yy */
X#$d_uk		UK			/* mm/dd/yy */
X					/* yy/mm/dd (default) */
X					
X/*
X * ISO_CHARS - Wether you have ISO 8859 characters (also known as ISO/TC97/SC2,
X * dpANS X3.4.2 or Latin 1) or not.
X * This is currently only used in conjunction with GERMAN.
X */
X#$d_iso_chars	ISO_CHARS		/* Latin 1 alphabet */
X
X/* Default name of the description file */
X#define	DESCFILE     "$descfile"
X
X/*
X * DEBUG - Defines this if you want debugging information
X */
X#$d_debug DEBUG				/* Print debugging information? */
X
X/*
X * NOVOID - Wether your compiler defines 'void' or not.
X */
X#$d_novoid NOVOID			/* Your compiler knows 'void' */
X
X/*
X * INTSIGNAL -
X * Do you have		int	(*signal())();
X * instead of		void	(*signal())();
X */
X#$d_intsignal INTSIGNAL			/* Do you have int-signals? */
X
X/*
X * I_DIRENT, I_SYSNDIR - Wether to include <dirent.h>, <sys/ndir.h> or
X * <sys/dir.h>.
X */
X#$i_dirent 	I_DIRENT	/* Include <dirent.h> */
X#$i_sysndir	I_SYSNDIR	/* Include <sys/ndir.h> */
X
X/*
X * I_STRINGS - Include strings.h instead of string.h.
X */
X#$i_strings I_STRINGS			/* Include strings.h */
X
X/*
X * rindex - Wether to use rindex() or strrchr().
X */
X#$d_rindex strrchr	rindex		/* Use rindex */
X
X/*
X * I_SYSTIME - Wether to include <sys/time.h> or <time.h>.
X */
X#$i_systime	I_SYSTIME		/* Include <sys/time.h> */
X
X/*
X * I_SYSPWD - Wether to include <sys/pwd.h> or <pwd.h>.
X */
X#$i_syspwd	I_SYSPWD		/* Include <sys/pwd.h> */
X
X/*
X * DONT_CHEAT_ROOT -
X * Define this if you want to print the hidden files (those files beginning
X * with a dot) for root as default merely than always typing the "-A" option.
X */
X#$d_dont_cheat_root DONT_CHEAT_ROOT	/* Print hidden files for root? */
X
X/*
X * Things you normally won't change.
X */
X#define	TABLEN	     $tablen	/* Tab stops at every TABLEN character */
X#define WIDTH	     $width	/* Default width for list output */
X#define	PATHLEN      $pathlen	/* Max length of a pathname */
X#define	LINELEN	     $linelen	/* Max length of a line length */
X#define	MEMBLKSIZ    $memblksiz	/* Memory blocks have MEMBLKSIZ bytes */
X
X/*
X * U can't touch this! (blecchh... :-)
X */
X#ifdef NOVOID
X#  define void		int
X#endif
X
X#ifdef INTSIGNAL
X#  define SIGTYPE	int
X#else
X#  define SIGTYPE	void
X#endif
X__SUBST__
SHAR_EOF
$TOUCH -am 0830100891 config.h.SH &&
chmod 0444 config.h.SH ||
echo "restore of config.h.SH failed"
set `wc -c config.h.SH`;Wc_c=$1
if test "$Wc_c" != "2657"; then
	echo original size 2657, current size $Wc_c
fi
# ============= config.sh ==============
echo "x - extracting config.sh (Text)"
sed 's/^X//' << 'SHAR_EOF' > config.sh &&
Xbasename='/bin/basename'
X# Set this to '\c' if 'echo "text\c"' does not end with a newline
Xc='\c'
Xcc='cc'
X# What flags to use for compiling 'XlsX'
Xcflags='-Ms2 -i -O'
Xchgrp='/bin/chgrp'
Xchmod='/bin/chmod'
Xchown='/bin/chown'
Xcp='/bin/cp'
X# Look at config.h.SH for the next variable definitions
Xd_debug='undef'
Xd_dont_cheat_root='undef'
Xd_german='define'
Xd_intsignal='define'
Xd_iso_chars='define'
Xd_novoid='undef'
Xd_rindex='undef'
Xd_uk='undef'
X# Set this variable to 'Makefile' if you want the programs to depend on the
X# makefile (for normal operation), '' otherwise (for development).
Xdep_on_make='Makefile'
X# What is the name of the description list file?
Xdescfile='.als'
Xdirname='/bin/dirname'
X# What is the mode for the installed XlsX program?
XXlsX_mode='0711'
X# Use 'echo' if your shell-built-in echo is compatible with the echo program.
X# Use the pathname of the echo program otherwise
Xecho='echo'
Xexpr='/bin/expr'
Xfind='/bin/find'
X# Which group does 'XlsX' belong to after installation?
Xgroup='bin'
X# Look at config.h.SH in order to understand what these definitions do
Xi_dirent='undef'
Xi_sysndir='define'
Xi_syspwd='undef'
Xi_strings='undef'
Xi_systime='undef'
X# Where do the executables and shell scripts go on installation?
Xinstpath='/usr/local/bin'
X# What are the flags for your linker?
X# Note: Linkerflags are simply concatenated to the compiler flags when linking.
X# So do not respecify the compiler flags here.
Xldflags=''
X# Which libraries do we need to compile 'XlsX'?
Xlibs='-lx'
X# What is the maximum length of a line in the description file?
Xlinelen='255'
Xln='/bin/ln'
Xmake='/bin/make'
X# Which block size should be used for dynamic memory allocation?
X# Use only multiples of 512 or 1024. Constants like BUFSIZ are
X# allowed, too.
Xmemblksiz='BUFSIZ'
Xmv='/bin/mv'
X# Set this to '-n' if 'echo -n "text"' does not end with a newline
Xn=''
X# Who owns the installed programs?
Xowner='bin'
X# What is the maximum length of a pathname?
Xpathlen='255'
X# What is the prefix to the ls, cp, mv, ln and rm programs?
X# Setting this to 'a' will result in: als, acp, amv, aln and arm
X# Note: The default for prefix and suffix is set to result in:
X# als, acp, amv, aln and arm
Xprefix='a'
Xrm='/bin/rm'
X# If you want to rely on the PATH variable when the shell scripts call 'XlsX'
X# then just assign '' to the 'searchpath' variable.
X# If you always want to use the absolute pathname then assign the value of
X# 'instpath' to the 'searchpath' variable.
X# Note: If you use a pathname, it *must* end with a '/'! (unlike 'instpath')
Xsearchpath='/usr/local/bin/'
Xsed='/bin/sed'
X# What is the mode of the installed shell scripts?
Xsh_mode='0755'
X# How to determine the shell type for execution
Xsharpbang=': use'
Xsh='/bin/sh'
X# Does our shell handle # correctly?
Xshsharp='true'
X# How to copy a shell script from stdin to stdout
Xspitshell='cat'
X# How to guarantee Bourne shell startup
Xstartsh=': use /bin/sh'
Xstrip='/bin/strip'
X# What is the suffix to the ls, cp, mv, ln and rm programs?
X# Setting this to '+' will result in: ls+, cp+, mv+, ln+ and rm+
X# Note: The default for prefix and suffix is set to result in:
X# als, acp, amv, aln and arm
Xsuffix=''
X# The following is used for formatting the output of 'XlsX' and the '.XlsX'
X# files:
X# What is the tablen on most of your terminals?
X# Specify 0 if you don't want to use tabs in the output of 'XlsX'
X# or in the '.XlsX' files.
Xtablen='8'
X# If the shell-built-in test program is compatible with the test program,
X# specify 'test' here. Enter the absolute pathname of the test program
X# otherwise.
Xtest='test'
Xtmpdir='/tmp'
Xtr='/bin/tr'
X# Output of 'XlsX' will be formatted to this page width
Xwidth='79'
SHAR_EOF
$TOUCH -am 0830100891 config.sh &&
chmod 0444 config.sh ||
echo "restore of config.sh failed"
set `wc -c config.sh`;Wc_c=$1
if test "$Wc_c" != "3636"; then
	echo original size 3636, current size $Wc_c
fi
# ============= desc.SH ==============
echo "x - extracting desc.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > desc.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`desc'..."
X
X: Extract header
X$spitshell >desc <<__SUBST__
X$startsh
X#
X# @(#) desc.SH 1.1.1.1 91/08/26 
X#
X# Copyright (C) 1991, Christian Schlichtherle
X# (chris@attron.ruhr.de)
X#
X# Read the COPYRIGHT* file(s) for details.
X#
X`
X#
X# Note that the *whole* script is interpreted by the shell when extracting.
X# I could circumvent this by use of some more variable definitions at the
X# header of the script, but I sacrifice the clarity in the script for some
X# speed...
X#
X# This note will self destruct when extracted! :-)
X#
X`
X
X: \${DESCFILE:="$descfile"}
XTMP="$tmpdir/undesc\$$"
X
X$test \$# = 0 && {
X  $echo "usage:\n\t\$0 <file> [<description>]" >&2
X  exit 1
X}
X
XDIR="\`$dirname \$1\`"
XFILE="\`$basename \$1\`"
Xshift
X
Xif $test \$# = 0; then
X  $echo $n "\$DIR/\$FILE: $c"
X  read DESC
Xelse
X  DESC=\$@
Xfi
X$test -z "\$DESC" && exit
X
Xtrap : 1 2 3 15
X$sed -e "/^\$FILE[ 	]/d" "\$DIR/\$DESCFILE" >"\$TMP" 2>/dev/null \\
X  && $echo "\$FILE\\t\$DESC" >>"\$TMP" || {
X  $rm -f "\$TMP"
X  exit 1
X}
X$cp "\$TMP" "\$DIR/\$DESCFILE" \\
X  && $searchpath${prefix}ls$suffix -Uk "\$DIR" || {
X  $echo "Leaving temporary file '\$TMP' intact" >&2
X  exit 1
X}
X$rm -f "\$TMP"
X__SUBST__
SHAR_EOF
$TOUCH -am 0830100891 desc.SH &&
chmod 0444 desc.SH ||
echo "restore of desc.SH failed"
set `wc -c desc.SH`;Wc_c=$1
if test "$Wc_c" != "1210"; then
	echo original size 1210, current size $Wc_c
fi
# ============= lang.c ==============
echo "x - extracting lang.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > lang.c &&
X/*
X * @(#) lang.c 1.1 91/08/23 
X *
X * Copyright (C) 1991, Christian Schlichtherle
X * (chris@attron.ruhr.de)
X *
X * Read the COPYRIGHT* file(s) for details.
X */
X/*
X * This module contains text messages for different languages.
X * Only the date output currently supports different languages.
X */
X
X#if !defined(lint) && !defined(library)
Xstatic char sccsid[] = "@(#) lang.c 1.1 91/08/23 ";
X#endif
X
X#include "config.h"
X#include <stdio.h>
X
X#if defined(GERMAN)
Xchar *month[] = {
X  "Jan",
X  "Feb",
X#  ifdef ISO_CHARS
X  "M\344r",
X#  else
X  "Mae",
X#  endif
X  "Apr",
X  "Mai",
X  "Jun",
X  "Jul",
X  "Aug",
X  "Sep",
X  "Okt",
X  "Nov",
X  "Dez"
X};
Xchar *usage_txt[] = {
X  "Gebrauch: %s [-a|-A] [-w<n>] [-t|-T] [-d|-D] [-ogS] [-l <Beschr.-pfad>] [<Pfadname> ...]\n",
X  "          %s -u|-U [-k] [-l <Beschr.-pfad>] [<Verzeichnis> ...]\n",
X  NULL
X};
X#else
Xchar *month[] = {
X  "Jan",
X  "Feb",
X  "Mar",
X  "Apr",
X  "May",
X  "Jun",
X  "Jul",
X  "Aug",
X  "Sep",
X  "Oct",
X  "Nov",
X  "Dec"
X};
Xchar *usage_txt[] = {
X  "usage: %s [-a|-A] [-w<n>] [-t|-T] [-d|-D] [-ogS] [-l <descfilepath>] [<pathname> ...]\n",
X  "       %s -u|-U [-k] [-l <descfilepath>] [<directory> ...]\n",
X  NULL
X};
X#endif
SHAR_EOF
$TOUCH -am 0830100891 lang.c &&
chmod 0444 lang.c ||
echo "restore of lang.c failed"
set `wc -c lang.c`;Wc_c=$1
if test "$Wc_c" != "1161"; then
	echo original size 1161, current size $Wc_c
fi
# ============= man/Makefile.SH ==============
if test ! -d 'man'; then
    echo "x - creating directory man"
    mkdir 'man'
fi
echo "x - extracting man/Makefile.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > man/Makefile.SH &&
X: Load configuration file
Xtest ! -f config.sh && {
X  ln ../config.sh . || {
X    echo "Can't find config.sh" >&2
X    exit 1
X  }
X}
X. ./config.sh
X
Xecho "Extracting \`Makefile'..."
X
X: Extract Makefile header with shell variable substitutions
Xcat >Makefile <<__SUBST__
X#
X# @(#) Makefile.SH 1.1 91/08/23 
X#
X# Copyright (C) 1991, Christian Schlichtherle
X# (chris@attron.ruhr.de)
X#
X# Read the COPYRIGHT* file(s) for details.
X#
X
X# The executables
XXLSX = ${prefix}ls$suffix
X
X# The manuals
XMAN2XLSXMAN = man2${prefix}ls$suffix.1
XXLSXMAN = ${prefix}ls$suffix.1
XXCPXMAN = ${prefix}cp$suffix.1
XXRMXMAN = ${prefix}rm$suffix.1
X
X# Some installation stuff
XBIN = $instpath
XOWNER = $owner
XGROUP = $group
X
X# Some files
XDESCFILE = $descfile
X
X# Some programs
XCHGRP = $chgrp
XCHMOD = $chmod
XCHOWN = $chown
XECHO = $echo
XSHELL = $sh
X
X# Definitions for development
XDEP_ON_MAKE = $dep_on_make
X__SUBST__
X
X: Extract the rest of the makefile with no substitutions
Xcat >>Makefile <<'__NO_SUBST__'
X
X#
X# End targets.
X#
X
Xdefault: Makefile all
X
Xall: $(XLSXMAN) $(XCPXMAN) $(XRMXMAN) desc.1 $(MAN2XLSXMAN) undesc.1
X	
X#
X# Sorry, I can't use inference rules for that, because the destination file
X# names differ from the source file names.
X#
X
X$(XLSXMAN): XlsX.SH config.sh $(DEP_ON_MAKE)
X	$(SHELL) XlsX.SH
X	
X$(XCPXMAN): XcpX.SH config.sh $(DEP_ON_MAKE)
X	$(SHELL) XcpX.SH
X	
X$(XRMXMAN): XrmX.SH config.sh $(DEP_ON_MAKE)
X	$(SHELL) XrmX.SH
X	
Xdesc.1: desc.SH config.sh $(DEP_ON_MAKE)
X	$(SHELL) desc.SH
X	
X$(MAN2XLSXMAN): man2XlsX.SH config.sh $(DEP_ON_MAKE)
X	$(SHELL) man2XlsX.SH
X	
Xundesc.1: undesc.SH config.sh $(DEP_ON_MAKE)
X	$(SHELL) undesc.SH
X	
Xinstall: $(DESCFILE)
X	@$(ECHO) "Manpage installation must be done manually"
X	
Xclean:
X
Xclobber: clean
X	rm -f $(DESCFILE) Makefile config.sh *.1
X	-$(BIN)/$(XLSX) -u
X
X#
X# End targets for the current directory.
X#
X
Xconfig.sh: ../config.sh
X	ln $? $@
X
XMakefile: Makefile.SH ../config.sh
X	$(SHELL) Makefile.SH
X	@$(ECHO) +++++ TERMINATING MAKE ON THE CURRENT DIRECTORY +++++
X	exit 1
X
X$(DESCFILE): ../MANIFEST
X	@$(ECHO) "Generating descriptions for this package - please wait..."
X	cd ..; $(BIN)/$(MAN2XLSX)
X__NO_SUBST__
SHAR_EOF
$TOUCH -am 0830101091 man/Makefile.SH &&
chmod 0444 man/Makefile.SH ||
echo "restore of man/Makefile.SH failed"
set `wc -c man/Makefile.SH`;Wc_c=$1
if test "$Wc_c" != "2113"; then
	echo original size 2113, current size $Wc_c
fi
# ============= man/TROUBLES ==============
echo "x - extracting man/TROUBLES (Text)"
sed 's/^X//' << 'SHAR_EOF' > man/TROUBLES &&
X			TROUBLESHOOTING FOR MANUAL PAGES
X			--------------------------------
X
XYou may encounter problems printing the manual pages with roff.
XThis section describes possible problems I'm aware of and how you can handle
Xthem:
X
X1) I'm using string registers within the manual pages. These registers may
X   interfere with existing macros for your roff. I've checked out the
X   registers to work fine with the systems listed in the REFERENCE file, but
X   roffs on various systems may use various registers for their macros.
X
X   If you encounter any errors printing the manual pages you may try to rename
X   the registers manually. This may, or may not solve your printing problems.
X
X   The manual pages currently use the following string registers:
X
X   REGISTER NAME	CONTENT
X   tH			title name for the manual page
X   dF			default description file name for 'XlsX'
X   pX			prefix for the name of 'XlsX'
X   sX			suffix for the name of 'XlsX'
X   lS			name of 'XlsX'
X   cP			name of 'XcpX'
X   mV			name of 'XmvX'
X   lN			name of 'XlnX'
X   rM			name of 'XrmX'
X
X   These registers are defined at the beginning of each manual page like this:
X
X   .ds <register> "<content>
X
X   You may rename the registers for each manual page individually.
X   To do so, edit the source file for the manual page (ending with the suffix
X   .SH) with 'vi' and enter the following command literally:
X
X   :%s/\<tH\>/Th/g
X
X   This example will rename the register 'tH' to 'Th'. Modify the command for
X   other register names accordingly.
X   Note: Register names must be two characters long!
SHAR_EOF
$TOUCH -am 0830101091 man/TROUBLES &&
chmod 0444 man/TROUBLES ||
echo "restore of man/TROUBLES failed"
set `wc -c man/TROUBLES`;Wc_c=$1
if test "$Wc_c" != "1551"; then
	echo original size 1551, current size $Wc_c
fi
# ============= man/XcpX.SH ==============
echo "x - extracting man/XcpX.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > man/XcpX.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`${prefix}cp$suffix.1'..."
X
X: Extract documentation header with shell variable substitutions
Xcat >${prefix}cp$suffix.1 <<__SUBST__
X.\"
X.\" @(#) XcpX.SH 1.1 91/08/23 
X.\"
X.\" Copyright (C) 1991, Christian Schlichtherle
X.\" (chris@attron.ruhr.de)
X.\"
X.\" Read the COPYRIGHT* file(s) for details.
X.\"
X.ds tH "`$echo ${prefix}cp$suffix | $tr "[a-z]" "[A-Z]"`
X.ds dF "$descfile
X.ds pX "$prefix
X.ds sX "$suffix
X.ds lS "${prefix}ls$suffix
X.ds cP "${prefix}cp$suffix
X.ds mV "${prefix}mv$suffix
X.ds lN "${prefix}ln$suffix
X.ds rM "${prefix}rm$suffix
X__SUBST__
X
X: Extract the rest of the documentation with no substitutions
Xcat >>${prefix}cp${suffix}.1 <<'__NO_SUBST__'
X.TH \*(tH 1
X.SH NAME
X\*(cP, \*(mV, \*(lN \- Copies, moves or links files with descriptions.
X.SH SYNOPSIS
X.B \*(cP
Xf1 f2
X.br
X.B \*(cP
Xf1 ... fn d
X.br
X.sp
X.B \*(mV \fP[\fP-f\fP]
Xf1 f2
X.br
X.B \*(mV \fP[\fP-f\fP]
Xf1 ... fn d
X.br
X.sp
X.B \*(lN \fP[\fP-f\fP]
Xf1 f2
X.br
X.B \*(lN \fP[\fP-f\fP]
Xf1 ... fn d
X.SH DESCRIPTION
X\fI\*(cP\fP copies a file with a description. The syntax and semantic is the same
Xas for \fIcp\fP(1).
XThe description is normally searched for in the \fB\*(dF\fP files in the source
Xand destination directories.
X.br
X.sp
XIf there is a description for the source file, it will be displayed and taken
Xfor the destination file without prompting the user.
X.br
X.sp
XIf there is no description for the source file, but a description for
Xthe destination file, the description will be displayed and the user will be
Xasked if he want s to keep that description.
X.br
X.sp
XIf there is no description for the destination file or the user does not want
Xto keep it he will be prompted for a new description.
X.br
X.sp
XFinally, if there was no description for the source file, the user will be
Xasked if he wants to use the description for the source file, too.
X.br
X.sp
XAs you can see, \fI\*(cP\fP always tries to get a description for the source
Xand destination file, too.
X.PP
X\fI\*(mV\fP and \fI\*(lN\fP have the same syntax and semantic as \fImv\fP(1)
Xand \fIln\fP(1) respectively.
XTheir behaviour is like that of \fI\*(cP\fP.
X.SH NOTES
XYou cannot move directories with \fI\*(mV\fP.
X.PP
X\fI\*(cP\fP is just a shell script that executes the program which
Xis contained in its own name between the prefix '\*(pX' and the suffix '\*(sX'.
XThis is the reason why \fI\*(mV\fP and \fI\*(lN\fP are just links to
X\fI\*(cP\fP. The shell script executes \fIcp\fP(1), \fImv\fP(1) and
X\fIln\fP(1) respectively.
XAny options to the executed programs (such as \fB-f\fP) are skipped.
XSo if you have another program that could use the description
Xinterrogation algorithm, you may link it to \fI\*(cP\fP (do not
Xforget the prefix and suffix).
X.PP
XYou may overwrite the default description file name \fB\*(dF\fP by setting the
Xenvironment variable \fBDESCFILE\fP to the filename you want to use
Xinstead.
X.SH FILES
X\&\*(dF	Description file for the current directory
X.SH SEE ALSO
X\*(lS(1), \*(rM(1), desc(1), undesc(1), man2\*(lS(1)
X.SH AUTHOR
XChristian Schlichtherle
X__NO_SUBST__
SHAR_EOF
$TOUCH -am 0830101091 man/XcpX.SH &&
chmod 0444 man/XcpX.SH ||
echo "restore of man/XcpX.SH failed"
set `wc -c man/XcpX.SH`;Wc_c=$1
if test "$Wc_c" != "3070"; then
	echo original size 3070, current size $Wc_c
fi
# ============= man/XlsX.SH ==============
echo "x - extracting man/XlsX.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > man/XlsX.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`${prefix}ls$suffix.1'..."
X
X: Extract documentation header with shell variable substitutions
Xcat >${prefix}ls$suffix.1 <<__SUBST__
X.\"
X.\" @(#) XlsX.SH 1.1 91/08/23 
X.\"
X.\" Copyright (C) 1991, Christian Schlichtherle
X.\" (chris@attron.ruhr.de)
X.\"
X.\" Read the COPYRIGHT* file(s) for details.
X.\"
X.ds tH "`$echo ${prefix}ls$suffix | $tr "[a-z]" "[A-Z]"`
X.ds dF "$descfile
X.ds pX "$prefix
X.ds sX "$suffix
X.ds lS "${prefix}ls$suffix
X.ds cP "${prefix}cp$suffix
X.ds mV "${prefix}mv$suffix
X.ds lN "${prefix}ln$suffix
X.ds rM "${prefix}rm$suffix
X__SUBST__
X
X: Extract the rest of the documentation with no substitutions
Xcat >>${prefix}ls${suffix}.1 <<'__NO_SUBST__'
X.TH \*(tH 1
X.SH NAME
X\*(lS \- Prints documented listings.
X.SH SYNOPSIS
X.B \*(lS \fP[\fP\-a\fP|\fP\-A\fP] [\fP\-w\fP linewidth] [\fP-t\fP|\fP-T\fP]
X.B \fP[\fP-d\fP|\fP-D\fP] [\fP\-ogS\fP] [\fP\-l\fP descfilepath]
X[pathname ...]
X.br
X.B \*(lS \-u\fP|\fP\-U \fP[\fP\-k\fP] "[\fP\-l \fPdescfilepath]"
X[directory ...]
X.br
X.SH DESCRIPTION
X\fI\*(lS\fP prints a documented listing on standard output.
XThe output is formatted like this:
XBy default, the first field contains the mode of the file, the second field
Xcontains the size in bytes, the third field contains the date in american
Xnotation (\fIyy\fP/\fImm\fP/\fIdd\fP) and the fourth field contains the
Xfilename.
XThe rest of the line contains the description for the file.
XThe lines are sorted in increasing ASCII collating sequence (like \fIls\fP(1)).
XThe description for the files is held in the file \fB\*(dF\fP in the directory
Xwhere the files reside.
X.br
X.sp
XThe mode of the file is indicated by a single character.
XIt's meaning is:
X.TP
X.B P
XNamed pipe special.
X.TP
X.B C
XCharacter special.
X.TP
X.B D
XDirectory
X.TP
X.B N
XName special file.
X.TP
X.B B
XBlock special file.
X.TP
X.B X
XExecutable file.
X.PP
XThe description file is formatted as follows:
X.br
XThe first field contains the filename and the rest of the line contains the
Xdescription for the file.
XThe lines are sorted in increasing ASCII collating sequence.
X.br
X.sp
XOptions:
X.TP
X.B \-a
XLists all valid entries found in the directory (including current directory
Xand parent directory).
X.TP
X.B \-A
XLists filenames beginning with a period for non superusers, too.
X.TP
X.B \-w \fPlinewidth
XSets the width of an output line. Lines longer than this value are folded.
XA minimum of 60 is required. Use 0 if you do not want folded lines at all.
XThe default value is 79.
X.TP
X.B \-t
XPrints all file types. Even regular files are indicated through a \fB-\fP.
XIn normal operation, the mode of a regular file is indicated through a blank.
X.TP
X.B \-T
XPrints no file type at all.
X.TP
X.B \-d
XPrints the date of last modification of the file in long format.
XThe date is formatted like the ls(1) date output.
X.TP
X.B \-D
XPrints no date at all.
X.TP
X.B \-o
XPrints the owner of the file, too.
X.TP
X.B \-g
XPrints the group of the file, too.
X.TP
X.B \-S
XPrints the size of the file in kilobytes.
X.TP
X.B \-l \fPdescfilepath
XOverrides the default filename of the description  file \fB\*(dF\fP.
XYou can use any valid pathname.
X.PP
XThe second form of the command updates the \fB\*(dF\fP file.
XThe lines are sorted, descriptions for nonexistent files are thrown away and
Xthe output is formatted.
XPrior to each update, the modification time of the directory is compared with
Xthe modification time of the \fB\*(dF\fP file before.
XUpdates are only made if the \fB\*(dF\fP file is older than the directory.
XYou can alter this behaviour using the \fB\-U\fP option instead.
XWith this option, an update is always made.
X.br
X.sp
XOptions:
X.TP
X.B \-k
XKeeps the description file if it is empty after updating.
XNormally the file is removed if it is empty after updating.
X.TP
X.B \-l \fPdescfilepath
XOverwrites the default filename of the description file \fB\*(dF\fP.
XYou can use any valid pathname.
X.SH NOTES
XYou may overwrite the default description file name \fB\*(dF\fP by setting the
Xenvironment variable \fBDESCFILE\fP to the filename you want to use
Xinstead.
X.SH BUGS
XI'm very sorry for this, but there are the following bugs:
X.PP
X\fI\*(lS\fP will not handle descriptions for files in other directories in the
Xdescription file correctly.
XDo not use this feature of \fI\*(lS\fP.
XEspecially do not update these files with \fI\*(lS\fP.
XIf you have a file which contains descriptions for files in other directories,
Xuse \fIman2\*(lS\fP(1) instead to convert it into \fB\*(dF\fP files in each
Xdirectory.
X.SH FILES
X\&\*(dF	Description file for the current directory
X.SH SEE ALSO
X\*(cP(1), \*(rM(1), desc(1), undesc(1), man2\*(lS(1)
X.SH AUTHOR
XChristian Schlichtherle
X__NO_SUBST__
SHAR_EOF
$TOUCH -am 0830101091 man/XlsX.SH &&
chmod 0444 man/XlsX.SH ||
echo "restore of man/XlsX.SH failed"
set `wc -c man/XlsX.SH`;Wc_c=$1
if test "$Wc_c" != "4654"; then
	echo original size 4654, current size $Wc_c
fi
# ============= man/XrmX.SH ==============
echo "x - extracting man/XrmX.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > man/XrmX.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`${prefix}rm$suffix.1'..."
X
X: Extract documentation header with shell variable substitutions
Xcat >${prefix}rm$suffix.1 <<__SUBST__
X.\"
X.\" @(#) XrmX.SH 1.1 91/08/23 
X.\"
X.\" Copyright (C) 1991, Christian Schlichtherle
X.\" (chris@attron.ruhr.de)
X.\"
X.\" Read the COPYRIGHT* file(s) for details.
X.\"
X.ds tH "`$echo ${prefix}rm$suffix | $tr "[a-z]" "[A-Z]"`
X.ds dF "$descfile
X.ds pX "$prefix
X.ds sX "$suffix
X.ds lS "${prefix}ls$suffix
X.ds cP "${prefix}cp$suffix
X.ds mV "${prefix}mv$suffix
X.ds lN "${prefix}ln$suffix
X.ds rM "${prefix}rm$suffix
X__SUBST__
X
X: Extract the rest of the documentation with no substitutions
Xcat >>${prefix}rm${suffix}.1 <<'__NO_SUBST__'
X.TH \*(tH 1
X.SH NAME
X\*(rM \- Removes files with descriptions.
X.SH SYNTAX
X.B \*(rM \fP[\fP\-fir\fP] file ...
X.SH DESCRIPTION
X\fI\*(rM\fP removes a file and updates the description file \fB\*(dF\fP.
XThe usage is the same as that of \fIrm\fP(1) which it uses in fact.
X.SH NOTES
XYou may overwrite the default description file name \fB\*(dF\fP by setting the
Xenvironment variable \fBDESCFILE\fP to the filename you want to use
Xinstead.
X.SH FILES
X\&\*(dF	Description file for the current directory
X.SH SEE ALSO
X\*(lS(1), \*(cP(1), desc(1), undesc(1), man2\*(lS(1)
X.SH AUTHOR
XChristian Schlichtherle
X__NO_SUBST__
SHAR_EOF
$TOUCH -am 0830101091 man/XrmX.SH &&
chmod 0444 man/XrmX.SH ||
echo "restore of man/XrmX.SH failed"
set `wc -c man/XrmX.SH`;Wc_c=$1
if test "$Wc_c" != "1325"; then
	echo original size 1325, current size $Wc_c
fi
# ============= man/desc.SH ==============
echo "x - extracting man/desc.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > man/desc.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`desc.1'..."
X
X: Extract documentation header with shell variable substitutions
Xcat >desc.1 <<__SUBST__
X.\"
X.\" @(#) desc.SH 1.1 91/08/23 
X.\"
X.\" Copyright (C) 1991, Christian Schlichtherle
X.\" (chris@attron.ruhr.de)
X.\"
X.\" Read the COPYRIGHT* file(s) for details.
X.\"
X.ds tH "DESC
X.ds dF "$descfile
X.ds pX "$prefix
X.ds sX "$suffix
X.ds lS "${prefix}ls$suffix
X.ds cP "${prefix}cp$suffix
X.ds mV "${prefix}mv$suffix
X.ds lN "${prefix}ln$suffix
X.ds rM "${prefix}rm$suffix
X__SUBST__
X
X: Extract the rest of the documentation with no substitutions
Xcat >>desc.1 <<'__NO_SUBST__'
X.TH \*(tH 1
X.SH NAME
Xdesc \- Registers descriptions for files.
X.SH SYNOPSIS
X.B desc
Xpathname [description]
X.SH DESCRIPTION
X\fIdesc\fP updates or generates a description for the given pathname.
XIf there is no description given on the command line, you will be prompted
Xfor a description.
XIf the description is empty, the existing description for that file will not
Xbe altered.
X.br
XAn empty description is generated by doing a
X.br
Xdesc \fIpathname\fP ""
X.br
Xor
X.br
Xdesc \fIpathname\fP
X.br
Xand then just typing \fBRETURN\fP on the input.
X.SH NOTES
XYou may overwrite the default description file name \fB\*(dF\fP by setting the
Xenvironment variable \fBDESCFILE\fP to the filename you want to use
Xinstead.
X.SH FILES
X\&\*(dF	Description file for the current directory
X.SH SEE ALSO
X\*(lS(1), \*(cP(1), \*(rM(1), undesc(1), man2\*(lS(1)
X.SH AUTHOR
XChristian Schlichtherle
X__NO_SUBST__
SHAR_EOF
$TOUCH -am 0830101091 man/desc.SH &&
chmod 0444 man/desc.SH ||
echo "restore of man/desc.SH failed"
set `wc -c man/desc.SH`;Wc_c=$1
if test "$Wc_c" != "1507"; then
	echo original size 1507, current size $Wc_c
fi
# ============= man/man2XlsX.SH ==============
echo "x - extracting man/man2XlsX.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > man/man2XlsX.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`man2${prefix}ls$suffix.1'..."
X
X: Extract documentation header with shell variable substitutions
Xcat >man2${prefix}ls$suffix.1 <<__SUBST__
X.\"
X.\" @(#) man2XlsX.SH 1.1 91/08/23 
X.\"
X.\" Copyright (C) 1991, Christian Schlichtherle
X.\" (chris@attron.ruhr.de)
X.\"
X.\" Read the COPYRIGHT* file(s) for details.
X.\"
X.ds tH "`$echo man2${prefix}ls$suffix | $tr "[a-z]" "[A-Z]"`
X.ds dF "$descfile
X.ds pX "$prefix
X.ds sX "$suffix
X.ds lS "${prefix}ls$suffix
X.ds cP "${prefix}cp$suffix
X.ds mV "${prefix}mv$suffix
X.ds lN "${prefix}ln$suffix
X.ds rM "${prefix}rm$suffix
X__SUBST__
X
X: Extract the rest of the documentation with no substitutions
Xcat >>man2${prefix}ls${suffix}.1 <<'__NO_SUBST__'
X.TH \*(tH 1
X.SH NAME
Xman2\*(lS \- Mixes MANIFEST files into \*(dF files.
X.SH SYNOPSIS
X.B man2\*(lS
X[ file ... ]
X.SH DESCRIPTION
X\fIman2\*(lS\fP takes the descriptions found in \fBfile\fP and uses them for
Xthe files in the current directory.
XIf there are no files given on the command line, the file \fBMANIFEST\fP in the
Xcurrent directory is used.
XThe files must be already formatted like a \fB\*(dF\fP file.
X.br
X.sp
XThere are many software packages that already support this program (though
Xthat's a real chance :-).
XE.g. you can use this program with Perl 4.0.
X.SH NOTES
XYou may overwrite the default description file name \fB\*(dF\fP by setting the
Xenvironment variable \fBDESCFILE\fP to the filename you want to use
Xinstead.
X.SH FILES
X.nf
X.na
X\&\*(dF		Description file for the current directory
XMANIFEST	List of files in a software package
X.ad
X.fi
X.SH SEE ALSO
X\*(lS(1), \*(cP(1), \*(rM(1), desc(1), undesc(1)
X.SH AUTHOR
XChristian Schlichtherle
X__NO_SUBST__
SHAR_EOF
$TOUCH -am 0830101091 man/man2XlsX.SH &&
chmod 0444 man/man2XlsX.SH ||
echo "restore of man/man2XlsX.SH failed"
set `wc -c man/man2XlsX.SH`;Wc_c=$1
if test "$Wc_c" != "1700"; then
	echo original size 1700, current size $Wc_c
fi
# ============= man/undesc.SH ==============
echo "x - extracting man/undesc.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > man/undesc.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`undesc.1'..."
X
X: Extract documentation header with shell variable substitutions
Xcat >undesc.1 <<__SUBST__
X.\"
X.\" @(#) undesc.SH 1.1 91/08/23 
X.\"
X.\" Copyright (C) 1991, Christian Schlichtherle
X.\" (chris@attron.ruhr.de)
X.\"
X.\" Read the COPYRIGHT* file(s) for details.
X.\"
X.ds tH "UNDESC
X.ds dF "$descfile
X.ds pX "$prefix
X.ds sX "$suffix
X.ds lS "${prefix}ls$suffix
X.ds cP "${prefix}cp$suffix
X.ds mV "${prefix}mv$suffix
X.ds lN "${prefix}ln$suffix
X.ds rM "${prefix}rm$suffix
X__SUBST__
X
X: Extract the rest of the documentation with no substitutions
Xcat >>undesc.1 <<'__NO_SUBST__'
X.TH \*(tH 1
X.SH NAME
Xundesc \- Removes descriptions for files.
X.SH SYNTAX
X.B undesc
Xpathname ...
X.SH DESCRIPTION
X\fIundesc\fP removes the descriptions for the given pathnames.
X.SH NOTES
X\fIundesc\fP removes only the description, not the file itself.
X.PP
XYou may overwrite the default description file name \fB\*(dF\fP by setting the
Xenvironment variable \fBDESCFILE\fP to the filename you want to use
Xinstead.
X.SH FILES
X\&\*(dF	Description file for the current directory
X.SH SEE ALSO
X\*(lS(1), \*(cP(1), \*(rM(1), desc(1), man2\*(lS(1)
X.SH AUTHOR
XChristian Schlichtherle
X__NO_SUBST__
SHAR_EOF
$TOUCH -am 0830101091 man/undesc.SH &&
chmod 0444 man/undesc.SH ||
echo "restore of man/undesc.SH failed"
set `wc -c man/undesc.SH`;Wc_c=$1
if test "$Wc_c" != "1224"; then
	echo original size 1224, current size $Wc_c
fi
# ============= man2XlsX.SH ==============
echo "x - extracting man2XlsX.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > man2XlsX.SH &&
X: Load configuration file
X. ./config.sh
X
Xecho "Extracting \`man2${prefix}ls$suffix'..."
X
X: Extract man2vls with shell variable substitutions
X$spitshell >man2${prefix}ls$suffix <<__SUBST__
X$startsh
X#
X# @(#) man2XlsX.SH 1.1.2.1 91/08/26 
X#
X# Copyright (C) 1991, Christian Schlichtherle
X# (chris@attron.ruhr.de)
X#
X# Read the COPYRIGHT* file(s) for details.
X#
X`
X#
X# Note that the *whole* script is interpreted by the shell when extracting.
X# I could circumvent this by use of some more variable definitions at the
X# header of the script, but I sacrifice the clarity in the script for some
X# speed...
X#
X# This note will self destruct when extracted! :-)
X#
X`
X
Xcat \${@-MANIFEST} | while read FILE DESC
Xdo
X  ${searchpath}desc "\$FILE" "\$DESC" || STAT=\$?
Xdone
Xexit \$STAT
X__SUBST__
SHAR_EOF
$TOUCH -am 0830100891 man2XlsX.SH &&
chmod 0444 man2XlsX.SH ||
echo "restore of man2XlsX.SH failed"
set `wc -c man2XlsX.SH`;Wc_c=$1
if test "$Wc_c" != "776"; then
	echo original size 776, current size $Wc_c
fi
# ============= undesc.SH ==============
echo "x - extracting undesc.SH (Text)"
sed 's/^X//' << 'SHAR_EOF' > undesc.SH &&
X: Load configuration
X. ./config.sh
X
Xecho "Extracting \`undesc'..."
X
X: Extract header
X$spitshell >undesc <<__SUBST__
X$startsh
X#
X# @(#) undesc.SH 1.1 91/08/23 
X#
X# Copyright (C) 1991, Christian Schlichtherle
X# (chris@attron.ruhr.de)
X#
X# Read the COPYRIGHT* file(s) for details.
X#
X`
X#
X# Note that the *whole* script is interpreted by the shell when extracting.
X# I could circumvent this by use of some more variable definitions at the
X# header of the script, but I sacrifice the clarity in the script for some
X# speed...
X#
X# This note will self destruct when extracted! :-)
X#
X`
X
X: \${DESCFILE:="$descfile"}
XTMP="$tmpdir/undesc\$$"
X
Xfor i
Xdo
X  DIR="\`$dirname \$i\`"
X  trap : 1 2 3 15
X  $sed -e "/^\`$basename \"\$i\"\`[ 	]/d" "\$DIR/\$DESCFILE" >"\$TMP" \\
X    && $cp "\$TMP" "\$DIR/\$DESCFILE" || STAT=\$?
X  trap 1 2 3 15
Xdone
X$rm -f "\$TMP"
Xexit \$STAT
X__SUBST__
SHAR_EOF
$TOUCH -am 0830100891 undesc.SH &&
chmod 0444 undesc.SH ||
echo "restore of undesc.SH failed"
set `wc -c undesc.SH`;Wc_c=$1
if test "$Wc_c" != "862"; then
	echo original size 862, current size $Wc_c
fi
# ============= update.sh ==============
echo "x - extracting update.sh (Text)"
sed 's/^X//' << 'SHAR_EOF' > update.sh &&
X#
X# @(#) update.sh 1.1 91/08/23 
X#
X# Copyright (C) 1991, Christian Schlichtherle
X# (chris@attron.ruhr.de)
X#
X# Read the COPYRIGHT* file(s) for details.
X#
X
X: Load configuration file
X. ./config.sh
X
X$echo "What is the old standard name for description files?"
Xread OLD
Xcase "$OLD" in
X.*)
X  break
X  ;;
X*)
X  $echo "Sorry, I can't believe that..."
X  exit 1
X  ;;
Xesac
X
X$find / -name "$OLD" -type f -print | while read FILE; do
X  DIR="`$dirname $FILE`"
X  $test -f "$DIR/$descfile" && {
X    $echo "Will not overwrite $DIR/$descfile" >&2
X    continue
X  }
X  $mv "$FILE" "$DIR/$descfile"
Xdone
SHAR_EOF
$TOUCH -am 0830100891 update.sh &&
chmod 0444 update.sh ||
echo "restore of update.sh failed"
set `wc -c update.sh`;Wc_c=$1
if test "$Wc_c" != "580"; then
	echo original size 580, current size $Wc_c
fi
rm -f shar3_seq_.tmp
echo "You have unpacked the last part"
exit 0

exit 0 # Just in case...
