Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make masterFilename what it says on the tin #1835

Merged
merged 2 commits into from
Aug 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions classes/base.lua
Original file line number Diff line number Diff line change
Expand Up @@ -575,9 +575,9 @@ function class:finish ()
end
SILE.typesetter:runHooks("pageend") -- normally run by the typesetter
self:endPage()
if SILE.typesetter then
assert(SILE.typesetter:isQueueEmpty(), "queues not empty")
end
if SILE.typesetter then
assert(SILE.typesetter:isQueueEmpty(), "queues not empty")
end
SILE.outputter:finish()
self:runHooks("finish")
end
Expand Down
2 changes: 1 addition & 1 deletion core/makedeps.lua
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ local makeDeps = {
write = function (self)
self:add_modules()
if type(self.filename) ~= "string" then
self.filename = SILE.masterFilename .. ".d"
self.filename = pl.path.splitext(SILE.input.filenames[1]) .. ".d"
end
local depfile, err = io.open(self.filename, "w")
if not depfile then return SU.error(err) end
Expand Down
14 changes: 6 additions & 8 deletions core/sile.lua
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ function SILE.processString (doc, format, filename, options)
-- a specific inputter to use, use it at the exclusion of all content type
-- detection
local inputter
if filename and pl.path.splitext(pl.path.normcase(filename)) == SILE.masterFilename and SILE.inputter then
if filename and pl.path.normcase(pl.path.normpath(filename)) == pl.path.normcase(SILE.input.filenames[1]) and SILE.inputter then
inputter = SILE.inputter
else
format = format or detectFormat(doc, filename)
Expand All @@ -301,7 +301,7 @@ function SILE.processString (doc, format, filename, options)
inputter = SILE.inputters[format](options)
-- If we did content detection *and* this is the master file, save the
-- inputter for posterity and postambles
if filename and pl.path.splitext(pl.path.normcase(filename)) == SILE.masterFilename then
if filename and pl.path.normcase(filename) == pl.path.normcase(SILE.input.filenames[1]) then
SILE.inputter = inputter
end
end
Expand All @@ -315,17 +315,15 @@ function SILE.processFile (filename, format, options)
local doc
if filename == "-" then
filename = "STDIN"
SILE.masterFilename = "STDIN"
doc = io.stdin:read("*a")
else
-- Turn slashes around in the event we get passed a path from a Windows shell
filename = filename:gsub("\\", "/")
if not SILE.masterFilename then
-- Strip extension
SILE.masterFilename = string.match(filename, "(.+)%..-$") or filename
SILE.masterFilename = pl.path.splitext(pl.path.normpath(filename))
end
if SILE.masterFilename and not SILE.masterDir then
SILE.masterDir = SILE.masterFilename:match("(.-)[^%/]+$")
if SILE.input.filenames[1] and not SILE.masterDir then
SILE.masterDir = pl.path.dirname(SILE.input.filenames[1])
end
if SILE.masterDir and SILE.masterDir:len() >= 1 then
_G.extendSilePath(SILE.masterDir)
Expand Down Expand Up @@ -463,7 +461,7 @@ function SILE.finish ()
end
if SU.debugging("profile") then
ProFi:stop()
ProFi:writeReport(SILE.masterFilename..'.profile.txt')
ProFi:writeReport(pl.path.splitext(SILE.input.filenames[1]) .. '.profile.txt')
end
if SU.debugging("versions") then
SILE.shaper:debugVersions()
Expand Down
2 changes: 1 addition & 1 deletion documentation/c10-classdesign.sil
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ Here is a function to be called by the \code{finish} output routine:
function package.writeToc (_)
-- (Simplified from the actual implementation.)
local tocdata = pl.pretty.write(SILE.scratch.tableofcontents)
local tocfile, err = io.open(SILE.masterFilename .. '.toc', "w")
local tocfile, err = io.open(pl.path.splitext(SILE.input.filenames[1]) .. '.toc', "w")
if not tocfile then return SU.error(err) end
tocfile:write("return " .. tocdata)
tocfile:close()
Expand Down
4 changes: 2 additions & 2 deletions outputters/base.lua
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ function outputter:getOutputFilename ()
local fname
if SILE.outputFilename then
fname = SILE.outputFilename
elseif SILE.masterFilename then
fname = SILE.masterFilename
elseif SILE.input.filenames[1] then
fname = pl.path.splitext(SILE.input.filenames[1])
if self.extension then
fname = fname .. "." .. self.extension
end
Expand Down
2 changes: 1 addition & 1 deletion packages/cropmarks/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ end
function package:registerCommands ()

self:registerCommand("crop:header", function (_, _)
local info = SILE.masterFilename .. " - " .. self.class:date("%x %X") .. " - " .. outcounter
local info = SILE.input.filenames[1] .. " - " .. self.class:date("%x %X") .. " - " .. outcounter
SILE.typesetter:typeset(info)
end)

Expand Down
4 changes: 2 additions & 2 deletions packages/tableofcontents/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ end

function package.writeToc (_)
local tocdata = pl.pretty.write(SILE.scratch.tableofcontents)
local tocfile, err = io.open(SILE.masterFilename .. '.toc', "w")
local tocfile, err = io.open(pl.path.splitext(SILE.input.filenames[1]) .. '.toc', "w")
if not tocfile then return SU.error(err) end
tocfile:write("return " .. tocdata)
tocfile:close()
Expand All @@ -34,7 +34,7 @@ function package.readToc (_)
-- already loaded
return SILE.scratch._tableofcontents
end
local tocfile, _ = io.open(SILE.masterFilename .. '.toc')
local tocfile, _ = io.open(pl.path.splitext(SILE.input.filenames[1]) .. '.toc')
if not tocfile then
return false -- No TOC yet
end
Expand Down
Loading