// Berkeley Open Infrastructure for Network Computing // http://boinc.berkeley.edu // Copyright (C) 2005 University of California // // This 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 software 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. // // To view the GNU Lesser General Public License visit // http://www.gnu.org/copyleft/lesser.html // or write to the Free Software Foundation, Inc., // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef _STD_FIXES_H_ #define _STD_FIXES_H_ #ifdef __cplusplus #ifndef CONFIG_TEST #ifndef HAVE_STD_MIN namespace std { #ifdef min #undef min #endif template inline T min(const T &a, const T &b) { return ((a inline T max(const T &a, const T &b) { return ((a>b)?a:b); } } #endif /* HAVE_STD_MAX */ #ifndef HAVE_STD_TRANSFORM #include #include namespace std { #ifdef transform #undef transform #endif template o_iterator transform(i_iterator first, i_iterator last, o_iterator res, OP op) { for (;first != last; first++) { *(res++)=op(*first); } return (res); } } #endif /* HAVE_STD_TRANSFORM */ #endif /* CONFIG_TEST */ #if defined(LARGEFILE_BREAKS_CXX) && (defined(_LARGE_FILES) || (_FILE_OFFSET_BITS==64)) && !defined(_USING_FCGI_) #include #include #undef fopen #undef freopen #undef tmpfile #undef fgetpos #undef fsetpos #undef fseeko #undef ftello #undef open #undef creat extern "C" { FILE *fopen(const char *, const char *); FILE *freopen(const char *, const char *, FILE *); FILE *tmpfile(void); int fgetpos(FILE *, fpos64_t *); int fsetpos(FILE *, const fpos64_t *); int fseeko(FILE *, const off64_t, int); off64_t ftello(FILE *); int open(const char *, int, mode_t mode=0); int creat(const char *, mode_t mode); } inline FILE *fopen(const char *path, const char *mode) { return fopen64(path, mode); } inline FILE *freopen(const char *path, const char *mode, FILE *file) { return freopen64(path,mode,file); } inline FILE *tmpfile(void) {return tmpfile64();} inline int fgetpos(FILE *file, fpos64_t *pos) { return fgetpos64(file,pos); } inline int fsetpos(FILE *file, const fpos64_t *pos) { return fsetpos64(file,pos); } inline int fseeko(FILE *file, const off64_t pos, int whence) {return fseeko64(file,pos,whence);} inline off64_t ftello(FILE *file) {return ftello64(file);} inline int open(const char *filename, int flags, mode_t mode) { return open64(filename,flags,mode); } inline int creat(const char *filename, mode_t mode) { return creat64(filename,mode); } #endif #endif /* __cplusplus */ #endif /* STD_FIXES_H */