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

Diff of /trunk/Src/wptMDSumDlg.cpp

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

revision 224 by twoaday, Mon May 1 12:22:18 2006 UTC revision 225 by twoaday, Tue Jun 6 13:37:59 2006 UTC
# Line 34  Line 34 
34  #include "wptErrors.h"  #include "wptErrors.h"
35    
36    
37    /* Symbolic column IDs. */
38    enum md_col_t {COL_MD=0, COL_NAME};
39    
40    
41  /* Return a printable digest of the buffer @mdbuf. */  /* Return a printable digest of the buffer @mdbuf. */
42  static const char*  static const char*
43  printable_digest (byte *mdbuf, size_t n)  printable_digest (BYTE *mdbuf, size_t n)
44  {  {
45      static char mdasc[128];      static char mdasc[128];
46      size_t i;      size_t i;
# Line 55  id2algo (gpgme_hash_algo_t mdalgo) Line 59  id2algo (gpgme_hash_algo_t mdalgo)
59      case GPGME_MD_SHA1:     return "SHA1";      case GPGME_MD_SHA1:     return "SHA1";
60      case GPGME_MD_RMD160:   return "RMD160";      case GPGME_MD_RMD160:   return "RMD160";
61      case GPGME_MD_SHA256:   return "SHA256";      case GPGME_MD_SHA256:   return "SHA256";
62      default: return "";      default:                break;
63      }      }
64      return "";      return "";
65  }  }
# Line 71  hash_selected_files (md_file_s *md, list Line 75  hash_selected_files (md_file_s *md, list
75      int i;      int i;
76      size_t n;      size_t n;
77    
78      for (i = 0; i < listview_count_items( md->lv, 0 ); i++) {      for (i = 0; i < listview_count_items (md->lv, 0); i++) {
79          if( listview_get_item_state (md->lv, i)) {          if (listview_get_item_state (md->lv, i)) {
80              listview_get_item_text (md->lv, i, 1, fname, sizeof (fname)-1);              listview_get_item_text (md->lv, i, 1, fname, sizeof (fname)-1);
81              if (!gpg_md_hash_file (md->mdalgo, fname, mdbuf, &n)) {              if (!gpg_md_hash_file (md->mdalgo, fname, mdbuf, &n)) {
82                  listview_add_item (lv, "");                  listview_add_item (lv, "");
83                  listview_add_sub_item (lv, 0, 0, printable_digest (mdbuf, n));                  listview_add_sub_item (lv, 0, COL_MD, printable_digest (mdbuf, n));
84                  listview_add_sub_item (lv, 0, 1, fname);                          listview_add_sub_item (lv, 0, COL_NAME, fname);
85              }                }  
86          }                }      
87      }      }
88  }  }
89    
90    
91    /* Return 1 if there is a tool available to check the file.
92       (sha1sum, md5sum). */
93  static int  static int
94  tool_avail (gpgme_hash_algo_t mdalgo)  tool_avail (gpgme_hash_algo_t mdalgo)
95  {  {
# Line 93  tool_avail (gpgme_hash_algo_t mdalgo) Line 99  tool_avail (gpgme_hash_algo_t mdalgo)
99  }  }
100    
101    
102    
103    
104  /* Dialog box procedure to show and calculate file digests. */  /* Dialog box procedure to show and calculate file digests. */
105  BOOL CALLBACK  BOOL CALLBACK
106  mdsum_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  mdsum_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
# Line 101  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR Line 109  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR
109      static struct md_file_s *md;      static struct md_file_s *md;
110      struct listview_column_s cols[] = {      struct listview_column_s cols[] = {
111          {0, 264, (char *)_("Digest")},          {0, 264, (char *)_("Digest")},
112          {1, 128, (char *)_("Name")},          {1, 160, (char *)_("Name")},
113          {0, 0, 0}          {0, 0, 0}
114      };      };
115      gpgme_data_t sumlist;      gpgme_data_t sumlist;
# Line 109  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR Line 117  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR
117      char fname[300], mdasc[128];      char fname[300], mdasc[128];
118      int i;      int i;
119    
120      switch( msg ) {      switch (msg) {
121      case WM_INITDIALOG:      case WM_INITDIALOG:
122          md = (md_file_s *)lparam;          md = (md_file_s *)lparam;
123          if (!md)          if (!md)
124              BUG (NULL);              BUG (NULL);
125          listview_new (&lv, GetDlgItem (dlg, IDC_MDSUM_LIST));          listview_new (&lv, GetDlgItem (dlg, IDC_MDSUM_LIST));
126          for (i = 0; i < cols[i].width; i++)          for (i = 0; i < cols[i].width; i++)
127              listview_add_column( lv, &cols[i]);              listview_add_column (lv, &cols[i]);
128          hash_selected_files (md, lv);          hash_selected_files (md, lv);
129          SetDlgItemText (dlg, IDC_MDSUM_COPY, _("&Save..."));          SetDlgItemText (dlg, IDC_MDSUM_COPY, _("&Save..."));
130          SetDlgItemText (dlg, IDOK, _("&Close"));          SetDlgItemText (dlg, IDOK, _("&Close"));
# Line 125  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR Line 133  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR
133          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
134          break;          break;
135    
     case WM_SYSCOMMAND:  
         if (wparam == SC_CLOSE)  
             EndDialog (dlg, TRUE);  
         return TRUE;  
   
136      case WM_DESTROY:      case WM_DESTROY:
137          if (lv) {          if (lv) {
138              listview_release (lv);              listview_release (lv);
# Line 161  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR Line 164  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR
164                  gpgme_data_write (sumlist, s, strlen (s));                  gpgme_data_write (sumlist, s, strlen (s));
165              }              }
166              for (i = 0; i < listview_count_items (lv, 0); i++) {              for (i = 0; i < listview_count_items (lv, 0); i++) {
167                  listview_get_item_text (lv, i, 0, mdasc, DIM (mdasc)-1);                  listview_get_item_text (lv, i, COL_MD, mdasc, DIM (mdasc)-1);
168                  listview_get_item_text (lv, i, 1, fname, DIM (fname)-1);                  listview_get_item_text (lv, i, COL_NAME, fname, DIM (fname)-1);
169                                    
170                  gpgme_data_write (sumlist, mdasc, strlen (mdasc));                  gpgme_data_write (sumlist, mdasc, strlen (mdasc));
171                  gpgme_data_write (sumlist, " ", 1);                  gpgme_data_write (sumlist, " ", 1);
# Line 174  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR Line 177  mdsum_dlg_proc (HWND dlg, UINT msg, WPAR
177                  break;                  break;
178              }              }
179              _snprintf (fname, sizeof (fname)-1, "%s_sums.txt", algname);              _snprintf (fname, sizeof (fname)-1, "%s_sums.txt", algname);
180              name = get_filesave_dlg (dlg, _("Select file to save checksums"),              name = get_filesave_dlg (dlg, _("Select File to Save Checksums"),
181                                       NULL, fname);                                       NULL, fname);
182              if (name && *name) {              if (name && *name) {
183                  gpg_data_release_and_set_file (sumlist, name);                  gpg_data_release_and_set_file (sumlist, name);

Legend:
Removed from v.224  
changed lines
  Added in v.225

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26