From 58b3a2e8ebd73e8704ab5571b49646ba4bc42f3f Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Tue, 31 Jan 2012 12:10:44 +0000 Subject: [PATCH] Movendo flags da OIA para a estrutura de controle de sessao --- latest/src/include/lib3270.h | 18 +++++++++++++++++- latest/src/include/lib3270/api.h | 22 ++++++++++------------ latest/src/lib/ft.c | 2 +- latest/src/lib/ft_dft.c | 2 +- latest/src/lib/log.c | 20 ++++++++++---------- latest/src/lib/macros.c | 2 +- latest/src/lib/screen.c | 12 +++++++++--- 7 files changed, 49 insertions(+), 29 deletions(-) diff --git a/latest/src/include/lib3270.h b/latest/src/include/lib3270.h index d7aaaa9..63fbd01 100644 --- a/latest/src/include/lib3270.h +++ b/latest/src/include/lib3270.h @@ -95,8 +95,23 @@ LIB3270_TOGGLE_SMART_PASTE, LIB3270_TOGGLE_COUNT + } LIB3270_TOGGLE; + typedef enum _lib3270_flag + { + LIB3270_FLAG_BOXSOLID, + LIB3270_FLAG_UNDERA, + LIB3270_FLAG_SECURE, + LIB3270_FLAG_TYPEAHEAD, + LIB3270_FLAG_PRINTER, + LIB3270_FLAG_REVERSE, + LIB3270_FLAG_SCRIPT, + + LIB3270_FLAG_COUNT + + } LIB3270_FLAG; + #include /** @@ -241,6 +256,7 @@ LIB3270_EXPORT const char * lib3270_get_luname(H3270 *h); LIB3270_EXPORT const char * lib3270_get_host(H3270 *h); - + #define lib3270_has_printer_session(h) (h->oia_flag[LIB3270_FLAG_PRINTER] != 0) + #define lib3270_has_active_script(h) (h->oia_flag[LIB3270_FLAG_SCRIPT] != 0) #endif // LIB3270_H_INCLUDED diff --git a/latest/src/include/lib3270/api.h b/latest/src/include/lib3270/api.h index 683fe8c..420f8d3 100644 --- a/latest/src/include/lib3270/api.h +++ b/latest/src/include/lib3270/api.h @@ -183,18 +183,14 @@ } STATUS_CODE; - typedef enum _OIA_FLAG - { - OIA_FLAG_BOXSOLID, - OIA_FLAG_UNDERA, - OIA_FLAG_SECURE, - OIA_FLAG_TYPEAHEAD, - OIA_FLAG_PRINTER, - OIA_FLAG_REVERSE, - - OIA_FLAG_USER - } OIA_FLAG; - + #define OIA_FLAG_BOXSOLID LIB3270_FLAG_BOXSOLID + #define OIA_FLAG_UNDERA LIB3270_FLAG_UNDERA + #define OIA_FLAG_SECURE LIB3270_FLAG_SECURE + #define OIA_FLAG_TYPEAHEAD LIB3270_FLAG_TYPEAHEAD + #define OIA_FLAG_PRINTER LIB3270_FLAG_PRINTER + #define OIA_FLAG_REVERSE LIB3270_FLAG_REVERSE + #define OIA_FLAG_USER LIB3270_FLAG_COUNT + #define OIA_FLAG LIB3270_FLAG struct lib3270_state_callback; @@ -232,6 +228,8 @@ STATUS_CODE oia_status; + unsigned char oia_flag[LIB3270_FLAG_COUNT]; + unsigned short current_port; // screen info diff --git a/latest/src/lib/ft.c b/latest/src/lib/ft.c index d805cbe..9ef4171 100644 --- a/latest/src/lib/ft.c +++ b/latest/src/lib/ft.c @@ -31,7 +31,7 @@ */ #include -#include +#include #include "globals.h" #if defined(X3270_FT) diff --git a/latest/src/lib/ft_dft.c b/latest/src/lib/ft_dft.c index 87a700f..3b95ddc 100644 --- a/latest/src/lib/ft_dft.c +++ b/latest/src/lib/ft_dft.c @@ -36,7 +36,7 @@ * File transfer: DFT-style data processing functions */ -#include +#include #include "globals.h" #if defined(X3270_FT) /*[*/ diff --git a/latest/src/lib/log.c b/latest/src/lib/log.c index ec948c0..491db28 100644 --- a/latest/src/lib/log.c +++ b/latest/src/lib/log.c @@ -1,27 +1,27 @@ -/* +/* * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a * aplicativos mainframe. Registro no INPI sob o nome G3270. Registro no INPI sob o nome G3270. - * + * * Copyright (C) <2008> - * + * * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela * Free Software Foundation. - * + * * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para * obter mais detalhes. - * + * * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA, 02111-1307, USA - * + * * Este programa está nomeado como log.c e possui 151 linhas de código. - * - * Contatos: - * + * + * Contatos: + * * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) * licinio@bb.com.br (Licínio Luis Branco) @@ -38,7 +38,7 @@ #include #include #include -#include +#include /*---[ Constants ]------------------------------------------------------------------------------------------*/ diff --git a/latest/src/lib/macros.c b/latest/src/lib/macros.c index 6a85ada..f5a019f 100644 --- a/latest/src/lib/macros.c +++ b/latest/src/lib/macros.c @@ -32,7 +32,7 @@ #include #include - #include + #include #include #define LIB3270_MACRO_ENTRY( name ) { #name, lib3270_macro_ ## name } diff --git a/latest/src/lib/screen.c b/latest/src/lib/screen.c index 569c241..c5b6bbc 100644 --- a/latest/src/lib/screen.c +++ b/latest/src/lib/screen.c @@ -481,12 +481,18 @@ LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *h, int baddr) /* Status line stuff. */ -void set_status(H3270 *session, OIA_FLAG id, Boolean on) +void set_status(H3270 *session, LIB3270_FLAG id, Boolean on) { CHECK_SESSION_HANDLE(session); - if(session->set_oia) - session->set_oia(session,id,on); + if(id < LIB3270_FLAG_COUNT) + { + session->oia_flag[id] = (on != 0); + + if(session->set_oia) + session->set_oia(session,id,on); + } + } void status_ctlr_done(H3270 *session) -- libgit2 0.21.2