One bit fixed, two bits extra (b196)


* #AsChild

You can now use the special directive #AsChild in an adds(), addsorincreases(), or creates() tag to specify that the trait being added should be added as a child. Using #AsChild automatically forces #DoNotOwn as well, so be aware that the child will not be owned and will not appear in the needs() automatically. As with #NoNeeds and #DoNotOwn you should include #AsChild in the main clause of the tag data, before any ‘respond’ or ‘with’ portion, else it be considered part of the other clauses and not work correctly; sticking it into the name section is usually good.

* #InputX directives

There was a processing bug in the code that handles processing the #input(), #inputreplace(), #inputtotag(), and #inputtotagreplace() directives. This bug would occur when the tag data included a custom tag that ended with the # character. The processing code would find that character, correctly identify it as being part of a tag, but still exit processing before looking at the rest of the tag data. That is now fixed, and these directives should now be processed correctly regardless of where they fall in the tag list.

* Respond

I have adjusted adds() and addsorincreases() to allow any included ‘respond’ keywords to use a $ function to process the ‘respond’ text before it gets pushed onto the response stack. You can use this to completely change responses, or to respond with an evaluated expression. If you want to respond with text that includes an unprocessed $ function, escape it as ‘$/function()’ rather than simply ‘$function()’ and GCA will change the ‘$/’ to “$’ before it pushes the responses onto the stack. The $ function processing happens before any quotes or braces are stripped from around the response expression (which itself happens before the response is split into list items if it is a list).

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.