diff options
author | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:47:40 +0200 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2011-10-10 17:47:40 +0200 |
commit | bd433c6487a52f95e6bb949d5698dc5ea0923713 (patch) | |
tree | 9d1204522870111c81500239a1302feb03177abf /nx-X11/programs/Xserver/os/xprintf.c | |
parent | 55a9311fb1df3b58f73efa575318e7341243392b (diff) | |
download | nx-libs-bd433c6487a52f95e6bb949d5698dc5ea0923713.tar.gz nx-libs-bd433c6487a52f95e6bb949d5698dc5ea0923713.tar.bz2 nx-libs-bd433c6487a52f95e6bb949d5698dc5ea0923713.zip |
Imported nx-X11-3.3.0-6.tar.gznx-X11/3.3.0-6
Summary: Imported nx-X11-3.3.0-6.tar.gz
Keywords:
Imported nx-X11-3.3.0-6.tar.gz
into Git repository
Diffstat (limited to 'nx-X11/programs/Xserver/os/xprintf.c')
-rw-r--r-- | nx-X11/programs/Xserver/os/xprintf.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/os/xprintf.c b/nx-X11/programs/Xserver/os/xprintf.c index 07eaa1f58..a1ee21300 100644 --- a/nx-X11/programs/Xserver/os/xprintf.c +++ b/nx-X11/programs/Xserver/os/xprintf.c @@ -43,6 +43,63 @@ # endif #endif +#ifdef NXAGENT_SERVER + +#define PANIC +#define WARNING +#undef TEST +#undef DEBUG + +#define START_SIZE 256 +#define END_SIZE 2048 + +char * +Xvprintf(const char *format, va_list va) +{ + char *ret; + char *newret; + int size; + int r; + + size = 0; + + for (;;) + { + if (size == 0) + { + ret = (char *)malloc(START_SIZE); + if (ret == NULL) + return NULL; + size = START_SIZE; + } + else if (size < END_SIZE && + (newret = (char *) realloc(ret, 2 * size)) != NULL) + { + ret = newret; + size = 2 * size; + } + else + { + free(ret); + return NULL; + } + + r = vsnprintf(ret, size, format, va); + + if (r == -1 || r == size || r > size || r == size - 1) + { + continue; + } + else + { + ret[r] = 0; + return ret; + } + } +} + +#else + char * Xvprintf(const char *format, va_list va) { @@ -63,6 +120,8 @@ Xvprintf(const char *format, va_list va) return ret; } +#endif + char *Xprintf(const char *format, ...) { char *ret; |