From 87c267e06569b86963cd892eec40e7a68bdb3a01 Mon Sep 17 00:00:00 2001 From: Joey Schulze Date: Mon, 12 Nov 2001 22:31:18 +0000 Subject: [PATCH 1/1] Added a define to make some routines default to EUR, may be useful for Jan 1st, 2002. Tried to ensure that long strings won't override a buffer which could lead into rendering the resulting DTAUS files wrong. --- dtaus.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/dtaus.c b/dtaus.c index 93e8b3c..ed82a84 100644 --- a/dtaus.c +++ b/dtaus.c @@ -28,6 +28,8 @@ #include #include +/* #define DEFAULT_EURO */ + /* * First: Some control structures */ @@ -481,7 +483,11 @@ void dtaus_prepareA (char *buf) for (i=56;i<56+4; i++) buf[i] = ' '; /* A8 */ for (i=70;i<70+10; i++) buf[i] = '0'; /* A10 */ for (i=80;i<80+48; i++) buf[i] = ' '; /* A11 */ +#ifdef DEFAULT_EURO + buf[127] = '1'; /* A12 (Currency) */ +#else buf[127] = ' '; /* A12 (Currency) */ +#endif } /* @@ -522,7 +528,11 @@ void dtaus_prepareC (char *buf, int normaltext, int maxtext) for (i=90;i<90+3; i++) buf[i] = ' '; /* C13 */ for (i=93;i<90+27; i++) buf[i] = ' '; /* C14a (Kunde) */ for (i=120;i<120+8; i++) buf[i] = ' '; /* C14b */ +#ifdef DEFAULT_EURO + buf[182] = '1'; /* C17a (Currency) */ +#else buf[182] = ' '; /* C17a (Currency) */ +#endif for (i=183;i<183+2; i++) buf[i] = ' '; /* C17b */ for (i=185;i<185+2; i++) buf[i] = '0'; /* C18 (#Extension) */ for (i=187;i<187+(29*2); i++) buf[i] = ' '; /* C19-C22 (misc text) */ @@ -574,7 +584,7 @@ int dtaus_writeA(FILE *f, char **values) buf[6] = values[A_TRANS][1]; sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[A_BLZ]),8)); for (i=0; i<8; i++) buf[recA[A_BLZ].pos+i] = tmp[i]; - sprintf (tmp, "%-27s", upcase(values[A_NAME])); + sprintf (tmp, "%-27.27s", upcase(values[A_NAME])); for (i=0; i<27; i++) buf[recA[A_NAME].pos+i] = tmp[i]; sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[A_KTO]),10)); for (i=0; i<10; i++) buf[recA[A_KTO].pos+i] = tmp[i]; @@ -643,27 +653,27 @@ int dtaus_writeC(FILE *f, char **valuesA, char **values, char **text) else sprintf (tmp, "%s", padzeroclip (strip_nondigits (valuesA[A_KTO]),10)); for (i=0; i