/* -*-C-*- ******************************************************************************** * * File: cutil.h * Description: General utility functions * Author: Mark Seaman, SW Productivity * Created: Fri Oct 16 14:37:00 1987 * Modified: Wed Dec 5 15:40:26 1990 (Mark Seaman) marks@hpgrlt * Language: C * Package: N/A * Status: Reusable Software Component * * (c) Copyright 1987, Hewlett-Packard Company. ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** http://www.apache.org/licenses/LICENSE-2.0 ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. * ******************************************************************************** Revision 1.1 2007/02/02 23:39:07 theraysmith Fixed portability issues Revision 1.1.1.1 2004/02/20 19:39:06 slumos Import original HP distribution */ #ifndef CUTILH #define CUTILH /*---------------------------------------------------------------------- I n c l u d e s ----------------------------------------------------------------------*/ #include #include #include #include "general.h" #include "tprintf.h" /*---------------------------------------------------------------------- T y p e s ----------------------------------------------------------------------*/ #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #define CHARS_PER_LINE 500 #if defined(__STDC__) || defined(__cplusplus) || MAC_OR_DOS # define _ARGS(s) s #else # define _ARGS(s) () #endif //typedef int (*int_proc) (void); typedef void (*void_proc) (...); typedef char *(*char_proc) _ARGS ((...)); typedef void *(*void_star_proc) _ARGS ((...)); typedef int (*int_void) (void); typedef void (*void_void) (void); typedef int (*int_compare) (void *, void *); typedef void (*void_dest) (void *); extern void_proc deallocate; extern char_proc allocate; /*---------------------------------------------------------------------- M a c r o s ----------------------------------------------------------------------*/ /********************************************************************** * min * * Minimum of two values **********************************************************************/ #ifndef min #define min(x,y) \ ((x) < (y) ? (x) : (y)) #endif /********************************************************************** * max * * Maximum of two values **********************************************************************/ #ifndef max #define max(x,y) \ ((y) < (x) ? (x) : (y)) #endif /********************************************************************** * new_line * * Print a new line character on stdout. **********************************************************************/ #define new_line() \ tprintf("\n") /********************************************************************** * print_string * * Print a string on stdout. **********************************************************************/ #define print_string(str) \ printf ("%s\n", str) /********************************************************************** * strfree * * Reserve a spot in memory for the string to be stored. Copy the string * to it and return the result. **********************************************************************/ #define strfree(s) ((*deallocate) (s)) /********************************************************************** * strsave * * Reserve a spot in memory for the string to be stored. Copy the string * to it and return the result. **********************************************************************/ #define strsave(s) \ ((s) != NULL ? \ ((char*) strcpy ((*allocate) (strlen(s)+1), s)) : \ (NULL)) /*---------------------------------------------------------------------- F u n c t i o n s ----------------------------------------------------------------------*/ long long_rand(long limit); FILE *open_file(const char *filename, const char *mode); /* util.c long long_rand _ARGS ((long limit)); FILE *open_file _ARGS((char *filename, char *mode)); #undef _ARGS */ #endif