Skip to content

Commit

Permalink
use MinGW printf
Browse files Browse the repository at this point in the history
git-svn-id: https://plibc.svn.sourceforge.net/svnroot/plibc/trunk/plibc@72 1596915d-9e13-0410-ab7f-96e59408e0f0
  • Loading branch information
ndurner committed Nov 11, 2010
1 parent edcb1de commit 72b1fbd
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 96 deletions.
2 changes: 1 addition & 1 deletion ChangeLog
@@ -1,6 +1,6 @@
2010-11-06 Nils Durner
* mkfifo()
* use Windows printf
* use MinGW printf

2010-06-22 Nils Durner
* sysconf()
Expand Down
2 changes: 2 additions & 0 deletions configure.in
Expand Up @@ -9,6 +9,8 @@ AM_CONFIG_HEADER(config.h)

AC_SUBST(VERSION)

CFLAGS="$CFLAGS -D_POSIX_SOURCE"

ISODATE=`date +%Y-%m-%d`
AC_SUBST(ISODATE)

Expand Down
109 changes: 14 additions & 95 deletions src/printf.c
Expand Up @@ -28,198 +28,117 @@
#include <string.h>
#include <stdarg.h>

static char *wfmt(const char *fmt)
{
char *ret;
char *idx;

ret = strdup(fmt);
while(idx = strstr(fmt, "%llu"))
memcpy(idx + 1, "I64", 3);

return ret;
}

int _win_vsnprintf(char* str, size_t size, const char *format, va_list arg_ptr)
{
int ret;
char *fmt;

fmt = wfmt(str);
ret = vsnprintf(str, size, fmt, arg_ptr);
free(fmt);

return ret;
return vsnprintf(str, size, format, arg_ptr);
}

int _win_vsprintf(char *dest, const char *format, va_list arg_ptr)
{
char *fmt;
int ret;

fmt = wfmt(format);
ret = vsprintf(dest, fmt, arg_ptr);
free(fmt);

return ret;
return vsprintf(dest, format, arg_ptr);
}

int _win_vfprintf(FILE *stream, const char *format, va_list arg_ptr)
{
char *fmt;
int ret;

fmt = wfmt(format);
ret = vfprintf(stream, fmt, arg_ptr);
free(fmt);

return ret;
return vfprintf(stream, format, arg_ptr);
}

int _win_vprintf(const char *format, va_list ap)
{
char *fmt;
int ret;

fmt = wfmt(format);
ret = vprintf(fmt, ap);
free(fmt);

return ret;
return vprintf(format, ap);
}

int _win_fprintf(FILE *f,const char *format, ...)
{
char *fmt;
int ret;
va_list ap;

fmt = wfmt(format);
va_start(ap, format);
ret = vfprintf(f, fmt, ap);
free(fmt);
ret = vfprintf(f, format, ap);
va_end(ap);

return ret;
}

int _win_printf(const char *format, ...)
{
char *fmt;
int n;
va_list arg_ptr;

va_start(arg_ptr, format);
fmt = wfmt(format);
n = vprintf(fmt, arg_ptr);
free(fmt);
n = vprintf(format, arg_ptr);
va_end(arg_ptr);
return n;
}

int _win_snprintf(char *str, size_t size, const char *format, ...)
{
char *fmt;
int n;
va_list arg_ptr;

va_start(arg_ptr, format);
fmt = wfmt(format);
n = vsnprintf(str, size, fmt, arg_ptr);
free(fmt);
n = vsnprintf(str, size, format, arg_ptr);
va_end(arg_ptr);
return n;
}

int _win_sprintf(char *dest, const char *format, ...)
{
char *fmt;
int n;
va_list arg_ptr;

fmt = wfmt(format);
va_start(arg_ptr, format);
n = vsprintf(dest, fmt, arg_ptr);
free(fmt);
n = vsprintf(dest, format, arg_ptr);
va_end(arg_ptr);

return n;
}

int _win_vsscanf(const char* str, const char* format, va_list arg_ptr)
{
int ret;
char *fmt;

fmt = wfmt(format);
ret = vsscanf(str, fmt, arg_ptr);
free(fmt);

return ret;
return vsscanf(str, format, arg_ptr);
}

int _win_sscanf(const char *str, const char *format, ...)
{
char *fmt;
int n;
va_list arg_ptr;

va_start(arg_ptr, format);
fmt = wfmt(format);
n = vsscanf(str,fmt,arg_ptr);
n = vsscanf(str, format, arg_ptr);
va_end (arg_ptr);
return n;
}

int _win_vfscanf(FILE *stream, const char *format, va_list arg_ptr)
{
char *fmt;
int ret;

fmt = wfmt(format);
ret = vfscanf(stream, fmt, arg_ptr);
free(fmt);

return ret;
return vfscanf(stream, format, arg_ptr);
}

int _win_vscanf(const char *format, va_list arg_ptr)
{
char *fmt;
int ret;

fmt = wfmt(format);
ret = vscanf(fmt, arg_ptr);
free(fmt);

return ret;
return vscanf(format, arg_ptr);
}

int _win_scanf(const char *format, ...)
{
char *fmt;
int n;
va_list arg_ptr;

va_start(arg_ptr, format);
fmt = wfmt(format);
n = fscanf(stdin, fmt, arg_ptr);
free(fmt);
n = fscanf(stdin, format, arg_ptr);
va_end(arg_ptr);

return n;
}

int _win_fscanf(FILE *stream, const char *format, ...)
{
char *fmt;
int n;
va_list arg_ptr;

va_start(arg_ptr, format);
fmt = wfmt(format);
n = vfscanf(stream, fmt, arg_ptr);
free(fmt);
n = vfscanf(stream, format, arg_ptr);
va_end(arg_ptr);

return n;
Expand Down

0 comments on commit 72b1fbd

Please sign in to comment.