/[winpt]/trunk/Src/wptKeyManager.cpp
ViewVC logotype

Diff of /trunk/Src/wptKeyManager.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 23 by twoaday, Fri Sep 30 10:10:16 2005 UTC revision 24 by twoaday, Sat Oct 8 10:43:08 2005 UTC
# Line 1  Line 1 
1  /* wptKeyManager.cpp - Handy functions for the Key Manager dialog  /* wptKeyManager.cpp - Handy functions for the Key Manager dialog
2   *      Copyright (C) 2001-2005 Timo Schulz   *      Copyright (C) 2001-2005 Timo Schulz
3     *      Copyright (C) 2005 g10 Code GmbH
4   *   *
5   * This file is part of WinPT.   * This file is part of WinPT.
6   *   *
# Line 201  gpg_keylist_to_pattern (gpgme_key_t *rse Line 202  gpg_keylist_to_pattern (gpgme_key_t *rse
202    
203      for (i=0; rset[i] != NULL; i++)      for (i=0; rset[i] != NULL; i++)
204          n++;          n++;
205      p = (char *)calloc (1, n*(8+1)+n);      if (!n)
206            return NULL;
207        p = (char *)calloc (1, n*(16+1)+n+2);
208      if (!p)      if (!p)
209          return NULL;          return NULL;
210      for (i=0; rset[i] != NULL; i++) {      for (i=0; rset[i] != NULL; i++) {
# Line 530  leave: Line 533  leave:
533    
534  /* Mark the keys in @rset as deleted in the keycache. */  /* Mark the keys in @rset as deleted in the keycache. */
535  static void  static void
536  delete_keys_from_cache (gpgme_key_t *rset)  delete_keys_from_cache (gpgme_key_t *rset, size_t n)
537  {  {
538      gpgme_keycache_t pub = keycache_get_ctx (1);      gpgme_keycache_t pub = keycache_get_ctx (1);
539      int i=0;      int i=0;
540    
541      while (rset[i++] != NULL)      while (n-- > 0)
542          gpgme_keycache_delete_key (pub, rset[i]->subkeys->keyid);          gpgme_keycache_delete_key (pub, rset[i++]->subkeys->keyid);
543  }  }
544    
545    
# Line 621  km_delete_keys (listview_ctrl_t lv, HWND Line 624  km_delete_keys (listview_ctrl_t lv, HWND
624      err = gpgme_new (&ctx);      err = gpgme_new (&ctx);
625      if (err)      if (err)
626          BUG (NULL);          BUG (NULL);
627      for (i=0; i < n; i++) {          for (i=0; i < k_pos; i++) {
628          err = gpgme_op_delete (ctx, rset[i], with_seckey);          err = gpgme_op_delete (ctx, rset[i], with_seckey);
629          if (err)          if (err)
630              msg_box (dlg, gpgme_strerror (err), _("Key Manager"), MB_ERR);              msg_box (dlg, gpgme_strerror (err), _("Key Manager"), MB_ERR);
631          else          else
632              show_msg (dlg, 1500, _("GnuPG Status: Finished"));              show_msg (dlg, 1500, _("GnuPG Status: Finished"));
633            /* XXX: somethings 'conflict use' when k_pos > 3 */
634      }      }
635      gpgme_release (ctx);      gpgme_release (ctx);
636      listview_del_items (lv);      listview_del_items (lv);
637      delete_keys_from_cache (rset);      delete_keys_from_cache (rset, k_pos);
638      free (rset);      free (rset);
639    
640      return (int)err;      return (int)err;

Legend:
Removed from v.23  
changed lines
  Added in v.24

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26