aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libmandoc.h
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2013-10-05 22:08:12 +0000
committerIngo Schwarze <schwarze@openbsd.org>2013-10-05 22:08:12 +0000
commita572afd89f35bf2a05cba26f422436714a0de4de (patch)
treed357d349c277f8b918065cab513078e2e229d0a6 /libmandoc.h
parenta8f58a55c9e1fd8a3804c52ca3873c8291135319 (diff)
downloadmandoc-a572afd89f35bf2a05cba26f422436714a0de4de.tar.gz
mandoc-a572afd89f35bf2a05cba26f422436714a0de4de.tar.zst
mandoc-a572afd89f35bf2a05cba26f422436714a0de4de.zip
Support setting arbitrary roff(7) number registers,
preserving read support for the ".nr nS" SYNOPSIS state register. Inspired by NetBSD roff.c rev. 1.18 (Christos Zoulas, March 21, 2013), but implemented differently. I don't want to have yet another different implementation of a hash table in mandoc - it would be the second one in roff.c alone and the fifth one in mandoc grand total. Instead, i designed and implemented roff_setreg() and roff_getreg() to be similar to roff_setstrn() and roff_getstrn(). Once we feel the need to optimize, we can introduce one common hash table implementation for everything in mandoc.
Diffstat (limited to 'libmandoc.h')
-rw-r--r--libmandoc.h13
1 files changed, 4 insertions, 9 deletions
diff --git a/libmandoc.h b/libmandoc.h
index 9b3ffee1..df2c8fc6 100644
--- a/libmandoc.h
+++ b/libmandoc.h
@@ -1,6 +1,7 @@
-/* $Id: libmandoc.h,v 1.32 2012/11/19 17:57:23 schwarze Exp $ */
+/* $Id: libmandoc.h,v 1.33 2013/10/05 22:08:12 schwarze Exp $ */
/*
* Copyright (c) 2009, 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2013 Ingo Schwarze <schwarze@openbsd.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -29,11 +30,6 @@ enum rofferr {
ROFF_ERR /* badness: puke and stop */
};
-enum regs {
- REG_nS = 0, /* nS register */
- REG__MAX
-};
-
__BEGIN_DECLS
struct roff;
@@ -72,9 +68,8 @@ void roff_reset(struct roff *);
enum rofferr roff_parseln(struct roff *, int,
char **, size_t *, int, int *);
void roff_endparse(struct roff *);
-int roff_regisset(const struct roff *, enum regs);
-unsigned int roff_regget(const struct roff *, enum regs);
-void roff_regunset(struct roff *, enum regs);
+void roff_setreg(struct roff *, const char *, unsigned int);
+unsigned int roff_getreg(const struct roff *, const char *);
char *roff_strdup(const struct roff *, const char *);
int roff_getcontrol(const struct roff *,
const char *, int *);