/**
* mutt_get_address - Get an Address from an Envelope
- * @param env Envelope to examine
- * @param pfxp Prefix for the Address, e.g. "To:"
+ * @param[in] env Envelope to examine
+ * @param[out] pfxp Prefix for the Address, e.g. "To:"
* @retval ptr Address in the Envelope
*/
struct Address *mutt_get_address(struct Envelope *env, const char **pfxp)
/**
* mutt_alias_free - Free an Alias
- * @param p Alias to free
+ * @param[out] p Alias to free
*/
void mutt_alias_free(struct Alias **p)
{
/**
* mutt_bcache_close - Close an Email-Body Cache
- * @param bcache Body cache
+ * @param[out] bcache Body cache
*
* Free all memory of bcache and finally FREE() it, too.
*/
/**
* compose_attach_swap - Swap two adjacent entries in the attachment list
- * @param msg Body of email
- * @param idx Array of Attachments
- * @param first Index of first attachment to swap
+ * @param[in] msg Body of email
+ * @param[out] idx Array of Attachments
+ * @param[in] first Index of first attachment to swap
*/
static void compose_attach_swap(struct Body *msg, struct AttachPtr **idx, short first)
{
/**
* address_free - Free an Address object
- * @param addr Address to free
+ * @param[out] addr Address to free
*/
void address_free(struct Address **addr)
{
/**
* ac_free - Free an CfgAccount object
- * @param cs Config items
- * @param ac CfgAccount to free
+ * @param[in] cs Config items
+ * @param[out] ac CfgAccount to free
*/
void ac_free(const struct ConfigSet *cs, struct CfgAccount **ac)
{
/**
* mbtable_free - Free an MbTable object
- * @param table MbTable to free
+ * @param[out] table MbTable to free
*/
void mbtable_free(struct MbTable **table)
{
/**
* regex_free - Free a Regex object
- * @param r Regex to free
+ * @param[out] r Regex to free
*/
void regex_free(struct Regex **r)
{
/**
* cs_free - Free a Config Set
- * @param cs Config items
+ * @param[out] cs Config items
*/
void cs_free(struct ConfigSet **cs)
{
/**
* mutt_sasl_client_new - wrapper for sasl_client_new
- * @param conn Connection to a server
- * @param saslconn SASL connection
+ * @param[in] conn Connection to a server
+ * @param[out] saslconn SASL connection
* @retval 0 Success
* @retval -1 Error
*
/**
* ctx_free - Free a Context
- * @param ctx Context to free
+ * @param[out] ctx Context to free
*/
void ctx_free(struct Context **ctx)
{
/**
* format_address_header - Write address headers to a buffer
- * @param h Array of header strings
- * @param a Email Address
+ * @param[out] h Array of header strings
+ * @param[in] a Email Address
*
* This function is the equivalent of mutt_write_address_list(), but writes to
* a buffer instead of writing to a stream. mutt_write_address_list could be
/**
* address_header_decode - Parse an email's headers
- * @param h Array of header strings
+ * @param[out] h Array of header strings
* @retval 0 Success
* @retval 1 Failure
*/
/**
* be_barf_file - Write a buffer to a file
- * @param path Path to write to
- * @param buf Buffer to read from
- * @param buflen Length of buffer
+ * @param[in] path Path to write to
+ * @param[out] buf Buffer to read from
+ * @param[in] buflen Length of buffer
* @retval 0 Success
* @retval -1 Error
*/
/**
* be_free_memory - Free an array of buffers
- * @param buf Buffer to free
- * @param buflen Number of buffers to free
+ * @param[out] buf Buffer to free
+ * @param[in] buflen Number of buffers to free
*/
static void be_free_memory(char **buf, int buflen)
{
/**
* free_address - Free a single Address
- * @param a Address to free
+ * @param[out] a Address to free
*
* @note This doesn't alter the links if the Address is in a list.
*/
/**
* add_addrspec - Parse an email address and add an Address to a list
- * @param[in] top Top of Address list
- * @param[in] last End of Address list
+ * @param[out] top Top of Address list
+ * @param[out] last End of Address list
* @param[in] phrase String to parse
* @param[out] comment Buffer for any comments
* @param[out] commentlen Length of any comments
/**
* mutt_addr_remove_from_list - Remove an Address from a list
- * @param a Address list
- * @param mailbox Email address to match
+ * @param[out] a Address list
+ * @param[in] mailbox Email address to match
* @retval 0 Success
* @retval -1 Error, or email not found
*/
/**
* mutt_addr_free - Free a list of Addresses
- * @param p Top of the list
+ * @param[out] p Top of the list
*/
void mutt_addr_free(struct Address **p)
{
/**
* mutt_addr_append - Append one list of addresses onto another
- * @param a Destination Address list
- * @param b Source Address list
- * @param prune Skip groups if there are more addresses
+ * @param[out] a Destination Address list
+ * @param[in] b Source Address list
+ * @param[in] prune Skip groups if there are more addresses
* @retval ptr Last Address in the combined list
*
* Append the Source onto the end of the Destination Address list.
/**
* mutt_actx_free - Free an Attachment Context
- * @param pactx Attachment context
+ * @param[out] pactx Attachment context
*/
void mutt_actx_free(struct AttachCtx **pactx)
{
/**
* mutt_body_free - Free a Body
- * @param p Body to free
+ * @param[out] p Body to free
*/
void mutt_body_free(struct Body **p)
{
/**
* mutt_email_free - Free an Email
- * @param e Email to free
+ * @param[out] e Email to free
*/
void mutt_email_free(struct Email **e)
{
/**
* mutt_env_free - Free an Envelope
- * @param p Envelope to free
+ * @param[out] p Envelope to free
*/
void mutt_env_free(struct Envelope **p)
{
/**
* mutt_env_merge - Merge the headers of two Envelopes
- * @param base Envelope destination for all the headers
- * @param extra Envelope to copy from
+ * @param[in] base Envelope destination for all the headers
+ * @param[out] extra Envelope to copy from
*
* Any fields that are missing from base will be copied from extra.
* extra will be freed afterwards.
/**
* mutt_idna_to_ascii_lz - Convert a domain to Punycode
- * @param input Domain
- * @param output Result
- * @param flags Flags, e.g. IDNA_ALLOW_UNASSIGNED
+ * @param[in] input Domain
+ * @param[out] output Result
+ * @param[in] flags Flags, e.g. IDNA_ALLOW_UNASSIGNED
* @retval 0 Success
* @retval >0 Failure, error code
*
/**
* mutt_param_free_one - Free a Parameter
- * @param p Parameter to free
+ * @param[out] p Parameter to free
*/
void mutt_param_free_one(struct Parameter **p)
{
/**
* mutt_extract_message_id - Find a message-id
- * @param s String to parse
- * @param saveptr Save result here
+ * @param[in] s String to parse
+ * @param[out] saveptr Save result here
* @retval ptr First character after message-id
* @retval NULL No more message ids
*
/**
* encode - RFC2047-encode a string
- * @param d String to convert
- * @param dlen Length of string
- * @param col Starting column to convert
- * @param fromcode Original encoding
- * @param charsets List of allowable encodings (colon separated)
- * @param e Encoded string
- * @param elen Length of encoded string
- * @param specials Special characters to be encoded
+ * @param[in] d String to convert
+ * @param[in] dlen Length of string
+ * @param[in] col Starting column to convert
+ * @param[in] fromcode Original encoding
+ * @param[in] charsets List of allowable encodings (colon separated)
+ * @param[out] e Encoded string
+ * @param[out] elen Length of encoded string
+ * @param[in] specials Special characters to be encoded
* @retval 0 Success
*/
static int encode(const char *d, size_t dlen, int col, const char *fromcode,
/**
* list_insert - Insert parameter into an ordered list
- * @param list List to insert into
- * @param par Parameter to insert
+ * @param[out] list List to insert into
+ * @param[in] par Parameter to insert
*
* Primary sorting key: attribute
* Secondary sorting key: index
/**
* free_parameter - Free an Rfc2231Parameter
- * @param p Rfc2231Parameter to free
+ * @param[out] p Rfc2231Parameter to free
*/
static void free_parameter(struct Rfc2231Parameter **p)
{
/**
* rfc2231_encode_string - Encode a string to be suitable for an RFC2231 header
- * @param pd String to encode
+ * @param[out] pd String to encode
* @retval 1 If string was encoded
* @retval 0 If no
*
/**
* url_free - Free the contents of a URL
- * @param u Url to empty
+ * @param[out] u Url to empty
*
* @note The Url itself is not freed
*/
/**
* mutt_enter_state_free - Free an EnterState
- * @param esp EnterState to free
+ * @param[out] esp EnterState to free
*/
void mutt_enter_state_free(struct EnterState **esp)
{
/**
* mutt_create_filter_fd - Run a command on a pipe (optionally connect stdin/stdout)
- * @param cmd Command line to invoke using `sh -c`
- * @param in File stream pointing to stdin for the command process, can be NULL
- * @param out File stream pointing to stdout for the command process, can be NULL
- * @param err File stream pointing to stderr for the command process, can be NULL
- * @param fdin If `in` is NULL and fdin is not -1 then fdin will be used as stdin for the command process
- * @param fdout If `out` is NULL and fdout is not -1 then fdout will be used as stdout for the command process
- * @param fderr If `error` is NULL and fderr is not -1 then fderr will be used as stderr for the command process
+ * @param[in] cmd Command line to invoke using `sh -c`
+ * @param[out] in File stream pointing to stdin for the command process, can be NULL
+ * @param[out] out File stream pointing to stdout for the command process, can be NULL
+ * @param[out] err File stream pointing to stderr for the command process, can be NULL
+ * @param[in] fdin If `in` is NULL and fdin is not -1 then fdin will be used as stdin for the command process
+ * @param[in] fdout If `out` is NULL and fdout is not -1 then fdout will be used as stdout for the command process
+ * @param[in] fderr If `error` is NULL and fderr is not -1 then fderr will be used as stderr for the command process
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
void *(*fetch)(void *ctx, const char *key, size_t keylen);
/**
* free - backend-specific routine to free fetched data
- * @param ctx The backend-specific context retrieved via open()
- * @param data A pointer to the data got with fetch() or fetch_raw()
+ * @param[in] ctx The backend-specific context retrieved via open()
+ * @param[out] data A pointer to the data got with fetch() or fetch_raw()
*/
void (*free)(void *ctx, void **data);
/**
int (*delete)(void *ctx, const char *key, size_t keylen);
/**
* close - backend-specific routine to close a context
- * @param ctx The backend-specific context retrieved via open()
+ * @param[out] ctx The backend-specific context retrieved via open()
*
* Backend code is responsible for freeing any resources associated with the
* @a ctx parameter. For this reason, backend code is passed a pointer-to-pointer
/**
* serial_restore_char - Unpack a variable-length string from a binary blob
- * @param c Store the unpacked string here
- * @param d Binary blob to read from
- * @param off Offset into the blob
- * @param convert If true, the strings will be converted to utf-8
+ * @param[out] c Store the unpacked string here
+ * @param[in] d Binary blob to read from
+ * @param[out] off Offset into the blob
+ * @param[in] convert If true, the strings will be converted to utf-8
*/
void serial_restore_char(char **c, const unsigned char *d, int *off, bool convert)
{
/**
* serial_restore_address - Unpack an Address from a binary blob
- * @param a Store the unpacked Address here
- * @param d Binary blob to read from
- * @param off Offset into the blob
- * @param convert If true, the strings will be converted from utf-8
+ * @param[out] a Store the unpacked Address here
+ * @param[in] d Binary blob to read from
+ * @param[out] off Offset into the blob
+ * @param[in] convert If true, the strings will be converted from utf-8
*/
void serial_restore_address(struct Address **a, const unsigned char *d, int *off, bool convert)
{
/**
* serial_restore_buffer - Unpack a Buffer from a binary blob
- * @param b Store the unpacked Buffer here
- * @param d Binary blob to read from
- * @param off Offset into the blob
- * @param convert If true, the strings will be converted from utf-8
+ * @param[out] b Store the unpacked Buffer here
+ * @param[in] d Binary blob to read from
+ * @param[out] off Offset into the blob
+ * @param[in] convert If true, the strings will be converted from utf-8
*/
void serial_restore_buffer(struct Buffer **b, const unsigned char *d, int *off, bool convert)
{
/**
* imap_edata_free - free ImapHeader structure
- * @retval ptr Private Email data
+ * @param[out] ptr Private Email data
*/
void imap_edata_free(void **ptr)
{
/**
* imap_utf_encode - Encode email from local charset to UTF-8
- * @param unicode true if Unicode is allowed
- * @param s Email to convert
+ * @param[in] unicode true if Unicode is allowed
+ * @param[out] s Email to convert
*/
void imap_utf_encode(bool unicode, char **s)
{
/**
* imap_adata_free - Release and clear storage in an ImapAccountData structure
- * @param ptr Imap Account data
+ * @param[out] ptr Imap Account data
*/
void imap_adata_free(void **ptr)
{
/**
* imap_mdata_free - Release and clear storage in an ImapMboxData structure
- * @param ptr Imap Mailbox data
+ * @param[out] ptr Imap Mailbox data
*/
void imap_mdata_free(void **ptr)
{
/**
* mutt_seqset_iterator_free - Free a Sequence Set Iterator
- * @param p_iter Iterator to free
+ * @param[out] p_iter Iterator to free
*/
void mutt_seqset_iterator_free(struct SeqsetIterator **p_iter)
{
/**
* mailbox_free - Free a Mailbox
- * @param ptr Mailbox to free
+ * @param[out] ptr Mailbox to free
*/
void mailbox_free(struct Mailbox **ptr)
{
/**
* maildir_mdata_free - Free data attached to the Mailbox
- * @param ptr Maildir data
+ * @param[out] ptr Maildir data
*/
void maildir_mdata_free(void **ptr)
{
/**
* maildir_free_entry - Free a Maildir object
- * @param md Maildir to free
+ * @param[out] md Maildir to free
*/
static void maildir_free_entry(struct Maildir **md)
{
/**
* maildir_free_maildir - Free a Maildir list
- * @param md Maildir list to free
+ * @param[out] md Maildir list to free
*/
static void maildir_free_maildir(struct Maildir **md)
{
/**
* maildir_parse_dir - Read a Maildir mailbox
- * @param m Mailbox
- * @param last Last Maildir
- * @param subdir Subdirectory, e.g. 'new'
- * @param count Counter for the progress bar
- * @param progress Progress bar
+ * @param[in] m Mailbox
+ * @param[out] last Last Maildir
+ * @param[in] subdir Subdirectory, e.g. 'new'
+ * @param[out] count Counter for the progress bar
+ * @param[in] progress Progress bar
* @retval 0 Success
* @retval -1 Error
* @retval -2 Aborted
/**
* maildir_move_to_context - Copy the Maildir list to the Mailbox
- * @param m Mailbox
- * @param md Maildir list to copy, then free
+ * @param[in] m Mailbox
+ * @param[out] md Maildir list to copy, then free
* @retval num Number of new emails
* @retval 0 Error
*/
/**
* mh_sort_natural - Sort a Maildir list into its natural order
- * @param m Mailbox
- * @param md Maildir list to sort
+ * @param[in] m Mailbox
+ * @param[out] md Maildir list to sort
*
* Currently only defined for MH where files are numbered.
*/
/**
* maildir_delayed_parsing - This function does the second parsing pass
- * @param m Mailbox
- * @param md Maildir to parse
- * @param progress Progress bar
+ * @param[in] m Mailbox
+ * @param[out] md Maildir to parse
+ * @param[in] progress Progress bar
*/
void maildir_delayed_parsing(struct Mailbox *m, struct Maildir **md, struct Progress *progress)
{
/**
* md_open_find_message - Find a message in a maildir folder
- * @param folder Base folder
- * @param unique Unique part of filename
- * @param subfolder Subfolder to search, e.g. 'cur'
- * @param newname File's new name
+ * @param[in] folder Base folder
+ * @param[in] unique Unique part of filename
+ * @param[in] subfolder Subfolder to search, e.g. 'cur'
+ * @param[out] newname File's new name
* @retval ptr File handle
*
* These functions try to find a message in a maildir folder when it
/**
* maildir_open_find_message - Find a new
- * @param folder Maildir path
- * @param msg Email path
- * @param newname New name, if it has moved
+ * @param[in] folder Maildir path
+ * @param[in] msg Email path
+ * @param[out] newname New name, if it has moved
* @retval ptr File handle
*/
FILE *maildir_open_find_message(const char *folder, const char *msg, char **newname)
/**
* mbox_adata_free - Free data attached to the Mailbox
- * @param ptr Private mailbox data
+ * @param[out] ptr Private mailbox data
*/
static void mbox_adata_free(void **ptr)
{
/**
* mutt_menu_destroy - Destroy a menu
- * @param p Menu to destroy
+ * @param[out] p Menu to destroy
*/
void mutt_menu_destroy(struct Menu **p)
{
/**
* mutt_buffer_free - Release a Buffer and its contents
- * @param p Buffer pointer to free and NULL
+ * @param[out] p Buffer pointer to free and NULL
*/
void mutt_buffer_free(struct Buffer **p)
{
/**
* mutt_buffer_pool_release - Free a Buffer from the pool
- * @param pbuf Buffer to free
+ * @param[out] pbuf Buffer to free
*/
void mutt_buffer_pool_release(struct Buffer **pbuf)
{
/**
* mutt_ch_fgetconv_close - Close an fgetconv handle
- * @param fc fgetconv handle
+ * @param[out] fc fgetconv handle
*/
void mutt_ch_fgetconv_close(struct FgetConv **fc)
{
/**
* mutt_file_fclose - Close a FILE handle (and NULL the pointer)
- * @param f FILE handle to close
+ * @param[out] f FILE handle to close
* @retval 0 Success
* @retval EOF Error, see errno
*/
/**
* mutt_file_fsync_close - Flush the data, before closing a file (and NULL the pointer)
- * @param f FILE handle to close
+ * @param[out] f FILE handle to close
* @retval 0 Success
* @retval EOF Error, see errno
*/
/**
* mutt_hash_free - elem_free a hash table
- * @param ptr Hash Table to be freed
+ * @param[out] ptr Hash Table to be freed
*/
void mutt_hash_free(struct Hash **ptr)
{
/**
* typedef list_free_t - Prototype for a function to free List data
- * @param ptr Data to free
+ * @param[out] ptr Data to free
*/
typedef void (*list_free_t)(void **ptr);
/**
* mutt_mb_mbstowcs - Convert a string from multibyte to wide characters
- * @param pwbuf Buffer for the result
- * @param pwbuflen Length of the result buffer
- * @param i Starting index into the result buffer
- * @param buf String to convert
+ * @param[out] pwbuf Buffer for the result
+ * @param[out] pwbuflen Length of the result buffer
+ * @param[in] i Starting index into the result buffer
+ * @param[in] buf String to convert
* @retval num First character after the result
*/
size_t mutt_mb_mbstowcs(wchar_t **pwbuf, size_t *pwbuflen, size_t i, char *buf)
/**
* mutt_regex_free - Free a Regex object
- * @param r Regex to free
+ * @param[out] r Regex to free
*/
void mutt_regex_free(struct Regex **r)
{
/**
* mutt_str_replace - Replace one string with another
- * @param p String to replace
- * @param s New string
+ * @param[out] p String to replace
+ * @param[in] s New string
*
* This function free()s the original string, strdup()s the new string and
* overwrites the pointer to the first string.
/**
* mutt_str_append_item - Add string to another separated by sep
- * @param str String appended
- * @param item String to append
- * @param sep separator between string item
+ * @param[out] str String appended
+ * @param[in] item String to append
+ * @param[in] sep separator between string item
*
* This function appends a string to another separate them by sep
* if needed
/**
* mutt_str_adjust - Shrink-to-fit a string
- * @param p String to alter
+ * @param[out] p String to alter
*
* Take a string which is allocated on the heap, find its length and reallocate
* the memory to be exactly the right size.
/**
* history_menu - Select an item from a history list
- * @param buf Buffer in which to save string
- * @param buflen Buffer length
- * @param matches Items to choose from
- * @param match_count Number of items
+ * @param[in] buf Buffer in which to save string
+ * @param[in] buflen Buffer length
+ * @param[out] matches Items to choose from
+ * @param[in] match_count Number of items
*/
static void history_menu(char *buf, size_t buflen, char **matches, int match_count)
{
/**
* lua_init - Initialise a Lua State
- * @param l Lua State
+ * @param[out] l Lua State
* @retval true If successful
*/
static bool lua_init(lua_State **l)
/**
* mx_mbox_close - Save changes and close mailbox
- * @param ptr Mailbox
+ * @param[out] ptr Mailbox
* @retval 0 Success
* @retval -1 Failure
*
/**
* mx_msg_close - Close a message
- * @param m Mailbox
- * @param msg Message to close
+ * @param[in] m Mailbox
+ * @param[out] msg Message to close
* @retval 0 Success
* @retval -1 Failure
*/
/**
* crypt_get_fingerprint_or_id - Get the fingerprint or long key ID
- * @param p String to examine
- * @param pphint Start of string to be passed to pgp_add_string_to_hints() or crypt_add_string_to_hints()
- * @param ppl Start of long key ID if detected, else NULL
- * @param pps Start of short key ID if detected, else NULL
+ * @param[in] p String to examine
+ * @param[out] pphint Start of string to be passed to pgp_add_string_to_hints() or crypt_add_string_to_hints()
+ * @param[out] ppl Start of long key ID if detected, else NULL
+ * @param[out] pps Start of short key ID if detected, else NULL
* @retval ptr Copy of fingerprint, if any, stripped of all spaces. Must be FREE'd by caller
* @retval NULL Otherwise
*
/**
* crypt_free_key - Release all the keys in a list
- * @param keylist List of keys
+ * @param[out] keylist List of keys
*/
static void crypt_free_key(struct CryptKeyInfo **keylist)
{
/**
* pgp_invoke - Run a PGP command
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param need_passphrase Is a passphrase needed?
- * @param fname Filename to pass to the command
- * @param sig_fname Signature filename to pass to the command
- * @param ids List of IDs/fingerprints, space separated
- * @param format printf-like format string
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] need_passphrase Is a passphrase needed?
+ * @param[in] fname Filename to pass to the command
+ * @param[in] sig_fname Signature filename to pass to the command
+ * @param[in] ids List of IDs/fingerprints, space separated
+ * @param[in] format printf-like format string
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_decode - Use PGP to decode a message
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
- * @param need_passphrase Is a passphrase needed?
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
+ * @param[in] need_passphrase Is a passphrase needed?
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_verify - Use PGP to verify a message
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
- * @param sig_fname Signature filename to pass to the command
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
+ * @param[in] sig_fname Signature filename to pass to the command
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_decrypt - Use PGP to decrypt a file
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_sign - Use PGP to sign a file
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_encrypt - Use PGP to encrypt a file
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
- * @param uids List of IDs/fingerprints, space separated
- * @param sign If true, also sign the file
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
+ * @param[in] uids List of IDs/fingerprints, space separated
+ * @param[in] sign If true, also sign the file
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_traditional - Use PGP to create in inline-signed message
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
- * @param uids List of IDs/fingerprints, space separated
- * @param flags Flags, e.g. #SIGN, #ENCRYPT
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
+ * @param[in] uids List of IDs/fingerprints, space separated
+ * @param[in] flags Flags, e.g. #SIGN, #ENCRYPT
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_export - Use PGP to export a key from the user's keyring
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param uids List of IDs/fingerprints, space separated
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] uids List of IDs/fingerprints, space separated
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_verify_key - Use PGP to verify a key
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param uids List of IDs/fingerprints, space separated
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] uids List of IDs/fingerprints, space separated
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_invoke_list_keys - Find matching PGP Keys
- * @param pgpin stdin for the command, or NULL (OPTIONAL)
- * @param pgpout stdout for the command, or NULL (OPTIONAL)
- * @param pgperr stderr for the command, or NULL (OPTIONAL)
- * @param pgpinfd stdin for the command, or -1 (OPTIONAL)
- * @param pgpoutfd stdout for the command, or -1 (OPTIONAL)
- * @param pgperrfd stderr for the command, or -1 (OPTIONAL)
- * @param keyring Keyring type, e.g. #PGP_SECRING
- * @param hints Match keys to these strings
+ * @param[out] pgpin stdin for the command, or NULL (OPTIONAL)
+ * @param[out] pgpout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] pgperr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] pgpinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] pgpoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] pgperrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] keyring Keyring type, e.g. #PGP_SECRING
+ * @param[in] hints Match keys to these strings
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* pgp_free_uid - Free a PGP UID
- * @param upp PGP UID to free
+ * @param[out] upp PGP UID to free
*/
static void pgp_free_uid(struct PgpUid **upp)
{
/**
* free_key - Free a PGP Key info
- * @param kpp PGP Key info to free
+ * @param[out] kpp PGP Key info to free
*/
static void free_key(struct PgpKeyInfo **kpp)
{
/**
* pgp_remove_key - Remove a PGP key from a list
- * @param klist List of PGP Keys
- * @param key Key to remove
+ * @param[out] klist List of PGP Keys
+ * @param[in] key Key to remove
* @retval ptr Updated list of PGP Keys
*/
struct PgpKeyInfo *pgp_remove_key(struct PgpKeyInfo **klist, struct PgpKeyInfo *key)
/**
* pgp_free_key - Free a PGP key info
- * @param kpp PGP key info to free
+ * @param[out] kpp PGP key info to free
*/
void pgp_free_key(struct PgpKeyInfo **kpp)
{
/**
* smime_free_key - Free a list of SMIME keys
- * @param keylist List of keys to free
+ * @param[out] keylist List of keys to free
*/
static void smime_free_key(struct SmimeKey **keylist)
{
/**
* smime_invoke - Run an SMIME command
- * @param smimein stdin for the command, or NULL (OPTIONAL)
- * @param smimeout stdout for the command, or NULL (OPTIONAL)
- * @param smimeerr stderr for the command, or NULL (OPTIONAL)
- * @param smimeinfd stdin for the command, or -1 (OPTIONAL)
- * @param smimeoutfd stdout for the command, or -1 (OPTIONAL)
- * @param smimeerrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
- * @param sig_fname Signature filename to pass to the command
- * @param cryptalg Encryption algorithm
- * @param digestalg Hashing algorithm
- * @param key SMIME key
- * @param certificates Public certificates
- * @param intermediates Intermediate certificates
- * @param format printf-like format string
+ * @param[out] smimein stdin for the command, or NULL (OPTIONAL)
+ * @param[out] smimeout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] smimeerr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] smimeinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] smimeoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] smimeerrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
+ * @param[in] sig_fname Signature filename to pass to the command
+ * @param[in] cryptalg Encryption algorithm
+ * @param[in] digestalg Hashing algorithm
+ * @param[in] key SMIME key
+ * @param[in] certificates Public certificates
+ * @param[in] intermediates Intermediate certificates
+ * @param[in] format printf-like format string
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* smime_invoke_encrypt - Use SMIME to encrypt a file
- * @param smimein stdin for the command, or NULL (OPTIONAL)
- * @param smimeout stdout for the command, or NULL (OPTIONAL)
- * @param smimeerr stderr for the command, or NULL (OPTIONAL)
- * @param smimeinfd stdin for the command, or -1 (OPTIONAL)
- * @param smimeoutfd stdout for the command, or -1 (OPTIONAL)
- * @param smimeerrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
- * @param uids List of IDs/fingerprints, space separated
+ * @param[out] smimein stdin for the command, or NULL (OPTIONAL)
+ * @param[out] smimeout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] smimeerr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] smimeinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] smimeoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] smimeerrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
+ * @param[in] uids List of IDs/fingerprints, space separated
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* smime_invoke_sign - Use SMIME to sign a file
- * @param smimein stdin for the command, or NULL (OPTIONAL)
- * @param smimeout stdout for the command, or NULL (OPTIONAL)
- * @param smimeerr stderr for the command, or NULL (OPTIONAL)
- * @param smimeinfd stdin for the command, or -1 (OPTIONAL)
- * @param smimeoutfd stdout for the command, or -1 (OPTIONAL)
- * @param smimeerrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
+ * @param[out] smimein stdin for the command, or NULL (OPTIONAL)
+ * @param[out] smimeout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] smimeerr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] smimeinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] smimeoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] smimeerrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* smime_invoke_verify - Use SMIME to verify a file
- * @param smimein stdin for the command, or NULL (OPTIONAL)
- * @param smimeout stdout for the command, or NULL (OPTIONAL)
- * @param smimeerr stderr for the command, or NULL (OPTIONAL)
- * @param smimeinfd stdin for the command, or -1 (OPTIONAL)
- * @param smimeoutfd stdout for the command, or -1 (OPTIONAL)
- * @param smimeerrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
- * @param sig_fname Signature filename to pass to the command
- * @param opaque If true, use `$smime_verify_opaque_command` else `$smime_verify_command`
+ * @param[out] smimein stdin for the command, or NULL (OPTIONAL)
+ * @param[out] smimeout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] smimeerr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] smimeinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] smimeoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] smimeerrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
+ * @param[in] sig_fname Signature filename to pass to the command
+ * @param[in] opaque If true, use `$smime_verify_opaque_command` else `$smime_verify_command`
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* smime_invoke_decrypt - Use SMIME to decrypt a file
- * @param smimein stdin for the command, or NULL (OPTIONAL)
- * @param smimeout stdout for the command, or NULL (OPTIONAL)
- * @param smimeerr stderr for the command, or NULL (OPTIONAL)
- * @param smimeinfd stdin for the command, or -1 (OPTIONAL)
- * @param smimeoutfd stdout for the command, or -1 (OPTIONAL)
- * @param smimeerrfd stderr for the command, or -1 (OPTIONAL)
- * @param fname Filename to pass to the command
+ * @param[out] smimein stdin for the command, or NULL (OPTIONAL)
+ * @param[out] smimeout stdout for the command, or NULL (OPTIONAL)
+ * @param[out] smimeerr stderr for the command, or NULL (OPTIONAL)
+ * @param[in] smimeinfd stdin for the command, or -1 (OPTIONAL)
+ * @param[in] smimeoutfd stdout for the command, or -1 (OPTIONAL)
+ * @param[in] smimeerrfd stderr for the command, or -1 (OPTIONAL)
+ * @param[in] fname Filename to pass to the command
* @retval num PID of the created process
* @retval -1 Error creating pipes or forking
*
/**
* nntp_adata_free - Free data attached to the Mailbox
- * @param ptr NNTP data
+ * @param[out] ptr NNTP data
*
* The NntpAccountData struct stores global NNTP data, such as the connection to
* the database. This function will close the database, free the resources and
/**
* nntp_mdata_free - Free NntpMboxData, used to destroy hash elements
- * @param ptr NNTP data
+ * @param[out] ptr NNTP data
*/
void nntp_mdata_free(void **ptr)
{
/**
* nntp_edata_free - Free data attached to an Email
- * @param data Email data
+ * @param[out] data Email data
*/
static void nntp_edata_free(void **data)
{
/**
* nm_adata_free - Release and clear storage in an NmAccountData structure
- * @param ptr Nm Account data
+ * @param[out] ptr Nm Account data
*/
void nm_adata_free(void **ptr)
{
/**
* nm_mdata_free - Free data attached to the Mailbox
- * @param ptr Notmuch data
+ * @param[out] ptr Notmuch data
*
* The NmMboxData struct stores global Notmuch data, such as the connection to
* the database. This function will close the database, free the resources and
/**
* nm_edata_free - Free data attached to an Email
- * @param ptr Email data
+ * @param[out] ptr Email data
*
* Each email has an attached NmEmailData, which contains things like the tags
* (labels).
/**
* nm_get_all_tags - Fill a list with all notmuch tags
- * @param m Mailbox
- * @param tag_list List of tags
- * @param tag_count Number of tags
+ * @param[in] m Mailbox
+ * @param[out] tag_list List of tags
+ * @param[out] tag_count Number of tags
* @retval 0 Success
* @retval -1 Failure
*
/**
* cleanup_quote - Free a quote list
- * @param quote_list Quote list to free
+ * @param[out] quote_list Quote list to free
*/
static void cleanup_quote(struct QClass **quote_list)
{
/**
* classify_quote - Find a style for a string
- * @param[in] quote_list List of quote colours
+ * @param[out] quote_list List of quote colours
* @param[in] qptr String to classify
* @param[in] length Length of string
* @param[out] force_redraw Set to true if a screen redraw is needed
/**
* resolve_types - Determine the style for a line of text
- * @param buf Formatted text
- * @param raw Raw text
- * @param line_info Line info array
- * @param n Line number (index into line_info)
- * @param last Last line
- * @param quote_list List of quote colours
- * @param q_level Quote level
- * @param force_redraw Set to true if a screen redraw is needed
- * @param q_classify If true, style the text
+ * @param[in] buf Formatted text
+ * @param[in] raw Raw text
+ * @param[in] line_info Line info array
+ * @param[in] n Line number (index into line_info)
+ * @param[in] last Last line
+ * @param[out] quote_list List of quote colours
+ * @param[out] q_level Quote level
+ * @param[out] force_redraw Set to true if a screen redraw is needed
+ * @param[in] q_classify If true, style the text
*/
static void resolve_types(char *buf, char *raw, struct Line *line_info, int n,
int last, struct QClass **quote_list, int *q_level,
/**
* format_line - Display a line of text in the pager
- * @param[in] line_info Line info
+ * @param[out] line_info Line info
* @param[in] n Line number (index into line_info)
* @param[in] buf Text to display
* @param[in] flags Flags, e.g. #MUTT_PAGER_NOWRAP
/**
* display_line - Print a line on screen
- * @param f File to read from
- * @param last_pos Offset into file
- * @param line_info Line attributes
- * @param n Line number
- * @param last Last line
- * @param max Maximum number of lines
- * @param flags See below
- * @param quote_list Email quoting style
- * @param q_level Level of quoting
- * @param force_redraw Force a repaint
- * @param search_re Regex to highlight
- * @param pager_window Window to draw into
+ * @param[in] f File to read from
+ * @param[out] last_pos Offset into file
+ * @param[out] line_info Line attributes
+ * @param[in] n Line number
+ * @param[out] last Last line
+ * @param[out] max Maximum number of lines
+ * @param[in] flags See below
+ * @param[out] quote_list Email quoting style
+ * @param[out] q_level Level of quoting
+ * @param[out] force_redraw Force a repaint
+ * @param[out] search_re Regex to highlight
+ * @param[in] pager_window Window to draw into
* @retval -1 EOF was reached
* @retval 0 normal exit, line was not displayed
* @retval >0 normal exit, line was displayed
/**
* mutt_pattern_free - Free a Pattern
- * @param pat Pattern to free
+ * @param[out] pat Pattern to free
*/
void mutt_pattern_free(struct Pattern **pat)
{
/**
* pop_adata_free - Free data attached to the Mailbox
- * @param ptr POP data
+ * @param[out] ptr POP data
*
* The PopAccountData struct stores global POP data, such as the connection to
* the database. This function will close the database, free the resources and
/**
* pop_edata_free - Free data attached to an Email
- * @param ptr Email data
+ * @param[out] ptr Email data
*
* Each email has an attached PopEmailData, which contains things like the tags
* (labels).
/**
* mutt_get_postponed - Recall a postponed message
- * @param ctx Context info, used when recalling a message to which we reply
- * @param hdr envelope/attachment info for recalled message
- * @param cur if message was a reply, `cur' is set to the message which `hdr' is in reply to
- * @param fcc fcc for the recalled message
- * @param fcclen max length of fcc
+ * @param[in] ctx Context info, used when recalling a message to which we reply
+ * @param[in] hdr envelope/attachment info for recalled message
+ * @param[out] cur if message was a reply, `cur' is set to the message which `hdr' is in reply to
+ * @param[in] fcc fcc for the recalled message
+ * @param[in] fcclen max length of fcc
* @retval -1 Error/no messages
* @retval 0 Normal exit
* @retval #SEND_REPLY Recalled message is a reply
/**
* free_query - Free a Query
- * @param query Query to free
+ * @param[out] query Query to free
*/
static void free_query(struct Query **query)
{
/**
* mix_add_entry - Add an entry to the Remailer list
- * @param[in] type2_list Remailer list to add to
+ * @param[out] type2_list Remailer list to add to
* @param[in] entry Remailer to add
* @param[out] slots Total number of slots
* @param[out] used Number of slots used
/**
* mix_free_remailer - Free a Remailer
- * @param r Remailer to free
+ * @param[out] r Remailer to free
*/
static void mix_free_remailer(struct Remailer **r)
{
/**
* mix_free_type2_list - Free a Remailer List
- * @param ttlp Remailer List to free
+ * @param[out] ttlp Remailer List to free
*/
static void mix_free_type2_list(struct Remailer ***ttlp)
{
/**
* mix_screen_coordinates - Get the screen coordinates to place a chain
- * @param type2_list Remailer List
- * @param coordsp On screen coordinates
- * @param chain Chain
- * @param i Index in chain
+ * @param[out] type2_list Remailer List
+ * @param[out] coordsp On screen coordinates
+ * @param[in] chain Chain
+ * @param[in] i Index in chain
*/
static void mix_screen_coordinates(struct Remailer **type2_list, struct Coord **coordsp,
struct MixChain *chain, int i)
/**
* mix_redraw_ce - Redraw the Remailer chain
- * @param type2_list Remailer List
- * @param coords Screen Coordinates
- * @param chain Chain
- * @param i Index in chain
- * @param selected true, if this item is selected
+ * @param[out] type2_list Remailer List
+ * @param[in] coords Screen Coordinates
+ * @param[in] chain Chain
+ * @param[in] i Index in chain
+ * @param[in] selected true, if this item is selected
*/
static void mix_redraw_ce(struct Remailer **type2_list, struct Coord *coords,
struct MixChain *chain, int i, bool selected)
/**
* mix_redraw_chain - Redraw the chain on screen
- * @param type2_list Remailer List
- * @param coords Where to draw the list on screen
- * @param chain Chain to display
- * @param cur Chain index of current selection
+ * @param[out] type2_list Remailer List
+ * @param[in] coords Where to draw the list on screen
+ * @param[in] chain Chain to display
+ * @param[in] cur Chain index of current selection
*/
static void mix_redraw_chain(struct Remailer **type2_list, struct Coord *coords,
struct MixChain *chain, int cur)
/**
* mix_chain_add - Add a host to the chain
- * @param chain Chain to add to
- * @param s Hostname
- * @param type2_list Remailer List
+ * @param[in] chain Chain to add to
+ * @param[in] s Hostname
+ * @param[out] type2_list Remailer List
* @retval 0 Success
* @retval -1 Error
*/
/**
* rfc1524_free_entry - Deallocate an struct Rfc1524MailcapEntry
- * @param entry Rfc1524MailcapEntry to deallocate
+ * @param[out] entry Rfc1524MailcapEntry to deallocate
*/
void rfc1524_free_entry(struct Rfc1524MailcapEntry **entry)
{
#ifdef HAVE_VASPRINTF
/**
* safe_asprintf - Format a string, allocating space as necessary
- * @param strp New string saved here
- * @param fmt Format string
- * @param ... Format arguments
+ * @param[out] strp New string saved here
+ * @param[in] fmt Format string
+ * @param[in] ... Format arguments
* @retval num Characters written
* @retval -1 Error
*/
/**
* edit_address - Edit an email address
- * @param a Address to edit
- * @param field Prompt for user
+ * @param[out] a Address to edit
+ * @param[in] field Prompt for user
* @retval 0 Success
* @retval -1 Failure
*/
/**
* default_to - Generate default email addresses
- * @param to 'To' address
- * @param env Envelope to populate
- * @param flags Flags, e.g. #SEND_LIST_REPLY
- * @param hmfupto If true, add 'followup-to' address to 'to' address
+ * @param[out] to 'To' address
+ * @param[in] env Envelope to populate
+ * @param[in] flags Flags, e.g. #SEND_LIST_REPLY
+ * @param[in] hmfupto If true, add 'followup-to' address to 'to' address
* @retval 0 Success
* @retval -1 Aborted
*/
/**
* add_args - Add an Address to a dynamic array
- * @param args Array to add to
- * @param argslen Number of entries in array
- * @param argsmax Allocated size of the array
- * @param addr Address to add
+ * @param[out] args Array to add to
+ * @param[out] argslen Number of entries in array
+ * @param[out] argsmax Allocated size of the array
+ * @param[in] addr Address to add
* @retval ptr Updated array
*/
static char **add_args(char **args, size_t *argslen, size_t *argsmax, struct Address *addr)
/**
* add_option - Add a string to a dynamic array
- * @param args Array to add to
- * @param argslen Number of entries in array
- * @param argsmax Allocated size of the array
- * @param s string to add
+ * @param[out] args Array to add to
+ * @param[out] argslen Number of entries in array
+ * @param[out] argsmax Allocated size of the array
+ * @param[in] s string to add
* @retval ptr Updated array
*
* @note The array may be realloc()'d