Commit a98e15935b748262cdaf4c74c63d52737eb57e76

Authored by perry.werneck@gmail.com
1 parent 96b4279c

Muitas atualizacoes enfileiradas derrubam o windows 7 com falha dentro da ntdll.dll

@@ -502,9 +502,7 @@ static int DefaultProcessEvents(int block) @@ -502,9 +502,7 @@ static int DefaultProcessEvents(int block)
502 FD_ISSET(ip->source, &rfds)) 502 FD_ISSET(ip->source, &rfds))
503 { 503 {
504 #endif 504 #endif
505 - Trace("%s",__FUNCTION__);  
506 (*ip->proc)(ip->session); 505 (*ip->proc)(ip->session);
507 - Trace("%s",__FUNCTION__);  
508 processed_any = True; 506 processed_any = True;
509 if (inputs_changed) 507 if (inputs_changed)
510 goto retry; 508 goto retry;
@@ -513,9 +511,7 @@ static int DefaultProcessEvents(int block) @@ -513,9 +511,7 @@ static int DefaultProcessEvents(int block)
513 #if !defined(_WIN32) 511 #if !defined(_WIN32)
514 if (((unsigned long)ip->condition & InputWriteMask) && FD_ISSET(ip->source, &wfds)) 512 if (((unsigned long)ip->condition & InputWriteMask) && FD_ISSET(ip->source, &wfds))
515 { 513 {
516 - Trace("%s",__FUNCTION__);  
517 (*ip->proc)(ip->session); 514 (*ip->proc)(ip->session);
518 - Trace("%s",__FUNCTION__);  
519 processed_any = True; 515 processed_any = True;
520 if (inputs_changed) 516 if (inputs_changed)
521 goto retry; 517 goto retry;
@@ -547,9 +543,7 @@ static int DefaultProcessEvents(int block) @@ -547,9 +543,7 @@ static int DefaultProcessEvents(int block)
547 #endif 543 #endif
548 timeouts = t->next; 544 timeouts = t->next;
549 t->in_play = True; 545 t->in_play = True;
550 - Trace("%s",__FUNCTION__);  
551 (*t->proc)(t->session); 546 (*t->proc)(t->session);
552 - Trace("%s",__FUNCTION__);  
553 processed_any = True; 547 processed_any = True;
554 Free(t); 548 Free(t);
555 } else 549 } else
@@ -458,7 +458,6 @@ void ctlr_erase(H3270 *session, int alt) @@ -458,7 +458,6 @@ void ctlr_erase(H3270 *session, int alt)
458 CHECK_SESSION_HANDLE(session); 458 CHECK_SESSION_HANDLE(session);
459 459
460 kybd_inhibit(False); 460 kybd_inhibit(False);
461 -  
462 ctlr_clear(session,True); 461 ctlr_clear(session,True);
463 screen_erase(session); 462 screen_erase(session);
464 463
@@ -486,6 +485,7 @@ void ctlr_erase(H3270 *session, int alt) @@ -486,6 +485,7 @@ void ctlr_erase(H3270 *session, int alt)
486 } 485 }
487 486
488 session->screen_alt = alt; 487 session->screen_alt = alt;
  488 +
489 } 489 }
490 490
491 491
@@ -2329,6 +2329,8 @@ ctlr_clear(H3270 *session, Boolean can_snap) @@ -2329,6 +2329,8 @@ ctlr_clear(H3270 *session, Boolean can_snap)
2329 #endif /*]*/ 2329 #endif /*]*/
2330 2330
2331 /* Clear the screen. */ 2331 /* Clear the screen. */
  2332 + trace("%p",session->ea_buf);
  2333 +
2332 (void) memset((char *)session->ea_buf, 0, session->rows*session->cols*sizeof(struct ea)); 2334 (void) memset((char *)session->ea_buf, 0, session->rows*session->cols*sizeof(struct ea));
2333 cursor_move(&h3270,0); 2335 cursor_move(&h3270,0);
2334 session->buffer_addr = 0; 2336 session->buffer_addr = 0;
@@ -2341,8 +2343,7 @@ ctlr_clear(H3270 *session, Boolean can_snap) @@ -2341,8 +2343,7 @@ ctlr_clear(H3270 *session, Boolean can_snap)
2341 sscp_start = 0; 2343 sscp_start = 0;
2342 2344
2343 // ALL_CHANGED; 2345 // ALL_CHANGED;
2344 - screen_erase(session);  
2345 - 2346 + session->erase(session);
2346 } 2347 }
2347 2348
2348 /* 2349 /*
@@ -377,8 +377,6 @@ void ft_complete(H3270FT *session, const char *errmsg) @@ -377,8 +377,6 @@ void ft_complete(H3270FT *session, const char *errmsg)
377 ((double)(t1.tv_sec - starting_time.tv_sec) + 377 ((double)(t1.tv_sec - starting_time.tv_sec) +
378 (double)(t1.tv_usec - starting_time.tv_usec) / 1.0e6); 378 (double)(t1.tv_usec - starting_time.tv_usec) / 1.0e6);
379 379
380 - trace("%s",__FUNCTION__);  
381 -  
382 // Close the local file. 380 // Close the local file.
383 if(session->ft_local_file) 381 if(session->ft_local_file)
384 { 382 {
@@ -420,8 +418,6 @@ void ft_update_length(H3270FT *session) @@ -420,8 +418,6 @@ void ft_update_length(H3270FT *session)
420 (double)(t1.tv_usec - starting_time.tv_usec) / 1.0e6); 418 (double)(t1.tv_usec - starting_time.tv_usec) / 1.0e6);
421 } 419 }
422 420
423 - Trace("%s",__FUNCTION__);  
424 -  
425 session->update(session,ft_length,kbytes_sec); 421 session->update(session,ft_length,kbytes_sec);
426 422
427 } 423 }
@@ -429,8 +425,6 @@ void ft_update_length(H3270FT *session) @@ -429,8 +425,6 @@ void ft_update_length(H3270FT *session)
429 // Process a transfer acknowledgement. 425 // Process a transfer acknowledgement.
430 void ft_running(H3270FT *h, Boolean is_cut) 426 void ft_running(H3270FT *h, Boolean is_cut)
431 { 427 {
432 - trace("%s",__FUNCTION__);  
433 -  
434 CHECK_FT_HANDLE(h); 428 CHECK_FT_HANDLE(h);
435 429
436 ft_is_cut = is_cut; 430 ft_is_cut = is_cut;
@@ -450,8 +444,6 @@ void ft_running(H3270FT *h, Boolean is_cut) @@ -450,8 +444,6 @@ void ft_running(H3270FT *h, Boolean is_cut)
450 // Process a protocol-generated abort. 444 // Process a protocol-generated abort.
451 void ft_aborting(H3270FT *h) 445 void ft_aborting(H3270FT *h)
452 { 446 {
453 -// Trace("%s",__FUNCTION__);  
454 -  
455 CHECK_FT_HANDLE(h); 447 CHECK_FT_HANDLE(h);
456 448
457 if (h->state == FT_RUNNING || h->state == FT_ABORT_WAIT) 449 if (h->state == FT_RUNNING || h->state == FT_ABORT_WAIT)
@@ -244,9 +244,11 @@ static void initialize(void) @@ -244,9 +244,11 @@ static void initialize(void)
244 #endif 244 #endif
245 */ 245 */
246 246
247 -#if defined(C3270) && defined(_WIN32) /*[*/ 247 +/*
  248 +#if defined(C3270) && defined(_WIN32)
248 appres.highlight_underline = True; 249 appres.highlight_underline = True;
249 -#endif /*]*/ 250 +#endif
  251 +*/
250 252
251 /* 253 /*
252 #if defined(C3270) && !defined(_WIN32) && !defined(LIB3270) 254 #if defined(C3270) && !defined(_WIN32) && !defined(LIB3270)
@@ -407,9 +409,9 @@ static struct { @@ -407,9 +409,9 @@ static struct {
407 #if defined(X3270_SCRIPT) /*[*/ 409 #if defined(X3270_SCRIPT) /*[*/
408 { ResPluginCommand, offset(plugin_command), XRM_STRING }, 410 { ResPluginCommand, offset(plugin_command), XRM_STRING },
409 #endif /*]*/ 411 #endif /*]*/
410 -#if defined(C3270) && defined(_WIN32) /*[*/  
411 - { ResHighlightUnderline, offset(highlight_underline), XRM_BOOLEAN },  
412 -#endif /*]*/ 412 +//#if defined(C3270) && defined(_WIN32)
  413 +// { ResHighlightUnderline, offset(highlight_underline), XRM_BOOLEAN },
  414 +//#endif
413 #if defined(C3270) && defined(X3270_SCRIPT) /*[*/ 415 #if defined(C3270) && defined(X3270_SCRIPT) /*[*/
414 { ResIdleCommand,offset(idle_command), XRM_STRING }, 416 { ResIdleCommand,offset(idle_command), XRM_STRING },
415 { ResIdleCommandEnabled,offset(idle_command_enabled), XRM_BOOLEAN }, 417 { ResIdleCommandEnabled,offset(idle_command_enabled), XRM_BOOLEAN },
@@ -738,23 +738,28 @@ void host_disconnected(H3270 *session) @@ -738,23 +738,28 @@ void host_disconnected(H3270 *session)
738 } 738 }
739 739
740 /* Register a function interested in a state change. */ 740 /* Register a function interested in a state change. */
741 -LIB3270_EXPORT void lib3270_register_schange(H3270 *h,LIB3270_STATE_CHANGE tx, void (*func)(H3270 *, int, void *),void *data) 741 +LIB3270_EXPORT void lib3270_register_schange(H3270 *h, LIB3270_STATE_CHANGE tx, void (*func)(H3270 *, int, void *),void *data)
742 { 742 {
743 struct lib3270_state_callback *st; 743 struct lib3270_state_callback *st;
744 744
745 CHECK_SESSION_HANDLE(h); 745 CHECK_SESSION_HANDLE(h);
746 746
747 - st = (struct lib3270_state_callback *)Malloc(sizeof(*st));  
748 - 747 + st = (struct lib3270_state_callback *) lib3270_malloc(sizeof(struct lib3270_state_callback));
749 st->func = func; 748 st->func = func;
750 - st->next = (struct lib3270_state_callback *)NULL;  
751 749
752 - if (h->st_last[tx] != (struct lib3270_state_callback *)NULL) 750 + if (h->st_last[tx])
753 h->st_last[tx]->next = st; 751 h->st_last[tx]->next = st;
754 else 752 else
755 h->st_callbacks[tx] = st; 753 h->st_callbacks[tx] = st;
  754 +
756 h->st_last[tx] = st; 755 h->st_last[tx] = st;
757 756
  757 + #warning AQUI
  758 + if(tx == LIB3270_STATE_CONNECT)
  759 + {
  760 + trace("%s st=%p func=%p",__FUNCTION__,st,func);
  761 + }
  762 +
758 } 763 }
759 764
760 /* Signal a state change. */ 765 /* Signal a state change. */
@@ -782,18 +787,22 @@ void lib3270_st_changed(H3270 *h, LIB3270_STATE tx, int mode) @@ -782,18 +787,22 @@ void lib3270_st_changed(H3270 *h, LIB3270_STATE tx, int mode)
782 787
783 CHECK_SESSION_HANDLE(h); 788 CHECK_SESSION_HANDLE(h);
784 789
785 - trace("%s is %d",state_name[tx],mode); 790 + trace("%s is %d on session %p",state_name[tx],mode,h);
786 791
787 - for (st = h->st_callbacks[tx];st != (struct lib3270_state_callback *)NULL;st = st->next) 792 + for (st = h->st_callbacks[tx];st;st = st->next)
788 { 793 {
  794 + trace("st=%p func=%p",st,st->func);
789 st->func(h,mode,st->data); 795 st->func(h,mode,st->data);
790 } 796 }
  797 +
  798 + trace("%s ends",__FUNCTION__);
791 } 799 }
792 800
793 LIB3270_EXPORT const char * lib3270_set_host(H3270 *h, const char *n) 801 LIB3270_EXPORT const char * lib3270_set_host(H3270 *h, const char *n)
794 { 802 {
795 CHECK_SESSION_HANDLE(h); 803 CHECK_SESSION_HANDLE(h);
796 804
  805 + #warning AQUI
797 Trace("%s: %p",__FUNCTION__,n); 806 Trace("%s: %p",__FUNCTION__,n);
798 807
799 if(n && n != h->full_current_host) 808 if(n && n != h->full_current_host)
@@ -411,6 +411,7 @@ static void kybd_connect(H3270 *session, int connected, void *dunno) @@ -411,6 +411,7 @@ static void kybd_connect(H3270 *session, int connected, void *dunno)
411 { 411 {
412 if (kybdlock & KL_DEFERRED_UNLOCK) 412 if (kybdlock & KL_DEFERRED_UNLOCK)
413 RemoveTimeOut(unlock_id); 413 RemoveTimeOut(unlock_id);
  414 +
414 kybdlock_clr(-1, "kybd_connect"); 415 kybdlock_clr(-1, "kybd_connect");
415 416
416 if (connected) { 417 if (connected) {
@@ -580,12 +581,9 @@ LIB3270_FKEY_ACTION( pakey ) @@ -580,12 +581,9 @@ LIB3270_FKEY_ACTION( pakey )
580 581
581 LIB3270_ACTION(break) 582 LIB3270_ACTION(break)
582 { 583 {
583 -  
584 if (!IN_3270) 584 if (!IN_3270)
585 return 0; 585 return 0;
586 586
587 - Trace("%s",__FUNCTION__);  
588 -  
589 net_break(); 587 net_break();
590 588
591 return 0; 589 return 0;
@@ -599,8 +597,6 @@ LIB3270_ACTION(attn) @@ -599,8 +597,6 @@ LIB3270_ACTION(attn)
599 if (!IN_3270) 597 if (!IN_3270)
600 return 0; 598 return 0;
601 599
602 - Trace("%s",__FUNCTION__);  
603 -  
604 net_interrupt(); 600 net_interrupt();
605 601
606 return 0; 602 return 0;
@@ -1466,8 +1462,6 @@ do_reset(Boolean explicit) @@ -1466,8 +1462,6 @@ do_reset(Boolean explicit)
1466 * a half-composed key, simply flush it. 1462 * a half-composed key, simply flush it.
1467 */ 1463 */
1468 1464
1469 - Trace("%s",__FUNCTION__);  
1470 -  
1471 if (explicit 1465 if (explicit
1472 #if defined(X3270_FT) /*[*/ 1466 #if defined(X3270_FT) /*[*/
1473 || lib3270_get_ft_state(&h3270) != LIB3270_FT_STATE_NONE 1467 || lib3270_get_ft_state(&h3270) != LIB3270_FT_STATE_NONE
@@ -2316,7 +2310,6 @@ LIB3270_KEY_ACTION( enter ) @@ -2316,7 +2310,6 @@ LIB3270_KEY_ACTION( enter )
2316 2310
2317 LIB3270_ACTION( sysreq ) 2311 LIB3270_ACTION( sysreq )
2318 { 2312 {
2319 - Trace("%s",__FUNCTION__);  
2320 // reset_idle_timer(); 2313 // reset_idle_timer();
2321 if (IN_ANSI) 2314 if (IN_ANSI)
2322 return 0; 2315 return 0;
@@ -104,7 +104,9 @@ static void addch(H3270 *session, int baddr, unsigned char c, unsigned short att @@ -104,7 +104,9 @@ static void addch(H3270 *session, int baddr, unsigned char c, unsigned short att
104 /* Converted char has changed, update it */ 104 /* Converted char has changed, update it */
105 session->text[baddr].chr = c; 105 session->text[baddr].chr = c;
106 session->text[baddr].attr = attr; 106 session->text[baddr].attr = attr;
  107 +
107 session->update(session,baddr,c,attr,baddr == session->cursor_addr); 108 session->update(session,baddr,c,attr,baddr == session->cursor_addr);
  109 +
108 } 110 }
109 111
110 LIB3270_EXPORT int lib3270_get_element(H3270 *h, int baddr, unsigned char *c, unsigned short *attr) 112 LIB3270_EXPORT int lib3270_get_element(H3270 *h, int baddr, unsigned char *c, unsigned short *attr)
@@ -338,14 +340,12 @@ static void screen_update(H3270 *session, int bstart, int bend) @@ -338,14 +340,12 @@ static void screen_update(H3270 *session, int bstart, int bend)
338 } 340 }
339 else 341 else
340 { 342 {
341 - if (lib3270_get_toggle(session,MONOCASE)) 343 + if(lib3270_get_toggle(session,MONOCASE))
342 addch(session,baddr,asc2uc[ebc2asc[session->ea_buf[baddr].cc]],attr,&first,&last); 344 addch(session,baddr,asc2uc[ebc2asc[session->ea_buf[baddr].cc]],attr,&first,&last);
343 else 345 else
344 addch(session,baddr,ebc2asc[session->ea_buf[baddr].cc],attr,&first,&last); 346 addch(session,baddr,ebc2asc[session->ea_buf[baddr].cc],attr,&first,&last);
345 } 347 }
346 } 348 }
347 -  
348 -  
349 } 349 }
350 350
351 if(first >= 0) 351 if(first >= 0)
@@ -365,6 +365,7 @@ static void screen_update(H3270 *session, int bstart, int bend) @@ -365,6 +365,7 @@ static void screen_update(H3270 *session, int bstart, int bend)
365 365
366 void screen_disp(H3270 *session) 366 void screen_disp(H3270 *session)
367 { 367 {
  368 + CHECK_SESSION_HANDLE(session);
368 screen_update(session,0,session->rows*session->cols); 369 screen_update(session,0,session->rows*session->cols);
369 } 370 }
370 371
@@ -598,8 +598,6 @@ LIB3270_EXPORT int lib3270_drag_selection(H3270 *h, unsigned char flag, int orig @@ -598,8 +598,6 @@ LIB3270_EXPORT int lib3270_drag_selection(H3270 *h, unsigned char flag, int orig
598 else if((flag&0x8F) == SELECTION_ACTIVE) 598 else if((flag&0x8F) == SELECTION_ACTIVE)
599 return lib3270_move_selected_area(h,origin,baddr); 599 return lib3270_move_selected_area(h,origin,baddr);
600 600
601 -// trace("%s",__FUNCTION__);  
602 -  
603 row = baddr/h->cols; 601 row = baddr/h->cols;
604 col = baddr%h->cols; 602 col = baddr%h->cols;
605 603
@@ -84,7 +84,8 @@ LIB3270_EXPORT unsigned char lib3270_get_toggle(H3270 *session, LIB3270_TOGGLE i @@ -84,7 +84,8 @@ LIB3270_EXPORT unsigned char lib3270_get_toggle(H3270 *session, LIB3270_TOGGLE i
84 84
85 if(ix < 0 || ix >= N_TOGGLES) 85 if(ix < 0 || ix >= N_TOGGLES)
86 return 0; 86 return 0;
87 - return (unsigned char) session->toggle[ix].value != 0; 87 +
  88 + return session->toggle[ix].value != 0;
88 } 89 }
89 90
90 /* 91 /*