42ec26e640
This commit was SVN r7999.
86 строки
2.0 KiB
C
86 строки
2.0 KiB
C
/*
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
* University Research and Technology
|
|
* Corporation. All rights reserved.
|
|
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
* of Tennessee Research Foundation. All rights
|
|
* reserved.
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
* University of Stuttgart. All rights reserved.
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
* All rights reserved.
|
|
* $COPYRIGHT$
|
|
*
|
|
* Additional copyrights may follow
|
|
*
|
|
* $HEADER$
|
|
*/
|
|
|
|
#ifndef OMPI_UTIL_H
|
|
#define OMPI_UTIL_H
|
|
|
|
#include <string.h>
|
|
|
|
static __inline int getpagesize(void) {
|
|
SYSTEM_INFO sys_info;
|
|
|
|
GetSystemInfo(&sys_info);
|
|
return (int)sys_info.dwPageSize;
|
|
}
|
|
|
|
|
|
static __inline char *basename(char *path) {
|
|
char *p = path;
|
|
char *ret;
|
|
|
|
if (path[strlen(path)-1] == '\\') {
|
|
path[strlen(path)-1] = '\0';
|
|
}
|
|
|
|
while (*p != '\0') p++;
|
|
while (*p != '\\') p--;
|
|
ret = strdup(++p);
|
|
|
|
return ret;
|
|
}
|
|
|
|
static __inline char *dirname(char *path) {
|
|
|
|
/* remember, this is the windows version, so path is bound to contain
|
|
the drive letter. Although, we are merely concerned with removing
|
|
the last \ from the path offered. A new string should be allocated?? */
|
|
char *dirname;
|
|
char *base;
|
|
|
|
base = basename(path);
|
|
dirname = strdup(path);
|
|
|
|
strncpy(dirname, path, strlen(path)-strlen(base));
|
|
dirname[strlen(path)-strlen(base)] = '\0';
|
|
|
|
return dirname;
|
|
}
|
|
|
|
static __inline int strncasecmp (char *s1, char *s2, int n) {
|
|
|
|
int ret;
|
|
|
|
while (0 <= --n && (tolower(*s1) == tolower(*s2++))) {
|
|
if ('\0' == tolower(*s1++)) {
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
ret = (n < 0 ? 0 : tolower(*s1) - tolower(*--s2));
|
|
|
|
return ret;
|
|
}
|
|
|
|
static __inline int strcasecmp(char *s1, char *s2) {
|
|
|
|
return strncasecmp (s1, s2, (int)strlen(s1));
|
|
}
|
|
|
|
|
|
#endif
|