summaryrefslogtreecommitdiff
path: root/gl/minmax.h
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2004-09-29 17:46:55 +0000
committerSimon Josefsson <simon@josefsson.org>2004-09-29 17:46:55 +0000
commit12f5c586707fb11c658da5910ebfcf8cc318c8db (patch)
tree7e75ecd3eb63e56e4dc431fc3b2d223608f1f8d5 /gl/minmax.h
parentd1a3baa9f76377d74530c096ad8799b6866e6bbf (diff)
downloadgnutls-12f5c586707fb11c658da5910ebfcf8cc318c8db.tar.gz
Use strnstr from gnulib.
Gnulib sync.
Diffstat (limited to 'gl/minmax.h')
-rw-r--r--gl/minmax.h66
1 files changed, 44 insertions, 22 deletions
diff --git a/gl/minmax.h b/gl/minmax.h
index c2a2c61812..0e505109e7 100644
--- a/gl/minmax.h
+++ b/gl/minmax.h
@@ -1,31 +1,53 @@
-/* Copyright (C) 2004 Simon Josefsson
- Copyright (C) 1995,1996,1997,2000,2001,2003 Free Software Foundation, Inc.
+/* MIN, MAX macros.
+ Copyright (C) 1995, 1998, 2001, 2003 Free Software Foundation, Inc.
- This file is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of
- the License, or (at your option) any later version.
+ 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 file 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
- Lesser General Public License for more details.
+ 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 Lesser General Public
- License along with this file; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-#ifndef MINMAX_H
-# define MINMAX_H
+#ifndef _MINMAX_H
+#define _MINMAX_H
-/* Macros for min/max. */
-#ifndef MIN
-# define MIN(a,b) (((a)<(b))?(a):(b))
-#endif
+/* Note: MIN, MAX are also defined in <sys/param.h> on some systems
+ (glibc, IRIX, HP-UX, OSF/1). Therefore you might get warnings about
+ MIN, MAX macro redefinitions on some systems; the workaround is to
+ #include this file as the last one among the #include list. */
+
+/* Before we define the following symbols we get the <limits.h> file
+ since otherwise we get redefinitions on some systems. */
+#include <limits.h>
+
+/* Note: MIN and MAX should be used with two arguments of the
+ same type. They might not return the minimum and maximum of their two
+ arguments, if the arguments have different types or have unusual
+ floating-point values. For example, on a typical host with 32-bit 'int',
+ 64-bit 'long long', and 64-bit IEEE 754 'double' types:
+
+ MAX (-1, 2147483648) returns 4294967295.
+ MAX (9007199254740992.0, 9007199254740993) returns 9007199254740992.0.
+ MAX (NaN, 0.0) returns 0.0.
+ MAX (+0.0, -0.0) returns -0.0.
+ and in each case the answer is in some sense bogus. */
+
+/* MAX(a,b) returns the maximum of A and B. */
#ifndef MAX
-# define MAX(a,b) (((a)>(b))?(a):(b))
+# define MAX(a,b) ((a) > (b) ? (a) : (b))
+#endif
+
+/* MIN(a,b) returns the minimum of A and B. */
+#ifndef MIN
+# define MIN(a,b) ((a) < (b) ? (a) : (b))
#endif
-#endif /* MINMAX_H */
+#endif /* _MINMAX_H */