diff options
| -rw-r--r-- | scripts/context/lua/mtxrun.lua | 27 | ||||
| -rw-r--r-- | scripts/context/stubs/mswin/mtxrun.lua | 27 | ||||
| -rw-r--r-- | scripts/context/stubs/unix/mtxrun | 27 | ||||
| -rw-r--r-- | tex/context/base/cont-new.mkii | 2 | ||||
| -rw-r--r-- | tex/context/base/cont-new.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/context-version.pdf | bin | 4150 -> 4148 bytes | |||
| -rw-r--r-- | tex/context/base/context-version.png | bin | 40738 -> 40426 bytes | |||
| -rw-r--r-- | tex/context/base/context.mkii | 2 | ||||
| -rw-r--r-- | tex/context/base/context.mkiv | 2 | ||||
| -rw-r--r-- | tex/context/base/status-files.pdf | bin | 24564 -> 24538 bytes | |||
| -rw-r--r-- | tex/context/base/status-lua.pdf | bin | 198673 -> 198684 bytes | |||
| -rw-r--r-- | tex/context/base/util-prs.lua | 27 | ||||
| -rw-r--r-- | tex/generic/context/luatex/luatex-fonts-merged.lua | 2 | 
13 files changed, 113 insertions, 5 deletions
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua index 897c39260..5e924b07d 100644 --- a/scripts/context/lua/mtxrun.lua +++ b/scripts/context/lua/mtxrun.lua @@ -6008,6 +6008,33 @@ end  -- inspect(lpeg.match(pattern,[[key="value"]])) +local newline = S('\r\n') + +function parsers.csvsplitter(specification) +    specification   = specification or { } +    local separator = specification.separator +    local quotechar = specification.quote +    local separator = S(separator ~= "" and separator or ",") +    local whatever  = C((1 - separator - newline)^0) +    if quotechar and quotechar ~= "" then +        local quotedata = nil +        for chr in gmatch(quotechar,".") do +            local quotechar = P(chr) +            local quoteword = quotechar * C((1 - quotechar)^0) * quotechar +            if quotedata then +                quotedata = quotedata + quoteword +            else +                quotedata = quoteword +            end +        end +        whatever = quotedata + whatever +    end +    local parser = Ct((Ct(whatever * (separator * whatever)^0) * S("\n\r"))^0 ) +    return function(data) +        return lpegmatch(parser,data) +    end +end +  end -- of closure diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua index 897c39260..5e924b07d 100644 --- a/scripts/context/stubs/mswin/mtxrun.lua +++ b/scripts/context/stubs/mswin/mtxrun.lua @@ -6008,6 +6008,33 @@ end  -- inspect(lpeg.match(pattern,[[key="value"]])) +local newline = S('\r\n') + +function parsers.csvsplitter(specification) +    specification   = specification or { } +    local separator = specification.separator +    local quotechar = specification.quote +    local separator = S(separator ~= "" and separator or ",") +    local whatever  = C((1 - separator - newline)^0) +    if quotechar and quotechar ~= "" then +        local quotedata = nil +        for chr in gmatch(quotechar,".") do +            local quotechar = P(chr) +            local quoteword = quotechar * C((1 - quotechar)^0) * quotechar +            if quotedata then +                quotedata = quotedata + quoteword +            else +                quotedata = quoteword +            end +        end +        whatever = quotedata + whatever +    end +    local parser = Ct((Ct(whatever * (separator * whatever)^0) * S("\n\r"))^0 ) +    return function(data) +        return lpegmatch(parser,data) +    end +end +  end -- of closure diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun index 897c39260..5e924b07d 100644 --- a/scripts/context/stubs/unix/mtxrun +++ b/scripts/context/stubs/unix/mtxrun @@ -6008,6 +6008,33 @@ end  -- inspect(lpeg.match(pattern,[[key="value"]])) +local newline = S('\r\n') + +function parsers.csvsplitter(specification) +    specification   = specification or { } +    local separator = specification.separator +    local quotechar = specification.quote +    local separator = S(separator ~= "" and separator or ",") +    local whatever  = C((1 - separator - newline)^0) +    if quotechar and quotechar ~= "" then +        local quotedata = nil +        for chr in gmatch(quotechar,".") do +            local quotechar = P(chr) +            local quoteword = quotechar * C((1 - quotechar)^0) * quotechar +            if quotedata then +                quotedata = quotedata + quoteword +            else +                quotedata = quoteword +            end +        end +        whatever = quotedata + whatever +    end +    local parser = Ct((Ct(whatever * (separator * whatever)^0) * S("\n\r"))^0 ) +    return function(data) +        return lpegmatch(parser,data) +    end +end +  end -- of closure diff --git a/tex/context/base/cont-new.mkii b/tex/context/base/cont-new.mkii index e2e20d643..546aabf02 100644 --- a/tex/context/base/cont-new.mkii +++ b/tex/context/base/cont-new.mkii @@ -11,7 +11,7 @@  %C therefore copyrighted by \PRAGMA. See mreadme.pdf for  %C details. -\newcontextversion{2012.11.22 17:45} +\newcontextversion{2012.11.22 18:09}  %D This file is loaded at runtime, thereby providing an  %D excellent place for hacks, patches, extensions and new diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index 7fb3d7c79..58282d5e9 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@  %C therefore copyrighted by \PRAGMA. See mreadme.pdf for  %C details. -\newcontextversion{2012.11.22 17:45} +\newcontextversion{2012.11.22 18:09}  %D This file is loaded at runtime, thereby providing an excellent place for  %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf Binary files differindex 431381226..3349ae881 100644 --- a/tex/context/base/context-version.pdf +++ b/tex/context/base/context-version.pdf diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png Binary files differindex 25a9b6fea..d02983feb 100644 --- a/tex/context/base/context-version.png +++ b/tex/context/base/context-version.png diff --git a/tex/context/base/context.mkii b/tex/context/base/context.mkii index 21f99c291..9d04afb8e 100644 --- a/tex/context/base/context.mkii +++ b/tex/context/base/context.mkii @@ -20,7 +20,7 @@  %D your styles an modules.  \edef\contextformat {\jobname} -\edef\contextversion{2012.11.22 17:45} +\edef\contextversion{2012.11.22 18:09}  %D For those who want to use this: diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 40758d4c3..94dcd3c94 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -25,7 +25,7 @@  %D up and the dependencies are more consistent.  \edef\contextformat {\jobname} -\edef\contextversion{2012.11.22 17:45} +\edef\contextversion{2012.11.22 18:09}  %D For those who want to use this: diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf Binary files differindex 00e218eee..965f9ab05 100644 --- a/tex/context/base/status-files.pdf +++ b/tex/context/base/status-files.pdf diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf Binary files differindex 06def773d..aa44ac99f 100644 --- a/tex/context/base/status-lua.pdf +++ b/tex/context/base/status-lua.pdf diff --git a/tex/context/base/util-prs.lua b/tex/context/base/util-prs.lua index 11623c294..4166fca25 100644 --- a/tex/context/base/util-prs.lua +++ b/tex/context/base/util-prs.lua @@ -304,3 +304,30 @@ function parsers.keq_to_hash(str)  end  -- inspect(lpeg.match(pattern,[[key="value"]])) + +local newline = S('\r\n') + +function parsers.csvsplitter(specification) +    specification   = specification or { } +    local separator = specification.separator +    local quotechar = specification.quote +    local separator = S(separator ~= "" and separator or ",") +    local whatever  = C((1 - separator - newline)^0) +    if quotechar and quotechar ~= "" then +        local quotedata = nil +        for chr in gmatch(quotechar,".") do +            local quotechar = P(chr) +            local quoteword = quotechar * C((1 - quotechar)^0) * quotechar +            if quotedata then +                quotedata = quotedata + quoteword +            else +                quotedata = quoteword +            end +        end +        whatever = quotedata + whatever +    end +    local parser = Ct((Ct(whatever * (separator * whatever)^0) * S("\n\r"))^0 ) +    return function(data) +        return lpegmatch(parser,data) +    end +end diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 835d60321..287c85996 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@  -- merged file : luatex-fonts-merged.lua  -- parent file : luatex-fonts.lua --- merge date  : 11/22/12 17:45:27 +-- merge date  : 11/22/12 18:09:16  do -- begin closure to overcome local limits and interference  | 
