4 /* Copyright (C) 1989, 1990, 1991, 1992, 2000, 2002
5 Free Software Foundation, Inc.
6 Written by James Clark (jjc@jclark.com)
8 This file is part of groff.
10 groff is free software; you can redistribute it and/or modify it under
11 the terms of the GNU General Public License as published by the Free
12 Software Foundation; either version 2, or (at your option) any later
15 groff is distributed in the hope that it will be useful, but WITHOUT ANY
16 WARRANTY; without even the implied warranty of MERCHANTABILITY or
17 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 You should have received a copy of the GNU General Public License along
21 with groff; see the file COPYING. If not, write to the Free Software
22 Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */
28 errarg::errarg(const char *p
) : type(STRING
)
33 errarg::errarg() : type(EMPTY
)
37 errarg::errarg(int nn
) : type(INTEGER
)
42 errarg::errarg(unsigned int uu
) : type(UNSIGNED_INTEGER
)
47 errarg::errarg(char cc
) : type(CHAR
)
52 errarg::errarg(unsigned char cc
) : type(CHAR
)
57 errarg::errarg(double dd
) : type(DOUBLE
)
62 int errarg::empty() const
68 const char *i_to_a(int);
69 const char *ui_to_a(unsigned int);
72 void errarg::print() const
76 fputs(i_to_a(n
), stderr
);
78 case UNSIGNED_INTEGER
:
79 fputs(ui_to_a(u
), stderr
);
88 fprintf(stderr
, "%g", d
);
97 void errprint(const char *format
,
104 while ((c
= *format
++) != '\0') {
112 assert(!arg1
.empty());
116 assert(!arg2
.empty());
120 assert(!arg3
.empty());