From 5c1b09cec89100490db32ae91610a9f244a2d6da Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Tue, 30 Mar 2010 08:16:51 +0000 Subject: git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7360 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- branch-3.0/src/flstring.h | 104 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 branch-3.0/src/flstring.h (limited to 'branch-3.0/src/flstring.h') diff --git a/branch-3.0/src/flstring.h b/branch-3.0/src/flstring.h new file mode 100644 index 000000000..78cc5e559 --- /dev/null +++ b/branch-3.0/src/flstring.h @@ -0,0 +1,104 @@ +/* + * "$Id$" + * + * Common string header file for the Fast Light Tool Kit (FLTK). + * + * Copyright 1998-2009 by Bill Spitzak and others. + * + * This library 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 library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + * + * Please report all bugs and problems on the following page: + * + * http://www.fltk.org/str.php + */ + +#ifndef flstring_h +# define flstring_h + +# include +# include +# include +# include +# include +# ifdef HAVE_STRINGS_H +# include +# endif /* HAVE_STRINGS_H */ +# include + +/* + * Apparently Unixware defines "index" to strchr (!) rather than + * providing a proper entry point or not providing the (obsolete) + * BSD function. Make sure index is not defined... + */ + +# ifdef index +# undef index +# endif /* index */ + +# if defined(WIN32) && !defined(__CYGWIN__) +# define strcasecmp(s,t) _stricmp((s), (t)) +# define strncasecmp(s,t,n) _strnicmp((s), (t), (n)) +/* Visual C++ 2005 incorrectly displays a warning about the use of POSIX APIs + * on Windows, which is supposed to be POSIX compliant... Some of these + * functions are also defined in ISO C99... + */ +# ifndef __WATCOMC__ +# define strdup _strdup +# define unlink _unlink +# endif /* !__WATCOMC__ */ +# elif defined(__EMX__) +# define strcasecmp(s,t) stricmp((s), (t)) +# define strncasecmp(s,t,n) strnicmp((s), (t), (n)) +# endif /* WIN32 */ + +# ifdef __cplusplus +extern "C" { +# endif /* __cplusplus */ + +FL_EXPORT extern int fl_snprintf(char *, size_t, const char *, ...); +# if !HAVE_SNPRINTF +# define snprintf fl_snprintf +# endif /* !HAVE_SNPRINTF */ + +FL_EXPORT extern int fl_vsnprintf(char *, size_t, const char *, va_list ap); +# if !HAVE_VSNPRINTF +# define vsnprintf fl_vsnprintf +# endif /* !HAVE_VSNPRINTF */ + +/* + * strlcpy() and strlcat() are some really useful BSD string functions + * that work the way strncpy() and strncat() *should* have worked. + */ + +FL_EXPORT extern size_t fl_strlcat(char *, const char *, size_t); +# if !HAVE_STRLCAT +# define strlcat fl_strlcat +# endif /* !HAVE_STRLCAT */ + +FL_EXPORT extern size_t fl_strlcpy(char *, const char *, size_t); +# if !HAVE_STRLCPY +# define strlcpy fl_strlcpy +# endif /* !HAVE_STRLCPY */ + +# ifdef __cplusplus +} +# endif /* __cplusplus */ +#endif /* !flstring_h */ + + +/* + * End of "$Id$". + */ -- cgit v1.2.3