From f58a2cb5d22c5931581274db1f0ec85ac903b747 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 28 Oct 2019 20:03:50 +0100 Subject: 2019-10-28 18:22:00 --- tex/context/base/mkiv/data-vir.lua | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'tex/context/base/mkiv/data-vir.lua') diff --git a/tex/context/base/mkiv/data-vir.lua b/tex/context/base/mkiv/data-vir.lua index 7e25c822d..c5e63039c 100644 --- a/tex/context/base/mkiv/data-vir.lua +++ b/tex/context/base/mkiv/data-vir.lua @@ -6,6 +6,7 @@ if not modules then modules = { } end modules ['data-vir'] = { license = "see context related readme files" } +local type = type local formatters, validstrings = string.formatters, string.valid local trace_virtual = false @@ -18,14 +19,18 @@ local resolvers = resolvers local finders, openers, loaders, savers = resolvers.finders, resolvers.openers, resolvers.loaders, resolvers.savers -local data = { } -local n = 0 -- hm, number can be query -local f_virtual = formatters["virtual://%s.%s"] +local data = { } +local n = 0 -- hm, number can be query +local f_virtual_n = formatters["virtual://%s.%s"] +local f_virtual_y = formatters["virtual://%s-%s.%s"] -function savers.virtual(specification,content) +function savers.virtual(specification,content,suffix) n = n + 1 -- one number for all namespaces - local path = specification.path - local filename = f_virtual(path ~= "" and path or "virtualfile",n) + local path = type(specification) == "table" and specification.path or specification + if type(path) ~= "string" or path == "" then + path = "virtualfile" + end + local filename = suffix and f_virtual_y(path,n,suffix) or f_virtual_n(path,suffix) if trace_virtual then report_virtual("saver: file %a saved",filename) end -- cgit v1.2.3