doc/sod.sty: Allow setting the description modifier explicitly.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 28 Jul 2019 02:12:44 +0000 (03:12 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 3 Aug 2019 15:27:42 +0000 (16:27 +0100)
This is necessary if the name is also picked out explicitly.  There are
currently no uses of this facility, but it's provided for completeness's
sake.

doc/sod.sty

index 43b77cc..90a3838 100644 (file)
   \fi%
 }
 
-%% \parse@dhd{NEXT}{CAT}{...}...[NAME]{SYNOPSIS}
+%% \parse@dhd{NEXT}[MOD]{CAT}{...}...[NAME]{SYNOPSIS}
 %% call NEXT{MOD}{CAT}{{...}...}{NAME}{SYNOPSIS}
 %%            #1   #2      #3     #4      #5
-\def\parse@dhd#1#2{%  {NEXT}{CAT}
+\def\@setf{setf}
+\def\parse@dhd#1{%  {NEXT}
+  \@ifnextchar[{\parse@dhd@a{#1}}{\parse@dhd@c{#1}}}
+\def\parse@dhd@a#1[#2]#3{%  {NEXT}[MOD]{CAT}
+  \@desc@dispatch{descargs}{#3}{\parse@dhd@ab{#1}{#2}{#3}}}
+\def\parse@dhd@ab#1#2#3#4{%  {NEXT}{MOD}{CAT}{{...}...}
+  \@ifnextchar[{\parse@dhd@ac{#1}{#2}{#3}{#4}}{\parse@dhd@ad{#1}{#2}{#3}{#4}}}
+\def\parse@dhd@ac#1#2#3#4[#5]#6{%  {NEXT}{MOD}{CAT}{{...}...}[NAME]{SYNOPSIS}
+  #1{#2}{#3}{#4}{#5}{#6}}
+\def\parse@dhd@ad#1#2#3#4#5{%  {NEXT}{MOD}{CAT}{{...}...}{NAME [ARGS...]}
+  \parse@dhd@ae{#1}{#2}{#3}{#4}{#5}#5 \q@}
+\def\parse@dhd@ae#1#2#3#4#5#6 #7\q@{%
+  % {NEXT}{MOD}{CAT}{{...}...}{SYNSOPSIS}NAME [ARGS...]\q@
+  #1{#2}{#3}{#4}{#6}{#5}}
+
+\def\parse@dhd@c#1#2{%  {NEXT}{CAT}
   \@desc@dispatch{descargs}{#2}{\parse@dhd@cb{#1}{#2}}}
 \def\parse@dhd@cb#1#2#3{%  {NEXT}{CAT}{{...}...}
   \@ifnextchar[{\parse@dhd@cc{#1}{#2}{#3}}{\parse@dhd@cd{#1}{#2}{#3}}}