Skip to content

Commit 3ed4219

Browse files
committed
lib/dtutils/string - added [] to sanitize_lua().
added 4.8 syntax to CATEGORY added 4.8 SEQUENCE changes (syntax, start, width)
1 parent 97e3367 commit 3ed4219

File tree

1 file changed

+26
-5
lines changed

1 file changed

+26
-5
lines changed

lib/dtutils/string.lua

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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
947965
end
948966

@@ -965,7 +983,8 @@ dtutils_string.libdoc.functions["substitute_list"] = {
965983

966984
function 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

Comments
 (0)