| Provide strnlen on platforms where it's missing. |
| |
| --- cctools-855/otool/ofile_print.c.orig 2015-01-14 18:33:14.000000000 +0100 |
| +++ cctools-855/otool/ofile_print.c 2015-01-14 18:34:03.000000000 +0100 |
| @@ -3647,6 +3647,40 @@ |
| printf(" pad %u\n", ec->pad); |
| } |
| |
| +/* borrowed from gnulib */ |
| +#include <AvailabilityMacros.h> |
| + |
| +#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 |
| +/* Find the length of STRING, but scan at most MAXLEN characters. |
| + * Copyright (C) 2005-2007, 2009-2015 Free Software Foundation, Inc. |
| + * Written by Simon Josefsson. |
| + * |
| + * 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; either version 2, or (at your option) |
| + * any later version. |
| + * |
| + * 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, see <http://www.gnu.org/licenses/>. */ |
| + |
| +#include <string.h> |
| + |
| +/* Find the length of STRING, but scan at most MAXLEN characters. |
| + * If no '\0' terminator is found in that many characters, return MAXLEN. */ |
| + |
| +size_t |
| +strnlen (const char *string, size_t maxlen) |
| +{ |
| + const char *end = memchr (string, '\0', maxlen); |
| + return end ? (size_t) (end - string) : maxlen; |
| +} |
| +#endif |
| + |
| /* |
| * print an LC_LINKER_OPTION command. The linker_option_command structure |
| * specified must be aligned correctly and in the host byte sex. The lc is |