summaryrefslogtreecommitdiff
path: root/strings/strxnmov.c
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2001-02-20 22:34:47 +0200
committerunknown <monty@donna.mysql.com>2001-02-20 22:34:47 +0200
commit62884b8f36e2bdb7dffd43fe65b7ac17025e6abe (patch)
treef87e7ff2aa4e7016660a9275fe538c9ce99b6dfe /strings/strxnmov.c
parentdc7eafea57a321c92716b5b84c574a0347ade74f (diff)
downloadmariadb-git-62884b8f36e2bdb7dffd43fe65b7ac17025e6abe.tar.gz
Added max_user_connections
Fixes for Innobase Don't reset whole to-buffer in strxnmov BUILD/compile-pentium-debug: Added innobase include/mysqld_error.h: New error messages innobase/configure.in: Update from heikki innobase/include/lock0types.h: Update from heikki innobase/include/os0sync.h: Update from heikki innobase/include/sync0types.h: Update from heikki innobase/os/os0file.c: Update from heikki innobase/srv/srv0start.c: Update from heikki sql/ha_innobase.cc: Update from Heikki Changed assert -> dbug_assert Changed return -> DBUG_RETURN sql/mysql_priv.h: Added max_user_connections sql/mysqld.cc: Added max_user_connections sql/share/czech/errmsg.txt: Added max_user_connections sql/share/danish/errmsg.txt: Added max_user_connections sql/share/dutch/errmsg.txt: Added max_user_connections sql/share/english/errmsg.txt: Added max_user_connections sql/share/estonian/errmsg.txt: Added max_user_connections sql/share/french/errmsg.txt: Added max_user_connections sql/share/german/errmsg.txt: Added max_user_connections sql/share/greek/errmsg.txt: Added max_user_connections sql/share/hungarian/errmsg.txt: Added max_user_connections sql/share/italian/errmsg.txt: Added max_user_connections sql/share/japanese/errmsg.txt: Added max_user_connections sql/share/korean/errmsg.txt: Added max_user_connections sql/share/norwegian-ny/errmsg.txt: Added max_user_connections sql/share/norwegian/errmsg.txt: Added max_user_connections sql/share/polish/errmsg.txt: Added max_user_connections sql/share/portuguese/errmsg.txt: Added max_user_connections sql/share/romanian/errmsg.txt: Added max_user_connections sql/share/russian/errmsg.txt: Added max_user_connections sql/share/slovak/errmsg.txt: Added max_user_connections sql/share/spanish/errmsg.txt: Added max_user_connections sql/share/swedish/errmsg.OLD: Added max_user_connections sql/share/swedish/errmsg.txt: Added max_user_connections sql/sql_class.h: cleanup strings/str_test.c: Added tests for strxnmov strings/strxnmov.c: Don't reset whole to buffer
Diffstat (limited to 'strings/strxnmov.c')
-rw-r--r--strings/strxnmov.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/strings/strxnmov.c b/strings/strxnmov.c
index 494b227209f..b55a2e0ab79 100644
--- a/strings/strxnmov.c
+++ b/strings/strxnmov.c
@@ -15,9 +15,9 @@
and NOT to use 0, as on some machines 0 is not the same size as a
character pointer, or not the same bit pattern as NullS.
- Note: strxnmov is like strnmov in that it always moves EXACTLY len
- characters; dst will be padded on the right with NUL characters as
- needed. strxncpy does the same. strxncat, like strncat, does NOT.
+ Note: strxnmov is like strnmov in that it moves up to len
+ characters; dst will be padded on the right with one NUL characters if
+ needed.
*/
#include <global.h>
@@ -27,20 +27,22 @@
char *strxnmov(char *dst,uint len, const char *src, ...)
{
va_list pvar;
- char *result;
+ char *end_of_dst=dst+len;
va_start(pvar,src);
- while (src != NullS) {
- do if (len-- == 0)
+ while (src != NullS)
+ {
+ do
{
- va_end(pvar);
- return dst;
+ if (dst == end_of_dst)
+ goto end;
}
- while ((*dst++ = *src++) != 0);
+ while ((*dst++ = *src++));
dst--;
src = va_arg(pvar, char *);
}
- for (result= dst; len-- != 0; *dst++ = 0) ;
+ *dst=0;
+end:
va_end(pvar);
- return result;
+ return dst;
}