=================================================================== RCS file: /cvs/mandoc/Attic/regs.h,v retrieving revision 1.1 retrieving revision 1.5 diff -u -p -r1.1 -r1.5 --- mandoc/Attic/regs.h 2010/06/26 15:22:19 1.1 +++ mandoc/Attic/regs.h 2010/07/04 22:04:04 1.5 @@ -1,6 +1,7 @@ -/* $Id: regs.h,v 1.1 2010/06/26 15:22:19 kristaps Exp $ */ +/* $Id: regs.h,v 1.5 2010/07/04 22:04:04 schwarze Exp $ */ /* * Copyright (c) 2010 Kristaps Dzonsons + * Copyright (c) 2010 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -24,15 +25,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