Mercurial > octave
changeset 30587:5d379d2ad903
strcase-wrappers: Add wrappers for strcasecmp and strncasecmp.
* liboctave/wrappers/strcase-wrappers.h, liboctave/wrappers/strcase-wrappers.cc:
Add new wrapper files.
* liboctave/wrappers/module.mk: Add new files to build system.
* liboctave/util/lo-cutils.h, liboctave/util/lo-cutils.c: Remove functions that
have been moved to dedicated header files.
* bootstrap.conf: Explicitly add strcase module.
* libinterp/corefcn/oct-stream.cc, libinterp/corefcn/utils.cc: Include new
header.
See: https://octave.discourse.group/t/1998
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Fri, 31 Dec 2021 18:44:26 +0100 |
parents | cdb9b90b907f |
children | ed17822e7662 |
files | bootstrap.conf libinterp/corefcn/oct-stream.cc libinterp/corefcn/utils.cc liboctave/util/lo-cutils.c liboctave/util/lo-cutils.h liboctave/wrappers/module.mk liboctave/wrappers/strcase-wrappers.c liboctave/wrappers/strcase-wrappers.h |
diffstat | 8 files changed, 98 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/bootstrap.conf Fri Dec 31 19:23:18 2021 +0100 +++ b/bootstrap.conf Fri Dec 31 18:44:26 2021 +0100 @@ -90,6 +90,7 @@ stat stddef stdio + strcase strdup-posix strerror strptime
--- a/libinterp/corefcn/oct-stream.cc Fri Dec 31 19:23:18 2021 +0100 +++ b/libinterp/corefcn/oct-stream.cc Fri Dec 31 18:44:26 2021 +0100 @@ -42,7 +42,6 @@ #include "Array.h" #include "Cell.h" #include "byte-swap.h" -#include "lo-cutils.h" #include "lo-ieee.h" #include "lo-mappers.h" #include "lo-utils.h" @@ -50,6 +49,7 @@ #include "octave-preserve-stream-state.h" #include "quit.h" #include "str-vec.h" +#include "strcase-wrappers.h" #include "error.h" #include "errwarn.h"
--- a/libinterp/corefcn/utils.cc Fri Dec 31 19:23:18 2021 +0100 +++ b/libinterp/corefcn/utils.cc Fri Dec 31 18:44:26 2021 +0100 @@ -48,6 +48,7 @@ #include "pathsearch.h" #include "quit.h" #include "str-vec.h" +#include "strcase-wrappers.h" #include "vasprintf-wrapper.h" #include "Cell.h"
--- a/liboctave/util/lo-cutils.c Fri Dec 31 19:23:18 2021 +0100 +++ b/liboctave/util/lo-cutils.c Fri Dec 31 18:44:26 2021 +0100 @@ -28,7 +28,6 @@ #endif #include <stdlib.h> -#include <string.h> #include "lo-cutils.h" @@ -38,15 +37,3 @@ { qsort (base, n, size, cmp); } - -OCTAVE_API int -octave_strcasecmp (const char *s1, const char *s2) -{ - return strcasecmp (s1, s2); -} - -OCTAVE_API int -octave_strncasecmp (const char *s1, const char *s2, size_t n) -{ - return strncasecmp (s1, s2, n); -}
--- a/liboctave/util/lo-cutils.h Fri Dec 31 19:23:18 2021 +0100 +++ b/liboctave/util/lo-cutils.h Fri Dec 31 18:44:26 2021 +0100 @@ -40,12 +40,6 @@ octave_qsort (void *base, size_t n, size_t size, int (*cmp) (const void *, const void *)); -OCTAVE_API int -octave_strcasecmp (const char *s1, const char *s2); - -OCTAVE_API int -octave_strncasecmp (const char *s1, const char *s2, size_t n); - #if defined (__cplusplus) } #endif
--- a/liboctave/wrappers/module.mk Fri Dec 31 19:23:18 2021 +0100 +++ b/liboctave/wrappers/module.mk Fri Dec 31 18:44:26 2021 +0100 @@ -24,6 +24,7 @@ %reldir%/set-program-name-wrapper.h \ %reldir%/signal-wrappers.h \ %reldir%/stat-wrappers.h \ + %reldir%/strcase-wrappers.h \ %reldir%/strdup-wrapper.h \ %reldir%/strftime-wrapper.h \ %reldir%/strmode-wrapper.h \ @@ -67,6 +68,7 @@ %reldir%/set-program-name-wrapper.c \ %reldir%/signal-wrappers.c \ %reldir%/stat-wrappers.c \ + %reldir%/strcase-wrappers.c \ %reldir%/strdup-wrapper.c \ %reldir%/strftime-wrapper.c \ %reldir%/strmode-wrapper.c \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/liboctave/wrappers/strcase-wrappers.c Fri Dec 31 18:44:26 2021 +0100 @@ -0,0 +1,44 @@ +//////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2022 The Octave Project Developers +// +// See the file COPYRIGHT.md in the top-level directory of this +// distribution or <https://octave.org/copyright/>. +// +// This file is part of Octave. +// +// Octave 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 3 of the License, or +// (at your option) any later version. +// +// Octave 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 Octave; see the file COPYING. If not, see +// <https://www.gnu.org/licenses/>. +// +//////////////////////////////////////////////////////////////////////// + +#if defined (HAVE_CONFIG_H) +# include "config.h" +#endif + +#include <strings.h> + +#include "strcase-wrappers.h" + +OCTAVE_API int +octave_strcasecmp (const char *s1, const char *s2) +{ + return strcasecmp (s1, s2); +} + +OCTAVE_API int +octave_strncasecmp (const char *s1, const char *s2, size_t n) +{ + return strncasecmp (s1, s2, n); +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/liboctave/wrappers/strcase-wrappers.h Fri Dec 31 18:44:26 2021 +0100 @@ -0,0 +1,49 @@ +//////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2022 The Octave Project Developers +// +// See the file COPYRIGHT.md in the top-level directory of this +// distribution or <https://octave.org/copyright/>. +// +// This file is part of Octave. +// +// Octave 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 3 of the License, or +// (at your option) any later version. +// +// Octave 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 Octave; see the file COPYING. If not, see +// <https://www.gnu.org/licenses/>. +// +//////////////////////////////////////////////////////////////////////// + +#if ! defined (octave_strcase_wrappers_h) +#define octave_strcase_wrappers_h 1 + +#include "octave-config.h" + +#if defined (__cplusplus) +#include <cstddef> +using std::size_t; +extern "C" { +#else +#include <stddef.h> +#endif + +OCTAVE_API int +octave_strcasecmp (const char *s1, const char *s2); + +OCTAVE_API int +octave_strncasecmp (const char *s1, const char *s2, size_t n); + +#if defined (__cplusplus) +} +#endif + +#endif