summaryrefslogtreecommitdiffstats
path: root/src/include/lib.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/lib.h')
-rw-r--r--src/include/lib.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/src/include/lib.h b/src/include/lib.h
new file mode 100644
index 0000000..6b1d854
--- /dev/null
+++ b/src/include/lib.h
@@ -0,0 +1,161 @@
+/* Copyright (C) 1989-2020 Free Software Foundation, Inc.
+ Written by James Clark (jjc@jclark.com)
+
+This file is part of groff.
+
+groff 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 3 of the License, or
+(at your option) any later version.
+
+groff 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GROFF_LIB_H
+#define GROFF_LIB_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#if defined(__INTERIX) && !defined(_ALL_SOURCE)
+#define _ALL_SOURCE
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifndef HAVE_STRERROR
+ char *strerror(int);
+#endif
+ const char *i_to_a(int);
+ const char *ui_to_a(unsigned int);
+ const char *if_to_a(int, int);
+#ifdef __cplusplus
+}
+#endif
+
+#define __GETOPT_PREFIX groff_
+#include <getopt.h>
+
+#ifdef HAVE_SETLOCALE
+#include <locale.h>
+#define getlocale(category) setlocale(category, NULL)
+#else /* !HAVE_SETLOCALE */
+#define LC_ALL 0
+#define LC_CTYPE 0
+#define setlocale(category, locale) (void)(category, locale)
+#define getlocale(category) ((void)(category), (char *)"C")
+#endif /* !HAVE_SETLOCALE */
+
+#include <stdbool.h>
+
+char *strsave(const char *s);
+bool is_prime(unsigned);
+double groff_hypot(double, double);
+
+#include <stdio.h>
+#include <string.h>
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#include <stdarg.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* LynxOS 4.0.0 doesn't declare vfprintf() */
+#ifdef NEED_DECLARATION_VFPRINTF
+ int vfprintf(FILE *, const char *, va_list);
+#endif
+
+#ifndef HAVE_MKSTEMP
+/* since mkstemp() is defined as a real C++ function if taken from
+ groff's mkstemp.cpp we need a declaration */
+int mkstemp(char *tmpl);
+#endif /* HAVE_MKSTEMP */
+
+int mksdir(char *tmpl);
+
+#ifdef __cplusplus
+ FILE *xtmpfile(char **namep = 0,
+ const char *postfix_long = 0,
+ const char *postfix_short = 0,
+ int do_unlink = 1);
+ char *xtmptemplate(const char *postfix_long,
+ const char *postfix_short);
+#endif
+
+#ifdef NEED_DECLARATION_POPEN
+ FILE *popen(const char *, const char *);
+#endif /* NEED_DECLARATION_POPEN */
+
+#ifdef NEED_DECLARATION_PCLOSE
+ int pclose (FILE *);
+#endif /* NEED_DECLARATION_PCLOSE */
+
+ size_t file_name_max(const char *fname);
+ size_t path_name_max(void);
+
+ extern char invalid_char_table[];
+
+ inline bool is_invalid_input_char(int c)
+ {
+ return (c >= 0 && invalid_char_table[c]);
+ }
+
+#ifdef HAVE_STRCASECMP
+#ifdef NEED_DECLARATION_STRCASECMP
+// Ultrix4.3's string.h fails to declare this.
+ int strcasecmp(const char *, const char *); }
+#endif /* NEED_DECLARATION_STRCASECMP */
+#else /* !HAVE_STRCASECMP */
+ int strcasecmp(const char *, const char *);
+#endif /* HAVE_STRCASECMP */
+
+#if !defined(_AIX) && !defined(sinix) && !defined(__sinix__)
+#ifdef HAVE_STRNCASECMP
+#ifdef NEED_DECLARATION_STRNCASECMP
+// SunOS's string.h fails to declare this.
+ int strncasecmp(const char *, const char *, int);
+#endif /* NEED_DECLARATION_STRNCASECMP */
+#else /* !HAVE_STRNCASECMP */
+ int strncasecmp(const char *, const char *, size_t);
+#endif /* HAVE_STRNCASECMP */
+#endif /* !_AIX && !sinix && !__sinix__ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef HAVE_CC_LIMITS_H
+#include <limits.h>
+#else /* !HAVE_CC_LIMITS_H */
+#define INT_MAX 2147483647
+#endif /* !HAVE_CC_LIMITS_H */
+
+/* Maximum number of digits in decimal representations of `int` types
+ not including a leading minus sign. */
+#define INT_DIGITS 19 /* enough for 64 bit integer */
+#define UINT_DIGITS 20
+
+#ifdef PI
+#undef PI
+#endif
+
+static const double PI = 3.14159265358979323846;
+
+#endif /* GROFF_LIB_H */
+
+// Local Variables:
+// fill-column: 72
+// mode: C++
+// End:
+// vim: set cindent noexpandtab shiftwidth=2 textwidth=72: