From f611260089f2ec04f226253ac0550dd234024ec2 Mon Sep 17 00:00:00 2001 From: steve Date: Sat, 9 Nov 2002 06:01:11 +0000 Subject: [PATCH] display octal escapes properly. --- vpi/sys_display.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/vpi/sys_display.c b/vpi/sys_display.c index 9b38375ab..6a45fcc70 100644 --- a/vpi/sys_display.c +++ b/vpi/sys_display.c @@ -17,7 +17,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: sys_display.c,v 1.45 2002/09/06 04:56:28 steve Exp $" +#ident "$Id: sys_display.c,v 1.46 2002/11/09 06:01:11 steve Exp $" #endif # include "config.h" @@ -609,6 +609,29 @@ static int format_str(vpiHandle scope, unsigned int mcd, cp += 1; break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + if (isdigit(cp[0]) + && isdigit(cp[1]) + && isdigit(cp[2])) { + /* handle octal escapes (e.g. "\015" is CR)*/ + vpi_mcd_printf(mcd, "%c", + (cp[2] - '0') + + 8 * ((cp[1] - '0') + + 8 * (cp[0] - '0'))); + cp += 3; + } else { + vpi_mcd_printf(mcd, "%c", *cp); + cp += 1; + } + break; + default: vpi_mcd_printf(mcd, "%c", *cp); cp += 1; @@ -1461,6 +1484,9 @@ void sys_display_register() /* * $Log: sys_display.c,v $ + * Revision 1.46 2002/11/09 06:01:11 steve + * display octal escapes properly. + * * Revision 1.45 2002/09/06 04:56:28 steve * Add support for %v is the display system task. * Change the encoding of H and L outputs from