MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
strnlen.c
1 /* Copyright (c) 2000, 2001, 2006, 2007 MySQL AB
2  Use is subject to license terms.
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; version 2 of the License.
7 
8  This program 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
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
16 
17 /* File : strnlen.c
18  Author : Michael Widenius
19  Updated: 20 April 1984
20  Defines: strnlen.
21  strnlen(s, len) returns the length of s or len if s is longer than len.
22 */
23 
24 #include <my_global.h>
25 #include "m_string.h"
26 
27 #ifndef HAVE_STRNLEN
28 
29 size_t strnlen(register const char *s, register size_t maxlen)
30 {
31  const char *end= (const char *)memchr(s, '\0', maxlen);
32  return end ? (size_t) (end - s) : maxlen;
33 }
34 
35 #endif