X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c2ca375c5620209d77a88d2d378bdcdedbc82e7e..f6342fb5e6524edffa219d5843536ea279bba4df:/src/common/utilscmn.cpp diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp index 0f9a147fe3..55b70aed84 100644 --- a/src/common/utilscmn.cpp +++ b/src/common/utilscmn.cpp @@ -556,24 +556,27 @@ static bool ReadAll(wxInputStream *is, wxArrayString& output) wxTextInputStream tis(*is); - bool cont = true; - while ( cont ) + for ( ;; ) { wxString line = tis.ReadLine(); + + // check for EOF before other errors as it's not really an error if ( is->Eof() ) + { + // add the last, possibly incomplete, line + if ( !line.empty() ) + output.Add(line); break; + } + // any other error is fatal if ( !*is ) - { - cont = false; - } - else - { - output.Add(line); - } + return false; + + output.Add(line); } - return cont; + return true; } #endif // wxUSE_STREAMS @@ -627,10 +630,59 @@ long wxExecute(const wxString& command, return wxDoExecuteWithCapture(command, output, &error, flags); } +// ---------------------------------------------------------------------------- +// wxApp::Yield() wrappers for backwards compatibility +// ---------------------------------------------------------------------------- + +bool wxYield() +{ + return wxTheApp && wxTheApp->Yield(); +} + +bool wxYieldIfNeeded() +{ + return wxTheApp && wxTheApp->Yield(true); +} + +// Id generation +static long wxCurrentId = 100; + +long wxNewId() +{ + // skip the part of IDs space that contains hard-coded values: + if (wxCurrentId == wxID_LOWEST) + wxCurrentId = wxID_HIGHEST + 1; + + return wxCurrentId++; +} + +long +wxGetCurrentId(void) { return wxCurrentId; } + +void +wxRegisterId (long id) +{ + if (id >= wxCurrentId) + wxCurrentId = id + 1; +} + +#endif // wxUSE_BASE + +// ============================================================================ +// GUI-only functions from now on +// ============================================================================ + +#if wxUSE_GUI + // ---------------------------------------------------------------------------- // Launch default browser // ---------------------------------------------------------------------------- +#ifdef __WXCOCOA__ +// Private method in Objective-C++ source file. +bool wxCocoaLaunchDefaultBrowser(const wxString& url, int flags); +#endif + bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) { wxUnusedVar(flags); @@ -731,6 +783,10 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) #endif // __WXDEBUG__ return true; } +#elif defined(__WXCOCOA__) + // NOTE: We need to call the real implementation from src/cocoa/utils.mm + // because the code must use Objective-C features. + return wxCocoaLaunchDefaultBrowser(url, flags); #elif defined(__WXMAC__) OSStatus err; ICInstance inst; @@ -831,50 +887,6 @@ bool wxLaunchDefaultBrowser(const wxString& urlOrig, int flags) return false; } -// ---------------------------------------------------------------------------- -// wxApp::Yield() wrappers for backwards compatibility -// ---------------------------------------------------------------------------- - -bool wxYield() -{ - return wxTheApp && wxTheApp->Yield(); -} - -bool wxYieldIfNeeded() -{ - return wxTheApp && wxTheApp->Yield(true); -} - -// Id generation -static long wxCurrentId = 100; - -long wxNewId() -{ - // skip the part of IDs space that contains hard-coded values: - if (wxCurrentId == wxID_LOWEST) - wxCurrentId = wxID_HIGHEST + 1; - - return wxCurrentId++; -} - -long -wxGetCurrentId(void) { return wxCurrentId; } - -void -wxRegisterId (long id) -{ - if (id >= wxCurrentId) - wxCurrentId = id + 1; -} - -#endif // wxUSE_BASE - -// ============================================================================ -// GUI-only functions from now on -// ============================================================================ - -#if wxUSE_GUI - // ---------------------------------------------------------------------------- // Menu accelerators related functions // ----------------------------------------------------------------------------