Commit f90ede0531d9279421db6ea4e797fa846d895462

Authored by perry.werneck@gmail.com
1 parent b1fb38cd

Movendo mais "statics" para a estrutura de sessao, simplificando chamadas

Makefile.in
... ... @@ -50,7 +50,7 @@ EXEEXT=@EXEEXT@
50 50 DBGLIB=-L../../$(BINDIR)/Debug/lib -l3270
51 51 RLSLIB=-L../../$(BINDIR)/Release/lib -l3270
52 52 TMPDIR=$(PWD)/.tmp
53   -
  53 +GLOBAL_DEPS=$(PWD)/include/*.h $(PWD)/include/lib3270/*.h
54 54 #---[ Tools ]------------------------------------------------------------------
55 55  
56 56 VALGRIND=@VALGRIND@
... ...
src/gtk/Makefile.in
... ... @@ -55,7 +55,7 @@ SOURCES=main.c mainwindow.c actions.c fonts.c \
55 55 $(foreach SRC, $(COMMON_SRC), common/$(SRC)) \
56 56 $(foreach SRC, $(UI_PARSER_SRC), uiparser/$(SRC))
57 57  
58   -DEPENDS=*.h common/*.h uiparser/*.h v3270/*.h
  58 +DEPENDS=*.h common/*.h uiparser/*.h v3270/*.h $(GLOBAL_DEPS)
59 59  
60 60 VALGRIND=@VALGRIND@
61 61  
... ...
src/include/lib3270.h
... ... @@ -26,7 +26,6 @@
26 26 * erico.mendonca@gmail.com (Erico Mascarenhas de Mendonça)
27 27 * licinio@bb.com.br (Licínio Luis Branco)
28 28 * kraucer@bb.com.br (Kraucer Fernandes Mazuco)
29   - * macmiranda@bb.com.br (Marco Aurélio Caldas Miranda)
30 29 *
31 30 */
32 31  
... ... @@ -205,8 +204,6 @@
205 204 LIB3270_CONNECTED_TN3270E /**< connected in TN3270E mode, 3270 mode */
206 205 } LIB3270_CSTATE;
207 206  
208   -// #include <lib3270/api.h>
209   -
210 207 #ifdef __cplusplus
211 208 extern "C" {
212 209 #endif
... ...
src/include/lib3270/action_table.h
... ... @@ -69,6 +69,7 @@
69 69 DECLARE_LIB3270_ACTION( eraseeol )
70 70 DECLARE_LIB3270_ACTION( erase )
71 71 DECLARE_LIB3270_ACTION( delete )
  72 + DECLARE_LIB3270_ACTION( dup )
72 73  
73 74 DECLARE_LIB3270_ACTION( backspace )
74 75 DECLARE_LIB3270_ACTION( previousword )
... ...
src/include/lib3270/session.h
... ... @@ -113,6 +113,7 @@
113 113 // Screen contents
114 114 void * buffer[2]; /**< Internal buffers */
115 115 struct ea * ea_buf; /**< 3270 device buffer. ea_buf[-1] is the dummy default field attribute */
  116 + struct ea * aea_buf; /** alternate 3270 extended attribute buffer */
116 117 struct lib3270_text * text; /**< Converted 3270 chars */
117 118  
118 119 // host.c
... ... @@ -159,6 +160,8 @@
159 160  
160 161 void (*set_timer)(H3270 *session, unsigned char on);
161 162 void (*erase)(H3270 *session);
  163 + void (*suspend)(H3270 *session);
  164 + void (*resume)(H3270 *session);
162 165 void (*cursor)(H3270 *session, LIB3270_CURSOR id);
163 166 void (*set_selection)(H3270 *session, unsigned char on);
164 167 void (*ctlr_done)(H3270 *session);
... ...
src/lib3270/api.h
... ... @@ -306,45 +306,6 @@
306 306  
307 307 #define CHAR_ATTR_UNCONVERTED CHAR_ATTR_CG
308 308  
309   -/*
310   - struct lib3270_screen_callbacks
311   - {
312   - unsigned short sz;
313   -
314   - int (*init)(void);
315   - int (*notify)(H3270 *session, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list arg);
316   - void (*model_changed)(H3270 *session, const char *name, int model, int rows, int cols);
317   - int (*addch)(int row, int col, unsigned char c, unsigned short attr);
318   - void (*charset)(char *dcs);
319   - void (*title)(char *text);
320   - void (*ring_bell)(void);
321   - void (*redraw)(void);
322   - void (*move_cursor)(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr);
323   - int (*set_suspended)(int state);
324   - void (*set_script)(SCRIPT_STATE state);
325   - void (*reset)(int lock);
326   - void (*status)(H3270 *session, LIB3270_STATUS id);
327   - void (*cursor)(H3270 *session, LIB3270_CURSOR mode);
328   - void (*lu)(H3270 *session, const char *lu);
329   - void (*set_oia)(H3270 *session, OIA_FLAG id, unsigned char on);
330   -
331   - void (*erase)(H3270 *session);
332   - void (*display)(H3270 *session);
333   - void (*set_viewsize)(H3270 *session, unsigned short rows, unsigned short cols);
334   -
335   -
336   - void (*toggle_changed)(H3270 *session, LIB3270_TOGGLE ix, unsigned char value, LIB3270_TOGGLE_TYPE reason, const char *name);
337   - void (*show_timer)(long seconds);
338   -
339   - // Console/Trace window
340   - HCONSOLE (*console_new)(const char *title, const char *label);
341   - void (*console_delete)(HCONSOLE hwnd);
342   - int (*console_append)(HCONSOLE hwnd, const char *fmt, va_list args);
343   - char * (*console_entry)(HCONSOLE hwnd);
344   -
345   - };
346   -*/
347   -
348 309 struct lib3270_option
349 310 {
350 311 const char *name;
... ... @@ -392,7 +353,7 @@
392 353  
393 354  
394 355 LOCAL_EXTERN unsigned char get_field_attribute(H3270 *session, int baddr);
395   - LOCAL_EXTERN int screen_read(char *dest, int baddr, int count);
  356 +// LOCAL_EXTERN int screen_read(char *dest, int baddr, int count);
396 357 LOCAL_EXTERN void Input_String(const unsigned char *str);
397 358 LOCAL_EXTERN void screen_size(int *rows, int *cols);
398 359  
... ... @@ -432,8 +393,8 @@
432 393 // LOCAL_EXTERN int ctlr_get_rows(void) __attribute__ ((deprecated));
433 394  
434 395 /* Screen calls */
435   - LOCAL_EXTERN void screen_resume(H3270 *session);
436   - LOCAL_EXTERN void screen_suspend(H3270 *session);
  396 +// LOCAL_EXTERN void screen_resume(H3270 *session);
  397 +// LOCAL_EXTERN void screen_suspend(H3270 *session);
437 398 LOCAL_EXTERN void screen_disp(H3270 *session);
438 399  
439 400 /* Cursor calls */
... ...
src/lib3270/ctlr.c
... ... @@ -90,7 +90,7 @@ unsigned char crm_attr[16];
90 90 Boolean dbcs = False;
91 91  
92 92 /* Statics */
93   -static struct ea *aea_buf; /* alternate 3270 extended attribute buffer */
  93 +// static struct ea *aea_buf; /* alternate 3270 extended attribute buffer */
94 94 static unsigned char *zero_buf; // empty buffer, for area clears
95 95 static void set_formatted(H3270 *session);
96 96 static void ctlr_blanks(void);
... ... @@ -174,7 +174,7 @@ void ctlr_reinit(H3270 *session, unsigned cmask)
174 174 session->ea_buf = tmp + 1;
175 175  
176 176 session->buffer[1] = tmp = lib3270_calloc(sizeof(struct ea),sz+1,session->buffer[1]);
177   - aea_buf = tmp + 1;
  177 + session->aea_buf = tmp + 1;
178 178  
179 179 session->text = lib3270_calloc(sizeof(struct lib3270_text),sz,session->text);
180 180  
... ... @@ -1945,8 +1945,7 @@ ctlr_write_sscp_lu(unsigned char buf[], int buflen)
1945 1945 /* Some hosts forget they're talking SSCP-LU. */
1946 1946 cp++;
1947 1947 i++;
1948   - trace_ds(" StartField%s %s [translated to space]\n",
1949   - rcba(buffer_addr), see_attr(*cp));
  1948 + trace_ds(" StartField%s %s [translated to space]\n",rcba(buffer_addr), see_attr(*cp));
1950 1949 ctlr_add(buffer_addr, EBC_space, default_cs);
1951 1950 ctlr_add_fg(buffer_addr, default_fg);
1952 1951 ctlr_add_bg(buffer_addr, default_bg);
... ... @@ -2619,20 +2618,20 @@ void changed(H3270 *session, int bstart, int bend)
2619 2618 */
2620 2619 void ctlr_altbuffer(H3270 *session, int alt)
2621 2620 {
2622   - struct ea *etmp;
2623   -
2624 2621 CHECK_SESSION_HANDLE(session);
2625 2622  
2626 2623 if (alt != session->is_altbuffer)
2627 2624 {
  2625 + struct ea *etmp;
2628 2626  
2629 2627 etmp = session->ea_buf;
2630   - session->ea_buf = aea_buf;
2631   - aea_buf = etmp;
  2628 + session->ea_buf = session->aea_buf;
  2629 + session->aea_buf = etmp;
2632 2630  
2633 2631 session->is_altbuffer = alt;
  2632 + lib3270_unselect(session);
  2633 +
2634 2634 ALL_CHANGED;
2635   - // unselect(0, ROWS*COLS);
2636 2635  
2637 2636 /*
2638 2637 * There may be blinkers on the alternate screen; schedule one
... ...
src/lib3270/init.c
... ... @@ -77,17 +77,30 @@ void lib3270_session_free(H3270 *h)
77 77  
78 78 static void update_char(H3270 *session, int addr, unsigned char chr, unsigned short attr, unsigned char cursor)
79 79 {
80   -
81 80 }
82 81  
83 82 static void nop_char(H3270 *session, unsigned char chr)
84 83 {
85   -
86 84 }
87 85  
88 86 static void nop(H3270 *session)
89 87 {
  88 +}
90 89  
  90 +static void update_model(H3270 *session, const char *name, int model, int rows, int cols)
  91 +{
  92 +}
  93 +
  94 +static void changed(H3270 *session, int bstart, int bend)
  95 +{
  96 +}
  97 +
  98 +static void update_cursor(H3270 *session, unsigned short row, unsigned short col, unsigned char c, unsigned short attr)
  99 +{
  100 +}
  101 +
  102 +static void update_oia(H3270 *session, LIB3270_FLAG id, unsigned char on)
  103 +{
91 104 }
92 105  
93 106 static void lib3270_session_init(H3270 *hSession, const char *model)
... ... @@ -99,10 +112,17 @@ static void lib3270_session_init(H3270 *hSession, const char *model)
99 112 memset(hSession,0,sizeof(H3270));
100 113 hSession->sz = sizeof(H3270);
101 114  
102   - // A few dummy calls to avoid "ifs"
  115 + // Dummy calls to avoid "ifs"
103 116 hSession->update = update_char;
  117 + hSession->update_model = update_model;
  118 + hSession->update_cursor = update_cursor;
104 119 hSession->set_selection = nop_char;
105 120 hSession->ctlr_done = nop;
  121 + hSession->changed = changed;
  122 + hSession->erase = screen_disp;
  123 + hSession->suspend = nop;
  124 + hSession->resume = screen_disp;
  125 + hSession->update_oia = update_oia;
106 126  
107 127 hSession->sock = -1;
108 128 hSession->model_num = -1;
... ...
src/lib3270/kybd.c
... ... @@ -1750,10 +1750,9 @@ do_delete(void)
1750 1750  
1751 1751 LIB3270_ACTION( delete )
1752 1752 {
1753   -// reset_idle_timer();
1754   - if (kybdlock) {
  1753 + if (kybdlock)
  1754 + {
1755 1755 ENQUEUE_ACTION(lib3270_delete);
1756   -// enq_ta(Delete_action, CN, CN);
1757 1756 return 0;
1758 1757 }
1759 1758 #if defined(X3270_ANSI) /*[*/
... ... @@ -1781,8 +1780,8 @@ LIB3270_ACTION( delete )
1781 1780 */
1782 1781 LIB3270_ACTION( backspace )
1783 1782 {
1784   -// reset_idle_timer();
1785   - if (kybdlock) {
  1783 + if (kybdlock)
  1784 + {
1786 1785 ENQUEUE_ACTION( lib3270_backspace );
1787 1786 return 0;
1788 1787 }
... ... @@ -2316,13 +2315,12 @@ LIB3270_CURSOR_ACTION( newline )
2316 2315  
2317 2316 /*
2318 2317 * DUP key
2319   - */ /*
2320   -void
2321   -Dup_action(Widget w unused, XEvent *event, String *params, Cardinal *num_params)
  2318 + */
  2319 +LIB3270_ACTION( dup )
2322 2320 {
2323   -// reset_idle_timer();
2324   - if (kybdlock) {
2325   - enq_ta(Dup_action, CN, CN);
  2321 + if (kybdlock)
  2322 + {
  2323 + ENQUEUE_ACTION(lib3270_enter);
2326 2324 return;
2327 2325 }
2328 2326 #if defined(X3270_ANSI)
... ... @@ -2330,10 +2328,9 @@ Dup_action(Widget w unused, XEvent *event, String *params, Cardinal *num_params)
2330 2328 return;
2331 2329 #endif
2332 2330 if (key_Character(EBC_dup, False, False, NULL))
2333   - cursor_move(next_unprotected(h3270.cursor_addr));
  2331 + cursor_move(next_unprotected(hSession->cursor_addr));
2334 2332 }
2335   -*/
2336   -
  2333 +
2337 2334 /*
2338 2335 * FM key
2339 2336 */ /*
... ...
src/lib3270/macros.c
... ... @@ -104,8 +104,9 @@
104 104  
105 105 LIB3270_MACRO( get )
106 106 {
107   - int start, qtd, rows, cols, row, col;
108 107 char *buffer = NULL;
  108 +/*
  109 + int start, qtd, rows, cols, row, col;
109 110  
110 111 switch(argc)
111 112 {
... ... @@ -167,6 +168,7 @@
167 168 buffer = malloc(qtd+1);
168 169 screen_read(buffer, start, qtd);
169 170  
  171 +*/
170 172 return buffer;
171 173 }
172 174  
... ...
src/lib3270/paste.c
... ... @@ -190,7 +190,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str)
190 190 if(kybdlock)
191 191 return -EINVAL;
192 192  
193   - screen_suspend(h);
  193 + h->suspend(h);
194 194  
195 195 while(*str && last && !kybdlock && h->cursor_addr >= data.orig_addr)
196 196 {
... ... @@ -230,7 +230,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str)
230 230 }
231 231 }
232 232  
233   - screen_resume(h);
  233 + h->resume(h);
234 234 return data.qtd;
235 235 }
236 236  
... ...
src/lib3270/screen.c
... ... @@ -96,9 +96,7 @@ static void addch(H3270 *session, int baddr, unsigned char c, unsigned short att
96 96 /* Converted char has changed, update it */
97 97 session->text[baddr].chr = c;
98 98 session->text[baddr].attr = attr;
99   -
100   - if(session->update)
101   - session->update(session,baddr,c,attr,baddr == session->cursor_addr);
  99 + session->update(session,baddr,c,attr,baddr == session->cursor_addr);
102 100 }
103 101  
104 102 /**
... ... @@ -116,16 +114,12 @@ int screen_init(H3270 *session)
116 114 lib3270_register_schange(session,ST_3270_MODE, status_3270_mode,0);
117 115 lib3270_register_schange(session,ST_PRINTER, status_printer,0);
118 116  
119   -// lib3270_register_schange(session,ST_HALF_CONNECT, relabel,0);
120   -// lib3270_register_schange(session,ST_CONNECT, relabel,0);
121   -// lib3270_register_schange(session,ST_3270_MODE, relabel,0);
122   -
123 117 /* Set up the controller. */
124 118 ctlr_init(session,-1);
125 119 ctlr_reinit(session,-1);
126 120  
127 121 /* Finish screen initialization. */
128   - screen_suspend(session);
  122 + session->suspend(session);
129 123  
130 124 return 0;
131 125 }
... ... @@ -143,7 +137,7 @@ static unsigned short color_from_fa(unsigned char fa)
143 137 /*
144 138 * Find the display attributes for a baddr, fa_addr and fa.
145 139 */
146   -static unsigned short calc_attrs(int baddr, int fa_addr, int fa)
  140 +static unsigned short calc_attrs(H3270 *session, int baddr, int fa_addr, int fa)
147 141 {
148 142 unsigned short fg=0, bg=0, a;
149 143 int gr;
... ... @@ -152,10 +146,10 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa)
152 146  
153 147 /* Monochrome is easy, and so is color if nothing is specified. */
154 148 if (!appres.m3279 ||
155   - (!h3270.ea_buf[baddr].fg &&
156   - !h3270.ea_buf[fa_addr].fg &&
157   - !h3270.ea_buf[baddr].bg &&
158   - !h3270.ea_buf[fa_addr].bg))
  149 + (!session->ea_buf[baddr].fg &&
  150 + !session->ea_buf[fa_addr].fg &&
  151 + !session->ea_buf[baddr].bg &&
  152 + !session->ea_buf[fa_addr].bg))
159 153 {
160 154 a = color_from_fa(fa);
161 155 }
... ... @@ -163,23 +157,23 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa)
163 157 {
164 158  
165 159 /* The current location or the fa specifies the fg or bg. */
166   - if (h3270.ea_buf[baddr].fg)
  160 + if (session->ea_buf[baddr].fg)
167 161 {
168   - fg = h3270.ea_buf[baddr].fg & 0x0f;
  162 + fg = session->ea_buf[baddr].fg & 0x0f;
169 163 }
170   - else if (h3270.ea_buf[fa_addr].fg)
  164 + else if (session->ea_buf[fa_addr].fg)
171 165 {
172   - fg = h3270.ea_buf[fa_addr].fg & 0x0f;
  166 + fg = session->ea_buf[fa_addr].fg & 0x0f;
173 167 }
174 168 else
175 169 {
176 170 fg = DEFCOLOR_MAP(fa);
177 171 }
178 172  
179   - if (h3270.ea_buf[baddr].bg)
180   - bg = h3270.ea_buf[baddr].bg & 0x0f;
181   - else if (h3270.ea_buf[fa_addr].bg)
182   - bg = h3270.ea_buf[fa_addr].bg & 0x0f;
  173 + if (session->ea_buf[baddr].bg)
  174 + bg = session->ea_buf[baddr].bg & 0x0f;
  175 + else if (session->ea_buf[fa_addr].bg)
  176 + bg = session->ea_buf[fa_addr].bg & 0x0f;
183 177 else
184 178 bg = 0;
185 179  
... ... @@ -188,10 +182,10 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa)
188 182  
189 183 /* Compute the display attributes. */
190 184  
191   - if (h3270.ea_buf[baddr].gr)
192   - gr = h3270.ea_buf[baddr].gr;
193   - else if (h3270.ea_buf[fa_addr].gr)
194   - gr = h3270.ea_buf[fa_addr].gr;
  185 + if (session->ea_buf[baddr].gr)
  186 + gr = session->ea_buf[baddr].gr;
  187 + else if (session->ea_buf[fa_addr].gr)
  188 + gr = session->ea_buf[fa_addr].gr;
195 189 else
196 190 gr = 0;
197 191  
... ... @@ -216,16 +210,6 @@ static unsigned short calc_attrs(int baddr, int fa_addr, int fa)
216 210 return a;
217 211 }
218 212  
219   -/* Erase screen */
220   -void screen_erase(H3270 *session)
221   -{
222   - /* If the application supplies a callback use it!, if not just redraw with blanks */
223   - if(session->erase)
224   - session->erase(session);
225   - else
226   - screen_update(session,0,session->rows * session->cols);
227   -}
228   -
229 213 LIB3270_EXPORT void lib3270_get_screen_size(H3270 *h, int *r, int *c)
230 214 {
231 215 *r = h->rows;
... ... @@ -244,8 +228,7 @@ void update_model_info(H3270 *session, int model, int cols, int rows)
244 228 /* Update the model name. */
245 229 (void) sprintf(session->model_name, "327%c-%d%s",appres.m3279 ? '9' : '8',session->model_num,appres.extended ? "-E" : "");
246 230  
247   - if(session->update_model)
248   - session->update_model(session, session->model_name,session->model_num,rows,cols);
  231 + session->update_model(session, session->model_name,session->model_num,rows,cols);
249 232 }
250 233  
251 234 LIB3270_EXPORT int lib3270_get_contents(H3270 *h, int first, int last, unsigned char *chr, unsigned short *attr)
... ... @@ -269,40 +252,6 @@ LIB3270_EXPORT int lib3270_get_contents(H3270 *h, int first, int last, unsigned
269 252 return 0;
270 253 }
271 254  
272   -/* Get screen contents */
273   -int screen_read(char *dest, int baddr, int count)
274   -{
275   - unsigned char fa = get_field_attribute(&h3270,baddr);
276   - int max = (h3270.maxROWS * h3270.maxCOLS);
277   -
278   - *dest = 0;
279   -
280   - while(count-- > 0)
281   - {
282   - if(baddr > max)
283   - {
284   - *dest = 0;
285   - return EFAULT;
286   - }
287   -
288   - if (h3270.ea_buf[baddr].fa)
289   - fa = h3270.ea_buf[baddr].fa;
290   -
291   - if(FA_IS_ZERO(fa))
292   - *dest = ' ';
293   - else if(h3270.ea_buf[baddr].cc)
294   - *dest = ebc2asc[h3270.ea_buf[baddr].cc];
295   - else
296   - *dest = ' ';
297   -
298   - dest++;
299   - baddr++;
300   - }
301   - *dest = 0;
302   -
303   - return 0;
304   -}
305   -
306 255 /* Display what's in the buffer. */
307 256 static void screen_update(H3270 *session, int bstart, int bend)
308 257 {
... ... @@ -316,8 +265,6 @@ static void screen_update(H3270 *session, int bstart, int bend)
316 265 a = color_from_fa(fa);
317 266 fa_addr = find_field_attribute(session,bstart); // may be -1, that's okay
318 267  
319   -// Trace("%s ea_buf=%p",__FUNCTION__,ea_buf);
320   -
321 268 for(baddr = bstart; baddr < bend; baddr++)
322 269 {
323 270 if(session->ea_buf[baddr].fa)
... ... @@ -325,7 +272,7 @@ static void screen_update(H3270 *session, int bstart, int bend)
325 272 // Field attribute.
326 273 fa_addr = baddr;
327 274 fa = session->ea_buf[baddr].fa;
328   - a = calc_attrs(baddr, baddr, fa);
  275 + a = calc_attrs(session, baddr, baddr, fa);
329 276 addch(session,baddr,' ',(attr = COLOR_GREEN)|CHAR_ATTR_MARKER);
330 277 }
331 278 else if (FA_IS_ZERO(fa))
... ... @@ -342,14 +289,7 @@ static void screen_update(H3270 *session, int bstart, int bend)
342 289 }
343 290 else
344 291 {
345   -// unsigned short b;
346   - //
347   - // Override some of the field
348   - // attributes.
349   - //
350   -// attr = b = calc_attrs(baddr, fa_addr, fa);
351   -
352   - attr = calc_attrs(baddr, fa_addr, fa);
  292 + attr = calc_attrs(session, baddr, fa_addr, fa);
353 293 }
354 294  
355 295 if (session->ea_buf[baddr].cs == CS_LINEDRAW)
... ... @@ -370,10 +310,7 @@ static void screen_update(H3270 *session, int bstart, int bend)
370 310 }
371 311  
372 312 }
373   -
374   - if(session->changed)
375   - session->changed(session,bstart,bend);
376   -
  313 + session->changed(session,bstart,bend);
377 314 }
378 315  
379 316 void screen_disp(H3270 *session)
... ... @@ -381,15 +318,6 @@ void screen_disp(H3270 *session)
381 318 screen_update(session,0,session->rows*session->cols);
382 319 }
383 320  
384   -void screen_suspend(H3270 *session)
385   -{
386   -}
387   -
388   -void screen_resume(H3270 *session)
389   -{
390   - screen_disp(session);
391   -}
392   -
393 321 LIB3270_EXPORT int lib3270_get_cursor_address(H3270 *h)
394 322 {
395 323 CHECK_SESSION_HANDLE(h);
... ... @@ -408,9 +336,7 @@ LIB3270_EXPORT int lib3270_set_cursor_address(H3270 *h, int baddr)
408 336 return ret;
409 337  
410 338 h->cursor_addr = baddr;
411   -
412   - if(h->update_cursor)
413   - h->update_cursor(h,(unsigned short) (baddr/h->cols),(unsigned short) (baddr%h->cols),h->text[baddr].chr,h->text[baddr].attr);
  339 + h->update_cursor(h,(unsigned short) (baddr/h->cols),(unsigned short) (baddr%h->cols),h->text[baddr].chr,h->text[baddr].attr);
414 340  
415 341 return ret;
416 342 }
... ... @@ -421,13 +347,8 @@ void set_status(H3270 *session, LIB3270_FLAG id, Boolean on)
421 347 {
422 348 CHECK_SESSION_HANDLE(session);
423 349  
424   - if(id < LIB3270_FLAG_COUNT)
425   - {
426   - session->oia_flag[id] = (on != 0);
427   -
428   - if(session->update_oia)
429   - session->update_oia(session,id,session->oia_flag[id]);
430   - }
  350 + session->oia_flag[id] = (on != 0);
  351 + session->update_oia(session,id,session->oia_flag[id]);
431 352  
432 353 }
433 354  
... ...
src/lib3270/screenc.h
... ... @@ -26,8 +26,9 @@
26 26 #define screen_132() /* */
27 27 #define screen_80() /* */
28 28  
  29 +#define screen_erase(x) x->erase(x)
  30 +// LIB3270_INTERNAL void screen_erase(H3270 *session);
29 31  
30   -LIB3270_INTERNAL void screen_erase(H3270 *session);
31 32 LIB3270_INTERNAL void screen_changed(H3270 *session, int bstart, int bend);
32 33 LIB3270_INTERNAL int screen_init(H3270 *session);
33 34 // LIB3270_INTERNAL void screen_flip(void);
... ...
src/lib3270/trace_dsc.h
1 1 /*
2   - * Copyright 1995, 1999, 2001, 2002, 2003, 2005, 2006 by Paul Mattes.
3   - * Permission to use, copy, modify, and distribute this software and its
4   - * documentation for any purpose and without fee is hereby granted,
5   - * provided that the above copyright notice appear in all copies and that
6   - * both that copyright notice and this permission notice appear in
7   - * supporting documentation.
8   - *
9   - * x3270, c3270, s3270 and tcl3270 are distributed in the hope that they will
10   - * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
11   - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE
12   - * for more details.
  2 + * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270
  3 + * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a
  4 + * aplicativos mainframe. Registro no INPI sob o nome G3270.
  5 + *
  6 + * Copyright (C) <2008> <Banco do Brasil S.A.>
  7 + *
  8 + * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob
  9 + * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela
  10 + * Free Software Foundation.
  11 + *
  12 + * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER
  13 + * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO
  14 + * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para
  15 + * obter mais detalhes.
  16 + *
  17 + * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este
  18 + * programa; se não, escreva para a Free Software Foundation, Inc., 59 Temple
  19 + * Place, Suite 330, Boston, MA, 02111-1307, USA
  20 + *
  21 + * Este programa está nomeado como trace_dsc.h e possui - linhas de código.
  22 + *
  23 + * Contatos:
  24 + *
  25 + * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck)
  26 + * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça)
  27 + *
13 28 */
14 29  
15 30 /*
... ...