Index | Thread | Search

From:
joshua stein <jcs@jcs.org>
Subject:
patch: add "-V none"
To:
tech@openbsd.org
Date:
Thu, 21 Mar 2024 08:21:18 -0500

Download raw body.

Thread
This prevents patch from making backup files, like --posix but 
without changing the filename selection.

From FreeBSD


Index: usr.bin/patch/backupfile.c
===================================================================
RCS file: /cvs/src/usr.bin/patch/backupfile.c,v
retrieving revision 1.22
diff -u -p -u -p -r1.22 backupfile.c
--- usr.bin/patch/backupfile.c	12 Oct 2020 13:58:27 -0000	1.22
+++ usr.bin/patch/backupfile.c	21 Mar 2024 13:19:16 -0000
@@ -220,11 +220,11 @@ invalid_arg(const char *kind, const char
 }
 
 static const char *backup_args[] = {
-	"never", "simple", "nil", "existing", "t", "numbered", 0
+	"none", "never", "simple", "nil", "existing", "t", "numbered", 0
 };
 
 static enum backup_type backup_types[] = {
-	simple, simple, numbered_existing,
+	none, simple, simple, numbered_existing,
 	numbered_existing, numbered, numbered
 };
 
Index: usr.bin/patch/patch.1
===================================================================
RCS file: /cvs/src/usr.bin/patch/patch.1,v
retrieving revision 1.36
diff -u -p -u -p -r1.36 patch.1
--- usr.bin/patch/patch.1	31 Mar 2022 17:27:26 -0000	1.36
+++ usr.bin/patch/patch.1	21 Mar 2024 13:19:16 -0000
@@ -37,7 +37,7 @@
 .Op Fl o Ar out-file
 .Op Fl p Ar strip-count
 .Op Fl r Ar rej-name
-.Op Fl V Cm t | nil | never
+.Op Fl V Cm t | nil | never | none
 .Op Fl x Ar number
 .Op Fl z Ar backup-ext
 .Op Fl Fl posix
@@ -289,8 +289,8 @@ Forces
 .Nm
 to interpret the patch file as a unified context diff (a unidiff).
 .It Xo
-.Fl V Cm t | nil | never ,
-.Fl Fl version-control Cm t | nil | never
+.Fl V Cm t | nil | never | none ,
+.Fl Fl version-control Cm t | nil | never | none
 .Xc
 Causes the next argument to be interpreted as a method for creating
 backup file names.
@@ -321,6 +321,8 @@ Make numbered backups of files that alre
 simple backups of the others.
 .It Cm never , simple
 Always make simple backups.
+.It Cm none
+Do not make backups.
 .El
 .It Fl v , Fl Fl version
 Causes
Index: usr.bin/patch/patch.c
===================================================================
RCS file: /cvs/src/usr.bin/patch/patch.c,v
retrieving revision 1.75
diff -u -p -u -p -r1.75 patch.c
--- usr.bin/patch/patch.c	25 Oct 2023 20:05:43 -0000	1.75
+++ usr.bin/patch/patch.c	21 Mar 2024 13:19:16 -0000
@@ -109,6 +109,8 @@ static bool	remove_empty_files = false;
 /* true if -R was specified on command line.  */
 static bool	reverse_flag_specified = false;
 
+static bool	Vflag = false;
+
 /* buffer holding the name of the rejected patch file. */
 static char	rejname[PATH_MAX];
 
@@ -255,7 +257,7 @@ main(int argc, char *argv[])
 		my_exit(2);
 	}
 
-	if (backup_type == none) {
+	if (!Vflag) {
 		if ((v = getenv("PATCH_VERSION_CONTROL")) == NULL)
 			v = getenv("VERSION_CONTROL");
 		if (v != NULL || !posix)
@@ -641,6 +643,7 @@ get_some_switches(void)
 			break;
 		case 'V':
 			backup_type = get_version(optarg);
+			Vflag = true;
 			break;
 #ifdef DEBUGGING
 		case 'x':
@@ -677,8 +680,8 @@ usage(void)
 	fprintf(stderr,
 "usage: patch [-bCcEeflNnRstuv] [-B backup-prefix] [-D symbol] [-d directory]\n"
 "             [-F max-fuzz] [-i patchfile] [-o out-file] [-p strip-count]\n"
-"             [-r rej-name] [-V t | nil | never] [-x number] [-z backup-ext]\n"
-"             [--posix] [origfile [patchfile]]\n"
+"             [-r rej-name] [-V t | nil | never | none] [-x number]\n"
+"             [-z backup-ext] [--posix] [origfile [patchfile]]\n"
 "       patch <patchfile\n");
 	my_exit(2);
 }