summaryrefslogtreecommitdiff
path: root/include/schily.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/schily.h')
-rw-r--r--include/schily.h288
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 */