1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-09-01 02:34:55 +00:00

New module minmax.

This commit is contained in:
Bruno Haible
2003-01-23 18:29:34 +00:00
parent 1fa00a69e8
commit fdaa9692ba
5 changed files with 93 additions and 1 deletions
+5
View File
@@ -1,3 +1,8 @@
2003-01-23 Bruno Haible <bruno@clisp.org>
* modules/minmax: New module.
* MODULES.html.sh (func_all_modules): Add it.
2003-01-22 Bruno Haible <bruno@clisp.org>
* modules/exit: New module.
+1 -1
View File
@@ -1469,7 +1469,7 @@ func_all_modules ()
func_begin_table
func_module gcd
#func_module minmax
func_module minmax
func_end_table
element="Environment variables <stdlib.h>"
+4
View File
@@ -1,3 +1,7 @@
2003-01-23 Bruno Haible <bruno@clisp.org>
* minmax.h: New file, from GNU gettext, with comments from Paul Eggert.
2003-01-22 Bruno Haible <bruno@clisp.org>
* exit.h: New file, from GNU gettext.
+64
View File
@@ -0,0 +1,64 @@
/* MIN, MAX macros.
Copyright (C) 1995, 1998, 2001, 2003 Free Software Foundation, Inc.
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 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 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
/* 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 preferrably 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
# if __STDC__ && defined __GNUC__ && __GNUC__ >= 2
# define MAX(a,b) (__extension__ \
({__typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a > _b ? _a : _b; \
}))
# else
# define MAX(a,b) ((a) > (b) ? (a) : (b))
# endif
#endif
/* MIN(a,b) returns the minimum of A and B. */
#ifndef MIN
# if __STDC__ && defined __GNUC__ && __GNUC__ >= 2
# define MIN(a,b) (__extension__ \
({__typeof__ (a) _a = (a); \
__typeof__ (b) _b = (b); \
_a < _b ? _a : _b; \
}))
# else
# define MIN(a,b) ((a) < (b) ? (a) : (b))
# endif
#endif
#endif /* _MINMAX_H */
+19
View File
@@ -0,0 +1,19 @@
Description:
MIN, MAX macros.
Files:
lib/minmax.h
Depends-on:
configure.ac:
Makefile.am:
lib_SOURCES += minmax.h
Include:
"minmax.h"
Maintainer:
Bruno Haible