Now you only get the hyperlink.
\end{enumerate}
The \descref{SOD_DECL}[macro]{mac} handles constructing instances with
automatic storage duration (`on the stack'). Similarly, the
\end{enumerate}
The \descref{SOD_DECL}[macro]{mac} handles constructing instances with
automatic storage duration (`on the stack'). Similarly, the
-\descref{SOD_MAKE}[macro]{mac} and the \descref{sod_make}{fun} and
+\descref{SOD_MAKE}[macro]{mac} and the \descref*{sod_make}{fun} and
\descref{sod_makev}{fun} functions construct instances allocated from the
standard @|malloc| heap. Programmers can add support for other allocation
strategies by using the \descref{SOD_INIT}[macro]{mac} and the
\descref{sod_makev}{fun} functions construct instances allocated from the
standard @|malloc| heap. Programmers can add support for other allocation
strategies by using the \descref{SOD_INIT}[macro]{mac} and the
-\descref{sod_init}{fun} and \descref{sod_initv}{fun} functions, which package
-up imprinting and initialization.
+\descref*{sod_init}{fun} and \descref{sod_initv}{fun} functions, which
+package up imprinting and initialization.
\subsubsection{Allocation}
Instances of most classes (specifically including those classes defined by
\subsubsection{Allocation}
Instances of most classes (specifically including those classes defined by
Keyword arguments for the initialization message may be provided. The
@|SOD_INIT| macro expects a single preprocessor-time argument which is
Keyword arguments for the initialization message may be provided. The
@|SOD_INIT| macro expects a single preprocessor-time argument which is
- a use of one of \descref{KWARGS}{mac} or \descref{NO_KWARGS}{mac}; the
+ a use of one of \descref*{KWARGS}{mac} or \descref{NO_KWARGS}{mac}; the
@|sod_init| function expects the keywords as a variable-length argument
tail; and @|sod_initv| expects the keywords to be passed indirectly,
through the captured argument-tail cursor @<ap>.
@|sod_init| function expects the keywords as a variable-length argument
tail; and @|sod_initv| expects the keywords to be passed indirectly,
through the captured argument-tail cursor @<ap>.
Keyword arguments for the initialization message may be provided. The
macro expects a single preprocessor-time argument which is a use of one of
Keyword arguments for the initialization message may be provided. The
macro expects a single preprocessor-time argument which is a use of one of
- \descref{KWARGS}{mac} or \descref{NO_KWARGS}{mac}.
+ \descref*{KWARGS}{mac} or \descref{NO_KWARGS}{mac}.
The instance has automatic storage duration: pointers to it will become
invalid when control exits the scope of the declaration. If necessary, the
The instance has automatic storage duration: pointers to it will become
invalid when control exits the scope of the declaration. If necessary, the
Keyword arguments for the initialization message may be provided. The
@|SOD_MAKE| macro expects a single preprocessor-time argument which is
Keyword arguments for the initialization message may be provided. The
@|SOD_MAKE| macro expects a single preprocessor-time argument which is
- a use of one of \descref{KWARGS}{mac} or \descref{NO_KWARGS}{mac}; the
+ a use of one of \descref*{KWARGS}{mac} or \descref{NO_KWARGS}{mac}; the
@|sod_make| function expects the keywords as a variable-length argument
tail; and @|sod_makev| expects the keywords to be passed indirectly,
through the captured argument-tail cursor @<ap>.
@|sod_make| function expects the keywords as a variable-length argument
tail; and @|sod_makev| expects the keywords to be passed indirectly,
through the captured argument-tail cursor @<ap>.
\def\desc@#1#2#3#4#5{\desc@begin{\dhead@{#1}{#2}{#3}{#4}{#5}}}
\let\enddescribe\desc@end
\def\desc@#1#2#3#4#5{\desc@begin{\dhead@{#1}{#2}{#3}{#4}{#5}}}
\let\enddescribe\desc@end
-\def\descref#1{\@ifnextchar[{\descref@i{#1}}{\descref@ii{#1}{}}}
-\def\descref@i#1[#2]{\descref@ii{#1}{ #2}}
-\def\descref@ii#1#2#3{%
+\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@iii#1#2#3#4#5#6{%
\begingroup%
\let\protect\@empty%
\def\@uscore{-\@gobble}%
\edef\@tempa##1{%
\endgroup%
\begingroup%
\let\protect\@empty%
\def\@uscore{-\@gobble}%
\edef\@tempa##1{%
\endgroup%
- \noexpand\hyperref[#3:#1]%
+ \noexpand\hyperref[#6:#4]%
- \noexpand\autopageref{#3:#1}%
- \@tempa{{\code{#1}}#2 (})%
+ \@tempa{{\code{#4}}#5#1}#3%
}
%%%----- That's all, folks --------------------------------------------------
}
%%%----- That's all, folks --------------------------------------------------