Browse Source

Moved strsep() implementation from winbuild.h to compat.h

djm34
troky 11 years ago
parent
commit
1965131784
  1. 29
      compat.h
  2. 32
      winbuild/dist/include/winbuild.h

29
compat.h

@ -70,24 +70,29 @@ static inline int setpriority(__maybe_unused int which, __maybe_unused int who,
return 0; return 0;
} }
//implement strsep() for windows #ifndef HAVE_STRSEP
static char* strsep(char** stringp, const char* delim) inline char *strsep(char **stringp, const char *delim)
{ {
char* start = *stringp; char *res;
char* p;
p = ((start != NULL)?strpbrk(start, delim):NULL); if (!stringp || !*stringp || !**stringp) {
return NULL;
}
res = *stringp;
while(**stringp && !strchr(delim, **stringp)) {
++(*stringp);
}
if(p == NULL) if (**stringp) {
*stringp = NULL; **stringp = '\0';
else ++(*stringp);
{
*p = '\0';
*stringp = p + 1;
} }
return start; return res;
} }
#endif
typedef unsigned long int ulong; typedef unsigned long int ulong;
typedef unsigned short int ushort; typedef unsigned short int ushort;

32
winbuild/dist/include/winbuild.h vendored

@ -1,6 +1,5 @@
#ifndef __WINBUILD_H__ #ifndef WINBUILD_H
#define __WINBUILD_H__ #define WINBUILD_H
#endif
#if defined(_MSC_VER) #if defined(_MSC_VER)
@ -131,29 +130,6 @@ inline void* memmem (void* buf, size_t buflen, void* pat, size_t patlen)
return 0; return 0;
} }
#ifndef HAVE_STRSEP
inline char *strsep(char **stringp, const char *delim)
{
char *res;
if (!stringp || !*stringp || !**stringp) {
return NULL;
}
res = *stringp;
while(**stringp && !strchr(delim, **stringp)) {
++(*stringp);
}
if (**stringp) {
**stringp = '\0';
++(*stringp);
}
return res;
}
#endif
#define va_copy(a, b) memcpy(&(a), &(b), sizeof(va_list)) #define va_copy(a, b) memcpy(&(a), &(b), sizeof(va_list))
#define usleep(x) Sleep((x)/1000) #define usleep(x) Sleep((x)/1000)
@ -162,5 +138,5 @@ inline char *strsep(char **stringp, const char *delim)
#define __func__ __FUNCTION__ #define __func__ __FUNCTION__
#define __attribute__(x) #define __attribute__(x)
#endif /* _MSC_VER */
#endif #endif /* WINBUILD_H */

Loading…
Cancel
Save