~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mystrings/strxmov.cc

  • Committer: Toru Maesaka
  • Date: 2008-12-14 10:42:08 UTC
  • mto: (670.1.24 devel)
  • mto: This revision was merged to the branch mainline in revision 676.
  • Revision ID: dev@torum.net-20081214104208-ecklk6jct0thhte6
Final pass of replacing MySQL's strxmov with libc's alternatives

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 2002 MySQL AB
2
 
 
3
 
   This library is free software; you can redistribute it and/or
4
 
   modify it under the terms of the GNU Library General Public
5
 
   License as published by the Free Software Foundation; version 2
6
 
   of the License.
7
 
 
8
 
   This library is distributed in the hope that it will be useful,
9
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11
 
   Library General Public License for more details.
12
 
 
13
 
   You should have received a copy of the GNU Library General Public
14
 
   License along with this library; if not, write to the Free
15
 
   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
16
 
   MA 02111-1307, USA */
17
 
 
18
 
/*  File   : strxmov.c
19
 
    Author : Richard A. O'Keefe.
20
 
    Updated: 25 may 1984
21
 
    Defines: strxmov()
22
 
 
23
 
    strxmov(dst, src1, ..., srcn, (char *))
24
 
    moves the concatenation of src1,...,srcn to dst, terminates it
25
 
    with a NUL character, and returns a pointer to the terminating NUL.
26
 
    It is just like strmov except that it concatenates multiple sources.
27
 
    Beware: the last argument should be the null character pointer.
28
 
    Take VERY great care not to omit it!
29
 
*/
30
 
 
31
 
#include "m_string.h"
32
 
#include <stdarg.h>
33
 
 
34
 
char *strxmov(char *dst,const char *src, ...)
35
 
{
36
 
  va_list pvar;
37
 
 
38
 
  va_start(pvar,src);
39
 
  while (src != (char *)0) {
40
 
    while ((*dst++ = *src++)) ;
41
 
    dst--;
42
 
    src = va_arg(pvar, char *);
43
 
  }
44
 
  va_end(pvar);
45
 
  *dst = 0;                     /* there might have been no sources! */
46
 
  return dst;
47
 
}