Hi SS

The logic used by the set widget to determine the result assigned to the 
variable is as follows:

1. If the "tiddler" attribute is present and not blank, then:
1a. If the "subtiddler" attribute is also present and not blank, then get the 
subtiddler from the specified tiddler, otherwise just get the tiddler itself
1b. If the "field" attribute is present then return return the value of that 
field, or the value of the "emptyValue" attribute if the field is blank or 
missing
1c. Otherwise, if the "index" attribute is present, return the value of the 
specified index, or the value of the "emptyValue" attribute if the index is 
blank or missing
1d. Otherwise, return the text field of the tiddler, or the value of the 
"emptyValue" attribute if the text field is blank or missing

2. If the "filter" attribute is present and not blank, then evaluate the 
results of the filter, and:
2a. If the "value" attribute is present and the filter results are not empty, 
return the value of the "value" attribute (even if the "value" attribute is 
blank)
2b. If the "value" attribute is present and the filter results are empty, 
return the value of the "emptyValue" attribute, if present, otherwise return a 
blank result
2c. If the "value" attribute is not present, then if the "select" attribute is 
a valid number it is used to retrieve a specified result from the filter
2d. If the "value" attribute is not present, and the "select" attribute is not 
a valid number, and the filter results are not empty, then the entire filter 
results are returned (using double square brackets quoting around any results 
that include spaces)
2e. If the "value" attribute is not present, the "select" attribute is not a 
valid number, and the filter results are empty, then the value of the 
"emptyValue" attribute is returned (or blank if it is not present)

3. If neither the "tiddler" or "filter" attributes are provided, return the 
value of the "value" attribute, or the value of the "emptyValue" attribute if 
the "value" attribute is blank or missing

Perhaps it would be clearer expressed as a series of examples...

Best wishes

Jeremy

--
Jeremy Ruston
[email protected]
https://jermolene.com

> On 30 Mar 2019, at 16:17, S. S. <[email protected]> wrote:
> 
> Within a macro, I am trying to determine if a parameter is empty, and then 
> set a variable based on knowing that it is empty.
> 
> I came across the Google Group post from a last month: Check the Blank Macro 
> parameter
> \define mm(newField)
> <$list filter="[<__newField__>] -[[]]">
> 
> Do my job!
> </$list>
> \end
> 
> 
> <<mm test>>
> 
> So I tried using something based on that. Pasting the below into a new 
> tiddler on tiddlywiki.com shows the issue:
> 
> \define test(tiddler)
> <$set name="result" filter="[[$tiddler$]] -[[]]" value="Why is this variable 
> set when the filter ''is not missing'' and ''it's empty''?">
> 
> The description of the ''value'' attribute of the `$set` widget says: The 
> value to assign to the variable if the filter is missing or ''//not empty//''
> 
> tiddler=$tiddler$  
> 
> result=<<result>>
> 
> <$list filter="[[$tiddler$]] -[[]]" emptyMessage="See, the filter shows it's 
> Empty">
> </$list>
> </$set>
> \end
> 
> <<test>>
> 
> 
> I don't understand where I've gone wrong. I'd appreciate some advice.
> Thanks.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "TiddlyWiki" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/tiddlywiki.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/tiddlywiki/1867389e-59de-4b9e-b8e6-6ecd9212d92e%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/E37EEDC5-82E2-42AC-8E9A-2FDFB83F0370%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to