diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2020-01-08 12:16:24 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2020-01-08 12:16:24 +0000 |
commit | 98cc12a3729c63e7dc46f5e74003d4df8b335c82 (patch) | |
tree | 10dd1e3b74d9e66140306eb78038361e344f43e7 /eqn.c | |
parent | 9f7df258616138634322e0de05f630597370754e (diff) | |
download | mandoc-98cc12a3729c63e7dc46f5e74003d4df8b335c82.tar.gz mandoc-98cc12a3729c63e7dc46f5e74003d4df8b335c82.tar.zst mandoc-98cc12a3729c63e7dc46f5e74003d4df8b335c82.zip |
Skip whitespace before tokens, too.
Bug found by bentley@ with input like "delim $$ delim off".
Diffstat (limited to 'eqn.c')
-rw-r--r-- | eqn.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -1,7 +1,7 @@ -/* $Id: eqn.c,v 1.83 2018/12/14 06:33:14 schwarze Exp $ */ +/* $Id: eqn.c,v 1.84 2020/01/08 12:16:24 schwarze Exp $ */ /* * Copyright (c) 2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> - * Copyright (c) 2014, 2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2014,2015,2017,2018,2020 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 @@ -399,6 +399,14 @@ eqn_next(struct eqn_node *ep, enum parse_mode mode) case '"': quoted = 1; break; + case ' ': + case '\t': + case '~': + case '^': + if (quoted) + break; + ep->start++; + continue; default: break; } @@ -669,7 +677,7 @@ eqn_parse(struct eqn_node *ep) if (ep->data == NULL) return; - ep->start = ep->end = ep->data + strspn(ep->data, " ^~"); + ep->start = ep->end = ep->data; next_tok: tok = eqn_next(ep, MODE_TOK); |