summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2010-02-26 15:24:43 +0200
committerKhaled Hosny <khaledhosny@eglug.org>2010-02-26 15:24:43 +0200
commit0b99d9ec4dd253721ca4dc29af6d95a65975da56 (patch)
tree80c22b38ea41cbb716cca24f9849204c354f0e4a
parentfe0fde65f066d5e9a107a26eaec8fdbfe195f92e (diff)
downloadluaotfload-0b99d9ec4dd253721ca4dc29af6d95a65975da56.tar.gz
Implement a --force option
-rw-r--r--luaotfload-fonts.lua18
-rw-r--r--update-luatex-font-database.lua9
2 files changed, 19 insertions, 8 deletions
diff --git a/luaotfload-fonts.lua b/luaotfload-fonts.lua
index cca4f28..9a59681 100644
--- a/luaotfload-fonts.lua
+++ b/luaotfload-fonts.lua
@@ -331,12 +331,18 @@ local function fontnames_init()
end
-- The main function, scans everything and writes the file.
-local function generate()
+local function reload(force)
texio.write("luaotfload | Generating font names database.")
- local fnames = kpse.do_file(luaotfload.fonts.basename) or fontnames_init()
- if fnames.version ~= luaotfload.fonts.version then
- log(2, "Old font names database version, generating new one")
+ local fnames
+ if force then
fnames = fontnames_init()
+ else
+ fnames = kpse.do_file(luaotfload.fonts.basename)
+ if fnames and fnames.version and fnames.version == luaotfload.fonts.version then
+ else
+ log(2, "Old font names database version, generating new one")
+ fnames = fontnames_init()
+ end
end
local savepath = luaotfload.fonts.directory
savepath = path_normalize(savepath)
@@ -365,5 +371,5 @@ local function generate()
log(1, "Saved font names database in %s\n", savepath)
end
-luaotfload.fonts.scan = scan_dir
-luaotfload.fonts.generate = generate
+luaotfload.fonts.scan = scan_dir
+luaotfload.fonts.reload = reload
diff --git a/update-luatex-font-database.lua b/update-luatex-font-database.lua
index 9a870f5..d067c56 100644
--- a/update-luatex-font-database.lua
+++ b/update-luatex-font-database.lua
@@ -30,6 +30,7 @@ Rebuild the LuaTeX font database.
Valid options:
-d --dbdir DIRECTORY writes the database in the specified directory
+ -f --force force re-indexing all fonts
-q --quiet don't output anything
-v --verbose=LEVEL be more verbose (print the searched directories)
-vv print the loaded fonts
@@ -59,6 +60,7 @@ end
local long_opts = {
dbdir = "d",
+ force = "f",
quiet = "q",
verbose = 1,
version = "V",
@@ -68,7 +70,7 @@ local long_opts = {
['no-fc-cache'] = 0,
}
-local short_opts = "d:qvVh"
+local short_opts = "d:fqvVh"
-- Function running fc-cache if needed.
-- The argument is nil for default, 0 for no fc-cache and 1 for fc-cache.
@@ -88,6 +90,7 @@ end
-- a temporary variable, containing the command line option concerning fc-cache
local run_fc_cache = nil
+local force_reload = nil
local function process_cmdline()
local opts, optind, optarg = alt_getopt.get_ordered_opts (arg, short_opts, long_opts)
@@ -109,6 +112,8 @@ local function process_cmdline()
os.exit(0)
elseif v == "d" then
luaotfload.fonts.directory = optarg [i]
+ elseif v == "f" then
+ force_reload = 1
elseif v == "fc-cache" then
run_fc_cache = 1
elseif v == "no-fc-cache" then
@@ -125,4 +130,4 @@ end
process_cmdline()
do_run_fc_cache(run_fc_cache)
-luaotfload.fonts.generate()
+luaotfload.fonts.reload(force_reload)