diff options
Diffstat (limited to 'include/schily.h')
-rw-r--r-- | include/schily.h | 288 |
1 files changed, 288 insertions, 0 deletions
diff --git a/include/schily.h b/include/schily.h new file mode 100644 index 0000000..ec7cbb4 --- /dev/null +++ b/include/schily.h @@ -0,0 +1,288 @@ +/* + * This file has been modified for the cdrkit suite. + * + * The behaviour and appearence of the program code below can differ to a major + * extent from the version distributed by the original author(s). + * + * For details, see Changelog file distributed with the cdrkit package. If you + * received this file from another source then ask the distributing person for + * a log of modifications. + * + */ + +/* @(#)schily.h 1.54 06/01/12 Copyright 1985-2006 J. Schilling */ +/* + * Definitions for libschily + * + * This file should be included past: + * + * mconfig.h / config.h + * standard.h + * stdio.h + * stdlib.h (better use stdxlib.h) + * unistd.h (better use unixstd.h) needed LARGEFILE support + * string.h + * sys/types.h + * + * If you need stdio.h, you must include it before schily.h + * + * NOTE: If you need ctype.h and did not include stdio.h you need to + * include ctype.h past schily.h as OpenBSD does not follow POSIX and + * defines EOF in ctype.h + * + * Copyright (c) 1985-2006 J. Schilling + */ +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * 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; see the file COPYING. If not, write to the Free Software + * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef _SCHILY_H +#define _SCHILY_H + +#ifndef _STANDARD_H +#include <standard.h> +#endif +#ifndef _CCOMDEFS_H +#include <ccomdefs.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_INCL_SYS_TYPES_H) || defined(off_t) +# ifndef FOUND_OFF_T +# define FOUND_OFF_T +# endif +#endif +#if defined(_INCL_SYS_TYPES_H) || defined(size_t) +# ifndef FOUND_SIZE_T +# define FOUND_SIZE_T +# endif +#endif + +#ifdef __never_def__ +/* + * It turns out that we cannot use the folloginw definition because there are + * some platforms that do not behave application friendly. These are mainly + * BSD-4.4 based systems (which #undef a definition when size_t is available. + * We actually removed this code because of a problem with QNX Neutrino. + * For this reason, it is important not to include <sys/types.h> directly but + * via the Schily SING include files so we know whether it has been included + * before we come here. + */ +#if defined(_SIZE_T) || defined(_T_SIZE_) || defined(_T_SIZE) || \ + defined(__SIZE_T) || defined(_SIZE_T_) || \ + defined(_GCC_SIZE_T) || defined(_SIZET_) || \ + defined(__sys_stdtypes_h) || defined(___int_size_t_h) || defined(size_t) + +#ifndef FOUND_SIZE_T +# define FOUND_SIZE_T /* We already included a size_t definition */ +#endif +#endif +#endif /* __never_def__ */ + +#if defined(HAVE_LARGEFILES) +# define _fcons _fcons64 +# define fdup fdup64 +# define fileluopen fileluopen64 +# define fileopen fileopen64 +# define filemopen filemopen64 +# define filepos filepos64 +# define filereopen filereopen64 +# define fileseek fileseek64 +# define filesize filesize64 +# define filestat filestat64 +# define _openfd _openfd64 +#endif + +#ifdef EOF /* stdio.h has been included */ +extern int _cvmod(const char *, int *, int *); +extern FILE *_fcons(FILE *, int, int); +extern FILE *fdup(FILE *); +extern int fdown(FILE *); +extern int rols_fexecl(const char *, FILE *, FILE *, FILE *, const char *, ...); +extern int rols_fexecle(const char *, FILE *, FILE *, FILE *, const char *, ...); + /* 6th arg not const, fexecv forces av[ac] = NULL */ +extern int rols_fexecv(const char *, FILE *, FILE *, FILE *, int, char **); +extern int rols_fexecve(const char *, FILE *, FILE *, FILE *, char * const *, + char * const *); +extern int fspawnv(FILE *, FILE *, FILE *, int, char * const *); +extern int fspawnl(FILE *, FILE *, FILE *, const char *, const char *, ...); +extern int fspawnv_nowait(FILE *, FILE *, FILE *, const char *, int, + char *const*); +extern int rols_fgetline(FILE *, char *, int); +extern int fgetstr(FILE *, char *, int); +extern void file_raise(FILE *, int); +extern int fileclose(FILE *); +extern FILE *fileluopen(int, const char *); +extern FILE *fileopen(const char *, const char *); +#ifdef _INCL_SYS_TYPES_H +extern FILE *filemopen(const char *, const char *, mode_t); +#endif +#ifdef FOUND_OFF_T +extern off_t filepos(FILE *); +#endif +extern int fileread(FILE *, void *, int); +extern int ffileread(FILE *, void *, int); +extern FILE *filereopen(const char *, const char *, FILE *); +#ifdef FOUND_OFF_T +extern int fileseek(FILE *, off_t); +extern off_t filesize(FILE *); +#endif +#ifdef S_IFMT +extern int filestat(FILE *, struct stat *); +#endif +extern int filewrite(FILE *, void *, int); +extern int ffilewrite(FILE *, void *, int); +extern int flush(void); +extern int fpipe(FILE **); +extern int getbroken(FILE *, char *, char, char **, int); +extern int ofindline(FILE *, char, const char *, int, char **, int); +extern int peekc(FILE *); + +#ifdef __never_def__ +/* + * We cannot define this or we may get into problems with DOS based systems. + */ +extern int spawnv(FILE *, FILE *, FILE *, int, char * const *); +extern int spawnl(FILE *, FILE *, FILE *, const char *, const char *, ...); +extern int spawnv_nowait(FILE *, FILE *, FILE *, const char *, int, + char *const*); +#endif /* __never_def__m */ +#endif /* EOF */ + +extern int _niread(int, void *, int); +extern int _niwrite(int, void *, int); +extern int _nixread(int, void *, int); +extern int _nixwrite(int, void *, int); +extern int _openfd(const char *, int); +extern int on_comerr(void (*fun)(int, void *), void *arg); +/*PRINTFLIKE1*/ +extern void comerr(const char *, ...) __printflike__(1, 2); +/*PRINTFLIKE2*/ +extern void comerrno(int, const char *, ...) __printflike__(2, 3); +/*PRINTFLIKE1*/ +extern int errmsg(const char *, ...) __printflike__(1, 2); +/*PRINTFLIKE2*/ +extern int errmsgno(int, const char *, ...) __printflike__(2, 3); +#ifdef FOUND_SIZE_T +/*PRINTFLIKE3*/ +extern int serrmsg(char *, size_t, const char *, ...) __printflike__(3, 4); +/*PRINTFLIKE4*/ +extern int serrmsgno(int, char *, size_t, const char *, ...) __printflike__(4, 5); +#endif +extern void comexit(int); +extern char *errmsgstr(int); +/*PRINTFLIKE1*/ +extern int schily_error(const char *, ...) __printflike__(1, 2); +extern char *fillbytes(void *, int, char); +extern char *findbytes(const void *, int, char); +extern int findline(const char *, char, const char *, int, char **, int); +extern int rols_getline(char *, int); +extern int getstr(char *, int); +extern int breakline(char *, char, char **, int); +extern int getallargs(int *, char * const**, const char *, ...); +extern int getargs(int *, char * const**, const char *, ...); +extern int getfiles(int *, char * const**, const char *); +extern char *astoi(const char *, int *); +extern char *astol(const char *, long *); +extern char *astolb(const char *, long *, int base); +#ifdef _UTYPES_H +extern char *astoll(const char *, Llong *); +extern char *astollb(const char *, Llong *, int); +extern char *astoull(const char *, Ullong *); +extern char *astoullb(const char *, Ullong *, int); +#endif + +/*extern void handlecond __PR((const char *, SIGBLK *, int(*)(const char *, long, long), long));*/ +/*extern void unhandlecond __PR((SIGBLK *));*/ + +extern int patcompile(const unsigned char *, int, int *); +extern unsigned char *patmatch(const unsigned char *, const int *, + const unsigned char *, int, int, int, int[]); +extern unsigned char *patlmatch(const unsigned char *, const int *, + const unsigned char *, int, int, int, int[]); + +extern char *movebytes(const void *, void *, int); + +extern void save_args(int, char **); +extern int saved_ac(void); +extern char **saved_av(void); +extern char *saved_av0(void); +#ifndef seterrno +extern int seterrno(int); +#endif +extern void set_progname(const char *); +extern char *get_progname(void); + +extern void setfp(void * const *); +extern int wait_chld(int); /* for fspawnv_nowait() */ +extern int geterrno(void); +extern void raisecond(const char *, long); +extern char *strcatl(char *, ...); +extern int streql(const char *, const char *); +#ifdef va_arg +extern int format(void (*)(char, long), long, const char *, va_list); +#else +extern int format(void (*)(char, long), long, const char *, void *); +#endif + +extern int ftoes(char *, double, int, int); +extern int ftofs(char *, double, int, int); + +extern void swabbytes(void *, int); +extern char **getmainfp(void); +extern char **getavp(void); +extern char *getav0(void); +extern void **getfp(void); +extern int flush_reg_windows(int); +extern int cmpbytes(const void *, const void *, int); +extern int cmpnullbytes(const void *, int); + +#ifdef nonono +#if defined(HAVE_LARGEFILES) +/* + * To allow this, we need to figure out how to do autoconfiguration for off64_t + */ +extern FILE *_fcons64(FILE *, int, int); +extern FILE *fdup64(FILE *); +extern FILE *fileluopen64(int, const char *); +extern FILE *fileopen64(const char *, const char *); +#ifdef FOUND_OFF_T +extern off64_t filepos64(FILE *); +#endif +extern FILE *filereopen64(const char *, const char *, FILE *); +#ifdef FOUND_OFF_T +extern int fileseek64(FILE *, off64_t); +extern off64_t filesize64(FILE *); +#endif +#ifdef S_IFMT +extern int filestat64(FILE *, struct stat *); +#endif +extern int _openfd64(const char *, int); +#endif +#endif + +#ifdef __cplusplus +} +#endif + +#if defined(_JOS) || defined(JOS) +# ifndef _JOS_IO_H +# include <jos_io.h> +# endif +#endif + +#endif /* _SCHILY_H */ |