From 9748a7013104aabb51a997cb4181babf65d8a98b Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 9 May 2003 21:53:43 +0000 Subject: [PATCH] ansi_getxy() now returns bool instead of void (false on timeout). --- src/sbbs3/ansiterm.cpp | 18 ++++++++++++------ src/sbbs3/sbbs.h | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/sbbs3/ansiterm.cpp b/src/sbbs3/ansiterm.cpp index 99da18673f..8b1620b0bf 100644 --- a/src/sbbs3/ansiterm.cpp +++ b/src/sbbs3/ansiterm.cpp @@ -107,7 +107,7 @@ void sbbs_t::ansi_getlines() } } -void sbbs_t::ansi_getxy(int* x, int* y) +bool sbbs_t::ansi_getxy(int* x, int* y) { int rsp=0, ch; @@ -129,8 +129,10 @@ void sbbs_t::ansi_getxy(int* x, int* y) start=time(NULL); } else if(isdigit(ch) && rsp==2) { - (*y)*=10; - (*y)+=(ch&0xf); + if(y!=NULL) { + (*y)*=10; + (*y)+=(ch&0xf); + } start=time(NULL); } else if(ch==';' && rsp>=2) { @@ -138,8 +140,10 @@ void sbbs_t::ansi_getxy(int* x, int* y) start=time(NULL); } else if(isdigit(ch) && rsp==3) { - (*x)*=10; - (*x)+=(ch&0xf); + if(x!=NULL) { + (*x)*=10; + (*x)+=(ch&0xf); + } start=time(NULL); } else if(ch=='R' && rsp) @@ -149,7 +153,9 @@ void sbbs_t::ansi_getxy(int* x, int* y) } if(time(NULL)-start>TIMEOUT_ANSI_GETXY) { lprintf("Node %d !TIMEOUT in ansi_getxy", cfg.node_num); - break; + return(false); } } + + return(true); } diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index d66a2c0d4f..5f7d24c14d 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -338,7 +338,7 @@ public: /* ansi_term.cpp */ char * ansi(int atr); /* Returns ansi escape sequence for atr */ - void ansi_getxy(int* x, int* y); + bool ansi_getxy(int* x, int* y); void ansi_getlines(void); /* Command Shell Methods */ -- GitLab