| At line 1 changed one line | 
| All have a start and end, and use curly brackets.  Some take additional parameters separated by colons. : | 
| All have a start and end and use curly brackets.  Some take additional parameters separated by colons. : | 
| At line 17 added 8 lines | 
| VRL encodes the inner data....@ becomes {at}, % becomes {percent} etc. | 
| {{{ | 
| vrlencode_start | 
| }}} | 
| VRL decodes the inner data.  {at} becomes @ etc | 
| {{{ | 
| vrldecode_start | 
| }}} | 
| At line 49 changed one line | 
| Safeguards the text for raw SQL preventing ' and ; and %, etc risks in input text. | 
| Safeguards the text for raw SQL preventing ' and; and %, etc risks in the input text. | 
| At line 83 changed one line | 
| Parsing a date to a millisecond value.  Example: {parse_start:MMddyy HH~..~mm~..~ss}042578 22:43:12{parse_end}   Note how the sideways colon is used to represent the colon since colon is our separator character.  ~..~ means : in functions where that scenario occurs. | 
| Parsing a date to a millisecond value.  Example: {parse_start:MMddyy HH~..~mm~..~ss}042578 22:43:12{parse_end}   Note how the sideways colon is used to represent the colon since colon is our separator character.  ~..~~ means: in functions where that scenario occurs. For strict parsing use character '__=__' at the beginning of the date format like {parse_start:__=__MM/dd/yyyy}. It will parse only valid dates and fails for example for __13__/02/2022 (Month maximum number is __12__). | 
| At line 92 changed one line | 
| user,pass,path,port,host,protocol,file,query | 
| protocol, user, pass, host, port, path, file, and query in this order. | 
| At line 100 changed one line | 
| Do very basic math operation on text formatted math.  Example:  {math_start:l}5+5{math_end}  would result in 10.  The l is for LONG.  f is for FLOAT.  i is for INTEGER, which is the default.  So {math_start:f}5+5{math_end}  would result in 10.0 | 
| Do very basic math operations on text formatted math.  Example:  {math_start:l}5+5{math_end}  would result in 10.  The l is for LONG.  f is for FLOAT.  i is for INTEGER.  d is for big numbers (double of the integer) which is the default. So {math_start:f}5+5{math_end}  would result in 10.0 | 
| At line 104 changed one line | 
| Reference a list of user attributes, separated by a delimitator character, of a group of users. Example: {group_start:email:MainUsers:,}Mygroup{group_end} comma separated list of user e-mail addresses members of Mygroup from MainUsers connection group | 
| Reference a list of user attributes, separated by a delimitator character, of a group of users. Example: {group_start:email:MainUsers:,}Mygroup{group_end} comma-separated list of user e-mail addresses members of Mygroup from MainUsers connection group | 
| At line 120 added 22 lines | 
| Turn off function replacement. If the text starts with the variable {ignore_functions} function replacement will be turned off. | 
| {{{ | 
| ignore_functions | 
| }}} | 
| Log custom text to CrushFTP.log | 
| {{{ | 
| {log_start}some text, or {variables}{log_end} | 
| }}} | 
| \\ | 
| !Save, Load, and Add to named list items in a job flow.  (UserVariable task only)  (CrushFTP 10.3.0_43+ supports this)\\ | 
| Save a copy of the current list to the name in the function (applying the filter of the UserVariable task) | 
| {{{ | 
| save_list_start | 
| }}} | 
| Load a list into the current list and start using it.  The existing list is discarded. | 
| {{{ | 
| load_list_start | 
| }}} | 
| Add the current item to a named list. | 
| {{{ | 
| add_list_start | 
| }}} |