]> granicus.if.org Git - neomutt/commitdiff
doxy: add comment blocks
authorRichard Russon <rich@flatcap.org>
Wed, 7 Aug 2019 20:35:32 +0000 (21:35 +0100)
committerRichard Russon <rich@flatcap.org>
Mon, 19 Aug 2019 23:14:27 +0000 (00:14 +0100)
17 files changed:
autocrypt/autocrypt.c
autocrypt/autocrypt.h
autocrypt/autocrypt_acct_menu.c
autocrypt/autocrypt_db.c
autocrypt/autocrypt_gpgme.c
autocrypt/autocrypt_private.h
autocrypt/autocrypt_schema.c
compose.c
email/envelope.c
email/envelope.h
email/parse.c
functions.h
globals.h
mutt/regex.c
ncrypt/crypt.c
ncrypt/crypt_gpgme.c
send.c

index 84502e1247dfd79a49e596b9ac9c0d5a717fa42c..92ac9e31caee85a8c1f0038731a34f3c6e60d391 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @file
- * XXX
+ * Autocrypt feature
  *
  * @authors
  * Copyright (C) 2019 Kevin J. McCarthy <kevin@8t8.us>
 #include "ncrypt/ncrypt.h"
 #include "send.h"
 
+/**
+ * autocrypt_dir_init - Initialise an Autocrypt directory
+ * @param can_create If true, the directory may be created
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 static int autocrypt_dir_init(int can_create)
 {
   int rc = 0;
@@ -75,6 +81,12 @@ static int autocrypt_dir_init(int can_create)
   return rc;
 }
 
+/**
+ * mutt_autocrypt_init - Initialise Autocrypt
+ * @param can_create If true, directories may be created
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_init(int can_create)
 {
   if (AutocryptDB)
@@ -100,14 +112,23 @@ bail:
   return -1;
 }
 
+/**
+ * mutt_autocrypt_cleanup - Shutdown Autocrypt
+ */
 void mutt_autocrypt_cleanup(void)
 {
   mutt_autocrypt_db_close();
 }
 
-/* Creates a brand new account.
- * This is used the first time autocrypt is initialized, and
- * in the account menu. */
+/**
+ * mutt_autocrypt_account_init - Create a new Autocrypt account
+ * @param prompt Prompt the user
+ * @retval  0 Success
+ * @retval -1 Error
+ *
+ * This is used the first time autocrypt is initialized,
+ * and in the account menu.
+ */
 int mutt_autocrypt_account_init(int prompt)
 {
   struct Address *addr = NULL;
@@ -218,6 +239,13 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_process_autocrypt_header - Parse an Autocrypt email header
+ * @param e   Email
+ * @param env Envelope
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_process_autocrypt_header(struct Email *e, struct Envelope *env)
 {
   struct AutocryptHeader *ac_hdr, *valid_ac_hdr = NULL;
@@ -359,6 +387,13 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_process_gossip_header - Parse an Autocrypt email gossip header
+ * @param e            Email
+ * @param prot_headers Envelope with protected headers
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_process_gossip_header(struct Email *hdr, struct Envelope *prot_headers)
 {
   struct Envelope *env;
@@ -505,9 +540,14 @@ cleanup:
   return rc;
 }
 
-/* Returns the recommendation.  If the recommendataion is > NO and
- * keylist is not NULL, keylist will be populated with the autocrypt
- * keyids
+/**
+ * mutt_autocrypt_ui_recommendation - Get the recommended action for an Email
+ * @param[in]  e       Email
+ * @param[out] keylist List of Autocrypt key ids
+ * @retval num Recommendation, e.g. #AUTOCRYPT_REC_AVAILABLE
+ *
+ * If the recommendataion is > NO and keylist is not NULL, keylist will be
+ * populated with the autocrypt keyids.
  */
 enum AutocryptRec mutt_autocrypt_ui_recommendation(struct Email *hdr, char **keylist)
 {
@@ -615,6 +655,12 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_set_sign_as_default_key - Set the Autocrypt default key for signing
+ * @param e Email
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_set_sign_as_default_key(struct Email *hdr)
 {
   int rc = -1;
@@ -644,6 +690,13 @@ cleanup:
   return rc;
 }
 
+/**
+ * write_autocrypt_header_line - Write an Autocrypt header to a file
+ * @param fp             File to write to
+ * @param addr           Email address
+ * @param prefer_encrypt Whether encryption is preferred
+ * @param keydata        Raw Autocrypt data
+ */
 static void write_autocrypt_header_line(FILE *fp, const char *addr,
                                         int prefer_encrypt, const char *keydata)
 {
@@ -668,6 +721,13 @@ static void write_autocrypt_header_line(FILE *fp, const char *addr,
   }
 }
 
+/**
+ * mutt_autocrypt_write_autocrypt_header - Write the Autocrypt header to a file
+ * @param env Envelope
+ * @param fp  File to write to
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_write_autocrypt_header(struct Envelope *env, FILE *fp)
 {
   int rc = -1;
@@ -698,6 +758,13 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_write_gossip_headers - Write the Autocrypt gossip headers to a file
+ * @param env Envelope
+ * @param fp  File to write to
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_write_gossip_headers(struct Envelope *env, FILE *fp)
 {
   struct AutocryptHeader *gossip;
@@ -714,6 +781,12 @@ int mutt_autocrypt_write_gossip_headers(struct Envelope *env, FILE *fp)
   return 0;
 }
 
+/**
+ * mutt_autocrypt_generate_gossip_list - Create the gossip list headers
+ * @param e Email
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_generate_gossip_list(struct Email *hdr)
 {
   int rc = -1;
@@ -739,8 +812,7 @@ int mutt_autocrypt_generate_gossip_list(struct Email *hdr)
 
   TAILQ_FOREACH(recip, &recips, entries)
   {
-    /* At this point, we just accept missing keys and include what
-     * we can. */
+    /* At this point, we just accept missing keys and include what we can. */
     if (mutt_autocrypt_db_peer_get(recip, &peer) <= 0)
       continue;
 
@@ -797,7 +869,10 @@ int mutt_autocrypt_generate_gossip_list(struct Email *hdr)
   return rc;
 }
 
-/* This is invoked during the first autocrypt initialization,
+/**
+ * mutt_autocrypt_scan_mailboxes - Scan mailboxes for Autocrypt headers
+ *
+ * This is invoked during the first autocrypt initialization,
  * to scan one or more mailboxes for autocrypt headers.
  *
  * Due to the implementation, header-cached headers are not scanned,
@@ -827,9 +902,7 @@ void mutt_autocrypt_scan_mailboxes(void)
   scan = mutt_yesorno(_("Scan a mailbox for autocrypt headers?"), MUTT_YES);
   while (scan == MUTT_YES)
   {
-    /* L10N:
-       The prompt for a mailbox to scan for Autocrypt: headers
-    */
+    // L10N: The prompt for a mailbox to scan for Autocrypt: headers
     if ((!mutt_buffer_enter_fname(_("Scan mailbox"), folderbuf, 1)) &&
         mutt_buffer_len(folderbuf))
     {
index c037517b05e9d6ed2998c4cac2f9846f2b8594b1..1a153246254b0b6b0824df4a5dbb1f0254883005 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @file
- * XXX
+ * Autocrypt feature
  *
  * @authors
  * Copyright (C) 2019 Kevin J. McCarthy <kevin@8t8.us>
@@ -31,6 +31,9 @@ struct Email;
 struct Envelope;
 WHERE sqlite3 *AutocryptDB;
 
+/**
+ * struct AutocryptAccount - Autocrypt account
+ */
 struct AutocryptAccount
 {
   char *email_addr;
@@ -40,6 +43,9 @@ struct AutocryptAccount
   int enabled;
 };
 
+/**
+ * struct AutocryptPeer - Autocrypt peer
+ */
 struct AutocryptPeer
 {
   char *email_addr;
@@ -53,6 +59,9 @@ struct AutocryptPeer
   char *gossip_keydata;
 };
 
+/**
+ * struct AutocryptPeerHistory - Autocrypt peer history
+ */
 struct AutocryptPeerHistory
 {
   char *peer_email_addr;
@@ -61,6 +70,9 @@ struct AutocryptPeerHistory
   char *keydata;
 };
 
+/**
+ * struct AutocryptGossipHistory - Autocrypt gossip history
+ */
 struct AutocryptGossipHistory
 {
   char *peer_email_addr;
@@ -70,13 +82,16 @@ struct AutocryptGossipHistory
   char *gossip_keydata;
 };
 
+/**
+ * enum AutocryptRec - Recommendation
+ */
 enum AutocryptRec
 {
-  AUTOCRYPT_REC_OFF,
-  AUTOCRYPT_REC_NO,
-  AUTOCRYPT_REC_DISCOURAGE,
-  AUTOCRYPT_REC_AVAILABLE,
-  AUTOCRYPT_REC_YES
+  AUTOCRYPT_REC_OFF,        ///< No recommendations
+  AUTOCRYPT_REC_NO,         ///< Do no use Autocrypt
+  AUTOCRYPT_REC_DISCOURAGE, ///< Prefer not to use Autocrypt
+  AUTOCRYPT_REC_AVAILABLE,  ///< Autocrypt is available
+  AUTOCRYPT_REC_YES,        ///< Autocrypt should be used
 };
 
 int mutt_autocrypt_init (int);
index 21d6f9a64c9a988cf0ceeb5a3ccfc3aef16166fb..8536573a5cc43c3b36988fb86c06cafedf2fff26 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @file
- * XXX
+ * Autocrypt account menu
  *
  * @authors
  * Copyright (C) 2019 Kevin J. McCarthy <kevin@8t8.us>
@@ -38,6 +38,9 @@
 #include "muttlib.h"
 #include "opcodes.h"
 
+/**
+ * struct Entry - An entry in the Autocrypt account Menu
+ */
 struct Entry
 {
   int tagged; /* TODO */
@@ -68,6 +71,17 @@ static const struct Mapping AutocryptAcctHelp[] = {
   { NULL, 0 }
 };
 
+/**
+ * account_format_str - Format a string for the Autocrypt account list - Implements ::format_t
+ *
+ * | Expando | Description
+ * |:--------|:-----------------------------------------------------------------
+ * | \%a     | Email address                 
+ * | \%k     | Gpg keyid                     
+ * | \%n     | Current entry number          
+ * | \%p     | Prefer-encrypt flag           
+ * | \%s     | Status flag (active/inactive) 
+ */
 static const char *account_format_str(char *dest, size_t destlen, size_t col, int cols,
                                       char op, const char *src, const char *fmt,
                                       const char *ifstring, const char *elsestring,
@@ -122,6 +136,13 @@ static const char *account_format_str(char *dest, size_t destlen, size_t col, in
   return (src);
 }
 
+/**
+ * account_entry - Create a line for the Autocrypt account menu
+ * @param buf    Buffer to save the string
+ * @param buflen Length of the buffer
+ * @param menu   Menu to use
+ * @param num    Line in the Menu
+ */
 static void account_entry(char *s, size_t slen, struct Menu *m, int num)
 {
   struct Entry *entry = &((struct Entry *) m->data)[num];
@@ -131,6 +152,10 @@ static void account_entry(char *s, size_t slen, struct Menu *m, int num)
                       (unsigned long) entry, MUTT_FORMAT_ARROWCURSOR);
 }
 
+/**
+ * create_menu - Create the Autocrypt account Menu
+ * @retval ptr New Menu
+ */
 static struct Menu *create_menu(void)
 {
   struct Menu *menu = NULL;
@@ -145,9 +170,7 @@ static struct Menu *create_menu(void)
   menu = mutt_menu_new(MENU_AUTOCRYPT_ACCT);
   menu->menu_make_entry = account_entry;
   /* menu->tag = account_tag; */
-  /* L10N:
-     Autocrypt Account Management Menu title
-  */
+  // L10N: Autocrypt Account Management Menu title
   menu->title = _("Autocrypt Accounts");
   helpstr = mutt_mem_malloc(256);
   menu->help = mutt_compile_help(helpstr, 256, MENU_AUTOCRYPT_ACCT, AutocryptAcctHelp);
@@ -160,8 +183,7 @@ static struct Menu *create_menu(void)
     entries[i].num = i + 1;
     /* note: we are transfering the account pointer to the entries
      * array, and freeing the accounts array below.  the account
-     * will be freed in free_menu().
-     */
+     * will be freed in free_menu().  */
     entries[i].account = accounts[i];
 
     entries[i].addr = mutt_addr_new();
@@ -175,6 +197,10 @@ static struct Menu *create_menu(void)
   return menu;
 }
 
+/**
+ * free_menu - Free the Autocrypt account Menu
+ * @param menu Menu to free
+ */
 static void free_menu(struct Menu **menu)
 {
   int i;
@@ -193,6 +219,10 @@ static void free_menu(struct Menu **menu)
   mutt_menu_destroy(menu);
 }
 
+/**
+ * toggle_active - Toggle whether an Autocrypt account is active
+ * @param entry Menu Entry for the account
+ */
 static void toggle_active(struct Entry *entry)
 {
   entry->account->enabled = !entry->account->enabled;
@@ -207,6 +237,10 @@ static void toggle_active(struct Entry *entry)
   }
 }
 
+/**
+ * toggle_prefer_encrypt - Toggle whether an Autocrypt account prefers encryption
+ * @param entry Menu Entry for the account
+ */
 static void toggle_prefer_encrypt(struct Entry *entry)
 {
   entry->account->prefer_encrypt = !entry->account->prefer_encrypt;
@@ -217,6 +251,9 @@ static void toggle_prefer_encrypt(struct Entry *entry)
   }
 }
 
+/**
+ * mutt_autocrypt_account_menu - Display the Autocrypt account Menu
+ */
 void mutt_autocrypt_account_menu(void)
 {
   struct Menu *menu;
@@ -255,9 +292,7 @@ void mutt_autocrypt_account_menu(void)
         {
           entry = (struct Entry *) (menu->data) + menu->current;
           snprintf(msg, sizeof(msg),
-                   /* L10N:
-                       Confirmation message when deleting an autocrypt account
-                    */
+                   // L10N: Confirmation message when deleting an autocrypt account
                    _("Really delete account \"%s\"?"), entry->addr->mailbox);
           if (mutt_yesorno(msg, MUTT_NO) != MUTT_YES)
             break;
index 89e1424c7ca94ec37b9456ffe4e5968f470fb661..38ed48ead8639c4e6f98b7a7399ccc9d9a4a2d08 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @file
- * XXX
+ * Autocrypt database handling
  *
  * @authors
  * Copyright (C) 2019 Kevin J. McCarthy <kevin@8t8.us>
@@ -42,14 +42,20 @@ static sqlite3_stmt *PeerUpdateStmt;
 static sqlite3_stmt *PeerHistoryInsertStmt;
 static sqlite3_stmt *GossipHistoryInsertStmt;
 
+/**
+ * autocrypt_db_create - Create an Autocrypt sqlite database
+ * @param db_path Path to database file
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 static int autocrypt_db_create(const char *db_path)
 {
   if (sqlite3_open_v2(db_path, &AutocryptDB,
                       SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL) != SQLITE_OK)
   {
     /* L10N:
-       %s is the path to the database.  For some reason sqlite3 failed
-       to open that database file.
+       %s is the path to the database.
+       For some reason sqlite3 failed to open that database file.
     */
     mutt_error(_("Unable to open autocrypt database %s"), db_path);
     return -1;
@@ -57,6 +63,12 @@ static int autocrypt_db_create(const char *db_path)
   return mutt_autocrypt_schema_init();
 }
 
+/**
+ * mutt_autocrypt_db_init - Initialise the Autocrypt sqlite database
+ * @param can_create If true, the directory may be created
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_init(int can_create)
 {
   int rc = -1;
@@ -105,6 +117,9 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_close - Close the Autocrypt sqlite database connection
+ */
 void mutt_autocrypt_db_close(void)
 {
   if (!AutocryptDB)
@@ -136,6 +151,10 @@ void mutt_autocrypt_db_close(void)
   AutocryptDB = NULL;
 }
 
+/**
+ * mutt_autocrypt_db_normalize_addr - Normalise an Email Address
+ * @param a Address to normalise
+ */
 void mutt_autocrypt_db_normalize_addr(struct Address *a)
 {
   mutt_addr_to_local(a);
@@ -143,6 +162,10 @@ void mutt_autocrypt_db_normalize_addr(struct Address *a)
   mutt_addr_to_intl(a);
 }
 
+/**
+ * mutt_autocrypt_db_normalize_addrlist - Normalise a list of Email Addresses
+ * @param al List of Addresses to normalise
+ */
 void mutt_autocrypt_db_normalize_addrlist(struct AddressList *al)
 {
   mutt_addrlist_to_local(al);
@@ -156,13 +179,18 @@ void mutt_autocrypt_db_normalize_addrlist(struct AddressList *al)
   mutt_addrlist_to_intl(al, NULL);
 }
 
-/* The autocrypt spec says email addresses should be
+/**
+ * copy_normalize_addr - Copy a normalised Email Address
+ * @param addr Address to normalise and copy
+ * @retval ptr Copy of the Address
+ *
+ * The autocrypt spec says email addresses should be
  * normalized to lower case and stored in idna form.
  *
  * In order to avoid visible changes to addresses in the index,
  * we make a copy of the address before lowercasing it.
  *
- * The return value must be freed.
+ * @note The return value must be freed
  */
 static struct Address *copy_normalize_addr(struct Address *addr)
 {
@@ -172,8 +200,7 @@ static struct Address *copy_normalize_addr(struct Address *addr)
    * this function we copy only the address passed in.
    *
    * The normalize_addrlist above is extended to work on a list
-   * because of requirements in autocrypt.c
-   */
+   * because of requirements in autocrypt.c */
 
   norm_addr = mutt_addr_new();
   norm_addr->mailbox = mutt_str_strdup(addr->mailbox);
@@ -184,18 +211,31 @@ static struct Address *copy_normalize_addr(struct Address *addr)
   return norm_addr;
 }
 
-/* Helper that converts to char * and mutt_str_strdups the result */
+/**
+ * strdup_column_text - Copy a string from the database
+ * @param stmt  Sqlite database statement
+ * @param index Database row
+ * @retval ptr Copy of string
+ */
 static char *strdup_column_text(sqlite3_stmt *stmt, int index)
 {
   const char *val = (const char *) sqlite3_column_text(stmt, index);
   return mutt_str_strdup(val);
 }
 
+/**
+ * mutt_autocrypt_db_account_new - Create a new AutocryptAccount
+ * @retval ptr New AutocryptAccount
+ */
 struct AutocryptAccount *mutt_autocrypt_db_account_new(void)
 {
   return mutt_mem_calloc(1, sizeof(struct AutocryptAccount));
 }
 
+/**
+ * mutt_autocrypt_db_account_free - Free an AutocryptAccount
+ * @param account Account to free
+ */
 void mutt_autocrypt_db_account_free(struct AutocryptAccount **account)
 {
   if (!account || !*account)
@@ -206,6 +246,13 @@ void mutt_autocrypt_db_account_free(struct AutocryptAccount **account)
   FREE(account);
 }
 
+/**
+ * mutt_autocrypt_db_account_get - Get Autocrypt Account data from the database
+ * @param[in]  addr    Email Address to lookup
+ * @param[out] account Matched account
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_account_get(struct Address *addr, struct AutocryptAccount **account)
 {
   int rc = -1, result;
@@ -255,6 +302,15 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_account_insert - Insert an Account into the Autocrypt database
+ * @param addr           Email Address for the account
+ * @param keyid          Autocrypt KeyID
+ * @param keydata        Autocrypt key data
+ * @param prefer_encrypt Whether the account prefers encryption
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_account_insert(struct Address *addr, const char *keyid,
                                      const char *keydata, int prefer_encrypt)
 {
@@ -299,6 +355,12 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_account_update - Update Account info in the Autocrypt database
+ * @param acct Autocrypt Account data
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_account_update(struct AutocryptAccount *acct)
 {
   int rc = -1;
@@ -337,6 +399,12 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_account_delete - Delete an Account from the Autocrypt database
+ * @param acct Account to delete
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_account_delete(struct AutocryptAccount *acct)
 {
   int rc = -1;
@@ -363,6 +431,13 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_account_get_all - Get all accounts from an Autocrypt database
+ * @param[out] accounts     List of accounts
+ * @param[out] num_accounts Number of accounts
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_account_get_all(struct AutocryptAccount ***accounts, int *num_accounts)
 {
   int rc = -1, result;
@@ -421,11 +496,19 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_peer_new - Create a new AutocryptPeer
+ * @retval ptr New AutocryptPeer
+ */
 struct AutocryptPeer *mutt_autocrypt_db_peer_new(void)
 {
   return mutt_mem_calloc(1, sizeof(struct AutocryptPeer));
 }
 
+/**
+ * mutt_autocrypt_db_peer_free - Free an AutocryptPeer
+ * @param peer AutocryptPeer to free
+ */
 void mutt_autocrypt_db_peer_free(struct AutocryptPeer **peer)
 {
   if (!peer || !*peer)
@@ -438,6 +521,14 @@ void mutt_autocrypt_db_peer_free(struct AutocryptPeer **peer)
   FREE(peer);
 }
 
+/**
+ * mutt_autocrypt_db_peer_get - Get peer info from the Autocrypt database
+ * @param[in]  addr Email Address to look up
+ * @param[out] peer Matching Autocrypt Peer
+ * @retval  0 Success, no matches
+ * @retval  1 Success, a match
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_peer_get(struct Address *addr, struct AutocryptPeer **peer)
 {
   int rc = -1, result;
@@ -495,6 +586,13 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_peer_insert - Insert a peer into the Autocrypt database
+ * @param addr Email Address
+ * @param peer AutocryptPeer to insert
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_peer_insert(struct Address *addr, struct AutocryptPeer *peer)
 {
   int rc = -1;
@@ -550,6 +648,12 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_peer_update - Update the peer info in an Autocrypt database
+ * @param peer AutocryptPeer to update
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_peer_update(struct AutocryptPeer *peer)
 {
   int rc = -1;
@@ -600,11 +704,19 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_peer_history_new - Create a new AutocryptPeerHistory
+ * @retval ptr New AutocryptPeerHistory
+ */
 struct AutocryptPeerHistory *mutt_autocrypt_db_peer_history_new(void)
 {
   return mutt_mem_calloc(1, sizeof(struct AutocryptPeerHistory));
 }
 
+/**
+ * mutt_autocrypt_db_peer_history_free - Free an AutocryptPeerHistory
+ * @param peerhist AutocryptPeerHistory to free
+ */
 void mutt_autocrypt_db_peer_history_free(struct AutocryptPeerHistory **peerhist)
 {
   if (!peerhist || !*peerhist)
@@ -615,6 +727,13 @@ void mutt_autocrypt_db_peer_history_free(struct AutocryptPeerHistory **peerhist)
   FREE(peerhist);
 }
 
+/**
+ * mutt_autocrypt_db_peer_history_insert - Insert peer history into the Autocrypt database
+ * @param addr     Email Address
+ * @param peerhist Peer history to insert
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_peer_history_insert(struct Address *addr,
                                           struct AutocryptPeerHistory *peerhist)
 {
@@ -658,11 +777,19 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_db_gossip_history_new - Create a new AutocryptGossipHistory
+ * @retval ptr New AutocryptGossipHistory
+ */
 struct AutocryptGossipHistory *mutt_autocrypt_db_gossip_history_new(void)
 {
   return mutt_mem_calloc(1, sizeof(struct AutocryptGossipHistory));
 }
 
+/**
+ * mutt_autocrypt_db_gossip_history_free - Free an AutocryptGossipHistory
+ * @param gossip_hist AutocryptGossipHistory to free
+ */
 void mutt_autocrypt_db_gossip_history_free(struct AutocryptGossipHistory **gossip_hist)
 {
   if (!gossip_hist || !*gossip_hist)
@@ -674,6 +801,13 @@ void mutt_autocrypt_db_gossip_history_free(struct AutocryptGossipHistory **gossi
   FREE(gossip_hist);
 }
 
+/**
+ * mutt_autocrypt_db_gossip_history_insert - Insert a gossip history into the Autocrypt database
+ * @param addr        Email Address
+ * @param gossip_hist Gossip history to insert
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_db_gossip_history_insert(struct Address *addr,
                                             struct AutocryptGossipHistory *gossip_hist)
 {
index 59f8d8f5eb79b49d498148436d000531b9c64c2b..58f312174b4d1348036b43960320e5057ea91c07 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @file
- * XXX
+ * Autocrypt GPGME handler
  *
  * @authors
  * Copyright (C) 2019 Kevin J. McCarthy <kevin@8t8.us>
 #include "globals.h"
 #include "ncrypt/crypt_gpgme.h"
 
+/**
+ * create_gpgme_context - Create a GPGME context
+ * @param ctx GPGME context to initialise
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 static int create_gpgme_context(gpgme_ctx_t *ctx)
 {
   gpgme_error_t err;
@@ -45,12 +51,23 @@ static int create_gpgme_context(gpgme_ctx_t *ctx)
   return 0;
 }
 
+/**
+ * mutt_autocrypt_gpgme_init - Initialise GPGME
+ */
 int mutt_autocrypt_gpgme_init(void)
 {
   pgp_gpgme_init();
   return 0;
 }
 
+/**
+ * export_keydata - Export Key data from GPGME into a Buffer
+ * @param ctx     GPGME context
+ * @param key     GPGME key
+ * @param keydata Buffer for results
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 static int export_keydata(gpgme_ctx_t ctx, gpgme_key_t key, struct Buffer *keydata)
 {
   int rc = -1;
@@ -86,7 +103,13 @@ cleanup:
   return rc;
 }
 
-/* TODO: not sure if this function will be useful in the future. */
+/**
+ * mutt_autocrypt_gpgme_export_key - Export a GPGME key
+ * @param keyid   GPGME Key id
+ * @param keydata Buffer for results
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_gpgme_export_key(const char *keyid, struct Buffer *keydata)
 {
   int rc = -1;
@@ -109,6 +132,14 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_gpgme_create_key - Create a GPGME key
+ * @param addr    Email Address
+ * @param keyid   Key id
+ * @param keydata Key data
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_gpgme_create_key(struct Address *addr, struct Buffer *keyid,
                                     struct Buffer *keydata)
 {
@@ -179,6 +210,13 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_gpgme_import_key - Read a key from GPGME
+ * @param keydata Buffer for key data
+ * @param keyid   Buffer for key id
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_gpgme_import_key(const char *keydata, struct Buffer *keyid)
 {
   int rc = -1;
@@ -214,6 +252,11 @@ cleanup:
   return rc;
 }
 
+/**
+ * mutt_autocrypt_gpgme_is_valid_key - Is a key id valid?
+ * @param keyid Key id to check
+ * @retval true If key id is valid
+ */
 int mutt_autocrypt_gpgme_is_valid_key(const char *keyid)
 {
   int rc = 0;
index 1e1db92ced32e484176e8b35a9b338ecb0873b6f..9e0c1080ccfeaacd467af02e83d0775d33fec87d 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @file
- * XXX
+ * Shared constants/structs that are private to Autocrypt
  *
  * @authors
  * Copyright (C) 2019 Kevin J. McCarthy <kevin@8t8.us>
index c6dc41b41db71bc00fadcb4d75928138dec0adb6..41a72f5eeced77980d300f8d13075db13a53bb0c 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * @file
- * XXX
+ * Autocrypt database schema
  *
  * @authors
  * Copyright (C) 2019 Kevin J. McCarthy <kevin@8t8.us>
@@ -26,6 +26,9 @@
 #include "autocrypt_private.h"
 #include "mutt/mutt.h"
 
+/**
+ * mutt_autocrypt_schema_init - Set up an Autocrypt database
+ */
 int mutt_autocrypt_schema_init(void)
 {
   const char *schema;
@@ -88,6 +91,11 @@ int mutt_autocrypt_schema_init(void)
   return 0;
 }
 
+/**
+ * mutt_autocrypt_schema_update - Update the version number of the Autocrypt database schema
+ * @retval  0 Success
+ * @retval -1 Error
+ */
 int mutt_autocrypt_schema_update(void)
 {
   sqlite3_stmt *stmt = NULL;
index 80de04ae088cba5414b4b74b6bc506f4338ad03e..f00f8ce285e990a8c09f59fa312d6900b50ab5cc 100644 (file)
--- a/compose.c
+++ b/compose.c
@@ -132,8 +132,8 @@ enum HeaderField
   HDR_FOLLOWUPTO, ///< "Followup-To:" field
   HDR_XCOMMENTTO, ///< "X-Comment-To:" field
 #endif
-  HDR_ATTACH_TITLE, /* the "-- Attachments" line */
-  HDR_ATTACH        /* where to start printing the attachments */
+  HDR_ATTACH_TITLE, ///< The "-- Attachments" line
+  HDR_ATTACH        ///< Where to start printing the attachments
 };
 
 int HeaderPadding[HDR_ATTACH_TITLE] = { 0 };
@@ -172,9 +172,7 @@ static const char *const Prompts[] = {
      than 15-20 character cells.  */
   N_("Sign as: "),
 #ifdef USE_AUTOCRYPT
-  /* L10N:
-     The compose menu autocrypt line
-   */
+  // L10N: The compose menu autocrypt line
   N_("Autocrypt: "),
 #endif
 #ifdef USE_NNTP
@@ -240,6 +238,9 @@ static const char *AutocryptRecUiFlags[] = {
 };
 #endif
 
+/**
+ * struct ComposeRedrawData - Keep track when the compose screen needs redrawing
+ */
 struct ComposeRedrawData
 {
   struct Email *email;
@@ -316,6 +317,10 @@ static void snd_make_entry(char *buf, size_t buflen, struct Menu *menu, int line
 }
 
 #ifdef USE_AUTOCRYPT
+/**
+ * autocrypt_compose_menu - Autocrypt compose settings
+ * @param e Email
+ */
 static void autocrypt_compose_menu(struct Email *e)
 {
   /* L10N:
@@ -354,7 +359,7 @@ static void autocrypt_compose_menu(struct Email *e)
 
 /**
  * redraw_crypt_lines - Update the encryption info in the compose window
- * @param e Email
+ * @param rd Email and other compose data
  */
 static void redraw_crypt_lines(struct ComposeRedrawData *rd)
 {
@@ -474,6 +479,10 @@ static void redraw_crypt_lines(struct ComposeRedrawData *rd)
 #endif
 }
 
+/**
+ * update_crypt_info - Update the crypto info
+ * @param rd Email and other compose data
+ */
 static void update_crypt_info(struct ComposeRedrawData *rd)
 {
   struct Email *e = rd->email;
@@ -487,8 +496,8 @@ static void update_crypt_info(struct ComposeRedrawData *rd)
     rd->autocrypt_rec = mutt_autocrypt_ui_recommendation(e, NULL);
 
     /* Anything that enables SEC_ENCRYPT or SEC_SIGN, or turns on SMIME
-    * overrides autocrypt, be it oppenc or the user having turned on
-    * those flags manually. */
+     * overrides autocrypt, be it oppenc or the user having turned on
+     * those flags manually. */
     if (e->security & (SEC_ENCRYPT | SEC_SIGN | APPLICATION_SMIME))
       e->security &= ~(SEC_AUTOCRYPT | SEC_AUTOCRYPT_OVERRIDE);
     else
@@ -610,8 +619,7 @@ static void draw_envelope_addr(int line, struct AddressList *al)
 
 /**
  * draw_envelope - Write the email headers to the compose window
- * @param e Email
- * @param fcc Fcc field
+ * @param rd  Email and other compose data
  */
 static void draw_envelope(struct ComposeRedrawData *rd)
 {
@@ -2173,8 +2181,7 @@ int mutt_compose_menu(struct Email *e, char *fcc, size_t fcclen, struct Email *e
 #ifdef USE_AUTOCRYPT
   /* This is a fail-safe to make sure the bit isn't somehow turned
    * on.  The user could have disabled the option after setting SEC_AUTOCRYPT,
-   * or perhaps resuming or replying to an autocrypt message.
-   */
+   * or perhaps resuming or replying to an autocrypt message.  */
   if (!C_Autocrypt)
     e->security &= ~SEC_AUTOCRYPT;
 #endif
index fa8732e8e01ac456a800c91b57850850d24830d9..9c4d8877e9125c13c3e22fe23f85d0c4f74f9534 100644 (file)
@@ -57,6 +57,10 @@ struct Envelope *mutt_env_new(void)
 }
 
 #ifdef USE_AUTOCRYPT
+/**
+ * mutt_free_autocrypthdr - Free an AutocryptHeader
+ * @param p AutocryptHeader to free
+ */
 void mutt_free_autocrypthdr(struct AutocryptHeader **p)
 {
   struct AutocryptHeader *cur;
index 73ec268a709e0be7a69be24811643257c927be1e..dd10beded521977b9b0f032dcf03e56161f848c1 100644 (file)
@@ -35,6 +35,9 @@
 #define MUTT_ENV_CHANGED_SUBJECT (1 << 3)  ///< Protected header update
 
 #ifdef USE_AUTOCRYPT
+/**
+ * struct AutocryptHeader - Parse Autocrypt header info
+ */
 struct AutocryptHeader
 {
   char *addr;
index 469437e20e9880c13e2295b332159e6e01416a9f..462e9137c056d2f383d6266fdfa3b639b258c12b 100644 (file)
@@ -95,8 +95,9 @@ void mutt_auto_subscribe(const char *mailto)
 
 /**
  * parse_parameters - Parse a list of Parameters
- * @param param Parameter list for the results
- * @param s String to parse
+ * @param param              Parameter list for the results
+ * @param s                  String to parse
+ * @param allow_value_spaces Allow values with spaces
  *
  * Autocrypt defines an irregular parameter format that doesn't follow the
  * rfc.  It splits keydata across multiple lines without parameter continuations.
@@ -163,8 +164,7 @@ static void parse_parameters(struct ParameterList *param, const char *s, int all
           {
             if (C_AssumedCharset)
             {
-              /* As iso-2022-* has a character of '"' with non-ascii state,
-               * ignore it. */
+              // As iso-2022-* has a character of '"' with non-ascii state, ignore it
               if (*s == 0x1b)
               {
                 if ((s[1] == '(') && ((s[2] == 'B') || (s[2] == 'J')))
@@ -547,6 +547,12 @@ void mutt_parse_content_type(const char *s, struct Body *ct)
 }
 
 #ifdef USE_AUTOCRYPT
+/**
+ * parse_autocrypt - Parse an Autocrypt header line
+ * @param head Autocrypt header to insert before
+ * @param s    Header string to parse
+ * @retval ptr New AutocryptHeader inserted before head
+ */
 static struct AutocryptHeader *parse_autocrypt(struct AutocryptHeader *head, const char *s)
 {
   struct AutocryptHeader *autocrypt = mutt_new_autocrypthdr();
index 9ac7d16e51a640239f0e16c70614cf6164513ca2..26e38ed4afbd19582f1a792bff03cdc22f94e763 100644 (file)
@@ -666,6 +666,9 @@ const struct Binding OpMix[] = { /* map: mixmaster */
 #endif /* MIXMASTER */
 
 #ifdef USE_AUTOCRYPT
+/**
+ * OpAutocryptAcct - Key bindings for the autocrypt account
+ */
 const struct Binding OpAutocryptAcct[] = { /* map: autocrypt account */
   { "create-account",        OP_AUTOCRYPT_CREATE_ACCT,       "c" },
   { "delete-account",        OP_AUTOCRYPT_DELETE_ACCT,       "D" },
index b7fa1944b69eebd4ef0ac9cfa965d85ad55e93ee..df686eafd0b59d04deaf4217d3d0c467579d44f0 100644 (file)
--- a/globals.h
+++ b/globals.h
@@ -97,8 +97,8 @@ WHERE char *C_Attribution;                   ///< Config: Message to start a rep
 WHERE char *C_AttributionLocale;             ///< Config: Locale for dates in the attribution message
 WHERE char *C_AttachFormat;                  ///< Config: printf-like format string for the attachment menu
 #ifdef USE_AUTOCRYPT
-WHERE char *C_AutocryptAcctFormat;
-WHERE char *C_AutocryptDir;
+WHERE char *C_AutocryptAcctFormat;           ///< Config: Format of the autocrypt account menu
+WHERE char *C_AutocryptDir;                  ///< Config: Location of autocrypt files, including the GPG keyring and sqlite database
 WHERE char *AutocryptSignAs;  /* This is used in ncrypt/crypt_gpgme.c */
 WHERE char *AutocryptDefaultKey;  /* Used for postponing messages */
 #endif
@@ -203,7 +203,7 @@ WHERE bool C_AsciiChars;                     ///< Config: Use plain ASCII charac
 WHERE bool C_Askbcc;                         ///< Config: Ask the user for the blind-carbon-copy recipients
 WHERE bool C_Askcc;                          ///< Config: Ask the user for the carbon-copy recipients
 #ifdef USE_AUTOCRYPT
-WHERE bool C_Autocrypt;
+WHERE bool C_Autocrypt;                      ///< Config: Enables the Autocrypt feature
 #endif
 WHERE bool C_Autoedit;                       ///< Config: Skip the initial compose menu and edit the email
 WHERE bool C_AutoTag;                        ///< Config: Automatically apply actions to all tagged messages
index 5179c29b51fd4afa81a8262a22bbaf2ffb2fba15..3eca86d8d01bbba3a28b80f6e065c19635020824 100644 (file)
@@ -589,7 +589,6 @@ int mutt_replacelist_remove(struct ReplaceList *rl, const char *pat)
  * @param str     String to apply regex on
  * @param nmatch  Length of matches
  * @param matches regmatch_t to hold match indices
- * @param flags   Type flags, e.g. #DT_REGEX_MATCH_CASE
  * @retval bool true if str match, false if str does not match
  */
 bool mutt_regex_capture(const struct Regex *regex, const char *str,
index 40fa0472d8ff907e9cad9689bd002c5242aad2f1..ef15b53455d03fd653a6b4f618c2aaa04674121c 100644 (file)
@@ -163,12 +163,11 @@ bool crypt_valid_passphrase(SecurityFlags flags)
 
 /**
  * mutt_protect - Encrypt and/or sign a message
- * @param e       Email
- * @param keylist List of keys to encrypt to (space-separated)
+ * @param e        Email
+ * @param keylist  List of keys to encrypt to (space-separated)
+ * @param postpone When true, signing is automatically disabled
  * @retval  0 Success
  * @retval -1 Error
- *
- * In postpone mode, signing is automatically disabled.
  */
 int mutt_protect(struct Email *e, char *keylist, int postpone)
 {
index 2c3d43a93b9f3a4cdbd7d831e3f8e5523daf5080..5afb36860d9810c81ddcd4e06f92d5c8bae5ac16 100644 (file)
@@ -2197,8 +2197,8 @@ restart:
   ciphertext = NULL;
   if (err != 0)
   {
-    /* Abort right away and silently.  Autocrypt will retry on the
-       * normal keyring. */
+    /* Abort right away and silently.
+     * Autocrypt will retry on the normal keyring. */
     if (OptAutocryptGpgme)
       goto cleanup;
     if (is_smime && !maybe_signed && (gpg_err_code(err) == GPG_ERR_NO_DATA))
diff --git a/send.c b/send.c
index 4c9efc4758b22350f7fcc0e20fc52fc39ff28ed9..5cb730c71c12207d23ffc326671d67591bca70a6 100644 (file)
--- a/send.c
+++ b/send.c
@@ -201,8 +201,9 @@ static void add_mailing_lists(struct AddressList *out, const struct AddressList
 
 /**
  * mutt_edit_address - Edit an email address
- * @param[in,out] al    AddressList to edit
- * @param[in]  field Prompt for user
+ * @param[in,out] al          AddressList to edit
+ * @param[in]  field          Prompt for user
+ * @param[in]  expand_aliases If true, expand Address aliases
  * @retval  0 Success
  * @retval -1 Failure
  */