Jurko Gospodnetić
|
c5ab0d2e2c
|
Updated Boost Jam to execute commands directly on Windows when that is requested by setting the JAMSHELL variable to '%', the same as for Unix OSs, and not change the user's request under covers to running the command via the default shell if it is 8191 characters long or shorter. Renamed the related Boost Build core_nt_line_length.py test to core_nt_cmd_line.py and updated it with more detailed test cases.
[SVN r79097]
|
2012-06-25 23:01:59 +00:00 |
|
Jurko Gospodnetić
|
d1e0fb099a
|
Updated Boost Jam's Windows shell I/O redirection & quote character (<>|'") detection to correctly recognize an escaped escape as regular character and not a possible start for a new escape sequence. Added more related internal unit tests.
[SVN r79093]
|
2012-06-25 21:41:24 +00:00 |
|
Jurko Gospodnetić
|
3c4e61983b
|
Fixed a Boost Jam bug on Windows where it would incorrectly interpret shell I/O redirection characters <>| and quote characters "' when deciding whether a command can be executed without an external shell if the first non-whitespace character in the command is a quote character (either single or double).
[SVN r79091]
|
2012-06-25 20:38:29 +00:00 |
|
Jurko Gospodnetić
|
bc395d5f25
|
Boost Jam code cleanup - minor stylistic execnt.c module comment change.
[SVN r79085]
|
2012-06-25 15:35:47 +00:00 |
|
Jurko Gospodnetić
|
e04c4eba68
|
Boost Jam code cleanup - added support for exec*.c modules deciding that there is really no purpose in running the given 'do-nothing' command on their platform and simply telling the main build state machine to consider that command successfully executed. This is a preparation step for implementing a better 'raw command execution' criteria on Windows where attempting to execute an empty raw command would issue an error.
[SVN r79082]
|
2012-06-25 14:54:18 +00:00 |
|
Jurko Gospodnetić
|
268ad706d5
|
Made Boost Jam preserve trailing whitespace when executing its raw commands on Windows same as it does for other OSs (just the leading whitespace and trailing all-whitespace lines get trimmed). Command files used with external shells now also again get the complete action content without any whitespace trimming. This partially reverts a recent change from revision 78997 and also fixes the module_actions.py Boost Build test broken by that revision.
[SVN r79081]
|
2012-06-25 14:34:33 +00:00 |
|
Jurko Gospodnetić
|
46076765ed
|
Boost Jam code cleanup - minor stylistic execnt.c module change.
[SVN r79080]
|
2012-06-25 14:10:56 +00:00 |
|
Jurko Gospodnetić
|
97ce67e09c
|
Boost Jam code cleanup - minor stylistic execnt.c module changes.
[SVN r79079]
|
2012-06-25 14:06:35 +00:00 |
|
Jurko Gospodnetić
|
fad63f7d5a
|
Boost Jam code cleanup - added a new exec_check() exec*.c module platform specific functions and moved all command validation into them. MAXLINE macro is no longer needed globally for all platforms, and those platforms that do not have a fixed constant for their maximum command line length (e.g. Windows) may now hold that knowledge inside their exec*.c modules and not export it in any way. Windows execnt.c implementation still does some extra command-trimming that needs to be cleaned up.
[SVN r79078]
|
2012-06-25 13:42:00 +00:00 |
|
Jurko Gospodnetić
|
b45c35b956
|
Boost Jam now first tries alternate command-file names before waiting for 250ms when it fails to open its intended command-file for writing (most likely due so some anti-virus software still holding it open). This speeds up command running in such 'overly eager anti-virus software' scenarios.
[SVN r79076]
|
2012-06-25 09:39:46 +00:00 |
|
Jurko Gospodnetić
|
e413acfebb
|
Boost Jam code cleanup - extracted running command counting out of platform specific exec*.c modules and moved it to the central make1.c module. Simplified upper running command count checking since with the new '-j' command-line parameter and the PARALLELISM built-in variable value checking we now know that globs.jobs is always in the [1, MAXJOBS] range.
[SVN r79075]
|
2012-06-25 09:25:59 +00:00 |
|
Jurko Gospodnetić
|
a06d5ddb4c
|
Boost Jam code cleanup - execnt.c module no longer outputs its 'argv' related -d+4 debug output since its argv structure is just an intermediate structure contructed while preparing the final command string for passing to the CreateProcessA() Windows API. Actual final constructed command string still does get displayed as -d+4 debug output.
[SVN r79073]
|
2012-06-25 01:45:14 +00:00 |
|
Jurko Gospodnetić
|
4a96c4dd2c
|
Boost Jam code cleanup - more standardized 'default shell' implementation in both execnt.c & execunix.c modules. This removes the knowledge duplication in code about what default shell we are using as well as allows us to process default & non-default shells equally.
[SVN r79072]
|
2012-06-25 01:32:02 +00:00 |
|
Jurko Gospodnetić
|
7f30ec0101
|
Boost Jam code cleanup - updated path_tmpdir() to return a string object instead of a raw C char pointer.
[SVN r79068]
|
2012-06-25 00:41:37 +00:00 |
|
Jurko Gospodnetić
|
5fe0d49e68
|
Boost Jam code cleanup - refactored code in exec*.c module for executing child processes to reduce duplication and function size. The only externally visible change is in several debug (-d+4) messages.
[SVN r79065]
|
2012-06-24 16:10:58 +00:00 |
|
Jurko Gospodnetić
|
34e522ed74
|
Boost Jam code cleanup - extracted code making the actual CreateProcessA() call in the execnt.c module into a separate invoke_cmd() function.
[SVN r79063]
|
2012-06-24 14:57:41 +00:00 |
|
Jurko Gospodnetić
|
bd1a5eff25
|
Boost Jam code cleanup - added a new execcmd.c module to hold shared implementation between different exec*.c modules. Extracted external command process interrupt handling code into the new module.
BROKEN: execcmd.c not actually added in this revision.
[SVN r79055]
|
2012-06-24 11:59:49 +00:00 |
|
Jurko Gospodnetić
|
ee3337d46c
|
Boost Jam code cleanup - removed global exec*.c module exec_done() cleanup routines as they were either not doing anything (execnt.c) or just releasing memory that would get released automatically by the OS on the imminent process exit (execunix.c).
[SVN r79052]
|
2012-06-24 10:58:58 +00:00 |
|
Jurko Gospodnetić
|
ed1c4c1d1a
|
Boost Jam code cleanup - extracted functions for finding a free running tables command slot in execnt.c & execunix.c modules.
[SVN r79051]
|
2012-06-24 10:42:19 +00:00 |
|
Jurko Gospodnetić
|
89394668a0
|
Corrected a Boost Jam bug introduced in revision 79046 - the total running command count was not getting bumped correctly.
[SVN r79048]
|
2012-06-24 10:23:28 +00:00 |
|
Jurko Gospodnetić
|
93a71560b7
|
Boost Jam code cleanup - declared a couple of variables as const.
[SVN r79047]
|
2012-06-24 08:41:02 +00:00 |
|
Jurko Gospodnetić
|
e616b0cfea
|
Boost Jam code cleanup - execnt.c module code for registering its Ctrl-C related interrupt signal handler. Static variables no longer explicitly initialized to 0 since the compiler/loader does this for us.
BROKEN - fails to bump the total running command count.
[SVN r79046]
|
2012-06-24 01:09:18 +00:00 |
|
Jurko Gospodnetić
|
cf8af65e01
|
Boost Jam code cleanup - execnt.c module - minor stylistic changes.
[SVN r79045]
|
2012-06-24 01:02:39 +00:00 |
|
Jurko Gospodnetić
|
e8ff660750
|
Boost Jam code cleanup - execnt.c module no longer frees its temporary command file name storage buffer since it reuses the same file name for the next command run from the same running commands table slot anyway and the final command's temporary file name storage buffer will get released on program exit anyway.
[SVN r79044]
|
2012-06-24 00:41:24 +00:00 |
|
Jurko Gospodnetić
|
2d1af99dc3
|
Boost Jam code cleanup - execnt.c module no longer double-frees its running commands table slot's action & target variables when reusing the same slot for multiple commands.
[SVN r79043]
|
2012-06-24 00:18:43 +00:00 |
|
Jurko Gospodnetić
|
bf9a2a9671
|
Updated Boost Jam's execnt.c module to report correct Windows API error messages instead of incorrectly expecting them to set the global errno C library variable and printing out error messages related to this invalid/random/unrelated value.
[SVN r79042]
|
2012-06-24 00:12:41 +00:00 |
|
Jurko Gospodnetić
|
2c7252a773
|
Code cleanup in Boost Jam's execnt.c module.
[SVN r79041]
|
2012-06-24 00:09:46 +00:00 |
|
Jurko Gospodnetić
|
5206ea3f95
|
Updated the Boost.Jam exec_cmd() interface to take its command parameter as a string object instead of a raw char *.
[SVN r79007]
|
2012-06-19 12:33:49 +00:00 |
|
Jurko Gospodnetić
|
9566ef7191
|
Removed a printf() statement in Boost Jam's execnt.c module leftover by accident from a previous debugging session.
[SVN r79006]
|
2012-06-19 12:28:30 +00:00 |
|
Jurko Gospodnetić
|
2fcbd23c3e
|
Cleaned up Boost Jam's exec_cmd() interface a bit to avoid its callback definition duplication. Minor stylistic changes.
[SVN r79005]
|
2012-06-19 12:13:42 +00:00 |
|
Jurko Gospodnetić
|
35133c5ce2
|
Minor stylistic changes - renamed command parameter in string_new_trimmed() in Boost Jam's execnt.c module to source.
[SVN r79004]
|
2012-06-19 12:07:23 +00:00 |
|
Jurko Gospodnetić
|
cc90cd9341
|
Added explicit checking for too long command-line arguments for running directly using the CreateProcessA() API.
[SVN r79000]
|
2012-06-19 00:55:44 +00:00 |
|
Jurko Gospodnetić
|
d8399d398e
|
Refactoring Boost Build's execnt.c module - can_spawn() now takes a string * instead of a char * argument. Minor stylistic changes.
[SVN r78999]
|
2012-06-19 00:51:37 +00:00 |
|
Jurko Gospodnetić
|
810e1408ab
|
Refactored Boost Build's execnt.c module - commands to execute are now trimmed of all their leading and trailing spaces up front instead of 'whenever that becomes needed', removed redundant extra splitting of directly executed command strings into arguments. This fixes a bug caused by this extra splitting removing quotes around the executable (argument 0) - e.g. when executing the program 'C:\Program Files\dummy.exe' this would cause the program 'C:\Program.exe' to be executed instead if it exists.
[SVN r78997]
|
2012-06-19 00:23:18 +00:00 |
|
Jurko Gospodnetić
|
7c73b8a69e
|
Cleaned up end-user debug messages related to Boost Build's execnt.c module (-d+4).
[SVN r78996]
|
2012-06-19 00:02:25 +00:00 |
|
Jurko Gospodnetić
|
631a07d531
|
Minor stylistic changes.
[SVN r78995]
|
2012-06-18 23:56:01 +00:00 |
|
Jurko Gospodnetić
|
f8d53a5a8c
|
Minor stylistic changes.
[SVN r78994]
|
2012-06-18 23:39:12 +00:00 |
|
Jurko Gospodnetić
|
f7fb4c909c
|
Minor stylistic end-user error message update in Boost Build's execnt.c module.
[SVN r78993]
|
2012-06-18 23:31:40 +00:00 |
|
Jurko Gospodnetić
|
63949e8b19
|
Added logging the exact command-line string passed to the CreateProcessA() Windows API in Boost Build's execnt.c module.
[SVN r78992]
|
2012-06-18 23:30:58 +00:00 |
|
Jurko Gospodnetić
|
6799d690ea
|
Code cleanup in Boost Build's execnt.c module - using the CreateProcessA() API directly instead of the CreateProcess() wrapper now & made some code more localized.
[SVN r78991]
|
2012-06-18 23:28:30 +00:00 |
|
Jurko Gospodnetić
|
8e12da8dff
|
Checking whether a command can be spawned directly (as opposed to invoking it via an external shell) in Boost Build's execnt.c module now correctly skips all leading whitespace characters and not just tabs and spaces.
[SVN r78990]
|
2012-06-18 23:17:33 +00:00 |
|
Jurko Gospodnetić
|
b6d2a40a3e
|
Refactored the Boost Build execnt.c module's maxline() function to cache its result instead of calling the GetVersionEx() Windows API on every call.
[SVN r78989]
|
2012-06-18 23:12:33 +00:00 |
|
Jurko Gospodnetić
|
f4840e83a6
|
Minor stylistic changes - standardized relative type name and const modifier positions in Boost Build's execnt.c C module.
[SVN r78988]
|
2012-06-18 23:08:52 +00:00 |
|
Jurko Gospodnetić
|
ec74666771
|
Minor stylistic changes.
[SVN r78987]
|
2012-06-18 23:02:48 +00:00 |
|
Steven Watanabe
|
26703a88ab
|
Use dynamic arrays instead of linked lists. Reduces memory use about 10% overall.
[SVN r77408]
|
2012-03-19 18:17:36 +00:00 |
|
Steven Watanabe
|
70d5029905
|
Replace newstr with object. Use OBJECT * instead of char *. Fix a few bugs uncovered by the better typechecking.
[SVN r75609]
|
2011-11-22 23:04:09 +00:00 |
|
Steven Watanabe
|
e1f9c906cd
|
Fix memory leaks. Make sure that newstr and copystr are always used as needed.
[SVN r75502]
|
2011-11-16 03:00:54 +00:00 |
|
Vladimir Prus
|
c5c0853519
|
Kill 'engine/src', moving all content to 'engine'.
[SVN r68592]
|
2011-02-01 08:16:47 +00:00 |
|