wireshark/wsutil/strnatcmp.h
Guy Harris 4acf4955f5 Rename the strnatcmp.c routines and make them use the g_ascii_XXX() routines.
Rename strnatcmp()/strnatcasecmp() to ws_ascii_XXX(), and make them use
the g_ascii_XXX() routines rather than ctype.h routines, to eliminate
locale-dependent behavior.

(If you want locale-dependent "natural order" sorting, you probably want
"dictionary order" sorting, which is more complicated than just natural
order sorting.)

Change-Id: I837f2776b2a909b547dc9a6072e497911b5380e5
Reviewed-on: https://code.wireshark.org/review/4985
Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-10-29 17:54:51 +00:00

48 lines
1.5 KiB
C

/* strnatcmp.h
*
* Original code downloaded from: http://sourcefrog.net/projects/natsort/
strnatcmp.c -- Perform 'natural order' comparisons of strings in C.
Copyright (C) 2000, 2004 by Martin Pool <mbp sourcefrog net>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#ifndef STRNATCMP_H
#define STRNATCMP_H
#include "ws_symbol_export.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* CUSTOMIZATION SECTION
*
* You can change this typedef, but must then also change the inline
* functions in strnatcmp.c */
typedef char nat_char;
WS_DLL_PUBLIC int ws_ascii_strnatcmp(nat_char const *a, nat_char const *b);
WS_DLL_PUBLIC int ws_ascii_strnatcasecmp(nat_char const *a, nat_char const *b);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* STRNATCMP_H */