which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@976 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			695 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			695 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
|  /* t4expr.c   (c)Copyright Sequiter Software Inc., 1990-1994. All rights reserved.
 | |
|     Tests Code Base Expression Evaluation Routines.
 | |
|     */
 | |
| 
 | |
| #include "d4all.h"
 | |
| #ifdef __TURBOC__
 | |
| #pragma hdrstop
 | |
| #endif
 | |
| 
 | |
| #include "t4test.h"
 | |
| 
 | |
|  static FIELD4INFO testfields[] =
 | |
| {
 | |
|   /* name, type, len_field, dec  */
 | |
| {"N1",   'F',      5,    2,    },
 | |
| {"N2",   'N',     10,    0,    },
 | |
| {"N3",   'N',      8,    3,    },
 | |
| {"N4",   'N',     19,   10,    },
 | |
| {"C1",   'C',     10,    0,    },
 | |
| {"C2",   'C',     10,    0,    },
 | |
| {"C3",   'C',     10,    0,    },
 | |
| {"C4",   'C',     15,    0,    },
 | |
| {"C5",   'C',     15,    0,    },
 | |
| {"C6",   'C',      5,    0,    },
 | |
| {"D1",   'D',      8,    0,    },
 | |
| {"D2",   'D',      8,    0,    },
 | |
| {"L1",   'L',      1,    0,    },
 | |
| {"L2",   'L',      1,    0,    },
 | |
| {0,0,0,0,}
 | |
| };
 | |
| 
 | |
| typedef struct test_expr_st
 | |
| {
 | |
|   char  expr[30] ;
 | |
|   char  result[50] ;
 | |
|   char  result_type ;
 | |
| }  TEST_EXPR ;
 | |
| 
 | |
| CODE4 cb;
 | |
| DATA4 *data;
 | |
| 
 | |
| /* this is required because of potential 'double return'
 | |
|    problems that may occur in cross-platform DLL usage */
 | |
| static TEST_EXPR test_expr[] =
 | |
| {
 | |
| {  ".NOT. .F.                    ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "5>4.AND.6.7>4.3              ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| 
 | |
| {  "\"NEW   \"  -  \"ME \"       ",
 | |
|    "NEWME    \0                  ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "'NEW   '  -  'ME '           ",
 | |
|    "NEWME    \0                  ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
|    /* 5 */
 | |
| {  ".T. .AND. .F.                ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "IIF(C1=\"SMUR\",\"TRUE\",\"FALS\")",
 | |
|    "FALS\0                       ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "((((7))))*(1+2)              ",
 | |
|    "21                           ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "N1+N2                        ",
 | |
|    "12                           ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "N1-N2                        ",
 | |
|    "8                            ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
|    /* 10 */
 | |
| {  "N1*N2                        ",
 | |
|    "20                           ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "N1/N2                        ",
 | |
|    "5                            ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "C1+C2                        ",
 | |
|    "character1CHARACTER2\0        ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "C1-C2                        ",
 | |
|    "character1CHARACTER2\0        ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "C1-C4-C5                     ",
 | |
|    "character11988020119880323              \0",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
|    /* 15 */
 | |
| {  "C5-C1-C3-C2                  ",
 | |
|    "19880323character1ChArAcTeR3CHARACTER2       \0",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "C1=C2                        ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "C1=C3                        ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "C1>C2                        ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "C1<C2                        ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
|    /* 20 */
 | |
| {  "C1<>C2                       ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "C1#C2                        ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "C1#C2                        ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "C1<>C3                       ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "C1$C2                        ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
|    /* 25 */
 | |
| {  "\"ST\"$\"MOST\"                  ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| #ifndef __SC__
 | |
| #ifdef _MSC_VER
 | |
| #pragma warning( disable : 4129 )
 | |
| #endif
 | |
| {  "\[ST\]$\[MOST\]                  ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| #ifdef _MSC_VER
 | |
| #pragma warning( default : 4129 )
 | |
| #endif
 | |
| 
 | |
| #endif
 | |
| 
 | |
| #ifdef S4GERMAN
 | |
| {  "CTOD(\"01.02.88\")             ",
 | |
|    "19880201\0                    ",
 | |
|    r4date_doub
 | |
|    },
 | |
| 
 | |
| {  "DTOC(D2)                     ",
 | |
|    "23.03.88\0                    ",
 | |
|    r4str
 | |
|    },
 | |
| #else
 | |
| {  "CTOD(\"02/01/88\")             ",
 | |
|    "19880201\0                    ",
 | |
|    r4date_doub
 | |
|    },
 | |
| 
 | |
| {  "DTOC(D2)                     ",
 | |
|    "03/23/88\0                    ",
 | |
|    r4str
 | |
|    },
 | |
| #endif
 | |
| 
 | |
| {  "STOD(C4)                     ",
 | |
|    "19880201\0                    ",
 | |
|    r4date_doub
 | |
|    },
 | |
| 
 | |
|    /* 30 */
 | |
| {  "DTOS(D2)                     ",
 | |
|    "19880323\0                    ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "D1=STOD(C4)                  ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "C5=DTOS(D2)                  ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "IIF(C1=\"SMUR\",\"TRUE\",\"FALS\")",
 | |
|    "FALS\0                         ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "RECCOUNT()                   ",
 | |
|    "1                            ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
|    /* 35 */
 | |
| {  "RECNO()                      ",
 | |
|    "1                            ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "STR(5.7,4,2)                 ",
 | |
|    "5.70\0                        ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "VAL(\"2323\")                  ",
 | |
|    "2323                         ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "SUBSTR(C1,2,2)               ",
 | |
|    "ha\0                          ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "C1 + SUBSTR(C1,2,2)          ",
 | |
|    "character1ha\0                ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "3*4-2                        ",
 | |
|    "10                           ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "L1                           ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  ".NOT. .T.                    ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  ".NOT. .F.                    ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  ".T.                          ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  ".T. .OR. .F.                 ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  ".T. .AND. .F.                ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "\"A \" + \"B   \"                ",
 | |
|    "A B   \0                      ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "\"NEW   \"  -  \"ME \"           ",
 | |
|    "NEWME    \0                   ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "\"    \" - \" ab\"               ",
 | |
|    " ab    \0                     ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "((((7))))*(1+2)              ",
 | |
|    "21                           ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  " IIF( .F. , 1, 2)            ",
 | |
|    "2                            ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "   IIF ( .T., \"G\", \"B\" )",
 | |
|    "G\0                      ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| 
 | |
| 
 | |
| {  "(4*3)<=(2*6)                 ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  " .F. .AND. .F. .OR. .T.      ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  " .NOT. .F. .AND. .F.         ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  " .NOT. .F. .AND. .F. .OR. .T.",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  " .NOT. 3 > 2                 ",
 | |
|    "0                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "   C6+                  DEL()",
 | |
|    "CHAR *\0                      ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "DELETED()                    ",
 | |
|    "1                            ",
 | |
|    r4log
 | |
|    },
 | |
| 
 | |
| {  "MONTH(DATE()   )             ",
 | |
|    "7                            ",
 | |
|    1
 | |
|    },
 | |
| 
 | |
| {  "RECCOUNT() + 3               ",
 | |
|    "4                            ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "RECNO()                      ",
 | |
|    "1                            ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "STR(5.73,6,3)                ",
 | |
|    " 5.730\0                      ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "STR(9.643,3)                 ",
 | |
|    " 10\0                        ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "YEAR(D2    )                 ",
 | |
|    "1988                         ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "DATE()                       ",
 | |
|    "                             ",
 | |
|    1
 | |
|    },
 | |
| 
 | |
| {  "TIME()                       ",
 | |
|    "                             ",
 | |
|    2
 | |
|    },
 | |
| 
 | |
| #ifndef S4NO_POW
 | |
| #ifndef __ZTC__
 | |
| 
 | |
|    /* Zortech fails because Zortech 'pow' does not round the result. */
 | |
| {  "N1^N2                        ",
 | |
|    "100                          ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "2^4                          ",
 | |
|    "16                           ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "3**5                         ",
 | |
|    "243                          ",
 | |
|    r4num_doub
 | |
|    },
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #ifndef S4UNIX
 | |
| #ifndef __ZTC__
 | |
| #ifndef __HIGHC__
 | |
| {  "N4-N3                        ",
 | |
|    "986419.754001                ",
 | |
|    r4num_doub
 | |
|    },
 | |
| 
 | |
| {  "STR(22.2,5,1)                ",
 | |
|    " 22.2\0                       ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "STR(21.5,6,0)                ",
 | |
|    "    22\0                      ",
 | |
|    r4str
 | |
|    },
 | |
| #endif
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #ifndef S4UNIX
 | |
| #ifndef S4NO_POW
 | |
| #ifndef __HIGHC__
 | |
| #ifndef __ZTC__
 | |
| {  "((13))**7+13                 ",
 | |
|    "62748530                     ",
 | |
|    r4num_doub
 | |
|    },
 | |
| #endif
 | |
| 
 | |
| {  "((13))^7+13                  ",
 | |
|    "62748530                     ",
 | |
|    r4num_doub
 | |
|    },
 | |
| #endif
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| {  "STR(22.2,6,2)+STR(11.1,7,1)  ",
 | |
|    " 22.20   11.1\0               ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "STR(1.5,3,1)+STR(1.9345,4,2) ",
 | |
|    "1.51.93\0                     ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "'ooga'+STR(1.9345,4,2) ",
 | |
|    "ooga1.93\0                    ",
 | |
|    r4str
 | |
|    },
 | |
| 
 | |
| {  "\0                            ",
 | |
|    "                             ",
 | |
|    '\0'
 | |
|    },
 | |
|  };
 | |
| 
 | |
| static int do_test( D4DISPLAY *disp )
 | |
| {
 | |
|   int i, str_len ;
 | |
|   char logical;
 | |
|   double d ;
 | |
|   EXPR4 *ptr ;
 | |
|   char *buf, *key_result;
 | |
|   char date_buf[20] ;
 | |
| 
 | |
| #ifdef S4WINDOWS
 | |
|   cb.hWnd = (unsigned) disp->hWnd ;
 | |
| #ifdef S4DLL
 | |
|   cb.hInst = (unsigned) disp->hInst ;
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
|   cb.safety = '\0';
 | |
| 
 | |
| #ifdef S4OPEN_FILE
 | |
|   data = d4open( &cb, "T4EXPR" ) ;
 | |
| #else
 | |
|   data = d4create( &cb, "T4EXPR", testfields, 0);
 | |
| #endif
 | |
| 
 | |
|   if ( cb.error_code || data == 0 )
 | |
|     t4severe( t4err_data, "01" ) ;
 | |
| 
 | |
|   d4opt_start( &cb ) ;
 | |
| 
 | |
|   if ( d4append_start(data, 0) < 0)
 | |
|     t4severe( t4err_append, "02" ) ;
 | |
| 
 | |
|   f4assign( (d4field(data, "C1")), "character1");
 | |
|   f4assign( (d4field(data, "C2")), "CHARACTER2");
 | |
|   f4assign( (d4field(data, "C3")), "ChArAcTeR3");
 | |
|   f4assign( (d4field(data, "C4")), "19880201");
 | |
|   f4assign( (d4field(data, "C5")), "19880323");
 | |
|   f4assign( (d4field(data, "C6")), "CHAR");
 | |
| 
 | |
|   d = 10.0 ;
 | |
|   f4assign_double( (d4field(data, "N1")), d ) ;
 | |
|   d = 2.0 ;
 | |
|   f4assign_double( (d4field(data, "N2")), d );
 | |
|   d = 1234.567 ;
 | |
|   f4assign_double( (d4field(data, "N3")), d );
 | |
|   d = 987654.321001 ;
 | |
|   f4assign_double( (d4field(data, "N4")), d );
 | |
| 
 | |
|   f4assign( ( d4field(data, "D1" ) ), "19880201" ) ;
 | |
|   f4assign( ( d4field(data, "D2" ) ), "19880323" ) ;
 | |
|   logical = 'F';
 | |
|   f4assign( ( d4field( data, "L1" ) ), &logical ) ;
 | |
|   logical = 'T';
 | |
|   f4assign( ( d4field( data, "L2" ) ), &logical ) ;
 | |
|   d4delete( data ) ;
 | |
| 
 | |
|   if ( d4append( data ) < 0 )
 | |
|     t4severe( t4err_append, "03" ) ;
 | |
| 
 | |
|   for ( i=0; test_expr[i].result_type != '\0'; i++ )
 | |
|   {
 | |
|     if ( d4display_quit( disp ) )
 | |
|       return 1 ;
 | |
| 
 | |
|     d4display_num( disp, i, 1 ) ;
 | |
|     d4display_str( disp,  ") On Expression: ", 0 ) ;
 | |
|     d4display_str( disp, test_expr[i].expr, 0 ) ;
 | |
|     ptr = expr4parse(data, test_expr[i].expr ) ;
 | |
| 
 | |
|     if ( ptr == (void *) 0 )
 | |
|       t4severe( t4err_expr, "04" ) ;
 | |
| 
 | |
|     if (expr4vary(ptr, &buf) < 0)
 | |
|       t4severe( t4err_expr, "05" ) ;
 | |
| 
 | |
|     if ( test_expr[i].result_type == 1 )/* DATE() function, cannot compare */
 | |
|     {
 | |
|       date4assign(buf, (long) *(double *)buf ) ;
 | |
|       buf[8] = '\0' ;
 | |
|       date4format(buf, date_buf, "MMM DD/CCYY" ) ;
 | |
|       d4display_str( disp,  "", 1 ) ;
 | |
|       d4display_str( disp, "DATE:", 0) ;
 | |
|       d4display_str( disp, date_buf, 1) ;
 | |
|     }
 | |
| 
 | |
|     if ( test_expr[i].result_type == 2 )/* TIME() function, cannot compare */
 | |
|     {
 | |
|       d4display_str( disp, "TIME:", 0) ;
 | |
|       d4display_str( disp, buf, 1) ;
 | |
|       d4display_str( disp,  "", 1 ) ;
 | |
|     }
 | |
| 
 | |
|     if ( test_expr[i].result_type > 10 )
 | |
|     {
 | |
|       if ( (char) expr4type(ptr) != test_expr[i].result_type )
 | |
|         t4severe( t4err_expr, "06" ) ;
 | |
| 
 | |
|       switch ( (char) expr4type(ptr) )
 | |
|       {
 | |
|       case r4str :
 | |
|         str_len = expr4key( ptr, &key_result ) ;
 | |
|         if ( memcmp( buf, test_expr[i].result, str_len ) != 0 )
 | |
|         {
 | |
|           e4describe( &cb, 0, "t4expr  EXPR(r4str):", test_expr[i].expr, (char *) 0 ) ;
 | |
|           e4exit( &cb) ;
 | |
|         }
 | |
|         if ( strcmp( key_result, test_expr[i].result) != 0 )
 | |
|         {
 | |
|           e4describe( &cb, 0, "t4expr  EXPR(r4str):", test_expr[i].expr, (char *) 0 ) ;
 | |
|           e4exit( &cb) ;
 | |
|         }
 | |
|         break ;
 | |
| 
 | |
| 
 | |
|       case r4log :
 | |
|         if ( ( *(int*) buf && !(c4atoi(test_expr[i].result,1)) )  ||
 | |
|             ( !*(int*) buf && (c4atoi(test_expr[i].result,1)) ) )
 | |
|         {
 | |
|           e4describe( &cb, 0, "t4expr  EXPR(r4log):", test_expr[i].expr, (char *) 0 ) ;
 | |
|           e4exit( &cb) ;
 | |
|         }
 | |
|         break;
 | |
| 
 | |
|       case r4num_doub :
 | |
| 
 | |
| #ifndef S4WINDOWS
 | |
|         c4atod2(test_expr[i].result, 30, &d );
 | |
|         if ( *(double *) buf != d )
 | |
|         {
 | |
|           e4describe( &cb, 0, "t4expr  EXPR(r4num_doub):", test_expr[i].expr, (char *) 0 ) ;
 | |
|           e4exit( &cb) ;
 | |
|         }
 | |
| #endif
 | |
|         break;
 | |
| 
 | |
|       case r4date_doub :
 | |
|       {
 | |
|         char buf2[8] ;
 | |
|         long d_ptr ;
 | |
| 
 | |
|         d_ptr = (long) *(double *) buf;
 | |
| 
 | |
|         date4assign( buf2, d_ptr ) ;
 | |
| 
 | |
|         if ( memcmp(  buf2, test_expr[i].result, 8) != 0 )
 | |
|         {
 | |
|           e4describe( &cb, 0, "t4expr  EXPR)r4date_doub):", test_expr[i].expr, (char *) 0 ) ;
 | |
|           e4exit( &cb) ;
 | |
|         }
 | |
|         break;
 | |
|       }
 | |
|       }
 | |
|     }
 | |
|     expr4free(ptr) ;
 | |
|   }
 | |
| 
 | |
|   if ( d4close_all( &cb ) != 0 )
 | |
|     t4severe( t4err_close, "07" ) ;
 | |
|   return 0 ;
 | |
| }
 | |
| 
 | |
| 
 | |
| static int  test_with_mem_check( D4DISPLAY *disp )
 | |
| {
 | |
|   d4init( &cb ) ;
 | |
| 
 | |
|   if ( do_test( disp ) )
 | |
|     return 1 ;
 | |
| 
 | |
| #ifndef S4TEST_KEEP_FILES
 | |
|   u4remove( "T4EXPR.dbf" ) ;
 | |
| #endif
 | |
| 
 | |
|   d4init_undo(&cb) ;
 | |
|   mem4reset() ;
 | |
| 
 | |
| #ifdef S4DEBUG
 | |
|   mem4check_memory() ;
 | |
| 
 | |
| #ifndef S4DLL
 | |
|   if ( mem4free_check(100) != 0 )
 | |
|     t4severe( t4err_memory, "08" ) ;
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
|   return 0 ;
 | |
| }
 | |
| 
 | |
| 
 | |
| int S4FUNCTION t4test( D4DISPLAY *disp )
 | |
| {
 | |
|   if ( test_with_mem_check( disp ) )
 | |
|     t4severe( t4err_general, "09" ) ;
 | |
|   if ( test_with_mem_check( disp ) )
 | |
|     t4severe( t4err_general, "10" ) ;
 | |
|   if ( test_with_mem_check( disp ) )
 | |
|     t4severe( t4err_general, "11" ) ;
 | |
| 
 | |
|   d4display_str( disp, "T4EXPR:   SUCCESS", 1) ;
 | |
|   d4display_str( disp, "", 1) ;
 | |
|   return 1 ;
 | |
| }
 |