L’unica cosa che mi è venuta in mente è questa:
`\begin{document}
\refstepcounter{dummy}
\addcontentsline{toc}{section}{\lstlistlistingname}
\pdfbookmark[1]{\lstlistlistingname}{lol}
\lstlistoflistings
\begin{lstlisting}[float,caption=Un codice mobile.]
for i:=maxint to 0 do
begin
{ non far nulla }
end;
\end{lstlisting}
%\begingroup è inutile
\makeatletter%modifica
\lst@Key{caption}\relax{\lstKV@OptArg[{#1}]{#1}%
{\def\lst@caption{##2}\def\lst@@caption{Dida breve}}%
\let\lst@title\@empty}
\makeatother
\begin{lstlisting}%
for i:=maxint to 0 do
begin
{ do nothing }
end;
\end{lstlisting}
%\endgroup è inutile
\makeatletter %ripristino
\lst@Key{caption}\relax{\lstKV@OptArg[{#1}]{#1}%
{\def\lst@caption{##2}\def\lst@@caption{##1}}%
\let\lst@title\@empty}
\makeatother
\begin{lstlisting}
for i:=maxint to 0 do
begin
{ non far nulla }
end;
\end{lstlisting}
\end{document}`
begingroup e endgroup sono inutili perché la modifica della chiave caption mediante \lst@Key è globale, almeno credo 😯
In pratica ho modificato e poi ripristinato (leggi le parti in rosso).
Fa’ un po’ di prove. Poi vediamo se l’esimio trova qualche soluzione migliore. 😀
Poi ti consiglio di togliere quel \pdfbookmark[1]{\lstlistlistingname}{lol}: mi vengono due segnalibri.
Ciao,
Andrea