From 938e72dc3460f593833ccaa2bf2a4d02b63173dd Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Wed, 19 Mar 2025 11:00:03 +0000 Subject: [PATCH] Bug fix --- core/modules/filterrunprefixes/let.js | 8 +++++--- .../let-filter-prefix/ResultListUnnamedVariable.tid | 12 ++++++++++++ .../data/multi-valued-variables/MissingVariable.tid | 12 ++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 editions/test/tiddlers/tests/data/let-filter-prefix/ResultListUnnamedVariable.tid create mode 100644 editions/test/tiddlers/tests/data/multi-valued-variables/MissingVariable.tid diff --git a/core/modules/filterrunprefixes/let.js b/core/modules/filterrunprefixes/let.js index d8afdd1a1..3fa3569f5 100644 --- a/core/modules/filterrunprefixes/let.js +++ b/core/modules/filterrunprefixes/let.js @@ -18,6 +18,10 @@ Export our filter prefix function exports.let = function(operationSubFunction,options) { // Return the filter run prefix function return function(results,source,widget) { + // Save the result list + var resultList = results.toArray(); + // Clear the results + results.clear(); // Evaluate the subfunction to get the variable name var subFunctionResults = operationSubFunction(source,widget); if(subFunctionResults.length === 0) { @@ -29,9 +33,7 @@ exports.let = function(operationSubFunction,options) { } // Assign the result of the subfunction to the variable var variables = {}; - variables[name] = results.toArray() - // Clear the results - results.clear(); + variables[name] = resultList; // Return the variables return { variables: variables diff --git a/editions/test/tiddlers/tests/data/let-filter-prefix/ResultListUnnamedVariable.tid b/editions/test/tiddlers/tests/data/let-filter-prefix/ResultListUnnamedVariable.tid new file mode 100644 index 000000000..7f8c8525b --- /dev/null +++ b/editions/test/tiddlers/tests/data/let-filter-prefix/ResultListUnnamedVariable.tid @@ -0,0 +1,12 @@ +title: LetFilterRunPrefix/ResultListUnnamedVariable +description: Using the "let" filter run prefix to store result lists, not just single values +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +<$text text={{{ [all[tiddlers]] :let[all[]tag[nothing]] [varlist[varname]sort[]join[,]] }}}/> ++ +title: ExpectedResult + +

\ No newline at end of file diff --git a/editions/test/tiddlers/tests/data/multi-valued-variables/MissingVariable.tid b/editions/test/tiddlers/tests/data/multi-valued-variables/MissingVariable.tid new file mode 100644 index 000000000..30744d844 --- /dev/null +++ b/editions/test/tiddlers/tests/data/multi-valued-variables/MissingVariable.tid @@ -0,0 +1,12 @@ +title: MultiValuedVariables/MissingVariable +description: Using varlist with a missing variable +type: text/vnd.tiddlywiki-multiple +tags: [[$:/tags/wiki-test-spec]] + +title: Output + +<$text text={{{ [varlist[varname]] }}}/> ++ +title: ExpectedResult + +

\ No newline at end of file