X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=tools%2Fmingw_support.c;h=2b17bf7dd28b6f78d4a1d81aea69fc3f800a8e05;hb=fe6ef1e9bacac98747e8b88d6a7f786db511a8d6;hp=67cd6e115f482297052f121f82b0e0076a345008;hpb=2f8d396b9302eddcd8d552648e101a46b7a80acd;p=u-boot diff --git a/tools/mingw_support.c b/tools/mingw_support.c index 67cd6e115f..2b17bf7dd2 100644 --- a/tools/mingw_support.c +++ b/tools/mingw_support.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0+ /* * Copyright 2008 Extreme Engineering Solutions, Inc. * @@ -5,26 +6,14 @@ * Clamav Native Windows Port : mmap win32 compatibility layer * Copyright (c) 2005-2006 Gianluigi Tiesi * Parts by Kees Zeelenberg (LibGW32C) - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this software; if not, write to the - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "mingw_support.h" #include #include +#include #include +#include #include int fsync(int fd) @@ -77,3 +66,48 @@ int munmap(void *addr, size_t len) return 0; } + +/* Reentrant string tokenizer. Generic version. + Copyright (C) 1991,1996-1999,2001,2004,2007 Free Software Foundation, Inc. + This file is part of the GNU C Library. + */ + +/* Parse S into tokens separated by characters in DELIM. + If S is NULL, the saved pointer in SAVE_PTR is used as + the next starting point. For example: + char s[] = "-abc-=-def"; + char *sp; + x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" + x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL + x = strtok_r(NULL, "=", &sp); // x = NULL + // s = "abc\0-def\0" +*/ +char *strtok_r(char *s, const char *delim, char **save_ptr) +{ + char *token; + + if (s == NULL) + s = *save_ptr; + + /* Scan leading delimiters. */ + s += strspn(s, delim); + if (*s == '\0') { + *save_ptr = s; + return NULL; + } + + /* Find the end of the token. */ + token = s; + s = strpbrk (token, delim); + if (s == NULL) { + /* This token finishes the string. */ + *save_ptr = memchr(token, '\0', strlen(token)); + } else { + /* Terminate the token and make *SAVE_PTR point past it. */ + *s = '\0'; + *save_ptr = s + 1; + } + return token; +} + +#include "getline.c"