Fossil

Check-in [3760ac92ba]
Login

Check-in [3760ac92ba]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Move signal handling into popen.c (wrapped in #ifdef).
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | ssh-transport-changes
Files: files | file ages | folders
SHA1: 3760ac92ba43e59b0548753393aea440770b5237
User & Date: amb 2013-07-18 01:00:29.997
Context
2013-07-18
05:45
Perhaps a bit premature at this point. Need additional feedback. ... (check-in: 059f50864b user: amb tags: ssh-transport-changes)
01:00
Move signal handling into popen.c (wrapped in #ifdef). ... (check-in: 3760ac92ba user: amb tags: ssh-transport-changes)
2013-07-17
14:23
Handle missing port more gracefully. Allows for SCP style URL. ... (check-in: f15adbba0e user: amb tags: ssh-transport-changes)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/main.c.
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
    }
    fossil_print("%s: ambiguous command prefix: %s\n"
                 "%s: could be any of:%s\n"
                 "%s: use \"help\" for more information\n",
                 g.argv[0], zCmdName, g.argv[0], blob_str(&couldbe), g.argv[0]);
    fossil_exit(1);
  }
  signal(SIGPIPE,SIG_IGN);
  atexit( fossil_atexit );
  aCommand[idx].xFunc();
  fossil_exit(0);
  /*NOT_REACHED*/
  return 0;
}








<







623
624
625
626
627
628
629

630
631
632
633
634
635
636
    }
    fossil_print("%s: ambiguous command prefix: %s\n"
                 "%s: could be any of:%s\n"
                 "%s: use \"help\" for more information\n",
                 g.argv[0], zCmdName, g.argv[0], blob_str(&couldbe), g.argv[0]);
    fossil_exit(1);
  }

  atexit( fossil_atexit );
  aCommand[idx].xFunc();
  fossil_exit(0);
  /*NOT_REACHED*/
  return 0;
}

Changes to src/popen.c.
15
16
17
18
19
20
21

22
23
24
25
26
27
28
**
*******************************************************************************
**
** This file contains an implementation of a bi-directional popen().
*/
#include "config.h"
#include "popen.h"


#ifdef _WIN32
#include <windows.h>
#include <fcntl.h>
/*
** Print a fatal error and quit.
*/







>







15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
**
*******************************************************************************
**
** This file contains an implementation of a bi-directional popen().
*/
#include "config.h"
#include "popen.h"
#include <signal.h>

#ifdef _WIN32
#include <windows.h>
#include <fcntl.h>
/*
** Print a fatal error and quit.
*/
169
170
171
172
173
174
175

176
177
178
179
180
181
182
    close(pin[0]);
    close(pin[1]);
    close(pout[0]);
    close(pout[1]);
    *pChildPid = 0;
    return 1;
  }

  if( *pChildPid==0 ){
    int fd;
    int nErr = 0;
    /* This is the child process */
    close(0);
    fd = dup(pout[0]);
    if( fd!=0 ) nErr++;







>







170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
    close(pin[0]);
    close(pin[1]);
    close(pout[0]);
    close(pout[1]);
    *pChildPid = 0;
    return 1;
  }
  signal(SIGPIPE,SIG_IGN);
  if( *pChildPid==0 ){
    int fd;
    int nErr = 0;
    /* This is the child process */
    close(0);
    fd = dup(pout[0]);
    if( fd!=0 ) nErr++;