diff options
author | Norbert Preining <norbert@preining.info> | 2023-07-17 03:03:42 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-07-17 03:03:42 +0000 |
commit | 2d6f89f83b7567136c3a40b3b55f9be1e06bd99e (patch) | |
tree | 9f4acc9c2c0e94ea2bc4626e2d2e6e6a92984ffe /indexing/xindex/lualatex/xindex-base.lua | |
parent | bfb037e9e2deef77f8837a4421b029f8298437cf (diff) |
CTAN sync 202307170303
Diffstat (limited to 'indexing/xindex/lualatex/xindex-base.lua')
-rw-r--r-- | indexing/xindex/lualatex/xindex-base.lua | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/indexing/xindex/lualatex/xindex-base.lua b/indexing/xindex/lualatex/xindex-base.lua index 0999421e4d..98e2d3dd43 100644 --- a/indexing/xindex/lualatex/xindex-base.lua +++ b/indexing/xindex/lualatex/xindex-base.lua @@ -8,7 +8,7 @@ -- $Id: xindex-base.lua 22 2022-02-07 12:18:15Z hvoss $ ----------------------------------------------------------------------- -local info = { version = 0.51 } +local info = { version = 0.53 } -- check config if pageNoPrefixDel ~= "" then @@ -49,16 +49,16 @@ end writeLog(1,"check for hyperpages ... ",0) hyperpage, lines = checkHyperpage(lines) -- hyperref used? -writeLog(1,"done \n",0) +--writeLog(1,"done \n",0) if hyperpage then writeLog(1,"We have hyperpages.\n",1) end print("Presort of \\indexentry lines") -- for _,l in pairs(lines) do print (l) end table.sort(lines) -if vlevel > 1 then - print("Pre-Sorted index list:") - for _,l in pairs(lines) do print (l) end -end +--if vlevel > 1 then + --print("Pre-Sorted index list:") + --for _,l in pairs(lines) do print (l) end +--end if vlevel > 1 then writeLog(1,"--------------- Input data (presorted) -----------------\n",2) @@ -74,11 +74,15 @@ local noPagefound writeLog(1,"Change escape chars with macros ... \n",0) for k,v in ipairs(lines) do + --print("(k,v) ",k,v) if not commandEntry(v) then + --print() + --print(require 'xindex-pretty'.dump(escape_chars)) -- only for internal dump + --print() for i, str0 in ipairs(escape_chars) do -- str0: esc-char, coded, char --- print(str0[1],str0[2],v) - v = string.gsub(v,str0[1],str0[2]) --- print("==> "..v) + if i < 5 then + v,changed = v:gsub(literalize(str0[1]),str0[2]) -- some chars must be escaped + end end if k < #lines then if commandEntry(lines[k+1]) then -- is the next line not a \indexentry ? @@ -177,14 +181,11 @@ if use_UCA then writeLog(2,"done\n",0) else for i=1, #NewIndex do - v = NewIndex[i] - if findStr(v["SortKey"],"\\braceLeft") < 2 then v["SortKey"] = '{' v["sortChar"] = '{'end - if findStr(v["SortKey"],"\\braceRight") < 2 then v["SortKey"] = '}' end - if findStr(v["SortKey"],"//escapedexcl//") < 2 then v["SortKey"] = '!' end - if findStr(v["SortKey"],"//escapedquote//") < 2 then v["SortKey"] = '"' end - if findStr(v["SortKey"],"//escapedat//") < 2 then v["SortKey"] = '@' end - if findStr(v["SortKey"],"//escapedvert//") < 2 then v["SortKey"] = '|' end - NewIndex[i] = v + if NewIndex[i]["SortKey"] ~= nil then + for _,w in pairs(escape_chars) do + NewIndex[i]["SortKey"] = NewIndex[i]["SortKey"]:gsub(w[2], w[3]) + end + end end end |