}
\def\desc@end{\endlist\after@desc\global\let\after@desc\saved@after@desc}
+\def\@ifnextchar@preserve#1#2#3{%
+ \let\want@= #1\def\@tempa{#2}\def\@tempb{#3}%
+ \futurelet\nch@\@ifnch@p%
+}
+\def\@ifnch@p{%
+ \ifx\want@\nch@\expandafter\@tempa\else\expandafter\@tempb\fi}
+
\@namedef{describe*}#1{\desc@begin{#1}}
\expandafter\let\csname enddescribe*\endcsname\desc@end
\def\describe{\parse@dhd\desc@}
\def\descref{\@ifstar%
{\descref@i{}\@gobble{}}%
{\descref@i{ (}{\noexpand\autopageref}{)}}}
-\def\descref@i#1#2#3#4{\@ifnextchar[%
- {\descref@ii{#1}{#2}{#3}{#4}}%
- {\descref@iii{#1}{#2}{#3}{#4}{}}}
-\def\descref@ii#1#2#3#4[#5]{\descref@iii{#1}{#2}{#3}{#4}{ #5}}
+\def\descref@i#1#2#3#4#5{\@ifnextchar@preserve[%
+ {\descref@ii{#1}{#2}{#3}{#4}{#5}}%
+ {\descref@iii{#1}{#2}{#3}{#4}{#5}{}}}
+\def\descref@ii#1#2#3#4#5[#6]{\descref@iii{#1}{#2}{#3}{#4}{#5}{ #6}}
\def\descref@iii#1#2#3#4#5#6{%
\begingroup%
\let\protect\@empty%
\def\@uscore{-\@gobble}%
\edef\@tempa##1{%
\endgroup%
- \noexpand\hyperref[#6:#4]%
+ \noexpand\hyperref[#4:#5]%
##1%
- #2{#6:#4}%
+ #2{#4:#5}%
}%
- \@tempa{{\code{#4}}#5#1}#3%
+ \@tempa{{\code{#5}}#6#1}#3%
}
%%%----- That's all, folks --------------------------------------------------