From: sluka@kirk.fmi.uni-passau.de (Bernd Sluka)
Subject: Offizieller Patch fuer lst/est (Update)
Summary: Update von Version 1992.2 auf Version 1993.1
Originator: sluka@stoch.fmi.uni-passau.de
Keywords: Lohnsteuer, Einkommensteuer
Organization: University of Passau, Germany
Date: Wed, 30 Dec 1992 12:19:41 GMT

Hier ist der neueste Update fuer meine Lohn- und Einkommensteuer-
tabelle lst/est. Es werden die neuesten Zahlen beruecksichtigt und
der Solidaritaetsbeitrag (fast) rausgeschmissen. Ausserdem habe
ich die Einstellung des Kirchensteuersatzes etwas variabler
gestaltet.

Die neuen Steuerrichtlinien (Existenzminimum muss laut Bundes-
verfassungsgericht unbesteuert bleiben) konnte ich noch nicht
beruecksichtigen, da sie mir noch nicht vorliegen.

Ein vollstaendiger Repost des gesammten Pakets wird demnaechst
in comp.sources.misc erfolgen. Erfahrungsgemaess dauert das aber
moderatorbedingt etwas laenger.

----- Hier abschippeln -----
diff -c 1992.2/Makefile 1993.1/Makefile
*** 1992.2/Makefile	Wed Oct 21 13:42:06 1992
--- 1993.1/Makefile	Wed Dec 30 13:07:43 1992
***************
*** 1,10 ****
! ## Makefile fuer lst und est (Version 1990.0 vom 31.7.91)
  
! ## Fuer Bundeslaender mit erhoehtem Kirchensteuersatz von 9% (das sind unter
! ## den "alten" Bundeslaendern alle ausser Bayern und Baden-Wuertemberg, die
! ## Situation in den "neuen" kenne ich nicht) das naechste Kommentarzeichen
! ## (#) entfernen
! # OPTION = -DNORD
  
  ## Falls Du einen anderen Floating-Point Prozessor hast hier entsprechend
  ## aendern, falls Du keinen hast einfach die naechste Zeile loeschen.
--- 1,9 ----
! ## Makefile fuer lst und est (Version 1993.1 vom 30.12.92)
  
! ## Fuer Bundeslaender mit erhoehtem Kirchensteuersatz von 9% (das sind alle
! ## ausser Bayern, Baden-Wuertemberg, Bremen und Hamburg) das naechste
! ## Kommentarzeichen (#) entfernen. Siehe auch Option -K.
! # OPTION = -DNEUN
  
  ## Falls Du einen anderen Floating-Point Prozessor hast hier entsprechend
  ## aendern, falls Du keinen hast einfach die naechste Zeile loeschen.
diff -c 1992.2/README 1993.1/README
*** 1992.2/README	Wed Oct 21 13:42:06 1992
--- 1993.1/README	Wed Dec 30 12:54:17 1992
***************
*** 10,17 ****
  
  cc -o est -O [-f<Floatingpoint-Processor>] -D\"<Directory fuer Infos>\" [-DNORD] est.c -lm
  
! -DNORD stellt den Kirchensteuersatz von 9% fuer alle Bundeslaender
! ausser Bayern und Baden-Wuertemberg (mit 8%) bei der Compilierung ein.
  Das "Directory fuer Infos" teilt dem Programm, den spaeteren Aufbewah-
  rungsort fuer alle Informationstexte (./lib/*.inf) mit.
  
--- 10,19 ----
  
  cc -o est -O [-f<Floatingpoint-Processor>] -D\"<Directory fuer Infos>\" [-DNORD] est.c -lm
  
! -DNEUN stellt den Default-Kirchensteuersatz 9% (fuer alle Bundeslaender
! ausser Bayern, Baden-Wuertemberg, Bremen und Hamburg) bei der Compilierung
! ein. Er betraegt ansonsten 8%. Siehe auch Option -K.
! 
  Das "Directory fuer Infos" teilt dem Programm, den spaeteren Aufbewah-
  rungsort fuer alle Informationstexte (./lib/*.inf) mit.
  
diff -c 1992.2/TODO 1993.1/TODO
*** 1992.2/TODO	Wed Oct 21 13:42:06 1992
--- 1993.1/TODO	Wed Dec 30 12:31:18 1992
***************
*** 1,11 ****
- Jahreswechsel 1992/93:
- 
- - Tariffreibetrag Ost entfaellt.
-   (Programm und Text in lib/freibetr.inf aendern)
- - Solidaritaetsabgabe entfaellt ganz (in Einkommensteuerberechnung
-   auf Wunsch fuer den Zeitraum JAHR berechnen lassen)
- - Neue Beitragsbemessungsgrenze
- 
  Jahreswechsel 1993/94:
  
  - Solidaritaetsabgabe ganz loeschen
--- 1,3 ----
diff -c 1992.2/WHATSNEW 1993.1/WHATSNEW
*** 1992.2/WHATSNEW	Wed Oct 21 13:42:06 1992
--- 1993.1/WHATSNEW	Wed Dec 30 13:07:57 1992
***************
*** 27,29 ****
--- 27,39 ----
  - Die Berechnung der Solidatritaetsabgabe, die zum 1.7.1992 entfallen ist
    erfolgt (ausser fuer dem Berechnungszeitraum "Jahr") nur noch auf
    expliziten Wunsch.
+ 
+ Veraendert in Version 1993.1:
+ 
+ - Tariffreibetrag Ost entfaellt.
+ - Solidaritaetsabgabe entfaellt in Lohnsteuerberechnung ganz,
+   in der Einkommensteuerberechnung wird sie noch auf Wunsch fuer
+   den Zeitraum "Jahr" berechnet.
+ - Die Beitragsbemessungsgrenze zur Rentenversicherung ist auf dem neuesten
+   Stand.
+ - Der Kirchensteuersatz kann jetzt durch Option geaendert werden.
diff -c 1992.2/XPLNTION 1993.1/XPLNTION
*** 1992.2/XPLNTION	Wed Oct 21 13:42:06 1992
--- 1993.1/XPLNTION	Wed Dec 30 12:31:19 1992
***************
*** 42,48 ****
  steuer berechnen, die er von seinen Angestellten einbehalten muss.
  
  Auch die mit der Lohn- bzw. Einkommensteuer zusammenhaengenden Steuern
! wie Kirchensteuer und Solidaritaetsbeitrag werden berechnet.
  
  Die Programme sind jedoch *keine* Steuerratgeber, d.h. sie geben (fast)
  keine Tips, wie man Steuern sparen kann. Auch beim Ausfuellen der
--- 42,48 ----
  steuer berechnen, die er von seinen Angestellten einbehalten muss.
  
  Auch die mit der Lohn- bzw. Einkommensteuer zusammenhaengenden Steuern
! wie Kirchensteuer werden berechnet.
  
  Die Programme sind jedoch *keine* Steuerratgeber, d.h. sie geben (fast)
  keine Tips, wie man Steuern sparen kann. Auch beim Ausfuellen der
diff -c 1992.2/est.7 1993.1/est.7
*** 1992.2/est.7	Wed Oct 21 13:42:11 1992
--- 1993.1/est.7	Wed Dec 30 12:31:20 1992
***************
*** 1,5 ****
  .hw Ein-kom-men-steuer So-li-da-ri-taets-ab-ga-be
! .TH EST 7 "1 Juli 1992" "" "EINKOMMENSTEUERTABELLE"
  .SH NAME
  est \- Einkommensteuertabelle
  .SH SYNTAX
--- 1,5 ----
  .hw Ein-kom-men-steuer So-li-da-ri-taets-ab-ga-be
! .TH EST 7 "1 Januar 1993" "" "EINKOMMENSTEUERTABELLE"
  .SH NAME
  est \- Einkommensteuertabelle
  .SH SYNTAX
***************
*** 8,13 ****
--- 8,15 ----
  .RB [ \-S ]
  .RB [ \-G ]
  .RB [ \-K ]
+ .RB [ \-N
+ .IR "0 | geaenderter Kirchensteuersatz"
  .RB [ \-k
  .IR "Anzahl der Kinderfreibetraege" ]
  .RB [ \-t ]
***************
*** 29,37 ****
  .SH BESCHREIBUNG
  .IP est
  berechnet bei vorgegebenem zu versteuerndem Einkommen die Einkommen-
! und Kirchensteuer auf dem Stand von 1990.
  Auch die Solidaritaetsabgabe des 2. Halbjahres 1991 und 1. Halbjahres 1992
! wird beruecksichtigt.
  .IP est
  informiert ueber den aktuellen Einkommensteuertarif.
  .RE
--- 31,39 ----
  .SH BESCHREIBUNG
  .IP est
  berechnet bei vorgegebenem zu versteuerndem Einkommen die Einkommen-
! und Kirchensteuer auf dem Stand des Einkommensteuertarifs von 1990.
  Auch die Solidaritaetsabgabe des 2. Halbjahres 1991 und 1. Halbjahres 1992
! wird auf Wunsch noch beruecksichtigt.
  .IP est
  informiert ueber den aktuellen Einkommensteuertarif.
  .RE
***************
*** 105,128 ****
  Gebe keine Kirchensteuer mit aus. Diese Option ist selbstnegierend.
  Voreingestellt ist die Ausgabe der Kirchensteuer.
  .TP
  .B \-0
! Gebe den Solidaritaetsbeitrag (nicht) mit an.
! Bei Berechnung fuer ein ganzes Jahr ist die Voreinstellung die Ausgabe
! der Solidaritaetsabgabe, da diese fuer 1992 noch zu zahlen ist. Bei
! den anderen Zeitraeumen unterbleibt ueblicherweise die Ausgabe.
  Diese Option ist selbstnegierend.
- 
- Der Solidaritaetsbeitrag ist von Juli 1991 bis Juni 1992 zu zahlen
- und soll zur Finanzierung der Vereinigung bzw\. des Golfkriegs
- herangezogen werden. Er wird als Ergaenzungsabgabe proportional
- zur Einkommensteuer in Hoehe von 7.5% erhoben. Nur bei jaehrlicher
- Zahlungsweise, wie sie z.B\. den Lohnsteuer-Jahresausgleich betrifft,
- wird er auf die Steuer des
- .I ganzen
- Jahres in Hoehe von 3.75% erhoben. Fuer jeden, der einen
- Lohnsteuer-Jahresausgleich bzw\. eine Einkommensteuererklaerung abgibt
- besteht also die Ergaenzungsabgabe faktisch schon seit 1.1.1991 bis
- zum 31.12.1992 in Hoehe von 3.75%.
  .TP
  .B \-s
  Gebe den Steuersatz fuer dieses Einkommen mit aus.
--- 107,126 ----
  Gebe keine Kirchensteuer mit aus. Diese Option ist selbstnegierend.
  Voreingestellt ist die Ausgabe der Kirchensteuer.
  .TP
+ .BI \-N " 0 | geanderter Kirchensteuersatz"
+ Ein von der Voreinstellung (8 oder 9%) abweichender Kirchensteuersatz
+ kann angeben werden (Werte in %, also
+ .BI \-N " 7"
+ fuer 7% Kirchensteuer).
+ .BI \-N " 0"
+ wechselt zwischen dem voreingestellten Steuersatz (8 oder 9%)
+ und dem jeweils anderen (9 oder 8%).
+ .TP
  .B \-0
! Gebe den Solidaritaetsbeitrag mit an.
! Die Berechnung der Solidaritaetsabgabe erfolgt nur noch auf ausdruecklichen
! Wunsch.
  Diese Option ist selbstnegierend.
  .TP
  .B \-s
  Gebe den Steuersatz fuer dieses Einkommen mit aus.
***************
*** 134,145 ****
  
  Im Quiet-Modus wird dieser Wert als reine Zahl nach der Einkommensteuer
  und vor der Kirchensteuer ausgegeben (d.h. aus 23% wird 0.23).
- 
- Die Solidaritaetsabgabe von 7.5% bzw. 3.75% (siehe auch
- .BR \-0)
- wird nicht in den Steuersatz mit eingerechnet.
- Der reale Steuersatz ist daher mit dem 1.075-fachen bzw. 1.0375-fachen anzusetzten,
- solange die Solidaritaetsabgabe erhoben wird.
  .TP
  .B \-r
  Wiederhole die Abfrage eines Einkommens und die nachfolgenden Berechnungen, bis
--- 132,137 ----
diff -c 1992.2/est.c 1993.1/est.c
*** 1992.2/est.c	Wed Oct 21 13:42:11 1992
--- 1993.1/est.c	Wed Dec 30 13:08:33 1992
***************
*** 4,10 ****
  /*                                                                           */
  /*   Einkommenteuertabelle ab 1990                                           */
  /*                                                                           */
! /*   Version 1992.2   vom 01.07.1992                                         */
  /*                                                                           */
  /*   von Bernd Sluka, Fakultaet fuer Mathematik und Informatik, Uni Passau   */
  /*                                                                           */
--- 4,10 ----
  /*                                                                           */
  /*   Einkommenteuertabelle ab 1990                                           */
  /*                                                                           */
! /*   Version 1993.1   vom 30.12.1992                                         */
  /*                                                                           */
  /*   von Bernd Sluka, Fakultaet fuer Mathematik und Informatik, Uni Passau   */
  /*                                                                           */
***************
*** 24,30 ****
  static char *titel = "\n\
  Einkommensteuertabelle ab 1990\n\
  von Bernd Sluka\n\
! Version 1992.2 (01.07.1992)\n\
  \n\
  Fuer alle Angaben wird keine Gewaehr uebernommen.\n";
  
--- 24,30 ----
  static char *titel = "\n\
  Einkommensteuertabelle ab 1990\n\
  von Bernd Sluka\n\
! Version 1993.1 (30.12.1992)\n\
  \n\
  Fuer alle Angaben wird keine Gewaehr uebernommen.\n";
  
***************
*** 60,68 ****
  
  static char *usage = "\n\
  est -- Einkommensteuertabelle ab 1990\n\
! Usage: est [-S] \n\
  	   [-t] [-w] [-m] [-j] [-Q]\n\
! 	   [-K] [-k <Anzahl der Kinderfreibetraege>]\n\
  	   [-0] [-s] [-r] [-q]\n\
  	   [-I] [-P] [-T]\n\
  	   [-h] [-u] [-?]\n\
--- 60,69 ----
  
  static char *usage = "\n\
  est -- Einkommensteuertabelle ab 1990\n\
! Usage: est [-S]\n\
  	   [-t] [-w] [-m] [-j] [-Q]\n\
! 	   [-K] [-N <0|abweichender Kirchensteuersatz>]\n\
!            [-k <Anzahl der Kinderfreibetraege>]\n\
  	   [-0] [-s] [-r] [-q]\n\
  	   [-I] [-P] [-T]\n\
  	   [-h] [-u] [-?]\n\
***************
*** 104,110 ****
  	 einkommen,
  	 jahreseinkommen,
  	 einkommensteuer,
! 	 solidaritaetszulage;
    /* flags */
    int    kinderflag = FALSE,          /* Kinderfreibetrag eingegeben ? */
  	 einkommenflag = FALSE,       /* Einkommen eingegeben ? */
--- 105,113 ----
  	 einkommen,
  	 jahreseinkommen,
  	 einkommensteuer,
! 	 solidaritaetszulage,
!          kirchensteuersatz = 0.0;     /* anderer Kirchensteuersatz als der Default */
! 
    /* flags */
    int    kinderflag = FALSE,          /* Kinderfreibetrag eingegeben ? */
  	 einkommenflag = FALSE,       /* Einkommen eingegeben ? */
***************
*** 125,131 ****
  
    /** Optionsauswertung **/
  
!   while ((c = getopt(argc, argv, "twmjQk:K0SGITPsrqLBFuh")) != EOF)
    {
      argsused++;
      switch (c) {
--- 128,134 ----
  
    /** Optionsauswertung **/
  
!   while ((c = getopt(argc, argv, "twmjQk:KN:0SGITPsrqLBFuh")) != EOF)
    {
      argsused++;
      switch (c) {
***************
*** 151,157 ****
        case 'K': /* Kirchensteuer (nicht) ausgeben */
  		kirche = !kirche;
  		break;
!       case '0': /* Solidaritaetsbeitrag (nicht) ausgeben */
  		solidaritaet = !solidaritaet;
  		break;
        case 'S': /* Splittingtabelle benutzen? */
--- 154,166 ----
        case 'K': /* Kirchensteuer (nicht) ausgeben */
  		kirche = !kirche;
  		break;
!       case 'N': /* Steuersatz bei Kirchensteuer aendern */
! 		argsused++;
!                 if ( atof(optarg) == 0.0 )
!                    kirchensteuersatz = ( kirchensteuersatz < 0.0 ? 0.0 : -1.0 );
!                 else kirchensteuersatz = atof(optarg);
!                 break;
!       case '0': /* Solidaritaetsbeitrag ausgeben */
  		solidaritaet = !solidaritaet;
  		break;
        case 'S': /* Splittingtabelle benutzen? */
***************
*** 229,236 ****
      case JAHR:    zeitraumsubstantiv = "Jahres";
  		  zeitraumadjektiv = "jaehrlich";
  		  zeitraumfaktor = 1.0;
- 		  solidaritaet = !solidaritaet; /* Default fuer Jahr ist
- 				    die Ausgabe des Solidaritaetsbeitrags */
  		  break;
    }
  
--- 238,243 ----
***************
*** 272,278 ****
  
      if (!quiet)
      { printf("\n");
!       if (kirche) printf("%.1f Kinderfreibetraege\n", kinderfreizahl);
        printf("Berechnung nach %s-Tabelle\n\n", (splitting ? "Splitting" : "Grund" ));
      };
  
--- 279,292 ----
  
      if (!quiet)
      { printf("\n");
!       if (kirche) 
!       { printf("%.1f Kinderfreibetraege\n", kinderfreizahl);
!         if (kirchensteuersatz != 0.0)
!           (kirchensteuersatz < 0.0 ?
!             puts("Kirchensteuersatz geaendert\n"):
!             printf("Kirchensteuersatz %.2f %%\n", kirchensteuersatz)
!           );
!       };
        printf("Berechnung nach %s-Tabelle\n\n", (splitting ? "Splitting" : "Grund" ));
      };
  
***************
*** 295,301 ****
  
      solidaritaetszulage = schneide_ab(
  			    ergaenzungsabgabe( einkommensteuer,
! 					      (zeitraum == JAHR ? 3.75 : 7.5 )),
  				      0.01 );
  
      /* Ausgabe der berechneten Werte: */
--- 309,315 ----
  
      solidaritaetszulage = schneide_ab(
  			    ergaenzungsabgabe( einkommensteuer,
! 					      (zeitraum == JAHR ? 3.75 : 0.0 )),
  				      0.01 );
  
      /* Ausgabe der berechneten Werte: */
***************
*** 309,315 ****
        if (kirche) printf("%.2f\n", 
  		    kirchensteuer(einkommensteuer,
  				  0 /* hier keine Lohnsteuerklasse */,
! 				  kinderfreizahl));
      }
      else  /* Kein Quiet-Modus: Ausgabe mit Texten */
      {
--- 323,330 ----
        if (kirche) printf("%.2f\n", 
  		    kirchensteuer(einkommensteuer,
  				  0 /* hier keine Lohnsteuerklasse */,
! 				  kinderfreizahl,
!                                   kirchensteuersatz /* 0 wenn Default */));
      }
      else  /* Kein Quiet-Modus: Ausgabe mit Texten */
      {
***************
*** 346,352 ****
  	printf(format, zeitraumadjektiv, "",
  	       kirchensteuer(einkommensteuer,
  			     0 /* hier keine Lohnsteuerklasse */,
! 			     kinderfreizahl));
        };
  
      };
--- 361,368 ----
  	printf(format, zeitraumadjektiv, "",
  	       kirchensteuer(einkommensteuer,
  			     0 /* hier keine Lohnsteuerklasse */,
! 			     kinderfreizahl,
!                              kirchensteuersatz /* 0 wenn Default */));
        };
  
      };
diff -c 1992.2/esttab.h 1993.1/esttab.h
*** 1992.2/esttab.h	Wed Oct 21 13:42:11 1992
--- 1993.1/esttab.h	Wed Dec 30 13:08:53 1992
***************
*** 7,13 ****
  /*                                                                           */
  /*   als Include-Datei fuer lst und est                                      */
  /*                                                                           */
! /*   Version 1991.1   vom 27.07.1991                                         */
  /*                                                                           */
  /*****************************************************************************/
  
--- 7,13 ----
  /*                                                                           */
  /*   als Include-Datei fuer lst und est                                      */
  /*                                                                           */
! /*   Version 1993.1   vom 30.12.1992                                         */
  /*                                                                           */
  /*****************************************************************************/
  
***************
*** 73,90 ****
  /*    als Annexsteuer  */
  /***********************/
  
! double kirchensteuer(berechnungsgrundlage, klasse, kinder)
    double berechnungsgrundlage, /* Berechnungsgrundlage ist die Einkommensteuer */
! 	 kinder;               /* Anzahl der Kinderfreibetraege */
    int    klasse;               /* Lohnsteuerklasse */
  {
    double abzug = 300.0 / zeitraumfaktor, /* Freibetrag pro Kind */
  
! #ifndef NORD
! 	 steuersatz = 0.08; /* in Bayern und Baden-Wuertemberg */
  #else
  	 steuersatz = 0.09; /* uebrige Bundeslaender */
  #endif
  
    /* Kirchensteuer als Annexsteuer nach Paragraph 51a EStG */
  
--- 73,94 ----
  /*    als Annexsteuer  */
  /***********************/
  
! double kirchensteuer(berechnungsgrundlage, klasse, kinder, kirchensteuersatz)
    double berechnungsgrundlage, /* Berechnungsgrundlage ist die Einkommensteuer */
! 	 kinder,               /* Anzahl der Kinderfreibetraege */
!          kirchensteuersatz;    /* anderer Steuersatz als Default */
    int    klasse;               /* Lohnsteuerklasse */
  {
    double abzug = 300.0 / zeitraumfaktor, /* Freibetrag pro Kind */
  
! #ifndef NEUN
! 	 steuersatz = 0.08; /* in Bayern, Baden-Wuertemberg, Bremen und Hamburg */
  #else
  	 steuersatz = 0.09; /* uebrige Bundeslaender */
  #endif
+ 
+   if (kirchensteuersatz < 0.0) steuersatz = 0.17 - steuersatz;
+   if (kirchensteuersatz > 0.0) steuersatz = kirchensteuersatz / 100.0; 
  
    /* Kirchensteuer als Annexsteuer nach Paragraph 51a EStG */
  
Common subdirectories: 1992.2/lib and 1993.1/lib
diff -c 1992.2/lst.7 1993.1/lst.7
*** 1992.2/lst.7	Wed Oct 21 13:42:09 1992
--- 1993.1/lst.7	Wed Dec 30 12:31:22 1992
***************
*** 1,5 ****
  .hw Lohn-steuer-klas-se Lohn-steuer-klas-sen So-li-da-ri-taets-ab-ga-be
! .TH LST 7 "1 Juli 1992" "" "LOHNSTEUERTABELLE"
  .SH NAME
  lst \- Lohnsteuertabellen und einige zugehoerige Steuertips
  .SH SYNTAX
--- 1,5 ----
  .hw Lohn-steuer-klas-se Lohn-steuer-klas-sen So-li-da-ri-taets-ab-ga-be
! .TH LST 7 "1 Januar 1993" "" "LOHNSTEUERTABELLE"
  .SH NAME
  lst \- Lohnsteuertabellen und einige zugehoerige Steuertips
  .SH SYNTAX
***************
*** 22,27 ****
--- 22,29 ----
  .RB [ \-m ]
  .RB [ \-j ]
  .RB [ \-K ]
+ .RB [ \-N
+ .IR "0 | geaenderter Kirchensteuersatz"
  .RB [ \-0 ]
  .RB [ \-v ]
  .RB [ \-s ]
***************
*** 39,46 ****
  .SH BESCHREIBUNG
  .IP lst
  berechnet die Lohn- und Kirchensteuer auf dem Stand von 1990.
- Auch die Solidaritaetsabgabe des 2. Halbjahres 1991 und 1. Halbjahres 1992
- wird beruecksichtigt.
  .IP lst
  hilft bei der Wahl zwischen den
  Lohnsteuerklassenkombinationen 3/5 oder 4/4 fuer Verheiratete
--- 41,46 ----
***************
*** 72,82 ****
  .RB ( \-f ),
  Versorgungs-
  .RB ( \-V )
! Alters-
  .RB ( \-A )
- oder den Tariffreibetrag
- .RB ( \-O )
- fuer Arbeitnehmer in den neuen Bundeslaendern in den Jahren 1991/92
  zu beruecksichtigen oder zur Berechnung die besondere Lohnsteuertabelle
  .RB ( \-b )
  fuer von der Rentenversicherungspflicht befreite Arbeitnehmer zu benutzen.
--- 72,79 ----
  .RB ( \-f ),
  Versorgungs-
  .RB ( \-V )
! oder Altersfreibetrag
  .RB ( \-A )
  zu beruecksichtigen oder zur Berechnung die besondere Lohnsteuertabelle
  .RB ( \-b )
  fuer von der Rentenversicherungspflicht befreite Arbeitnehmer zu benutzen.
***************
*** 86,92 ****
  eingestellt werden. Dann werden keine erlaeuternden Texte mehr angegeben
  sondern nur noch Zahlen
  abgefragt und auch die Lohn- und Kirchensteuer
! sowie Solidaritaetsabgabe als reine Zahlen ausgegeben.
  .SH OPTIONEN
  .TP
  .BI \-l " Lohnsteuerklasse"
--- 83,89 ----
  eingestellt werden. Dann werden keine erlaeuternden Texte mehr angegeben
  sondern nur noch Zahlen
  abgefragt und auch die Lohn- und Kirchensteuer
! als reine Zahlen ausgegeben.
  .SH OPTIONEN
  .TP
  .BI \-l " Lohnsteuerklasse"
***************
*** 163,175 ****
  ist selbstnegierend, d.h. bei zweimaligem Aufruf hebt sie sich
  sie sich wieder auf, bei dreimaligem Aufruf ist sie wieder gesezt, u.s.w. 
  .TP
- .B \-O
- Beruecksichtige den Tariffreibetrag fuer Arbeitnehmer in den neuen Bundeslaendern.
- Diese Option ist selbstnegierend. 
- Genauere Informationen zum Tariffreibetrag "Ost", der nur in den Jahren
- 1991 und 1992 gilt, liefert die Option
- .B \-F \.
- .TP
  .B \-b
  Berechne die Lohnsteuer nach der besonderen Lohnsteuertabelle, die fuer
  nicht rentenversicherungspflichtige Arbeitnehmer gilt. Die Option
--- 160,165 ----
***************
*** 199,222 ****
  .B \-K
  Gebe keine Kirchensteuer mit aus. Diese Option ist selbstnegierend.
  .TP
! .B \-0
! Gebe den Solidaritaetsbeitrag (nicht) mit an.
! Bei Berechnung fuer ein ganzes Jahr ist die Voreinstellung die Ausgabe
! der Solidaritaetsabgabe, da diese fuer 1992 noch zu zahlen ist. Bei
! den anderen Zeitraeumen unterbleibt ueblicherweise die Ausgabe.
! Diese Option ist selbstnegierend.
! 
! Der Solidaritaetsbeitrag ist von Juli 1991 bis Juni 1992 zu zahlen
! und soll zur Finanzierung der Vereinigung bzw\. des Golfkriegs
! herangezogen werden. Er wird als Ergaenzungsabgabe proportional
! zur Lohnsteuer in Hoehe von 7.5% erhoben. Nur bei jaehrlicher
! Zahlungsweise, wie sie z.B\. den Lohnsteuer-Jahresausgleich betrifft,
! wird er auf die Steuer des
! .I ganzen
! Jahres in Hoehe von 3.75% erhoben. Fuer jeden, der einen
! Lohnsteuer-Jahresausgleich bzw\. eine Einkommensteuererklaerung abgibt
! besteht also die Ergaenzungsabgabe faktisch schon seit 1.1.1991 bis
! zum 31.12.1992 in Hoehe von 3.75%.
  .TP
  .B \-v
  Gebe zusaetzliche Informationen ueber die Hoehe der
--- 189,202 ----
  .B \-K
  Gebe keine Kirchensteuer mit aus. Diese Option ist selbstnegierend.
  .TP
! .BI \-N " 0 | geanderter Kirchensteuersatz"
! Ein von der Voreinstellung (8 oder 9%) abweichender Kirchensteuersatz
! kann angeben werden (Werte in %, also
! .BI \-N " 7"
! fuer 7% Kirchensteuer).
! .BI \-N " 0"
! wechselt zwischen dem voreingestellten Steuersatz (8 oder 9%)
! und dem jeweils anderen (9 oder 8%).
  .TP
  .B \-v
  Gebe zusaetzliche Informationen ueber die Hoehe der
***************
*** 234,244 ****
  Im Quiet-Modus wird dieser Wert als reine Zahl nach der Lohnsteuer
  und vor der Kirchensteuer ausgegeben (d.h. aus 23% wird 0.23).
  
- Die Solidaritaetsabgabe von 7.5% bzw. 3.75% (siehe auch
- .BR \-0)
- wird nicht in den Steuersatz mit eingerechnet.
- Der reale Steuersatz ist daher mit dem 1.075-fachen bzw. 1.0375-fachen anzusetzten,
- solange die Solidaritaetsabgabe erhoben wird.
  .TP
  .B \-r
  Wiederhole die Abfrage eines Lohns und die nachfolgenden Berechnungen, bis
--- 214,219 ----
diff -c 1992.2/lst.c 1993.1/lst.c
*** 1992.2/lst.c	Wed Oct 21 13:42:08 1992
--- 1993.1/lst.c	Wed Dec 30 13:09:19 1992
***************
*** 4,10 ****
  /*                                                                           */
  /*   Lohnsteuertabelle ab 1990                                               */
  /*                                                                           */
! /*   Version 1992.2   vom 01.07.1992                                         */
  /*                                                                           */
  /*   von Bernd Sluka, Fakultaet fuer Mathematik und Informatik, Uni Passau   */
  /*                                                                           */
--- 4,10 ----
  /*                                                                           */
  /*   Lohnsteuertabelle ab 1990                                               */
  /*                                                                           */
! /*   Version 1993.1   vom 30.12.1992                                         */
  /*                                                                           */
  /*   von Bernd Sluka, Fakultaet fuer Mathematik und Informatik, Uni Passau   */
  /*                                                                           */
***************
*** 24,30 ****
  static char *titel = "\n\
  Lohnsteuertabelle ab 1990\n\
  von Bernd Sluka\n\
! Version 1992.2 (01.07.1992)\n\
  \n\
  Fuer alle Angaben wird keine Gewaehr uebernommen.\n";
  
--- 24,30 ----
  static char *titel = "\n\
  Lohnsteuertabelle ab 1990\n\
  von Bernd Sluka\n\
! Version 1993.1 (30.12.1992)\n\
  \n\
  Fuer alle Angaben wird keine Gewaehr uebernommen.\n";
  
***************
*** 63,76 ****
  static double altersfreisatz = 0.4,
  	      altersfreihoechstgrenze = 3720.00,
  	      versorgungsfreisatz = 0.4,
! 	      versorgungsfreihoechstgrenze = 4800.00,
! 	      tariffreibetrag_ost = 600.00;
  
  /* Konstante fuer Vorsorgepausch und Vorsorgeaufwendungen */
  static double vorwegabzugshoechstgrenze   =  4000.00,
  	      vorsorgepauschhoechstgrenze =  2340.00,
  	      besonderehoechstgrenze      =  2000.00,
! 	      beitragsbemessungsgrenze    = 81600.00 /* Stand 1992 */;
  	      /* zur Rentenversicherung */
  
  
--- 63,75 ----
  static double altersfreisatz = 0.4,
  	      altersfreihoechstgrenze = 3720.00,
  	      versorgungsfreisatz = 0.4,
! 	      versorgungsfreihoechstgrenze = 4800.00;
  
  /* Konstante fuer Vorsorgepausch und Vorsorgeaufwendungen */
  static double vorwegabzugshoechstgrenze   =  4000.00,
  	      vorsorgepauschhoechstgrenze =  2340.00,
  	      besonderehoechstgrenze      =  2000.00,
! 	      beitragsbemessungsgrenze    = 86400.00 /* Stand 1992 */;
  	      /* zur Rentenversicherung */
  
  
***************
*** 86,92 ****
  	   [-V <Versorgungsbezug>]\n\
  	   [-A] [-b] [-a]\n\
  	   [-t] [-w] [-m] [-j]\n\
! 	   [-K] [-0] [-v] [-s] [-r] [-q]\n\
  	   [-3|-5] [-p]\n\
  	   [-I] [-L] [-F] [-B]\n\
  	   [-h] [-u] [-?]\n\
--- 85,92 ----
  	   [-V <Versorgungsbezug>]\n\
  	   [-A] [-b] [-a]\n\
  	   [-t] [-w] [-m] [-j]\n\
! 	   [-K] [-N <0|abweichender Kirchensteuersatz>]\n\
!            [-0] [-v] [-s] [-r] [-q]\n\
  	   [-3|-5] [-p]\n\
  	   [-I] [-L] [-F] [-B]\n\
  	   [-h] [-u] [-?]\n\
***************
*** 157,166 ****
  	 jahreslohn, jahreseinkommen, jahresversorgungsbezug,
  	 zu_versteuerndes_einkommen,
  	 lohnsteuer,
- 	 solidaritaetszulage,
  	 altersfreibetrag,
  	 versorgungsfreibetrag,
! 	 ostfreibetrag;
  
    /* flags */
    int    stklflag = FALSE,            /* Steuerklasse eingegeben ? */
--- 157,165 ----
  	 jahreslohn, jahreseinkommen, jahresversorgungsbezug,
  	 zu_versteuerndes_einkommen,
  	 lohnsteuer,
  	 altersfreibetrag,
  	 versorgungsfreibetrag,
!          kirchensteuersatz = 0.0;     /* anderer Kirchensteuersatz als der Default */
  
    /* flags */
    int    stklflag = FALSE,            /* Steuerklasse eingegeben ? */
***************
*** 176,184 ****
  	 print_usage = FALSE,         /* Usage ausgeben ? */
  	 altersfreiflag = FALSE,      /* Altersfreibetrag zu beruecksichtigen ? */
  	 kirche = TRUE,               /* Kirchensteuer mit ausgeben ? */
! 	 zeitraum = MONAT,            /* Berechnungszeitraum */
! 	 solidaritaet = FALSE,        /* Solidaritaetsbeitrag (Vereinigung) ausgeben ? */
! 	 ostflag = FALSE;             /* Tariffreibetrag Ost beruecksichtigen ? */
  
    /* Stringpuffer */
    char format[128];
--- 175,181 ----
  	 print_usage = FALSE,         /* Usage ausgeben ? */
  	 altersfreiflag = FALSE,      /* Altersfreibetrag zu beruecksichtigen ? */
  	 kirche = TRUE,               /* Kirchensteuer mit ausgeben ? */
! 	 zeitraum = MONAT;            /* Berechnungszeitraum */
  
    /* Stringpuffer */
    char format[128];
***************
*** 189,195 ****
  
    /** Optionsauswertung **/
  
!   while ((c = getopt(argc, argv, "twmjl:f:k:bpaAV:KIvsrqLBFuh350O")) != EOF)
    {
      argsused++;
      switch (c) {
--- 186,192 ----
  
    /** Optionsauswertung **/
  
!   while ((c = getopt(argc, argv, "twmjl:f:k:bpaAV:KN:IvsrqLBFuh35")) != EOF)
    {
      argsused++;
      switch (c) {
***************
*** 251,265 ****
  		  versorgungsbezug = 0.0;
  		};
  		break;
-       case 'O': /* Tariffreibetrag Ost beruecksichtigen */
- 		ostflag = !ostflag;
- 		break;
        case 'K': /* Kirchensteuer (nicht) ausgeben */
  		kirche = !kirche;
  		break;
!       case '0': /* Solidaritaetsbeitrag (nicht) ausgeben */
! 		solidaritaet = !solidaritaet;
! 		break;
        case 'v': /* Information zu Vorsorgeaufwendungen mit ausgeben */
  		vorsorgeinfoflag = TRUE;
  		break;
--- 248,262 ----
  		  versorgungsbezug = 0.0;
  		};
  		break;
        case 'K': /* Kirchensteuer (nicht) ausgeben */
  		kirche = !kirche;
  		break;
!       case 'N': /* Steuersatz bei Kirchensteuer aendern */
! 		argsused++;
!                 if ( atof(optarg) == 0.0 )
!                    kirchensteuersatz = ( kirchensteuersatz < 0.0 ? 0.0 : -1.0 );
!                 else kirchensteuersatz = atof(optarg);
!                 break;
        case 'v': /* Information zu Vorsorgeaufwendungen mit ausgeben */
  		vorsorgeinfoflag = TRUE;
  		break;
***************
*** 348,355 ****
  		zeitraumadjektiv   = "jaehrlich";
  		tabellenfehler     = 0.00;
  		zeitraumfaktor     = 1.0;
- 		solidaritaet       = !solidaritaet; /* Default fuer Jahr ist
- 					die Ausgabe des Solidaritaetsbeitrags */
  		break;
    }
  
--- 345,350 ----
***************
*** 411,416 ****
--- 406,417 ----
  	printf("%.1f Kinderfreibetraege\n", kinderfreizahl);
        if (besondere_vorsorge)
  	printf("Berechnung nach besonderer Lohnsteuertabelle\n");
+       if (kirche) 
+         if (kirchensteuersatz != 0.0)
+           (kirchensteuersatz < 0.0 ?
+             puts("Kirchensteuersatz geaendert\n"):
+             printf("Kirchensteuersatz %.2f %%\n", kirchensteuersatz)
+           );
  
        printf("%s %.2f DM\n", zeitraumsubstantiv, lohn);
      };
***************
*** 457,476 ****
      };
  
      /* Tariffreibetrag fuer "neue" Bundeslaender (nur fuer 1991 und 1992) */
  
-     if (ostflag && lohnsteuerklasse <= 4)
-     {
-       jahreseinkommen -= ostfreibetrag =
- 	tariffreibetrag_ost *
- 	/* ( zeitraum == JAHR ? 1.0 : 2.0 ) *  
- 		    fuer 1991 noch doppelt in der zweiten Jahreshaelfte
-         	    ab 1992 aber nur noch in einfacher Hoehe */
- 	( lohnsteuerklasse == 3 ? 2.0 : 1.0 )  /* In Steuerklasse 3 doppelt */;
-       if (!quiet)
- 	printf("Tariffreibetrag Ost (%s) %.2f DM\n",
- 	       zeitraumadjektiv, ostfreibetrag / zeitraumfaktor);
-     };
- 
      /* Frei- und Pauschbetraege ab */
  
      zu_versteuerndes_einkommen =
--- 458,465 ----
      };
  
      /* Tariffreibetrag fuer "neue" Bundeslaender (nur fuer 1991 und 1992) */
+     /* entfaellt ab 1993 */
  
      /* Frei- und Pauschbetraege ab */
  
      zu_versteuerndes_einkommen =
***************
*** 485,495 ****
  					       lohnsteuerklasse) / zeitraumfaktor,
  			      0.01 );
  
-     solidaritaetszulage = schneide_ab(
- 			    ergaenzungsabgabe( lohnsteuer,
- 					      (zeitraum == JAHR ? 3.75 : 7.5 )),
- 				      0.01 );
- 
      /* Ausgabe der berechneten Werte: */
  
      if (quiet)
--- 474,479 ----
***************
*** 497,505 ****
        printf("%.2f\n",lohnsteuer);
        if (steuersatzflag) printf("%.4f\n",
  		    steuersatz(zu_versteuerndes_einkommen, lohnsteuerklasse));
-       if (solidaritaet) printf("%.2f\n", solidaritaetszulage );
        if (kirche) printf("%.2f\n", 
! 		    kirchensteuer(lohnsteuer, lohnsteuerklasse, kinderfreizahl));
      }
      else
      {
--- 481,489 ----
        printf("%.2f\n",lohnsteuer);
        if (steuersatzflag) printf("%.4f\n",
  		    steuersatz(zu_versteuerndes_einkommen, lohnsteuerklasse));
        if (kirche) printf("%.2f\n", 
! 		    kirchensteuer(lohnsteuer, lohnsteuerklasse, kinderfreizahl,
!                                   kirchensteuersatz /* 0 wenn Default */ ));
      }
      else
      {
***************
*** 520,533 ****
  	       100 * steuersatz(zu_versteuerndes_einkommen, lohnsteuerklasse));
        };
  
-       /* Solidaritaetszulage */
-       if (solidaritaet)
-       {
- 	sprintf(format, "%%se Solidaritaetszulage%%%ds%%%d.2f DM\n",
- 			 12-len(zeitraumadjektiv), laenge -38);
- 	printf(format, zeitraumadjektiv, "", solidaritaetszulage);
-       };
- 
        /* Kirchensteuer */
        if (kirche)
        {
--- 504,509 ----
***************
*** 534,540 ****
  	sprintf(format, "%%se Kirchensteuer%%%ds%%%d.2f DM\n",
  			 18-len(zeitraumadjektiv), laenge -38);
  	printf(format, zeitraumadjektiv, "",
! 	       kirchensteuer(lohnsteuer, lohnsteuerklasse, kinderfreizahl));
        };
  
      };
--- 510,517 ----
  	sprintf(format, "%%se Kirchensteuer%%%ds%%%d.2f DM\n",
  			 18-len(zeitraumadjektiv), laenge -38);
  	printf(format, zeitraumadjektiv, "",
! 	       kirchensteuer(lohnsteuer, lohnsteuerklasse, kinderfreizahl,
!                                   kirchensteuersatz /* 0 wenn Default */ ));
        };
  
      };

--
Bernd Sluka                                                    Wer will,
Fakultaet fuer Mathematik und Informatik        dass die Welt so bleibt,
Universitaet Passau                                         wie sie ist,
8390 Passau                                              der will nicht,
sluka@kirk.fmi.uni-passau.de                            dass sie bleibt.
bernd@fons.nbg.sub.org                                     (Erich Fried)