1 // -*- C++ -*- 2 /* Copyright (C) 1989, 1990, 1991, 1992, 2000, 2001, 2002, 2004 3 Free Software Foundation, Inc. 4 Written by James Clark (jjc@jclark.com) 5 6 This file is part of groff. 7 8 groff is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free 10 Software Foundation; either version 2, or (at your option) any later 11 version. 12 13 groff is distributed in the hope that it will be useful, but WITHOUT ANY 14 WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16 for more details. 17 18 You should have received a copy of the GNU General Public License along 19 with groff; see the file COPYING. If not, write to the Free Software 20 Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */ 21 22 23 #include "lib.h" 24 25 #include <ctype.h> 26 #include <time.h> 27 #include <stddef.h> 28 #include <stdlib.h> 29 #include <errno.h> 30 31 #include "assert.h" 32 #include "color.h" 33 #include "device.h" 34 #include "searchpath.h" 35 36 typedef int units; 37 38 extern units scale(units n, units x, units y); // scale n by x/y 39 40 extern units units_per_inch; 41 42 extern int ascii_output_flag; 43 extern int suppress_output_flag; 44 extern int color_flag; 45 extern int is_html; 46 47 extern int tcommand_flag; 48 extern int vresolution; 49 extern int hresolution; 50 extern int sizescale; 51 52 extern search_path *mac_path; 53 54 #include "cset.h" 55 #include "cmap.h" 56 #include "errarg.h" 57 #include "error.h" 58 59 enum warning_type { 60 WARN_CHAR = 01, 61 WARN_NUMBER = 02, 62 WARN_BREAK = 04, 63 WARN_DELIM = 010, 64 WARN_EL = 020, 65 WARN_SCALE = 040, 66 WARN_RANGE = 0100, 67 WARN_SYNTAX = 0200, 68 WARN_DI = 0400, 69 WARN_MAC = 01000, 70 WARN_REG = 02000, 71 WARN_TAB = 04000, 72 WARN_RIGHT_BRACE = 010000, 73 WARN_MISSING = 020000, 74 WARN_INPUT = 040000, 75 WARN_ESCAPE = 0100000, 76 WARN_SPACE = 0200000, 77 WARN_FONT = 0400000, 78 WARN_IG = 01000000, 79 WARN_COLOR = 02000000 80 // change WARN_TOTAL if you add more warning types 81 }; 82 83 const int WARN_TOTAL = 03777777; 84 85 int warning(warning_type, const char *, 86 const errarg & = empty_errarg, 87 const errarg & = empty_errarg, 88 const errarg & = empty_errarg); 89 int output_warning(warning_type, const char *, 90 const errarg & = empty_errarg, 91 const errarg & = empty_errarg, 92 const errarg & = empty_errarg); 93