/[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 30 by twoaday, Sat Oct 22 10:17:59 2005 UTC revision 34 by twoaday, Wed Oct 26 11:20:09 2005 UTC
# Line 38  Line 38 
38    
39  #define MIN_GPG_VER   "1.4.3"   /* Minimal GPG version. */  #define MIN_GPG_VER   "1.4.3"   /* Minimal GPG version. */
40  #define MIN_GPGME_VER "1.2.0"   /* Minimal GPGME version. */  #define MIN_GPGME_VER "1.2.0"   /* Minimal GPGME version. */
41    #define MIN_PTD_VER   "0.8.1"   /* Minimal PTD version. */
42    
43    
44  HINSTANCE glob_hinst;   /* global instance for the dialogs */  HINSTANCE glob_hinst;   /* global instance for the dialogs */
# Line 89  get_gettext_lang (void) Line 90  get_gettext_lang (void)
90    
91  /* Initialize the gettext sub system. */  /* Initialize the gettext sub system. */
92  static void  static void
93  load_gettext (void)  load_gettext (int prev_inst)
94  {  {
95      char *nls = NULL;      char *nls = NULL;
96      char *file = NULL;      char *file = NULL;
# Line 99  load_gettext (void) Line 100  load_gettext (void)
100          set_gettext_file ("winpt", nls);          set_gettext_file ("winpt", nls);
101          file = make_filename (nls, "winpt", "mo");          file = make_filename (nls, "winpt", "mo");
102          if (!file_exist_check (nls) && init_file_lock (&mo_file, file))  {          if (!file_exist_check (nls) && init_file_lock (&mo_file, file))  {
103              msg_box (NULL, _("Could not initizalize file lock.\n"              if (!prev_inst)
104                               "Native Language Support"),                  msg_box (NULL, _("Could not initizalize file lock.\n"
105                       _("WinPT Error"), MB_ERR);                                   "Native Language Support"),
106                             _("WinPT Error"), MB_ERR);
107          }          }
108          free_if_alloc (nls);          free_if_alloc (nls);
109          free_if_alloc (file);          free_if_alloc (file);
# Line 130  check_default_key (gpg_keycache_t kc) Line 132  check_default_key (gpg_keycache_t kc)
132  static const char *  static const char *
133  get_prog_part (const char * fname, int use_cwd)  get_prog_part (const char * fname, int use_cwd)
134  {  {
135      static char program[1024];      static char program[512];
136      char currdir[256], * cmd = NULL;      char currdir[256];
137        char *cmd = NULL;
138      int j;      int j;
139                    
140      memset (currdir, 0, DIM (currdir));      memset (currdir, 0, DIM (currdir));
# Line 145  get_prog_part (const char * fname, int u Line 148  get_prog_part (const char * fname, int u
148          cmd = GetCommandLine ();          cmd = GetCommandLine ();
149          if (cmd == NULL)          if (cmd == NULL)
150              return NULL;              return NULL;
151          strncpy (currdir, cmd, 255);          strncpy (currdir, cmd, sizeof (currdir)-1);
152          j = strlen (currdir);          j = strlen (currdir);
153          while (j--) {          while (j--) {
154              if (currdir[j] == '\\')              if (currdir[j] == '\\')
155                  break;                            break;
156          }          }
157          currdir[j] = 0;          currdir[j] = 0;
158          _snprintf (program, DIM (program)-1, "%s\\%s", currdir + 1, fname);          _snprintf (program, DIM (program)-1, "%s\\%s", currdir + 1, fname);
# Line 211  load_keyserver_conf (int quiet) Line 214  load_keyserver_conf (int quiet)
214  }  }
215    
216    
217    /* Enable the mobility mode. */
218  static void  static void
219  enable_mobile_mode (void)  enable_mobile_mode (void)
220  {  {
# Line 227  enable_mobile_mode (void) Line 231  enable_mobile_mode (void)
231      reg_prefs.use_viewer = 0; /* XXX */      reg_prefs.use_viewer = 0; /* XXX */
232  }  }
233    
234    char* multi_gnupg_path (void);
235    
236  /* Main entry point. */  /* Main entry point. */
237  int WINAPI  int WINAPI
# Line 236  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 241  WinMain (HINSTANCE hinst, HINSTANCE hpre
241      HACCEL accel_tab;      HACCEL accel_tab;
242      int rc, ec, created = 0, use_cwd = 0, nfiles = 0;      int rc, ec, created = 0, use_cwd = 0, nfiles = 0;
243      int first_start = 0, start_gpgprefs = 0;      int first_start = 0, start_gpgprefs = 0;
244      const char * s;      int winpt_inst_found = 0;
245        const char *s;
246      MSG msg;      MSG msg;
247      HWND hwnd = NULL;      HWND hwnd = NULL;
248    
# Line 248  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 254  WinMain (HINSTANCE hinst, HINSTANCE hpre
254      #endif      #endif
255    
256      s = PTD_get_version ();      s = PTD_get_version ();
257      if (strcmp (s, "0.8.0")) {      if (strcmp (s, MIN_PTD_VER)) {
258          log_box (_("Privacy Tray Dynamic (PTD)"), MB_ERR,          log_box (_("Privacy Tray Dynamic (PTD)"), MB_ERR,
259                   _("Please update your PTD.dll to the newest version, "                   _("Please update your PTD.dll to the newest version, "
260                     "the version (%s) you use is too old."), s);                     "the version (%s) you use is too old."), s);
# Line 268  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 274  WinMain (HINSTANCE hinst, HINSTANCE hpre
274          return 0;          return 0;
275      }      }
276    
277        CreateMutex (NULL, TRUE, PGM_NAME);
278        if (GetLastError () == ERROR_ALREADY_EXISTS)
279            winpt_inst_found = 1;
280    
281      if (cmdline && stristr (cmdline, "--mobile")) {      if (cmdline && stristr (cmdline, "--mobile")) {
282          msg_box (NULL, "WARNING: mobile modus is not fully implemented yet!",          msg_box (NULL, "WARNING: mobile modus is not fully implemented yet!",
283                   "WinPT", MB_INFO);                   "WinPT", MB_INFO);
# Line 311  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 321  WinMain (HINSTANCE hinst, HINSTANCE hpre
321              if (!p)              if (!p)
322                  BUG (0);                  BUG (0);
323              n = p - s;              n = p - s;
324              if (n)              if (n) {
             {  
325                  char * file = new char[n+1];                  char * file = new char[n+1];
326                  if (!file)                  if (!file)
327                      BUG (NULL);                      BUG (NULL);
# Line 346  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 355  WinMain (HINSTANCE hinst, HINSTANCE hpre
355      }      }
356    
357      rc = gnupg_access_files ();      rc = gnupg_access_files ();
358      if (!start_gpgprefs && rc)      if (!start_gpgprefs && rc) {
359      {          if (rc == WPTERR_GPG_KEYRINGS || rc == WPTERR_GPG_OPT_KEYRINGS) {
         if (rc == WPTERR_GPG_KEYRINGS || rc == WPTERR_GPG_OPT_KEYRINGS)  
         {  
360              ec = msg_box (NULL,              ec = msg_box (NULL,
361                  _("Could not access and/or find the public and secret keyring.\n"                  _("Could not access and/or find the public and secret keyring.\n"
362                    "If this is an accident, quit the program and fix it.\n\n"                    "If this is an accident, quit the program and fix it.\n\n"
# Line 358  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 365  WinMain (HINSTANCE hinst, HINSTANCE hpre
365              if (ec == IDYES)              if (ec == IDYES)
366                  first_start = 1;                  first_start = 1;
367          }          }
368          if (!first_start)          if (!first_start) {
         {  
369              msg_box (NULL, winpt_strerror (rc), _("WinPT Error"), MB_ERR);              msg_box (NULL, winpt_strerror (rc), _("WinPT Error"), MB_ERR);
370              return 0;              return 0;
371          }          }
372      }      }
373    
374      if (!first_start)      if (!first_start) {
     {  
375          rc = gpg_check_permissions (1);          rc = gpg_check_permissions (1);
376          if (rc && rc == 2)          if (rc && rc == 2)
377              gpg_read_only = 1;              gpg_read_only = 1;
# Line 374  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 379  WinMain (HINSTANCE hinst, HINSTANCE hpre
379              return 0;              return 0;
380      }      }
381    
382      load_gettext ();      load_gettext (winpt_inst_found);
383      init_gnupg_table ();      init_gnupg_table ();
384    
385      nfiles = fm_parse_command_line (cmdline);      nfiles = fm_parse_command_line (cmdline);
386      if (nfiles > 0)      if (nfiles > 0) {
387            free_gnupg_table ();
388          return 0;          return 0;
389        }
390    
391      if (cmdline && stristr (cmdline, "--wipe-freespace")) {      if (cmdline && stristr (cmdline, "--wipe-freespace")) {
392          dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_SPACE_SECDEL,          dialog_box_param (glob_hinst, (LPCTSTR)IDD_WINPT_SPACE_SECDEL,
# Line 412  WinMain (HINSTANCE hinst, HINSTANCE hpre Line 419  WinMain (HINSTANCE hinst, HINSTANCE hpre
419          return 0;          return 0;
420      }      }
421    
422      CreateMutex (NULL, TRUE, PGM_NAME);      /* If we found another WinPT instance, just quit to avoid it
423      if (GetLastError () == ERROR_ALREADY_EXISTS) {         will be executed twice. */
424        if (winpt_inst_found) {
425            log_debug ("%s", "WinMain: WinPT is already running.");
426          free_gnupg_table ();          free_gnupg_table ();
427          return 0;          return 0;
428      }      }

Legend:
Removed from v.30  
changed lines
  Added in v.34

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26