v15i035: Tools to create and unpack shell archives, Patch2
Rich Salz
rsalz at bbn.com
Sat Jun 4 06:12:52 AEST 1988
Submitted-by: Rich $alz <rsalz at bbn.com>
Posting-number: Volume 15, Issue 35
Archive-name: cshar/patch2
Description:
From: Bob Mitchell <kid at right.cs.washington.edu>
+Unshar doesn't properly cd to the specified directory, leaving
unpacked files in the directory it was started from.
Fix:
To aid in robustness, patches are not shipped "raw"; I apologize for
the inconvenience. Save this message and unshar it; from rn, say
"|unshar -d DIR", where DIR is your cshar source directory. Outside
of rn, say "cd DIR; unshar <thisarticle". This will create a file
called patch01, which you can then feed to the patch program.
If you don't have the patch program, make the changes by hand, or get
patch.
If patch indicates that patchlevel is the wrong version, you may need
to apply one or more previous patches, or the patch may already have
been applied. See the patchlevel.h file to find out what has or has
not been applied. In any event, don't continue with the patch.
If any patches are missing, they can be obtained from your nearest
comp.sources.unix archive.
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of shell archive."
# Contents: patch02
# Wrapped by rsalz at fig.bbn.com on Fri Jun 3 16:11:05 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'patch02' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'patch02'\"
else
echo shar: Extracting \"'patch02'\" \(1748 characters\)
sed "s/^X//" >'patch02' <<'END_OF_FILE'
Index: patchlevel.h
Prereq: 2.1
X*** /tmp/,RCSt1a26117 Fri Jun 3 16:09:09 1988
X--- patchlevel.h Fri Jun 3 16:08:46 1988
X***************
X*** 2,7 ****
X--- 2,10 ----
X ** This file records official patches. RCS records the edit log.
X **
X ** $Log: patchlevel.h,v $
X+ ** Revision 2.2 88/06/03 16:08:37 rsalz
X+ ** patch02: Fix order of chdir/mkdir commands for unshar.
X+ **
X ** Revision 2.1 88/06/03 12:16:40 rsalz
X ** patch01: Add config.x386 and config.sVr3; change "dirent.h" to <dirent.h>
X ** patch01: In Makefile, use $(DIRLIB) only in actions, not dependencies;
X***************
X*** 16,19 ****
X ** Revision 2.0 88/05/27 13:32:13 rsalz
X ** First comp.sources.unix release
X */
X! #define PATCHLEVEL 1
X--- 19,22 ----
X ** Revision 2.0 88/05/27 13:32:13 rsalz
X ** First comp.sources.unix release
X */
X! #define PATCHLEVEL 2
X*** /tmp/,RCSt1a26117 Fri Jun 3 16:09:12 1988
X--- unshar.c Fri Jun 3 16:08:48 1988
X***************
X*** 6,12 ****
X #include "shar.h"
X #ifdef RCSID
X static char RCS[] =
X! "$Header: unshar.c,v 2.1 88/06/03 11:39:33 rsalz Exp $";
X #endif /* RCSID */
X
X
X--- 6,12 ----
X #include "shar.h"
X #ifdef RCSID
X static char RCS[] =
X! "$Header: unshar.c,v 2.2 88/06/03 16:08:14 rsalz Exp $";
X #endif /* RCSID */
X
X
X***************
X*** 338,344 ****
X }
X
X /* Got directory; try to go there. Only make last component. */
X! if (chdir(p) < 0 && mkdir(p, 0777) < 0 && chdir(p) < 0)
X Quit("Cannot chdir nor mkdir desired directory");
X }
X else
X--- 338,344 ----
X }
X
X /* Got directory; try to go there. Only make last component. */
X! if (chdir(p) < 0 && (mkdir(p, 0777) < 0 || chdir(p) < 0))
X Quit("Cannot chdir nor mkdir desired directory");
X }
X else
END_OF_FILE
if test 1748 -ne `wc -c <'patch02'`; then
echo shar: \"'patch02'\" unpacked with wrong size!
fi
# end of 'patch02'
fi
echo shar: End of shell archive.
exit 0
--
Please send comp.sources.unix-related mail to rsalz at uunet.uu.net.
More information about the Comp.sources.unix
mailing list