]> git.cameronkatri.com Git - mandoc.git/blobdiff - eqn.c
tagging issues from weerd@ regarding hyphens
[mandoc.git] / eqn.c
diff --git a/eqn.c b/eqn.c
index a210aec26766b69f9cab7cf2672a07c1f93822f5..27f5cac396cb52578a0d93b664c2c2bbda1ac251 100644 (file)
--- a/eqn.c
+++ b/eqn.c
@@ -1,7 +1,7 @@
-/*     $Id: eqn.c,v 1.82 2018/12/14 05:18:02 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
@@ -303,12 +303,11 @@ static    void             eqn_undef(struct eqn_node *);
 
 
 struct eqn_node *
-eqn_alloc(struct mparse *parse)
+eqn_alloc(void)
 {
        struct eqn_node *ep;
 
        ep = mandoc_calloc(1, sizeof(*ep));
-       ep->parse = parse;
        ep->gsize = EQN_DEFSIZE;
        return ep;
 }
@@ -400,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;
                }
@@ -670,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);