Commit 75f87222a875d96d5599fd08f0d7f1e0f5e56cdc

Authored by Perry Werneck
1 parent b749aacb

Reactivating use of windows registry.

configure.ac
... ... @@ -85,7 +85,7 @@ else
85 85 fi
86 86  
87 87 case "$host" in
88   - *-mingw32)
  88 + *-mingw32|*-pc-msys)
89 89  
90 90 EXEEXT=".exe"
91 91 DLLPREFIX=""
... ... @@ -106,6 +106,8 @@ case "$host" in
106 106 STATIC_LDFLAGS="-static-libstdc++ -static-libgcc -static"
107 107 DLL_LDFLAGS="-shared -Wl,--add-stdcall-alias"
108 108  
  109 + AC_DEFINE(ENABLE_WINDOWS_REGISTRY)
  110 +
109 111 AC_CONFIG_FILES(win/makeruntime.sh)
110 112 AC_CONFIG_FILES(win/copydeps.sh)
111 113 AC_CONFIG_FILES(win/$PACKAGE_TARNAME.nsi)
... ... @@ -239,7 +241,7 @@ AC_CHECK_HEADER(libintl.h, [
239 241 AC_DEFINE(HAVE_LIBINTL, 1)
240 242  
241 243 case "$host" in
242   - *-mingw32)
  244 + *-mingw32|*-pc-msys)
243 245 INTL_LIBS="-lintl"
244 246 ;;
245 247  
... ... @@ -376,7 +378,7 @@ AC_ARG_ENABLE([pic],
376 378 esac
377 379  
378 380 dnl case "$host" in
379   -dnl *-mingw32)
  381 +dnl *-mingw32|*-pc-msys)
380 382 dnl app_cv_pic="no"
381 383 dnl ;;
382 384 dnl
... ... @@ -449,7 +451,7 @@ AC_ARG_WITH([inet-ntop], [AS_HELP_STRING([--with-inet-ntop], [Assume that inet_n
449 451 if test "$app_cv_inet_ntop" == "auto"; then
450 452  
451 453 case "$host" in
452   - *-mingw32)
  454 + *-mingw32|*-pc-msys)
453 455 app_cv_inet_ntop="yes"
454 456 ;;
455 457  
... ...
src/include/config.h.in
... ... @@ -53,8 +53,8 @@
53 53 #undef SSL_ENABLE_CRL_CHECK
54 54  
55 55 #ifdef WIN32
56   - #undef HAVE_WIN_REGISTRY
57   -#endif // HAVE_WIN_REGISTRY
  56 + #undef ENABLE_WINDOWS_REGISTRY
  57 +#endif // ENABLE_WINDOWS_REGISTRY
58 58  
59 59 #undef HAVE_GNOME
60 60  
... ...
src/pw3270/common/common.h
... ... @@ -87,14 +87,14 @@
87 87  
88 88 void restore_window_from_config(const gchar *group, const gchar *key, GtkWidget *hwnd);
89 89  
90   -#ifdef HAVE_WIN_REGISTRY
  90 +#ifdef ENABLE_WINDOWS_REGISTRY
91 91 gboolean get_registry_handle(const gchar *group, HKEY *hKey, REGSAM samDesired);
92 92 void registry_foreach(HKEY parent, const gchar *name,void (*cbk)(const gchar *key, const gchar *val, gpointer *user_data), gpointer *user_data);
93 93 void registry_set_double(HKEY hKey, const gchar *key, gdouble value);
94 94 gboolean registry_get_double(HKEY hKey, const gchar *key, gdouble *value);
95 95 #else
96 96 GKeyFile * get_application_keyfile(void);
97   -#endif // HAVE_WIN_REGISTRY
  97 +#endif // ENABLE_WINDOWS_REGISTRY
98 98  
99 99  
100 100 #endif
... ...
src/pw3270/common/config.c
... ... @@ -43,7 +43,6 @@
43 43 #ifdef WIN32
44 44  
45 45 #include <windows.h>
46   - // #define HAVE_WIN_REGISTRY 1
47 46  
48 47 #ifndef KEY_WOW64_64KEY
49 48 #define KEY_WOW64_64KEY 0x0100
... ... @@ -57,7 +56,7 @@
57 56  
58 57 /*--[ Globals ]--------------------------------------------------------------------------------------*/
59 58  
60   -#ifdef HAVE_WIN_REGISTRY
  59 +#ifdef ENABLE_WINDOWS_REGISTRY
61 60  
62 61 static const gchar * registry_path = "SOFTWARE";
63 62  
... ... @@ -65,11 +64,11 @@
65 64  
66 65 static GKeyFile * program_config = NULL;
67 66  
68   -#endif // HAVE_WIN_REGISTRY
  67 +#endif // ENABLE_WINDOWS_REGISTRY
69 68  
70 69 /*--[ Implement ]------------------------------------------------------------------------------------*/
71 70  
72   -#ifdef HAVE_WIN_REGISTRY
  71 +#ifdef ENABLE_WINDOWS_REGISTRY
73 72  
74 73 enum REG_KEY
75 74 {
... ... @@ -270,11 +269,11 @@
270 269 return g_build_filename(g_get_user_config_dir(),name,NULL);
271 270  
272 271 }
273   -#endif // #ifdef HAVE_WIN_REGISTRY
  272 +#endif // #ifdef ENABLE_WINDOWS_REGISTRY
274 273  
275 274 gboolean get_boolean_from_config(const gchar *group, const gchar *key, gboolean def)
276 275 {
277   -#ifdef HAVE_WIN_REGISTRY
  276 +#ifdef ENABLE_WINDOWS_REGISTRY
278 277 gboolean ret = def;
279 278 HKEY hKey;
280 279  
... ... @@ -308,14 +307,14 @@
308 307 else
309 308 return val;
310 309 }
311   -#endif // HAVE_WIN_REGISTRY
  310 +#endif // ENABLE_WINDOWS_REGISTRY
312 311  
313 312 return def;
314 313 }
315 314  
316 315 gint get_integer_from_config(const gchar *group, const gchar *key, gint def)
317 316 {
318   -#ifdef HAVE_WIN_REGISTRY
  317 +#ifdef ENABLE_WINDOWS_REGISTRY
319 318  
320 319 HKEY key_handle;
321 320  
... ... @@ -351,7 +350,7 @@
351 350 else
352 351 return val;
353 352 }
354   -#endif // HAVE_WIN_REGISTRY
  353 +#endif // ENABLE_WINDOWS_REGISTRY
355 354  
356 355 return def;
357 356 }
... ... @@ -359,7 +358,7 @@
359 358  
360 359 gchar * get_string_from_config(const gchar *group, const gchar *key, const gchar *def)
361 360 {
362   -#ifdef HAVE_WIN_REGISTRY
  361 +#ifdef ENABLE_WINDOWS_REGISTRY
363 362  
364 363 HKEY key_handle;
365 364 unsigned long datalen = 4096;
... ... @@ -406,12 +405,12 @@
406 405  
407 406 return NULL;
408 407  
409   -#endif // HAVE_WIN_REGISTRY
  408 +#endif // ENABLE_WINDOWS_REGISTRY
410 409 }
411 410  
412 411 void configuration_init(void)
413 412 {
414   -#ifndef HAVE_WIN_REGISTRY
  413 +#ifndef ENABLE_WINDOWS_REGISTRY
415 414 gchar *filename = search_for_ini();
416 415  
417 416 if(program_config)
... ... @@ -426,14 +425,14 @@ void configuration_init(void)
426 425 g_free(filename);
427 426 }
428 427  
429   -#endif // HAVE_WIN_REGISTRY
  428 +#endif // ENABLE_WINDOWS_REGISTRY
430 429 }
431 430  
432 431 static void set_string(const gchar *group, const gchar *key, const gchar *fmt, va_list args)
433 432 {
434 433 gchar * value = g_strdup_vprintf(fmt,args);
435 434  
436   -#ifdef HAVE_WIN_REGISTRY
  435 +#ifdef ENABLE_WINDOWS_REGISTRY
437 436  
438 437 gchar * path = g_strdup_printf("%s\\%s\\%s",registry_path,g_get_application_name(),group);
439 438 HKEY hKey;
... ... @@ -466,7 +465,7 @@ void set_string_to_config(const gchar *group, const gchar *key, const gchar *fmt
466 465  
467 466 void set_boolean_to_config(const gchar *group, const gchar *key, gboolean val)
468 467 {
469   -#ifdef HAVE_WIN_REGISTRY
  468 +#ifdef ENABLE_WINDOWS_REGISTRY
470 469  
471 470 HKEY hKey;
472 471 DWORD disp;
... ... @@ -502,13 +501,13 @@ void set_boolean_to_config(const gchar *group, const gchar *key, gboolean val)
502 501 if(program_config)
503 502 g_key_file_set_boolean(program_config,group,key,val);
504 503  
505   -#endif // HAVE_WIN_REGISTRY
  504 +#endif // ENABLE_WINDOWS_REGISTRY
506 505  
507 506 }
508 507  
509 508 void set_integer_to_config(const gchar *group, const gchar *key, gint val)
510 509 {
511   -#ifdef HAVE_WIN_REGISTRY
  510 +#ifdef ENABLE_WINDOWS_REGISTRY
512 511  
513 512 HKEY hKey;
514 513 DWORD disp;
... ... @@ -544,13 +543,13 @@ void set_integer_to_config(const gchar *group, const gchar *key, gint val)
544 543 if(program_config)
545 544 g_key_file_set_integer(program_config,group,key,val);
546 545  
547   -#endif // HAVE_WIN_REGISTRY
  546 +#endif // ENABLE_WINDOWS_REGISTRY
548 547  
549 548 }
550 549  
551 550 void configuration_deinit(void)
552 551 {
553   -#ifdef HAVE_WIN_REGISTRY
  552 +#ifdef ENABLE_WINDOWS_REGISTRY
554 553  
555 554 #else
556 555  
... ... @@ -576,7 +575,7 @@ void configuration_deinit(void)
576 575 g_key_file_free(program_config);
577 576 program_config = NULL;
578 577  
579   -#endif // HAVE_WIN_REGISTRY
  578 +#endif // ENABLE_WINDOWS_REGISTRY
580 579 }
581 580  
582 581 gchar * build_data_filename(const gchar *first_element, ...)
... ... @@ -606,7 +605,7 @@ gchar * filename_from_va(const gchar *first_element, va_list args)
606 605  
607 606 g_autofree gchar * suffix = g_string_free(result, FALSE);
608 607  
609   -#if defined( HAVE_WIN_REGISTRY )
  608 +#if defined( ENABLE_WINDOWS_REGISTRY )
610 609 for(p=0;p<G_N_ELEMENTS(appname) && !result;p++)
611 610 {
612 611 g_autofree gchar * path = g_strconcat("Software\\",appname[p],NULL);
... ... @@ -639,7 +638,7 @@ gchar * filename_from_va(const gchar *first_element, va_list args)
639 638 }
640 639  
641 640 }
642   -#endif // HAVE_WIN_REGISTRY
  641 +#endif // ENABLE_WINDOWS_REGISTRY
643 642  
644 643 #ifdef _WIN32
645 644 for(p=0;p<G_N_ELEMENTS(appname) && !result;p++)
... ... @@ -680,7 +679,7 @@ gchar * filename_from_va(const gchar *first_element, va_list args)
680 679 return g_build_filename(".",suffix,NULL);
681 680 }
682 681  
683   -#ifdef HAVE_WIN_REGISTRY
  682 +#ifdef ENABLE_WINDOWS_REGISTRY
684 683 gboolean get_registry_handle(const gchar *group, HKEY *hKey, REGSAM samDesired)
685 684 {
686 685 gboolean ret;
... ... @@ -703,7 +702,7 @@ GKeyFile * get_application_keyfile(void)
703 702 configuration_init();
704 703 return program_config;
705 704 }
706   -#endif // HAVE_WIN_REGISTRY
  705 +#endif // ENABLE_WINDOWS_REGISTRY
707 706  
708 707 static const struct _WindowState
709 708 {
... ... @@ -719,7 +718,7 @@ GKeyFile * get_application_keyfile(void)
719 718  
720 719 void save_window_state_to_config(const gchar *group, const gchar *key, GdkWindowState CurrentState)
721 720 {
722   -#if defined( HAVE_WIN_REGISTRY )
  721 +#if defined( ENABLE_WINDOWS_REGISTRY )
723 722  
724 723 gchar * path = g_strdup_printf("%s\\%s\\%s\\%s",registry_path,g_get_application_name(),group,key);
725 724  
... ... @@ -751,12 +750,12 @@ void save_window_state_to_config(const gchar *group, const gchar *key, GdkWindow
751 750  
752 751 g_free(id);
753 752  
754   -#endif // HAVE_WIN_REGISTRY
  753 +#endif // ENABLE_WINDOWS_REGISTRY
755 754 }
756 755  
757 756 void save_window_size_to_config(const gchar *group, const gchar *key, GtkWidget *hwnd)
758 757 {
759   -#if defined( HAVE_WIN_REGISTRY )
  758 +#if defined( ENABLE_WINDOWS_REGISTRY )
760 759  
761 760 gchar * path = g_strdup_printf("%s\\%s\\%s\\%s",registry_path,g_get_application_name(),group,key);
762 761  
... ... @@ -786,10 +785,10 @@ void save_window_size_to_config(const gchar *group, const gchar *key, GtkWidget
786 785  
787 786 g_free(id);
788 787  
789   -#endif // HAVE_WIN_REGISTRY
  788 +#endif // ENABLE_WINDOWS_REGISTRY
790 789 }
791 790  
792   -#if defined( HAVE_WIN_REGISTRY )
  791 +#if defined( ENABLE_WINDOWS_REGISTRY )
793 792 static void restore_window_from_regkey(GtkWidget *hwnd, HKEY hKey, const gchar *path)
794 793 {
795 794 int f;
... ... @@ -835,11 +834,11 @@ static void restore_window_from_regkey(GtkWidget *hwnd, HKEY hKey, const gchar *
835 834  
836 835  
837 836 }
838   -#endif // HAVE_WIN_REGISTRY
  837 +#endif // ENABLE_WINDOWS_REGISTRY
839 838  
840 839 void restore_window_from_config(const gchar *group, const gchar *key, GtkWidget *hwnd)
841 840 {
842   -#if defined( HAVE_WIN_REGISTRY )
  841 +#if defined( ENABLE_WINDOWS_REGISTRY )
843 842  
844 843 gchar * path = g_strdup_printf("%s\\%s\\%s\\%s",registry_path,g_get_application_name(),group,key);
845 844 HKEY hKey;
... ... @@ -885,7 +884,7 @@ void restore_window_from_config(const gchar *group, const gchar *key, GtkWidget
885 884  
886 885 g_free(id);
887 886  
888   -#endif // HAVE_WIN_REGISTRY
  887 +#endif // ENABLE_WINDOWS_REGISTRY
889 888  
890 889 }
891 890  
... ...
src/pw3270/print.c
... ... @@ -272,7 +272,7 @@ static gchar * enum_to_string(GType type, guint enum_value)
272 272  
273 273 trace("Saving settings PrintSettings=%p page_setup=%p",settings,pgsetup);
274 274  
275   -#ifdef HAVE_WIN_REGISTRY
  275 +#ifdef ENABLE_WINDOWS_REGISTRY
276 276 HKEY registry;
277 277  
278 278 if(get_registry_handle("print",&registry,KEY_SET_VALUE))
... ... @@ -625,7 +625,7 @@ static gchar * enum_to_string(GType type, guint enum_value)
625 625  
626 626 // Load page and print settings
627 627 {
628   -#ifdef HAVE_WIN_REGISTRY
  628 +#ifdef ENABLE_WINDOWS_REGISTRY
629 629  
630 630 HKEY registry;
631 631  
... ...
src/pw3270/window.c
... ... @@ -95,6 +95,8 @@
95 95 NULL
96 96 };
97 97  
  98 +static GtkWidget * trace_window = NULL;
  99 +
98 100 /*--[ Implement ]------------------------------------------------------------------------------------*/
99 101  
100 102 #if GTK_CHECK_VERSION(3,0,0)
... ... @@ -157,65 +159,7 @@
157 159  
158 160 }
159 161  
160   - /*
161   - static void g_trace(H3270 *hSession, const char *fmt, va_list args)
162   - {
163   - gchar *ptr = g_strdup_vprintf(fmt,args);
164   -
165   - if(tracefile)
166   - {
167   - // Has trace file, use it
168   - int err;
169   -
170   - FILE *out = fopen(tracefile,"a");
171   - err = errno;
172   -
173   - if(!out)
174   - {
175   - // Error opening trace file, notify user and disable it
176   - GtkWidget *popup = gtk_message_dialog_new_with_markup(
177   - GTK_WINDOW(pw3270_get_toplevel()),
178   - GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
179   - GTK_MESSAGE_ERROR,GTK_BUTTONS_CLOSE,
180   - _( "Can't save trace data to file %s" ),tracefile);
181   -
182   - gtk_window_set_title(GTK_WINDOW(popup),_("Can't open file"));
183   -
184   - gtk_message_dialog_format_secondary_markup(GTK_MESSAGE_DIALOG(popup),"%s",strerror(err));
185   -
186   - gtk_dialog_run(GTK_DIALOG(popup));
187   - gtk_widget_destroy(popup);
188   -
189   - tracefile = NULL;
190   - }
191   - else
192   - {
193   - fprintf(out,"%s",ptr);
194   - fclose(out);
195   - }
196   - }
197   - else
198   - {
199   - // No trace file, open standard window
200   - gchar * utftext = g_convert_with_fallback(ptr,-1,"UTF-8",lib3270_get_display_charset(hSession),"?",NULL,NULL,NULL);
201   -
202   - if(!trace_window)
203   - {
204   - trace_window = v3270_trace_new_from_session(hSession);
205   - v3270_trace_set_destroy_on_close(trace_window,TRUE);
206   - g_signal_connect(trace_window, "destroy", G_CALLBACK(trace_window_destroy), hSession);
207   - gtk_window_set_default_size(GTK_WINDOW(trace_window),590,430);
208   - gtk_widget_show(trace_window);
209   - }
210   - v3270_trace_printf(trace_window,"%s",utftext);
211   - g_free(utftext);
212   - }
213   -
214   - g_free(ptr);
215   - }
216   - */
217   -
218   - static void trace_file(G_GNUC_UNUSED H3270 *hSession, void * userdata, const char *fmt, va_list args)
  162 + static void trace_on_file(G_GNUC_UNUSED H3270 *hSession, void * userdata, const char *fmt, va_list args)
219 163 {
220 164 int err;
221 165  
... ... @@ -255,6 +199,9 @@
255 199 lib3270_set_toggle(hSession,LIB3270_TOGGLE_SCREEN_TRACE,0);
256 200 lib3270_set_toggle(hSession,LIB3270_TOGGLE_EVENT_TRACE,0);
257 201 lib3270_set_toggle(hSession,LIB3270_TOGGLE_NETWORK_TRACE,0);
  202 +
  203 + trace_window = NULL;
  204 +
258 205 }
259 206  
260 207 struct trace_data
... ... @@ -265,20 +212,21 @@
265 212  
266 213 static gboolean bg_trace_window(struct trace_data *data)
267 214 {
268   - GtkWidget * widget = v3270_trace_new_from_session(data->hSession,data->text);
  215 + if(!trace_window)
  216 + trace_window = v3270_trace_new_from_session(data->hSession,data->text);
269 217  
270   - v3270_trace_set_destroy_on_close(widget,TRUE);
  218 + v3270_trace_set_destroy_on_close(trace_window,TRUE);
271 219  
272   - g_signal_connect(widget, "destroy", G_CALLBACK(trace_window_destroy), data->hSession);
  220 + g_signal_connect(trace_window, "destroy", G_CALLBACK(trace_window_destroy), data->hSession);
273 221  
274   - gtk_widget_show_all(widget);
  222 + gtk_widget_show_all(trace_window);
275 223  
276 224 g_free(data->text);
277 225  
278 226 return FALSE;
279 227 }
280 228  
281   - static void trace_window(G_GNUC_UNUSED H3270 *hSession, G_GNUC_UNUSED void * userdata, const char *fmt, va_list args)
  229 + static void trace_on_window(G_GNUC_UNUSED H3270 *hSession, G_GNUC_UNUSED void * userdata, const char *fmt, va_list args)
282 230 {
283 231 struct trace_data * data = g_new0(struct trace_data,1);
284 232  
... ... @@ -296,11 +244,11 @@
296 244  
297 245 if(tracefile)
298 246 {
299   - lib3270_set_trace_handler(pw3270_get_session(widget),trace_file,(void *) widget);
  247 + lib3270_set_trace_handler(pw3270_get_session(widget),trace_on_file,(void *) widget);
300 248 }
301 249 else
302 250 {
303   - lib3270_set_trace_handler(pw3270_get_session(widget),trace_window,(void *) widget);
  251 + lib3270_set_trace_handler(pw3270_get_session(widget),trace_on_window,(void *) widget);
304 252 }
305 253  
306 254 if(host)
... ...