[Pkg-javascript-commits] [ltx] 230/469: sax_ltx: fixes, ignore processing instructions
Jonas Smedegaard
dr at jones.dk
Wed Aug 31 13:03:07 UTC 2016
This is an automated email from the git hooks/post-receive script.
js pushed a commit to branch master
in repository ltx.
commit 98057b781b54c8be7b179e23eda1af39a1c69da7
Author: Astro <astro at spaceboyz.net>
Date: Tue Mar 20 04:51:34 2012 +0100
sax_ltx: fixes, ignore processing instructions
---
lib/sax_ltx.js | 24 +++++++++++++++++-------
test/parse-test.js | 2 +-
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/lib/sax_ltx.js b/lib/sax_ltx.js
index 9269be3..22939f3 100644
--- a/lib/sax_ltx.js
+++ b/lib/sax_ltx.js
@@ -2,6 +2,7 @@ var util = require('util');
var events = require('events');
const STATE_TEXT = 0,
+ STATE_IGNORE_TAG = 1,
STATE_TAG_NAME = 2,
STATE_TAG = 3,
STATE_ATTR_NAME = 4,
@@ -64,12 +65,20 @@ var SaxLtx = module.exports = function SaxLtx() {
if (c === 47 /* / */ && recordStart === pos) {
recordStart = pos + 1;
endTag = true;
+ } else if (c === 33 /* ! */ || c === 63 /* ? */) {
+ recordStart = undefined;
+ state = STATE_IGNORE_TAG;
} else if (c <= 32 || c === 47 /* / */ || c === 62 /* > */) {
tagName = endRecording();
pos--;
state = STATE_TAG;
}
break;
+ case STATE_IGNORE_TAG:
+ if (c === 62 /* > */) {
+ state = STATE_TEXT;
+ }
+ break;
case STATE_TAG:
if (c === 62 /* > */) {
if (!endTag) {
@@ -118,15 +127,16 @@ var SaxLtx = module.exports = function SaxLtx() {
state = STATE_TAG;
}
break;
+ }
}
- }
- if (this.hasOwnProperty('recordStart') &&
- this.recordStart <= data.length) {
- remainder = data.slice(this.recordStart);
- this.recordStart = 0;
- }
-};
+ if (typeof recordStart === 'number' &&
+ recordStart <= data.length) {
+
+ remainder = data.slice(recordStart);
+ recordStart = 0;
+ }
+ };
/*var origEmit = this.emit;
this.emit = function() {
diff --git a/test/parse-test.js b/test/parse-test.js
index f4c7615..c225f20 100644
--- a/test/parse-test.js
+++ b/test/parse-test.js
@@ -87,7 +87,7 @@ ltx.availableSaxParsers.forEach(function(saxParser) {
parser.write("mpp-tls'/><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-");
assert.equal(events.length, 4);
parser.write("sasl'><mechanism>PLAIN</mechanism><mechanism>DIGEST-MD5</");
- assert.equal(events.length, 9);
+ assert.equal(events.length, 10);
parser.write("mechanism><mechanism>SCRAM-SHA-1</mechanism></mechanisms>");
assert.equal(events.length, 15);
parser.write("<register xmlns='http://jabber.org/features/iq-register'/");
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/ltx.git
More information about the Pkg-javascript-commits
mailing list