=================================================================== RCS file: /cvs/mandoc/Attic/regs.h,v retrieving revision 1.1 retrieving revision 1.4 diff -u -p -r1.1 -r1.4 --- mandoc/Attic/regs.h 2010/06/26 15:22:19 1.1 +++ mandoc/Attic/regs.h 2010/07/03 16:02:12 1.4 @@ -1,4 +1,4 @@ -/* $Id: regs.h,v 1.1 2010/06/26 15:22:19 kristaps Exp $ */ +/* $Id: regs.h,v 1.4 2010/07/03 16:02:12 schwarze Exp $ */ /* * Copyright (c) 2010 Kristaps Dzonsons * @@ -24,15 +24,27 @@ enum regs { REG__MAX }; +struct reg { + int set; /* whether set or not */ + union { + unsigned u; /* unsigned integer */ + } v; +}; + /* - * Registers are passed into libmdoc and libman. They refer to some - * sort of external state. + * Registers are non-scoped state. These can be manipulated directly in + * libroff or indirectly in libman or libmdoc by macros. These should + * be implemented sparingly (we are NOT roffdoc!) and documented fully + * in roff.7. */ struct regset { - union { - int i; /* integer value */ - } regs[REG__MAX]; + struct reg regs[REG__MAX]; }; + +char *roff_setstr(const char *, const char *); +char *roff_getstr(const char *); +char *roff_getstrn(const char *, size_t); +void roff_freestr(void); __END_DECLS