platform/upstream/ninja.git
12 years agomingw: specify _WIN32_WINNT also in configure.py
Evan Martin [Fri, 27 Jul 2012 17:17:20 +0000 (10:17 -0700)]
mingw: specify _WIN32_WINNT also in configure.py

12 years agofix some mingw warnings in getopt.c
Evan Martin [Fri, 27 Jul 2012 17:15:34 +0000 (10:15 -0700)]
fix some mingw warnings in getopt.c

From a patch from Claus Klein <claus.klein@arcormail.de>.

12 years agowindows: fix printf format for process id
Evan Martin [Fri, 27 Jul 2012 17:08:06 +0000 (10:08 -0700)]
windows: fix printf format for process id

12 years agomingw: fix quoting of -DNINJA_PYTHON
Evan Martin [Fri, 27 Jul 2012 17:05:20 +0000 (10:05 -0700)]
mingw: fix quoting of -DNINJA_PYTHON

12 years agobootstrap: set _WIN32_WINNT to WinXP for mingw
Evan Martin [Fri, 27 Jul 2012 17:01:53 +0000 (10:01 -0700)]
bootstrap: set _WIN32_WINNT to WinXP for mingw

From a patch from Peter Kuemmel <syntheticpp@gmx.net>.

12 years agowrap at 80 columns
Evan Martin [Fri, 27 Jul 2012 16:53:40 +0000 (09:53 -0700)]
wrap at 80 columns

12 years agoMerge pull request #369 from maximuska/proposed/packaging-rpm
Evan Martin [Fri, 27 Jul 2012 16:45:06 +0000 (09:45 -0700)]
Merge pull request #369 from maximuska/proposed/packaging-rpm

packaging: added basic RPM building

12 years agopackaging: added basic RPM building
Maxim Kalaev [Thu, 26 Jul 2012 12:21:30 +0000 (15:21 +0300)]
packaging: added basic RPM building

12 years agoMerge pull request #368 from nico/toolpipe
Evan Martin [Wed, 25 Jul 2012 18:02:34 +0000 (11:02 -0700)]
Merge pull request #368 from nico/toolpipe

Don't print 'Entering directory' when running tools.

12 years agoDon't print 'Entering directory' when running tools.
Nico Weber [Wed, 25 Jul 2012 17:34:14 +0000 (10:34 -0700)]
Don't print 'Entering directory' when running tools.

12 years agoMerge pull request #367 from tfarina/lowercase
Evan Martin [Tue, 24 Jul 2012 06:55:22 +0000 (23:55 -0700)]
Merge pull request #367 from tfarina/lowercase

Use lowercase consistently.

12 years agoUse lowercase consistently.
Thiago Farina [Fri, 20 Jul 2012 15:19:18 +0000 (12:19 -0300)]
Use lowercase consistently.

https://github.com/martine/ninja/issues/360

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agoMerge pull request #366 from sgraham/no-noisy-cursor
Evan Martin [Fri, 20 Jul 2012 07:17:44 +0000 (00:17 -0700)]
Merge pull request #366 from sgraham/no-noisy-cursor

windows: use WriteConsoleOutput instead of printf to avoid moving cursor

12 years agowindows: use WriteConsoleOutput instead of printf to avoid moving cursor
Scott Graham [Thu, 19 Jul 2012 22:17:38 +0000 (15:17 -0700)]
windows: use WriteConsoleOutput instead of printf to avoid moving cursor

12 years agoMerge pull request #365 from maximuska/proposed/dep-file-parsing-more-specials
Evan Martin [Thu, 19 Jul 2012 18:35:37 +0000 (11:35 -0700)]
Merge pull request #365 from maximuska/proposed/dep-file-parsing-more-specials

dep file parsing: allow '@' and '=' in paths

12 years agodep file parsing: allow '@' and '=' in paths
Maxim Kalaev [Thu, 19 Jul 2012 05:49:34 +0000 (08:49 +0300)]
dep file parsing: allow '@' and '=' in paths

12 years agodisallow crlf in manifest files
Evan Martin [Wed, 18 Jul 2012 00:38:48 +0000 (17:38 -0700)]
disallow crlf in manifest files

It turns out to be trickier than expected to process these correctly.
It turns out to also be trickier than expected to give a nice error
message on encountering these.  But the behavior prior to this patch
would just be silent failures where we attempted to examine paths
that accidentally contained embedded \r.

For now, fix all regexes of the form [^...] to include \r in the
excluded block, then assert that we get a vague lexer error near the
problem.

In the future perhaps we can open manifest files in text mode on Windows
or just disallow Windows-style CRLF in the manual.

12 years agoexplain mode: show which input is more recent
Evan Martin [Tue, 17 Jul 2012 23:42:53 +0000 (16:42 -0700)]
explain mode: show which input is more recent

Patch from Scott Graham <scottmg@chromium.org>.

12 years agowindows: get correct path for ninja_syntax
Evan Martin [Tue, 17 Jul 2012 23:32:44 +0000 (16:32 -0700)]
windows: get correct path for ninja_syntax

Patch from Scott Graham <scottmg@chromium.org>.

12 years agogitignore unpacked gtest
Evan Martin [Tue, 17 Jul 2012 23:19:50 +0000 (16:19 -0700)]
gitignore unpacked gtest

Patch from Scott Graham <scottmg@chromium.org>.

12 years agosubprocess_test: make SetWithLots run on all non-Windows platforms
Evan Martin [Tue, 17 Jul 2012 16:34:10 +0000 (09:34 -0700)]
subprocess_test: make SetWithLots run on all non-Windows platforms

I think it might have been an oversight that this was marked
Linux-specific.

12 years agoninja_syntax: escape colons in paths
Evan Martin [Tue, 17 Jul 2012 20:26:11 +0000 (13:26 -0700)]
ninja_syntax: escape colons in paths

12 years agoMerge pull request #340 from sgraham/fix-win-build
Evan Martin [Tue, 17 Jul 2012 20:20:12 +0000 (13:20 -0700)]
Merge pull request #340 from sgraham/fix-win-build

fix win32 compile, fix BuildLogTest.WriteRead on 2nd run

12 years agoMerge pull request #363 from usovalx/subprocess_test_build_failure
Evan Martin [Tue, 17 Jul 2012 16:31:52 +0000 (09:31 -0700)]
Merge pull request #363 from usovalx/subprocess_test_build_failure

Add missing include of <sys/resouce.h>

12 years agofix manual to reflect reality of depfile cleaning
Evan Martin [Tue, 17 Jul 2012 15:59:55 +0000 (08:59 -0700)]
fix manual to reflect reality of depfile cleaning

Fixes issue #362.

12 years agoMerge pull request #364 from tfarina/pragma-once
Evan Martin [Tue, 17 Jul 2012 15:24:49 +0000 (08:24 -0700)]
Merge pull request #364 from tfarina/pragma-once

Remove #pragma once from our header files.

12 years agoRemove #pragma once from our header files.
Thiago Farina [Tue, 17 Jul 2012 14:35:12 +0000 (11:35 -0300)]
Remove #pragma once from our header files.

https://github.com/martine/ninja/issues/358

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agoAdd missing include of <sys/resouce.h>
Oleksandr Usov [Mon, 16 Jul 2012 13:05:53 +0000 (14:05 +0100)]
Add missing include of <sys/resouce.h>

12 years agoMerge pull request #361 from HeisSpiter/master
Evan Martin [Sun, 15 Jul 2012 00:20:30 +0000 (17:20 -0700)]
Merge pull request #361 from HeisSpiter/master

Check more efficiently for emptiness

12 years agoEfficiently check for emptiness
Pierre Schweitzer [Sat, 14 Jul 2012 15:54:17 +0000 (17:54 +0200)]
Efficiently check for emptiness

12 years agoMerge pull request #359 from tedv/old-arch
Evan Martin [Wed, 11 Jul 2012 21:40:28 +0000 (14:40 -0700)]
Merge pull request #359 from tedv/old-arch

Fix missing POLLRDHUP constant on older systems.

12 years agoClarify comment wording.
Ted Vessenes [Wed, 11 Jul 2012 15:33:45 +0000 (11:33 -0400)]
Clarify comment wording.

12 years agoFix missing POLLRDHUP constant on older systems.
Ted Vessenes [Wed, 11 Jul 2012 14:49:16 +0000 (10:49 -0400)]
Fix missing POLLRDHUP constant on older systems.

Attempting to compile with g++ 4.1.2 failed because the POLLRDHUP
constant was not defined when <poll.h> is included.

12 years agoMerge pull request #357 from tfarina/manifest-parser
Evan Martin [Mon, 9 Jul 2012 19:19:02 +0000 (12:19 -0700)]
Merge pull request #357 from tfarina/manifest-parser

Rename parsers.* to manifest_parser.*

12 years agoRename parsers.* to manifest_parser.*
Thiago Farina [Mon, 9 Jul 2012 19:09:31 +0000 (16:09 -0300)]
Rename parsers.* to manifest_parser.*

So it matches with the class name in there.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agoMerge pull request #313 from wolfp/restat_missing_input
Evan Martin [Tue, 3 Jul 2012 16:45:37 +0000 (09:45 -0700)]
Merge pull request #313 from wolfp/restat_missing_input

Do not reset restat_mtime if an input is missing

12 years agoMerge pull request #350 from maximuska/proposed/improve-dump-edge-node
Evan Martin [Fri, 29 Jun 2012 16:15:09 +0000 (09:15 -0700)]
Merge pull request #350 from maximuska/proposed/improve-dump-edge-node

Improving Edge::Dump, introducing Node::Dump

12 years agoImproving Edge::Dump, introducing Node::Dump
Maxim Kalaev [Wed, 27 Jun 2012 21:28:32 +0000 (23:28 +0200)]
Improving Edge::Dump, introducing Node::Dump

- Edge::Dump could crash if called while inputs_ is being extended
- Node::Dump prints Node attributes, in-edge and lists of out-edges
- Dump functions now accept "prefix" parameter, printed along with the object
  for easier orientation. For example, edge->Dump("Re-reading deps files").

12 years agoAdd a test for missing input files in restat rules
wolfp [Wed, 27 Jun 2012 08:29:17 +0000 (10:29 +0200)]
Add a test for missing input files in restat rules

12 years agoDo not reset restat_mtime if an input is missing (issue #295)
wolfp [Tue, 22 May 2012 11:39:40 +0000 (13:39 +0200)]
Do not reset restat_mtime if an input is missing (issue #295)

12 years agoremove unnecessary manual Close()
Scott Graham [Tue, 19 Jun 2012 21:32:39 +0000 (14:32 -0700)]
remove unnecessary manual Close()

12 years agodon't leak file handle on fail-to-upgrade case
Scott Graham [Tue, 19 Jun 2012 21:32:04 +0000 (14:32 -0700)]
don't leak file handle on fail-to-upgrade case

12 years agofix win32 compile, fix BuildLogTest.WriteRead on 2nd run
Scott Graham [Tue, 19 Jun 2012 20:15:41 +0000 (13:15 -0700)]
fix win32 compile, fix BuildLogTest.WriteRead on 2nd run

12 years agoswitch build log to print hashes as hex
Evan Martin [Tue, 19 Jun 2012 17:31:14 +0000 (10:31 -0700)]
switch build log to print hashes as hex

Nico convinced me that it's safe to do this without revving the build
log format: the old decimal values will still parse as hex (just as
different numbers) and cause a superfluous rebuild.

12 years agoadd copyright header
Evan Martin [Tue, 19 Jun 2012 16:36:42 +0000 (09:36 -0700)]
add copyright header

12 years agoadd new binaries to gitignore
Evan Martin [Tue, 19 Jun 2012 16:31:26 +0000 (09:31 -0700)]
add new binaries to gitignore

12 years agodrop support of log formats < 4
Evan Martin [Mon, 18 Jun 2012 22:47:38 +0000 (15:47 -0700)]
drop support of log formats < 4

Log format 4 was introduced in January.
There's been plenty of time to migrate.

12 years agouse PRIu64 for printing 64-bit in, %d for printing int
Evan Martin [Mon, 18 Jun 2012 22:41:28 +0000 (15:41 -0700)]
use PRIu64 for printing 64-bit in, %d for printing int

Fixes a warning.

12 years agomake canon_perftest build, add license
Evan Martin [Mon, 18 Jun 2012 22:29:23 +0000 (15:29 -0700)]
make canon_perftest build, add license

12 years agoMerge pull request #338 from syntheticpp/empty-log-file
Evan Martin [Mon, 18 Jun 2012 18:51:24 +0000 (11:51 -0700)]
Merge pull request #338 from syntheticpp/empty-log-file

no recompacting needed when log file is empty

12 years agono recompacting needed when log file is empty
Peter Kuemmel [Mon, 18 Jun 2012 11:20:31 +0000 (13:20 +0200)]
no recompacting needed when log file is empty

12 years agoMerge pull request #316 from tfarina/struct
Evan Martin [Sun, 17 Jun 2012 01:54:07 +0000 (18:54 -0700)]
Merge pull request #316 from tfarina/struct

No need to write 'struct' before type name when declaraing variables in ...

12 years agofix quoting thinko
Evan Martin [Sat, 16 Jun 2012 20:29:09 +0000 (13:29 -0700)]
fix quoting thinko

12 years agorearrange shell quoting in configure.py
Evan Martin [Sat, 16 Jun 2012 20:27:14 +0000 (13:27 -0700)]
rearrange shell quoting in configure.py

12 years agoMerge pull request #333 from jonforums/no-main-multi-defs
Evan Martin [Sat, 16 Jun 2012 17:01:45 +0000 (10:01 -0700)]
Merge pull request #333 from jonforums/no-main-multi-defs

Prevent multiple definition link error

12 years agoPrevent multiple definition link error
Jon [Sat, 16 Jun 2012 15:52:58 +0000 (11:52 -0400)]
Prevent multiple definition link error

Globbed inclusion of `src/hash_collision_bench.cc` cause link errors

12 years agoMerge pull request #331 from sgraham/add-in_newline
Evan Martin [Fri, 15 Jun 2012 22:05:57 +0000 (15:05 -0700)]
Merge pull request #331 from sgraham/add-in_newline

Add $in_newline

12 years agoMerge pull request #330 from sgraham/win32-hash-build
Evan Martin [Fri, 15 Jun 2012 22:04:25 +0000 (15:04 -0700)]
Merge pull request #330 from sgraham/win32-hash-build

fix windows build

12 years agoimprove test
Scott Graham [Fri, 15 Jun 2012 21:57:22 +0000 (14:57 -0700)]
improve test

12 years agoadd $in_newline
Scott Graham [Fri, 15 Jun 2012 21:48:43 +0000 (14:48 -0700)]
add $in_newline

12 years agofix windows build
Scott Graham [Fri, 15 Jun 2012 21:28:23 +0000 (14:28 -0700)]
fix windows build

12 years agoMerge pull request #329 from nico/hash2
Evan Martin [Fri, 15 Jun 2012 20:45:37 +0000 (13:45 -0700)]
Merge pull request #329 from nico/hash2

Only store command hashes in the build log.

12 years agoAdd a hash collision benchmark.
Nico Weber [Fri, 15 Jun 2012 16:50:06 +0000 (09:50 -0700)]
Add a hash collision benchmark.

12 years agoOnly store command hashes in the build log.
Nico Weber [Fri, 15 Jun 2012 04:52:17 +0000 (21:52 -0700)]
Only store command hashes in the build log.

.build_log load time 350ms -> 17ms, filesize 197MB -> 1.6MB on
Mac. On Windows, it's 500ms -> 20ms.

Makes the build log a lot less useful for scripts, but there could
be a tool for use cases that need log information. A prototype of
such a tool is in https://github.com/nico/ninja/commit/1b243d311

The hash function is 64bit murmurhash2. Assuming that that different
commands get the same hash only by chance, it's is very unlikely
for two different commands to hash to the same value with a 64bit
hash.

12 years agoMerge pull request #328 from nico/canonperf
Evan Martin [Fri, 15 Jun 2012 19:40:05 +0000 (12:40 -0700)]
Merge pull request #328 from nico/canonperf

add canon_perftest

12 years agoallow '(' and ')' in depfile paths
Evan Martin [Tue, 12 Jun 2012 22:11:22 +0000 (15:11 -0700)]
allow '(' and ')' in depfile paths

Fixes issue #327.

12 years agoadd a note to HACKING about how to get gtest
Evan Martin [Tue, 12 Jun 2012 21:54:34 +0000 (14:54 -0700)]
add a note to HACKING about how to get gtest

12 years agofix a typo in a test name
Evan Martin [Tue, 12 Jun 2012 21:49:40 +0000 (14:49 -0700)]
fix a typo in a test name

12 years agoMerge pull request #325 from luvit/fix-path-magic
Evan Martin [Tue, 12 Jun 2012 03:03:56 +0000 (20:03 -0700)]
Merge pull request #325 from luvit/fix-path-magic

bootstrap: fix path magic on windows

12 years agobootstrap: fix path magic on windows
Brandon Philips [Mon, 11 Jun 2012 17:19:23 +0000 (10:19 -0700)]
bootstrap: fix path magic on windows

It was reported that argv[0] doesn't get set on windows. Some research
showed that using abspath(__filename__) should accomplish this.

12 years agoMerge pull request #323 from luvit/bootstrap-from-cwd
Evan Martin [Sun, 10 Jun 2012 07:45:59 +0000 (00:45 -0700)]
Merge pull request #323 from luvit/bootstrap-from-cwd

bootstrap: chdir to bootstrap's directory

12 years agobootstrap: chdir to bootstrap's directory
Brandon Philips [Sun, 10 Jun 2012 01:38:50 +0000 (18:38 -0700)]
bootstrap: chdir to bootstrap's directory

When integrating ninja into luvit I naively tried calling:

    ./tools/ninja/bootstrap.py

This broke because bootstrap expects you to be in the ninja directory
when you call it. This patch makes it possible to run bootstrap.py like
above and have it work.

12 years agoMerge pull request #306 from nico/winunbreakconf
Evan Martin [Thu, 7 Jun 2012 23:03:01 +0000 (16:03 -0700)]
Merge pull request #306 from nico/winunbreakconf

Strip leading whitespace from commands on Windows.

12 years agoFix configure.py on windows, which does not permit a leading space.
Nico Weber [Tue, 5 Jun 2012 03:23:14 +0000 (20:23 -0700)]
Fix configure.py on windows, which does not permit a leading space.

12 years agoMerge pull request #311 from nico/cleanups
Evan Martin [Mon, 4 Jun 2012 17:16:39 +0000 (10:16 -0700)]
Merge pull request #311 from nico/cleanups

Cleanups

12 years agoadd canon_perftest
Nico Weber [Sun, 3 Jun 2012 05:58:26 +0000 (22:58 -0700)]
add canon_perftest

12 years agoMerge pull request #321 from nico/diff
Evan Martin [Sat, 2 Jun 2012 23:56:25 +0000 (16:56 -0700)]
Merge pull request #321 from nico/diff

Fix a bug that caused total_time to always be -1.

12 years agoRemove code that was never executed.
Nico Weber [Fri, 1 Jun 2012 21:00:32 +0000 (14:00 -0700)]
Remove code that was never executed.

total_time was always -1, because it computed a pointer difference,
not a time difference (should've been |*end_time - *start_time|).

12 years agoMerge pull request #320 from nico/cleanup
Evan Martin [Sat, 2 Jun 2012 17:20:09 +0000 (10:20 -0700)]
Merge pull request #320 from nico/cleanup

Remove unused variable last_update_millis_.

12 years agoMerge pull request #319 from nico/vimp
Evan Martin [Sat, 2 Jun 2012 17:18:58 +0000 (10:18 -0700)]
Merge pull request #319 from nico/vimp

Make `:set spell` only check spelling in comments. Patch from Thilo Six ...

12 years agoRemove unused variable last_update_millis_.
Nico Weber [Fri, 1 Jun 2012 20:50:39 +0000 (13:50 -0700)]
Remove unused variable last_update_millis_.

12 years agoMake `:set spell` only check spelling in comments. Patch from Thilo Six <T.Six@gmx...
Nico Weber [Fri, 1 Jun 2012 17:56:41 +0000 (10:56 -0700)]
Make `:set spell` only check spelling in comments. Patch from Thilo Six <T.Six@gmx.de>!

12 years agoMerge pull request #318 from jsternberg/master
Evan Martin [Fri, 1 Jun 2012 04:24:11 +0000 (21:24 -0700)]
Merge pull request #318 from jsternberg/master

Missing/unused header files

12 years agoMissing header file for "getenv".
Jonathan Sternberg [Thu, 31 May 2012 18:36:30 +0000 (14:36 -0400)]
Missing header file for "getenv".

12 years agoRemoving unused sys/termios.h header.
Jonathan Sternberg [Wed, 30 May 2012 13:46:20 +0000 (09:46 -0400)]
Removing unused sys/termios.h header.

12 years agoHeader guards were missing from some header files.
Jonathan Sternberg [Mon, 28 May 2012 02:09:35 +0000 (22:09 -0400)]
Header guards were missing from some header files.

12 years agoNo need to write 'struct' before type name when declaraing variables in C++.
Thiago Farina [Wed, 23 May 2012 19:17:30 +0000 (16:17 -0300)]
No need to write 'struct' before type name when declaraing variables in C++.

Signed-off-by: Thiago Farina <tfarina@chromium.org>
12 years agoMerge pull request #314 from ehird/master
Evan Martin [Wed, 23 May 2012 17:56:49 +0000 (10:56 -0700)]
Merge pull request #314 from ehird/master

Use subprocess.call for Python 2.4 compatibility

12 years agoUse subprocess.call for Python 2.4 compatibility
Elliott Hird [Wed, 23 May 2012 13:58:49 +0000 (14:58 +0100)]
Use subprocess.call for Python 2.4 compatibility

12 years agoMerge pull request #312 from nico/vimfile
Evan Martin [Tue, 15 May 2012 05:28:45 +0000 (22:28 -0700)]
Merge pull request #312 from nico/vimfile

vim syntax file: Highlight ninja comments.

12 years agovim syntax file: Highlight ninja comments.
Nico Weber [Mon, 14 May 2012 04:34:58 +0000 (21:34 -0700)]
vim syntax file: Highlight ninja comments.

12 years agoMinor spelling fixes in manual.
Nico Weber [Sun, 13 May 2012 01:27:49 +0000 (18:27 -0700)]
Minor spelling fixes in manual.

12 years agocomment fix
Nico Weber [Sun, 6 May 2012 01:18:43 +0000 (18:18 -0700)]
comment fix

12 years agoMerge pull request #310 from nico/landreader
Evan Martin [Thu, 10 May 2012 15:19:14 +0000 (08:19 -0700)]
Merge pull request #310 from nico/landreader

Speed up build log reading (0.5s on Win, 0.1s on Mac, 30ms on Linux)

12 years agoMerge pull request #309 from nico/buildlogtest
Evan Martin [Thu, 10 May 2012 15:15:15 +0000 (08:15 -0700)]
Merge pull request #309 from nico/buildlogtest

Add more tests for BuildLog.

12 years agoSwitch LineReader from fgets() to just fread().
Nico Weber [Thu, 10 May 2012 05:20:52 +0000 (22:20 -0700)]
Switch LineReader from fgets() to just fread().

fgets() needs to search for a \n in the input, and LineReader's
strstr() did the same work again. By using fread() directly, this
duplicate work can be saved.

(I tried using readline() / fgetln() for the same saving, but those
functions are not standard, and were slower than the code in this CL.)

Results from running build_log_perftest, on OS X:
Before: min 369ms  max 372ms  avg 370.4ms
After:  min 243ms  max 247ms  avg 244.8ms

On Windows:
Before: min 796ms  max 904ms  avg 858.0ms
After:  min 359ms  max 375ms  avg 371.4ms

On Linux:
Before: min 161ms  max 169ms  avg 164.8ms
Before: min 130ms  max 137ms  avg 132.6ms

12 years agoPull BuildLog line reading into its own class. No performance or behavior change.
Nico Weber [Thu, 10 May 2012 05:13:58 +0000 (22:13 -0700)]
Pull BuildLog line reading into its own class. No performance or behavior change.

12 years agoAdd a BuildLog test that checks that very long command liens don't crash.
Nico Weber [Thu, 10 May 2012 03:25:48 +0000 (20:25 -0700)]
Add a BuildLog test that checks that very long command liens don't crash.

12 years agoAdd a BuildLog test that checks duplicate version headers don't crash.
Nico Weber [Thu, 10 May 2012 03:25:07 +0000 (20:25 -0700)]
Add a BuildLog test that checks duplicate version headers don't crash.

12 years agoMerge pull request #307 from sgraham/nul-input
Evan Martin [Wed, 9 May 2012 19:48:45 +0000 (12:48 -0700)]
Merge pull request #307 from sgraham/nul-input

pass subprocesses handle to nul device rather than null handle