Thread View: comp.bugs.misc
1 messages
1 total messages
Started by Michael Greim
Tue, 21 Jun 1988 18:11
a small enhancement to PATCH
Author: Michael Greim
Date: Tue, 21 Jun 1988 18:11
Date: Tue, 21 Jun 1988 18:11
110 lines
4213 bytes
4213 bytes
Hello,
I have made a change to my copy of PATCH recently. I am posting
it as it might be interesting to other people as well.
This is *not* a bug fix, but rather an enhancement.
Reason:
I am running PATCH on a SYS3 based machine. The filesystem
allows filenames up to 14 characters long.
When I apply patches, the old file will be moved to fileExt, where
Ext is either '.orig' or a user supplied extension. If file had
a long name some file might get overwritten. PATCH uses a clever
routine to produce unique orig-file-names, but it can be confusing to
figure out later, which is the orig-file of which file.
I added an option '-B prefix' with which the user can specify
a prefix to be added to the orig-file. A sideeffect is that
you can specify '-B bak01/' and the orig-file will be put in
the (existing) directory bak01.
Context Diff:
apply the following context diff to patch 2.0.1.4, patchlevel 8
*** common.h.old Tue May 31 13:19:52 1988
--- common.h Tue May 31 13:18:06 1988
***************
*** 95,100 ****
--- 95,101 ----
EXT char rejname[128];
EXT char *origext INIT(Nullch);
+ EXT char *origprae INIT(Nullch);
EXT char TMPOUTNAME[] INIT("/tmp/patchoXXXXXX");
EXT char TMPINNAME[] INIT("/tmp/patchiXXXXXX"); /* might want /usr/tmp here */
*** patch.c.old Tue May 31 13:20:15 1988
--- patch.c Tue May 31 13:18:09 1988
***************
*** 366,371 ****
--- 366,375 ----
origext = savestr(Argv[1]);
Argc--,Argv++;
break;
+ case 'B':
+ origprae = savestr(Argv[1]);
+ Argc--,Argv++;
+ break;
case 'c':
diff_type = CONTEXT_DIFF;
break;
*** patch.man.old Tue May 31 13:23:24 1988
--- patch.man Mon May 2 11:57:13 1988
***************
*** 213,218 ****
--- 213,224 ----
causes the next argument to be interpreted as the backup extension, to be
used in place of \*(L".orig\*(R".
.TP 5
+ .B \-B
+ causes the next argument to be interpreted as a prefix to the backup file
+ name. If this argument is specified any argument from -b will be ignored.
+ This argument is an extension to Larry Wall's patch v2.0.1.4, patchlevel 8,
+ made by M. Greim (greim@sbsvax.uucp).
+ .TP 5
.B \-c
forces
.I patch
*** util.c.old Tue May 31 13:20:31 1988
--- util.c Tue May 31 13:18:11 1988
***************
*** 31,38 ****
return 0;
}
! Strcpy(bakname, to);
! Strcat(bakname, origext?origext:ORIGEXT);
if (stat(to, &filestat) >= 0) { /* output file exists */
dev_t to_device = filestat.st_dev;
ino_t to_inode = filestat.st_ino;
--- 31,43 ----
return 0;
}
! if (origprae) {
! Strcpy (bakname, origprae);
! Strcat(bakname, to);
! } else {
! Strcpy(bakname, to);
! Strcat(bakname, origext?origext:ORIGEXT);
! }
if (stat(to, &filestat) >= 0) { /* output file exists */
dev_t to_device = filestat.st_dev;
ino_t to_inode = filestat.st_ino;
Absorb, apply and enjoy,
Michael
--
+------------------------------------------------------------------------------+
| UUCP: ...!uunet!unido!sbsvax!greim | Michael T. Greim |
| or greim@sbsvax.UUCP | Universitaet des Saarlandes |
| CSNET: greim%sbsvax.uucp@Germany.CSnet| FB 10 - Informatik (Dept. of CS) |
| ARPA: greim%sbsvax.uucp@uunet.UU.NET | Bau 36, Im Stadtwald 15 |
| Phone: +49 681 302 2434 | D-6600 Saarbruecken 11, West Germany |
+------------------------------------------------------------------------------+
| # include <disclaimers/std.h> |
+------------------------------------------------------------------------------+
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads