doc/sod.sty: Index `*earmuffs*' and `:keywords' more usefully.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 3 Aug 2019 15:17:17 +0000 (16:17 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 3 Aug 2019 15:46:24 +0000 (16:46 +0100)
Using the new machinery.

doc/sod.sty

index d188afa..65dc7a1 100644 (file)
 \@namedef{modlabel/setf}#1{setf/#1}
 \@namedef{modindex/setf}#1{#1@\noexpand\code{#1}}
 
+\@namedef{modcat/muffs}#1{#1}
+\@namedef{modlabel/muffs}#1{*#1*}
+\@namedef{modindex/muffs}#1{#1@\noexpand\code{*#1*}}
+
+\@namedef{modcat/kwd}#1{#1}
+\@namedef{modlabel/kwd}#1{:#1}
+\@namedef{modindex/kwd}#1{#1@\noexpand\code{:#1}}
+
 \@namedef{descargs/plain}#1{#1{}}
 \@namedef{desclabel/plain}#1#2#3{#1:\@mod@dispatch{modlabel}{#2}{#3}}
 \@namedef{descindex/plain}#1#2#3{%
 %% call NEXT{MOD}{CAT}{{...}...}{NAME}{SYNOPSIS}
 %%            #1   #2      #3     #4      #5
 \def\@setf{setf}
+\def\@starstar{**}
 \def\parse@dhd#1{%  {NEXT}
   \@ifnextchar[{\parse@dhd@a{#1}}{\parse@dhd@c{#1}}}
 \def\parse@dhd@a#1[#2]#3{%  {NEXT}[MOD]{CAT}
   % {NEXT}{CAT}{{...}...}{SYNOPSIS}NAME [ARGS...]\q@
   \def\temp@{#5}%
   \ifx\@setf\temp@\def\next@{\parse@dhd@csetf{#1}{#2}{#3}{#4}#6 \q@}%
-  \else\def\next@{#1{}{#2}{#3}{#5}{#4}}\fi%
+  \else\def\temp@##1##2*##3\q@{\def\temp@{##1##3}}\temp@#5*\q@%
+    \ifx\temp@\@starstar\def\next@{\parse@dhd@cmuffs{#1}{#2}{#3}{#4}#5}%
+    \else\def\temp@##1##2\q@{\def\temp@{##1}}\temp@#5\q@%
+      \if:\temp@\def\next@{\parse@dhd@ckwd{#1}{#2}{#3}{#4}#5\q@}%
+      \else\def\next@{#1{}{#2}{#3}{#5}{#4}}\fi\fi\fi%
   \next@%
 }
 \def\parse@dhd@csetf#1#2#3#4(#5 #6\q@{%
   % {NEXT}{CAT}{{...}...}{SYNOPSIS}(NAME [ARGS...])\q@
   #1{setf}{#2}{#3}{#5}{#4}}
+\def\parse@dhd@cmuffs#1#2#3#4*#5*{%
+  % {NEXT}{CAT}{{...}...}{SYNOPSIS}*NAME*
+  #1{muffs}{#2}{#3}{#5}{#4}}
+\def\parse@dhd@ckwd#1#2#3#4:#5\q@{%
+  % {NEXT}{CAT}{{...}...}{SYNOPSIS}:NAME\q@
+  #1{kwd}{#2}{#3}{#5}{#4}}
 
 \newif\if@dheadfirst
 \def\dhead{\parse@dhd\dhead@}