diff options
author | ru <ru@FreeBSD.org> | 2005-10-20 10:45:19 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2005-10-20 10:45:19 +0000 |
commit | b22adb8e7c253c75fb05127eeeaef2968232b32a (patch) | |
tree | 37609e1685a209a2a273664ce67fc2f20f789996 /contrib/groff/src/include | |
parent | fae1a322eff5adb3ccb8745188cd83a6d27c5267 (diff) | |
parent | 353ac0b339df3493d1950b6527988b77b76bd197 (diff) | |
download | FreeBSD-src-b22adb8e7c253c75fb05127eeeaef2968232b32a.zip FreeBSD-src-b22adb8e7c253c75fb05127eeeaef2968232b32a.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r151497,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/groff/src/include')
33 files changed, 604 insertions, 132 deletions
diff --git a/contrib/groff/src/include/DviChar.h b/contrib/groff/src/include/DviChar.h new file mode 100644 index 0000000..a77f036 --- /dev/null +++ b/contrib/groff/src/include/DviChar.h @@ -0,0 +1,37 @@ +/* + * DviChar.h + * + * descriptions for mapping dvi names to + * font indexes and back. Dvi fonts are all + * 256 elements (actually only 256-32 are usable). + * + * The encoding names are taken from X - + * case insensitive, a dash separating the + * CharSetRegistry from the CharSetEncoding + */ + +# define DVI_MAX_SYNONYMS 10 +# define DVI_MAP_SIZE 256 +# define DVI_HASH_SIZE 256 + +typedef struct _dviCharNameHash { + struct _dviCharNameHash *next; + const char *name; + int position; +} DviCharNameHash; + +typedef struct _dviCharNameMap { + const char *encoding; + int special; + const char *dvi_names[DVI_MAP_SIZE][DVI_MAX_SYNONYMS]; + DviCharNameHash *buckets[DVI_HASH_SIZE]; +} DviCharNameMap; + +DviCharNameMap *DviFindMap (char *); +void DviRegisterMap (DviCharNameMap *); +#ifdef NOTDEF +char *DviCharName (DviCharNameMap *, int, int); +#else +#define DviCharName(map,index,synonym) ((map)->dvi_names[index][synonym]) +#endif +int DviCharIndex (DviCharNameMap *, const char *); diff --git a/contrib/groff/src/include/Makefile.sub b/contrib/groff/src/include/Makefile.sub index 620d345..58e1ac9 100644 --- a/contrib/groff/src/include/Makefile.sub +++ b/contrib/groff/src/include/Makefile.sub @@ -5,12 +5,14 @@ HDRS=\ color.h \ device.h \ driver.h \ + DviChar.h \ errarg.h \ error.h \ font.h \ geometry.h \ getopt.h \ - groff-getopt.h \ + getopt_int.h \ + gettext.h \ htmlhint.h \ index.h \ lib.h \ @@ -20,9 +22,13 @@ HDRS=\ printer.h \ ptable.h \ refid.h \ + relocate.h \ search.h \ searchpath.h \ - stringclass.h + stringclass.h \ + symbol.h \ + unicode.h \ + XFontName.h GENHDRS=defs.h all depend: $(GENHDRS) @@ -31,6 +37,7 @@ defs.h: FORCE @$(SHELL) $(top_srcdir)/gendef.sh defs.h \ "PROG_PREFIX=\"$(g)\"" \ "DEVICE=\"$(DEVICE)\"" \ + "INSTALLPATH=\"$(prefix)\"" \ "BINPATH=\"$(bindir)\"" \ "FONTPATH=\"$(fontpath)\"" \ "MACROPATH=\"$(tmacpath)\"" \ diff --git a/contrib/groff/src/include/XFontName.h b/contrib/groff/src/include/XFontName.h new file mode 100644 index 0000000..4e9c694 --- /dev/null +++ b/contrib/groff/src/include/XFontName.h @@ -0,0 +1,50 @@ +typedef struct _xFontName { + char Registry[256]; + char Foundry[256]; + char FamilyName[256]; + char WeightName[256]; + char Slant[3]; + char SetwidthName[256]; + char AddStyleName[256]; + unsigned int PixelSize; + unsigned int PointSize; + unsigned int ResolutionX; + unsigned int ResolutionY; + char Spacing[2]; + unsigned int AverageWidth; + char CharSetRegistry[256]; + char CharSetEncoding[256]; +} XFontName; + +#define FontNameRegistry (1<<0) +#define FontNameFoundry (1<<1) +#define FontNameFamilyName (1<<2) +#define FontNameWeightName (1<<3) +#define FontNameSlant (1<<4) +#define FontNameSetwidthName (1<<5) +#define FontNameAddStyleName (1<<6) +#define FontNamePixelSize (1<<7) +#define FontNamePointSize (1<<8) +#define FontNameResolutionX (1<<9) +#define FontNameResolutionY (1<<10) +#define FontNameSpacing (1<<11) +#define FontNameAverageWidth (1<<12) +#define FontNameCharSetRegistry (1<<13) +#define FontNameCharSetEncoding (1<<14) + +#define SlantRoman "R" +#define SlantItalic "I" +#define SlantOblique "O" +#define SlantReverseItalic "RI" +#define SlantReverseOblique "RO" + +#define SpacingMonoSpaced "M" +#define SpacingProportional "P" +#define SpacingCharacterCell "C" + +typedef char *XFontNameString; + +Bool XParseFontName (XFontNameString, XFontName *, unsigned int *); +Bool XFormatFontName (XFontName *, unsigned int, XFontNameString); +Bool XCompareFontName (XFontName *, XFontName *, unsigned int); +Bool XCopyFontName (XFontName *, XFontName *, unsigned int); diff --git a/contrib/groff/src/include/assert.h b/contrib/groff/src/include/assert.h index 18d9c26..76b3b20 100644 --- a/contrib/groff/src/include/assert.h +++ b/contrib/groff/src/include/assert.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef ASSERT_H #define ASSERT_H diff --git a/contrib/groff/src/include/cmap.h b/contrib/groff/src/include/cmap.h index 1537d46..d786829 100644 --- a/contrib/groff/src/include/cmap.h +++ b/contrib/groff/src/include/cmap.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef UCHAR_MAX #define UCHAR_MAX 255 diff --git a/contrib/groff/src/include/color.h b/contrib/groff/src/include/color.h index 205f70e..52f97c6 100644 --- a/contrib/groff/src/include/color.h +++ b/contrib/groff/src/include/color.h @@ -21,9 +21,10 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <stddef.h> +#include "symbol.h" enum color_scheme {DEFAULT, CMY, CMYK, RGB, GRAY}; @@ -38,8 +39,9 @@ private: const size_t); public: + symbol nm; enum {MAX_COLOR_VAL = 0xffff}; - color() : scheme(DEFAULT){} + color(symbol s = default_symbol) : scheme(DEFAULT), nm(s) {} color(const color * const); ~color(); void *operator new(size_t); diff --git a/contrib/groff/src/include/config.hin b/contrib/groff/src/include/config.hin index 13a3630..5f871aa 100644 --- a/contrib/groff/src/include/config.hin +++ b/contrib/groff/src/include/config.hin @@ -3,14 +3,21 @@ /* Define if your C++ doesn't understand `delete []'. */ #undef ARRAY_DELETE_NEEDS_SIZE +/* Define if you have a C++ <inttypes.h>. */ +#undef HAVE_CC_INTTYPES_H + /* Define if you have a C++ <limits.h>. */ #undef HAVE_CC_LIMITS_H /* Define if you have a C++ <osfcn.h>. */ #undef HAVE_CC_OSFCN_H -/* Define if you have a C++ <stdint.h>. */ -#undef HAVE_CC_STDINT_H +/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you + don't. */ +#undef HAVE_DECL_SYS_SIGLIST + +/* Define to 1 if you have the <direct.h> header file. */ +#undef HAVE_DIRECT_H /* Define to 1 if you have the <dirent.h> header file. */ #undef HAVE_DIRENT_H @@ -33,6 +40,9 @@ /* Define to 1 if you have the `isatty' function. */ #undef HAVE_ISATTY +/* Define to 1 if you have the `kill' function. */ +#undef HAVE_KILL + /* Define to 1 if you have the <limits.h> header file. */ #undef HAVE_LIMITS_H @@ -48,6 +58,9 @@ /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP +/* Define to 1 if you have the <process.h> header file. */ +#undef HAVE_PROCESS_H + /* Define to 1 if you have the `putenv' function. */ #undef HAVE_PUTENV @@ -93,10 +106,10 @@ /* Define to 1 if you have the <sys/dir.h> header file. */ #undef HAVE_SYS_DIR_H -/* Define if you have sys_errlist in <errno.h> or in <stdio.h>. */ +/* Define if you have sys_errlist in <errno.h>, <stdio.h>, or <stdlib.h>. */ #undef HAVE_SYS_ERRLIST -/* Define if you have sysnerr in <errno.h> or <stdio.h>. */ +/* Define if you have sys_nerr in <errno.h>, <stdio.h>, or <stdio.h>. */ #undef HAVE_SYS_NERR /* Define to 1 if you have the <sys/stat.h> header file. */ @@ -111,6 +124,9 @@ /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H +/* Define to 1 if you have the `vsnprintf' function. */ +#undef HAVE_VSNPRINTF + /* Define if the host's encoding is EBCDIC. */ #undef IS_EBCDIC_HOST @@ -147,6 +163,12 @@ /* Define if your C++ doesn't declare strncasecmp(). */ #undef NEED_DECLARATION_STRNCASECMP +/* Define if your C++ doesn't declare vfprintf(). */ +#undef NEED_DECLARATION_VFPRINTF + +/* Define if your C++ doesn't declare vsnprintf(). */ +#undef NEED_DECLARATION_VSNPRINTF + /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT @@ -174,9 +196,6 @@ /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS -/* Define to 1 if `sys_siglist' is declared by <signal.h> or <unistd.h>. */ -#undef SYS_SIGLIST_DECLARED - /* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */ #undef TRADITIONAL_CPP @@ -184,6 +203,9 @@ core image was produced for a process that was terminated by a signal. */ #undef WCOREFLAG +/* Define to 1 if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING + /* Define if -D_POSIX_SOURCE is necessary. */ #undef _POSIX_SOURCE diff --git a/contrib/groff/src/include/cset.h b/contrib/groff/src/include/cset.h index b3a1a97..a241c00 100644 --- a/contrib/groff/src/include/cset.h +++ b/contrib/groff/src/include/cset.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CC_LIMITS_H #include <limits.h> diff --git a/contrib/groff/src/include/device.h b/contrib/groff/src/include/device.h index 341af8d..ecafc26 100644 --- a/contrib/groff/src/include/device.h +++ b/contrib/groff/src/include/device.h @@ -16,6 +16,6 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ extern const char *device; diff --git a/contrib/groff/src/include/driver.h b/contrib/groff/src/include/driver.h index b15d6c9..f6804ef 100644 --- a/contrib/groff/src/include/driver.h +++ b/contrib/groff/src/include/driver.h @@ -1,5 +1,5 @@ // -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992, 2000, 2001 +/* Copyright (C) 1989, 1990, 1991, 1992, 2000, 2001, 2003 Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) @@ -17,7 +17,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #include "lib.h" diff --git a/contrib/groff/src/include/errarg.h b/contrib/groff/src/include/errarg.h index 08af44a..1aa191a 100644 --- a/contrib/groff/src/include/errarg.h +++ b/contrib/groff/src/include/errarg.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ class errarg { enum { EMPTY, STRING, CHAR, INTEGER, UNSIGNED_INTEGER, DOUBLE } type; diff --git a/contrib/groff/src/include/error.h b/contrib/groff/src/include/error.h index e227682..b9d48d0 100644 --- a/contrib/groff/src/include/error.h +++ b/contrib/groff/src/include/error.h @@ -1,5 +1,6 @@ // -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1989, 1990, 1991, 1992, 2003, 2004 + Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) This file is part of groff. @@ -16,7 +17,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ extern void fatal_with_file_and_line(const char *filename, int lineno, const char *format, @@ -52,7 +53,7 @@ extern void warning(const char *, const errarg &arg3 = empty_errarg); -extern const char *program_name; +extern "C" const char *program_name; extern int current_lineno; extern const char *current_filename; extern const char *current_source_filename; diff --git a/contrib/groff/src/include/font.h b/contrib/groff/src/include/font.h index 43bf121..3ef4fed 100644 --- a/contrib/groff/src/include/font.h +++ b/contrib/groff/src/include/font.h @@ -1,5 +1,6 @@ // -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1989, 1990, 1991, 1992, 2002, 2004 + Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) This file is part of groff. @@ -16,7 +17,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ typedef void (*FONT_COMMAND_HANDLER)(const char *, const char *, const char *, int); @@ -53,10 +54,11 @@ public: const char *get_special_device_encoding(int index); const char *get_name(); const char *get_internal_name(); + const char *get_image_generator(); static int scan_papersize(const char *, const char **, double *, double *); - static font *load_font(const char *, int *not_found = 0); + static font *load_font(const char *, int * = 0, int = 0); static void command_line_font_dir(const char *path); static FILE *open_file(const char *name, char **pathp); static int load_desc(); @@ -76,8 +78,10 @@ public: static int spare2; static int sizescale; static int tcommand; + static int unscaled_charwidths; static int pass_filenames; static int use_charnames_in_special; + static const char *image_generator; static const char **font_name_table; static const char **style_table; @@ -87,7 +91,7 @@ private: unsigned ligatures; font_kern_list **kern_hash_table; int space_width; - short *ch_index; + int *ch_index; int nindices; font_char_metric *ch; int ch_used; @@ -116,5 +120,5 @@ private: const char *file, int lineno); protected: font(const char *); - int load(int *not_found = 0); + int load(int * = 0, int = 0); }; diff --git a/contrib/groff/src/include/geometry.h b/contrib/groff/src/include/geometry.h index d425f15..1ce0df0 100644 --- a/contrib/groff/src/include/geometry.h +++ b/contrib/groff/src/include/geometry.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ int adjust_arc_center(const int *, double *); void check_output_arc_limits(int x, int y, diff --git a/contrib/groff/src/include/getopt_int.h b/contrib/groff/src/include/getopt_int.h new file mode 100644 index 0000000..401579f --- /dev/null +++ b/contrib/groff/src/include/getopt_int.h @@ -0,0 +1,131 @@ +/* Internal declarations for getopt. + Copyright (C) 1989-1994,1996-1999,2001,2003,2004 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + + 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, 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. */ + +#ifndef _GETOPT_INT_H +#define _GETOPT_INT_H 1 + +extern int _getopt_internal (int ___argc, char **___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only, int __posixly_correct); + + +/* Reentrant versions which can handle parsing multiple argument + vectors at the same time. */ + +/* Data type for reentrant functions. */ +struct _getopt_data +{ + /* These have exactly the same meaning as the corresponding global + variables, except that they are used for the reentrant + versions of getopt. */ + int optind; + int opterr; + int optopt; + char *optarg; + + /* Internal members. */ + + /* True if the internal members have been initialized. */ + int __initialized; + + /* The next char to be scanned in the option-element + in which the last option character we returned was found. + This allows us to pick up the scan where we left off. + + If this is zero, or a null string, it means resume the scan + by advancing to the next ARGV-element. */ + char *__nextchar; + + /* Describe how to deal with options that follow non-option ARGV-elements. + + If the caller did not specify anything, + the default is REQUIRE_ORDER if the environment variable + POSIXLY_CORRECT is defined, PERMUTE otherwise. + + REQUIRE_ORDER means don't recognize them as options; + stop option processing when the first non-option is seen. + This is what Unix does. + This mode of operation is selected by either setting the environment + variable POSIXLY_CORRECT, or using `+' as the first character + of the list of option characters, or by calling getopt. + + PERMUTE is the default. We permute the contents of ARGV as we + scan, so that eventually all the non-options are at the end. + This allows options to be given in any order, even with programs + that were not written to expect this. + + RETURN_IN_ORDER is an option available to programs that were + written to expect options and other ARGV-elements in any order + and that care about the ordering of the two. We describe each + non-option ARGV-element as if it were the argument of an option + with character code 1. Using `-' as the first character of the + list of option characters selects this mode of operation. + + The special argument `--' forces an end of option-scanning regardless + of the value of `ordering'. In the case of RETURN_IN_ORDER, only + `--' can cause `getopt' to return -1 with `optind' != ARGC. */ + + enum + { + REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER + } __ordering; + + /* If the POSIXLY_CORRECT environment variable is set + or getopt was called. */ + int __posixly_correct; + + + /* Handle permutation of arguments. */ + + /* Describe the part of ARGV that contains non-options that have + been skipped. `first_nonopt' is the index in ARGV of the first + of them; `last_nonopt' is the index after the last of them. */ + + int __first_nonopt; + int __last_nonopt; + +#if defined _LIBC && defined USE_NONOPTION_FLAGS + int __nonoption_flags_max_len; + int __nonoption_flags_len; +# endif +}; + +/* The initializer is necessary to set OPTIND and OPTERR to their + default values and to clear the initialization flag. */ +#define _GETOPT_DATA_INITIALIZER { 1, 1 } + +extern int _getopt_internal_r (int ___argc, char **___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind, + int __long_only, int __posixly_correct, + struct _getopt_data *__data); + +extern int _getopt_long_r (int ___argc, char **___argv, + const char *__shortopts, + const struct option *__longopts, int *__longind, + struct _getopt_data *__data); + +extern int _getopt_long_only_r (int ___argc, char **___argv, + const char *__shortopts, + const struct option *__longopts, + int *__longind, + struct _getopt_data *__data); + +#endif /* getopt_int.h */ diff --git a/contrib/groff/src/include/gettext.h b/contrib/groff/src/include/gettext.h new file mode 100644 index 0000000..26fd2c5 --- /dev/null +++ b/contrib/groff/src/include/gettext.h @@ -0,0 +1,4 @@ +/* This is a dummy header file to make getopt compile without gettext + support. */ + +#define gettext(s) s diff --git a/contrib/groff/src/include/html-strings.h b/contrib/groff/src/include/html-strings.h index fd757c3f..26daeb6 100644 --- a/contrib/groff/src/include/html-strings.h +++ b/contrib/groff/src/include/html-strings.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ /* * defines the image tags issued by the pre-processors (tbl, pic, eqn) diff --git a/contrib/groff/src/include/htmlhint.h b/contrib/groff/src/include/htmlhint.h index f1f46f7..e0b41dd 100644 --- a/contrib/groff/src/include/htmlhint.h +++ b/contrib/groff/src/include/htmlhint.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef HTMLINDICATE_H #define HTMLINDICATE_H diff --git a/contrib/groff/src/include/index.h b/contrib/groff/src/include/index.h index 7e60813..c90610e 100644 --- a/contrib/groff/src/include/index.h +++ b/contrib/groff/src/include/index.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #define INDEX_MAGIC 0x23021964 #define INDEX_VERSION 1 diff --git a/contrib/groff/src/include/lib.h b/contrib/groff/src/include/lib.h index bebad98..bb59337 100644 --- a/contrib/groff/src/include/lib.h +++ b/contrib/groff/src/include/lib.h @@ -1,5 +1,6 @@ // -*- C++ -*- -/* Copyright (C) 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1989-2000, 2001, 2002, 2003, 2005 + Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) This file is part of groff. @@ -16,7 +17,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifdef HAVE_CONFIG_H #include <config.h> @@ -31,18 +32,8 @@ extern "C" { const char *if_to_a(int, int); } -/* stdio.h on IRIX, OSF/1, emx, and UWIN include getopt.h */ -/* unistd.h on CYGWIN includes getopt.h */ - -#if !(defined(__sgi) \ - || (defined(__osf__) && defined(__alpha)) \ - || defined(_UWIN) \ - || defined(__EMX__) \ - || defined(__CYGWIN__)) -#include <groff-getopt.h> -#else +#define __GETOPT_PREFIX groff_ #include <getopt.h> -#endif #ifdef HAVE_SETLOCALE #include <locale.h> @@ -52,6 +43,7 @@ extern "C" { char *strsave(const char *s); int is_prime(unsigned); +double groff_hypot(double, double); #include <stdio.h> #include <string.h> @@ -59,13 +51,21 @@ int is_prime(unsigned); #include <strings.h> #endif -/* HP-UX 10.20 doesn't declare snprintf() */ -#if !defined(HAVE_SNPRINTF) || defined(NEED_DECLARATION_SNPRINTF) #include <stdarg.h> -extern "C" { - int snprintf(char *, size_t, const char *, /*args*/ ...); - int vsnprintf(char *, size_t, const char *, va_list); -} + +/* HP-UX 10.20 and LynxOS 4.0.0 don't declare snprintf() */ +#if !defined(HAVE_SNPRINTF) || defined(NEED_DECLARATION_SNPRINTF) +extern "C" { int snprintf(char *, size_t, const char *, /*args*/ ...); } +#endif + +/* LynxOS 4.0.0 has snprintf() but no vsnprintf() */ +#if !defined(HAVE_VSNPRINTF) || defined(NEED_DECLARATION_VSNPRINTF) +extern "C" { int vsnprintf(char *, size_t, const char *, va_list); } +#endif + +/* LynxOS 4.0.0 doesn't declare vfprintf() */ +#ifdef NEED_DECLARATION_VFPRINTF +extern "C" { int vfprintf(FILE *, const char *, va_list); } #endif #ifndef HAVE_MKSTEMP @@ -90,6 +90,7 @@ extern "C" { int pclose (FILE *); } #endif /* NEED_DECLARATION_PCLOSE */ size_t file_name_max(const char *fname); +size_t path_name_max(); int interpret_lf_args(const char *p); @@ -102,29 +103,21 @@ inline int invalid_input_char(int c) #ifdef HAVE_STRCASECMP #ifdef NEED_DECLARATION_STRCASECMP -extern "C" { - // Ultrix4.3's string.h fails to declare this. - int strcasecmp(const char *, const char *); -} +// Ultrix4.3's string.h fails to declare this. +extern "C" { int strcasecmp(const char *, const char *); } #endif /* NEED_DECLARATION_STRCASECMP */ #else /* not HAVE_STRCASECMP */ -extern "C" { - int strcasecmp(const char *, const char *); -} +extern "C" { int strcasecmp(const char *, const char *); } #endif /* HAVE_STRCASECMP */ #if !defined(_AIX) && !defined(sinix) && !defined(__sinix__) #ifdef HAVE_STRNCASECMP #ifdef NEED_DECLARATION_STRNCASECMP -extern "C" { - // SunOS's string.h fails to declare this. - int strncasecmp(const char *, const char *, int); -} +// SunOS's string.h fails to declare this. +extern "C" { int strncasecmp(const char *, const char *, int); } #endif /* NEED_DECLARATION_STRNCASECMP */ #else /* not HAVE_STRNCASECMP */ -extern "C" { - int strncasecmp(const char *, const char *, size_t); -} +extern "C" { int strncasecmp(const char *, const char *, size_t); } #endif /* HAVE_STRNCASECMP */ #endif /* !_AIX && !sinix && !__sinix__ */ diff --git a/contrib/groff/src/include/macropath.h b/contrib/groff/src/include/macropath.h index b4a2bd0..3b38baa 100644 --- a/contrib/groff/src/include/macropath.h +++ b/contrib/groff/src/include/macropath.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ extern search_path macro_path; extern search_path safer_macro_path; diff --git a/contrib/groff/src/include/nonposix.h b/contrib/groff/src/include/nonposix.h index 73422d9..9564a8b 100644 --- a/contrib/groff/src/include/nonposix.h +++ b/contrib/groff/src/include/nonposix.h @@ -1,4 +1,5 @@ -/* Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 + Free Software Foundation, Inc. Written by Eli Zaretskii (eliz@is.elta.co.il) This file is part of groff. @@ -15,10 +16,12 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ /* This header file compartmentalize all idiosyncrasies of non-Posix - systems, such as MS-DOS, MS-Windows, etc. */ + systems, such as MS-DOS, MS-Windows, etc. It should be loaded after + the system headers like stdio.h to protect against warnings and error + messages w.r.t. redefining macros. */ #if defined _MSC_VER # ifndef _WIN32 @@ -29,31 +32,48 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if defined(__MSDOS__) || defined(__EMX__) \ || (defined(_WIN32) && !defined(_UWIN) && !defined(__CYGWIN__)) -/* Binary I/O nuisances. Note: "setmode" is right for DJGPP and - Borland; Windows compilers might need _setmode or some such. */ +/* Binary I/O nuisances. */ # include <fcntl.h> # include <io.h> # ifdef HAVE_UNISTD_H # include <unistd.h> # endif -# ifdef _MSC_VER -# define POPEN_RT "rt" -# define POPEN_WT "wt" -# define popen(c,m) _popen(c,m) -# define pclose(p) _pclose(p) -# define getpid() (1) -# define mkdir(p,m) _mkdir(p) -# define setmode(f,m) _setmode(f,m) -# define WAIT(s,p,m) _cwait(s,p,m) -# define creat(p,m) _creat(p,m) +# ifndef STDIN_FILENO +# define STDIN_FILENO 0 +# define STDOUT_FILENO 1 +# define STDERR_FILENO 2 # endif -# define SET_BINARY(f) do {if (!isatty(f)) setmode(f,O_BINARY);} while(0) -# define FOPEN_RB "rb" -# define FOPEN_WB "wb" -# define FOPEN_RWB "wb+" +# ifdef HAVE_DIRECT_H +# include <direct.h> +# endif +# ifdef HAVE_PROCESS_H +# include <process.h> +# endif +# if defined(_MSC_VER) || defined(__MINGW32__) +# define POPEN_RT "rt" +# define POPEN_WT "wt" +# define popen(c,m) _popen(c,m) +# define pclose(p) _pclose(p) +# define pipe(pfd) _pipe((pfd),0,_O_BINARY|_O_NOINHERIT) +# define mkdir(p,m) _mkdir(p) +# define setmode(f,m) _setmode(f,m) +# define WAIT(s,p,m) _cwait(s,p,m) +# define creat(p,m) _creat(p,m) +# define read(f,b,s) _read(f,b,s) +# define write(f,b,s) _write(f,b,s) +# define dup(f) _dup(f) +# define dup2(f1,f2) _dup2(f1,f2) +# define close(f) _close(f) +# define isatty(f) _isatty(f) +# define access(p,m) _access(p,m) +# endif +# define SET_BINARY(f) do {if (!isatty(f)) setmode(f,O_BINARY);} while(0) +# define FOPEN_RB "rb" +# define FOPEN_WB "wb" +# define FOPEN_RWB "wb+" # ifndef O_BINARY # ifdef _O_BINARY -# define O_BINARY (_O_BINARY) +# define O_BINARY (_O_BINARY) # endif # endif @@ -61,96 +81,151 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ systems don't have standard places where it lives, and might not have it installed to begin with. We want to give them some leeway. */ # ifdef __EMX__ -# define getcwd(b,s) _getcwd2(b,s) +# define getcwd(b,s) _getcwd2(b,s) # else -# define BSHELL (system_shell_name()) -# define BSHELL_DASH_C (system_shell_dash_c()) -# define IS_BSHELL(s) (is_system_shell(s)) +# define BSHELL (system_shell_name()) +# define BSHELL_DASH_C (system_shell_dash_c()) +# define IS_BSHELL(s) (is_system_shell(s)) # endif /* The separator for directories in PATH and other environment variables. */ -# define PATH_SEP ";" +# define PATH_SEP ";" +# define PATH_SEP_CHAR ';' /* Characters that separate directories in a path name. */ -# define DIR_SEPS "/\\:" +# define DIR_SEPS "/\\:" /* How to tell if the argument is an absolute file name. */ # define IS_ABSOLUTE(f) \ ((f)[0] == '/' || (f)[0] == '\\' || (f)[0] && (f)[1] == ':') /* The executable extension. */ -# define EXE_EXT ".exe" +# define EXE_EXT ".exe" + +/* Possible executable extensions. */ +# define PATH_EXT ".com;.exe;.bat;.cmd" /* The system null device. */ -# define NULL_DEV "NUL" +# define NULL_DEV "NUL" + +/* The default place to create temporary files. */ +# ifndef P_tmpdir +# ifdef _P_tmpdir +# define P_tmpdir _P_tmpdir +# else +# define P_tmpdir "c:/temp" +# endif +# endif /* Prototypes. */ # ifdef __cplusplus extern "C" { # endif - const char * system_shell_name(void); + char * system_shell_name(void); const char * system_shell_dash_c(void); - int is_system_shell(const char *); + int is_system_shell(const char *); +# ifdef __cplusplus + } +# endif + +#endif + +#if defined(_WIN32) && !defined(_UWIN) && !defined(__CYGWIN__) +/* Win32 implementations which use the Microsoft runtime library + * are prone to hanging when a pipe reader quits with unread data in the pipe. + * `gtroff' avoids this, by invoking `FLUSH_INPUT_PIPE()', defined as ... */ +# define FLUSH_INPUT_PIPE(fd) \ + do if (!isatty(fd)) \ + { \ + char drain[BUFSIZ]; \ + while (read(fd, drain, sizeof(drain)) > 0) \ + ; \ + } while (0) + +/* The Microsoft runtime library also has a broken argument passing mechanism, + * which may result in improper grouping of arguments passed to a child process + * by the `spawn()' family of functions. In `groff', only the `spawnvp()' + * function is affected; we work around this defect, by substituting a + * wrapper function in place of `spawnvp()' calls. */ + +# ifdef __cplusplus + extern "C" { +# endif + int spawnvp_wrapper(int, char *, char **); # ifdef __cplusplus } # endif +# ifndef SPAWN_FUNCTION_WRAPPERS +# undef spawnvp +# define spawnvp spawnvp_wrapper +# undef _spawnvp +# define _spawnvp spawnvp +# endif /* SPAWN_FUNCTION_WRAPPERS */ +#else +/* Other implementations do not suffer from Microsoft runtime bugs, + * but `gtroff' requires a dummy definition for FLUSH_INPUT_PIPE() */ +# define FLUSH_INPUT_PIPE(fd) do {} while(0) #endif /* Defaults, for Posix systems. */ #ifndef SET_BINARY -# define SET_BINARY(f) do {} while(0) +# define SET_BINARY(f) do {} while(0) #endif #ifndef FOPEN_RB -# define FOPEN_RB "r" +# define FOPEN_RB "r" #endif #ifndef FOPEN_WB -# define FOPEN_WB "w" +# define FOPEN_WB "w" #endif #ifndef FOPEN_RWB -# define FOPEN_RWB "w+" +# define FOPEN_RWB "w+" #endif #ifndef POPEN_RT -# define POPEN_RT "r" +# define POPEN_RT "r" #endif #ifndef POPEN_WT -# define POPEN_WT "w" +# define POPEN_WT "w" #endif #ifndef O_BINARY -# define O_BINARY 0 +# define O_BINARY 0 #endif #ifndef BSHELL -# define BSHELL "/bin/sh" +# define BSHELL "/bin/sh" #endif #ifndef BSHELL_DASH_C -# define BSHELL_DASH_C "-c" +# define BSHELL_DASH_C "-c" #endif #ifndef IS_BSHELL -# define IS_BSHELL(s) ((s) && strcmp(s,BSHELL) == 0) +# define IS_BSHELL(s) ((s) && strcmp(s,BSHELL) == 0) #endif #ifndef PATH_SEP -# define PATH_SEP ":" +# define PATH_SEP ":" +# define PATH_SEP_CHAR ':' #endif #ifndef DIR_SEPS -# define DIR_SEPS "/" +# define DIR_SEPS "/" #endif #ifndef IS_ABSOLUTE -# define IS_ABSOLUTE(f) ((f)[0] == '/') +# define IS_ABSOLUTE(f) ((f)[0] == '/') #endif #ifndef EXE_EXT -# define EXE_EXT "" +# define EXE_EXT "" +#endif +#ifndef PATH_EXT +# define PATH_EXT "" #endif #ifndef NULL_DEV -# define NULL_DEV "/dev/null" +# define NULL_DEV "/dev/null" #endif #ifndef GS_NAME -# define GS_NAME "gs" +# define GS_NAME "gs" #endif #ifndef WAIT -# define WAIT(s,p,m) wait(s) +# define WAIT(s,p,m) wait(s) #endif #ifndef _WAIT_CHILD -# define _WAIT_CHILD 0 +# define _WAIT_CHILD 0 #endif diff --git a/contrib/groff/src/include/paper.h b/contrib/groff/src/include/paper.h index 7a01fc2..e88965d 100644 --- a/contrib/groff/src/include/paper.h +++ b/contrib/groff/src/include/paper.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ struct paper { char *name; diff --git a/contrib/groff/src/include/posix.h b/contrib/groff/src/include/posix.h index e7f38cd..28b807c 100644 --- a/contrib/groff/src/include/posix.h +++ b/contrib/groff/src/include/posix.h @@ -1,5 +1,5 @@ // -*- C++ -*- -/* Copyright (C) 1992, 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 1992, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) This file is part of groff. @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <sys/types.h> #include <sys/stat.h> @@ -58,6 +58,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #define O_RDONLY 0 #endif +#ifndef F_OK +#define F_OK 0 +#endif + #ifndef HAVE_ISATTY #define isatty(n) (1) #endif diff --git a/contrib/groff/src/include/printer.h b/contrib/groff/src/include/printer.h index 3976215..fb39f48 100644 --- a/contrib/groff/src/include/printer.h +++ b/contrib/groff/src/include/printer.h @@ -2,12 +2,12 @@ // <groff_src_dir>/src/include/printer.h -/* Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003 +/* Copyright (C) 1989, 1990, 1991, 1992, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) - Last update: 12 Apr 2002 + Last update: 15 Dec 2004 This file is part of groff. @@ -23,8 +23,8 @@ You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. + Software Foundation, 51 Franklin St - Fifth Floor, Boston, MA + 02110-1301, USA. */ /* Description @@ -49,7 +49,7 @@ struct environment { color *fill; }; -struct font; +class font; struct font_pointer_list { font *p; @@ -83,6 +83,9 @@ public: virtual void end_of_line(); virtual void special(char *arg, const environment *env, char type = 'p'); + virtual void devtag(char *arg, const environment *env, + char type = 'p'); + protected: font_pointer_list *font_list; font **font_table; diff --git a/contrib/groff/src/include/ptable.h b/contrib/groff/src/include/ptable.h index ffbe8e6..b288187 100644 --- a/contrib/groff/src/include/ptable.h +++ b/contrib/groff/src/include/ptable.h @@ -1,5 +1,6 @@ // -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1989, 1990, 1991, 1992, 2003, 2004 + Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) This file is part of groff. @@ -16,7 +17,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <assert.h> #include <string.h> @@ -43,7 +44,7 @@ struct PASSOC(T) { \ PASSOC(T)(); \ }; \ \ -struct PTABLE(T); \ +class PTABLE(T); \ \ class PTABLE_ITERATOR(T) { \ PTABLE(T) *p; \ diff --git a/contrib/groff/src/include/refid.h b/contrib/groff/src/include/refid.h index 605427e..84e5119 100644 --- a/contrib/groff/src/include/refid.h +++ b/contrib/groff/src/include/refid.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ class reference_id { int filename_id; diff --git a/contrib/groff/src/include/relocate.h b/contrib/groff/src/include/relocate.h new file mode 100644 index 0000000..0d9edc4 --- /dev/null +++ b/contrib/groff/src/include/relocate.h @@ -0,0 +1,27 @@ +// -*- C++ -*- +/* Provide relocation for macro and font files. + Copyright (C) 2005 Free Software Foundation, Inc. + + This program 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, 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, + USA. */ + +extern char *curr_prefix; +extern size_t curr_prefix_len; + +void set_current_prefix (); +char *xdirname (char *s); +char *searchpath (const char *name, const char *pathp); +char *relocatep (const char *path); +char *relocate (const char *path); diff --git a/contrib/groff/src/include/search.h b/contrib/groff/src/include/search.h index 260410e..3dde894 100644 --- a/contrib/groff/src/include/search.h +++ b/contrib/groff/src/include/search.h @@ -1,5 +1,5 @@ // -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. +/* Copyright (C) 1989, 1990, 1991, 1992, 2004 Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) This file is part of groff. @@ -16,10 +16,10 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ -struct search_item; -struct search_item_iterator; +class search_item; +class search_item_iterator; class search_list { public: @@ -34,7 +34,7 @@ private: friend class search_list_iterator; }; -struct bmpattern; +class bmpattern; class linear_searcher { const char *ignore_fields; diff --git a/contrib/groff/src/include/searchpath.h b/contrib/groff/src/include/searchpath.h index 4d89a8d..dab161e 100644 --- a/contrib/groff/src/include/searchpath.h +++ b/contrib/groff/src/include/searchpath.h @@ -1,5 +1,6 @@ // -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1989, 1990, 1991, 1992, 2000, 2003 + Free Software Foundation, Inc. Written by James Clark (jjc@jclark.com) This file is part of groff. @@ -16,7 +17,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ class search_path { char *dirs; @@ -27,4 +28,5 @@ public: ~search_path(); void command_line_dir(const char *); FILE *open_file(const char *, char **); + FILE *open_file_cautious(const char *, char ** = 0, const char * = 0); }; diff --git a/contrib/groff/src/include/stringclass.h b/contrib/groff/src/include/stringclass.h index c6295b0..fb3299c 100644 --- a/contrib/groff/src/include/stringclass.h +++ b/contrib/groff/src/include/stringclass.h @@ -16,7 +16,7 @@ for more details. You should have received a copy of the GNU General Public License along with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ #include <string.h> #include <stdio.h> diff --git a/contrib/groff/src/include/symbol.h b/contrib/groff/src/include/symbol.h new file mode 100644 index 0000000..c3cc8ee --- /dev/null +++ b/contrib/groff/src/include/symbol.h @@ -0,0 +1,83 @@ +// -*- C++ -*- +/* Copyright (C) 1989, 1990, 1991, 1992, 2002, 2004 + 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 2, 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 groff; see the file COPYING. If not, write to the Free Software +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ + +#define DONT_STORE 1 +#define MUST_ALREADY_EXIST 2 + +class symbol { + static const char **table; + static int table_used; + static int table_size; + static char *block; + static int block_size; + const char *s; +public: + symbol(const char *p, int how = 0); + symbol(); + unsigned long hash() const; + int operator ==(symbol) const; + int operator !=(symbol) const; + const char *contents() const; + int is_null() const; + int is_empty() const; +}; + + +extern const symbol NULL_SYMBOL; +extern const symbol EMPTY_SYMBOL; + +inline symbol::symbol() : s(0) +{ +} + +inline int symbol::operator==(symbol p) const +{ + return s == p.s; +} + +inline int symbol::operator!=(symbol p) const +{ + return s != p.s; +} + +inline unsigned long symbol::hash() const +{ + return (unsigned long)s; +} + +inline const char *symbol::contents() const +{ + return s; +} + +inline int symbol::is_null() const +{ + return s == 0; +} + +inline int symbol::is_empty() const +{ + return s != 0 && *s == 0; +} + +symbol concat(symbol, symbol); + +extern symbol default_symbol; diff --git a/contrib/groff/src/include/unicode.h b/contrib/groff/src/include/unicode.h new file mode 100644 index 0000000..90dab11 --- /dev/null +++ b/contrib/groff/src/include/unicode.h @@ -0,0 +1,26 @@ +// -*- C++ -*- +/* Copyright (C) 2002, 2003 + Free Software Foundation, Inc. + Written by Werner Lemberg <wl@gnu.org> + +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 2, 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 groff; see the file COPYING. If not, write to the Free Software +Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ + +const char *glyph_name_to_unicode(const char *); +const char *unicode_to_glyph_name(const char *); +const char *decompose_unicode(const char *); + +const char *check_unicode_name(const char *); |