Commit 9a120c29c39c52ec0f3df0f86cf33541cd1c2cc0
1 parent
f16069c2
Exists in
master
and in
3 other branches
Mudando processo de trace para um único callback
Showing
9 changed files
with
224 additions
and
237 deletions
Show diff stats
... | ... | @@ -407,10 +407,10 @@ |
407 | 407 | #define register_schange(tx,func) lib3270_register_schange(NULL,tx,func,NULL) |
408 | 408 | |
409 | 409 | /* Console/Trace window */ |
410 | - LOCAL_EXTERN HCONSOLE console_window_new(const char *title, const char *label); | |
411 | - LOCAL_EXTERN void console_window_delete(HCONSOLE hwnd); | |
412 | - LOCAL_EXTERN int console_window_append(HCONSOLE hwnd, const char *fmt, ...); | |
413 | - LOCAL_EXTERN char * console_window_wait_for_user_entry(HCONSOLE hwnd); | |
410 | +// LOCAL_EXTERN HCONSOLE console_window_new(const char *title, const char *label); | |
411 | +// LOCAL_EXTERN void console_window_delete(HCONSOLE hwnd); | |
412 | +// LOCAL_EXTERN int console_window_append(HCONSOLE hwnd, const char *fmt, ...); | |
413 | +// LOCAL_EXTERN char * console_window_wait_for_user_entry(HCONSOLE hwnd); | |
414 | 414 | |
415 | 415 | #ifdef __cplusplus |
416 | 416 | } | ... | ... |
ctlr.c
... | ... | @@ -737,8 +737,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) |
737 | 737 | *obptr++ = h3270.ea_buf[baddr].cc; |
738 | 738 | if (!any) |
739 | 739 | trace_ds(" '"); |
740 | - trace_ds("%s", | |
741 | - see_ebc(ea_buf[baddr].cc)); | |
740 | + trace_ds("%s",see_ebc(h3270.ea_buf[baddr].cc)); | |
742 | 741 | any = True; |
743 | 742 | } |
744 | 743 | INC_BA(baddr); |
... | ... | @@ -783,7 +782,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) |
783 | 782 | *obptr++ = h3270.ea_buf[baddr].cc; |
784 | 783 | if (!any) |
785 | 784 | trace_ds("%s","'"); |
786 | - trace_ds("%s",see_ebc(ea_buf[baddr].cc)); | |
785 | + trace_ds("%s",see_ebc(h3270.ea_buf[baddr].cc)); | |
787 | 786 | any = True; |
788 | 787 | nbytes++; |
789 | 788 | } |
... | ... | @@ -861,16 +860,14 @@ ctlr_read_buffer(unsigned char aid_byte) |
861 | 860 | space3270out(2); |
862 | 861 | *obptr++ = XA_FOREGROUND; |
863 | 862 | *obptr++ = h3270.ea_buf[baddr].fg; |
864 | - trace_ds("%s", see_efa(XA_FOREGROUND, | |
865 | - ea_buf[baddr].fg)); | |
863 | + trace_ds("%s", see_efa(XA_FOREGROUND, h3270.ea_buf[baddr].fg)); | |
866 | 864 | (*(obuf + attr_count))++; |
867 | 865 | } |
868 | 866 | if (h3270.ea_buf[baddr].bg) { |
869 | 867 | space3270out(2); |
870 | 868 | *obptr++ = XA_BACKGROUND; |
871 | 869 | *obptr++ = h3270.ea_buf[baddr].bg; |
872 | - trace_ds("%s", see_efa(XA_BACKGROUND, | |
873 | - ea_buf[baddr].bg)); | |
870 | + trace_ds("%s", see_efa(XA_BACKGROUND, h3270.ea_buf[baddr].bg)); | |
874 | 871 | (*(obuf + attr_count))++; |
875 | 872 | } |
876 | 873 | if (h3270.ea_buf[baddr].gr) { |
... | ... | @@ -885,8 +882,7 @@ ctlr_read_buffer(unsigned char aid_byte) |
885 | 882 | space3270out(2); |
886 | 883 | *obptr++ = XA_CHARSET; |
887 | 884 | *obptr++ = host_cs(h3270.ea_buf[baddr].cs); |
888 | - trace_ds("%s", see_efa(XA_CHARSET, | |
889 | - host_cs(ea_buf[baddr].cs))); | |
885 | + trace_ds("%s", see_efa(XA_CHARSET,host_cs(h3270.ea_buf[baddr].cs))); | |
890 | 886 | (*(obuf + attr_count))++; |
891 | 887 | } |
892 | 888 | } |
... | ... | @@ -913,12 +909,12 @@ ctlr_read_buffer(unsigned char aid_byte) |
913 | 909 | if (any) |
914 | 910 | trace_ds("'"); |
915 | 911 | |
916 | - trace_ds(" %s", see_ebc(ea_buf[baddr].cc)); | |
912 | + trace_ds(" %s", see_ebc(h3270.ea_buf[baddr].cc)); | |
917 | 913 | any = False; |
918 | 914 | } else { |
919 | 915 | if (!any) |
920 | 916 | trace_ds(" '"); |
921 | - trace_ds("%s", see_ebc(ea_buf[baddr].cc)); | |
917 | + trace_ds("%s", see_ebc(h3270.ea_buf[baddr].cc)); | |
922 | 918 | any = True; |
923 | 919 | } |
924 | 920 | } |
... | ... | @@ -951,39 +947,39 @@ ctlr_snap_buffer(void) |
951 | 947 | *obptr++ = code_table[0]; |
952 | 948 | |
953 | 949 | do { |
954 | - if (ea_buf[baddr].fa) { | |
950 | + if (h3270.ea_buf[baddr].fa) { | |
955 | 951 | space3270out(4); |
956 | 952 | *obptr++ = ORDER_SFE; |
957 | 953 | attr_count = obptr - obuf; |
958 | 954 | *obptr++ = 1; /* for now */ |
959 | 955 | *obptr++ = XA_3270; |
960 | - *obptr++ = code_table[ea_buf[baddr].fa & ~FA_PRINTABLE]; | |
961 | - if (ea_buf[baddr].fg) { | |
956 | + *obptr++ = code_table[h3270.ea_buf[baddr].fa & ~FA_PRINTABLE]; | |
957 | + if (h3270.ea_buf[baddr].fg) { | |
962 | 958 | space3270out(2); |
963 | 959 | *obptr++ = XA_FOREGROUND; |
964 | - *obptr++ = ea_buf[baddr].fg; | |
960 | + *obptr++ = h3270.ea_buf[baddr].fg; | |
965 | 961 | (*(obuf + attr_count))++; |
966 | 962 | } |
967 | - if (ea_buf[baddr].bg) { | |
963 | + if (h3270.ea_buf[baddr].bg) { | |
968 | 964 | space3270out(2); |
969 | 965 | *obptr++ = XA_BACKGROUND; |
970 | - *obptr++ = ea_buf[baddr].fg; | |
966 | + *obptr++ = h3270.ea_buf[baddr].fg; | |
971 | 967 | (*(obuf + attr_count))++; |
972 | 968 | } |
973 | - if (ea_buf[baddr].gr) { | |
969 | + if (h3270.ea_buf[baddr].gr) { | |
974 | 970 | space3270out(2); |
975 | 971 | *obptr++ = XA_HIGHLIGHTING; |
976 | - *obptr++ = ea_buf[baddr].gr | 0xf0; | |
972 | + *obptr++ = h3270.ea_buf[baddr].gr | 0xf0; | |
977 | 973 | (*(obuf + attr_count))++; |
978 | 974 | } |
979 | - if (ea_buf[baddr].cs & CS_MASK) { | |
975 | + if (h3270.ea_buf[baddr].cs & CS_MASK) { | |
980 | 976 | space3270out(2); |
981 | 977 | *obptr++ = XA_CHARSET; |
982 | - *obptr++ = host_cs(ea_buf[baddr].cs); | |
978 | + *obptr++ = host_cs(h3270.ea_buf[baddr].cs); | |
983 | 979 | (*(obuf + attr_count))++; |
984 | 980 | } |
985 | 981 | } else { |
986 | - av = ea_buf[baddr].fg; | |
982 | + av = h3270.ea_buf[baddr].fg; | |
987 | 983 | if (current_fg != av) { |
988 | 984 | current_fg = av; |
989 | 985 | space3270out(3); |
... | ... | @@ -991,7 +987,7 @@ ctlr_snap_buffer(void) |
991 | 987 | *obptr++ = XA_FOREGROUND; |
992 | 988 | *obptr++ = av; |
993 | 989 | } |
994 | - av = ea_buf[baddr].bg; | |
990 | + av = h3270.ea_buf[baddr].bg; | |
995 | 991 | if (current_bg != av) { |
996 | 992 | current_bg = av; |
997 | 993 | space3270out(3); |
... | ... | @@ -999,7 +995,7 @@ ctlr_snap_buffer(void) |
999 | 995 | *obptr++ = XA_BACKGROUND; |
1000 | 996 | *obptr++ = av; |
1001 | 997 | } |
1002 | - av = ea_buf[baddr].gr; | |
998 | + av = h3270.ea_buf[baddr].gr; | |
1003 | 999 | if (av) |
1004 | 1000 | av |= 0xf0; |
1005 | 1001 | if (current_gr != av) { |
... | ... | @@ -1009,7 +1005,7 @@ ctlr_snap_buffer(void) |
1009 | 1005 | *obptr++ = XA_HIGHLIGHTING; |
1010 | 1006 | *obptr++ = av; |
1011 | 1007 | } |
1012 | - av = ea_buf[baddr].cs & CS_MASK; | |
1008 | + av = h3270.ea_buf[baddr].cs & CS_MASK; | |
1013 | 1009 | if (av) |
1014 | 1010 | av = host_cs(av); |
1015 | 1011 | if (current_cs != av) { |
... | ... | @@ -1019,12 +1015,12 @@ ctlr_snap_buffer(void) |
1019 | 1015 | *obptr++ = XA_CHARSET; |
1020 | 1016 | *obptr++ = av; |
1021 | 1017 | } |
1022 | - if (ea_buf[baddr].cs & CS_GE) { | |
1018 | + if (h3270.ea_buf[baddr].cs & CS_GE) { | |
1023 | 1019 | space3270out(1); |
1024 | 1020 | *obptr++ = ORDER_GE; |
1025 | 1021 | } |
1026 | 1022 | space3270out(1); |
1027 | - *obptr++ = ea_buf[baddr].cc; | |
1023 | + *obptr++ = h3270.ea_buf[baddr].cc; | |
1028 | 1024 | } |
1029 | 1025 | INC_BA(baddr); |
1030 | 1026 | } while (baddr != 0); |
... | ... | @@ -1233,7 +1229,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1233 | 1229 | case ORDER_SF: /* start field */ |
1234 | 1230 | END_TEXT("StartField"); |
1235 | 1231 | if (previous != SBA) |
1236 | - trace_ds("%s",rcba(buffer_addr)); | |
1232 | + trace_ds("%s",rcba(h3270.buffer_addr)); | |
1237 | 1233 | previous = ORDER; |
1238 | 1234 | cp++; /* skip field attribute */ |
1239 | 1235 | START_FIELD(*cp); |
... | ... | @@ -1260,7 +1256,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1260 | 1256 | case ORDER_IC: /* insert cursor */ |
1261 | 1257 | END_TEXT("InsertCursor"); |
1262 | 1258 | if (previous != SBA) |
1263 | - trace_ds("%s",rcba(buffer_addr)); | |
1259 | + trace_ds("%s",rcba(h3270.buffer_addr)); | |
1264 | 1260 | previous = ORDER; |
1265 | 1261 | cursor_move(&h3270,h3270.buffer_addr); |
1266 | 1262 | last_cmd = True; |
... | ... | @@ -1471,7 +1467,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1471 | 1467 | case ORDER_MF: /* modify field */ |
1472 | 1468 | END_TEXT("ModifyField"); |
1473 | 1469 | if (previous != SBA) |
1474 | - trace_ds("%s",rcba(buffer_addr)); | |
1470 | + trace_ds("%s",rcba(h3270.buffer_addr)); | |
1475 | 1471 | previous = ORDER; |
1476 | 1472 | cp++; |
1477 | 1473 | na = *cp; |
... | ... | @@ -1542,7 +1538,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) |
1542 | 1538 | case ORDER_SFE: /* start field extended */ |
1543 | 1539 | END_TEXT("StartFieldExtended"); |
1544 | 1540 | if (previous != SBA) |
1545 | - trace_ds("%s",rcba(buffer_addr)); | |
1541 | + trace_ds("%s",rcba(h3270.buffer_addr)); | |
1546 | 1542 | previous = ORDER; |
1547 | 1543 | cp++; /* skip order */ |
1548 | 1544 | na = *cp; | ... | ... |
ft_cut.c
... | ... | @@ -288,7 +288,7 @@ ft_cut_data(void) |
288 | 288 | cut_data(); |
289 | 289 | break; |
290 | 290 | default: |
291 | - trace_ds("< FT unknown 0x%02x\n", ea_buf[O_FRAME_TYPE].cc); | |
291 | + trace_ds("< FT unknown 0x%02x\n", h3270.ea_buf[O_FRAME_TYPE].cc); | |
292 | 292 | cut_abort(_(" Unknown frame type from host"), SC_ABORT_XMIT); |
293 | 293 | break; |
294 | 294 | } | ... | ... |
glue.c
... | ... | @@ -311,9 +311,9 @@ static const struct lib3270_option options[] = |
311 | 311 | { OptCharset, OPT_STRING, False, ResCharset, offset(charset), NULL }, |
312 | 312 | { OptClear, OPT_SKIP2, False, NULL, NULL, NULL }, |
313 | 313 | // { OptDefScreen,OPT_STRING, False, ResDefScreen, offset(defscreen), NULL }, |
314 | -#if defined(X3270_TRACE) /*[*/ | |
315 | - { OptDsTrace, OPT_BOOLEAN, True, ResDsTrace, toggle_offset(DS_TRACE), NULL }, | |
316 | -#endif /*]*/ | |
314 | +//#if defined(X3270_TRACE) | |
315 | +// { OptDsTrace, OPT_BOOLEAN, True, ResDsTrace, toggle_offset(DS_TRACE), NULL }, | |
316 | +//#endif /*]*/ | |
317 | 317 | // { OptHostsFile,OPT_STRING, False, ResHostsFile, offset(hostsfile), NULL }, |
318 | 318 | //#if defined(C3270) |
319 | 319 | // { OptKeymap, OPT_STRING, False, ResKeymap, offset(key_map), N_( "Specifies a keymap name and optional modifiers." ) }, | ... | ... |
screen.c
... | ... | @@ -74,9 +74,9 @@ |
74 | 74 | |
75 | 75 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
76 | 76 | |
77 | -static int logpopup(H3270 *session, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list arg); | |
77 | +static int logpopup(H3270 *session, void *widget, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list arg); | |
78 | 78 | |
79 | -static int (*popup_handler)(H3270 *, LIB3270_NOTIFY, const char *, const char *, const char *, va_list) = logpopup; | |
79 | +static int (*popup_handler)(H3270 *, void *, LIB3270_NOTIFY, const char *, const char *, const char *, va_list) = logpopup; | |
80 | 80 | |
81 | 81 | enum ts { TS_AUTO, TS_ON, TS_OFF }; |
82 | 82 | |
... | ... | @@ -601,12 +601,12 @@ void show_3270_popup_dialog(H3270 *session, LIB3270_NOTIFY type, const char *tit |
601 | 601 | |
602 | 602 | va_list arg_ptr; |
603 | 603 | va_start(arg_ptr, fmt); |
604 | - popup_handler(session,type,title,msg,fmt,arg_ptr); | |
604 | + popup_handler(session,session->widget,type,title,msg,fmt,arg_ptr); | |
605 | 605 | va_end(arg_ptr); |
606 | 606 | |
607 | 607 | } |
608 | 608 | |
609 | -static int logpopup(H3270 *session, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list arg) | |
609 | +static int logpopup(H3270 *session, void *widget, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list arg) | |
610 | 610 | { |
611 | 611 | lib3270_write_va_log(session,"lib3270",fmt,arg); |
612 | 612 | return 0; |
... | ... | @@ -619,7 +619,7 @@ void Error(H3270 *session, const char *fmt, ...) |
619 | 619 | CHECK_SESSION_HANDLE(session); |
620 | 620 | |
621 | 621 | va_start(arg_ptr, fmt); |
622 | - popup_handler(session,LIB3270_NOTIFY_ERROR, _( "3270 Error" ),NULL,fmt,arg_ptr); | |
622 | + popup_handler(session,session->widget,LIB3270_NOTIFY_ERROR, _( "3270 Error" ),NULL,fmt,arg_ptr); | |
623 | 623 | va_end(arg_ptr); |
624 | 624 | |
625 | 625 | } |
... | ... | @@ -631,7 +631,7 @@ void Warning(H3270 *session, const char *fmt, ...) |
631 | 631 | CHECK_SESSION_HANDLE(session); |
632 | 632 | |
633 | 633 | va_start(arg_ptr, fmt); |
634 | - popup_handler(session,LIB3270_NOTIFY_WARNING, _( "3270 Warning" ),NULL,fmt,arg_ptr); | |
634 | + popup_handler(session,session->widget,LIB3270_NOTIFY_WARNING, _( "3270 Warning" ),NULL,fmt,arg_ptr); | |
635 | 635 | va_end(arg_ptr); |
636 | 636 | |
637 | 637 | } |
... | ... | @@ -644,7 +644,7 @@ extern void popup_an_error(H3270 *session, const char *fmt, ...) |
644 | 644 | CHECK_SESSION_HANDLE(session); |
645 | 645 | |
646 | 646 | va_start(args, fmt); |
647 | - popup_handler(session,LIB3270_NOTIFY_ERROR,_( "3270 Error" ),NULL,fmt,args); | |
647 | + popup_handler(session,session->widget,LIB3270_NOTIFY_ERROR,_( "3270 Error" ),NULL,fmt,args); | |
648 | 648 | va_end(args); |
649 | 649 | |
650 | 650 | } |
... | ... | @@ -656,7 +656,7 @@ void popup_system_error(H3270 *session, const char *title, const char *message, |
656 | 656 | CHECK_SESSION_HANDLE(session); |
657 | 657 | |
658 | 658 | va_start(args, fmt); |
659 | - popup_handler(session,LIB3270_NOTIFY_ERROR,title ? title : _( "3270 Error" ), message,fmt,args); | |
659 | + popup_handler(session,session->widget,LIB3270_NOTIFY_ERROR,title ? title : _( "3270 Error" ), message,fmt,args); | |
660 | 660 | va_end(args); |
661 | 661 | } |
662 | 662 | |
... | ... | @@ -753,7 +753,7 @@ LIB3270_ACTION( testpattern ) |
753 | 753 | return 0; |
754 | 754 | } |
755 | 755 | |
756 | -LIB3270_EXPORT void lib3270_set_popup_handler(int (*handler)(H3270 *, LIB3270_NOTIFY, const char *, const char *, const char *, va_list)) | |
756 | +LIB3270_EXPORT void lib3270_set_popup_handler(int (*handler)(H3270 *, void *, LIB3270_NOTIFY, const char *, const char *, const char *, va_list)) | |
757 | 757 | { |
758 | 758 | popup_handler = handler ? handler : logpopup; |
759 | 759 | } |
... | ... | @@ -765,7 +765,7 @@ LIB3270_EXPORT void lib3270_popup_dialog(H3270 *session, LIB3270_NOTIFY id , con |
765 | 765 | CHECK_SESSION_HANDLE(session); |
766 | 766 | |
767 | 767 | va_start(args, fmt); |
768 | - popup_handler(session,id,title ? title : _( "3270 Error" ), message,fmt,args); | |
768 | + popup_handler(session,session->widget,id,title ? title : _( "3270 Error" ), message,fmt,args); | |
769 | 769 | va_end(args); |
770 | 770 | } |
771 | 771 | ... | ... |
telnet.c
... | ... | @@ -1110,11 +1110,6 @@ void net_input(H3270 *session) |
1110 | 1110 | } |
1111 | 1111 | #endif /*]*/ |
1112 | 1112 | |
1113 | -#if defined(X3270_TRACE) /*[*/ | |
1114 | - /* See if it's time to roll over the trace file. */ | |
1115 | - trace_rollover_check(); | |
1116 | -#endif /*]*/ | |
1117 | - | |
1118 | 1113 | } |
1119 | 1114 | |
1120 | 1115 | } | ... | ... |
toggles.c
... | ... | @@ -155,11 +155,13 @@ void initialize_toggles(H3270 *session) |
155 | 155 | session->toggle[LIB3270_TOGGLE_RECTANGLE_SELECT].upcall = toggle_rectselect; |
156 | 156 | session->toggle[LIB3270_TOGGLE_MONOCASE].upcall = toggle_monocase; |
157 | 157 | |
158 | +/* | |
158 | 159 | #if defined(X3270_TRACE) |
159 | 160 | session->toggle[LIB3270_TOGGLE_DS_TRACE].upcall = toggle_dsTrace; |
160 | 161 | session->toggle[LIB3270_TOGGLE_SCREEN_TRACE].upcall = toggle_screenTrace; |
161 | 162 | session->toggle[LIB3270_TOGGLE_EVENT_TRACE].upcall = toggle_eventTrace; |
162 | 163 | #endif |
164 | +*/ | |
163 | 165 | |
164 | 166 | #if defined(X3270_ANSI) |
165 | 167 | session->toggle[LIB3270_TOGGLE_LINE_WRAP].upcall = toggle_lineWrap; |
... | ... | @@ -197,19 +199,8 @@ void shutdown_toggles(H3270 *session) |
197 | 199 | int f; |
198 | 200 | |
199 | 201 | for(f=0;f< (sizeof(disable_on_shutdown)/sizeof(disable_on_shutdown[0])); f++) |
200 | - { | |
201 | - LIB3270_TOGGLE ix = disable_on_shutdown[f]; | |
202 | - struct toggle * t = &session->toggle[ix]; | |
203 | - | |
204 | - if(t->value) | |
205 | - { | |
206 | - t->value = False; | |
207 | - t->upcall(session,&toggle[f],TT_FINAL); | |
202 | + lib3270_set_toggle(session,disable_on_shutdown[f],0); | |
208 | 203 | |
209 | - if(session->update_toggle) | |
210 | - session->update_toggle(session,ix,t->value,TT_FINAL,toggle_names[ix]); | |
211 | - } | |
212 | - } | |
213 | 204 | #endif |
214 | 205 | } |
215 | 206 | ... | ... |
trace_ds.c
... | ... | @@ -83,33 +83,37 @@ |
83 | 83 | #define ftello(s) (off_t)ftell(s) |
84 | 84 | #endif /*]*/ |
85 | 85 | |
86 | -#include <lib3270/api.h> | |
86 | +// #include <lib3270/api.h> | |
87 | 87 | |
88 | 88 | /* Statics */ |
89 | 89 | static int dscnt = 0; |
90 | 90 | |
91 | +/* | |
91 | 92 | #if defined (LIB3270) |
92 | 93 | HCONSOLE tracewindow_handle = 0; |
93 | -#elif defined(_WIN32) /*[*/ | |
94 | +#elif defined(_WIN32) | |
94 | 95 | static HANDLE tracewindow_handle = NULL; |
95 | -#else /*][*/ | |
96 | +#else | |
96 | 97 | static int tracewindow_pid = -1; |
97 | -#endif /*]*/ | |
98 | +#endif | |
99 | +*/ | |
98 | 100 | |
99 | -static FILE *tracef = NULL; | |
100 | -static FILE *tracef_pipe = NULL; | |
101 | -static char *tracef_bufptr = CN; | |
102 | -static off_t tracef_size = 0; | |
103 | -static off_t tracef_max = 0; | |
104 | -static char *tracef_midpoint_header = CN; | |
105 | -static off_t tracef_midpoint = 0; | |
106 | -static void vwtrace(const char *fmt, va_list args); | |
101 | +// static FILE *tracef = NULL; | |
102 | +// static FILE *tracef_pipe = NULL; | |
103 | +// static char *tracef_bufptr = CN; | |
104 | +// static off_t tracef_size = 0; | |
105 | +// static off_t tracef_max = 0; | |
106 | +// static char *tracef_midpoint_header = CN; | |
107 | +// static off_t tracef_midpoint = 0; | |
108 | + | |
109 | +static void __vwtrace(const char *fmt, va_list args); | |
107 | 110 | static void wtrace(const char *fmt, ...); |
108 | -static char *create_tracefile_header(const char *mode); | |
111 | +// static char *create_tracefile_header(const char *mode); | |
109 | 112 | static void stop_tracing(void); |
110 | 113 | |
111 | 114 | /* Globals */ |
112 | 115 | struct timeval ds_ts; |
116 | +static void (*vwtrace)(const char *fmt, va_list args) = __vwtrace; | |
113 | 117 | Boolean trace_skipping = False; |
114 | 118 | |
115 | 119 | /* display a (row,col) */ |
... | ... | @@ -133,7 +137,7 @@ trace_ds_s(char *s, Boolean can_break) |
133 | 137 | int len = strlen(s); |
134 | 138 | Boolean nl = False; |
135 | 139 | |
136 | - if (!toggled(DS_TRACE) || tracef == NULL || !len) | |
140 | + if (!toggled(DS_TRACE) || !len) | |
137 | 141 | return; |
138 | 142 | |
139 | 143 | if (s && s[len-1] == '\n') { |
... | ... | @@ -167,7 +171,7 @@ trace_ds(const char *fmt, ...) |
167 | 171 | { |
168 | 172 | va_list args; |
169 | 173 | |
170 | - if (!toggled(DS_TRACE) || tracef == NULL) | |
174 | + if (!toggled(DS_TRACE)) | |
171 | 175 | return; |
172 | 176 | |
173 | 177 | va_start(args, fmt); |
... | ... | @@ -187,7 +191,7 @@ trace_ds_nb(const char *fmt, ...) |
187 | 191 | { |
188 | 192 | va_list args; |
189 | 193 | |
190 | - if (!toggled(DS_TRACE) || tracef == NULL) | |
194 | + if (!toggled(DS_TRACE)) | |
191 | 195 | return; |
192 | 196 | |
193 | 197 | va_start(args, fmt); |
... | ... | @@ -208,7 +212,7 @@ trace_event(const char *fmt, ...) |
208 | 212 | { |
209 | 213 | va_list args; |
210 | 214 | |
211 | - if (!toggled(EVENT_TRACE) || tracef == NULL) | |
215 | + if (!toggled(EVENT_TRACE)) | |
212 | 216 | return; |
213 | 217 | |
214 | 218 | /* print out message */ |
... | ... | @@ -223,7 +227,7 @@ trace_dsn(const char *fmt, ...) |
223 | 227 | { |
224 | 228 | va_list args; |
225 | 229 | |
226 | - if (!toggled(DS_TRACE) || tracef == NULL) | |
230 | + if (!toggled(DS_TRACE)) | |
227 | 231 | return; |
228 | 232 | |
229 | 233 | /* print out message */ |
... | ... | @@ -237,6 +241,12 @@ trace_dsn(const char *fmt, ...) |
237 | 241 | * This is the only function that actually does output to the trace file -- |
238 | 242 | * all others are wrappers around this function. |
239 | 243 | */ |
244 | +static void __vwtrace(const char *fmt, va_list args) | |
245 | +{ | |
246 | + vfprintf(stdout,fmt,args); | |
247 | +} | |
248 | + | |
249 | +/* | |
240 | 250 | static void vwtrace(const char *fmt, va_list args) |
241 | 251 | { |
242 | 252 | char buf[16384]; |
... | ... | @@ -255,20 +265,18 @@ static void vwtrace(const char *fmt, va_list args) |
255 | 265 | popup_an_errno(errno,_( "Write to trace file failed\n%s" ),strerror(errno)); |
256 | 266 | } |
257 | 267 | } |
268 | +*/ | |
258 | 269 | |
259 | 270 | /* Write to the trace file. */ |
260 | -static void | |
261 | -wtrace(const char *fmt, ...) | |
271 | +static void wtrace(const char *fmt, ...) | |
262 | 272 | { |
263 | - if (tracef != NULL) { | |
264 | - va_list args; | |
265 | - | |
266 | - va_start(args, fmt); | |
267 | - vwtrace(fmt, args); | |
268 | - va_end(args); | |
269 | - } | |
273 | + va_list args; | |
274 | + va_start(args, fmt); | |
275 | + vwtrace(fmt, args); | |
276 | + va_end(args); | |
270 | 277 | } |
271 | 278 | |
279 | +/* | |
272 | 280 | static void stop_tracing(void) |
273 | 281 | { |
274 | 282 | if (tracef != NULL && tracef != stdout) |
... | ... | @@ -282,39 +290,30 @@ static void stop_tracing(void) |
282 | 290 | lib3270_set_toggle(&h3270,DS_TRACE,0); |
283 | 291 | lib3270_set_toggle(&h3270,EVENT_TRACE,0); |
284 | 292 | |
285 | -/* | |
286 | - if (toggled(DS_TRACE)) { | |
287 | - toggle_toggle(&appres.toggle[DS_TRACE]); | |
288 | -// menubar_retoggle(&appres.toggle[DS_TRACE]); | |
289 | - } | |
290 | - if (toggled(EVENT_TRACE)) { | |
291 | - toggle_toggle(&appres.toggle[EVENT_TRACE]); | |
292 | -// menubar_retoggle(&appres.toggle[EVENT_TRACE]); | |
293 | - } | |
294 | -*/ | |
295 | 293 | } |
294 | +*/ | |
296 | 295 | |
297 | -/* Check for a trace file rollover event. */ | |
296 | +/* Check for a trace file rollover event. | |
298 | 297 | void |
299 | 298 | trace_rollover_check(void) |
300 | 299 | { |
301 | 300 | if (tracef == NULL || tracef_max == 0) |
302 | 301 | return; |
303 | 302 | |
304 | - /* See if we've reached the midpoint. */ | |
303 | + // See if we've reached the midpoint. | |
305 | 304 | if (!tracef_midpoint) { |
306 | 305 | if (tracef_size >= tracef_max / 2) { |
307 | 306 | tracef_midpoint = ftello(tracef); |
308 | -#if defined(ROLLOVER_DEBUG) /*[*/ | |
307 | +#if defined(ROLLOVER_DEBUG) | |
309 | 308 | printf("midpoint is %lld\n", tracef_midpoint); |
310 | -#endif /*]*/ | |
309 | +#endif | |
311 | 310 | tracef_midpoint_header = |
312 | 311 | create_tracefile_header("rolled over"); |
313 | 312 | } |
314 | 313 | return; |
315 | 314 | } |
316 | 315 | |
317 | - /* See if we've reached a rollover point. */ | |
316 | + // See if we've reached a rollover point. | |
318 | 317 | if (tracef_size >= tracef_max) { |
319 | 318 | char buf[8*1024]; |
320 | 319 | int nr; |
... | ... | @@ -322,13 +321,13 @@ trace_rollover_check(void) |
322 | 321 | |
323 | 322 | if (!tracef_midpoint) |
324 | 323 | Error("Tracefile rollover logic error"); |
325 | -#if defined(ROLLOVER_DEBUG) /*[*/ | |
324 | +#if defined(ROLLOVER_DEBUG) | |
326 | 325 | printf("rolling over at %lld\n", tracef_size); |
327 | -#endif /*]*/ | |
328 | - /* | |
329 | - * Overwrite the file with the midpoint header, and the data | |
330 | - * which follows the midpoint. | |
331 | - */ | |
326 | +#endif | |
327 | + // | |
328 | + // Overwrite the file with the midpoint header, and the data | |
329 | + // which follows the midpoint. | |
330 | + // | |
332 | 331 | if (fseeko(tracef, 0, SEEK_SET) < 0) { |
333 | 332 | popup_an_errno(errno, "trace file fseeko(0) failed"); |
334 | 333 | stop_tracing(); |
... | ... | @@ -347,9 +346,9 @@ trace_rollover_check(void) |
347 | 346 | stop_tracing(); |
348 | 347 | return; |
349 | 348 | } |
350 | -#if defined(ROLLOVER_DEBUG) /*[*/ | |
349 | +#if defined(ROLLOVER_DEBUG) | |
351 | 350 | printf("rpos = %lld, wpos = %lld\n", rpos, wpos); |
352 | -#endif /*]*/ | |
351 | +#endif | |
353 | 352 | while ((nr = fread(buf, 1, sizeof(buf), tracef)) > 0) { |
354 | 353 | rpos = ftello(tracef); |
355 | 354 | if (fseeko(tracef, wpos, SEEK_SET) < 0) { |
... | ... | @@ -380,9 +379,9 @@ trace_rollover_check(void) |
380 | 379 | stop_tracing(); |
381 | 380 | return; |
382 | 381 | } |
383 | -#if defined(ROLLOVER_DEBUG) /*[*/ | |
382 | +#if defined(ROLLOVER_DEBUG) | |
384 | 383 | printf("final wpos = %lld\n", wpos); |
385 | -#endif /*]*/ | |
384 | +#endif | |
386 | 385 | if (ftruncate(fileno(tracef), wpos) < 0) { |
387 | 386 | popup_an_errno(errno, "trace file ftruncate(%ld) " |
388 | 387 | "failed", (long)wpos); |
... | ... | @@ -401,29 +400,29 @@ trace_rollover_check(void) |
401 | 400 | create_tracefile_header("rolled over")); |
402 | 401 | } |
403 | 402 | } |
403 | +*/ | |
404 | 404 | |
405 | -#if defined(X3270_DISPLAY) /*[*/ | |
405 | +/* | |
406 | +#if defined(X3270_DISPLAY) | |
406 | 407 | static Widget trace_shell = (Widget)NULL; |
407 | -#endif /*]*/ | |
408 | +#endif | |
408 | 409 | static int trace_reason; |
410 | +*/ | |
409 | 411 | |
410 | -/* Create a trace file header. */ | |
411 | -static char * | |
412 | -create_tracefile_header(const char *mode) | |
412 | +/* Create a trace file header. */ /* | |
413 | +static char * create_tracefile_header(const char *mode) | |
413 | 414 | { |
414 | 415 | char *buf; |
415 | 416 | time_t clk; |
416 | 417 | |
417 | - /* Create a buffer and redirect output. */ | |
418 | + // Create a buffer and redirect output. | |
418 | 419 | buf = Malloc(MAX_HEADER_SIZE); |
419 | 420 | tracef_bufptr = buf; |
420 | 421 | |
421 | - /* Display current status */ | |
422 | + // Display current status | |
422 | 423 | clk = time((time_t *)0); |
423 | 424 | wtrace("Trace %s %s", mode, ctime(&clk)); |
424 | 425 | wtrace(" Version: %s\n", build); |
425 | -// save_yourself(); | |
426 | -// wtrace(" Command: %s\n", command_string); | |
427 | 426 | wtrace(" Model %s", h3270.model_name); |
428 | 427 | wtrace(", %s display", appres.mono ? "monochrome" : "color"); |
429 | 428 | if (appres.extended) |
... | ... | @@ -436,27 +435,27 @@ create_tracefile_header(const char *mode) |
436 | 435 | if (CONNECTED) |
437 | 436 | wtrace(" Connected to %s, port %u\n",h3270.current_host, h3270.current_port); |
438 | 437 | |
439 | - /* Snap the current TELNET options. */ | |
438 | + // Snap the current TELNET options. | |
440 | 439 | if (net_snap_options()) { |
441 | 440 | wtrace(" TELNET state:\n"); |
442 | 441 | trace_netdata('<', obuf, obptr - obuf); |
443 | 442 | } |
444 | 443 | |
445 | - /* Dump the screen contents and modes into the trace file. */ | |
444 | + // Dump the screen contents and modes into the trace file. | |
446 | 445 | if (CONNECTED) { |
447 | - /* | |
448 | - * Note that if the screen is not formatted, we do not | |
449 | - * attempt to save what's on it. However, if we're in | |
450 | - * 3270 SSCP-LU or NVT mode, we'll do a dummy, empty | |
451 | - * write to ensure that the display is in the right | |
452 | - * mode. | |
453 | - */ | |
446 | + // | |
447 | + // Note that if the screen is not formatted, we do not | |
448 | + // attempt to save what's on it. However, if we're in | |
449 | + // 3270 SSCP-LU or NVT mode, we'll do a dummy, empty | |
450 | + // write to ensure that the display is in the right | |
451 | + // mode. | |
452 | + // | |
454 | 453 | if (h3270.formatted) { |
455 | 454 | wtrace(" Screen contents:\n"); |
456 | 455 | obptr = obuf; |
457 | -#if defined(X3270_TN3270E) /*[*/ | |
456 | +#if defined(X3270_TN3270E) | |
458 | 457 | (void) net_add_dummy_tn3270e(); |
459 | -#endif /*]*/ | |
458 | +#endif | |
460 | 459 | ctlr_snap_buffer(); |
461 | 460 | space3270out(2); |
462 | 461 | net_add_eor(obuf, obptr - obuf); |
... | ... | @@ -464,9 +463,9 @@ create_tracefile_header(const char *mode) |
464 | 463 | trace_netdata('<', obuf, obptr - obuf); |
465 | 464 | |
466 | 465 | obptr = obuf; |
467 | -#if defined(X3270_TN3270E) /*[*/ | |
466 | +#if defined(X3270_TN3270E) | |
468 | 467 | (void) net_add_dummy_tn3270e(); |
469 | -#endif /*]*/ | |
468 | +#endif | |
470 | 469 | if (ctlr_snap_modes()) { |
471 | 470 | wtrace(" 3270 modes:\n"); |
472 | 471 | space3270out(2); |
... | ... | @@ -475,7 +474,7 @@ create_tracefile_header(const char *mode) |
475 | 474 | trace_netdata('<', obuf, obptr - obuf); |
476 | 475 | } |
477 | 476 | } |
478 | -#if defined(X3270_TN3270E) /*[*/ | |
477 | +#if defined(X3270_TN3270E) | |
479 | 478 | else if (IN_E) { |
480 | 479 | obptr = obuf; |
481 | 480 | if (net_add_dummy_tn3270e()) { |
... | ... | @@ -486,17 +485,18 @@ create_tracefile_header(const char *mode) |
486 | 485 | trace_netdata('<', obuf, obptr - obuf); |
487 | 486 | } |
488 | 487 | } |
489 | -#endif /*]*/ | |
488 | +#endif | |
490 | 489 | } |
491 | 490 | |
492 | 491 | wtrace(" Data stream:\n"); |
493 | 492 | |
494 | - /* Return the buffer. */ | |
493 | + // Return the buffer. | |
495 | 494 | tracef_bufptr = CN; |
496 | 495 | return buf; |
497 | 496 | } |
497 | +*/ | |
498 | 498 | |
499 | -/* Calculate the tracefile maximum size. */ | |
499 | +/* Calculate the tracefile maximum size. */ /* | |
500 | 500 | static void |
501 | 501 | get_tracef_max(void) |
502 | 502 | { |
... | ... | @@ -538,16 +538,17 @@ get_tracef_max(void) |
538 | 538 | |
539 | 539 | if (bad) { |
540 | 540 | tracef_max = MIN_TRACEFILE_SIZE; |
541 | -#if defined(X3270_DISPLAY) /*[*/ | |
541 | +#if defined(X3270_DISPLAY) | |
542 | 542 | popup_an_info("Invalid %s '%s', assuming " |
543 | 543 | MIN_TRACEFILE_SIZE_NAME, |
544 | 544 | ResTraceFileSize, |
545 | 545 | appres.trace_file_size); |
546 | -#endif /*]*/ | |
546 | +#endif | |
547 | 547 | } else if (tracef_max < MIN_TRACEFILE_SIZE) { |
548 | 548 | tracef_max = MIN_TRACEFILE_SIZE; |
549 | 549 | } |
550 | 550 | } |
551 | +*/ | |
551 | 552 | |
552 | 553 | /* Parse the name '/dev/fd<n>', so we can simulate it. */ |
553 | 554 | static int |
... | ... | @@ -564,7 +565,7 @@ get_devfd(const char *pathname) |
564 | 565 | return fd; |
565 | 566 | } |
566 | 567 | |
567 | -/* Callback for "OK" button on trace popup */ | |
568 | +/* Callback for "OK" button on trace popup */ /* | |
568 | 569 | static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_data unused) |
569 | 570 | { |
570 | 571 | char *tfn = CN; |
... | ... | @@ -590,10 +591,10 @@ static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_d |
590 | 591 | } |
591 | 592 | else |
592 | 593 | { |
593 | - /* Get the trace file maximum. */ | |
594 | + // Get the trace file maximum. | |
594 | 595 | get_tracef_max(); |
595 | 596 | |
596 | - /* If there's a limit, the file can't exist. */ | |
597 | + // If there's a limit, the file can't exist. | |
597 | 598 | if (tracef_max && !access(tfn, R_OK)) |
598 | 599 | { |
599 | 600 | popup_an_error("Trace file '%s' already exists",tfn); |
... | ... | @@ -601,7 +602,7 @@ static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_d |
601 | 602 | return; |
602 | 603 | } |
603 | 604 | |
604 | - /* Open and configure the file. */ | |
605 | + // Open and configure the file. | |
605 | 606 | if ((devfd = get_devfd(tfn)) >= 0) |
606 | 607 | tracef = fdopen(dup(devfd), "a"); |
607 | 608 | else |
... | ... | @@ -613,31 +614,31 @@ static void tracefile_callback(Widget w, XtPointer client_data, XtPointer call_d |
613 | 614 | return; |
614 | 615 | } |
615 | 616 | (void) SETLINEBUF(tracef); |
616 | -#if !defined(_WIN32) /*[*/ | |
617 | +#if !defined(_WIN32) | |
617 | 618 | (void) fcntl(fileno(tracef), F_SETFD, 1); |
618 | -#endif /*]*/ | |
619 | +#endif | |
619 | 620 | } |
620 | 621 | |
621 | - /* Open pw3270's console window */ | |
622 | + // Open pw3270's console window | |
622 | 623 | if(!tracewindow_handle) |
623 | 624 | tracewindow_handle = console_window_new( tfn, NULL ); |
624 | 625 | |
625 | 626 | Free(tfn); |
626 | 627 | |
627 | - /* We're really tracing, turn the flag on. */ | |
628 | + // We're really tracing, turn the flag on. | |
628 | 629 | appres.toggle[trace_reason].value = True; |
629 | 630 | // appres.toggle[trace_reason].changed = True; |
630 | 631 | // menubar_retoggle(&appres.toggle[trace_reason]); |
631 | 632 | |
632 | - /* Display current status. */ | |
633 | + // Display current status | |
633 | 634 | buf = create_tracefile_header("started"); |
634 | 635 | wtrace("%s", buf); |
635 | 636 | Free(buf); |
636 | 637 | |
637 | 638 | } |
638 | 639 | |
639 | -#if defined(X3270_DISPLAY) /*[*/ | |
640 | -/* Callback for "No File" button on trace popup */ | |
640 | +#if defined(X3270_DISPLAY) | |
641 | +// Callback for "No File" button on trace popup | |
641 | 642 | static void |
642 | 643 | no_tracefile_callback(Widget w, XtPointer client_data, |
643 | 644 | XtPointer call_data unused) |
... | ... | @@ -645,9 +646,10 @@ no_tracefile_callback(Widget w, XtPointer client_data, |
645 | 646 | tracefile_callback((Widget)NULL, "", PN); |
646 | 647 | XtPopdown(trace_shell); |
647 | 648 | } |
648 | -#endif /*]*/ | |
649 | +#endif | |
650 | +*/ | |
649 | 651 | |
650 | -/* Open the trace file. */ | |
652 | +/* Open the trace file. | |
651 | 653 | static void |
652 | 654 | tracefile_on(int reason, LIB3270_TOGGLE_TYPE tt) |
653 | 655 | { |
... | ... | @@ -668,30 +670,30 @@ tracefile_on(int reason, LIB3270_TOGGLE_TYPE tt) |
668 | 670 | } |
669 | 671 | else |
670 | 672 | { |
671 | -#if defined(_WIN32) /*[*/ | |
673 | +#if defined(_WIN32) | |
672 | 674 | tracefile_buf = xs_buffer("%sx3trc.%u.txt", PROGRAM_DATA,getpid()); |
673 | -#else /*][*/ | |
675 | +#else | |
674 | 676 | |
675 | 677 | if(appres.trace_dir) |
676 | 678 | tracefile_buf = xs_buffer("%s/x3trc.%u", appres.trace_dir,getpid()); |
677 | 679 | else |
678 | 680 | tracefile_buf = xs_buffer("%s/x3trc.%u", ".",getpid()); |
679 | 681 | |
680 | -#endif /*]*/ | |
682 | +#endif | |
681 | 683 | tracefile = tracefile_buf; |
682 | 684 | } |
683 | 685 | |
684 | 686 | |
685 | -#if defined(X3270_DISPLAY) /*[*/ | |
687 | +#if defined(X3270_DISPLAY) | |
686 | 688 | if (tt == TT_INITIAL || tt == TT_ACTION) |
687 | -#endif /*]*/ | |
689 | +#endif | |
688 | 690 | { |
689 | 691 | tracefile_callback((Widget)NULL, tracefile, PN); |
690 | 692 | if (tracefile_buf != NULL) |
691 | 693 | Free(tracefile_buf); |
692 | 694 | return; |
693 | 695 | } |
694 | -#if defined(X3270_DISPLAY) /*[*/ | |
696 | +#if defined(X3270_DISPLAY) | |
695 | 697 | if (trace_shell == NULL) { |
696 | 698 | trace_shell = create_form_popup("trace", |
697 | 699 | tracefile_callback, |
... | ... | @@ -702,18 +704,18 @@ tracefile_on(int reason, LIB3270_TOGGLE_TYPE tt) |
702 | 704 | NULL); |
703 | 705 | } |
704 | 706 | |
705 | - /* Turn the toggle _off_ until the popup succeeds. */ | |
707 | + // Turn the toggle _off_ until the popup succeeds. | |
706 | 708 | appres.toggle[reason].value = False; |
707 | 709 | appres.toggle[reason].changed = True; |
708 | 710 | |
709 | 711 | popup_popup(trace_shell, XtGrabExclusive); |
710 | -#endif /*]*/ | |
712 | +#endif | |
711 | 713 | |
712 | 714 | if (tracefile_buf != NULL) |
713 | 715 | Free(tracefile_buf); |
714 | 716 | } |
715 | 717 | |
716 | -/* Close the trace file. */ | |
718 | +// Close the trace file. | |
717 | 719 | static void tracefile_off(void) |
718 | 720 | { |
719 | 721 | time_t clk; |
... | ... | @@ -729,13 +731,13 @@ static void tracefile_off(void) |
729 | 731 | tracewindow_handle = NULL; |
730 | 732 | } |
731 | 733 | |
732 | -#elif !defined(_WIN32) /*[*/ | |
734 | +#elif !defined(_WIN32) | |
733 | 735 | |
734 | 736 | if (tracewindow_pid != -1) |
735 | 737 | (void) kill(tracewindow_pid, SIGKILL); |
736 | 738 | tracewindow_pid = -1; |
737 | 739 | |
738 | -#else /*][*/ | |
740 | +#else | |
739 | 741 | |
740 | 742 | if (tracewindow_handle != NULL) |
741 | 743 | { |
... | ... | @@ -744,56 +746,57 @@ static void tracefile_off(void) |
744 | 746 | tracewindow_handle = NULL; |
745 | 747 | } |
746 | 748 | |
747 | -#endif /*]*/ | |
749 | +#endif | |
748 | 750 | |
749 | 751 | stop_tracing(); |
750 | 752 | } |
751 | 753 | |
754 | + | |
752 | 755 | void toggle_dsTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_TYPE tt) |
753 | 756 | { |
754 | - /* If turning on trace and no trace file, open one. */ | |
755 | - | |
756 | 757 | if (toggled(DS_TRACE) && tracef == NULL) |
757 | 758 | tracefile_on(DS_TRACE, tt); |
758 | 759 | |
759 | - /* If turning off trace and not still tracing events, close the | |
760 | - trace file. */ | |
760 | + // If turning off trace and not still tracing events, close the trace file. | |
761 | 761 | else if (!toggled(DS_TRACE) && !toggled(EVENT_TRACE)) |
762 | 762 | tracefile_off(); |
763 | 763 | |
764 | 764 | if (toggled(DS_TRACE)) |
765 | 765 | (void) gettimeofday(&ds_ts, (struct timezone *)NULL); |
766 | 766 | } |
767 | +*/ | |
767 | 768 | |
769 | +/* | |
768 | 770 | void toggle_eventTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_TYPE tt) |
769 | 771 | { |
770 | - /* If turning on event debug, and no trace file, open one. */ | |
772 | + // If turning on event debug, and no trace file, open one. | |
771 | 773 | |
772 | 774 | if (toggled(EVENT_TRACE) && tracef == NULL) |
773 | 775 | tracefile_on(EVENT_TRACE, tt); |
774 | 776 | |
775 | - /* If turning off event debug, and not tracing the data stream, | |
776 | - close the trace file. */ | |
777 | + // If turning off event debug, and not tracing the data stream, close the trace file. | |
777 | 778 | else if (!toggled(EVENT_TRACE) && !toggled(DS_TRACE)) |
778 | 779 | tracefile_off(); |
779 | 780 | } |
781 | +*/ | |
780 | 782 | |
781 | 783 | /* Screen trace file support. */ |
782 | 784 | |
783 | -#if defined(X3270_DISPLAY) /*[*/ | |
785 | +/* | |
786 | +#if defined(X3270_DISPLAY) | |
784 | 787 | static Widget screentrace_shell = (Widget)NULL; |
785 | -#endif /*]*/ | |
788 | +#endif | |
786 | 789 | static FILE *screentracef = (FILE *)0; |
787 | - | |
790 | +*/ | |
788 | 791 | /* |
789 | 792 | * Screen trace function, called when the host clears the screen. |
790 | 793 | */ |
791 | -static void | |
792 | -do_screentrace(void) | |
794 | +static void do_screentrace(void) | |
793 | 795 | { |
796 | + wtrace("\n%s - Not implemented\n",__FUNCTION__); | |
797 | +/* | |
794 | 798 | register int i; |
795 | 799 | |
796 | -/* | |
797 | 800 | if (fprint_screen(screentracef, False, False)) { |
798 | 801 | for (i = 0; i < h3270.cols; i++) |
799 | 802 | (void) fputc('=', screentracef); |
... | ... | @@ -802,23 +805,20 @@ do_screentrace(void) |
802 | 805 | */ |
803 | 806 | } |
804 | 807 | |
805 | -void | |
806 | -trace_screen(void) | |
808 | +void trace_screen(void) | |
807 | 809 | { |
808 | 810 | trace_skipping = False; |
809 | 811 | |
810 | - if (!toggled(SCREEN_TRACE) || !screentracef) | |
811 | - return; | |
812 | - do_screentrace(); | |
812 | + if (!toggled(SCREEN_TRACE)) | |
813 | + do_screentrace(); | |
813 | 814 | } |
814 | 815 | |
815 | 816 | /* Called from ANSI emulation code to log a single character. */ |
816 | -void | |
817 | -trace_char(char c) | |
817 | +void trace_char(char c) | |
818 | 818 | { |
819 | - if (!toggled(SCREEN_TRACE) || !screentracef) | |
820 | - return; | |
821 | - (void) fputc(c, screentracef); | |
819 | + if (toggled(SCREEN_TRACE)) | |
820 | + wtrace("%c",c); | |
821 | + return; | |
822 | 822 | } |
823 | 823 | |
824 | 824 | /* |
... | ... | @@ -827,15 +827,14 @@ trace_char(char c) |
827 | 827 | * (In a gross violation of data hiding and modularity, trace_skipping is |
828 | 828 | * manipulated directly in ctlr_clear()). |
829 | 829 | */ |
830 | -void | |
831 | -trace_ansi_disc(void) | |
830 | +void trace_ansi_disc(void) | |
832 | 831 | { |
833 | 832 | int i; |
834 | 833 | |
835 | - (void) fputc('\n', screentracef); | |
834 | + wtrace("%c",'\n'); | |
836 | 835 | for (i = 0; i < h3270.cols; i++) |
837 | - (void) fputc('=', screentracef); | |
838 | - (void) fputc('\n', screentracef); | |
836 | + wtrace("%c",'='); | |
837 | + wtrace("%c",'\n'); | |
839 | 838 | |
840 | 839 | trace_skipping = True; |
841 | 840 | } |
... | ... | @@ -843,7 +842,7 @@ trace_ansi_disc(void) |
843 | 842 | /* |
844 | 843 | * Screen tracing callback. |
845 | 844 | * Returns True for success, False for failure. |
846 | - */ | |
845 | + */ /* | |
847 | 846 | static Boolean |
848 | 847 | screentrace_cb(char *tfn) |
849 | 848 | { |
... | ... | @@ -856,16 +855,17 @@ screentrace_cb(char *tfn) |
856 | 855 | } |
857 | 856 | Free(tfn); |
858 | 857 | (void) SETLINEBUF(screentracef); |
859 | -#if !defined(_WIN32) /*[*/ | |
858 | +#if !defined(_WIN32) | |
860 | 859 | (void) fcntl(fileno(screentracef), F_SETFD, 1); |
861 | -#endif /*]*/ | |
860 | +#endif | |
862 | 861 | |
863 | - /* We're really tracing, turn the flag on. */ | |
862 | + // We're really tracing, turn the flag on. | |
864 | 863 | appres.toggle[SCREEN_TRACE].value = True; |
865 | 864 | // appres.toggle[SCREEN_TRACE].changed = True; |
866 | 865 | // menubar_retoggle(&appres.toggle[SCREEN_TRACE]); |
867 | 866 | return True; |
868 | 867 | } |
868 | +*/ | |
869 | 869 | |
870 | 870 | /* |
871 | 871 | #if defined(X3270_DISPLAY) |
... | ... | @@ -910,8 +910,11 @@ onescreen_callback(Widget w, XtPointer client_data, XtPointer call_data unused) |
910 | 910 | } |
911 | 911 | #endif */ |
912 | 912 | |
913 | +/* | |
913 | 914 | void toggle_screenTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_TYPE tt) |
914 | 915 | { |
916 | + wtrace("Screen trace is %s\n",toggled(SCREEN_TRACE),"Enabled" : "Disabled"); | |
917 | + | |
915 | 918 | char *tracefile_buf = NULL; |
916 | 919 | char *tracefile; |
917 | 920 | |
... | ... | @@ -919,14 +922,14 @@ void toggle_screenTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_ |
919 | 922 | if (appres.screentrace_file) |
920 | 923 | tracefile = appres.screentrace_file; |
921 | 924 | else { |
922 | -#if defined(_WIN32) /*[*/ | |
925 | +#if defined(_WIN32) | |
923 | 926 | tracefile_buf = xs_buffer("%sx3scr.%u.txt",PROGRAM_DATA, getpid()); |
924 | -#else /*][*/ | |
927 | +#else | |
925 | 928 | if(appres.trace_dir) |
926 | 929 | tracefile_buf = xs_buffer("%s/x3scr.%u",appres.trace_dir, getpid()); |
927 | 930 | else |
928 | 931 | tracefile_buf = xs_buffer("%s/x3scr.%u",".", getpid()); |
929 | -#endif /*]*/ | |
932 | +#endif | |
930 | 933 | tracefile = tracefile_buf; |
931 | 934 | } |
932 | 935 | if (tt == TT_INITIAL || tt == TT_ACTION) { |
... | ... | @@ -935,7 +938,7 @@ void toggle_screenTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_ |
935 | 938 | Free(tracefile_buf); |
936 | 939 | return; |
937 | 940 | } |
938 | -#if defined(X3270_DISPLAY) /*[*/ | |
941 | +#if defined(X3270_DISPLAY) | |
939 | 942 | if (screentrace_shell == NULL) { |
940 | 943 | screentrace_shell = create_form_popup("screentrace", |
941 | 944 | screentrace_callback, onescreen_callback, |
... | ... | @@ -948,7 +951,7 @@ void toggle_screenTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_ |
948 | 951 | appres.toggle[SCREEN_TRACE].value = False; |
949 | 952 | appres.toggle[SCREEN_TRACE].changed = True; |
950 | 953 | popup_popup(screentrace_shell, XtGrabExclusive); |
951 | -#endif /*]*/ | |
954 | +#endif | |
952 | 955 | } else { |
953 | 956 | if (ctlr_any_data() && !trace_skipping) |
954 | 957 | do_screentrace(); |
... | ... | @@ -958,5 +961,6 @@ void toggle_screenTrace(H3270 *session, struct toggle *t unused, LIB3270_TOGGLE_ |
958 | 961 | if (tracefile_buf != NULL) |
959 | 962 | Free(tracefile_buf); |
960 | 963 | } |
964 | +*/ | |
961 | 965 | |
962 | 966 | #endif /*]*/ | ... | ... |
trace_dsc.h
... | ... | @@ -32,37 +32,38 @@ |
32 | 32 | * Global declarations for trace_ds.c. |
33 | 33 | */ |
34 | 34 | |
35 | -#if defined(X3270_TRACE) /*[*/ | |
35 | +#if defined(X3270_TRACE) | |
36 | 36 | |
37 | -LIB3270_INTERNAL Boolean trace_skipping; | |
37 | + LIB3270_INTERNAL Boolean trace_skipping; | |
38 | 38 | |
39 | -const char *rcba(int baddr); | |
40 | -void toggle_dsTrace(H3270 *h, struct toggle *t, LIB3270_TOGGLE_TYPE tt); | |
41 | -void toggle_eventTrace(H3270 *h, struct toggle *t, LIB3270_TOGGLE_TYPE tt); | |
42 | -void toggle_screenTrace(H3270 *h, struct toggle *t, LIB3270_TOGGLE_TYPE tt); | |
43 | -void trace_ansi_disc(void); | |
44 | -void trace_char(char c); | |
45 | -void trace_ds(const char *fmt, ...) printflike(1, 2); | |
46 | -void trace_ds_nb(const char *fmt, ...) printflike(1, 2); | |
47 | -void trace_dsn(const char *fmt, ...) printflike(1, 2); | |
48 | -void trace_event(const char *fmt, ...) printflike(1, 2); | |
49 | -void trace_screen(void); | |
50 | -void trace_rollover_check(void); | |
39 | + const char *rcba(int baddr); | |
51 | 40 | |
52 | -#else /*][*/ | |
41 | +// void toggle_dsTrace(H3270 *h, struct toggle *t, LIB3270_TOGGLE_TYPE tt); | |
42 | +// void toggle_eventTrace(H3270 *h, struct toggle *t, LIB3270_TOGGLE_TYPE tt); | |
43 | +// void toggle_screenTrace(H3270 *h, struct toggle *t, LIB3270_TOGGLE_TYPE tt); | |
53 | 44 | |
54 | -#define rcba 0 && | |
55 | -#if defined(__GNUC__) /*[*/ | |
56 | -#define trace_ds(format, args...) | |
57 | -#define trace_dsn(format, args...) | |
58 | -#define trace_ds_nb(format, args...) | |
59 | -#define trace_event(format, args...) | |
60 | -#else /*][*/ | |
61 | -#define trace_ds 0 && | |
62 | -#define trace_ds_nb 0 && | |
63 | -#define trace_dsn 0 && | |
64 | -#define trace_event 0 && | |
65 | -#define rcba 0 && | |
66 | -#endif /*]*/ | |
45 | + void trace_ansi_disc(void); | |
46 | + void trace_char(char c); | |
47 | + void trace_ds(const char *fmt, ...) printflike(1, 2); | |
48 | + void trace_ds_nb(const char *fmt, ...) printflike(1, 2); | |
49 | + void trace_dsn(const char *fmt, ...) printflike(1, 2); | |
50 | + void trace_event(const char *fmt, ...) printflike(1, 2); | |
51 | + void trace_screen(void); | |
52 | +// void trace_rollover_check(void); | |
67 | 53 | |
68 | -#endif /*]*/ | |
54 | +#elif defined(__GNUC__) | |
55 | + | |
56 | + #define trace_ds(format, args...) | |
57 | + #define trace_dsn(format, args...) | |
58 | + #define trace_ds_nb(format, args...) | |
59 | + #define trace_event(format, args...) | |
60 | + | |
61 | +#else | |
62 | + | |
63 | + #define trace_ds 0 && | |
64 | + #define trace_ds_nb 0 && | |
65 | + #define trace_dsn 0 && | |
66 | + #define trace_event 0 && | |
67 | + #define rcba 0 && | |
68 | + | |
69 | +#endif | ... | ... |