@@ -335,6 +335,8 @@ function dtutils_string.sanitize_lua(str)
335335 str = string.gsub (str , " %-" , " %%-" )
336336 str = string.gsub (str , " %(" , " %%(" )
337337 str = string.gsub (str , " %)" , " %%)" )
338+ str = string.gsub (str , " %[" , " %%[" )
339+ str = string.gsub (str , " %]" , " %%]" )
338340 str = string.gsub (str , " +" , " %%+" )
339341 log .log_level (old_log_level )
340342 return str
@@ -623,8 +625,15 @@ local function build_category_substitution_list(image, variable_string)
623625 local var = string.match (match , " %$%((.-%)?)%)" ) -- strip of the leading $( and trailing )
624626 log .msg (log .info , " var is " .. var )
625627
626- if string.match (var , " CATEGORY%d" ) then
627- local element , tag = string.match (var , " CATEGORY(%d)%((.-)%)" ) -- get the element number and the tag to match
628+ if string.match (var , " CATEGORY%d" ) or string.match (var , " CATEGORY%[" ) then
629+ local element
630+ local tag
631+
632+ if string.match (var , " CATEGORY%d" ) then
633+ element , tag = string.match (var , " CATEGORY(%d)%((.-)%)" ) -- get the element number and the tag to match
634+ else
635+ element , tag = string.match (var , " %[(%d),(.-)%]" ) -- new syntax
636+ end
628637
629638 element = element + 1 -- add one to element since lua arrays are 1 based
630639 log .msg (log .debug , " element is " .. element .. " and tag is " .. tag )
@@ -696,7 +705,7 @@ function dtutils_string.build_substition_list(image, sequence, variable_string,
696705
697706 local version_multi = # image :get_group_members () > 1 and image .version or " "
698707
699- local replacements = {image .film , -- ROLL.NAME
708+ local replacements = {image .film . path , -- ROLL.NAME
700709 image .path , -- FILE.FOLDER
701710 image .filename , -- FILE.NAME
702711 dtutils_string .get_filetype (image .filename ),-- FILE.EXTENSION
@@ -819,10 +828,18 @@ local function treat(var_string)
819828 var = check_legacy_vars (var )
820829 log .msg (log .info , " var_string is " .. tostring (var_string ) .. " and var is " .. tostring (var ))
821830
822- if string.match (var_string , " CATEGORY%d" ) then
831+ if string.match (var_string , " CATEGORY%d" ) or string.match ( var_string , " CATEGORY%[ " ) then
823832 log .msg (log .info , " substituting for " .. var_string )
824833 ret_val = substitutes [var_string ]
825834 log .msg (log .info , " ret_val is " .. ret_val )
835+
836+ elseif string.match (var_string , " SEQUENCE%[" ) then
837+ local start , width = string.match (var_string , " (%d+),(%d)" )
838+ local seq_val = tonumber (substitutes [var ])
839+ local pat = " %0" .. width .. " d"
840+ substitutes [var_string ] = string.format (pat , start + (seq_val - 1 ))
841+ ret_val = substitutes [var_string ]
842+
826843 else
827844 ret_val = substitutes [var ]
828845 end
@@ -943,6 +960,7 @@ local function treat(var_string)
943960
944961 end
945962 log .log_level (old_log_level )
963+ dt .print_log (" returning ret_val of " .. ret_val )
946964 return ret_val
947965end
948966
@@ -965,7 +983,8 @@ dtutils_string.libdoc.functions["substitute_list"] = {
965983
966984function dtutils_string .substitute_list (str )
967985 local old_log_level = log .log_level ()
968- log .log_level (dtutils_string .log_level )
986+ -- log.log_level(dtutils_string.log_level)
987+ log .log_level (log .info )
969988
970989 -- replace the substitution variables in a string
971990 for match in string.gmatch (str , " %$%(.-%)?%)" ) do
@@ -975,6 +994,8 @@ function dtutils_string.substitute_list(str)
975994 local treated_var = treat (var )
976995 log .msg (log .info , " var is " .. var .. " and treated var is " .. tostring (treated_var ))
977996
997+ dt .print_log (" str is " .. str )
998+
978999 str = string.gsub (str , " %$%(" .. dtutils_string .sanitize_lua (var ) .. " %)" , tostring (treated_var ))
9791000 log .msg (log .info , " str after replacement is " .. str )
9801001
0 commit comments