diff --git a/bindings/java/src/jni/javasigar.c b/bindings/java/src/jni/javasigar.c index 7c767199..e1cc1267 100644 --- a/bindings/java/src/jni/javasigar.c +++ b/bindings/java/src/jni/javasigar.c @@ -1323,7 +1323,7 @@ JNIEXPORT jlongArray SIGAR_JNI(ptql_SigarProcessQuery_find) JNIEXPORT jboolean SIGAR_JNI(util_Getline_isatty) (JNIEnv *env, jclass cls) { - return isatty(fileno(stdin)) ? JNI_TRUE : JNI_FALSE; + return sigar_isatty(sigar_fileno(stdin)) ? JNI_TRUE : JNI_FALSE; } JNIEXPORT jstring SIGAR_JNI(util_Getline_getline) diff --git a/bindings/java/src/jni/win32/registrykey.cpp b/bindings/java/src/jni/win32/registrykey.cpp index 7c179bbb..9878ab54 100644 --- a/bindings/java/src/jni/win32/registrykey.cpp +++ b/bindings/java/src/jni/win32/registrykey.cpp @@ -115,7 +115,7 @@ JNIEXPORT jlong SIGAR_JNI(win32_RegistryKey_RegOpenKey) /* required under IBM/WebSphere 4.0 for certain keys */ if (lpSubkey[len] != '\0') { - copy = wcsdup(lpSubkey); + copy = _wcsdup(lpSubkey); copy[len] = '\0'; } else { @@ -143,7 +143,7 @@ JNIEXPORT jint SIGAR_JNI(win32_RegistryKey_RegQueryIntValue) LONG lErr; /* required under IBM/WebSphere 4.0 for certain keys */ if (lpValueName[len] != '\0') { - copy = wcsdup(lpValueName); + copy = _wcsdup(lpValueName); copy[len] = '\0'; } else { @@ -206,7 +206,7 @@ JNIEXPORT jstring SIGAR_JNI(win32_RegistryKey_RegQueryStringValue) LONG lErr; /* required under IBM/WebSphere 4.0 for certain keys */ if (lpValueName[len] != '\0') { - copy = wcsdup(lpValueName); + copy = _wcsdup(lpValueName); copy[len] = '\0'; } else { diff --git a/include/sigar_private.h b/include/sigar_private.h index ae1422c3..7b27e148 100644 --- a/include/sigar_private.h +++ b/include/sigar_private.h @@ -86,8 +86,11 @@ #define sigar_strdup(s) \ dmalloc_strdup(__FILE__, __LINE__, s, 0); #else -#define sigar_strdup(s) \ - strdup(s) +# ifdef WIN32 +# define sigar_strdup(s) _strdup(s) +# else +# define sigar_strdup(s) strdup(s) +# endif #endif #define SIGAR_ZERO(s) \ diff --git a/include/sigar_util.h b/include/sigar_util.h index 2a5f7136..42cadbfb 100644 --- a/include/sigar_util.h +++ b/include/sigar_util.h @@ -44,6 +44,16 @@ #define sigar_isupper(c) \ (isupper(((unsigned char)(c)))) +#ifdef WIN32 +#define sigar_fileno _fileno +#define sigar_isatty _isatty +#define sigar_write _write +#else +#define sigar_fileno fileno +#define sigar_isatty isatty +#define sigar_write write +#endif + #ifndef PROC_FS_ROOT #define PROC_FS_ROOT "/proc/" #endif diff --git a/src/os/win32/peb.c b/src/os/win32/peb.c index 61e8b39e..76ef1591 100644 --- a/src/os/win32/peb.c +++ b/src/os/win32/peb.c @@ -131,7 +131,7 @@ int sigar_parse_proc_args(sigar_t *sigar, WCHAR *buf, for (i=0; idata[procargs->number++] = strdup(arg); + procargs->data[procargs->number++] = sigar_strdup(arg); } GlobalFree(args); diff --git a/src/os/win32/win32_sigar.c b/src/os/win32/win32_sigar.c index 80d26b0f..5c17d366 100644 --- a/src/os/win32/win32_sigar.c +++ b/src/os/win32/win32_sigar.c @@ -2410,7 +2410,7 @@ sigar_net_interface_list_get(sigar_t *sigar, } if (iflist) { - iflist->data[iflist->number++] = strdup(name); + iflist->data[iflist->number++] = sigar_strdup(name); } key = netif_hash(name); diff --git a/src/sigar_getline.c b/src/sigar_getline.c index c9fdc848..0a8946bc 100644 --- a/src/sigar_getline.c +++ b/src/sigar_getline.c @@ -660,13 +660,13 @@ gl_putc(int c) CharToOemBuff((char const *)&c,&ch,1); #endif - write(1, &ch, 1); + sigar_write(1, &ch, 1); } #if defined(unix) || defined(MSDOS) || defined(WIN32) || defined(R__MWERKS) #ifdef TIOCSETP /* BSD in RAW mode, map NL to NL,CR */ if (ch == '\n') { ch = '\r'; - write(1, &ch, 1); + sigar_write(1, &ch, 1); } #endif #endif @@ -684,11 +684,11 @@ gl_puts(char *buf) { char *OemBuf = (char *)malloc(2*len); CharToOemBuff(buf,OemBuf,len); - write(1, OemBuf, len); + sigar_write(1, OemBuf, len); free(OemBuf); } #else - write(1, buf, len); + sigar_write(1, buf, len); #endif } @@ -702,11 +702,11 @@ gl_error(char *buf) { char *OemBuf = (char *)malloc(2*len); CharToOemBuff(buf,OemBuf,len); - write(2, OemBuf, len); + sigar_write(2, OemBuf, len); free(OemBuf); } #else - write(2, buf, len); + sigar_write(2, buf, len); #endif exit(1); } @@ -718,7 +718,7 @@ gl_init() if (gl_init_done < 0) { /* -1 only on startup */ hist_init(); } - if (isatty(0) == 0 || isatty(1) == 0) + if (sigar_isatty(0) == 0 || sigar_isatty(1) == 0) gl_notty = 1; gl_char_init(); gl_init_done = 1; @@ -756,7 +756,7 @@ SIGAR_DECLARE(void) sigar_getline_windowchanged() { #ifdef TIOCGWINSZ - if (isatty(0)) { + if (sigar_isatty(0)) { static char lenv[32], cenv[32]; struct winsize wins; ioctl(0, TIOCGWINSZ, &wins); diff --git a/src/sigar_ptql.c b/src/sigar_ptql.c index 409a8a56..2ff3ff23 100644 --- a/src/sigar_ptql.c +++ b/src/sigar_ptql.c @@ -531,7 +531,7 @@ static int ptql_branch_list_destroy(ptql_branch_list_t *branches) static int ptql_branch_init_any(ptql_parse_branch_t *parsed, ptql_branch_t *branch) { - branch->data.str = strdup(parsed->attr); + branch->data.str = sigar_strdup(parsed->attr); branch->data_size = strlen(parsed->attr); return SIGAR_OK; } @@ -654,14 +654,14 @@ static int ptql_branch_init_pid(ptql_parse_branch_t *parsed, } else if (strEQ(parsed->attr, "PidFile")) { branch->flags = PTQL_PID_FILE; - branch->data.str = strdup(parsed->value); + branch->data.str = sigar_strdup(parsed->value); branch->data_size = strlen(parsed->value); return SIGAR_OK; } else if (strEQ(parsed->attr, "Service")) { branch->flags = PTQL_PID_SERVICE; #ifdef WIN32 - branch->data.str = strdup(parsed->value); + branch->data.str = sigar_strdup(parsed->value); branch->data_size = strlen(parsed->value); #endif return SIGAR_OK; @@ -1148,7 +1148,7 @@ static int ptql_branch_add(ptql_parse_branch_t *parsed, } else { if ((ptr = getenv(parsed->value+1))) { - branch->value.str = strdup(ptr); + branch->value.str = sigar_strdup(ptr); } else { branch->value.str = NULL; @@ -1212,7 +1212,7 @@ static int ptql_branch_add(ptql_parse_branch_t *parsed, case PTQL_VALUE_TYPE_ANY: branch->match.str = ptql_op_str[branch->op_name]; if (!is_set) { - branch->value.str = strdup(parsed->value); + branch->value.str = sigar_strdup(parsed->value); } break; } @@ -1233,14 +1233,14 @@ static int ptql_branch_compare(const void *b1, const void *b2) SIGAR_DECLARE(int) sigar_ptql_query_create(sigar_ptql_query_t **queryp, char *ptql) { - char *ptr, *ptql_copy = strdup(ptql); + char *ptr, *ptql_copy = sigar_strdup(ptql); int status = SIGAR_OK; int has_ref = 0; sigar_ptql_query_t *query = *queryp = malloc(sizeof(*query)); #ifdef PTQL_DEBUG - query->ptql = strdup(ptql); + query->ptql = sigar_strdup(ptql); #endif ptql = ptql_copy;