diff options
author | unknown <tomas@poseidon.ndb.mysql.com> | 2006-05-04 21:55:12 +0200 |
---|---|---|
committer | unknown <tomas@poseidon.ndb.mysql.com> | 2006-05-04 21:55:12 +0200 |
commit | a15ac50637254bc0b984a101ff19f7fce5406602 (patch) | |
tree | 1dae947e072d55116c0bdbea78fcba6e97293c50 /strings/my_vsnprintf.c | |
parent | 97d8da57a3d2618ca9926a3a3127a4c9ba3bb268 (diff) | |
parent | 462a43e16b5bb2307effe44d18cdb82fef1ff170 (diff) | |
download | mariadb-git-a15ac50637254bc0b984a101ff19f7fce5406602.tar.gz |
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
mysql-test/t/disabled.def:
Auto merged
sql/ha_ndbcluster.cc:
Auto merged
sql/ha_ndbcluster_binlog.cc:
Auto merged
support-files/mysql.spec.sh:
Auto merged
Diffstat (limited to 'strings/my_vsnprintf.c')
-rw-r--r-- | strings/my_vsnprintf.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/strings/my_vsnprintf.c b/strings/my_vsnprintf.c index 0e036c2bbcd..e4302f50c58 100644 --- a/strings/my_vsnprintf.c +++ b/strings/my_vsnprintf.c @@ -27,6 +27,7 @@ %#[l]d %#[l]u %#[l]x + %#.#b Local format; note first # is ignored and second is REQUIRED %#.#s Note first # is ignored RETURN @@ -40,7 +41,7 @@ int my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap) for (; *fmt ; fmt++) { - if (fmt[0] != '%') + if (*fmt != '%') { if (to == end) /* End of buffer */ break; @@ -95,6 +96,16 @@ int my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap) to=strnmov(to,par,plen); continue; } + else if (*fmt == 'b') /* Buffer parameter */ + { + char *par = va_arg(ap, char *); + DBUG_ASSERT(to <= end); + if (to + abs(width) + 1 > end) + width= end - to - 1; /* sign doesn't matter */ + memmove(to, par, abs(width)); + to+= width; + continue; + } else if (*fmt == 'd' || *fmt == 'u'|| *fmt== 'x') /* Integer parameter */ { register long larg; |