From 2a0b0d588d8f952dfbc52b124c7ec5acf75d656f Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Thu, 8 Mar 2012 13:04:09 +0000 Subject: [PATCH] Implementando redesenho pela biblioteca ao mudar o toggle "monocase", incluindo gravação no log quando a lib pede por "resources" --- src/lib3270/api.h | 3 +-- src/lib3270/appres.h | 31 +++++++++++++++++++++---------- src/lib3270/glue.c | 6 +++--- src/lib3270/resources.c | 33 +++++++++++++++++++++------------ src/lib3270/screen.c | 4 +--- src/lib3270/toggles.c | 8 +++++++- 6 files changed, 54 insertions(+), 31 deletions(-) diff --git a/src/lib3270/api.h b/src/lib3270/api.h index 318164b..3b7912f 100644 --- a/src/lib3270/api.h +++ b/src/lib3270/api.h @@ -90,8 +90,7 @@ /* Debug & log */ #if defined( DEBUG ) - #define Trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); \ - WriteLog("TRACE", "%s(%d) " fmt , __FILE__, __LINE__, __VA_ARGS__ ) + #define Trace( fmt, ... ) fprintf(stderr, "%s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__ ); fflush(stderr); #else #define Trace( fmt, ... ) /* __VA_ARGS__ */ #endif diff --git a/src/lib3270/appres.h b/src/lib3270/appres.h index 416628c..72c48ac 100644 --- a/src/lib3270/appres.h +++ b/src/lib3270/appres.h @@ -143,7 +143,7 @@ typedef struct { #endif /*]*/ char *conf_dir; char *model; - char *hostsfile; +// char *hostsfile; char *port; char *charset; char *termname; @@ -156,9 +156,12 @@ typedef struct { char *trace_file; char *screentrace_file; char *trace_file_size; -#if defined(X3270_DISPLAY) || defined(WC3270) /*[*/ +/* +#if defined(X3270_DISPLAY) || defined(WC3270) char trace_monitor; -#endif /*]*/ +#endif +*/ + #endif /*]*/ char *oversize; #if defined(X3270_FT) /*[*/ @@ -169,9 +172,13 @@ typedef struct { char *idle_command; char idle_command_enabled; char *idle_timeout; -#if defined(X3270_SCRIPT) /*[*/ + +/* +#if defined(X3270_SCRIPT) char *plugin_command; -#endif /*]*/ +#endif +*/ + #if defined(HAVE_LIBSSL) /*[*/ char *cert_file; #endif /*]*/ @@ -206,14 +213,18 @@ typedef struct { char *hostname; #endif -#if defined(WC3270) /*[*/ +/* +#if defined(WC3270) char *title; -#endif /*]*/ +#endif +*/ -#if defined(USE_APP_DEFAULTS) /*[*/ - /* App-defaults version */ +/* +#if defined(USE_APP_DEFAULTS) + // App-defaults version char *ad_version; -#endif /*]*/ +#endif +*/ } AppRes, *AppResptr; diff --git a/src/lib3270/glue.c b/src/lib3270/glue.c index d6df70b..8f1d324 100644 --- a/src/lib3270/glue.c +++ b/src/lib3270/glue.c @@ -357,7 +357,7 @@ static void initialize(void) #endif /*]*/ appres.model = ""; - appres.hostsfile = CN; +// appres.hostsfile = CN; appres.port = "telnet"; #if !defined(_WIN32) /*[*/ @@ -490,7 +490,7 @@ static const struct lib3270_option options[] = #if defined(X3270_TRACE) /*[*/ { OptDsTrace, OPT_BOOLEAN, True, ResDsTrace, toggle_offset(DS_TRACE), NULL }, #endif /*]*/ - { OptHostsFile,OPT_STRING, False, ResHostsFile, offset(hostsfile), NULL }, +// { OptHostsFile,OPT_STRING, False, ResHostsFile, offset(hostsfile), NULL }, //#if defined(C3270) // { OptKeymap, OPT_STRING, False, ResKeymap, offset(key_map), N_( "Specifies a keymap name and optional modifiers." ) }, // #endif @@ -647,7 +647,7 @@ static struct { #if defined(WC3270) /*[*/ { "hostname", offset(hostname), XRM_STRING }, #endif /*]*/ - { ResHostsFile, offset(hostsfile), XRM_STRING }, +// { ResHostsFile, offset(hostsfile), XRM_STRING }, #if defined(X3270_ANSI) /*[*/ { ResIcrnl, offset(icrnl), XRM_BOOLEAN }, { ResInlcr, offset(inlcr), XRM_BOOLEAN }, diff --git a/src/lib3270/resources.c b/src/lib3270/resources.c index d915a80..5dcffd5 100644 --- a/src/lib3270/resources.c +++ b/src/lib3270/resources.c @@ -125,30 +125,39 @@ add_resource(const char *name, char *value) drdb_next = &d->next; } -char * -get_resource(const char *name) +const char * get_resource(const char *name) { struct dresource *d; int i; - for (d = drdb; d != NULL; d = d->next) { - if (!strcmp(d->name, name)) { + for (d = drdb; d != NULL; d = d->next) + { + if (!strcmp(d->name, name)) + { + lib3270_write_log(&h3270,"resource","%s=\"%s\"",name,d->value); return d->value; } } - for (i = 0; fallbacks[i] != NULL; i++) { - if (!strncmp(fallbacks[i], name, strlen(name)) && - *(fallbacks[i] + strlen(name)) == ':') { - return fallbacks[i] + strlen(name) + 2; + for (i = 0; fallbacks[i] != NULL; i++) + { + if (!strncmp(fallbacks[i], name, strlen(name)) && *(fallbacks[i] + strlen(name)) == ':') + { + const char *ret = fallbacks[i] + strlen(name) + 2; + lib3270_write_log(&h3270,"resource","%s=\"%s\"",name,ret); + return ret; } } -#if defined(C3270) /*[*/ - for (i = 0; rdb[i].name != (char *)NULL; i++) { - if (!strcmp(rdb[i].name, name)) { + +#if defined(C3270) + for (i = 0; rdb[i].name != (char *)NULL; i++) + { + if (!strcmp(rdb[i].name, name)) + { + lib3270_write_log(&h3270,"resource","%s=\"%s\"",name,rdb[i].value); return rdb[i].value; } } -#endif /*]*/ +#endif return NULL; } diff --git a/src/lib3270/screen.c b/src/lib3270/screen.c index e63281f..6ca5d66 100644 --- a/src/lib3270/screen.c +++ b/src/lib3270/screen.c @@ -45,9 +45,7 @@ #include "actionsc.h" #include "ctlrc.h" #include "hostc.h" -// #include "keymapc.h" #include "kybdc.h" -// #include "macrosc.h" #include "screenc.h" #include "tablesc.h" #include "trace_dsc.h" @@ -329,7 +327,7 @@ static void screen_update(H3270 *session, int bstart, int bend) a = color_from_fa(fa); fa_addr = find_field_attribute(session,bstart); // may be -1, that's okay - Trace("%s ea_buf=%p",__FUNCTION__,ea_buf); +// Trace("%s ea_buf=%p",__FUNCTION__,ea_buf); for(baddr = bstart; baddr < bend; baddr++) { diff --git a/src/lib3270/toggles.c b/src/lib3270/toggles.c index a123a64..6c58e6d 100644 --- a/src/lib3270/toggles.c +++ b/src/lib3270/toggles.c @@ -142,6 +142,11 @@ LIB3270_EXPORT int lib3270_toggle(H3270 *session, LIB3270_TOGGLE ix) return 0; } +static void toggle_monocase(H3270 *session, struct toggle *t, LIB3270_TOGGLE_TYPE tt) +{ + screen_disp(session); +} + /* * Called from system initialization code to handle initial toggle settings. */ @@ -155,7 +160,8 @@ void initialize_toggles(H3270 *session, struct toggle *toggle) toggle[f].upcall = toggle_nop; } - toggle[LIB3270_TOGGLE_RECTANGLE_SELECT].upcall = toggle_rectselect; + toggle[LIB3270_TOGGLE_RECTANGLE_SELECT].upcall = toggle_rectselect; + toggle[LIB3270_TOGGLE_MONOCASE].upcall = toggle_monocase; #if defined(X3270_TRACE) toggle[DS_TRACE].upcall = toggle_dsTrace; -- libgit2 0.21.2