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

Diff of /trunk/Src/wptSigList.cpp

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

revision 69 by twoaday, Sat Nov 5 12:28:12 2005 UTC revision 133 by twoaday, Mon Jan 9 09:15:29 2006 UTC
# Line 1  Line 1 
1  /* wptSigList.cpp - Listview for key signatures  /* wptSigList.cpp - Listview for key signatures
2   *      Copyright (C) 2001-2005 Timo Schulz   *      Copyright (C) 2001-2006 Timo Schulz
3   *      Copyright (C) 2005 g10 Code GmbH   *      Copyright (C) 2005, 2006 g10 Code GmbH
4   *   *
5   * This file is part of WinPT.   * This file is part of WinPT.
6   *   *
# Line 50  siglist_build (listview_ctrl_t * lv, HWN Line 50  siglist_build (listview_ctrl_t * lv, HWN
50      struct listview_column_s implist[] = {      struct listview_column_s implist[] = {
51          {0, 240, (char *)_("User ID")},          {0, 240, (char *)_("User ID")},
52          {1,  50, (char *)_("Valid")},          {1,  50, (char *)_("Valid")},
53          {2,  40, (char *)_("Class")},          {2,  44, (char *)_("Class")},
54          {3,  68, (char *)_("Creation")},          {3,  68, (char *)_("Creation")},
55          {4,  80, (char *)_("Key ID")},          {4,  80, (char *)_("Key ID")},
56          {5,  68, (char *)_("Expiration")},          {5,  68, (char *)_("Expiration")},
# Line 63  siglist_build (listview_ctrl_t * lv, HWN Line 63  siglist_build (listview_ctrl_t * lv, HWN
63      if (rc)      if (rc)
64          return rc;          return rc;
65      c->ctrl = ctrl;      c->ctrl = ctrl;
66      for ( j=0; implist[j].fieldname != NULL; j++ )      for  (j=0; implist[j].fieldname != NULL; j++)
67          listview_add_column( c, &implist[j] );          listview_add_column (c, &implist[j]);
68      listview_set_ext_style( c );      listview_set_ext_style (c);
69      *lv = c;      *lv = c;
70      return 0;      return 0;
71  }  }
# Line 75  siglist_build (listview_ctrl_t * lv, HWN Line 75  siglist_build (listview_ctrl_t * lv, HWN
75  void  void
76  siglist_delete( listview_ctrl_t lv )  siglist_delete( listview_ctrl_t lv )
77  {  {
78      if( lv ) {      if (lv) {
79          listview_release( lv );          listview_release (lv);
80      }      }
81  }  }
82    
# Line 103  indent_string (const char * old, int ilv Line 103  indent_string (const char * old, int ilv
103     control @lv.     control @lv.
104     Return value: 0 on success. */     Return value: 0 on success. */
105  static int  static int
106  siglist_add_key (listview_ctrl_t lv, gpgme_user_id_t uid, gpgme_key_sig_t ks)  siglist_add_key (listview_ctrl_t lv, gpgme_user_id_t uid,
107                     gpgme_key_sig_t ks, int pos)
108  {  {
109      gpgme_key_t key=NULL;      gpgme_key_t key=NULL;
110      char t[128];      char t[128];
111      const char *attr;      const char *attr;
112      const char *s;      const char *s;
113      int rc = 0, key_attr;      int key_attr;
114        int rc = 0;
115    
116      if (ks && !IS_UID_CERT (ks->sig_class))      if (ks && !IS_UID_CERT (ks->sig_class))
117          return 0;          return 0;
118        
119      rc = listview_add_item (lv, " ");      rc = listview_add_item_pos (lv, pos);
120      if( rc )          if (rc)
121          return rc;          return rc;
122    
123      attr = NULL;      attr = NULL;
# Line 129  siglist_add_key (listview_ctrl_t lv, gpg Line 131  siglist_add_key (listview_ctrl_t lv, gpg
131      if (attr && strlen (attr)) {      if (attr && strlen (attr)) {
132          char *uid_utf8 = utf8_to_wincp (attr, strlen (attr));          char *uid_utf8 = utf8_to_wincp (attr, strlen (attr));
133          char *p = uid? m_strdup (uid_utf8) : indent_string (uid_utf8, 2);          char *p = uid? m_strdup (uid_utf8) : indent_string (uid_utf8, 2);
134          listview_add_sub_item (lv, 0, 0, p);          listview_add_sub_item (lv, pos, 0, p);
135          free (uid_utf8);          free (uid_utf8);
136          free_if_alloc (p);          free_if_alloc (p);
137      }      }
138      else      else
139          listview_add_sub_item (lv, 0, 0, _("  user ID not found"));          listview_add_sub_item (lv, pos, 0, _("  user ID not found"));
140    
141      if (uid)      if (uid)
142          return 0;          return 0;
# Line 145  siglist_add_key (listview_ctrl_t lv, gpg Line 147  siglist_add_key (listview_ctrl_t lv, gpg
147      case GPG_ERR_BAD_SIGNATURE:s = "NO";    break;      case GPG_ERR_BAD_SIGNATURE:s = "NO";    break;
148      default:                   s = "ERROR"; break;      default:                   s = "ERROR"; break;
149      }      }
150      listview_add_sub_item( lv, 0, 1, s );      listview_add_sub_item (lv, pos, 1, s);
151    
152      switch (ks->sig_class) {      switch (ks->sig_class) {
153      case 0x10: strcpy (t, " "); break;      case 0x10: strcpy (t, " "); break;
# Line 159  siglist_add_key (listview_ctrl_t lv, gpg Line 161  siglist_add_key (listview_ctrl_t lv, gpg
161          strcat (t, "L");          strcat (t, "L");
162      /*if (key_attr & GPGME_SIGF_NREV)      /*if (key_attr & GPGME_SIGF_NREV)
163          strcat (t, "R");*/          strcat (t, "R");*/
164      listview_add_sub_item (lv, 0, 2, t);      listview_add_sub_item (lv, pos, 2, t);
165    
166      key_attr = ks->timestamp;      key_attr = ks->timestamp;
167      if( key_attr ) {      if( key_attr ) {
168          s = get_key_created( key_attr );          s = get_key_created (key_attr);
169          listview_add_sub_item( lv, 0, 3, s );          listview_add_sub_item (lv, pos, 3, s);
170      }      }
171            
172      attr = ks->keyid;      attr = ks->keyid;
173      if( attr && strlen( attr ) == 16 ) {      if (attr && strlen (attr) == 16) {
174          _snprintf (t, sizeof t -1, "0x%s", attr + 8);          _snprintf (t, sizeof (t) -1, "0x%s", attr + 8);
175          listview_add_sub_item( lv, 0, 4, t );          listview_add_sub_item (lv, pos, 4, t);
176      }      }
177    
178      key_attr = ks->expires;      key_attr = ks->expires;
179      if (key_attr) {      if (key_attr) {
180          s = get_key_created (key_attr);          s = get_key_created (key_attr);
181          listview_add_sub_item (lv, 0, 5, s);          listview_add_sub_item (lv, pos, 5, s);
182      }      }
183    
184      attr = get_key_pubalgo (ks->pubkey_algo);      attr = get_key_pubalgo (ks->pubkey_algo);
185      if( attr )      if (attr)
186          listview_add_sub_item( lv, 0, 6, (char *)attr );          listview_add_sub_item (lv, pos, 6, (char *)attr);
187        
188      return 0;      return 0;
189  }  }
190    
# Line 197  siglist_load (HWND ctrl, const char *key Line 199  siglist_load (HWND ctrl, const char *key
199      gpgme_user_id_t u;      gpgme_user_id_t u;
200      gpgme_key_sig_t s;      gpgme_key_sig_t s;
201      listview_ctrl_t lv;      listview_ctrl_t lv;
202        int pos = 0;
203      int rc;      int rc;
204    
205      if (siglist_build (&lv, ctrl))      if (siglist_build (&lv, ctrl))
# Line 205  siglist_load (HWND ctrl, const char *key Line 208  siglist_load (HWND ctrl, const char *key
208      if (rc)      if (rc)
209          BUG (NULL);          BUG (NULL);
210    
     /* XXX: the root item is at the end but should come first. */  
211      for (u=key->uids; u; u = u->next) {      for (u=key->uids; u; u = u->next) {
212          siglist_add_key (lv, u, NULL);          siglist_add_key (lv, u, NULL, pos++);
213          for (s = u->signatures; s; s = s->next) {          for (s = u->signatures; s; s = s->next) {
214              rc = siglist_add_key (lv, NULL, s);              if (!IS_UID_CERT (s->sig_class))
215                    continue;
216                rc = siglist_add_key (lv, NULL, s, pos++);
217              if (rc)              if (rc)
218                  break;                  break;
219          }          }

Legend:
Removed from v.69  
changed lines
  Added in v.133

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26