/contrib/groff/src/include/errarg.h

https://bitbucket.org/freebsd/freebsd-head/ · C++ Header · 47 lines · 25 code · 3 blank · 19 comment · 0 complexity · af81c2f51f2e2ac2b8b7780976984ec6 MD5 · raw file

  1. // -*- C++ -*-
  2. /* Copyright (C) 1989, 1990, 1991, 1992, 2002 Free Software Foundation, Inc.
  3. Written by James Clark (jjc@jclark.com)
  4. This file is part of groff.
  5. groff is free software; you can redistribute it and/or modify it under
  6. the terms of the GNU General Public License as published by the Free
  7. Software Foundation; either version 2, or (at your option) any later
  8. version.
  9. groff is distributed in the hope that it will be useful, but WITHOUT ANY
  10. WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11. FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  12. for more details.
  13. You should have received a copy of the GNU General Public License along
  14. with groff; see the file COPYING. If not, write to the Free Software
  15. Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. */
  16. class errarg {
  17. enum { EMPTY, STRING, CHAR, INTEGER, UNSIGNED_INTEGER, DOUBLE } type;
  18. union {
  19. const char *s;
  20. int n;
  21. unsigned int u;
  22. char c;
  23. double d;
  24. };
  25. public:
  26. errarg();
  27. errarg(const char *);
  28. errarg(char);
  29. errarg(unsigned char);
  30. errarg(int);
  31. errarg(unsigned int);
  32. errarg(double);
  33. int empty() const;
  34. void print() const;
  35. };
  36. extern errarg empty_errarg;
  37. extern void errprint(const char *,
  38. const errarg &arg1 = empty_errarg,
  39. const errarg &arg2 = empty_errarg,
  40. const errarg &arg3 = empty_errarg);