* \c \%\>xy | if value \> \e x add \e y |
* \c \%r | reverses row column |
* \c \%i | increments row column (for one origin indexing) |
* \c \%\% | gives \c \% |
* \c \%B | BCD (2 decimal digits encoded in one byte) |
* \c \%D | Delta Data (backwards bcd) |
*
*
* all other characters simply get output
*/
int
term_goto(int dest_x, int dest_y )
{
#ifdef TERMCAP
register char *cp;
register char *dp;
register int c;
register int which;
static char result[40];
static char added[10];
char *UP = NULL;
char *BC = NULL;
#endif /* TERMCAP */
#ifdef TERMCAP
int oncol = 0;
#endif /* TERMCAP */
#ifdef TERMINFO
if(cursor_address == NULL) return(FAIL);
tputs(tparm(cursor_address,dest_y,dest_x),1,term_putc);
curx = dest_x;
cury = dest_y;
return(SUCCESS);
#endif
#ifdef TERMCAP
cp = termcap_cm;
if(cp == NULL) return(FAIL);
dp = result;
which = dest_y;
added[0] = '\0';
curx = dest_x;
cury = dest_y;
/*
* Loop until we hit the end of the string
*/
while((c = *cp++)){
if(c != '%'){
*dp++ = c;
continue;
}/* End IF */
switch(c = *cp++){
case 'p':
cp++; /* for p1, p2, or p