chiark / gitweb /
Support cntrmask and hintmask operators in editor
authorBen Harris <bjh21@bjh21.me.uk>
Tue, 19 Nov 2024 22:31:57 +0000 (22:31 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Tue, 19 Nov 2024 23:40:00 +0000 (23:40 +0000)
editor

diff --git a/editor b/editor
index df2ca61e5bd7484021f06608d799d7680e045c02..86c43ea8b0e1910537c84a3fed55a8cc0b3dab8b 100755 (executable)
--- a/editor
+++ b/editor
@@ -100,6 +100,7 @@ class EditorGui:
                 self.path = None
                 self.stack = []
                 self.cursor = [0, 0]
+                self.skip = False
             def rmoveto(self):
                 self.path = []
                 self.paths.append(self.path)
@@ -112,11 +113,14 @@ class EditorGui:
                     self.path.append(self.cursor[:])
             def op(self, word):
                 try:
-                    self.stack.append(float(word))
+                    if not self.skip:
+                        self.stack.append(float(word))
+                    self.skip = False
                 except:
                     if word == "rmoveto": self.rmoveto()
                     elif word == "rlineto": self.rlineto()
                     elif word in ("hstem", "vstem"): self.stack = []
+                    elif word in ("cntrmask", "hintmask"): self.skip = True
                     elif word == "endchar": pass
                     else:
                         print("unknown charstring component " + repr(word))