Commit 2535b69d700647bb43cc981729b49e031f11529b
1 parent
05b2041e
Exists in
master
and in
5 other branches
Incluindo opção para definir manualmente o caminho dos plugins
Showing
3 changed files
with
19 additions
and
11 deletions
Show diff stats
src/include/pw3270/plugin.h
| ... | ... | @@ -47,8 +47,8 @@ |
| 47 | 47 | LIB3270_EXPORT int pw3270_plugin_stop(GtkWidget *window); |
| 48 | 48 | |
| 49 | 49 | // plugins |
| 50 | - LIB3270_EXPORT void pw3270_init_plugins(void); | |
| 51 | - LIB3270_EXPORT void pw3270_deinit_plugins(void); | |
| 50 | + LIB3270_EXPORT void pw3270_load_plugins(const gchar *path); | |
| 51 | + LIB3270_EXPORT void pw3270_unload_plugins(void); | |
| 52 | 52 | |
| 53 | 53 | LIB3270_EXPORT void pw3270_start_plugins(GtkWidget *widget); |
| 54 | 54 | LIB3270_EXPORT void pw3270_stop_plugins(GtkWidget *widget); | ... | ... |
src/pw3270/main.c
| ... | ... | @@ -52,17 +52,18 @@ |
| 52 | 52 | |
| 53 | 53 | /*--[ Statics ]--------------------------------------------------------------------------------------*/ |
| 54 | 54 | |
| 55 | - static GtkWidget * toplevel = NULL; | |
| 56 | - static GtkWidget * trace_window = NULL; | |
| 57 | - static unsigned int syscolors = 16; | |
| 58 | - static unsigned int timer = 0; | |
| 55 | + static GtkWidget * toplevel = NULL; | |
| 56 | + static GtkWidget * trace_window = NULL; | |
| 57 | + static unsigned int syscolors = 16; | |
| 58 | + static unsigned int timer = 0; | |
| 59 | 59 | static const gchar * systype = NULL; |
| 60 | 60 | static const gchar * toggleset = NULL; |
| 61 | 61 | static const gchar * togglereset = NULL; |
| 62 | - static const gchar * logfile = NULL; | |
| 62 | + static const gchar * logfile = NULL; | |
| 63 | 63 | static const gchar * tracefile = NULL; |
| 64 | 64 | static const gchar * charset = NULL; |
| 65 | 65 | static const gchar * model = NULL; |
| 66 | + static const gchar * pluginpath = NULL; | |
| 66 | 67 | |
| 67 | 68 | #ifdef HAVE_GTKMAC |
| 68 | 69 | GtkOSXApplication * osxapp = NULL; |
| ... | ... | @@ -410,6 +411,7 @@ int main(int argc, char *argv[]) |
| 410 | 411 | { "charset", 'C', 0, G_OPTION_ARG_STRING, &charset, N_( "Set host charset" ), NULL }, |
| 411 | 412 | { "model", 'M', 0, G_OPTION_ARG_STRING, &model, N_( "The model of 3270 display to be emulated" ), NULL }, |
| 412 | 413 | { "autodisconnect", 'D', 0, G_OPTION_ARG_INT, &timer, N_( "Minutes for auto-disconnect" ), 0 }, |
| 414 | + { "pluginpath", 'P', 0, G_OPTION_ARG_STRING, &pluginpath, N_( "Path for plugin files" ), NULL }, | |
| 413 | 415 | |
| 414 | 416 | #if defined( HAVE_SYSLOG ) |
| 415 | 417 | { "syslog", 'l', 0, G_OPTION_ARG_NONE, &log_to_syslog, N_( "Send messages to syslog" ), NULL }, |
| ... | ... | @@ -522,7 +524,7 @@ int main(int argc, char *argv[]) |
| 522 | 524 | gtk_settings_set_string_property(settings,"gtk-menu-bar-accel","Menu",""); |
| 523 | 525 | } |
| 524 | 526 | |
| 525 | - pw3270_init_plugins(); | |
| 527 | + pw3270_load_plugins(pluginpath); | |
| 526 | 528 | toplevel = pw3270_new(host,systype,syscolors); |
| 527 | 529 | pw3270_set_session_name(toplevel,session_name); |
| 528 | 530 | |
| ... | ... | @@ -579,7 +581,7 @@ int main(int argc, char *argv[]) |
| 579 | 581 | gtk_widget_destroy(trace_window); |
| 580 | 582 | |
| 581 | 583 | pw3270_stop_plugins(toplevel); |
| 582 | - pw3270_deinit_plugins(); | |
| 584 | + pw3270_unload_plugins(); | |
| 583 | 585 | |
| 584 | 586 | } |
| 585 | 587 | ... | ... |
src/pw3270/plugin.c
| ... | ... | @@ -159,8 +159,14 @@ |
| 159 | 159 | |
| 160 | 160 | } |
| 161 | 161 | |
| 162 | - LIB3270_EXPORT void pw3270_init_plugins(void) | |
| 162 | + LIB3270_EXPORT void pw3270_load_plugins(const gchar *p) | |
| 163 | 163 | { |
| 164 | + if(p) | |
| 165 | + { | |
| 166 | + load(p); | |
| 167 | + return; | |
| 168 | + } | |
| 169 | + | |
| 164 | 170 | #if defined( DEBUG ) |
| 165 | 171 | |
| 166 | 172 | gchar * dir = g_get_current_dir(); |
| ... | ... | @@ -244,7 +250,7 @@ |
| 244 | 250 | |
| 245 | 251 | } |
| 246 | 252 | |
| 247 | - LIB3270_EXPORT void pw3270_deinit_plugins(void) | |
| 253 | + LIB3270_EXPORT void pw3270_unload_plugins(void) | |
| 248 | 254 | { |
| 249 | 255 | int f; |
| 250 | 256 | ... | ... |