Hex Artifact Content
Not logged in

Artifact 33a0e46b0f889c4dd85a867beb69505598456204:

Attachment "popen.patch" to ticket [6585b6c5d9] added by anonymous 2011-01-14 14:00:02.
0000: 49 6e 64 65 78 3a 20 73 72 63 2f 70 6f 70 65 6e  Index: src/popen
0010: 2e 63 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  .c.=============
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d  ================
0050: 3d 3d 3d 3d 3d 3d 0a 2d 2d 2d 20 73 72 63 2f 70  ======.--- src/p
0060: 6f 70 65 6e 2e 63 0a 2b 2b 2b 20 73 72 63 2f 70  open.c.+++ src/p
0070: 6f 70 65 6e 2e 63 0a 40 40 20 2d 31 31 36 2c 31  open.c.@@ -116,1
0080: 32 20 2b 31 31 36 2c 31 32 20 40 40 0a 20 20 20  2 +116,12 @@.   
0090: 53 65 74 48 61 6e 64 6c 65 49 6e 66 6f 72 6d 61  SetHandleInforma
00a0: 74 69 6f 6e 28 20 68 53 74 64 69 6e 57 72 2c 20  tion( hStdinWr, 
00b0: 48 41 4e 44 4c 45 5f 46 4c 41 47 5f 49 4e 48 45  HANDLE_FLAG_INHE
00c0: 52 49 54 2c 20 46 41 4c 53 45 29 3b 0a 20 20 20  RIT, FALSE);.   
00d0: 0a 20 20 20 77 69 6e 33 32 5f 63 72 65 61 74 65  .   win32_create
00e0: 5f 63 68 69 6c 64 5f 70 72 6f 63 65 73 73 28 28  _child_process((
00f0: 63 68 61 72 2a 29 7a 43 6d 64 2c 20 0a 20 20 20  char*)zCmd, .   
0100: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0110: 20 20 20 20 20 20 20 20 20 20 20 68 53 74 64 69             hStdi
0120: 6e 52 64 2c 20 68 53 74 64 6f 75 74 57 72 2c 20  nRd, hStdoutWr, 
0130: 68 53 74 64 65 72 72 2c 26 63 68 69 6c 64 50 69  hStderr,&childPi
0140: 64 29 3b 0a 20 20 20 2a 70 43 68 69 6c 64 50 69  d);.   *pChildPi
0150: 64 20 3d 20 63 68 69 6c 64 50 69 64 3b 0a 2d 20  d = childPid;.- 
0160: 20 2a 70 66 64 49 6e 20 3d 20 5f 6f 70 65 6e 5f   *pfdIn = _open_
0170: 6f 73 66 68 61 6e 64 6c 65 28 28 6c 6f 6e 67 29  osfhandle((long)
0180: 68 53 74 64 6f 75 74 52 64 2c 20 30 29 3b 0a 2d  hStdoutRd, 0);.-
0190: 20 20 66 64 20 3d 20 5f 6f 70 65 6e 5f 6f 73 66    fd = _open_osf
01a0: 68 61 6e 64 6c 65 28 28 6c 6f 6e 67 29 68 53 74  handle((long)hSt
01b0: 64 69 6e 57 72 2c 20 30 29 3b 0a 2b 20 20 2a 70  dinWr, 0);.+  *p
01c0: 66 64 49 6e 20 3d 20 5f 6f 70 65 6e 5f 6f 73 66  fdIn = _open_osf
01d0: 68 61 6e 64 6c 65 28 28 69 6e 74 70 74 72 5f 74  handle((intptr_t
01e0: 29 68 53 74 64 6f 75 74 52 64 2c 20 30 29 3b 0a  )hStdoutRd, 0);.
01f0: 2b 20 20 66 64 20 3d 20 5f 6f 70 65 6e 5f 6f 73  +  fd = _open_os
0200: 66 68 61 6e 64 6c 65 28 28 69 6e 74 70 74 72 5f  fhandle((intptr_
0210: 74 29 68 53 74 64 69 6e 57 72 2c 20 30 29 3b 0a  t)hStdinWr, 0);.
0220: 20 20 20 2a 70 70 4f 75 74 20 3d 20 5f 66 64 6f     *ppOut = _fdo
0230: 70 65 6e 28 66 64 2c 20 22 77 22 29 3b 0a 20 20  pen(fd, "w");.  
0240: 20 43 6c 6f 73 65 48 61 6e 64 6c 65 28 68 53 74   CloseHandle(hSt
0250: 64 69 6e 52 64 29 3b 20 0a 20 20 20 43 6c 6f 73  dinRd); .   Clos
0260: 65 48 61 6e 64 6c 65 28 68 53 74 64 6f 75 74 57  eHandle(hStdoutW
0270: 72 29 3b 0a 20 20 20 72 65 74 75 72 6e 20 30 3b  r);.   return 0;
0280: 0a 20 23 65 6c 73 65 0a 0a                       . #else..