\let\syntright\empty
%% Literal code is in sans face.
-\let\codeface\sffamily
+\def\codeface{\upshape\sffamily}
\DeclareRobustCommand\code[1]{%
\ifmmode\hbox\else\leavevmode\fi%
{\normalfont\codeface\/#1\/}%
\atdef <#1>{\synt{#1}\@scripts}
\atdef "#1"{\lit*{#1}\@scripts}
\atdef `#1'{\lit{#1}\@scripts}
-\atdef |#1|{\textsf{#1}\@scripts}
+\atdef |#1|{\lit*{#1}\@scripts}
%% A handy abbreviation; `\\' itself is too good to steal.
\atdef \\{\textbackslash}
\atdef -#1{\if>#1\hbox{--\raisebox{.4pt}{>}}\penalty200\relax\fi}
%% Comment setting.
-\atdef ;#1\\{\normalfont\itshape;#1\\}
+\def\comment#1{\mbox{\normalfont\itshape\/#1\/}}
+\atdef /*#1*/{/*\comment{#1}*/}
+\def\@semis{\@ifnextchar;{;\@semis}\@semicomment}
+\def\@semicomment#1\\{\comment{#1}\\}
+\atdef ;#1\\{;\@semis}
%% Environment for setting programs. Newlines are explicit, because
%% otherwise I need comments in weird places to make the vertical spacing
\def\@progcr@ii#1{\csname @progcr@#1\endcsname\ignorespaces}
\@namedef{@progcr@+}{\prog@@cr[\medskipamount]}
\@namedef{@progcr@-}{\prog@@cr*[\jot]}
+\def\macsl{\`\textbackslash\hskip\leftmargin}
%% Put a chunk of text in a box.
\newenvironment{boxy}[1][\q@]{%
\definedescribecategory{be-meth}{before method}
\definedescribecategory{af-meth}{after method}
\definedescribecategory{cls}{class}
+\definedescribecategory{rst}{restart}
\definedescribecategory{ty}{type}
\definedescribecategory{type}{type}
\definedescribecategory{mac}{macro}