doc/sod.sty: Let the modifier control labelling and indexing.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 3 Aug 2019 15:16:40 +0000 (16:16 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 3 Aug 2019 15:46:24 +0000 (16:46 +0100)
doc/sod.sty

index d9cfabc..d188afa 100644 (file)
   \expandafter\let\expandafter\@tempa\csname cat!#2\endcsname%
   \expandafter\let\expandafter\@tempb\csname modcat/#1\endcsname%
   \ifx\@tempa\relax\@tempb{#2}\else\@tempa\@tempb\fi}
-\def\@maybe@modlabel#1#2{\if!#1!\else#1/\fi#2}
+\def\@mod@dispatch#1#2{\csname #1/#2\endcsname}
 \def\@desc@dispatch#1#2{%
   \csname #1/%
   \expandafter\ifx\csname catsw!#2\endcsname\relax plain%
 \def\nlret{\\\hspace{4em}\returns}
 
 \@namedef{modcat/}#1{#1}
+\@namedef{modlabel/}#1{#1}
+\@namedef{modindex/}#1{#1@\noexpand\code{#1}}
 
 \@namedef{modcat/setf}#1{\code{setf}-#1}
+\@namedef{modlabel/setf}#1{setf/#1}
+\@namedef{modindex/setf}#1{#1@\noexpand\code{#1}}
 
 \@namedef{descargs/plain}#1{#1{}}
-\@namedef{desclabel/plain}#1#2#3{#1:\@maybe@modlabel{#2}{#3}}
+\@namedef{desclabel/plain}#1#2#3{#1:\@mod@dispatch{modlabel}{#2}{#3}}
 \@namedef{descindex/plain}#1#2#3{%
-  #3@\noexpand\code{#3}!%
+  \@mod@dispatch{modindex}{#2}{#3}!%
   \protect\describecategoryname[#2]{#1}%
 }
 
 \@namedef{descargs/method}#1#2{#1{{#2}}}
-\@namedef{desclabel/method}#1#2#3#4{#1:\@maybe@modlabel{#2}{#3}(#4)}
+\@namedef{desclabel/method}#1#2#3#4%
+  {#1:\@mod@dispatch{modlabel}{#2}{#3}(#4)}
 \@namedef{descindex/method}#1#2#3#4{%
-  #3@\noexpand\code{#3}!%
+  \@mod@dispatch{modindex}{#2}{#3}!%
   \protect\describecategoryname[#2]{#1}%
   \protect\fmtspecs{ specialized at }{#4}%
 }