From 0322a9d2c25edfa2749e4a10cac32cf0af533f82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 19 May 2022 21:58:31 +0200 Subject: [PATCH] Correctly complete after opening OR-ed parenthesis The nested call to replace_ending_clause must be pushed in the result instead of concatenated because the clause can be OR-ed. And pslice must remove depth from the length of the sting. issue11477 review421151003 --- src/common.js | 6 +++--- tests/sao.js | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/common.js b/src/common.js index 3f839998ab..7e6f041ce2 100644 --- a/src/common.js +++ b/src/common.js @@ -1332,7 +1332,7 @@ var pslice = function(string, depth) { if (depth > 0) { - return string.substring(0, depth); + return string.substring(0, string.length - depth); } return string; }; @@ -1462,8 +1462,8 @@ results.push(domain[i]); } if (this.is_subdomain(domain[i])) { - results = results.concat(this.replace_ending_clause(domain[i], - clause)); + results.push( + this.replace_ending_clause(domain[i], clause)); } else { results.push(clause); } diff --git a/tests/sao.js b/tests/sao.js index 4f5ca01cec..a3a66e9fa3 100644 --- a/tests/sao.js +++ b/tests/sao.js @@ -3051,6 +3051,7 @@ ['', ["Name: "]], [' ', ["", "Name: "]], ["Name: foo or", ["Name: foo"]], + ['Name: foo (Name: foo or N', ["Name: foo (Name: foo or Name: "]], ].forEach(function(test) { var value = test[0]; var expected = test[1];