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:
@@ -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
@@ -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>"
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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 */
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user