aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libroff.h
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2014-10-16 01:11:20 +0000
committerIngo Schwarze <schwarze@openbsd.org>2014-10-16 01:11:20 +0000
commit5ed742dc63b34ff435a2b04d4e14fcb6081d49b0 (patch)
treefa3b2b20e34566f744745409e53d12cb65f8bc37 /libroff.h
parent191186556e8df468bec99ae47cd09817e9d288a0 (diff)
downloadmandoc-5ed742dc63b34ff435a2b04d4e14fcb6081d49b0.tar.gz
mandoc-5ed742dc63b34ff435a2b04d4e14fcb6081d49b0.tar.zst
mandoc-5ed742dc63b34ff435a2b04d4e14fcb6081d49b0.zip
Implement in-line equations, much needed by Xenocara manuals.
Put the steering into the roff parser rather than into the mdoc parser such that it works for all macro languages and on both text and macro lines. Line breaks and blank characters generated before and after in-line equations are not perfect yet, but let's do one thing at a time.
Diffstat (limited to 'libroff.h')
-rw-r--r--libroff.h26
1 files changed, 15 insertions, 11 deletions
diff --git a/libroff.h b/libroff.h
index f917b149..e6d3edb7 100644
--- a/libroff.h
+++ b/libroff.h
@@ -1,6 +1,7 @@
-/* $Id: libroff.h,v 1.29 2014/04/20 16:46:04 schwarze Exp $ */
+/* $Id: libroff.h,v 1.30 2014/10/16 01:11:20 schwarze Exp $ */
/*
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
+ * Copyright (c) 2014 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
@@ -43,16 +44,19 @@ struct tbl_node {
};
struct eqn_node {
- struct eqn_def *defs;
- size_t defsz;
- char *data;
- size_t rew;
- size_t cur;
- size_t sz;
- int gsize;
- struct eqn eqn;
- struct mparse *parse;
- struct eqn_node *next;
+ struct eqn eqn; /* syntax tree of this equation */
+ struct mparse *parse; /* main parser, for error reporting */
+ struct eqn_node *next; /* singly linked list of equations */
+ struct eqn_def *defs; /* array of definitions */
+ char *data; /* source code of this equation */
+ size_t defsz; /* number of definitions */
+ size_t sz; /* length of the source code */
+ size_t cur; /* parse point in the source code */
+ size_t rew; /* beginning of the current token */
+ int gsize; /* default point size */
+ int delim; /* in-line delimiters enabled */
+ char odelim; /* in-line opening delimiter */
+ char cdelim; /* in-line closing delimiter */
};
struct eqn_def {