X-Git-Url: https://git.infodrom.org/?p=infodrom%2Fdtaus;a=blobdiff_plain;f=dtaus.c;h=8f16662726e797955b99b453c403a97ae2c39bae;hp=f76cbdaa0a3e0ae9ae7200c6da5a4df28ff83628;hb=5d8bc51ae1d7c667fc8fac82cb64833144113192;hpb=a560d85ec3afe5c6ac05dcb305190fcecebd33aa diff --git a/dtaus.c b/dtaus.c index f76cbda..8f16662 100644 --- a/dtaus.c +++ b/dtaus.c @@ -155,7 +155,8 @@ char *downcase(char *s) static char x[100]; char *cp; - strcpy (x, s); + memset (x, 0, sizeof (x)); + strncpy (x, s, 99); for (cp=x;*cp;cp++) if (isupper(*cp)) @@ -182,7 +183,20 @@ char *strip_zeros (char *s) return p; } -char dtaus_char(void *buf, unsigned int pos) +char *strip_nondigits (char *s) +{ + char *p; + char *x; + + for (x=s,p=s;*x;*x++) + if (isdigit (*x)) + *(p++) = *x; + *(p++) = '\0'; + + return s; +} + +char dtaus_char (void *buf, unsigned int pos) { static char res; char *bufp = buf; @@ -430,7 +444,7 @@ char *get_date() timer = time ( NULL ); loctime = localtime(&timer); - sprintf(res, "%02d.%02d.%02d", loctime->tm_mday, loctime->tm_mon+1, loctime->tm_year); + sprintf(res, "%02d.%02d.%02d", loctime->tm_mday, loctime->tm_mon+1, loctime->tm_year % 100); return res; } @@ -451,7 +465,7 @@ void dtaus_prepareA(char *buf) buf[3] = '8'; buf[4] = 'A'; for (i=15;i<15+8; i++) buf[i] = '0'; - sprintf(tmp, "%02d%02d%2d", loctime->tm_mday, loctime->tm_mon+1, loctime->tm_year); + sprintf(tmp, "%02d%02d%02d", loctime->tm_mday, loctime->tm_mon+1, loctime->tm_year % 100); for (i=0; i<6; i++) buf[50+i] = tmp[i]; for (i=56;i<56+4; i++) buf[i] = ' '; for (i=70;i<70+10; i++) buf[i] = '0'; @@ -517,11 +531,11 @@ int dtaus_writeA(FILE *f, char **values) dtaus_prepareA(buf); buf[5] = values[A_TRANS][0]; buf[6] = values[A_TRANS][1]; - sprintf (tmp, "%s", padzeroclip(values[A_BLZ],8)); + 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])); for (i=0; i<27; i++) buf[recA[A_NAME].pos+i] = tmp[i]; - sprintf (tmp, "%s", padzeroclip(values[A_KTO],10)); + sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[A_KTO]),10)); for (i=0; i<10; i++) buf[recA[A_KTO].pos+i] = tmp[i]; fputs(buf, f); @@ -570,21 +584,21 @@ int dtaus_writeC(FILE *f, char **valuesA, char **values) } for (i=0; i<5; i++) buf[recC[C_TRANS].pos+i] = tmp[i]; if (values[C_MYBLZ]) - sprintf (tmp, "%s", padzeroclip(values[C_MYBLZ],8)); + sprintf (tmp, "%s", padzeroclip (strip_nondigits (values[C_MYBLZ]),8)); else - sprintf (tmp, "%s", padzeroclip(valuesA[A_BLZ],8)); + sprintf (tmp, "%s", padzeroclip (strip_nondigits (valuesA[A_BLZ]),8)); for (i=0; i