tesseract/cutil/cutil.h
2008-02-01 00:05:57 +00:00

159 lines
4.5 KiB
C

/* -*-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 <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "general.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() \
printf ("\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