00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifdef _WINDOWS
00022 #include <windows.h>
00023 #include <stdio.h>
00024 #include "oaa-windows.h"
00025
00026 enum { SNPRINTF_BUFFER_SIZE=300 };
00027
00038 int win_oaa_snprintf(char *buffer, size_t count, const char *format, ...) {
00039 int ret = 0;
00040 static char scratch_buffer[SNPRINTF_BUFFER_SIZE];
00041 va_list args;
00042 va_start(args, format);
00043 if (buffer != NULL) {
00044 ret = _vsnprintf(buffer, count, format, args);
00045 } else {
00046 ret = _vsnprintf(scratch_buffer, SNPRINTF_BUFFER_SIZE, format, args);
00047 }
00048 va_end(args);
00049 return ret;
00050 }
00051
00057 __int64 strtoll(const char *nptr, char **endptr, int base) {
00058
00059 if (base == 10) {
00060 char *itr = (char*)nptr;
00061 while ((*itr) != '\0') {
00062 itr++;
00063 }
00064 *endptr = itr;
00065 return _atoi64(nptr);
00066 } else {
00067 fprintf(stderr, "Error: strtoll only implemented for base 10");
00068 return 0;
00069 }
00070 }
00071 #endif
00072