From a979a969ee8a924408ebeb767035b9e4f48f7efa Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 1 Feb 2021 13:14:30 +0900
Subject: acrotex (2021-02-01)

---
 texmf-dist/tex/latex/acrotex/uieforms.def | 376 ++++++++++++++++--------------
 1 file changed, 195 insertions(+), 181 deletions(-)

(limited to 'texmf-dist/tex/latex/acrotex/uieforms.def')

diff --git a/texmf-dist/tex/latex/acrotex/uieforms.def b/texmf-dist/tex/latex/acrotex/uieforms.def
index b441ba55..74739daa 100644
--- a/texmf-dist/tex/latex/acrotex/uieforms.def
+++ b/texmf-dist/tex/latex/acrotex/uieforms.def
@@ -8,7 +8,7 @@
 %% 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% eForms package,                                      %%
-%% Copyright (C) 2002-2019  D. P. Story                 %%
+%% Copyright (C) 2002-2020  D. P. Story                 %%
 %%   dpstory@uakron.edu                                 %%
 %%                                                      %%
 %% This program can redistributed and/or modified under %%
@@ -22,59 +22,63 @@
 \def\eq@bordervisibledefault{1}\@eqW{1}\fi
 \def\getargs#1#2{\def\aeb@argi{#1}\def\aeb@argii{#2}}
 \def\labelRef#1{\@ifundefined{r@#1}{Doc-Start}
-    {\aeb@exiii\@fourthoffive\csname r@#1\endcsname}}
+  {\aeb@exiii\@fourthoffive\csname r@#1\endcsname}}
 \def\aeb@exiii{\expandafter\expandafter\expandafter}
 \newtoks\ef@flagtoks
 \newtoks\ef@jstoks
 \def\noexpandiii{\noexpand\noexpand\noexpand}
 \define@choicekey{eforms}{border}[\val\nr]{visible,invisible}
 {%
-    \ifcase\nr
-        \def\eq@visibleborder{1}%
-        \ifx\eq@W\@empty
-            \ifx\eq@W@buffered\@empty\@eqW{1}\else
-            \@eqW{\eq@W@buffered}\fi
-        \else
-            \ifnum\eq@W@value=0 \@eqW{1}\fi
-            \ifx\eq@W@buffered\@empty\else
-            \@eqW{\eq@W@buffered}\fi
-        \fi
-        \@eqBorder{0 0 \eq@W@value}%
-    \or
-        % author has chosen invisible border
-        \def\eq@visibleborder{0}\@eqW{}%
-        \@eqBorder{0 0 0}\@eqBC{}%
+  \ifcase\nr
+    \def\eq@visibleborder{1}%
+    \ifx\eq@W\@empty
+      \ifx\eq@W@buffered\@empty\@eqW{1}\else
+      \@eqW{\eq@W@buffered}\fi
+    \else
+      \ifnum\eq@W@value=0 \@eqW{1}\fi
+      \ifx\eq@W@buffered\@empty\else
+      \@eqW{\eq@W@buffered}\fi
     \fi
+    \@eqBorder{0 0 \eq@W@value}%
+  \or
+    % author has chosen invisible border
+    \def\eq@visibleborder{0}\@eqW{}%
+    \@eqBorder{0 0 0}\@eqBC{}%
+  \fi
 }
 \define@choicekey{eforms}{linewidth}[\val\nr]{thin,medium,thick}
 {%
-    \ifx\annot@type\annot@type@link
-        \ifx\eq@visibleborder\@empty
-            \ifnum\eq@bordervisibledefault=0
-                \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}%
-                \@eqW{}%
-            \else
-                \ifcase\nr \@eqW{1}\or\@eqW{2}\or
-                \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}%
-            \fi
-        \else
-            \ifnum\eq@visibleborder=1 % visible border
-                \ifcase\nr \@eqW{1}\or\@eqW{2}\or
-                \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}%
-            \fi
-        \fi
+  \ifx\annot@type\annot@type@link
+    \ifx\eq@visibleborder\@empty
+      \ifnum\eq@bordervisibledefault=0
+        \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}%
+        \@eqW{}%
+      \else
+        \ifcase\nr\@eqW{1}\or\@eqW{2}\or
+          \@eqW{3}\else\@eqW{1}\fi
+          \@eqBorder{0 0 \eq@W@value}%
+      \fi
     \else
-        \ifx\eq@visibleborder\@empty
-            \ifcase\nr \@eqW{1}\or\@eqW{2}\or
-            \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}%
-            \edef\eq@W@buffered{\ifcase\nr 1\or2\or3\fi}%
-        \else
-            \ifnum\eq@visibleborder>0
-                \ifcase\nr \@eqW{1}\or\@eqW{2}\or
-                \@eqW{3}\else\@eqW{1}\fi\@eqBorder{0 0 \eq@W@value}%
-            \fi
-        \fi
+      \ifnum\eq@visibleborder=1 % visible border
+        \ifcase\nr\@eqW{1}\or\@eqW{2}\or
+          \@eqW{3}\else\@eqW{1}\fi
+        \@eqBorder{0 0 \eq@W@value}%
+      \fi
+    \fi
+  \else
+    \ifx\eq@visibleborder\@empty
+      \ifcase\nr \@eqW{1}\or\@eqW{2}\or
+        \@eqW{3}\else\@eqW{1}\fi
+      \@eqBorder{0 0 \eq@W@value}%
+      \edef\eq@W@buffered{\ifcase\nr1\or2\or3\fi}%
+    \else
+      \ifnum\eq@visibleborder>0
+        \ifcase\nr \@eqW{1}\or\@eqW{2}\or
+          \@eqW{3}\else\@eqW{1}\fi
+        \@eqBorder{0 0 \eq@W@value}%
+      \fi
     \fi
+  \fi
 }
 \let\eq@visibleborder\@empty
 \let\eq@W@buffered\@empty
@@ -102,42 +106,41 @@
     \let\ef@linktxtcolor@set=1\@eqlinktxtcolor{#1}}
 \let\ef@linktxtcolor@set=0
 \define@key{eforms}{annotflags}[]{\ef@flagtoks={}%
-    \setkeys{annotflags}{#1}}
+  \setkeys{annotflags}{#1}}
 \@tfor\ef@flagopts:={{hidden}{FHidden}}{{print}{FPrint}}{{noprint}%
-    {FNoPrint}}{{-print}{FNoPrint}}{{noview}{FNoView}}{{lock}{FLock}}%
-    \do{\expandafter\getargs\ef@flagopts
-    \edef\temp@expand@def{%
-        \noexpand\define@key{annotflags}{\aeb@argi}[true]{%
-            \noexpand\ef@flagtoks=%
-                \noexpand\expandafter{\noexpand\ef@passedArgs}%
-            \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii%
-                \F{\noexpandiii\csname\aeb@argii\noexpandiii\endcsname}%
-                \noexpand\the\noexpand\ef@flagtoks}%
-        }%
-    }\temp@expand@def
+  {FNoPrint}}{{-print}{FNoPrint}}{{noview}{FNoView}}{{lock}{FLock}}%
+  \do{\expandafter\getargs\ef@flagopts
+    \edef\temp@expand@def{\noexpand
+    \define@key{annotflags}{\aeb@argi}[true]{%
+      \noexpand\ef@flagtoks=\noexpand
+        \expandafter{\noexpand\ef@passedArgs}%
+      \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii
+        \F{\noexpandiii\@nameuse{\aeb@argii\noexpandiii}}%
+        \noexpand\the\noexpand\ef@flagtoks}%
+    }%
+  }\temp@expand@def
 }
 \define@key{eforms}{fieldflags}[]{\ef@flagtoks={}%
-    \setkeys{fieldflags}{#1}}
+  \setkeys{fieldflags}{#1}}
 \@tfor\ef@flagopts:={{readonly}{FfReadOnly}}{{required}{FfRequired}}%
-    {{noexport}{FfNoExport}}{{multiline}{FfMultiline}}%
-    {{password}{FfPassword}}{{notoggleoff}{FfNoToggleToOff}}%
-    {{radio}{FfRadio}}{{pushbutton}{FfPushButton}}{{combo}{FfCombo}}%
-    {{edit}{FfEdit}}{{sort}{FfSort}}{{fileselect}{FfFileSelect}}%
-    {{multiselect}{FfMultiSelect}}{{nospellcheck}{FfDoNotSpellCheck}}%
-    {{noscrolling}{FfDoNotScroll}}{{comb}{FfComb}}%
-    {{radiosinunison}{FfRadiosInUnison}}%
-    {{commitonchange}{FfCommitOnSelChange}}{{richtext}{FfRichText}}\do{%
-    \expandafter\getargs\ef@flagopts
-    \edef\temp@expand@def{%
-        \noexpand\define@key{fieldflags}{\aeb@argi}[true]%
-        {%
-            \noexpand\ef@flagtoks=\noexpand\expandafter{%
-                \noexpand\ef@passedArgs}%
-            \noexpand\edef\noexpand\ef@passedArgs{\noexpandiii%
-               \Ff{\noexpandiii\csname\aeb@argii\noexpandiii\endcsname}%
-               \noexpand\the\noexpand\ef@flagtoks}%
-        }%
-    }\temp@expand@def
+  {{noexport}{FfNoExport}}{{multiline}{FfMultiline}}%
+  {{password}{FfPassword}}{{notoggleoff}{FfNoToggleToOff}}%
+  {{radio}{FfRadio}}{{pushbutton}{FfPushButton}}{{combo}{FfCombo}}%
+  {{edit}{FfEdit}}{{sort}{FfSort}}{{fileselect}{FfFileSelect}}%
+  {{multiselect}{FfMultiSelect}}{{nospellcheck}{FfDoNotSpellCheck}}%
+  {{noscrolling}{FfDoNotScroll}}{{comb}{FfComb}}%
+  {{radiosinunison}{FfRadiosInUnison}}%
+  {{commitonchange}{FfCommitOnSelChange}}{{richtext}{FfRichText}}\do{%
+  \expandafter\getargs\ef@flagopts
+  \edef\temp@expand@def{\noexpand
+    \define@key{fieldflags}{\aeb@argi}[true]{\noexpand
+      \ef@flagtoks=\noexpand\expandafter{\noexpand
+        \ef@passedArgs}\noexpand
+      \edef\noexpand\ef@passedArgs{\noexpandiii
+        \Ff{\noexpandiii\@nameuse{\aeb@argii\noexpandiii}}%
+        \noexpand\the\noexpand\ef@flagtoks}%
+    }%
+  }\temp@expand@def
 }
 \define@key{eforms}{tooltip}{\@eqTU{#1}}
 \define@key{eforms}{default}{\@eqDV{#1}}
@@ -156,99 +159,97 @@
         \expandafter\@eqQ\expandafter{\nr}\fi}{}
 \define@key{eforms}{textfont}{\@eqtextFont{#1}}
 \define@key{eforms}{textsize}{\@eqtextSize{#1}}
-\define@key{eforms}{textcolor}{%
-    \@eqtextColor{#1}%
-}
+\define@key{eforms}{textcolor}{\@eqtextColor{#1}}
 \define@key{eforms}{maxlength}{\@eqMaxLen{#1}}
 \define@key{eforms}{normappr}{\@eqI{#1}}
 \define@key{eforms}{rollappr}{\@eqRI{#1}}
 \define@key{eforms}{downappr}{\@eqIX{#1}}
 \define@choicekey{eforms}{layout}[\val\nr]{labelonly,icononly,%
-    icontop,iconbottom,iconleft,iconright,labelover}{%
-    \ifx\annot@type\annot@type@button
-        \expandafter\@eqTP\expandafter{\nr}\fi}{}
+  icontop,iconbottom,iconleft,iconright,labelover}{%
+  \ifx\annot@type\annot@type@button\expandafter
+    \@eqTP\expandafter{\nr}\fi}{}
 \define@choicekey{eforms}{scalewhen}[\val\nr]{always,never,%
-    iconbig,iconsmall}{%
-    \ifx\annot@type\annot@type@button
-    \ifcase\nr\relax
-        \def\eq@@SW{A}\or
-        \def\eq@@SW{N}\or
-        \def\eq@@SW{B}\or
-        \def\eq@@SW{S}\else
-        \def\eq@@SW{A}\fi
-    \expandafter\@eqSW\expandafter{\eq@@SW}\fi}{}
+  iconbig,iconsmall}{%
+  \ifx\annot@type\annot@type@button
+  \ifcase\nr\relax
+    \def\eq@@SW{A}\or
+    \def\eq@@SW{N}\or
+    \def\eq@@SW{B}\or
+    \def\eq@@SW{S}\else
+    \def\eq@@SW{A}\fi
+  \expandafter\@eqSW\expandafter{\eq@@SW}\fi}{}
 \define@choicekey{eforms}{scale}[\val\nr]{proportional,%
-    nonproportional}{%
-    \ifx\annot@type\annot@type@button
-    \ifcase\nr\relax
-        \def\eq@@ST{P}\or
-        \def\eq@@ST{A}\else
-        \def\eq@@ST{P}\fi
-    \expandafter\@eqST\expandafter{\eq@@ST}\fi}{}
+  nonproportional}{%
+  \ifx\annot@type\annot@type@button
+  \ifcase\nr\relax
+      \def\eq@@ST{P}\or
+      \def\eq@@ST{A}\else
+      \def\eq@@ST{P}\fi
+  \expandafter\@eqST\expandafter{\eq@@ST}\fi}{}
 \define@key{eforms}{position}{\@eqPA{#1}}
 \define@choicekey{eforms}{fitbounds}[\val\nr]{true,false}[true]{%
-    \ifx\annot@type\annot@type@button
+  \ifx\annot@type\annot@type@button
     \ifcase\nr\relax
-        \def\eq@@FB{true}\or
-        \def\eq@@FB{false}\else
-        \def\eq@@FB{false}\fi
-    \expandafter\@eqFB\expandafter{\eq@@FB}\fi}{}
+      \def\eq@@FB{true}\or
+      \def\eq@@FB{false}\else
+      \def\eq@@FB{false}\fi
+  \expandafter\@eqFB\expandafter{\eq@@FB}\fi}{}
 \define@key{efappr}{norm}[]{\def\efappr@norm{#1}}
 \define@key{efappr}{roll}[]{\def\efappr@roll{#1}}
 \define@key{efappr}{down}[]{\def\efappr@down{#1}}
 \setkeys{efappr}{norm,roll,down}
-\define@key{efappr@state}{on}[]{%
-    \expandafter\def\csname \ef@state @on\endcsname{#1}}
-\define@key{efappr@state}{off}[]{%
-    \expandafter\def\csname \ef@state @off\endcsname{#1}}
+\define@key{efappr@state}{on}[]{\expandafter
+  \def\csname \ef@state @on\endcsname{#1}}
+\define@key{efappr@state}{off}[]{\expandafter
+  \def\csname \ef@state @off\endcsname{#1}}
 \let\norm@on\@empty\let\norm@off\@empty
 \let\roll@on\@empty\let\roll@off\@empty
 \let\down@on\@empty\let\down@off\@empty
 \define@key{eforms}{appr}{\setkeys{efappr}{#1}%
-    \def\ef@state{norm}%
-    \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@norm}}%
-    \ef@edef@tmp\def\ef@state{roll}%
-    \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@roll}}%
-    \ef@edef@tmp\def\ef@state{down}%
-    \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@down}}%
-    \ef@edef@tmp\def\eq@AP{%
-        /AP<<
-            \ifx\efappr@norm\@empty\else/N <<
-                \eq@On\space{\norm@on}/Off {\norm@off}>>\fi
-            \ifx\efappr@roll\@empty\else/R <<
-                \eq@On\space{\roll@on}/Off {\roll@off}>>\fi
-            \ifx\efappr@down\@empty\else/D <<
-                \eq@On\space{\down@on}/Off {\down@off}>>\fi
-        \space>>
-    }%
+  \def\ef@state{norm}%
+  \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@norm}}%
+  \ef@edef@tmp\def\ef@state{roll}%
+  \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@roll}}%
+  \ef@edef@tmp\def\ef@state{down}%
+  \edef\ef@edef@tmp{\noexpand\setkeys{efappr@state}{\efappr@down}}%
+  \ef@edef@tmp\def\eq@AP{%
+    /AP<<%
+      \ifx\efappr@norm\@empty\else/N <<%
+        \eq@On\space{\norm@on}/Off {\norm@off}>>\fi
+      \ifx\efappr@roll\@empty\else/R <<%
+        \eq@On\space{\roll@on}/Off {\roll@off}>>\fi
+      \ifx\efappr@down\@empty\else/D <<%
+        \eq@On\space{\down@on}/Off {\down@off}>>\fi
+    \space>>
+  }%
 }
 \define@choicekey{eforms}{autocenter}[\val\nr]{yes,no}
 {%
-    \ifcase\nr\relax\@eqautoCenter{y}\or
-    \@eqautoCenter{n}\fi
+  \ifcase\nr\relax\@eqautoCenter{y}\or
+  \@eqautoCenter{n}\fi
 }{}
 \define@choicekey{eforms}{inline}[\val\nr]{yes,no}
 {%
-    \ifcase\nr\relax\@eqinline{y}\or
-    \@eqinline{n}\fi
+  \ifcase\nr\relax\@eqinline{y}\or
+  \@eqinline{n}\fi
 }{}
 \define@choicekey{eforms}{mlfix}[\val\nr]{yes,no}
 {%
-    \ifcase\nr\relax\@eqmlfix{y}\or
-    \@eqmlfix{n}\fi
+  \ifcase\nr\relax\@eqmlfix{y}\or
+  \@eqmlfix{n}\fi
 }{}
 \define@choicekey{eforms}{importicons}[\val\nr]{yes,no}
 {%
-    \ifcase\nr\relax\@eqimportIcons{y}\or
-    \@eqimportIcons{n}\fi
+  \ifcase\nr\relax\@eqimportIcons{y}\or
+  \@eqimportIcons{n}\fi
 }{}
 \define@key{eforms}{mlstrut}[\strut]{\@eqmlstrut{#1}}
 \define@key{eforms}{mlcrackat}[]{\@eqmlcrackat{#1}}
 \define@key{eforms}{mlcrackinat}[]{\@eqmlcrackinsat{#1}}
 \define@choicekey{eforms}{mlhyph}[\val\nr]{yes,no}
 {%
-    \ifcase\nr\relax\@eqmlhyph{y}\or
-    \@eqmlhyph{n}\fi
+  \ifcase\nr\relax\@eqmlhyph{y}\or
+  \@eqmlhyph{n}\fi
 }{}
 \define@key{eforms}{cmd}[]{\@eqcmd{#1}}
 \define@key{eforms}{presets}{\ef@jstoks=\expandafter{#1}%
@@ -261,9 +262,29 @@
   \ef@temp@expand
 }
 \define@choicekey{eforms}{symbolchoice}[\val\nr]%
-    {check,circle,cross,diamond,square,star}
-    {\expandafter\@eqsymbolchoice\expandafter{\val}}{}
-\define@key{eforms}{lock}{\@eqLock{#1}}
+  {check,circle,cross,diamond,square,star}
+  {\expandafter\@eqsymbolchoice\expandafter{\val}}{}
+\define@key{eforms}{rectW}{\@eqrectW{#1}}
+\define@key{eforms}{rectH}{\@eqrectH{#1}}
+\define@key{eforms}{width}{\@eqwidth{#1}}
+\define@key{eforms}{height}{\@eqheight{#1}}
+\define@key{eforms}{scalefactor}{\@eqscalefactor{#1}}
+\define@key{eforms}{lock}{\setkeys{lckflds}{#1}%
+  \ifx\lckFlds\@empty
+    \edef\ActnArgs{\noexpand\Action\noexpand\All}\else
+    \edef\ActnArgs{\noexpand\Action\expandafter
+      \noexpand\lckActnArg{\lckFlds}}\fi
+  \expandafter\@eqLock\expandafter{\ActnArgs}%
+}
+\define@choicekey{lckflds}{action}[\val\nr]{all,include,exclude}
+{%
+  \ifcase\nr\relax
+  \def\lckActnArg{\All}\or
+  \def\lckActnArg{\IncludeFields}\or
+  \def\lckActnArg{\ExcludeFields}\fi
+}{}
+\define@key{lckflds}{fields}{\def\lckFlds{#1}}
+\let\lckFlds\@empty
 \define@key{eforms}{goto}[]{%
     \cxkvsetkeys{efgoto}{#1}%
     \ifx\ef@goto@url\@empty
@@ -271,12 +292,9 @@
             % Jump within the file
             \def\ef@subtype{/S/GoTo }%
             \ifcase\eq@drivernum
-                \def\ef@formatpage{{Page\ef@page}}%
-            \or
-                \def\ef@formatpage{\pdfpageref\ef@page\space\space 0 R}%
-            \or
-                \def\ef@formatpage{@page\ef@page}%
-            \fi
+              \def\ef@formatpage{{Page\ef@page}}\or
+              \def\ef@formatpage{\pdfpageref\ef@page\space\space 0 R}\or
+              \def\ef@formatpage{@page\ef@page}\fi
             \let\ef@open\@empty
             \let\ef@formatfile\@empty
         \else
@@ -289,25 +307,21 @@
         \ifx\ef@goto@targetdest\@empty
             \ifx\ef@labeldest\@empty
             % we will jump to a page, it might be the default page
-                \expandafter\@eqA\expandafter{\ef@subtype
-                    /D[\ef@formatpage\ef@view]%
-                    \ef@formatfile\ef@open}%
-            \else
+              \expandafter\@eqA\expandafter{\ef@subtype
+                /D[\ef@formatpage\ef@view]\ef@formatfile\ef@open}\else
             % jump to a label
-                \expandafter\@eqA\expandafter{\ef@subtype%
-                    /D (\labelRef{\ef@labeldest})%
-                    \ef@formatfile\ef@open}%
-            \fi
+              \expandafter\@eqA\expandafter{\ef@subtype%
+                /D (\labelRef{\ef@labeldest})%
+                \ef@formatfile\ef@open}\fi
         \else
         % jump to a target
-            \expandafter\@eqA\expandafter{\ef@subtype%
-                /D (\ef@goto@targetdest)%
-                \ef@formatfile\ef@open}%
+          \expandafter\@eqA\expandafter{\ef@subtype%
+            /D (\ef@goto@targetdest)\ef@formatfile\ef@open}%
         \fi
     \else % go to url
         \ifx\ef@goto@openparams\@empty
-            \@eqA{/S/URI/URI(\ef@goto@url)}\else
-            \@eqA{/S/URI/URI(\ef@goto@url\#\ef@goto@openparams)}%
+          \@eqA{/S/URI/URI(\ef@goto@url)}\else
+          \@eqA{/S/URI/URI(\ef@goto@url\#\ef@goto@openparams)}%
         \fi
     \fi
 }
@@ -334,33 +348,33 @@
 }{}
 \define@choicekey{efgoto}{open}[\val\nr]{userpref,new,existing}
 {%
-    \ifcase\nr\relax
+  \ifcase\nr\relax
     \let\ef@open\@empty\or
     \def\ef@open{/NewWindow true }\or
     \def\ef@open{/NewWindow false }\fi
 }{}
 \let\ef@open\@empty
 \define@key{eforms}{launch}[]{%
-    \cxkvsetkeys{eflaunch}{#1}%
-    \@eqA{/S/Launch\ifx\ef@launch@file\@empty\else
-        /F(\ef@launch@file)\fi\ef@launch@open
-        \ifx\ef@launch@win\@empty\else
-            /Win<<\ifx\ef@launchwin@file\@empty
-            /F(\ef@launch@file)\else/F(\ef@launchwin@file)\fi
-            \ifx\ef@launchwin@params\@empty\else
-                /P(\ef@launchwin@params)\fi
-            \ifx\ef@launchwin@open\@empty\else
-                /O(\ef@launchwin@open)\fi
-            \ifx\ef@launchwin@dir\@empty\else
-                /D(\ef@launchwin@dir)\fi>>
-        \fi
-        }%
+  \cxkvsetkeys{eflaunch}{#1}%
+  \@eqA{/S/Launch\ifx\ef@launch@file\@empty\else
+    /F(\ef@launch@file)\fi\ef@launch@open
+    \ifx\ef@launch@win\@empty\else
+      /Win<<\ifx\ef@launchwin@file\@empty
+      /F(\ef@launch@file)\else/F(\ef@launchwin@file)\fi
+      \ifx\ef@launchwin@params\@empty\else
+        /P(\ef@launchwin@params)\fi
+      \ifx\ef@launchwin@open\@empty\else
+        /O(\ef@launchwin@open)\fi
+      \ifx\ef@launchwin@dir\@empty\else
+        /D(\ef@launchwin@dir)\fi>>
+    \fi
+  }%
 }
 \define@key{eflaunch}{file}[]{\def\ef@launch@file{#1}}
 \let\ef@launch@file\@empty
 \define@choicekey{eflaunch}{open}[\val\nr]{userpref,new,existing}
 {%
-    \ifcase\nr\relax
+  \ifcase\nr\relax
     \let\ef@launch@open\@empty\or
     \def\ef@launch@open{/NewWindow true }\or
     \def\ef@launch@open{/NewWindow false }\fi
@@ -379,18 +393,18 @@
 \let\ef@launchwin@params\@empty
 \define@key{eforms}{js}[]{\@eqA{\JS{#1}}}
 \@tfor\ef@AActions:={{mouseup}{AAmouseup}}{{mousedown}{AAmousedown}}%
-    {{onenter}{AAmouseenter}}{{onexit}{AAmouseexit}}%
-    {{onfocus}{AAonfocus}}{{onblur}{AAonblur}}%
-    {{format}{AAformat}}{{keystroke}{AAkeystroke}}%
-    {{validate}{AAvalidate}}{{calculate}{AAcalculate}}%
-    {{pageopen}{AApageopen}}{{pageclose}{AApageclose}}%
-    {{pagevisible}{AApagevisible}}%
-    {{pageinvisible}{AApageinvisible}}\do{%
-    \expandafter\getargs\ef@AActions\ef@jstoks={#1}%
-    \edef\temp@expand@def{\noexpand\define@key{eforms}{\aeb@argi}[]%
-    {\noexpand\csname @eq\aeb@argii\noexpand\endcsname%
-        {\the\ef@jstoks}}}%
-    \temp@expand@def
+  {{onenter}{AAmouseenter}}{{onexit}{AAmouseexit}}%
+  {{onfocus}{AAonfocus}}{{onblur}{AAonblur}}%
+  {{format}{AAformat}}{{keystroke}{AAkeystroke}}%
+  {{validate}{AAvalidate}}{{calculate}{AAcalculate}}%
+  {{pageopen}{AApageopen}}{{pageclose}{AApageclose}}%
+  {{pagevisible}{AApagevisible}}%
+  {{pageinvisible}{AApageinvisible}}\do{%
+  \expandafter\getargs\ef@AActions\ef@jstoks={#1}%
+  \edef\temp@expand@def{\noexpand\define@key{eforms}{\aeb@argi}[]%
+  {\noexpand\csname @eq\aeb@argii\noexpand\endcsname%
+      {\the\ef@jstoks}}}%
+  \temp@expand@def
 }
 \define@key{eforms}{objdef}{\@eqobjdef{#1}}
 \define@key{eforms}{taborder}{\@eqtaborder{#1}}
-- 
cgit v1.2.3

