Logo Search packages:      
Sourcecode: alsa-utils version File versions

init_sysdeps.c

/*
 * Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
 * Copyright (C) 2005-2006 Kay Sievers <kay.sievers@vrfy.org>
 *
 *    This program is free software; you can redistribute it and/or modify it
 *    under the terms of the GNU General Public License as published by the
 *    Free Software Foundation version 2 of the License.
 * 
 *    This program is distributed in the hope that it will be useful, but
 *    WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    General Public License for more details.
 * 
 *    You should have received a copy of the GNU General Public License along
 *    with this program; if not, write to the Free Software Foundation, Inc.,
 *    51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 *
 */

#if defined(__GLIBC__) && !(defined(__UCLIBC__) && defined(__USE_BSD))
static size_t strlcpy(char *dst, const char *src, size_t size)
{
      size_t bytes = 0;
      char *q = dst;
      const char *p = src;
      char ch;

      while ((ch = *p++)) {
            if (bytes+1 < size)
                  *q++ = ch;
            bytes++;
      }

      /* If size == 0 there is no space for a final null... */
      if (size)
            *q = '\0';
      return bytes;
}

static size_t strlcat(char *dst, const char *src, size_t size)
{
      size_t bytes = 0;
      char *q = dst;
      const char *p = src;
      char ch;

      while (bytes < size && *q) {
            q++;
            bytes++;
      }
      if (bytes == size)
            return (bytes + strlen(src));

      while ((ch = *p++)) {
            if (bytes+1 < size)
            *q++ = ch;
            bytes++;
      }

      *q = '\0';
      return bytes;
}
#endif /* __GLIBC__ */

Generated by  Doxygen 1.6.0   Back to index