summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--input.c23
-rw-r--r--inputs/test.but7
2 files changed, 24 insertions, 6 deletions
diff --git a/input.c b/input.c
index 4c3b10d..429b4d5 100644
--- a/input.c
+++ b/input.c
@@ -592,14 +592,17 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx) {
*/
dtor(t), t = get_token(in);
}
- if (t.type == tok_eop || t.type == tok_eof)
+ if (t.type == tok_eop || t.type == tok_eof ||
+ t.type == tok_rbrace) { /* might be } terminating \lcont */
+ if (t.type == tok_rbrace)
+ already = TRUE;
break;
- else if (t.type == tok_cmd && t.cmd == c_c)
+ } else if (t.type == tok_cmd && t.cmd == c_c) {
wtype = word_WeakCode;
- else if (t.type == tok_cmd && t.cmd == c_e &&
- wtype == word_WeakCode)
+ } else if (t.type == tok_cmd && t.cmd == c_e &&
+ wtype == word_WeakCode) {
wtype = word_Emph;
- else {
+ } else {
error(err_brokencodepara, &t.pos);
prev_para_type = par.type;
addpara(par, ret);
@@ -633,6 +636,16 @@ static void read_file(paragraph ***ret, input *in, indexdata *idx) {
continue;
}
+ /*
+ * Also expect, and swallow, any whitespace after that
+ * (a newline before a code paragraph wouldn't be
+ * surprising).
+ */
+ do {
+ dtor(t), t = get_token(in);
+ } while (t.type == tok_white);
+ already = TRUE;
+
if (cmd == c_lcont) {
/*
* \lcont causes a continuation of a list item into
diff --git a/inputs/test.but b/inputs/test.but
index 1fc007e..0331535 100644
--- a/inputs/test.but
+++ b/inputs/test.but
@@ -29,7 +29,7 @@ a bit]
\define{eur} \u20AC{EUR }
-\versionid $Id: test.but,v 1.24 2004/03/30 19:40:56 simon Exp $
+\versionid $Id: test.but,v 1.25 2004/03/30 20:22:00 simon Exp $
\C{ch\\ap} First chapter title; for similar wrapping reasons this
chapter title will be ludicrously long. I wonder how much more
@@ -97,6 +97,11 @@ And here's a sublist. Numbered, just for variety.
\n 1b.
+\lcont{
+\c Code
+\c Paragraph
+}
+
\n 1c.
\lcont{This is an even sillier one: a continuation of a list item in