From 656b15a40423a90ca74e3f29ea206e9bae4da5e5 Mon Sep 17 00:00:00 2001
From: Eli Zaretskii <eliz@gnu.org>
Date: Sat, 7 Mar 2009 17:30:30 +0000
Subject:  * function.c (func_shell): Don't close pipedes[1] if it is -1.   
 Fixes Savannah bug #20495.

---
 function.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

(limited to 'function.c')

diff --git a/function.c b/function.c
index 09edbad..10d3d6b 100644
--- a/function.c
+++ b/function.c
@@ -1687,8 +1687,11 @@ func_shell (char *o, char **argv, const char *funcname UNUSED)
       free (command_argv[0]);
       free (command_argv);
 
-      /* Close the write side of the pipe.  */
-      close (pipedes[1]);
+      /* Close the write side of the pipe.  We test for -1, since
+	 pipedes[1] is -1 on MS-Windows, and some versions of MS
+	 libraries barf when `close' is called with -1.  */
+      if (pipedes[1] >= 0)
+	close (pipedes[1]);
 #endif
 
       /* Set up and read from the pipe.  */
-- 
cgit v1.2.3