diff --git a/ansi.c b/ansi.c index 0e8f87a..f23ccce 100644 --- a/ansi.c +++ b/ansi.c @@ -1691,13 +1691,13 @@ void ansi_in3270(H3270 *session, int in3270, void *dunno) } #if defined(X3270_DBCS) /*[*/ -static void -trace_pending_mb(void) +static void trace_pending_mb(void) { int i; - for (i = 0; i < mb_pending; i++) { - trace_ds(" %02x", mb_buffer[i] & 0xff); + for (i = 0; i < mb_pending; i++) + { + trace_ds(&h3270," %02x", mb_buffer[i] & 0xff); } } #endif /*]*/ @@ -1723,10 +1723,11 @@ ansi_process(unsigned int c) fn = ansi_fn[st[(int)state][c]]; #if defined(X3270_DBCS) /*[*/ - if (mb_pending && fn != &ansi_printing) { - trace_ds("Dropped incomplete multi-byte character"); + if (mb_pending && fn != &ansi_printing) + { + trace_ds(&h3270,"Dropped incomplete multi-byte character"); trace_pending_mb(); - trace_ds("\n"); + trace_ds(&h3270,"\n"); mb_pending = 0; } #endif /*]*/ @@ -1837,9 +1838,9 @@ dbcs_process(int ch, unsigned char ebc[]) /* See if we have too many. */ if (mb_pending >= MB_MAX) { - trace_ds("Multi-byte character "); + trace_ds(&h3270,"Multi-byte character "); trace_pending_mb(); - trace_ds(" too long, dropping\n"); + trace_ds(&h3270," too long, dropping\n"); mb_pending = 0; return 0; } @@ -1860,9 +1861,9 @@ dbcs_process(int ch, unsigned char ebc[]) mb_pending = 0; return 2; } else { - trace_ds("Can't map multi-byte character"); + trace_ds(&h3270,"Can't map multi-byte character"); trace_pending_mb(); - trace_ds(" -> U+%04x to SBCS or DBCS, dropping\n", + trace_ds(&h3270," -> U+%04x to SBCS or DBCS, dropping\n", Ubuf[0] & 0xffff); mb_pending = 0; return 0; @@ -1876,15 +1877,14 @@ dbcs_process(int ch, unsigned char ebc[]) return 0; case U_INVALID_CHAR_FOUND: case U_ILLEGAL_CHAR_FOUND: - trace_ds("Invalid multi-byte character"); + trace_ds(&h3270,"Invalid multi-byte character"); trace_pending_mb(); - trace_ds(", dropping\n"); + trace_ds(&h3270,", dropping\n"); break; default: - trace_ds("Unexpected ICU error %d translating multi-type " - "character", (int)err); + trace_ds(&h3270,"Unexpected ICU error %d translating multi-type character", (int)err); trace_pending_mb(); - trace_ds(", dropping\n"); + trace_ds(&h3270,", dropping\n"); break; } mb_pending = 0; diff --git a/ctlr.c b/ctlr.c index e296102..b2aa09a 100644 --- a/ctlr.c +++ b/ctlr.c @@ -473,18 +473,18 @@ process_ds(unsigned char *buf, int buflen) // scroll_to_bottom(); - trace_ds("< "); + trace_ds(&h3270,"< "); switch (buf[0]) { /* 3270 command */ case CMD_EAU: /* erase all unprotected */ case SNA_CMD_EAU: - trace_ds("EraseAllUnprotected\n"); + trace_ds(&h3270,"EraseAllUnprotected\n"); ctlr_erase_all_unprotected(&h3270); return PDS_OKAY_NO_OUTPUT; break; case CMD_EWA: /* erase/write alternate */ case SNA_CMD_EWA: - trace_ds("EraseWriteAlternate"); + trace_ds(&h3270,"EraseWriteAlternate"); ctlr_erase(NULL,True); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; @@ -492,7 +492,7 @@ process_ds(unsigned char *buf, int buflen) break; case CMD_EW: /* erase/write */ case SNA_CMD_EW: - trace_ds("EraseWrite"); + trace_ds(&h3270,"EraseWrite"); ctlr_erase(NULL,False); if ((rv = ctlr_write(buf, buflen, True)) < 0) return rv; @@ -500,41 +500,41 @@ process_ds(unsigned char *buf, int buflen) break; case CMD_W: /* write */ case SNA_CMD_W: - trace_ds("Write"); + trace_ds(&h3270,"Write"); if ((rv = ctlr_write(buf, buflen, False)) < 0) return rv; return PDS_OKAY_NO_OUTPUT; break; case CMD_RB: /* read buffer */ case SNA_CMD_RB: - trace_ds("ReadBuffer\n"); + trace_ds(&h3270,"ReadBuffer\n"); ctlr_read_buffer(&h3270,h3270.aid); return PDS_OKAY_OUTPUT; break; case CMD_RM: /* read modifed */ case SNA_CMD_RM: - trace_ds("ReadModified\n"); + trace_ds(&h3270,"ReadModified\n"); ctlr_read_modified(h3270.aid, False); return PDS_OKAY_OUTPUT; break; case CMD_RMA: /* read modifed all */ case SNA_CMD_RMA: - trace_ds("ReadModifiedAll\n"); + trace_ds(&h3270,"ReadModifiedAll\n"); ctlr_read_modified(h3270.aid, True); return PDS_OKAY_OUTPUT; break; case CMD_WSF: /* write structured field */ case SNA_CMD_WSF: - trace_ds("WriteStructuredField"); + trace_ds(&h3270,"WriteStructuredField"); return write_structured_field(buf, buflen); break; case CMD_NOP: /* no-op */ - trace_ds("NoOp\n"); + trace_ds(&h3270,"NoOp\n"); return PDS_OKAY_NO_OUTPUT; break; default: /* unknown 3270 command */ - popup_an_error(NULL,"Unknown 3270 Data Stream command: 0x%X\n",buf[0]); + popup_an_error(&h3270,_( "Unknown 3270 Data Stream command: 0x%X" ),buf[0]); return PDS_BAD_CMD; } } @@ -552,8 +552,8 @@ static void insert_sa1(H3270 *hSession, unsigned char attr, unsigned char value, *hSession->obptr++ = attr; *hSession->obptr++ = value; if (*anyp) - trace_ds("'"); - trace_ds(" SetAttribute(%s)", see_efa(attr, value)); + trace_ds(hSession,"'"); + trace_ds(hSession, " SetAttribute(%s)", see_efa(attr, value)); *anyp = False; } @@ -627,7 +627,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) } #endif /*]*/ - trace_ds("> "); + trace_ds(&h3270,"> "); h3270.obptr = h3270.obuf; switch (aid_byte) { @@ -638,7 +638,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) *h3270.obptr++ = 0x5b; /* % */ *h3270.obptr++ = 0x61; /* / */ *h3270.obptr++ = 0x02; /* stx */ - trace_ds("SYSREQ"); + trace_ds(&h3270,"SYSREQ"); break; case AID_PA1: /* short-read AIDs */ @@ -658,11 +658,11 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) if (!IN_SSCP) { space3270out(&h3270,3); *h3270.obptr++ = aid_byte; - trace_ds("%s",see_aid(aid_byte)); + trace_ds(&h3270,"%s",see_aid(aid_byte)); if (short_read) goto rm_done; ENCODE_BADDR(h3270.obptr, h3270.cursor_addr); - trace_ds("%s",rcba(&h3270,h3270.cursor_addr)); + trace_ds(&h3270,"%s",rcba(&h3270,h3270.cursor_addr)); } else { space3270out(&h3270,1); /* just in case */ } @@ -686,7 +686,7 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) space3270out(&h3270,3); *h3270.obptr++ = ORDER_SBA; ENCODE_BADDR(h3270.obptr, baddr); - trace_ds(" SetBufferAddress%s (Cols: %d Rows: %d)", rcba(&h3270,baddr), h3270.cols, h3270.rows); + trace_ds(&h3270," SetBufferAddress%s (Cols: %d Rows: %d)", rcba(&h3270,baddr), h3270.cols, h3270.rows); while (!h3270.ea_buf[baddr].fa) { if (send_data && @@ -696,21 +696,21 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) space3270out(&h3270,1); *h3270.obptr++ = ORDER_GE; if (any) - trace_ds("'"); - trace_ds(" GraphicEscape"); + trace_ds(&h3270,"'"); + trace_ds(&h3270," GraphicEscape"); any = False; } space3270out(&h3270,1); *h3270.obptr++ = h3270.ea_buf[baddr].cc; if (!any) - trace_ds(" '"); - trace_ds("%s",see_ebc(h3270.ea_buf[baddr].cc)); + trace_ds(&h3270," '"); + trace_ds(&h3270,"%s",see_ebc(h3270.ea_buf[baddr].cc)); any = True; } INC_BA(baddr); } if (any) - trace_ds("'"); + trace_ds(&h3270,"'"); } else { /* not modified - skip */ do { @@ -736,15 +736,15 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) space3270out(&h3270,1); *h3270.obptr++ = ORDER_GE; if (any) - trace_ds("' "); - trace_ds(" GraphicEscape "); + trace_ds(&h3270,"' "); + trace_ds(&h3270," GraphicEscape "); any = False; } space3270out(&h3270,1); *h3270.obptr++ = h3270.ea_buf[baddr].cc; if (!any) - trace_ds("%s","'"); - trace_ds("%s",see_ebc(h3270.ea_buf[baddr].cc)); + trace_ds(&h3270,"%s","'"); + trace_ds(&h3270,"%s",see_ebc(h3270.ea_buf[baddr].cc)); any = True; nbytes++; } @@ -758,11 +758,11 @@ ctlr_read_modified(unsigned char aid_byte, Boolean all) break; } while (baddr != 0); if (any) - trace_ds("'"); + trace_ds(&h3270,"'"); } rm_done: - trace_ds("\n"); + trace_ds(&h3270,"\n"); net_output(&h3270); } @@ -788,13 +788,13 @@ void ctlr_read_buffer(H3270 *hSession, unsigned char aid_byte) } #endif /*]*/ - trace_ds("> "); + trace_ds(&h3270,"> "); hSession->obptr = hSession->obuf; space3270out(hSession,3); *hSession->obptr++ = aid_byte; ENCODE_BADDR(hSession->obptr, hSession->cursor_addr); - trace_ds("%s%s", see_aid(aid_byte), rcba(hSession,hSession->cursor_addr)); + trace_ds(&h3270,"%s%s", see_aid(aid_byte), rcba(hSession,hSession->cursor_addr)); baddr = 0; do { @@ -817,8 +817,8 @@ void ctlr_read_buffer(H3270 *hSession, unsigned char aid_byte) *hSession->obptr++ = code_table[fa]; if (any) - trace_ds("'"); - trace_ds(" StartField%s%s%s", + trace_ds(hSession,"'"); + trace_ds(hSession," StartField%s%s%s", (hSession->reply_mode == SF_SRM_FIELD) ? "" : "Extended", rcba(hSession,baddr), see_attr(fa)); @@ -828,21 +828,21 @@ void ctlr_read_buffer(H3270 *hSession, unsigned char aid_byte) space3270out(hSession,2); *hSession->obptr++ = XA_FOREGROUND; *hSession->obptr++ = hSession->ea_buf[baddr].fg; - trace_ds("%s", see_efa(XA_FOREGROUND, hSession->ea_buf[baddr].fg)); + trace_ds(hSession,"%s", see_efa(XA_FOREGROUND, hSession->ea_buf[baddr].fg)); (*(hSession->obuf + attr_count))++; } if (hSession->ea_buf[baddr].bg) { space3270out(hSession,2); *hSession->obptr++ = XA_BACKGROUND; *hSession->obptr++ = hSession->ea_buf[baddr].bg; - trace_ds("%s", see_efa(XA_BACKGROUND, hSession->ea_buf[baddr].bg)); + trace_ds(hSession,"%s", see_efa(XA_BACKGROUND, hSession->ea_buf[baddr].bg)); (*(hSession->obuf + attr_count))++; } if (hSession->ea_buf[baddr].gr) { space3270out(hSession,2); *hSession->obptr++ = XA_HIGHLIGHTING; *hSession->obptr++ = hSession->ea_buf[baddr].gr | 0xf0; - trace_ds("%s", see_efa(XA_HIGHLIGHTING, + trace_ds(hSession,"%s", see_efa(XA_HIGHLIGHTING, hSession->ea_buf[baddr].gr | 0xf0)); (*(hSession->obuf + attr_count))++; } @@ -850,7 +850,7 @@ void ctlr_read_buffer(H3270 *hSession, unsigned char aid_byte) space3270out(hSession,2); *hSession->obptr++ = XA_CHARSET; *hSession->obptr++ = host_cs(hSession->ea_buf[baddr].cs); - trace_ds("%s", see_efa(XA_CHARSET,host_cs(hSession->ea_buf[baddr].cs))); + trace_ds(hSession,"%s", see_efa(XA_CHARSET,host_cs(hSession->ea_buf[baddr].cs))); (*(hSession->obuf + attr_count))++; } } @@ -861,8 +861,8 @@ void ctlr_read_buffer(H3270 *hSession, unsigned char aid_byte) space3270out(hSession,1); *hSession->obptr++ = ORDER_GE; if (any) - trace_ds("'"); - trace_ds(" GraphicEscape"); + trace_ds(hSession,"'"); + trace_ds(hSession," GraphicEscape"); any = False; } space3270out(hSession,1); @@ -870,23 +870,23 @@ void ctlr_read_buffer(H3270 *hSession, unsigned char aid_byte) if (hSession->ea_buf[baddr].cc <= 0x3f || hSession->ea_buf[baddr].cc == 0xff) { if (any) - trace_ds("'"); + trace_ds(hSession,"'"); - trace_ds(" %s", see_ebc(hSession->ea_buf[baddr].cc)); + trace_ds(hSession," %s", see_ebc(hSession->ea_buf[baddr].cc)); any = False; } else { if (!any) - trace_ds(" '"); - trace_ds("%s", see_ebc(hSession->ea_buf[baddr].cc)); + trace_ds(hSession," '"); + trace_ds(hSession,"%s", see_ebc(hSession->ea_buf[baddr].cc)); any = True; } } INC_BA(baddr); } while (baddr != 0); if (any) - trace_ds("'"); + trace_ds(hSession,"'"); - trace_ds("\n"); + trace_ds(hSession,"\n"); net_output(hSession); } @@ -1109,8 +1109,8 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) char mb[16]; #endif /*]*/ -#define END_TEXT0 { if (previous == TEXT) trace_ds("'"); } -#define END_TEXT(cmd) { END_TEXT0; trace_ds(" %s", cmd); } +#define END_TEXT0 { if (previous == TEXT) trace_ds(&h3270,"'"); } +#define END_TEXT(cmd) { END_TEXT0; trace_ds(&h3270," %s", cmd); } /* XXX: Should there be a ctlr_add_cs call here? */ #define START_FIELD(fa) { \ @@ -1121,7 +1121,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) ctlr_add_bg(&h3270,h3270.buffer_addr, 0); \ ctlr_add_gr(&h3270,h3270.buffer_addr, 0); \ ctlr_add_ic(&h3270,h3270.buffer_addr, 0); \ - trace_ds("%s",see_attr(fa)); \ + trace_ds(&h3270,"%s",see_attr(fa)); \ h3270.formatted = True; \ } @@ -1141,24 +1141,24 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) if (WCC_RESET(buf[1])) { if (erase) h3270.reply_mode = SF_SRM_FIELD; - trace_ds("%sreset", paren); + trace_ds(&h3270,"%sreset", paren); paren = ","; } wcc_sound_alarm = WCC_SOUND_ALARM(buf[1]); if (wcc_sound_alarm) { - trace_ds("%salarm", paren); + trace_ds(&h3270,"%salarm", paren); paren = ","; } wcc_keyboard_restore = WCC_KEYBOARD_RESTORE(buf[1]); if (wcc_keyboard_restore) ticking_stop(NULL); if (wcc_keyboard_restore) { - trace_ds("%srestore", paren); + trace_ds(&h3270,"%srestore", paren); paren = ","; } if (WCC_RESET_MDT(buf[1])) { - trace_ds("%sresetMDT", paren); + trace_ds(&h3270,"%sresetMDT", paren); paren = ","; baddr = 0; if (h3270.modified_sel) @@ -1171,7 +1171,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) } while (baddr != 0); } if (strcmp(paren, "(")) - trace_ds(")"); + trace_ds(&h3270,")"); last_cmd = True; last_zpt = False; @@ -1183,7 +1183,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) break; \ } #define ABORT_WRITE(s) { \ - trace_ds(" [" s "; write aborted]\n"); \ + trace_ds(&h3270," [" s "; write aborted]\n"); \ ABORT_WRITEx; \ } \ @@ -1192,7 +1192,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) case ORDER_SF: /* start field */ END_TEXT("StartField"); if (previous != SBA) - trace_ds("%s",rcba(&h3270,h3270.buffer_addr)); + trace_ds(&h3270,"%s",rcba(&h3270,h3270.buffer_addr)); previous = ORDER; cp++; /* skip field attribute */ START_FIELD(*cp); @@ -1207,7 +1207,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) h3270.buffer_addr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("SetBufferAddress"); previous = SBA; - trace_ds("%s",rcba(&h3270,h3270.buffer_addr)); + trace_ds(&h3270,"%s",rcba(&h3270,h3270.buffer_addr)); if (h3270.buffer_addr >= h3270.cols * h3270.rows) { ABORT_WRITE("invalid SBA address"); @@ -1219,7 +1219,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) case ORDER_IC: /* insert cursor */ END_TEXT("InsertCursor"); if (previous != SBA) - trace_ds("%s",rcba(&h3270,h3270.buffer_addr)); + trace_ds(&h3270,"%s",rcba(&h3270,h3270.buffer_addr)); previous = ORDER; cursor_move(&h3270,h3270.buffer_addr); last_cmd = True; @@ -1255,7 +1255,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) * XXX: There's some funky DBCS rule here. */ if (!last_cmd || last_zpt) { - trace_ds("(nulling)"); + trace_ds(&h3270,"(nulling)"); while ((h3270.buffer_addr != baddr) && (!h3270.ea_buf[h3270.buffer_addr].fa)) { ctlr_add(&h3270,h3270.buffer_addr, EBC_null, 0); @@ -1277,7 +1277,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) END_TEXT("RepeatToAddress"); cp += 2; /* skip buffer address */ baddr = DECODE_BADDR(*(cp-1), *cp); - trace_ds("%s",rcba(&h3270,baddr)); + trace_ds(&h3270,"%s",rcba(&h3270,baddr)); cp++; /* skip char to repeat */ add_dbcs = False; ra_ge = False; @@ -1313,32 +1313,30 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) case EBC_fm: break; default: - trace_ds(" [invalid DBCS RA control character X'%02x%02x'; write aborted]", - add_c1, add_c2); + trace_ds(&h3270," [invalid DBCS RA control character X'%02x%02x'; write aborted]",add_c1, add_c2); ABORT_WRITEx; } } else if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { - trace_ds(" [invalid DBCS RA character X'%02x%02x'; write aborted]", - add_c1, add_c2); + trace_ds(&h3270," [invalid DBCS RA character X'%02x%02x'; write aborted]",add_c1, add_c2); ABORT_WRITEx; } dbcs_to_mb(add_c1, add_c2, mb); - trace_ds_nb("'%s'", mb); + trace_ds_nb(&h3270,"'%s'", mb); } else #endif /*]*/ { if (*cp == ORDER_GE) { ra_ge = True; - trace_ds("GraphicEscape"); + trace_ds(&h3270,"GraphicEscape"); cp++; } add_c1 = *cp; if (add_c1) - trace_ds("'"); - trace_ds("%s", see_ebc(add_c1)); + trace_ds(&h3270,"'"); + trace_ds(&h3270,"%s", see_ebc(add_c1)); if (add_c1) - trace_ds("'"); + trace_ds(&h3270,"'"); } if (baddr >= h3270.cols * h3270.rows) { ABORT_WRITE("invalid RA address"); @@ -1376,7 +1374,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) baddr = DECODE_BADDR(*(cp-1), *cp); END_TEXT("EraseUnprotectedAll"); if (previous != SBA) - trace_ds("%s",rcba(&h3270,baddr)); + trace_ds(&h3270,"%s",rcba(&h3270,baddr)); previous = ORDER; if (baddr >= h3270.cols * h3270.rows) { ABORT_WRITE("invalid EUA address"); @@ -1408,10 +1406,10 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) cp++; /* skip char */ previous = ORDER; if (*cp) - trace_ds("'"); - trace_ds("%s", see_ebc(*cp)); + trace_ds(&h3270,"'"); + trace_ds(&h3270,"%s", see_ebc(*cp)); if (*cp) - trace_ds("'"); + trace_ds(&h3270,"'"); ctlr_add(&h3270,h3270.buffer_addr, *cp, CS_GE); ctlr_add_fg(&h3270,h3270.buffer_addr, h3270.default_fg); ctlr_add_bg(&h3270,h3270.buffer_addr, h3270.default_bg); @@ -1425,7 +1423,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) case ORDER_MF: /* modify field */ END_TEXT("ModifyField"); if (previous != SBA) - trace_ds("%s",rcba(&h3270,h3270.buffer_addr)); + trace_ds(&h3270,"%s",rcba(&h3270,h3270.buffer_addr)); previous = ORDER; cp++; na = *cp; @@ -1433,37 +1431,29 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { - trace_ds(" 3270"); + trace_ds(&h3270," 3270"); cp++; ctlr_add_fa(&h3270,h3270.buffer_addr, *cp, h3270.ea_buf[h3270.buffer_addr].cs); - trace_ds("%s",see_attr(*cp)); + trace_ds(&h3270,"%s",see_attr(*cp)); } else if (*cp == XA_FOREGROUND) { - trace_ds("%s", - see_efa(*cp, - *(cp + 1))); + trace_ds(&h3270,"%s",see_efa(*cp,*(cp + 1))); cp++; if (h3270.m3279) ctlr_add_fg(&h3270,h3270.buffer_addr, *cp); } else if (*cp == XA_BACKGROUND) { - trace_ds("%s", - see_efa(*cp, - *(cp + 1))); + trace_ds(&h3270,"%s",see_efa(*cp,*(cp + 1))); cp++; if (h3270.m3279) ctlr_add_bg(&h3270,h3270.buffer_addr, *cp); } else if (*cp == XA_HIGHLIGHTING) { - trace_ds("%s", - see_efa(*cp, - *(cp + 1))); + trace_ds(&h3270,"%s",see_efa(*cp,*(cp + 1))); cp++; ctlr_add_gr(&h3270,h3270.buffer_addr, *cp & 0x0f); } else if (*cp == XA_CHARSET) { int cs = 0; - trace_ds("%s", - see_efa(*cp, - *(cp + 1))); + trace_ds(&h3270,"%s",see_efa(*cp,*(cp + 1))); cp++; if (*cp == 0xf1) cs = CS_APL; @@ -1471,19 +1461,15 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) cs = CS_DBCS; ctlr_add_cs(&h3270,h3270.buffer_addr, cs); } else if (*cp == XA_ALL) { - trace_ds("%s", - see_efa(*cp, - *(cp + 1))); + trace_ds(&h3270,"%s",see_efa(*cp,*(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { - trace_ds("%s", - see_efa(*cp, - *(cp + 1))); + trace_ds(&h3270,"%s",see_efa(*cp,*(cp + 1))); ctlr_add_ic(&h3270,h3270.buffer_addr, (*(cp + 1) == 1)); cp++; } else { - trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } @@ -1496,7 +1482,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) case ORDER_SFE: /* start field extended */ END_TEXT("StartFieldExtended"); if (previous != SBA) - trace_ds("%s",rcba(&h3270,h3270.buffer_addr)); + trace_ds(&h3270,"%s",rcba(&h3270,h3270.buffer_addr)); previous = ORDER; cp++; /* skip order */ na = *cp; @@ -1509,26 +1495,26 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) for (i = 0; i < (int)na; i++) { cp++; if (*cp == XA_3270) { - trace_ds(" 3270"); + trace_ds(&h3270," 3270"); cp++; START_FIELD(*cp); any_fa++; } else if (*cp == XA_FOREGROUND) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); cp++; if (h3270.m3279) efa_fg = *cp; } else if (*cp == XA_BACKGROUND) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); cp++; if (h3270.m3279) efa_bg = *cp; } else if (*cp == XA_HIGHLIGHTING) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); cp++; efa_gr = *cp & 0x07; } else if (*cp == XA_CHARSET) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); cp++; if (*cp == 0xf1) efa_cs = CS_APL; @@ -1537,15 +1523,15 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) else efa_cs = CS_BASE; } else if (*cp == XA_ALL) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); cp++; } else if (*cp == XA_INPUT_CONTROL) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); if (h3270.dbcs) efa_ic = (*(cp + 1) == 1); cp++; } else { - trace_ds("%s[unsupported]", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s[unsupported]", see_efa(*cp, *(cp + 1))); cp++; } } @@ -1565,25 +1551,25 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) previous = ORDER; cp++; if (*cp == XA_FOREGROUND) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); if (h3270.m3279) h3270.default_fg = *(cp + 1); } else if (*cp == XA_BACKGROUND) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); if (h3270.m3279) h3270.default_bg = *(cp + 1); } else if (*cp == XA_HIGHLIGHTING) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); h3270.default_gr = *(cp + 1) & 0x0f; } else if (*cp == XA_ALL) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); h3270.default_fg = 0; h3270.default_bg = 0; h3270.default_gr = 0; h3270.default_cs = 0; h3270.default_ic = 0; } else if (*cp == XA_CHARSET) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); switch (*(cp + 1)) { case 0xf1: h3270.default_cs = CS_APL; @@ -1596,14 +1582,13 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) break; } } else if (*cp == XA_INPUT_CONTROL) { - trace_ds("%s", see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s", see_efa(*cp, *(cp + 1))); if (*(cp + 1) == 1) h3270.default_ic = 1; else h3270.default_ic = 0; } else - trace_ds("%s[unsupported]", - see_efa(*cp, *(cp + 1))); + trace_ds(&h3270,"%s[unsupported]",see_efa(*cp, *(cp + 1))); cp++; last_cmd = True; last_zpt = False; @@ -1727,8 +1712,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) cp--; break; default: - trace_ds(" [invalid DBCS control character X'%02x%02x'; write aborted]", - add_c1, add_c2); + trace_ds(&h3270," [invalid DBCS control character X'%02x%02x'; write aborted]",add_c1, add_c2); ABORT_WRITEx; break; } @@ -1758,14 +1742,14 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) default: /* enter character */ if (*cp <= 0x3F) { END_TEXT("UnsupportedOrder"); - trace_ds("(%02X)", *cp); + trace_ds(&h3270,"(%02X)", *cp); previous = ORDER; last_cmd = True; last_zpt = False; break; } if (previous != TEXT) - trace_ds(" '"); + trace_ds(&h3270," '"); previous = TEXT; #if defined(X3270_DBCS) /*[*/ add_dbcs = False; @@ -1782,8 +1766,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) add_c2 = *cp; if (add_c1 < 0x40 || add_c1 > 0xfe || add_c2 < 0x40 || add_c2 > 0xfe) { - trace_ds(" [invalid DBCS character X'%02x%02x'; write aborted]", - add_c1, add_c2); + trace_ds(&h3270," [invalid DBCS character X'%02x%02x'; write aborted]",add_c1, add_c2); ABORT_WRITEx; } add_dbcs = True; @@ -1792,7 +1775,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) } else { #endif /*]*/ add_c1 = *cp; - trace_ds("%s", see_ebc(*cp)); + trace_ds(&h3270,"%s", see_ebc(*cp)); #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ @@ -1819,7 +1802,7 @@ ctlr_write(unsigned char buf[], int buflen, Boolean erase) } set_formatted(&h3270); END_TEXT0; - trace_ds("\n"); + trace_ds(&h3270,"\n"); if (wcc_keyboard_restore) { h3270.aid = AID_NO; do_reset(&h3270,False); @@ -1872,7 +1855,7 @@ void ctlr_write_sscp_lu(H3270 *hSession, unsigned char buf[], int buflen) * we display other control codes as spaces. */ - trace_ds("SSCP-LU data\n"); + trace_ds(&h3270,"SSCP-LU data\n"); for (i = 0; i < buflen; cp++, i++) { switch (*cp) { case FCORDER_NL: @@ -1896,7 +1879,7 @@ void ctlr_write_sscp_lu(H3270 *hSession, unsigned char buf[], int buflen) /* Some hosts forget they're talking SSCP-LU. */ cp++; i++; - trace_ds(" StartField%s %s [translated to space]\n",rcba(hSession,hSession->buffer_addr), see_attr(*cp)); + trace_ds(&h3270," StartField%s %s [translated to space]\n",rcba(hSession,hSession->buffer_addr), see_attr(*cp)); ctlr_add(hSession,hSession->buffer_addr, EBC_space, hSession->default_cs); ctlr_add_fg(hSession,hSession->buffer_addr, hSession->default_fg); ctlr_add_bg(hSession,hSession->buffer_addr, hSession->default_bg); @@ -1906,12 +1889,12 @@ void ctlr_write_sscp_lu(H3270 *hSession, unsigned char buf[], int buflen) break; case ORDER_IC: - trace_ds(" InsertCursor%s [ignored]\n",rcba(hSession,hSession->buffer_addr)); + trace_ds(&h3270," InsertCursor%s [ignored]\n",rcba(hSession,hSession->buffer_addr)); break; case ORDER_SBA: // baddr = DECODE_BADDR(*(cp+1), *(cp+2)); - trace_ds(" SetBufferAddress%s [ignored]\n", rcba(hSession,DECODE_BADDR(*(cp+1), *(cp+2)))); + trace_ds(&h3270," SetBufferAddress%s [ignored]\n", rcba(hSession,DECODE_BADDR(*(cp+1), *(cp+2)))); cp += 2; i += 2; break; @@ -2130,8 +2113,7 @@ ctlr_dbcs_postprocess(void) case EBC_so: /* Two SO's or SO in DBCS field are invalid. */ if (so || dbcs_field) { - trace_ds("DBCS postprocess: invalid SO " - "found at %s\n", rcba(baddr)); + trace_ds(&h3270,"DBCS postprocess: invalid SO found at %s\n", rcba(baddr)); rc = -1; } else { dbaddr = baddr; @@ -2144,8 +2126,7 @@ ctlr_dbcs_postprocess(void) case EBC_si: /* Two SI's or SI in DBCS field are invalid. */ if (si || dbcs_field) { - trace_ds("Postprocess: Invalid SO found " - "at %s\n", rcba(baddr)); + trace_ds(&h3270,"Postprocess: Invalid SO found at %s\n", rcba(baddr)); rc = -1; ea_buf[baddr].db = DBCS_NONE; } else { @@ -2158,9 +2139,7 @@ ctlr_dbcs_postprocess(void) default: /* Non-base CS in DBCS subfield is invalid. */ if (so && ea_buf[baddr].cs != CS_BASE) { - trace_ds("DBCS postprocess: invalid " - "character set found at %s\n", - rcba(baddr)); + trace_ds(&h3270,"DBCS postprocess: invalid character set found at %s\n",rcba(baddr)); rc = -1; ea_buf[baddr].cs = CS_BASE; } @@ -2211,8 +2190,7 @@ ctlr_dbcs_postprocess(void) !IS_RIGHT(ea_buf[baddr].db) && ea_buf[pbaddr].db != DBCS_DEAD) { if (!ea_buf[baddr].fa) { - trace_ds("DBCS postprocess: dead position " - "at %s\n", rcba(pbaddr)); + trace_ds(&h3270,"DBCS postprocess: dead position at %s\n", rcba(pbaddr)); rc = -1; } ea_buf[pbaddr].cc = EBC_null; diff --git a/ft_cut.c b/ft_cut.c index ae5331f..3e2320a 100644 --- a/ft_cut.c +++ b/ft_cut.c @@ -288,7 +288,7 @@ ft_cut_data(void) cut_data(); break; default: - trace_ds("< FT unknown 0x%02x\n", h3270.ea_buf[O_FRAME_TYPE].cc); + trace_ds(&h3270,"< FT unknown 0x%02x\n", h3270.ea_buf[O_FRAME_TYPE].cc); cut_abort(SC_ABORT_XMIT, "%s", _("Unknown frame type from host")); break; } @@ -305,12 +305,12 @@ cut_control_code(void) char *bp; int i; - trace_ds("< FT CONTROL_CODE "); + trace_ds(&h3270,"< FT CONTROL_CODE "); code = (h3270.ea_buf[O_CC_STATUS_CODE].cc << 8) | h3270.ea_buf[O_CC_STATUS_CODE + 1].cc; switch (code) { case SC_HOST_ACK: - trace_ds("HOST_ACK\n"); + trace_ds(&h3270,"HOST_ACK\n"); cut_xfer_in_progress = True; expanded_length = 0; quadrant = -1; @@ -320,7 +320,7 @@ cut_control_code(void) break; case SC_XFER_COMPLETE: - trace_ds("XFER_COMPLETE\n"); + trace_ds(&h3270,"XFER_COMPLETE\n"); cut_ack(); cut_xfer_in_progress = False; ft_complete(NULL,N_( "Complete" ) ); @@ -328,7 +328,7 @@ cut_control_code(void) case SC_ABORT_FILE: case SC_ABORT_XMIT: - trace_ds("ABORT\n"); + trace_ds(&h3270,"ABORT\n"); cut_xfer_in_progress = False; cut_ack(); @@ -363,7 +363,7 @@ cut_control_code(void) break; default: - trace_ds("unknown 0x%04x\n", code); + trace_ds(&h3270,"unknown 0x%04x\n", code); cut_abort(SC_ABORT_XMIT, "%s", _("Unknown FT control code from host")); break; } @@ -382,7 +382,7 @@ cut_data_request(void) int i; unsigned char attr; - trace_ds("< FT DATA_REQUEST %u\n", from6(seq)); + trace_ds(&h3270,"< FT DATA_REQUEST %u\n", from6(seq)); if (lib3270_get_ft_state(&h3270) == FT_ABORT_WAIT) { cut_abort(SC_ABORT_FILE,"%s",N_("Transfer cancelled by user")); @@ -431,7 +431,7 @@ cut_data_request(void) ctlr_add_fa(&h3270,O_DR_SF, attr, 0); /* Send it up to the host. */ - trace_ds("> FT DATA %u\n", from6(seq)); + trace_ds(&h3270,"> FT DATA %u\n", from6(seq)); ft_update_length(NULL); expanded_length += count; @@ -444,7 +444,7 @@ cut_data_request(void) static void cut_retransmit(void) { - trace_ds("< FT RETRANSMIT\n"); + trace_ds(&h3270,"< FT RETRANSMIT\n"); cut_abort(SC_ABORT_XMIT,"%s",_("Transmission error")); } @@ -474,7 +474,7 @@ cut_data(void) int conv_length; register int i; - trace_ds("< FT DATA\n"); + trace_ds(&h3270,"< FT DATA\n"); if (((H3270FT *) h3270.ft)->state == LIB3270_FT_STATE_ABORT_WAIT) { cut_abort(SC_ABORT_FILE,"%s",_("Transfer cancelled by user")); @@ -492,7 +492,7 @@ cut_data(void) cvbuf[i] = h3270.ea_buf[O_DT_DATA + i].cc; if (raw_length == 2 && cvbuf[0] == EOF_DATA1 && cvbuf[1] == EOF_DATA2) { - trace_ds("< FT EOF\n"); + trace_ds(&h3270,"< FT EOF\n"); cut_ack(); return; } @@ -515,7 +515,7 @@ cut_data(void) */ static void cut_ack(void) { - trace_ds("> FT ACK\n"); + trace_ds(&h3270,"> FT ACK\n"); lib3270_enter(&h3270); } @@ -539,7 +539,7 @@ static void cut_abort(unsigned short reason, const char *fmt, ...) ctlr_add(&h3270,RO_FRAME_SEQ, h3270.ea_buf[O_DT_FRAME_SEQ].cc, 0); ctlr_add(&h3270,RO_REASON_CODE, HIGH8(reason), 0); ctlr_add(&h3270,RO_REASON_CODE+1, LOW8(reason), 0); - trace_ds("> FT CONTROL_CODE ABORT\n"); + trace_ds(&h3270,"> FT CONTROL_CODE ABORT\n"); lib3270_pfkey(&h3270,2); diff --git a/ft_dft.c b/ft_dft.c index 6f63413..d514b42 100644 --- a/ft_dft.c +++ b/ft_dft.c @@ -108,7 +108,7 @@ ft_dft_data(unsigned char *data, int length unused) if (lib3270_get_ft_state(&h3270) == FT_NONE) { - trace_ds(" (no transfer in progress)\n"); + trace_ds(&h3270," (no transfer in progress)\n"); return; } @@ -141,7 +141,7 @@ ft_dft_data(unsigned char *data, int length unused) dft_close_request(); break; default: - trace_ds(" Unsupported(0x%04x)\n", data_type); + trace_ds(&h3270," Unsupported(0x%04x)\n", data_type); break; } } @@ -175,9 +175,9 @@ dft_open_request(unsigned short len, unsigned char *cp) *s-- = '\0'; } if (recsz) { - trace_ds(" Open('%s',recsz=%u)\n", namebuf, recsz); + trace_ds(&h3270," Open('%s',recsz=%u)\n", namebuf, recsz); } else { - trace_ds(" Open('%s')\n", namebuf); + trace_ds(&h3270," Open('%s')\n", namebuf); } if (!strcmp(namebuf, OPEN_MSG)) @@ -190,7 +190,7 @@ dft_open_request(unsigned short len, unsigned char *cp) recnum = 1; /* Acknowledge the Open. */ - trace_ds("> WriteStructuredField FileTransferData OpenAck\n"); + trace_ds(&h3270,"> WriteStructuredField FileTransferData OpenAck\n"); h3270.obptr = h3270.obuf; space3270out(&h3270,6); *h3270.obptr++ = AID_SF; @@ -204,7 +204,7 @@ dft_open_request(unsigned short len, unsigned char *cp) static void dft_insert_request(void) { - trace_ds(" Insert\n"); + trace_ds(&h3270," Insert\n"); /* Doesn't currently do anything. */ } @@ -230,7 +230,7 @@ dft_data_insert(struct data_buffer *data_bufr) /* Adjust for 5 extra count */ my_length -= 5; - trace_ds(" Data(rec=%lu) %d bytes\n", recnum, my_length); + trace_ds(&h3270," Data(rec=%lu) %d bytes\n", recnum, my_length); /* * First, check to see if we have message data or file data. @@ -315,7 +315,7 @@ dft_data_insert(struct data_buffer *data_bufr) } /* Send an acknowledgement frame back. */ - trace_ds("> WriteStructuredField FileTransferData DataAck(rec=%lu)\n", recnum); + trace_ds(&h3270,"> WriteStructuredField FileTransferData DataAck(rec=%lu)\n", recnum); h3270.obptr = h3270.obuf; space3270out(&h3270,12); *h3270.obptr++ = AID_SF; @@ -332,7 +332,7 @@ dft_data_insert(struct data_buffer *data_bufr) static void dft_set_cur_req(void) { - trace_ds(" SetCursor\n"); + trace_ds(&h3270," SetCursor\n"); /* Currently doesn't do anything. */ } @@ -345,7 +345,7 @@ dft_get_request(void) size_t total_read = 0; unsigned char *bufptr; - trace_ds(" Get\n"); + trace_ds(&h3270," Get\n"); if (!message_flag && lib3270_get_ft_state(&h3270) == FT_ABORT_WAIT) { dft_abort(TR_GET_REQ, _( "Transfer cancelled by user" ) ); @@ -422,8 +422,7 @@ dft_get_request(void) *h3270.obptr++ = SF_TRANSFER_DATA; if (total_read) { - trace_ds("> WriteStructuredField FileTransferData Data(rec=%lu) %d bytes\n", - (unsigned long) recnum, (int) total_read); + trace_ds(&h3270,"> WriteStructuredField FileTransferData Data(rec=%lu) %d bytes\n",(unsigned long) recnum, (int) total_read); SET16(h3270.obptr, TR_GET_REPLY); SET16(h3270.obptr, TR_RECNUM_HDR); SET32(h3270.obptr, recnum); @@ -441,7 +440,7 @@ dft_get_request(void) } } else { - trace_ds("> WriteStructuredField FileTransferData EOF\n"); + trace_ds(&h3270,"> WriteStructuredField FileTransferData EOF\n"); *h3270.obptr++ = HIGH8(TR_GET_REQ); *h3270.obptr++ = TR_ERROR_REPLY; SET16(h3270.obptr, TR_ERROR_HDR); @@ -476,8 +475,8 @@ dft_close_request(void) * Recieved a close request from the system. * Return a close acknowledgement. */ - trace_ds(" Close\n"); - trace_ds("> WriteStructuredField FileTransferData CloseAck\n"); + trace_ds(&h3270," Close\n"); + trace_ds(&h3270,"> WriteStructuredField FileTransferData CloseAck\n"); h3270.obptr = h3270.obuf; space3270out(&h3270,6); *h3270.obptr++ = AID_SF; @@ -499,7 +498,7 @@ static void dft_abort(unsigned short code, const char *fmt, ...) abort_string = lib3270_vsprintf(fmt, args); va_end(args); - trace_ds("> WriteStructuredField FileTransferData Error\n"); + trace_ds(&h3270,"> WriteStructuredField FileTransferData Error\n"); h3270.obptr = h3270.obuf; space3270out(&h3270,10); @@ -535,7 +534,7 @@ dft_read_modified(void) { if (dft_savebuf_len) { - trace_ds("> WriteStructuredField FileTransferData\n"); + trace_ds(&h3270,"> WriteStructuredField FileTransferData\n"); h3270.obptr = h3270.obuf; space3270out(&h3270,dft_savebuf_len); memcpy(h3270.obptr, dft_savebuf, dft_savebuf_len); diff --git a/rpq.c b/rpq.c index dc61d1b..ff518c0 100644 --- a/rpq.c +++ b/rpq.c @@ -133,7 +133,7 @@ void do_qr_rpqnames(void) int remaining = 254; /* maximum data area for rpqname reply */ Boolean omit_due_space_limit; - trace_ds("> QueryReply(RPQNames)\n"); + trace_ds(&h3270,"> QueryReply(RPQNames)\n"); /* * Allocate enough space for the maximum allowed item. diff --git a/sf.c b/sf.c index 32c130a..b3c699a 100644 --- a/sf.c +++ b/sf.c @@ -167,61 +167,58 @@ write_structured_field(unsigned char buf[], int buflen) while (buflen > 0) { if (first) - trace_ds(" "); + trace_ds(&h3270," "); else - trace_ds("< WriteStructuredField "); + trace_ds(&h3270,"< WriteStructuredField "); first = False; /* Pick out the field length. */ if (buflen < 2) { - trace_ds("error: single byte at end of message\n"); + trace_ds(&h3270,"error: single byte at end of message\n"); return rv ? rv : PDS_BAD_CMD; } fieldlen = (cp[0] << 8) + cp[1]; if (fieldlen == 0) fieldlen = buflen; if (fieldlen < 3) { - trace_ds("error: field length %d too small\n", - fieldlen); + trace_ds(&h3270,"error: field length %d too small\n",fieldlen); return rv ? rv : PDS_BAD_CMD; } if ((int)fieldlen > buflen) { - trace_ds("error: field length %d exceeds remaining " - "message length %d\n", - fieldlen, buflen); + trace_ds(&h3270,"error: field length %d exceeds remaining message length %d\n",fieldlen, buflen); return rv ? rv : PDS_BAD_CMD; } /* Dispatch on the ID. */ switch (cp[2]) { case SF_READ_PART: - trace_ds("ReadPartition"); + trace_ds(&h3270,"ReadPartition"); rv_this = sf_read_part(cp, (int)fieldlen); break; case SF_ERASE_RESET: - trace_ds("EraseReset"); + trace_ds(&h3270,"EraseReset"); rv_this = sf_erase_reset(cp, (int)fieldlen); break; case SF_SET_REPLY_MODE: - trace_ds("SetReplyMode"); + trace_ds(&h3270,"SetReplyMode"); rv_this = sf_set_reply_mode(cp, (int)fieldlen); break; case SF_CREATE_PART: - trace_ds("CreatePartition"); + trace_ds(&h3270,"CreatePartition"); rv_this = sf_create_partition(cp, (int)fieldlen); break; case SF_OUTBOUND_DS: - trace_ds("OutboundDS"); + trace_ds(&h3270,"OutboundDS"); rv_this = sf_outbound_ds(cp, (int)fieldlen); break; #if defined(X3270_FT) /*[*/ case SF_TRANSFER_DATA: /* File transfer data */ - trace_ds("FileTransferData"); + trace_ds(&h3270,"FileTransferData"); ft_dft_data(cp, (int)fieldlen); break; #endif /*]*/ default: - trace_ds("unsupported ID 0x%02x\n", cp[2]); + trace_ds(&h3270,"unsupported ID 0x%02x\n", cp[2]); rv_this = PDS_BAD_CMD; break; } @@ -243,7 +240,7 @@ write_structured_field(unsigned char buf[], int buflen) buflen -= fieldlen; } if (first) - trace_ds(" (null)\n"); + trace_ds(&h3270," (null)\n"); if (bad_cmd && !rv) return PDS_BAD_CMD; @@ -259,22 +256,23 @@ sf_read_part(unsigned char buf[], unsigned buflen) int any = 0; const char *comma = ""; - if (buflen < 5) { - trace_ds(" error: field length %d too small\n", buflen); + if (buflen < 5) + { + trace_ds(&h3270," error: field length %d too small\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; - trace_ds("(0x%02x)", partition); + trace_ds(&h3270,"(0x%02x)", partition); switch (buf[4]) { case SF_RP_QUERY: - trace_ds(" Query"); + trace_ds(&h3270," Query"); if (partition != 0xff) { - trace_ds(" error: illegal partition\n"); + trace_ds(&h3270," error: illegal partition\n"); return PDS_BAD_CMD; } - trace_ds("\n"); + trace_ds(&h3270,"\n"); query_reply_start(); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ @@ -285,29 +283,28 @@ sf_read_part(unsigned char buf[], unsigned buflen) query_reply_end(); break; case SF_RP_QLIST: - trace_ds(" QueryList "); + trace_ds(&h3270," QueryList "); if (partition != 0xff) { - trace_ds("error: illegal partition\n"); + trace_ds(&h3270,"error: illegal partition\n"); return PDS_BAD_CMD; } if (buflen < 6) { - trace_ds("error: missing request type\n"); + trace_ds(&h3270,"error: missing request type\n"); return PDS_BAD_CMD; } query_reply_start(); switch (buf[5]) { case SF_RPQ_LIST: - trace_ds("List("); + trace_ds(&h3270,"List("); if (buflen < 7) { - trace_ds(")\n"); + trace_ds(&h3270,")\n"); do_query_reply(QR_NULL); } else { for (i = 6; i < buflen; i++) { - trace_ds("%s%s", comma, - see_qcode(buf[i])); + trace_ds(&h3270,"%s%s", comma,see_qcode(buf[i])); comma = ","; } - trace_ds(")\n"); + trace_ds(&h3270,")\n"); for (i = 0; i < NSR; i++) { if (memchr((char *)&buf[6], (char)replies[i].code, @@ -327,12 +324,12 @@ sf_read_part(unsigned char buf[], unsigned buflen) } break; case SF_RPQ_EQUIV: - trace_ds("Equivlent+List("); + trace_ds(&h3270,"Equivlent+List("); for (i = 6; i < buflen; i++) { - trace_ds("%s%s", comma, see_qcode(buf[i])); + trace_ds(&h3270,"%s%s", comma, see_qcode(buf[i])); comma = ","; } - trace_ds(")\n"); + trace_ds(&h3270,")\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) @@ -340,7 +337,7 @@ sf_read_part(unsigned char buf[], unsigned buflen) do_query_reply(replies[i].code); break; case SF_RPQ_ALL: - trace_ds("All\n"); + trace_ds(&h3270,"All\n"); for (i = 0; i < NSR; i++) #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) @@ -348,40 +345,40 @@ sf_read_part(unsigned char buf[], unsigned buflen) do_query_reply(replies[i].code); break; default: - trace_ds("unknown request type 0x%02x\n", buf[5]); + trace_ds(&h3270,"unknown request type 0x%02x\n", buf[5]); return PDS_BAD_CMD; } query_reply_end(); break; case SNA_CMD_RMA: - trace_ds(" ReadModifiedAll"); + trace_ds(&h3270," ReadModifiedAll"); if (partition != 0x00) { - trace_ds(" error: illegal partition\n"); + trace_ds(&h3270," error: illegal partition\n"); return PDS_BAD_CMD; } - trace_ds("\n"); + trace_ds(&h3270,"\n"); ctlr_read_modified(AID_QREPLY, True); break; case SNA_CMD_RB: - trace_ds(" ReadBuffer"); + trace_ds(&h3270," ReadBuffer"); if (partition != 0x00) { - trace_ds(" error: illegal partition\n"); + trace_ds(&h3270," error: illegal partition\n"); return PDS_BAD_CMD; } - trace_ds("\n"); + trace_ds(&h3270,"\n"); ctlr_read_buffer(&h3270,AID_QREPLY); break; case SNA_CMD_RM: - trace_ds(" ReadModified"); + trace_ds(&h3270," ReadModified"); if (partition != 0x00) { - trace_ds(" error: illegal partition\n"); + trace_ds(&h3270," error: illegal partition\n"); return PDS_BAD_CMD; } - trace_ds("\n"); + trace_ds(&h3270,"\n"); ctlr_read_modified(AID_QREPLY, False); break; default: - trace_ds(" unknown type 0x%02x\n", buf[4]); + trace_ds(&h3270," unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_OUTPUT; @@ -391,21 +388,21 @@ static enum pds sf_erase_reset(unsigned char buf[], int buflen) { if (buflen != 4) { - trace_ds(" error: wrong field length %d\n", buflen); + trace_ds(&h3270," error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } switch (buf[3]) { case SF_ER_DEFAULT: - trace_ds(" Default\n"); + trace_ds(&h3270," Default\n"); ctlr_erase(NULL,False); break; case SF_ER_ALT: - trace_ds(" Alternate\n"); + trace_ds(&h3270," Alternate\n"); ctlr_erase(NULL,True); break; default: - trace_ds(" unknown type 0x%02x\n", buf[3]); + trace_ds(&h3270," unknown type 0x%02x\n", buf[3]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; @@ -419,29 +416,29 @@ sf_set_reply_mode(unsigned char buf[], int buflen) const char *comma = "("; if (buflen < 5) { - trace_ds(" error: wrong field length %d\n", buflen); + trace_ds(&h3270," error: wrong field length %d\n", buflen); return PDS_BAD_CMD; } partition = buf[3]; - trace_ds("(0x%02x)", partition); + trace_ds(&h3270,"(0x%02x)", partition); if (partition != 0x00) { - trace_ds(" error: illegal partition\n"); + trace_ds(&h3270," error: illegal partition\n"); return PDS_BAD_CMD; } switch (buf[4]) { case SF_SRM_FIELD: - trace_ds(" Field\n"); + trace_ds(&h3270," Field\n"); break; case SF_SRM_XFIELD: - trace_ds(" ExtendedField\n"); + trace_ds(&h3270," ExtendedField\n"); break; case SF_SRM_CHAR: - trace_ds(" Character"); + trace_ds(&h3270," Character"); break; default: - trace_ds(" unknown mode 0x%02x\n", buf[4]); + trace_ds(&h3270," unknown mode 0x%02x\n", buf[4]); return PDS_BAD_CMD; } h3270.reply_mode = buf[4]; @@ -449,10 +446,10 @@ sf_set_reply_mode(unsigned char buf[], int buflen) h3270.crm_nattr = buflen - 5; for (i = 5; i < buflen; i++) { h3270.crm_attr[i - 5] = buf[i]; - trace_ds("%s%s", comma, see_efa_only(buf[i])); + trace_ds(&h3270,"%s%s", comma, see_efa_only(buf[i])); comma = ","; } - trace_ds("%s\n", h3270.crm_nattr ? ")" : ""); + trace_ds(&h3270,"%s\n", h3270.crm_nattr ? ")" : ""); } return PDS_OKAY_NO_OUTPUT; } @@ -487,13 +484,13 @@ sf_create_partition(unsigned char buf[], int buflen) #endif /*]*/ if (buflen > 3) { - trace_ds("("); + trace_ds(&h3270,"("); /* Partition. */ pid = buf[3]; - trace_ds("pid=0x%02x", pid); + trace_ds(&h3270,"pid=0x%02x", pid); if (pid != 0x00) { - trace_ds(") error: illegal partition\n"); + trace_ds(&h3270,") error: illegal partition\n"); return PDS_BAD_CMD; } } else @@ -501,15 +498,15 @@ sf_create_partition(unsigned char buf[], int buflen) if (buflen > 4) { uom = (buf[4] & 0xf0) >> 4; - trace_ds(",uom=B'%s'", bit4[uom]); + trace_ds(&h3270,",uom=B'%s'", bit4[uom]); if (uom != 0x0 && uom != 0x02) { - trace_ds(") error: illegal units\n"); + trace_ds(&h3270,") error: illegal units\n"); return PDS_BAD_CMD; } am = buf[4] & 0x0f; - trace_ds(",am=B'%s'", bit4[am]); + trace_ds(&h3270,",am=B'%s'", bit4[am]); if (am > 0x2) { - trace_ds(") error: illegal a-mode\n"); + trace_ds(&h3270,") error: illegal a-mode\n"); return PDS_BAD_CMD; } } else { @@ -519,76 +516,76 @@ sf_create_partition(unsigned char buf[], int buflen) if (buflen > 5) { flags = buf[5]; - trace_ds(",flags=0x%02x", flags); + trace_ds(&h3270,",flags=0x%02x", flags); } else flags = 0; if (buflen > 7) { GET16(h, &buf[6]); - trace_ds(",h=%d", h); + trace_ds(&h3270,",h=%d", h); } else h = h3270.maxROWS; if (buflen > 9) { GET16(w, &buf[8]); - trace_ds(",w=%d", w); + trace_ds(&h3270,",w=%d", w); } else w = h3270.maxCOLS; if (buflen > 11) { GET16(rv, &buf[10]); - trace_ds(",rv=%d", rv); + trace_ds(&h3270,",rv=%d", rv); } else rv = 0; if (buflen > 13) { GET16(cv, &buf[12]); - trace_ds(",cv=%d", cv); + trace_ds(&h3270,",cv=%d", cv); } else cv = 0; if (buflen > 15) { GET16(hv, &buf[14]); - trace_ds(",hv=%d", hv); + trace_ds(&h3270,",hv=%d", hv); } else hv = (h > h3270.maxROWS)? h3270.maxROWS: h; if (buflen > 17) { GET16(wv, &buf[16]); - trace_ds(",wv=%d", wv); + trace_ds(&h3270,",wv=%d", wv); } else wv = (w > h3270.maxCOLS)? h3270.maxCOLS: w; if (buflen > 19) { GET16(rw, &buf[18]); - trace_ds(",rw=%d", rw); + trace_ds(&h3270,",rw=%d", rw); } else rw = 0; if (buflen > 21) { GET16(cw, &buf[20]); - trace_ds(",cw=%d", cw); + trace_ds(&h3270,",cw=%d", cw); } else cw = 0; if (buflen > 23) { GET16(rs, &buf[22]); - trace_ds(",rs=%d", rs); + trace_ds(&h3270,",rs=%d", rs); } else rs = (h > hv)? 1: 0; if (buflen > 27) { GET16(pw, &buf[26]); - trace_ds(",pw=%d", pw); + trace_ds(&h3270,",pw=%d", pw); } else pw = *char_width; if (buflen > 29) { GET16(ph, &buf[28]); - trace_ds(",ph=%d", ph); + trace_ds(&h3270,",ph=%d", ph); } else ph = *char_height; - trace_ds(")\n"); + trace_ds(&h3270,")\n"); cursor_move(&h3270,0); h3270.buffer_addr = 0; @@ -602,49 +599,49 @@ sf_outbound_ds(unsigned char buf[], int buflen) enum pds rv; if (buflen < 5) { - trace_ds(" error: field length %d too short\n", buflen); + trace_ds(&h3270," error: field length %d too short\n", buflen); return PDS_BAD_CMD; } - trace_ds("(0x%02x)", buf[3]); + trace_ds(&h3270,"(0x%02x)", buf[3]); if (buf[3] != 0x00) { - trace_ds(" error: illegal partition 0x%0x\n", buf[3]); + trace_ds(&h3270," error: illegal partition 0x%0x\n", buf[3]); return PDS_BAD_CMD; } switch (buf[4]) { case SNA_CMD_W: - trace_ds(" Write"); + trace_ds(&h3270," Write"); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, False)) < 0) return rv; } else - trace_ds("\n"); + trace_ds(&h3270,"\n"); break; case SNA_CMD_EW: - trace_ds(" EraseWrite"); + trace_ds(&h3270," EraseWrite"); ctlr_erase(&h3270,h3270.screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else - trace_ds("\n"); + trace_ds(&h3270,"\n"); break; case SNA_CMD_EWA: - trace_ds(" EraseWriteAlternate"); + trace_ds(&h3270," EraseWriteAlternate"); ctlr_erase(&h3270,h3270.screen_alt); if (buflen > 5) { if ((rv = ctlr_write(&buf[4], buflen-4, True)) < 0) return rv; } else - trace_ds("\n"); + trace_ds(&h3270,"\n"); break; case SNA_CMD_EAU: - trace_ds(" EraseAllUnprotected\n"); + trace_ds(&h3270," EraseAllUnprotected\n"); ctlr_erase_all_unprotected(&h3270); break; default: - trace_ds(" unknown type 0x%02x\n", buf[4]); + trace_ds(&h3270," unknown type 0x%02x\n", buf[4]); return PDS_BAD_CMD; } return PDS_OKAY_NO_OUTPUT; @@ -676,7 +673,7 @@ do_query_reply(unsigned char code) return; if (qr_in_progress) { - trace_ds("> StructuredField\n"); + trace_ds(&h3270,"> StructuredField\n"); qr_in_progress = False; } @@ -713,7 +710,7 @@ do_query_reply(unsigned char code) static void do_qr_null(void) { - trace_ds("> QueryReply(Null)\n"); + trace_ds(&h3270,"> QueryReply(Null)\n"); } static void @@ -722,20 +719,20 @@ do_qr_summary(void) int i; const char *comma = ""; - trace_ds("> QueryReply(Summary("); + trace_ds(&h3270,"> QueryReply(Summary("); space3270out(&h3270,NSR); for (i = 0; i < NSR; i++) { #if defined(X3270_DBCS) /*[*/ if (dbcs || replies[i].code != QR_DBCS_ASIA) { #endif /*]*/ - trace_ds("%s%s", comma, see_qcode(replies[i].code)); + trace_ds(&h3270,"%s%s", comma, see_qcode(replies[i].code)); comma = ","; *h3270.obptr++ = replies[i].code; #if defined(X3270_DBCS) /*[*/ } #endif /*]*/ } - trace_ds("))\n"); + trace_ds(&h3270,"))\n"); } static void @@ -743,7 +740,7 @@ do_qr_usable_area(void) { unsigned short num, denom; - trace_ds("> QueryReply(UsableArea)\n"); + trace_ds(&h3270,"> QueryReply(UsableArea)\n"); space3270out(&h3270,19); *h3270.obptr++ = 0x01; /* 12/14-bit addressing */ *h3270.obptr++ = 0x00; /* no special character features */ @@ -777,7 +774,7 @@ do_qr_color(void) int i; int color_max; - trace_ds("> QueryReply(Color)\n"); + trace_ds(&h3270,"> QueryReply(Color)\n"); color_max = h3270.color8 ? 8: 16; /* report on 8 or 16 colors */ @@ -811,7 +808,7 @@ do_qr_color(void) static void do_qr_highlighting(void) { - trace_ds("> QueryReply(Highlighting)\n"); + trace_ds(&h3270,"> QueryReply(Highlighting)\n"); space3270out(&h3270,11); *h3270.obptr++ = 5; /* report on 5 pairs */ *h3270.obptr++ = XAH_DEFAULT; /* default: */ @@ -829,7 +826,7 @@ do_qr_highlighting(void) static void do_qr_reply_modes(void) { - trace_ds("> QueryReply(ReplyModes)\n"); + trace_ds(&h3270,"> QueryReply(ReplyModes)\n"); space3270out(&h3270,3); *h3270.obptr++ = SF_SRM_FIELD; *h3270.obptr++ = SF_SRM_XFIELD; @@ -841,7 +838,7 @@ static void do_qr_dbcs_asia(void) { /* XXX: Should we support this, even when not in DBCS mode? */ - trace_ds("> QueryReply(DbcsAsia)\n"); + trace_ds(&h3270,"> QueryReply(DbcsAsia)\n"); space3270out(7); *obptr++ = 0x00; /* flags (none) */ *obptr++ = 0x03; /* field length 3 */ @@ -856,7 +853,7 @@ do_qr_dbcs_asia(void) static void do_qr_alpha_part(void) { - trace_ds("> QueryReply(AlphanumericPartitions)\n"); + trace_ds(&h3270,"> QueryReply(AlphanumericPartitions)\n"); space3270out(&h3270,4); *h3270.obptr++ = 0; /* 1 partition */ SET16(h3270.obptr, h3270.maxROWS * h3270.maxCOLS); /* buffer space */ @@ -866,7 +863,7 @@ do_qr_alpha_part(void) static void do_qr_charsets(void) { - trace_ds("> QueryReply(CharacterSets)\n"); + trace_ds(&h3270,"> QueryReply(CharacterSets)\n"); space3270out(&h3270,64); #if defined(X3270_DBCS) /*[*/ if (dbcs) @@ -952,7 +949,7 @@ do_qr_ddm(void) { set_dft_buffersize(); - trace_ds("> QueryReply(DistributedDataManagement)\n"); + trace_ds(&h3270,"> QueryReply(DistributedDataManagement)\n"); space3270out(&h3270,8); SET16(h3270.obptr,0); /* set reserved field to 0 */ SET16(h3270.obptr, dft_buffersize); /* set inbound length limit INLIM */ @@ -964,7 +961,7 @@ do_qr_ddm(void) static void do_qr_imp_part(void) { - trace_ds("> QueryReply(ImplicitPartition)\n"); + trace_ds(&h3270,"> QueryReply(ImplicitPartition)\n"); space3270out(&h3270,13); *h3270.obptr++ = 0x0; /* reserved */ *h3270.obptr++ = 0x0; diff --git a/telnet.c b/telnet.c index 12ee56f..b15bc27 100644 --- a/telnet.c +++ b/telnet.c @@ -923,7 +923,7 @@ LIB3270_EXPORT void lib3270_setup_session(H3270 *session) unsigned char *buffer = (unsigned char *) xs_buffer("%s %d\r\n", session->hostname, session->current_port); session->write(session, buffer, strlen((char *) buffer)); lib3270_free(buffer); - trace_ds("SENT HOSTNAME %s:%d\n", session->hostname, session->current_port); + trace_ds(&h3270,"SENT HOSTNAME %s:%d\n", session->hostname, session->current_port); } } diff --git a/trace_ds.c b/trace_ds.c index 2e99906..a694f44 100644 --- a/trace_ds.c +++ b/trace_ds.c @@ -173,12 +173,12 @@ trace_ds_s(char *s, Boolean can_break) } } -void trace_ds(const char *fmt, ...) +void trace_ds(H3270 *hSession, const char *fmt, ...) { char * text; va_list args; - if (!lib3270_get_toggle(&h3270,DS_TRACE)) + if (!lib3270_get_toggle(hSession,DS_TRACE)) return; va_start(args, fmt); @@ -190,8 +190,7 @@ void trace_ds(const char *fmt, ...) lib3270_free(text); } -void -trace_ds_nb(const char *fmt, ...) +void trace_ds_nb(const char *fmt, ...) { char tdsbuf[4096]; va_list args; @@ -207,20 +206,20 @@ trace_ds_nb(const char *fmt, ...) va_end(args); } -/* Conditional event trace. */ -void -trace_event(const char *fmt, ...) +/* Conditional event trace. */ /* +void trace_event(const char *fmt, ...) { va_list args; if (!lib3270_get_toggle(&h3270,EVENT_TRACE)) return; - /* print out message */ + // print out message va_start(args, fmt); vwtrace(&h3270,fmt, args); va_end(args); } +*/ /* Conditional data stream trace, without line splitting. */ void trace_dsn(const char *fmt, ...) diff --git a/trace_dsc.h b/trace_dsc.h index 9d573e2..0b793b9 100644 --- a/trace_dsc.h +++ b/trace_dsc.h @@ -44,13 +44,15 @@ void trace_ansi_disc(void); void trace_char(char c); - void trace_ds(const char *fmt, ...) printflike(1, 2); + void trace_ds(H3270 *hSession, const char *fmt, ...) printflike(2, 3); void trace_ds_nb(const char *fmt, ...) printflike(1, 2); void trace_dsn(const char *fmt, ...) printflike(1, 2); - void trace_event(const char *fmt, ...) printflike(1, 2); +// void trace_event(const char *fmt, ...) printflike(1, 2); void trace_screen(H3270 *session); // void trace_rollover_check(void); + #define trace_event(...) lib3270_trace_event(&h3270,__VA_ARGS__) + #elif defined(__GNUC__) #define trace_ds(format, args...) -- libgit2 0.21.2