summaryrefslogtreecommitdiff
path: root/Build/source/texk
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-05-17 22:14:29 +0000
committerKarl Berry <karl@freefriends.org>2024-05-17 22:14:29 +0000
commit07c053721b7b247a9ed28f76d275d89d10d1d301 (patch)
treef5973bc66feb23a3bd95592c8a2a9788116c8874 /Build/source/texk
parenta96a92d3f03a2a9af25b815c66adfe7ebadae768 (diff)
xindex (18may24)
git-svn-id: svn://tug.org/texlive/trunk@71279 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk')
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/xindex/xindex.lua124
1 files changed, 66 insertions, 58 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/xindex/xindex.lua b/Build/source/texk/texlive/linked_scripts/xindex/xindex.lua
index 041235d289c..b07a551f8c6 100755
--- a/Build/source/texk/texlive/linked_scripts/xindex/xindex.lua
+++ b/Build/source/texk/texlive/linked_scripts/xindex/xindex.lua
@@ -9,7 +9,7 @@
-----------------------------------------------------------------------
xindex = xindex or { }
- local version = 0.55
+ local version = 0.60
xindex.version = version
--xindex.self = "xindex"
@@ -46,7 +46,7 @@ local args = require ('xindex-lapp') [[
-V,--version
-a,--no_casesensitive
-b,--no_labels
- -c,--config (default cfg)
+ -c,--config (default "")
-e,--escapechar (default ")
-f,--fix_hyperref
-g,--no_pagenumber
@@ -57,7 +57,8 @@ local args = require ('xindex-lapp') [[
-o,--output (default "")
-p,--prefix (default L)
-s,--use_stdin
- -u,--use_UCA
+ -u,--use_UCA no more needed
+ -x,--no_UCA
<files...> (default stdin) .idx file(s)
]]
@@ -170,7 +171,6 @@ end
logFile = io.open(logfilename,"w+")
require('xindex-lib')
-
writeLog(2,"xindex v."..version.." (c) Herbert Voß\n",-1)
writeLog(1,"Verbose level = "..vlevel.."\n",1)
writeLog(2,"Logfile:"..logfilename.."\n",1)
@@ -202,45 +202,13 @@ writeLog(2,"ignore space for sorting: "..tostring(ignoreSpace).."\n",-1)
labelPrefix = args.prefix
writeLog(2,"Label prefix: "..labelPrefix.."\n",-1)
-writeLog(2,"Loading common config file ".."xindex-cfg-common\n",1)
+writeLog(2,"Loading all config files ... \n",1)
+writeLog(2,"Loading common config file ".."xindex-cfg-common\n",1) -- we need config for lang setting
Config_File_Common = kpse.find_file("xindex-cfg-common.lua")
cfg_common = require(Config_File_Common)
-local user_config_file = "xindex-"..args["config"]..".lua"
-print("Local config file is: "..user_config_file)
-writeLog(2,"Loading local config file "..user_config_file,0)
-if kpse.find_file(user_config_file)
- then Config_File = kpse.find_file(user_config_file)
- else print("Cannot find config file with kpse.find_file!!")
-end
-print("\nLocal KPSE config file is: "..Config_File.."\n")
-cfg = require(Config_File)
-writeLog(2," ... done\n",0)
-
--- Create the character list maps for faster sorting
-
-alphabet_lower_map = CreateCharListMap(alphabet_lower)
-alphabet_upper_map = CreateCharListMap(alphabet_upper)
-
-esc_char = args.escapechar
-esc_char2 = esc_char..esc_char
-writeLog(2,"Escapechar = "..esc_char.."\n",1)
-escape_chars = { -- by default " is the escape char
- {esc_char2, '//escaped2//', esc_char },
- {esc_char..'@', '//escapedat//', '@' },
- {esc_char..'|', '//escapedvert//', '|' },
- {esc_char..'!', '//escapedexcl//', '!' },
- {'', '\\textbar', '|' },
- {'', '\\braceLeft', '{' },
- {'', '\\braceRight', '}' }
-}
-
-outFile = io.open(outfilename,"w+")
-
check_language = args["checklang"]
local aux_language = ""
-
-
if check_language then
print("check aux file for unknown language")
-- writeLog(2,'Check language in aux file\n',0)
@@ -287,32 +255,17 @@ else
end
end
---print("Sprache:"..language)
-
-writeLog(2,"Language = "..language.."\n",1)
-if (indexheader[language] == nil) then
- writeLog(2,'Corrected the unknown language "'..language..'" to "en"'.."\n",0)
- language = "en"
-end
-
-index_header = indexheader[language]
-if vlevel > 0 then for i=1,#index_header do writeLog(2,index_header[i].."\n",1) end end
-if (folium[language] == nil) then
- writeLog(2,'Corrected the unknown language "'..language..'" for page folium to "en"'.."\n",0)
- page_folium = folium["en"]
-else
- page_folium = folium[language]
-end
+-- next config is UCA
-use_UCA = args["use_UCA"]
+use_UCA = not args["no_UCA"]
if use_UCA then
writeLog(1,"Will use LUA-UCA\n",1)
ducet = require "lua-uca.lua-uca-ducet"
collator = require "lua-uca.lua-uca-collator"
languages = require "lua-uca.lua-uca-languages"
collator_obj = collator.new(ducet)
-
- local uca_config_file = "xindex-cfg-uca.lua"
+
+ uca_config_file = "xindex-cfg-uca.lua" -- for additional language definition
writeLog(2,"Loading local UCA config file "..uca_config_file,0)
UCA_Config_File = kpse.find_file(uca_config_file)
uca_cfg = require(UCA_Config_File)
@@ -331,11 +284,66 @@ if use_UCA then
print("[Lua-UCA] Loading language: " .. language)
collator_obj = languages[language](collator_obj)
end
+ alphabet_lower_map = {} -- empty tables for UCA sorting
+ alphabet_upper_map = {}
else
writeLog(1,"Will _not_ use LUA-UCA\n",1)
+ -- Create the character list maps for faster sorting if not using UCA
+ writeLog(2,"Loading config file for no UCA".."xindex-cfg-no_uca\n",1)
+ Config_File_UCA = kpse.find_file("xindex-cfg-no_uca.lua")
+ cfg_UCA = require(Config_File_UCA)
+ alphabet_lower_map = CreateCharListMap(alphabet_lower)
+ alphabet_upper_map = CreateCharListMap(alphabet_upper)
+end
+
+-- at last the user config
+
+if args["config"] ~= '""' then
+ local user_config_file = "xindex-"..args["config"]..".lua"
+ print("Local config file is: "..user_config_file)
+ writeLog(2,"Loading local config file "..user_config_file,0)
+ if kpse.find_file(user_config_file) then
+ Config_File = kpse.find_file(user_config_file)
+ else
+ Config_File = ""
+ print("Cannot find config file with kpse.find_file!!")
+ end
+ print("\nLocal KPSE config file is: "..Config_File.."\n")
+ cfg = require(Config_File)
+ writeLog(2," ... done\n",0)
end
-upper = unicode.utf8.upper
+--print("Sprache:"..language)
+
+writeLog(2,"Language = "..language.."\n",1)
+if (indexheader[language] == nil) then
+ writeLog(2,'Corrected the unknown language "'..language..'" to "en"'.."\n",0)
+ language = "en"
+end
+
+index_header = indexheader[language]
+if vlevel > 0 then for i=1,#index_header do writeLog(2,index_header[i].."\n",1) end end
+if (folium[language] == nil) then
+ writeLog(2,'Corrected the unknown language "'..language..'" for page folium to "en"'.."\n",0)
+ page_folium = folium["en"]
+else
+ page_folium = folium[language]
+end
+
+
+
+esc_char = args.escapechar
+esc_char2 = esc_char..esc_char
+writeLog(2,"Escapechar = "..esc_char.."\n",1)
+escape_chars = { -- by default " is the escape char
+ {esc_char2, '//escaped2//', esc_char },
+ {esc_char..'@', '//escapedat//', '@' },
+ {esc_char..'|', '//escapedvert//', '|' },
+ {esc_char..'!', '//escapedexcl//', '!' },
+ {'', '\\textbar', '|' },
+ {'', '\\braceLeft', '{' },
+ {'', '\\braceRight', '}' }
+}
no_caseSensitive = args["no_casesensitive"]
if no_caseSensitive then