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

Diff of /trunk/Src/WinPT.cpp

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

revision 154 by twoaday, Wed Jan 18 12:38:46 2006 UTC revision 168 by twoaday, Fri Jan 27 10:08:10 2006 UTC
# Line 102  load_gettext (int prev_inst) Line 102  load_gettext (int prev_inst)
102  }  }
103    
104    
105    /* Return true if the GPG environment is useable. */
106    static bool
107    gpg_prefs_ok (void)
108    {
109        char *p;
110    
111        p = get_reg_entry_gpg4win ("gpg.exe");
112        if (!p || file_exist_check (p) != 0) {
113            free_if_alloc (p);
114            p = get_reg_entry_gpg ("gpgProgram");
115            if (!p || file_exist_check (p) != 0) {
116                free_if_alloc (p);
117                return false;
118            }
119        }
120        free_if_alloc (p);
121        p = get_reg_entry_gpg4win (NULL);    
122        if (!p || dir_exist_check (p) != 0) {
123            free_if_alloc (p);
124            p = get_reg_entry_gpg ("HomeDir");
125            if (!p || dir_exist_check (p) != 0) {
126                free_if_alloc (p);
127                return false;
128            }
129        }
130        free_if_alloc (p);
131        return true;
132    }
133    
134    
135    
136  /* Load the GPG environment. On the first start, some  /* Load the GPG environment. On the first start, some
137     checks are performed to find out in what state GPG is.     checks are performed to find out in what state GPG is.
138     Return value: 0  everything OK.     Return value: 0  everything OK.
# Line 122  load_gpg_env (void) Line 153  load_gpg_env (void)
153          return (1);          return (1);
154      }      }
155      free_if_alloc (p);      free_if_alloc (p);
156      p = multi_gnupg_path (0);  
157        p = get_reg_entry_gpg ("HomeDir");
158        if (!p || dir_exist_check (p) != 0) {
159            free_if_alloc (p);
160            p = multi_gnupg_path (0);
161        }
162      if (p && dir_exist_check (p)) {      if (p && dir_exist_check (p)) {
163          memset (&sec_attr, 0, sizeof (sec_attr));          memset (&sec_attr, 0, sizeof (sec_attr));
164          sec_attr.nLength = sizeof (sec_attr);          sec_attr.nLength = sizeof (sec_attr);
# Line 257  load_keyserver_conf (int quiet) Line 293  load_keyserver_conf (int quiet)
293      else      else
294          t = "keyserver.conf";          t = "keyserver.conf";
295      if (file_exist_check (t) == 0 && file_exist_check (buf) != 0) {      if (file_exist_check (t) == 0 && file_exist_check (buf) != 0) {
296          log_box (_("Keyserver"), MB_INFO,          //log_box (_("Keyserver"), MB_INFO,
297                   _("keyserver.conf will be copied to \"%s\"\r\n"), buf);          //       _("keyserver.conf will be copied to \"%s\"\r\n"), buf);
298          if (!CopyFile (t, buf, FALSE)) {          if (!CopyFile (t, buf, FALSE)) {
299              MessageBox (NULL, _("Failed to copy the keyserver.conf"),              MessageBox (NULL, _("Failed to copy the keyserver.conf"),
300                          _("Keyserver"), MB_ERR);                          _("Keyserver"), MB_ERR);
# Line 419  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 455  WinMain (HINSTANCE hinst, HINSTANCE hpre
455              hotkeys_modify ();              hotkeys_modify ();
456          gnupg_load_config ();          gnupg_load_config ();
457      }      }
458        else { /* default settings. */
459            reg_prefs.keylist_mode = 1;
460        }
461    
462      if (is_gpg4win_installed ())      if (is_gpg4win_installed ())
463          load_gpg_env (); /* XXX: check return code. */          load_gpg_env (); /* XXX: check return code. */
# Line 431  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 470  WinMain (HINSTANCE hinst, HINSTANCE hpre
470                   winpt_strerror (rc));                   winpt_strerror (rc));
471          s = get_fileopen_dlg (GetActiveWindow (),          s = get_fileopen_dlg (GetActiveWindow (),
472                                _("Select GPG Public Keyring"),                                _("Select GPG Public Keyring"),
473                                _("GPG Keyrings (*.gpg)\0*.gpg\0\0"),                                "GPG Keyrings (*.gpg)\0*.gpg\0\0",
474                                NULL);                                NULL);
475          if (s != NULL) {          if (s != NULL) {
476              size_t n;              size_t n;
# Line 590  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 629  WinMain (HINSTANCE hinst, HINSTANCE hpre
629      }      }
630    
631      if (first_start) {      if (first_start) {
         struct first_start_s fs;  
632          struct genkey_s c;          struct genkey_s c;
633            int choice;
634          HWND h;          HWND h;
635  start:  start:
636          h = GetDesktopWindow ();          h = GetDesktopWindow ();
637          DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_GPGPREFS, h,          if (!gpg_prefs_ok ())
638                DialogBoxParam (glob_hinst, (LPCTSTR)IDD_WINPT_GPGPREFS, h,
639                              gpgprefs_dlg_proc, 0);                              gpgprefs_dlg_proc, 0);
640          DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_FIRST, h,          choice = DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_FIRST, h,
641                          first_run_dlg_proc, (LPARAM)&fs);                                   first_run_dlg_proc, 0);
642          switch (fs.choice) {          switch (choice) {
643          case SETUP_KEYGEN:          case SETUP_KEYGEN:
644              c.interactive = 1;              c.interactive = 1;
645              c.first_start = 1;              c.first_start = 1;
# Line 617  start: Line 657  start:
657              }              }
658              break;              break;
659    
660          case -1: /* Cancel/Abort. */          case 0: /* Cancel/Abort. */
661            default:
662              DestroyWindow (hwnd);              DestroyWindow (hwnd);
663              free_gnupg_table ();              free_gnupg_table ();
664              return 0;              return 0;
665          }          }
666          update_keycache (hwnd);          update_keycache (hwnd);
667          check_crypto_engine ();          if (!check_crypto_engine ()) {
668                DestroyWindow (hwnd);
669                free_gnupg_table ();
670                return 0;
671            }
672      }      }
673      else {      else {
674          gpg_keycache_t c;          gpg_keycache_t c;

Legend:
Removed from v.154  
changed lines
  Added in v.168

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26