From 6f1048d50cb4376e5bf17c8c9221f61e4af9f778 Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Sat, 5 Feb 2011 11:37:00 +0100
Subject: beta 2011.02.05 11:37

---
 tex/context/base/font-run.mkiv    |  76 +++++++++++++++++++++++++-------------
 tex/context/base/lang-def.mkiv    |  16 ++++++--
 tex/context/base/lang-txt.lua     |  40 ++++++++++++++++++++
 tex/context/base/m-zint.mkiv      |   3 ++
 tex/context/base/mult-sys.mkiv    |   3 ++
 tex/context/base/status-files.pdf | Bin 23180 -> 23175 bytes
 tex/context/base/syst-aux.mkiv    |   8 ++--
 7 files changed, 112 insertions(+), 34 deletions(-)

diff --git a/tex/context/base/font-run.mkiv b/tex/context/base/font-run.mkiv
index 8b3002c0b..f65017ef4 100644
--- a/tex/context/base/font-run.mkiv
+++ b/tex/context/base/font-run.mkiv
@@ -203,33 +203,57 @@
    \ifinsidefloat\else\stopbaselinecorrection\fi
    \egroup}
 
-\gdef\showfontstyle
-  {\dotripleempty\doshowfontstyle}
+% \showfontstyle[modern][rm][tf][all] % #2, #3 and #4 can be 'all'
 
-\gdef\doshowfontstyle[#1][#2][#3]%
-  {\ifthirdargument
-     \bgroup
-     \raggedright
-     \switchtobodyfont[#1]
-     \def\dodocommand##1##2%
-       {\starttextrule{\tttf #1 ##1 ##2}
-        \nobreak \getvalue{##2}%
-        \dorecurse{255}
-          {\iffontchar\font\recurselevel\relax
-             \char\recurselevel\relax\space
-           \fi}
-        \par \nobreak
-        \stoptextrule}
-     \def\docommand##1%
-       {\getvalue{##1}\processcommacommand[#3]{\dodocommand{##1}}}
-     \processcommalist[#2]\docommand
-     \egroup
-   \else\ifsecondargument
-     \showfontstyle[#1][#2][\fontalternativelist]% math is gone
-   \else
-     \showfontstyle[#1][\c!rm]\showfontstyle[#1][\c!ss]
-     \showfontstyle[#1][\c!tt]\showfontstyle[#1][\c!mm]
-   \fi\fi}
+\gdef\showfontstyle      {\dodoubleempty   \dodoshowfontstyle}
+\gdef\redoshowfontstyle  {\dotripleempty   \dododoshowfontstyle}
+\gdef\redodoshowfontstyle{\doquadrupleempty\dodododoshowfontstyle}
+
+\gdef\dodoshowfontstyle[#1][#2]%
+  {\doifelse{#2}\v!all
+     {\dodoshowfontstyle[#1][\c!rm,\c!ss,\c!tt,\c!mm]}
+     {\doifelsenothing{#2}
+        {\redoshowfontstyle[#1][\c!rm,\c!ss,\c!tt,\c!mm]}
+        {\redoshowfontstyle[#1][#2]}}}
+
+\gdef\dododoshowfontstyle[#1][#2][#3]%
+  {\doifelse{#3}\v!all
+     {\redodoshowfontstyle[#1][#2][\fontalternativelist]}
+     {\doifelsenothing{#3}
+        {\redodoshowfontstyle[#1][#2][\fontalternativelist]}
+        {\redodoshowfontstyle[#1][#2][#3]}}}
+
+\gdef\dodododoshowfontstyle[#1][#2][#3][#4]%
+  {\doifelsenothing{#4}
+     {\doshowfontstyleindeed[#1][#2][#3][\v!all]}
+     {\doshowfontstyleindeed[#1][#2][#3][#4]}}
+
+\gdef\doshowfontstyleindeed[#1][#2][#3][#4]%
+  {\bgroup
+   \raggedright
+   \switchtobodyfont[#1]
+   \def\dododocommand##1%
+     {\dostepwiserecurse{0}{255}{1}
+        {\scratchcounter\numexpr##1*256+\recurselevel\relax
+         \iffontchar\font\scratchcounter\relax
+           \char\scratchcounter
+           \space
+         \fi}}%
+   \def\dodocommand##1##2%
+     {\starttextrule{\tttf #1 ##1 ##2}
+      \nobreak\getvalue{##2}%
+      \doifelsenothing{#4}
+        {\dododocommand{0}}
+        {\doifelse{#4}\v!all
+           {\dostepwiserecurse{0}{255}{1}{\expanded{\dododocommand{\recurselevel}}}}
+           {\processcommalist[#4]{\dododocommand}}}%
+      \par \nobreak
+      \stoptextrule}
+   \def\docommand##1%
+     {\getvalue{##1}%
+      \processcommacommand[#3]{\dodocommand{##1}}}
+   \processcommalist[#2]\docommand
+   \egroup}
 
 \gdef\showligature#1%
   {\hbox{\type{#1}\enspace\red\ruledhbox{\black#1}}}
diff --git a/tex/context/base/lang-def.mkiv b/tex/context/base/lang-def.mkiv
index f766082fc..19c2c676d 100644
--- a/tex/context/base/lang-def.mkiv
+++ b/tex/context/base/lang-def.mkiv
@@ -510,10 +510,6 @@
 
 % CJK
 
-\definesystemconstant {chinese}  \definesystemconstant {cn}
-\definesystemconstant {japanese} \definesystemconstant {ja}
-\definesystemconstant {korean}   \definesystemconstant {kr}
-
 \installlanguage
   [\s!cn]
   [\c!leftsentence=——,
@@ -538,6 +534,18 @@
    \c!rightquotation=」,
    \c!date={西暦,\v!year,年,\v!month,月,\v!day,日}]
 
+\installlanguage
+  [\s!kr]
+  [\c!leftsentence=——,
+   \c!rightsentence=——,
+   \c!leftsubsentence=——,
+   \c!rightsubsentence=——,
+   \c!leftquote=‘,
+   \c!rightquote=’,
+   \c!leftquotation=“,
+   \c!rightquotation=”」,
+   \c!date={서기,\v!year,年,\v!month,月,\v!day,日}]
+
 % Greek
 
 \installlanguage
diff --git a/tex/context/base/lang-txt.lua b/tex/context/base/lang-txt.lua
index d0168356d..7becc63fc 100644
--- a/tex/context/base/lang-txt.lua
+++ b/tex/context/base/lang-txt.lua
@@ -296,6 +296,7 @@ data.labels={
     hu="",
     it="",
     ja="付録",
+    kr="부록",
     la="",
     lt="",
     nb="Tillegg ",
@@ -334,6 +335,7 @@ data.labels={
     hu="április",
     it="aprile",
     ja="4",
+    kr="4월",
     la="Aprilis",
     lt="balandžio",
     nb="april",
@@ -440,6 +442,7 @@ data.labels={
     hu="augusztus",
     it="agosto",
     ja="8",
+    kr="8월",
     la="Augustus",
     lt="rugpjūčio",
     nb="august",
@@ -510,6 +513,7 @@ data.labels={
     hu=",. fejezet:",
     it="",
     ja={"第","章"},
+    kr="장",
     la="",
     lt="",
     nb="",
@@ -581,6 +585,7 @@ data.labels={
     hu="december",
     it="dicembre",
     ja="12",
+    kr="12월",
     la="December",
     lt="gruodžio",
     nb="desember",
@@ -652,6 +657,7 @@ data.labels={
     hu="február",
     it="febbraio",
     ja="2",
+    kr="2월",
     la="Februarius",
     lt="vasario",
     nb="februar",
@@ -721,6 +727,7 @@ data.labels={
     hu=",. ábra:",
     it="Fig. ",
     ja="図",
+    kr="그림",
     la="Imago ",
     lt=", pav.",
     nb="Figur ",
@@ -757,6 +764,7 @@ data.labels={
     hu="péntek",
     it="venerdì",
     ja="金曜日",
+    kr="금요일",
     la="Dies Veneris",
     lt="penktadienis",
     nb="fredag",
@@ -793,6 +801,7 @@ data.labels={
     hu=",. kép:",
     it="Grafico ",
     ja="イラスト",
+    kr="삽화",
     la="Typus ",
     lt="Graphic ",
     nb="Bilde ",
@@ -897,6 +906,7 @@ data.labels={
     hu=",. intermezzo:",
     it="Intermezzo ",
     ja="間奏曲",
+    kr="",
     la="Intermissum ",
     lt="Intermezzo ",
     nb="Intermesso ",
@@ -935,6 +945,7 @@ data.labels={
     hu="január",
     it="gennaio",
     ja="1",
+    kr="들어가기",
     la="Ianuarius",
     lt="sausio",
     nb="januar",
@@ -1007,6 +1018,7 @@ data.labels={
     hu="július",
     it="luglio",
     ja="7",
+    kr="7월",
     la="Iulius",
     lt="liepos",
     nb="juli",
@@ -1078,6 +1090,7 @@ data.labels={
     hu="június",
     it="giugno",
     ja="6",
+    kr="6월",
     la="Iunius",
     lt="birželio",
     nb="juni",
@@ -1147,6 +1160,7 @@ data.labels={
     hu=",. sor:",
     it="riga ",
     ja="線",
+    kr="행",
     la="versus ",
     lt="line ",
     nb="linje ",
@@ -1220,6 +1234,7 @@ data.labels={
     hu="március",
     it="marzo",
     ja="3",
+    kr="3월",
     la="Martius",
     lt="kovo",
     nb="mars",
@@ -1292,6 +1307,7 @@ data.labels={
     hu="május",
     it="maggio",
     ja="5",
+    kr="5월",
     la="Maius",
     lt="gegužės",
     nb="mai",
@@ -1361,6 +1377,7 @@ data.labels={
     hu="hétfõ",
     it="lunedì",
     ja="月曜日",
+    kr="월요일",
     la="Dies Lunae",
     lt="pirmadienis",
     nb="mandag",
@@ -1399,6 +1416,7 @@ data.labels={
     hu="november",
     it="novembre",
     ja="11",
+    kr="11월",
     la="November",
     lt="lapkričio",
     nb="november",
@@ -1469,6 +1487,7 @@ data.labels={
     hu="október",
     it="ottobre",
     ja="10",
+    kr="10월",
     la="October",
     lt="spalio",
     nb="oktober",
@@ -1572,6 +1591,7 @@ data.labels={
     hu=",. rész:",
     it="Parte ",
     ja={"第","パート"},
+    kr="부",
     la="Pars ",
     lt=", dalis",
     nb="Del",
@@ -1608,6 +1628,7 @@ data.labels={
     hu="szombat",
     it="sabato",
     ja="土曜日",
+    kr="토요일",
     la="Dies Saturni",
     lt="šeštadienis",
     nb="lørdag",
@@ -1645,6 +1666,7 @@ data.labels={
     hu="",
     it="",
     ja={"第","項"},
+    kr="절",
     la="",
     lt="",
     nb="",
@@ -1717,6 +1739,7 @@ data.labels={
     hu="szeptember",
     it="settembre",
     ja="9",
+    kr="9월",
     la="September",
     lt="rugsėjo",
     nb="september",
@@ -1787,6 +1810,7 @@ data.labels={
     hu="",
     it="",
     ja="",
+    kr="",
     la="",
     lt="",
     nb="",
@@ -1824,6 +1848,7 @@ data.labels={
     hu="",
     it="",
     ja="",
+    kr="",
     la="",
     lt="",
     nb="",
@@ -1861,6 +1886,7 @@ data.labels={
     hu="",
     it="",
     ja="",
+    kr="",
     la="",
     lt="",
     nb="",
@@ -1897,6 +1923,7 @@ data.labels={
     hu="vasárnap",
     it="domenica",
     ja="日曜日",
+    kr="일요일",
     la="Dies Solis",
     lt="sekmadienis",
     nb="søndag",
@@ -1933,6 +1960,7 @@ data.labels={
     hu=",. táblázat:",
     it="Tabella ",
     ja="表",
+    kr="표",
     la="Tabula ",
     lt=", lentelė.",
     nb="Tabell ",
@@ -1969,6 +1997,7 @@ data.labels={
     hu="csütörtök",
     it="giovedì",
     ja="木曜日",
+    kr="목요일",
     la="Dies Iovis",
     lt="ketvirtadienis",
     nb="torsdag",
@@ -2005,6 +2034,7 @@ data.labels={
     hu="kedd",
     it="martedì",
     ja="火曜日",
+    kr="화요일",
     la="Dies Martis",
     lt="antradienis",
     nb="tirsdag",
@@ -2041,6 +2071,7 @@ data.labels={
     hu="szerda",
     it="mercoledì",
     ja="水曜日",
+    kr="수요일",
     la="Dies Mercuri",
     lt="trečiadienis",
     nb="onsdag",
@@ -2079,6 +2110,7 @@ data.labels={
     hu="RövidÍtések",
     it="Abbreviazioni",
     ja="略語",
+    kr="약어",
     la="Notae",
     lt="Santrumpos",
     nb="Forkortelser",
@@ -2115,6 +2147,7 @@ data.labels={
     hu="Tartalom",
     it="Indice",
     ja="目次",
+    kr="목차",
     la="Quod in libro continetur",
     lt="Turinys",
     nb="Innhold",
@@ -2151,6 +2184,7 @@ data.labels={
     hu="ábrák",
     it="Figure",
     ja="図",
+    kr="그림",
     la="Imagines",
     lt="Iliustracijos",
     nb="Figurer",
@@ -2187,6 +2221,7 @@ data.labels={
     hu="Grafikák",
     it="Grafici",
     ja="グラフ",
+    kr="그래픽",
     la="Typi",
     lt="Graphics",
     nb="Bilde",
@@ -2223,6 +2258,7 @@ data.labels={
     hu="Index",
     it="Indice",
     ja="目次",
+    kr="색인",
     la="Indices",
     lt="Rodyklė",
     nb="Register",
@@ -2259,6 +2295,7 @@ data.labels={
     hu="Intermezzok",
     it="Intermezzi",
     ja="間奏曲",
+    kr="",
     la="Intermissa",
     lt="Intermezzos",
     nb="Intermesso",
@@ -2295,6 +2332,7 @@ data.labels={
     hu="Fejlécek",
     it="Logotipi",
     ja="理性",
+    kr="이성",
     la="Typi negotiales",
     lt="Logos",
     nb="Logoer",
@@ -2364,6 +2402,7 @@ data.labels={
     hu="Táblázatok",
     it="Tabelle",
     ja="机",
+    kr="표",
     la="Tabulae",
     lt="Lentelės",
     nb="Tabeller",
@@ -2400,6 +2439,7 @@ data.labels={
     hu="Mértékegységek",
     it="Unità",
     ja="ユニッツ",
+    kr="측정단위",
     la="Modi",
     lt="Units",
     nb="Enheter",
diff --git a/tex/context/base/m-zint.mkiv b/tex/context/base/m-zint.mkiv
index 25371cff2..3e6f7ab43 100644
--- a/tex/context/base/m-zint.mkiv
+++ b/tex/context/base/m-zint.mkiv
@@ -54,6 +54,9 @@ local function numberofcode(code)
 end
 
 function moduledata.zint.generate(code,data,suffix,options)
+    if not data or data == "" then
+        data = "unset"
+    end
     local code = cleancode(code)
     local base = format("zint-%s-%s",code,md5.hex(data))
     local name = file.addsuffix(base,suffix or "eps")
diff --git a/tex/context/base/mult-sys.mkiv b/tex/context/base/mult-sys.mkiv
index 8e9602b38..a0bd7d6b3 100644
--- a/tex/context/base/mult-sys.mkiv
+++ b/tex/context/base/mult-sys.mkiv
@@ -75,6 +75,9 @@
 \definesystemconstant {greek}        \definesystemconstant {gr}
 \definesystemconstant {ancientgreek} \definesystemconstant {agr}
 \definesystemconstant {vietnamese}   \definesystemconstant {vi}  \definesystemconstant {vn}
+\definesystemconstant {chinese}      \definesystemconstant {cn}
+\definesystemconstant {japanese}     \definesystemconstant {ja}
+\definesystemconstant {korean}       \definesystemconstant {kr}
 
 %D For proper \UNICODE\ support we need a few font related
 %D constants.
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index 6dc071a3a..c9b8be6bd 100644
Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ
diff --git a/tex/context/base/syst-aux.mkiv b/tex/context/base/syst-aux.mkiv
index 1ce773f89..461c84117 100644
--- a/tex/context/base/syst-aux.mkiv
+++ b/tex/context/base/syst-aux.mkiv
@@ -2399,7 +2399,7 @@
      {\fourthargumenttrue#1[{#2}][{#3}][{#4}]}%
      {\doquadrupleemptyNOPfour#1{#2}{#3}{#4}}}
 
-\def\doquadrupleemptNOPone#1%
+\def\doquadrupleemptyNOPone#1%
   {\firstargumentfalse
    \secondargumentfalse
    \thirdargumentfalse
@@ -2472,7 +2472,7 @@
      {\fifthargumenttrue#1[{#2}][{#3}][{#4}][{#5}]}%
      {\doquintupleemptyNOPfive#1{#2}{#3}{#4}{#5}}}
 
-\def\doquintupleemptNOPone#1%
+\def\doquintupleemptyNOPone#1%
   {\firstargumentfalse
    \secondargumentfalse
    \thirdargumentfalse
@@ -2565,7 +2565,7 @@
      {\sixthargumenttrue#1[{#2}][{#3}][{#4}][{#5}][{#6}]}%
      {\dosixtupleemptyNOPsix#1{#2}{#3}{#4}{#5}{#6}}}
 
-\def\dosixemptNOPone#1%
+\def\dosixemptyNOPone#1%
   {\firstargumentfalse
    \secondargumentfalse
    \thirdargumentfalse
@@ -2679,7 +2679,7 @@
      {\seventhargumenttrue#1[{#2}][{#3}][{#4}][{#5}][{#6}][{#7}]}%
      {\doseventupleemptyNOPseven#1{#2}{#3}{#4}{#5}{#6}{#7}}}
 
-\def\dosevenemptNOPone#1%
+\def\dosevenemptyNOPone#1%
   {\firstargumentfalse
    \secondargumentfalse
    \thirdargumentfalse
-- 
cgit v1.2.3