Skip to content

Extended Interactive ​

Gnus extends the standard Emacs interactive specification slightly to allow easy use of the symbolic prefix (see Symbolic Prefixes). Here’s an example of how this is used:

emacs-lisp
(defun gnus-summary-increase-score (&optional score symp)
  (interactive (gnus-interactive "P\ny"))
  ...
  )

The best thing to do would have been to implement gnus-interactive as a macro which would have returned an interactive form, but this isn’t possible since Emacs checks whether a function is interactive or not by simply doing an assq on the lambda form. So, instead we have gnus-interactive function that takes a string and returns values that are usable to interactive.

This function accepts (almost) all normal interactive specs, but adds a few more.

‘y’ ​

The current symbolic prefix—the gnus-current-prefix-symbol variable.

‘Y’ ​

A list of the current symbolic prefixes—the gnus-current-prefix-symbol variable.

‘A’ ​

The current article number—the gnus-summary-article-number function.

‘H’ ​

The current article header—the gnus-summary-article-header function.

‘g’ ​

The current group name—the gnus-group-group-name function.