diff options
| author | Roman Mohr <roman@fenkhuber.at> | 2013-06-21 23:51:47 +0200 |
|---|---|---|
| committer | Roman Mohr <roman@fenkhuber.at> | 2013-06-23 16:51:34 +0200 |
| commit | 578291641606aa0eaf9d28b125cb634a9ef27540 (patch) | |
| tree | 9142126cb6167e8ba295d39712c97d80adcb1b8d /include | |
| download | libjoedog-578291641606aa0eaf9d28b125cb634a9ef27540.tar.gz libjoedog-578291641606aa0eaf9d28b125cb634a9ef27540.tar.xz libjoedog-578291641606aa0eaf9d28b125cb634a9ef27540.zip | |
initial import from fido-1.1.0-beta
Diffstat (limited to 'include')
| -rw-r--r-- | include/Makefile.am | 27 | ||||
| -rw-r--r-- | include/joedog/boolean.h | 19 | ||||
| -rw-r--r-- | include/joedog/defs.h | 31 | ||||
| -rw-r--r-- | include/joedog/getopt.h | 172 | ||||
| -rw-r--r-- | include/joedog/joedog.h | 139 |
5 files changed, 388 insertions, 0 deletions
diff --git a/include/Makefile.am b/include/Makefile.am new file mode 100644 index 0000000..4487414 --- /dev/null +++ b/include/Makefile.am @@ -0,0 +1,27 @@ +# +# include/Makefile.am +# +# Copyright (C) 2013 by +# Jeffrey Fulmer - <jeff@joedog.org>, et al. +# This file is distributed as part of libjoedog +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# 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; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + + +nobase_include_HEADERS = joedog/boolean.h \ + joedog/defs.h \ + joedog/getopt.h \ + joedog/joedog.h diff --git a/include/joedog/boolean.h b/include/joedog/boolean.h new file mode 100644 index 0000000..0fdfc08 --- /dev/null +++ b/include/joedog/boolean.h @@ -0,0 +1,19 @@ +#ifndef BOOLEAN_H +#define BOOLEAN_H + +typedef enum {boolean_false=0,boolean_true=1} BOOLEAN; +typedef enum {toolean_false=0,toolean_true=1,toolean_undefined=-1} TOOLEAN; + +#ifndef FALSE +# define FALSE boolean_false +#endif /*FALSE*/ + +#ifndef TRUE +# define TRUE boolean_true +#endif /*TRUE*/ + +#ifndef UNDEFINED +# define UNDEFINED toolean_undefined +#endif /*UNDEFINED*/ + +#endif/*BOOLEAN_H*/ diff --git a/include/joedog/defs.h b/include/joedog/defs.h new file mode 100644 index 0000000..da35665 --- /dev/null +++ b/include/joedog/defs.h @@ -0,0 +1,31 @@ +#ifndef JOEDOG_DEFS_H +#define JOEDOG_DEFS_H +#define private static +#define public + +#include <ctype.h> + +#define ISUPPER(x) (((unsigned)(x) >= 'A') && ((unsigned)(x) <= 'Z')) +#define ISLOWER(x) (((unsigned)(x) >= 'a') && ((unsigned)(x) <= 'z')) +#define ISCOMMENT(x) (x == '#') +#define ISSEPARATOR(x) (('='==(x))||(':'==(x))) +#define ISSPACE(x) isspace((unsigned char)(x)) +#define ISOPERAND(x) ('<'==(x)||'>'==(x)||'='==(x)) +#define ISDIGIT(x) isdigit ((unsigned char)(x)) +#define ISQUOTE(x) (x == '"' || x == '\'') +#if STDC_HEADERS +# define TOLOWER(Ch) tolower (Ch) +# define TOUPPER(Ch) toupper (Ch) +#else +# define TOLOWER(Ch) (ISUPPER (Ch) ? tolower (Ch) : (Ch)) +# define TOUPPER(Ch) (ISLOWER (Ch) ? toupper (Ch) : (Ch)) +#endif + +#ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +#endif /*EXIT_SUCESS*/ +#ifndef EXIT_FAILURE +# define EXIT_FAILURE 1 +#endif /*EXIT_FAILURE*/ + +#endif/*JOEDOG_DEFS_H*/ diff --git a/include/joedog/getopt.h b/include/joedog/getopt.h new file mode 100644 index 0000000..057a42f --- /dev/null +++ b/include/joedog/getopt.h @@ -0,0 +1,172 @@ +/* Declarations for getopt. + Copyright (C) 1989,90,91,92,93,94,96,97,98 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301 USA. + + $Id: getopt.h,v 1.1.1.1 2012/02/02 16:11:59 jdfulmer Exp $ +*/ + +#ifndef _GETOPT_H + +#ifndef __need_getopt +# define _GETOPT_H 1 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* For communication from `getopt' to the caller. + When `getopt' finds an option that takes an argument, + the argument value is returned here. + Also, when `ordering' is RETURN_IN_ORDER, + each non-option ARGV-element is returned here. */ + +extern char *optarg; + +/* Index in ARGV of the next element to be scanned. + This is used for communication to and from the caller + and for communication between successive calls to `getopt'. + + On entry to `getopt', zero means this is the first call; initialize. + + When `getopt' returns -1, this is the index of the first of the + non-option elements that the caller should itself scan. + + Otherwise, `optind' communicates from one call to the next + how much of ARGV has been scanned so far. */ + +extern int optind; + +/* Callers store zero here to inhibit the error message `getopt' prints + for unrecognized options. */ + +extern int opterr; + +/* Set to an option character which was unrecognized. */ + +extern int optopt; + +#ifndef __need_getopt +/* Describe the long-named options requested by the application. + The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector + of `struct option' terminated by an element containing a name which is + zero. + + The field `has_arg' is: + no_argument (or 0) if the option does not take an argument, + required_argument (or 1) if the option requires an argument, + optional_argument (or 2) if the option takes an optional argument. + + If the field `flag' is not NULL, it points to a variable that is set + to the value given in the field `val' when the option is found, but + left unchanged if the option is not found. + + To have a long-named option do something other than set an `int' to + a compiled-in constant, such as set a value from `optarg', set the + option's `flag' field to zero and its `val' field to a nonzero + value (the equivalent single-letter option character, if there is + one). For long options that have a zero `flag' field, `getopt' + returns the contents of the `val' field. */ + +struct option +{ +# if defined __STDC__ && __STDC__ + const char *name; +# else + char *name; +# endif + /* has_arg can't be an enum because some compilers complain about + type mismatches in all the code that assumes it is an int. */ + int has_arg; + int *flag; + int val; +}; + +/* Names for the values of the `has_arg' field of `struct option'. */ + +# define no_argument 0 +# define required_argument 1 +# define optional_argument 2 +#endif /* need getopt */ + + +/* Get definitions and prototypes for functions to process the + arguments in ARGV (ARGC of them, minus the program name) for + options given in OPTS. + + Return the option character from OPTS just read. Return -1 when + there are no more options. For unrecognized options, or options + missing arguments, `optopt' is set to the option letter, and '?' is + returned. + + The OPTS string is a list of characters which are recognized option + letters, optionally followed by colons, specifying that that letter + takes an argument, to be placed in `optarg'. + + If a letter in OPTS is followed by two colons, its argument is + optional. This behavior is specific to the GNU `getopt'. + + The argument `--' causes premature termination of argument + scanning, explicitly telling `getopt' that there are no more + options. + + If OPTS begins with `--', then non-option arguments are treated as + arguments to the option '\0'. This behavior is specific to the GNU + `getopt'. */ + +#if defined __STDC__ && __STDC__ +# ifdef __GNU_LIBRARY__ +/* Many other libraries have conflicting prototypes for getopt, with + differences in the consts, in stdlib.h. To avoid compilation + errors, only prototype getopt for the GNU C library. */ +extern int getopt (int __argc, char *const *__argv, const char *__shortopts); +# else /* not __GNU_LIBRARY__ */ +extern int getopt (); +# endif /* __GNU_LIBRARY__ */ + +# ifndef __need_getopt +extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts, + const struct option *__longopts, int *__longind); +extern int getopt_long_only (int __argc, char *const *__argv, + const char *__shortopts, + const struct option *__longopts, int *__longind); + +/* Internal only. Users should not call this directly. */ +extern int _getopt_internal (int __argc, char *const *__argv, + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only); +# endif +#else /* not __STDC__ */ +extern int getopt (); +# ifndef __need_getopt +extern int getopt_long (); +extern int getopt_long_only (); + +extern int _getopt_internal (); +# endif +#endif /* __STDC__ */ + +#ifdef __cplusplus +} +#endif + +/* Make sure we later can get all the definitions and declarations. */ +#undef __need_getopt + +#endif /* getopt.h */ diff --git a/include/joedog/joedog.h b/include/joedog/joedog.h new file mode 100644 index 0000000..5698529 --- /dev/null +++ b/include/joedog/joedog.h @@ -0,0 +1,139 @@ +#ifndef JOEDOG_H +#define JOEDOG_H +/** + * JOEDOG HEADER + * + * Copyright (C) 2000-2006 Jeffrey Fulmer <jeff@joedog.org> + * This file is part of Siege + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * -- + */ +#include <config.h> +#include <time.h> +#include <stdarg.h> +#include <joedog/boolean.h> + +/** + * Error notification + */ +typedef enum { + DEBUG = 0, + WARNING = 1, + ERROR = 2, + FATAL = 3, + NOTICE = 4 +} LEVEL; + +void OPENLOG(char *program_name); +void CLOSELOG(void); +void SYSLOG(LEVEL L, const char *fmt, ...); +void NOTIFY(LEVEL L, const char *fmt, ...); +void VERBOSE(BOOLEAN verbose, const char *fmt, ...); + +void * xrealloc(void *, size_t); +void * xmalloc (size_t); +void * xcalloc (size_t, size_t); +char * xstrdup(const char *str); +void xfree(void *ptr); + +/** + * Utility functions + */ +void itoa(int, char []); +void reverse(char []); +int my_random(int, int); +char *substring(char *, int, int); +float elapsed_time(clock_t); + +/** + * snprintf functions + */ +#define PORTABLE_SNPRINTF_VERSION_MAJOR 2 +#define PORTABLE_SNPRINTF_VERSION_MINOR 2 + +#ifdef HAVE_SNPRINTF +#include <stdio.h> +#else +extern int snprintf(char *, size_t, const char *, /*args*/ ...); +extern int vsnprintf(char *, size_t, const char *, va_list); +#endif + +#if defined(HAVE_SNPRINTF) && defined(PREFER_PORTABLE_SNPRINTF) +extern int portable_snprintf(char *str, size_t str_m, const char *fmt, /*args*/ ...); +extern int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap); +#define snprintf portable_snprintf +#define vsnprintf portable_vsnprintf +#endif + +#ifndef __CYGWIN__ +extern int asprintf (char **ptr, const char *fmt, /*args*/ ...); +extern int vasprintf (char **ptr, const char *fmt, va_list ap); +extern int asnprintf (char **ptr, size_t str_m, const char *fmt, /*args*/ ...); +extern int vasnprintf(char **ptr, size_t str_m, const char *fmt, va_list ap); +#endif/*__CYGWIN__*/ + +/** + * chomps the newline character off + * the end of a string. + */ +char *chomp(char *str); + +/** + * trims the white space from the right + * of a string. + */ +char *rtrim(char *str); + +/** + * trims the white space from the left + * of a string. + */ +char *ltrim(char *str); + +/** + * trims the white space from the left + * and the right sides of a string. + */ +char * trim(char *str); + +/** + * split string *s on pattern pattern pointer + * n_words holds the size of ** + */ +char **split(char pattern, char *s, int *n_words); + +/** + * free memory allocated by split + */ +void split_free(char **split, int length); + + +/** + * tests for empty string; warns if invalid + */ +int empty(const char *s); + +/** + * portable strsep + */ +char *xstrsep(char **stringp, const char *delim); + +/** + * string allocation + */ +char *stralloc(char *); + +#endif/* JOEDOG_H */ |
