X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bdc72a22686ac141e9bc4559a1171d017fdcb094..d80cd92ae2d648a9a11707502277e5c79f5f65b7:/src/unix/utilsunx.cpp?ds=sidebyside diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp index 2082e6bca1..2efc806bd1 100644 --- a/src/unix/utilsunx.cpp +++ b/src/unix/utilsunx.cpp @@ -41,9 +41,7 @@ #include // for O_WRONLY and friends #include // nanosleep() and/or usleep() #include // isspace() - -// JACS: needed for FD_SETSIZE -#include +#include // needed for FD_SETSIZE #ifdef HAVE_UNAME #include // for uname() @@ -97,14 +95,14 @@ void wxSleep(int nSecs) void wxUsleep(unsigned long milliseconds) { -#ifdef HAVE_NANOSLEEP +#if defined(HAVE_NANOSLEEP) timespec tmReq; - tmReq.tv_sec = milliseconds / 1000; + tmReq.tv_sec = (time_t)(milliseconds / 1000); tmReq.tv_nsec = (milliseconds % 1000) * 1000 * 1000; // we're not interested in remaining time nor in return value (void)nanosleep(&tmReq, (timespec *)NULL); -#elif defined( HAVE_USLEEP ) +#elif defined(HAVE_USLEEP) // uncomment this if you feel brave or if you are sure that your version // of Solaris has a safe usleep() function but please notice that usleep() // is known to lead to crashes in MT programs in Solaris 2.[67] and is not @@ -114,6 +112,9 @@ void wxUsleep(unsigned long milliseconds) #endif // Sun usleep(milliseconds * 1000); // usleep(3) wants microseconds +#elif defined(HAVE_SLEEP) + // under BeOS sleep() takes seconds (what about other platforms, if any?) + sleep(milliseconds * 1000); #else // !sleep function #error "usleep() or nanosleep() function required for wxUsleep" #endif // sleep function @@ -125,7 +126,7 @@ void wxUsleep(unsigned long milliseconds) int wxKill(long pid, wxSignal sig) { - return kill(pid, (int)sig); + return kill((pid_t)pid, (int)sig); } #define WXEXECUTE_NARGS 127 @@ -566,18 +567,19 @@ bool wxGetUserId(wxChar *buf, int sz) bool wxGetUserName(wxChar *buf, int sz) { struct passwd *who; - char *comma; *buf = wxT('\0'); - if ((who = getpwuid (getuid ())) != NULL) { -#ifndef __VMS__ - comma = strchr(who->pw_gecos, ','); + if ((who = getpwuid (getuid ())) != NULL) + { + // pw_gecos field in struct passwd is not standard +#if HAVE_PW_GECOS + char *comma = strchr(who->pw_gecos, ','); if (comma) *comma = '\0'; // cut off non-name comment fields wxStrncpy (buf, wxConvertMB2WX(who->pw_gecos), sz - 1); -#else +#else // !HAVE_PW_GECOS wxStrncpy (buf, wxConvertMB2WX(who->pw_name), sz - 1); -#endif +#endif // HAVE_PW_GECOS/!HAVE_PW_GECOS return TRUE; }