From 15d09c3098fd99c03a774b579f93010623278141 Mon Sep 17 00:00:00 2001
From: "Silas S. Brown" <ssb22@cam.ac.uk>
Date: Mon, 17 Oct 2016 20:43:59 +0000
Subject: [PATCH] Update Web Adjuster

git-svn-id: http://svn.code.sf.net/p/e-guidedog/code/ssb22/adjuster@2601 29193198-4895-4776-b068-10539e920549
---
 adjuster.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/adjuster.py b/adjuster.py
index 33785de..9b08280 100755
--- a/adjuster.py
+++ b/adjuster.py
@@ -2190,9 +2190,13 @@ function adjusterScan() {
     r.open("POST",%s"%s",false);
     r.send(JSON.stringify(texts));
     replacements = JSON.parse(r.responseText);
-    if (replacements.length>=texts.length) {
+    if (replacements.length > texts.length) {
+      if(!window.errorAlerted) { alert("The filter server gave too many strings. I'm ignoring some and hoping for the best. Some text might be incorrect."); window.errorAlerted=1; }
+      replacements = replacements.slice(0,texts.length);
+    }
+    if (replacements.length==texts.length) {
       oldTexts = texts; tw0();
-    } else break; // TODO: handle as error?
+    } else break; /* TODO: handle as error? */
     %s
   }
   HTMLSizeChanged(adjusterScan)
@@ -2330,7 +2334,7 @@ def runFilterOnText(cmd,codeTextList,callback,escape=False,separator=None):
                 elif replacements==None: r.append(maybeEsc(i))
                 else:
                     cl = countItems(["",i]) # >= 1 (site might already use separator)
-                    r.append(maybeEsc(separator.join(replacements[rLine:rLine+cl])))
+                    r.append(maybeEsc(separator.join(rpl.replace(chr(0),"&lt;NULL&gt;") for rpl in replacements[rLine:rLine+cl]))) # there shouldn't be any chr(0)s in the o/p, but if there are, don't let them confuse things
                     rLine += cl
             elif codeAlso: r.append(maybeEsc(i))
             isTxt = not isTxt
-- 
GitLab