X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fmaster-project%2Freport.git;a=blobdiff_plain;f=pret-lam.lua;h=43e8c8cc25f305ecf44b10e7d5a9b3b4311ca0ea;hp=f8ddb676088a7870fd94a979276d3283aa7b7dd6;hb=781e18d74e018edbe47c011ab6741456138682ab;hpb=754983b9ff12abf4fd16b7f7a2d2bf7e0b024f0c diff --git a/pret-lam.lua b/pret-lam.lua index f8ddb67..43e8c8c 100644 --- a/pret-lam.lua +++ b/pret-lam.lua @@ -221,12 +221,16 @@ vis.begin_of_inline = vis.begin_of_display vis.end_of_inline = vis.end_of_display function vis.flush_line(str,nested) - buffers.flush_result(vis.do_line(str), nested) + buffers.flush_result(vis.do_line(str, false), nested) end -function vis.do_line(str) - result = {} - str = do_indent(str) +function vis.do_line(str, no_indent) + local result = {} + if not no_indent then + -- Allow ignore of the indentation stuff when we're calling ourselves + -- for a partial line. + str = do_indent(str) + end while str ~= "" do local found = false local word, symbol @@ -234,10 +238,17 @@ function vis.do_line(str) if text then table.insert(result, '\\strikethrough{') -- Recursively call ourselves to handle spaces gracefully. - result = array_concat(result, vis.do_line(text)) + result = array_concat(result, vis.do_line(text, true)) table.insert(result, '}') -- Eat the processed characters str = rest + elseif utf.match(str, "^%-%-") then + table.insert(result, '{\\italic{--') + -- Recursively call ourselves to handle spaces gracefully. + result = array_concat(result, vis.do_line(utf.sub(str, 3), true)) + table.insert(result, '}}') + -- Done with this line + str = '' else -- See if the next token is a word word, str = take_word(str)