From a5680451c7dbe95a7f348d07fcada0c4fa1fc301 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Tue, 6 Sep 2005 19:44:53 +0000 Subject: [PATCH] TELNET_GATE arguments are stored in reverse order than in the source. --- src/sbbs3/unbaja.c | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/src/sbbs3/unbaja.c b/src/sbbs3/unbaja.c index 36f79b176b..868e2babd3 100644 --- a/src/sbbs3/unbaja.c +++ b/src/sbbs3/unbaja.c @@ -1233,6 +1233,7 @@ void decompile(FILE *bin, FILE *src) ushort ush; short sh; long lng; + long lng2; ulong ulng; int usevar=FALSE; long var=0; @@ -1420,10 +1421,42 @@ void decompile(FILE *bin, FILE *src) CHSTR("RECEIVE_FILE_VIA"); case RECEIVE_FILE_VIA_VAR: CHVAR("RECEIVE_FILE_VIA"); - case TELNET_GATE_STR: - MLNGSTR("TELNET_GATE"); - case TELNET_GATE_VAR: - MLNGVAR("TELNET_GATE"); + case TELNET_GATE_STR: /* TELNET_GATE reverses argument order */ + WRITE_NAME("TELNET_GATE"); + fread(&lng,4,1,bin); + fputc('"',src); + while(fread(&ch,1,1,bin)==1) { + if(ch==0) + break; + if(ch<' ' || ch > 126 || ch == '"') { + fprintf(src, "\\%03d", ch); + } + else + fputc(ch, src); + } + fputc('"',src); + fputc(' ',src); + if(usevar) { + fprintf(src,"%s ",getvar(var)); + usevar=FALSE; + } else { + fprintf(src,"%ld ",lng); + } + eol(src); + break; + case TELNET_GATE_VAR: /* TELNET_GATE reverses argument order */ + WRITE_NAME("TELNET_GATE"); + fread(&lng,4,1,bin); + fread(&lng2, 1, 4, bin); + fprintf(src,"%s ",getvar(lng2)); + if(usevar) { + fprintf(src,"%s ",getvar(var)); + usevar=FALSE; + } else { + fprintf(src,"%ld ",lng); + } + eol(src); + break; case COPY_FIRST_CHAR: VARVAR("COPY_FIRST_CHAR"); case COMPARE_FIRST_CHAR: -- GitLab