1*16b81a67SPeter Avalos /*- 2*16b81a67SPeter Avalos * Copyright (c) 2009 David Schultz <das@FreeBSD.org> 3*16b81a67SPeter Avalos * All rights reserved. 4*16b81a67SPeter Avalos * 5*16b81a67SPeter Avalos * Redistribution and use in source and binary forms, with or without 6*16b81a67SPeter Avalos * modification, are permitted provided that the following conditions 7*16b81a67SPeter Avalos * are met: 8*16b81a67SPeter Avalos * 1. Redistributions of source code must retain the above copyright 9*16b81a67SPeter Avalos * notice, this list of conditions and the following disclaimer. 10*16b81a67SPeter Avalos * 2. Redistributions in binary form must reproduce the above copyright 11*16b81a67SPeter Avalos * notice, this list of conditions and the following disclaimer in the 12*16b81a67SPeter Avalos * documentation and/or other materials provided with the distribution. 13*16b81a67SPeter Avalos * 14*16b81a67SPeter Avalos * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*16b81a67SPeter Avalos * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*16b81a67SPeter Avalos * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*16b81a67SPeter Avalos * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*16b81a67SPeter Avalos * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*16b81a67SPeter Avalos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*16b81a67SPeter Avalos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*16b81a67SPeter Avalos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*16b81a67SPeter Avalos * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*16b81a67SPeter Avalos * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*16b81a67SPeter Avalos * SUCH DAMAGE. 25*16b81a67SPeter Avalos * 26*16b81a67SPeter Avalos * $FreeBSD: src/lib/libc/string/strnlen.c,v 1.1 2009/02/28 06:00:58 das Exp $ 27*16b81a67SPeter Avalos */ 28*16b81a67SPeter Avalos 29*16b81a67SPeter Avalos #include <string.h> 30*16b81a67SPeter Avalos 31*16b81a67SPeter Avalos size_t 32*16b81a67SPeter Avalos strnlen(const char *s, size_t maxlen) 33*16b81a67SPeter Avalos { 34*16b81a67SPeter Avalos size_t len; 35*16b81a67SPeter Avalos 36*16b81a67SPeter Avalos for (len = 0; len < maxlen; len++, s++) { 37*16b81a67SPeter Avalos if (!*s) 38*16b81a67SPeter Avalos break; 39*16b81a67SPeter Avalos } 40*16b81a67SPeter Avalos return (len); 41*16b81a67SPeter Avalos } 42