1 /* Processed by ecpg (regression mode) */
2 /* These include files are added by the preprocessor */
3 #include <ecpglib.h>
4 #include <ecpgerrno.h>
5 #include <sqlca.h>
6 /* Needed for informix compatibility */
7 #include <ecpg_informix.h>
8 /* End of automatic include section */
9 #define ECPGdebug(X,Y) ECPGdebug((X)+100,(Y))
10 
11 #line 1 "rfmtlong.pgc"
12 #include <stdio.h>
13 #include <stdlib.h>
14 #include <pgtypes_error.h>
15 #include <sqltypes.h>
16 
17 /*
18  * This file tests various forms of long-input/output by means of
19  * rfmtlong
20  */
21 
22 
23 static void
24 check_return(int ret);
25 
26 static void
fmtlong(long lng,char * fmt)27 fmtlong(long lng, char *fmt)
28 {
29 	static int i;
30 	int r;
31 	char buf[30];
32 
33 	r = rfmtlong(lng, fmt, buf);
34 	printf("r: %d ", r);
35 	if (r == 0)
36 	{
37 		printf("%d: %s (fmt was: %s)\n", i++, buf, fmt);
38 	}
39 	else
40 		check_return(r);
41 }
42 
43 int
main(void)44 main(void)
45 {
46 	ECPGdebug(1, stderr);
47 
48 	fmtlong(-8494493, "-<<<<,<<<,<<<,<<<");
49 	fmtlong(-8494493, "################");
50 	fmtlong(-8494493, "+++$$$$$$$$$$$$$.##");
51 	fmtlong(-8494493, "(&,&&&,&&&,&&&.)");
52 	fmtlong(-8494493, "<<<<,<<<,<<<,<<<");
53 	fmtlong(-8494493, "$************.**");
54 	fmtlong(-8494493, "---$************.**");
55 	fmtlong(-8494493, "+-+################");
56 	fmtlong(-8494493, "abc: ################+-+");
57 	fmtlong(-8494493, "+<<<<,<<<,<<<,<<<");
58 
59 	return (0);
60 }
61 
62 static void
check_return(int ret)63 check_return(int ret)
64 {
65 	switch(ret)
66 	{
67 		case ECPG_INFORMIX_ENOTDMY:
68 			printf("(ECPG_INFORMIX_ENOTDMY)");
69 			break;
70 		case ECPG_INFORMIX_ENOSHORTDATE:
71 			printf("(ECPG_INFORMIX_ENOSHORTDATE)");
72 			break;
73 		case ECPG_INFORMIX_BAD_DAY:
74 			printf("(ECPG_INFORMIX_BAD_DAY)");
75 			break;
76 		case ECPG_INFORMIX_BAD_MONTH:
77 			printf("(ECPG_INFORMIX_BAD_MONTH)");
78 			break;
79 		default:
80 			printf("(unknown ret: %d)", ret);
81 			break;
82 	}
83 	printf("\n");
84 }
85