Commit Graph

209 Commits

Author SHA1 Message Date
Vadim Zeitlin
9b70925d3e No changes, move wxStreamTempInputBuffer to a header file.
Get rid of the surprising src/common/execcmn.cpp which had a .cpp extension
but was supposed to be used as an included file only and move its contents to
a new private header to make using wxStreamTempInputBuffer class simpler.

See #10258.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74337 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-03 00:27:02 +00:00
Vadim Zeitlin
bfabc7f47c Extract wxPipeInputStream and wxPipeOutputStream in a header.
No real changes, just put these classes in a private header. They're still not
part of the public API but at least it will be easier to reuse them inside the
library itself in the upcoming commits.

See #10258.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74336 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-03 00:26:38 +00:00
Vadim Zeitlin
82e8b0ad6c Add missing space to fix r73681 changes.
We need a space between the command and stderr redirection to avoid the "2"
from being taken as part of the last option on the command line.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-19 15:43:32 +00:00
Vadim Zeitlin
8ea079b33e Suppress error output from Unix system information functions.
Redirect stderr to /dev/null in wxGetCommandOutput() to avoid errors from the
shell if the command we're trying to run doesn't exist.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-19 02:55:31 +00:00
Vadim Zeitlin
27e8395ed0 Fix crash in wxExecute() introduced by r73406.
Don't dereference potentially NULL wxProcess pointer.

See #14931.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73425 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-21 11:26:00 +00:00
Vadim Zeitlin
eaf4bde6e6 Add wxProcess::SetPriority() to allow setting the priority of child processes.
This uses the same conventions as wxThread::SetPriority() but works on the
entire process.

Closes #14931.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73406 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-20 02:10:12 +00:00
Vadim Zeitlin
da0ee16ef9 Use __DARWIN__ instead of __WXOSX__ in non-GUI code.
This fixes compilation of non-wxOSX ports (e.g. wxGTK) under OS X.

Also make the difference between the two symbols more clear in the
documentation.

Closes #14503.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72180 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-23 15:03:42 +00:00
Vadim Zeitlin
2415cf6725 Remove support for MetroWerks CodeWarrior compiler.
This compiler doesn't exist any more and was probably unsupported even in 2.8,
let alone 2.9, so remove all the __MWERKS__ tests to simplify things.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-05 18:40:11 +00:00
Paul Cornett
736722fb4d build fix for wxUSE_LOG==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67411 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-06 17:04:12 +00:00
Vadim Zeitlin
5a1d70f925 Restore code for closing inherited file descriptors in the child.
The code closing all file descriptors inherited from the parent in the child
process created by wxExecute() was  removed in r57324 by mistake (probably
due the fact that its meaning was poorly explained) but we still do need to do
this, of course, to avoid descriptor "leaks" (e.g. the parent couldn't really
close any of them).

Restore the code for closing all unneeded file descriptors in the child in
slightly modified form and add a comment pointing to an URL explaining how to
do it better in the future.

Closes #12636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66153 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 14:04:44 +00:00
Vadim Zeitlin
3b81609771 Fix spurious errors when writing to the child process stdin under Unix.
Since the child pipe was made non-blocking in r65993, it became possible to
write to child process without deadlocking when the pipe became full. However
this still resulted in an error from wxFileOutputStream as it didn't handle
EAGAIN returned from write() any differently than any other error, even though
it is an expected situation in this particular case.

Change Unix wxExecute() to use wxPipeOutputStream which ignores EAGAIN unlike
wxFileOutputStream to fix this.

See #12636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 14:04:37 +00:00
Vadim Zeitlin
f895c3fce2 No real changes, just reamed HAS_PIPE_INPUT_STREAM.
Renamed the symbol indicating whether pipe-based streams are available from
HAS_PIPE_INPUT_STREAM to HAS_PIPE_STREAMS as it's not really input-specific.

See #12636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66151 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-14 14:04:27 +00:00
Vadim Zeitlin
357f4c818d Fix harmless unused parameter warnings in minimal build.
No real changes, just add some wxUnusedVar() to avoid warnings about
parameters unused in some non-default build configurations.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66090 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-10 13:52:17 +00:00
Vadim Zeitlin
3fee3116dd Make write end of the child process pipe non-blocking under Unix.
We need to make at least one end of the pipe used to communicate with
wxExecute() child process non-blocking to avoid deadlocks, so unblock the
write end of the pipe. It seems to be unnecessary to unblock the reading ends
of std{out,err} pipes as we can already check for the presence of input there.
This is also consistent with wxMSW behaviour.

Closes #12636.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65993 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-02 11:57:24 +00:00
Vadim Zeitlin
164db92c14 Add support for specifying child process cwd and env to wxExecute().
Add an optional wxExecuteEnv parameter to wxExecute() which allows to specify
the initial working directory and custom environment for the child process.

Closes #12163.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-24 22:40:11 +00:00
Vadim Zeitlin
64d029f155 Fix fatal bug in ArgsArray(wchar_t**) ctor.
The input pointer was modified before being used again leading to out of bound
array access.

Closes #11979.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64098 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-22 11:20:37 +00:00
Vadim Zeitlin
34e3a8105d Return exit code as signed integer from wxExecute(wxEXEC_SYNC).
The caller expects the function to return -1 if the child process exited with
-1 error code and not 255 that was returned before. The function is also
documented as returning -1 if the execution fails which wasn't true neither.

Fix this by explicitly handling the exit code as signed.

Closes #11824.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-18 15:51:19 +00:00
Paul Cornett
e33cd7e203 build fix for wxUSE_SOCKETS==0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62209 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-30 15:38:23 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Francesco Montorsi
23790a2a29 add wxGetLinuxDistributionInfo() and wxPlatformInfo::GetLinuxDistribution() functions; also add to wxPlatformInfo the GetOperatingSystemDescription(), GetDesktopEnvironment(), GetOperatingSystemDirectory() functions to group in the same class (wxPlatformInfo) all available platform-detection functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-02 13:01:41 +00:00
Francesco Montorsi
ca5016d4dd make sure that wxProcess always have a valid PID set; add test unit for wxExecute,wxShell,wxProcess based on the code in the console sample; add some more infos/notes in wxProcess docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59784 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-23 16:23:44 +00:00
Vadim Zeitlin
c0c133e13b add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Vadim Zeitlin
d3b9f782ef don't use annoying and unneeded in C++ casts of NULL to "T *" in all other files neither
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58227 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-19 13:55:27 +00:00
Francesco Montorsi
7e86b10b7b move wxLaunch* code in utilsx11.cpp as utilsunx.cpp is not compiled for wxCore
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-09 11:55:12 +00:00
Francesco Montorsi
50a2e26fd7 Fix wxLaunchDefaultBrowser on wxMSW for local files/directories: the bug could be reproduced using "Open screenshots folder" menu item in screenshotgen application.
Move platform-specific code in platform-specific utils source files.
Perform safer URL scheme check.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-09 10:36:59 +00:00
Vadim Zeitlin
5ddfa0748f don't close all unused descriptors in the child, this seems unnecessary and breaks some (admittedly buggy) children (e.g. xboard)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-14 00:10:07 +00:00
Vadim Zeitlin
e408bf5257 add safe wxStrlcpy() function and replaced all wxStrncpy() calls by it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57023 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-29 14:41:02 +00:00
Vadim Zeitlin
82db3c3d9d compilation fixes for minimal build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-25 19:28:26 +00:00
Vadim Zeitlin
c1baf4b58b update for wxSHUTDOWN_LOGOFF/FORCE, should have been part of r54949
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54950 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-08-03 10:59:30 +00:00
Stefan Csomor
052e5ec5f3 osx regrouping
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54823 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-29 20:15:25 +00:00
Vadim Zeitlin
fae7120624 use wxCmdLineParser::ConverStringToArgs() instead of (incorrectly) duplicating it here (#9743)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54649 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-16 00:53:11 +00:00
Jouk Jansen
9b4fd94a4a Updates for VMS : new Makefiles, proper type casts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53123 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-04-11 08:35:14 +00:00
Vadim Zeitlin
d7ef641d4e fix wxExecute() compilation in ANSI build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52773 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-24 23:13:12 +00:00
Vadim Zeitlin
05718a98f9 avoid needless Unicode<->MB conversions in Unix wxExecute(); simplify the code; provide both versions taking char** and wchar_t** for compatibility; also use wxMacExecute() (renamed to wxMacLaunch() to avoid confusion) from all wxExecute() overloads but don't use it if wxEXEC_SYNC was requested as it doesn't support it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52722 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-23 02:27:23 +00:00
Vadim Zeitlin
e528a71bf1 don't use negative PID hack in GUI neither, add a separate flag to wxEndProcessData for this
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 15:37:16 +00:00
Vadim Zeitlin
dbd1c638fe no real changes, just small cleanup after last few revisions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52697 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 14:55:46 +00:00
Vadim Zeitlin
b827d64707 refactored common code from XXX_EndProcessDetect in wxGTK[12] and wxMac/wxCocoa into wxHandleProcessTermination itself; also removed code dealing with negative pids as we don't use them any more
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52696 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 14:50:44 +00:00
Vadim Zeitlin
3bbd09c34c get rid of traits functions unnecessary now that wxExecute() works in both base and GUI ports
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 14:15:28 +00:00
Vadim Zeitlin
33343395da fixed IO redirection to work in wxExecute() in console applications (including the case when the child process outputs more than pipe buffer size) by using wxSelectDispatcher for multiplexing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52692 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 14:10:54 +00:00
Vadim Zeitlin
4d425deeb2 return bool from wxStreamTempInputBuffer::Update() indicating if anything was done; don't sleep in wxExecute() if IO is coming
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52678 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 03:50:35 +00:00
Vadim Zeitlin
9d3845e884 extracted GUI-specific part of utilsunx.cpp to a new unix/apptraits.cpp file and don't include utilsunx.cpp in both base and GUI libraries now so that we can get rid of BASE_AND_GUI_UNIX_SRC in files.bkl entirely
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52676 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 03:46:04 +00:00
Vadim Zeitlin
2ecd1756e4 added wxWindowDisabler ctor for conditionally disabling all windows and use it in WaitForChild()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52671 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 03:06:57 +00:00
Vadim Zeitlin
1d043598b7 replace wxAddProcessCallback() with wxAppTraits::AddProcessCallback() to fix linking problems in Unix ports; also reduce code duplication between GUI and base versions making src/unix/baseunix.cpp unnecessary any longer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52667 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-22 00:07:13 +00:00
Vadim Zeitlin
9243700fb2 add support for asynchronous execution in wxBase (patch 1906889)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-15 16:46:38 +00:00
Václav Slavík
df405da528 fixed wxHAS_GENERIC_PROCESS_CALLBACK check to use #ifdef, not #if
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-20 19:34:58 +00:00
Václav Slavík
46c7e1a120 implemented wxExecute() for wxDFB; share the implementation with wxX11
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50834 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-19 18:52:55 +00:00
Václav Slavík
f8eb27bfc5 corrected WaitForChild comment about who sets endProcData->pid to 0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-18 12:19:22 +00:00
Vadim Zeitlin
76c39b5df1 test for __DARWIN__ with ifdef, not if
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49201 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-17 18:19:29 +00:00
David Elliott
a3261ffb75 Fix wxExecute process end detect behavior for wxCocoa and wxMac. I have no
idea why the current code used for Intel Macs doesn't work but it's not
working for me at all.  This should probably be backported to 2.8.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49155 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-14 08:51:45 +00:00