Commit 8cbce81b470dcea952ccb60ccbb06bc82f9b979c

Authored by Perry Werneck
1 parent ac099fa7

Updating windows builds.

Showing 2 changed files with 47 additions and 14 deletions   Show diff stats
src/include/config.h.in
... ... @@ -53,9 +53,7 @@
53 53 #undef SSL_ALLOW_SELF_SIGNED_CERT
54 54 #undef SSL_ENABLE_CRL_CHECK
55 55  
56   -#ifdef WIN32
57 56 #undef ENABLE_WINDOWS_REGISTRY
58   -#endif // ENABLE_WINDOWS_REGISTRY
59 57  
60 58 #undef HAVE_GNOME
61 59  
... ...
src/pw3270/main.c
... ... @@ -31,6 +31,10 @@
31 31  
32 32 #include <config.h>
33 33  
  34 +#if defined( _WIN32 )
  35 + #include <windows.h>
  36 +#endif // _WIN32
  37 +
34 38 #include <glib.h>
35 39 #include <glib/gstdio.h>
36 40 #include "globals.h"
... ... @@ -45,7 +49,7 @@
45 49 #include <stdlib.h>
46 50  
47 51 #if defined( HAVE_SYSLOG )
48   - #include <syslog.h>
  52 + #include <syslog.h>
49 53 #endif // HAVE_SYSLOG
50 54  
51 55 #define ERROR_DOMAIN g_quark_from_static_string(PACKAGE_NAME)
... ... @@ -253,21 +257,58 @@ int main(int argc, char *argv[])
253 257 setlocale( LC_ALL, "" );
254 258 #endif
255 259  
256   - // Get DATADIR
  260 + // OS
257 261 #if defined( _WIN32 )
258 262 {
259 263 g_autofree gchar * appdir = g_win32_get_package_installation_directory_of_module(NULL);
260 264 g_autofree gchar * locdir = g_build_filename(appdir,"locale",NULL);
261 265  
  266 + g_set_application_name(PACKAGE_NAME);
  267 +
262 268 trace("appdir=\"%s\"",appdir);
263 269 trace("locdir=\"%s\"",locdir);
264 270  
265 271 g_chdir(appdir);
266 272  
  273 + bindtextdomain( PACKAGE_NAME, locdir );
267 274 bind_textdomain_codeset(PACKAGE_NAME, "UTF-8");
268 275 textdomain(PACKAGE_NAME);
269 276  
270   - bindtextdomain( PACKAGE_NAME, locdir );
  277 +#if defined(ENABLE_WINDOWS_REGISTRY)
  278 + HKEY hMainKey;
  279 +
  280 + if(RegOpenKeyEx(HKEY_CURRENT_USER,PACKAGE_NAME,0,KEY_WRITE,&hMainKey) == ERROR_SUCCESS)
  281 + {
  282 + HKEY hKey;
  283 +
  284 + if(RegOpenKeyEx(HKEY_CURRENT_USER,"application",0,KEY_WRITE,&hKey) == ERROR_SUCCESS)
  285 + {
  286 + const struct _versions
  287 + {
  288 + const char * name;
  289 + const char * value;
  290 + }
  291 + versions[] =
  292 + {
  293 + { "version", PACKAGE_VERSION },
  294 + { "release", G_STRINGIFY(PACKAGE_RELEASE) },
  295 + { "path", appdir },
  296 + };
  297 +
  298 + size_t ix;
  299 +
  300 + for(ix = 0; ix < G_N_ELEMENTS(versions); ix++)
  301 + {
  302 + RegSetValueEx(hKey,versions[ix].name,0,REG_SZ,(const BYTE *) versions[ix].value,strlen(versions[ix].value)+1);
  303 + }
  304 +
  305 + RegCloseKey(hKey);
  306 +
  307 + }
  308 + RegCloseKey(hMainKey);
  309 + }
  310 +
  311 +#endif // ENABLE_WINDOWS_REGISTRY
271 312  
272 313 }
273 314 #elif defined(HAVE_GTKMAC)
... ... @@ -409,10 +450,6 @@ int main(int argc, char *argv[])
409 450 // Just in case!
410 451 g_mkdir_with_parents(g_get_tmp_dir(),0777);
411 452  
412   -#ifdef _WIN32
413   - g_set_application_name(PACKAGE_NAME);
414   -#endif // _WIN32
415   -
416 453 if(!session_name)
417 454 session_name = PACKAGE_NAME;
418 455  
... ... @@ -431,11 +468,9 @@ int main(int argc, char *argv[])
431 468 toplevel = pw3270_new(host,systype,syscolors);
432 469 pw3270_set_session_name(toplevel,session_name);
433 470  
434   -#if defined(_WIN32) && defined(ENABLE_WINDOWS_REGISTRY)
435   - pw3270_set_string(toplevel,"app","version",PACKAGE_VERSION);
436   - pw3270_set_string(toplevel,"app","release",G_STRINGIFY(PACKAGE_RELEASE));
437   - pw3270_set_string(toplevel,"app","sessionName",session_name);
438   -#endif // _WIN32 && ENABLE_WINDOWS_REGISTRY
  471 +#ifdef _WIN32
  472 + pw3270_set_string(toplevel,"application","session",session_name);
  473 +#endif // _WIN32
439 474  
440 475 if(toggleset)
441 476 {
... ...