\def\sdef#1{\expandafter\def\csname#1\endcsname}
\def\slet#1#2{\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
+% Assign a control sequence given as a string, complain if it is not defined.
+\def\sget#1#2{\ifcsname#2\endcsname
+ \expandafter\let\expandafter#1\csname#2\endcsname
+ \else
+ \errmessage{Undefined control sequence #2}%
+ \let#1\relax
+ \fi
+}
+
% Add \protected to an existing macro
\def\addprotected#1{\protected\edef#1{\expandafter\unexpanded\expandafter{#1}}}
\def\liststyle#1{%
\edef\markertmp{#1}
\ifcsname item:\markertmp\endcsname
- \slet{listmarker}{item:\markertmp}%
+ \sget\listmarker{item:\markertmp}%
\else
- \slet{listmarker}{metaitem:\markertometa#1^^X}%
- \slet{markerinner}{item:\markertoinner#1^^X}%
+ \sget\listmarker{metaitem:\markertometa#1^^X}%
+ \sget\markerinner{item:\markertoinner#1^^X}%
\fi
}