summaryrefslogtreecommitdiffstats
path: root/patches
diff options
context:
space:
mode:
Diffstat (limited to 'patches')
-rw-r--r--patches/0008-Use-gnulib-execute-module.patch81
1 files changed, 0 insertions, 81 deletions
diff --git a/patches/0008-Use-gnulib-execute-module.patch b/patches/0008-Use-gnulib-execute-module.patch
deleted file mode 100644
index 847d20a..0000000
--- a/patches/0008-Use-gnulib-execute-module.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From ff1d3a67da1e7f7af6a760ba5f0cee70763666da Mon Sep 17 00:00:00 2001
-From: Andreas Gruenbacher <agruen@gnu.org>
-Date: Fri, 6 Apr 2018 20:24:07 +0200
-Subject: [PATCH 08/17] Use gnulib execute module
-
-* bootstrap.conf (gnulib_modules): Add execute.
-* src/pch.c (do_ed_script): Switch from fork + execlp to execute.
----
- bootstrap.conf | 1 +
- m4/.gitignore | 13 +++++++++++++
- src/pch.c | 40 +++++++++++++++++++++-------------------
- 3 files changed, 35 insertions(+), 19 deletions(-)
-
-diff --git a/src/pch.c b/src/pch.c
-index 16e001a..1f14624 100644
---- a/src/pch.c
-+++ b/src/pch.c
-@@ -33,7 +33,8 @@
- # include <io.h>
- #endif
- #include <safe.h>
--#include <sys/wait.h>
-+#include <alloca.h>
-+#include "execute.h"
-
- #define INITHUNKMAX 125 /* initial dynamic allocation size */
-
-@@ -2453,6 +2454,9 @@ do_ed_script (char const *inname, char const *outname,
-
- if (! dry_run && ! skip_rest_of_patch) {
- int exclusive = *outname_needs_removal ? 0 : O_EXCL;
-+ char const **ed_argv;
-+ int stdin_dup, status;
-+
- *outname_needs_removal = true;
- if (inerrno != ENOENT)
- {
-@@ -2461,24 +2465,22 @@ do_ed_script (char const *inname, char const *outname,
- }
- fflush (stdout);
-
-- pid = fork();
-- if (pid == -1)
-- pfatal ("Can't fork");
-- else if (pid == 0)
-- {
-- dup2 (tmpfd, 0);
-- assert (outname[0] != '!' && outname[0] != '-');
-- execlp (editor_program, editor_program, "-", outname, (char *) NULL);
-- _exit (2);
-- }
-- else
-- {
-- int wstatus;
-- if (waitpid (pid, &wstatus, 0) == -1
-- || ! WIFEXITED (wstatus)
-- || WEXITSTATUS (wstatus) != 0)
-- fatal ("%s FAILED", editor_program);
-- }
-+ if ((stdin_dup = dup (0)) == -1
-+ || dup2 (tmpfd, 0) == -1)
-+ pfatal ("Failed to duplicate standard input");
-+ assert (outname[0] != '!' && outname[0] != '-');
-+ ed_argv = alloca (4 * sizeof * ed_argv);
-+ ed_argv[0] = editor_program;
-+ ed_argv[1] = "-";
-+ ed_argv[2] = outname;
-+ ed_argv[3] = (char *) NULL;
-+ status = execute (editor_program, editor_program, (char **)ed_argv,
-+ false, false, false, false, true, false, NULL);
-+ if (status)
-+ fatal ("%s FAILED", editor_program);
-+ if (dup2 (stdin_dup, 0) == -1
-+ || close (stdin_dup) == -1)
-+ pfatal ("Failed to duplicate standard input");
- }
-
- fclose (tmpfp);
---
-2.11.0
-