X-Git-Url: https://git.infodrom.org/?p=infodrom%2Fdtaus;a=blobdiff_plain;f=main.c;h=6c7b46efde75d831da2d5777eb42e1a94828a7ca;hp=421e9c66875f0a798efd1dff24e892b05f1dcf83;hb=20e223be40bfb11e59ccdc8439d5ff24eef35d73;hpb=f85c446c2c2a98727d19eeaedb7d594213629a97 diff --git a/main.c b/main.c index 421e9c6..6c7b46e 100644 --- a/main.c +++ b/main.c @@ -1,6 +1,6 @@ /* - main.c - Datentraegeraustausch mit einer Bank - Copyright (c) 1996,8 Martin Schulze + main.c - Belegloser Datenträgeraustausch mit einer Bank + Copyright (c) 1996,8,2001-4 Martin Schulze 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 @@ -19,23 +19,38 @@ $Id$ */ -static char version[] = "0.5"; +static char version[] = "0.6"; #include #include #include +#include +#include #include "dtaus.h" +#define FN_DTAUS "dtaus0.txt" +#define FN_CONTROL "dtaus0.ctl" +#define FN_BELEG "dtaus0.doc" +#define FN_CHECK "dtaus0.sik" +#define FN_LATEX "dtaus0.tex" + +char *dtaus = FN_DTAUS; +char *control = FN_CONTROL; +char *beleg = FN_BELEG; +char *check = FN_CHECK; +char *latex = NULL; + 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 (" -dtaus Erzeugt eine Bankdatei\n"); + printf (" -control Liest eine Bankdatei und erzeugt die Kontrolldatei\n"); printf ("\n"); - printf (" -d Bankdatei [dtaus0.txt]\n"); - printf (" -c Steuerdatei [dtaus0.ctl]\n"); - printf (" -b Begleitzettel für die Bank dtaus0.doc]\n"); - printf (" -o Kontrolldatei zum Abheften [dtaus0.sik]\n"); + printf (" -d Bankdatei [%s]\n", FN_DTAUS); + printf (" -c Steuerdatei [%s]\n", FN_CONTROL); + printf (" -b Begleitzettel für die Bank [%s]\n", FN_BELEG); + printf (" -l [] Begleitzettel als LaTeX [%s]\n", FN_LATEX); + printf (" -o Kontrolldatei zum Abheften [%s]\n", FN_CHECK); } #define DTAUS 1 @@ -43,19 +58,10 @@ void help () 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") ) { @@ -66,22 +72,28 @@ int main (int argc, char **argv) } 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], "-l") ) { + if (argc - i > 1 && argv[i+1][0] != '-') { + i++; + latex = argv[i]; + } else + latex = FN_LATEX; } 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; @@ -91,15 +103,21 @@ int main (int argc, char **argv) } 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, latex) == 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);