@@ -335,6 +335,8 @@ function dtutils_string.sanitize_lua(str)
335
335
str = string.gsub (str , " %-" , " %%-" )
336
336
str = string.gsub (str , " %(" , " %%(" )
337
337
str = string.gsub (str , " %)" , " %%)" )
338
+ str = string.gsub (str , " %[" , " %%[" )
339
+ str = string.gsub (str , " %]" , " %%]" )
338
340
str = string.gsub (str , " +" , " %%+" )
339
341
log .log_level (old_log_level )
340
342
return str
@@ -623,8 +625,15 @@ local function build_category_substitution_list(image, variable_string)
623
625
local var = string.match (match , " %$%((.-%)?)%)" ) -- strip of the leading $( and trailing )
624
626
log .msg (log .info , " var is " .. var )
625
627
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
628
637
629
638
element = element + 1 -- add one to element since lua arrays are 1 based
630
639
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,
696
705
697
706
local version_multi = # image :get_group_members () > 1 and image .version or " "
698
707
699
- local replacements = {image .film , -- ROLL.NAME
708
+ local replacements = {image .film . path , -- ROLL.NAME
700
709
image .path , -- FILE.FOLDER
701
710
image .filename , -- FILE.NAME
702
711
dtutils_string .get_filetype (image .filename ),-- FILE.EXTENSION
@@ -819,10 +828,18 @@ local function treat(var_string)
819
828
var = check_legacy_vars (var )
820
829
log .msg (log .info , " var_string is " .. tostring (var_string ) .. " and var is " .. tostring (var ))
821
830
822
- if string.match (var_string , " CATEGORY%d" ) then
831
+ if string.match (var_string , " CATEGORY%d" ) or string.match ( var_string , " CATEGORY%[ " ) then
823
832
log .msg (log .info , " substituting for " .. var_string )
824
833
ret_val = substitutes [var_string ]
825
834
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
+
826
843
else
827
844
ret_val = substitutes [var ]
828
845
end
@@ -943,6 +960,7 @@ local function treat(var_string)
943
960
944
961
end
945
962
log .log_level (old_log_level )
963
+ dt .print_log (" returning ret_val of " .. ret_val )
946
964
return ret_val
947
965
end
948
966
@@ -965,7 +983,8 @@ dtutils_string.libdoc.functions["substitute_list"] = {
965
983
966
984
function dtutils_string .substitute_list (str )
967
985
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 )
969
988
970
989
-- replace the substitution variables in a string
971
990
for match in string.gmatch (str , " %$%(.-%)?%)" ) do
@@ -975,6 +994,8 @@ function dtutils_string.substitute_list(str)
975
994
local treated_var = treat (var )
976
995
log .msg (log .info , " var is " .. var .. " and treated var is " .. tostring (treated_var ))
977
996
997
+ dt .print_log (" str is " .. str )
998
+
978
999
str = string.gsub (str , " %$%(" .. dtutils_string .sanitize_lua (var ) .. " %)" , tostring (treated_var ))
979
1000
log .msg (log .info , " str after replacement is " .. str )
980
1001
0 commit comments