/*
main.c - Belegloser Datenträgeraustausch mit einer Bank
- Copyright (c) 1996,8,2001 Martin Schulze <joey@infodrom.org>
+ Copyright (c) 1996,8,2001-4 Martin Schulze <joey@infodrom.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
$Id$
*/
-static char version[] = "0.5";
+static char version[] = "0.6";
#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
#include "dtaus.h"
+char *dtaus = "dtaus0.txt";
+char *control = "dtaus0.ctl";
+char *beleg = "dtaus0.doc";
+char *check = "dtaus0.sik";
+
void help ()
{
printf ("dtaus - Belegloser Datenträgeraustausch mit einer Bank\n\n");
printf (" -dtaus Erzeugt eine Bankdatei\n");
printf (" -control Liest eine Bankdatei und erzeugt die Kontrolldatei\n");
printf ("\n");
- printf (" -d <dtaus> Bankdatei [dtaus0.txt]\n");
- printf (" -c <control> Steuerdatei [dtaus0.ctl]\n");
- printf (" -b <begleit> Begleitzettel für die Bank dtaus0.doc]\n");
- printf (" -o <kontroll> Kontrolldatei zum Abheften [dtaus0.sik]\n");
+ printf (" -d <dtaus> Bankdatei [%s]\n", dtaus);
+ printf (" -c <control> Steuerdatei [%s]\n", control);
+ printf (" -b <begleit> Begleitzettel für die Bank [%s]\n", beleg);
+ printf (" -o <kontroll> Kontrolldatei zum Abheften [%s]\n", check);
}
#define DTAUS 1
int main (int argc, char **argv)
{
- char *dtaus[60];
- char *control[60];
- char *beleg[60];
- char *check[60];
int action = 0;
int i = 0;
struct stat sbuf;
- strcpy ((char *)dtaus, "dtaus0.txt");
- strcpy ((char *)control, "dtaus0.ctl");
- strcpy ((char *)beleg, "dtaus0.doc");
- strcpy ((char *)check, "dtaus0.sik");
-
while (argc - i > 1) {
i++;
if ( !strcmp(argv[i], "-h") ) {
} else if ( !strcmp(argv[i], "-d") ) {
if (argc - i > 1) {
i++;
- strcpy ((char *)dtaus, argv[i]);
+ dtaus = argv[i];
}
} else if ( !strcmp(argv[i], "-c") ) {
if (argc - i > 1) {
i++;
- strcpy ((char *)control, argv[i]);
+ control = argv[i];
}
} else if ( !strcmp(argv[i], "-b") ) {
if (argc - i > 1) {
i++;
- strcpy ((char *)beleg, argv[i]);
+ beleg = argv[i];
}
} else if ( !strcmp(argv[i], "-o") ) {
if (argc - i > 1) {
i++;
- strcpy ((char *)check, argv[i]);
+ check = argv[i];
}
} else if ( !strcmp(argv[i], "-dtaus") ) {
action = DTAUS;
}
if (action == DTAUS) {
- if (!stat((char *)control, &sbuf)) {
- if (control2dtaus ((char *)control, (char *)dtaus, (char *)beleg, (char *)check) == 0)
+ if (!strcmp("-", control) || !stat(control, &sbuf)) {
+ if (control2dtaus (control, dtaus, beleg, check) == 0)
exit (1);
}
- else exit (1);
+ else {
+ fprintf( stderr, "Can't stat %s\n", control);
+ exit (1);
+ }
} else if (action == CONTROL) {
- if (!stat((char *)dtaus, &sbuf))
- dtaus2control ((char *)dtaus, (char *)control);
- else exit (1);
+ if (!strcmp("-",dtaus) || !stat(dtaus, &sbuf))
+ dtaus2control (dtaus, control);
+ else {
+ fprintf( stderr, "Can't stat %s\n", dtaus);
+ exit (1);
+ }
} else {
printf ("Keine Routine angegeben (-dtaus bzw. -control vergessen).\n");
exit (1);