updated for version 7.0130
diff --git a/runtime/spell/de/de_19.diff b/runtime/spell/de/de_19.diff
new file mode 100644
index 0000000..a807a8b
--- /dev/null
+++ b/runtime/spell/de/de_19.diff
@@ -0,0 +1,27 @@
+*** de_19.orig.aff	Mon Aug 15 22:45:35 2005
+--- de_19.aff	Mon Aug 15 22:54:10 2005
+***************
+*** 3,4 ****
+--- 3,24 ----
+  
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
++ SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++ 
++ MIDWORD	'
++ 
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++ 
+  
diff --git a/runtime/spell/de/de_20.diff b/runtime/spell/de/de_20.diff
new file mode 100644
index 0000000..432ad5f
--- /dev/null
+++ b/runtime/spell/de/de_20.diff
@@ -0,0 +1,28 @@
+*** de_20.orig.aff	Mon Aug 15 22:45:41 2005
+--- de_20.aff	Mon Aug 15 22:54:16 2005
+***************
+*** 2,3 ****
+--- 2,24 ----
+  TRY esianrtolcdugmphbyfvkwäüößáéêàâñESIANRTOLCDUGMPHBYFVKWÄÜÖ
++ 
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
++ SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++ 
++ MIDWORD	'
++ 
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++ 
+  #
diff --git a/runtime/spell/de/de_AT.diff b/runtime/spell/de/de_AT.diff
new file mode 100644
index 0000000..e13e4d5
--- /dev/null
+++ b/runtime/spell/de/de_AT.diff
@@ -0,0 +1,44 @@
+*** de_AT.orig.aff	Mon Aug 15 22:59:43 2005
+--- de_AT.aff	Mon Aug 15 23:00:25 2005
+***************
+*** 3,4 ****
+--- 3,24 ----
+  
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
++ SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++ 
++ MIDWORD	'
++ 
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++ 
+  
+*** de_AT.orig.dic	Mon Aug 15 22:59:43 2005
+--- de_AT.dic	Mon Aug 15 23:03:19 2005
+***************
+*** 18,20 ****
+  Fleischbänke/N
+- Fleischbank
+  Fleischhauer/NS
+--- 18,19 ----
+***************
+*** 151,153 ****
+  zulieb
+! 77857
+  Äbte/N
+--- 150,152 ----
+  zulieb
+! 
+  Äbte/N
diff --git a/runtime/spell/de/de_CH.diff b/runtime/spell/de/de_CH.diff
new file mode 100644
index 0000000..607f874
--- /dev/null
+++ b/runtime/spell/de/de_CH.diff
@@ -0,0 +1,27 @@
+*** de_CH.orig.aff	Mon Aug 15 22:45:43 2005
+--- de_CH.aff	Mon Aug 15 22:54:21 2005
+***************
+*** 3,4 ****
+--- 3,24 ----
+  
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
++ SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
++ 
++ MIDWORD	'
++ 
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++ 
+  
diff --git a/runtime/spell/de/de_DE.diff b/runtime/spell/de/de_DE.diff
index 0d395e8..fe33b41 100644
--- a/runtime/spell/de/de_DE.diff
+++ b/runtime/spell/de/de_DE.diff
@@ -1,5 +1,5 @@
-*** de_DE.orig.aff	Fri Feb 25 12:50:10 2005
---- de_DE.aff	Sun Jul 31 22:15:49 2005
+*** de_DE.orig.aff	Mon Aug 15 22:45:33 2005
+--- de_DE.aff	Mon Aug 15 22:45:33 2005
 ***************
 *** 2,3 ****
 --- 2,24 ----
diff --git a/runtime/spell/de/main.aap b/runtime/spell/de/main.aap
index 80bfcea..df608e1 100644
--- a/runtime/spell/de/main.aap
+++ b/runtime/spell/de/main.aap
@@ -1,4 +1,13 @@
 # Aap recipe for German Vim spell files.
+#
+# Since there is a big discussion about whether to use the old or the new
+# spelling rules, both have been included.
+#    "de": all possible words allowed
+# "de_de": old and new German spelling
+# "de_19": old German spelling
+# "de_20": new German spelling
+# "de_AT": Austrian spelling
+# "de_CH": Swiss spelling
 
 # Use a freshly compiled Vim if it exists.
 @if os.path.exists('../../../src/vim'):
@@ -6,66 +15,170 @@
 @else:
     :progsearch VIM vim
 
-SPELLDIR = ..
-FILES    = de_DE.aff de_DE.dic
-ZIPFILE  = de_DE_comb.zip
+REGIONS = DE 19 20 AT CH
+DE_REGIONS = de_$*REGIONS
 
-all: $(SPELLDIR)/de.latin1.spl $(SPELLDIR)/de.utf-8.spl ../README_de.txt
+SPELLDIR   = ..
+FILES      = de_$*(REGIONS).aff de_$*(REGIONS).dic
 
-$(SPELLDIR)/de.latin1.spl : $(VIM) $(FILES)
+ZIPFILE_DE = de_DE_comb.zip
+ZIPFILE_19 = de_DE.zip
+ZIPFILE_20 = de_DE_neu.zip
+ZIPFILE_AT = de_AT.zip
+ZIPFILE_CH = de_CH.zip
+ZIPFILES   = $ZIPFILE_DE $ZIPFILE_19 $ZIPFILE_20 $ZIPFILE_AT $ZIPFILE_CH
+
+READMES    = README_de_$*(REGIONS).txt
+
+all: $SPELLDIR/de.latin1.spl $SPELLDIR/de.utf-8.spl ../README_de.txt
+
+$SPELLDIR/de.latin1.spl : $VIM $FILES
         :sys env LANG=de_DE.ISO8859-1
-		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
+		$VIM -u NONE -e -c "mkspell! $SPELLDIR/de $DE_REGIONS" -c q
 
-$(SPELLDIR)/de.utf-8.spl : $(VIM) $(FILES)
+$SPELLDIR/de.utf-8.spl : $VIM $FILES
         :sys env LANG=de_DE.UTF-8
-		$(VIM) -u NONE -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
+		$VIM -u NONE -e -c "mkspell! $SPELLDIR/de $DE_REGIONS" -c q
 
-../README_de.txt: README_de_DE_comb.txt
-        :copy $source $target
+../README_de.txt: $READMES
+        :print de_DE (combined) >! $target
+        :cat README_de_DE.txt   >> $target
+        :print =================================================== >>$target
+        :print de_19 (old)      >> $target
+        :cat README_de_19.txt   >> $target
+        :print =================================================== >>$target
+        :print de_20 (new)      >> $target
+        :cat README_de_20.txt   >> $target
+        :print =================================================== >>$target
+        :print de_AT (Austria)  >> $target
+        :cat README_de_AT.txt   >> $target
+        :print =================================================== >>$target
+        :print de_CH (Swiss)    >> $target
+        :cat README_de_CH.txt   >> $target
 
 #
 # Fetching the files from OpenOffice.org.
 #
 OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
-:attr {fetch = $(OODIR)/%file%} $(ZIPFILE)
+:attr {fetch = $OODIR/%file%} $ZIPFILES
 
 # The files don't depend on the .zip file so that we can delete it.
 # Only download the zip file if the targets don't exist.
 de_DE.aff de_DE.dic: {buildcheck=}
         :assertpkg unzip patch
-        :fetch $(ZIPFILE)
-        :sys $(UNZIP) $(ZIPFILE)
-        :delete $(ZIPFILE)
+        :fetch $ZIPFILE_DE
+        :sys $UNZIP $ZIPFILE_DE
+        :delete $ZIPFILE_DE
         :move de_DE_comb.aff de_DE.aff
         :move de_DE_comb.dic de_DE.dic
+        :move README_de_DE_comb.txt README_de_DE.txt
         @if not os.path.exists('de_DE.orig.aff'):
-                :copy de_DE.aff de_DE.orig.aff
+            :copy de_DE.aff de_DE.orig.aff
         @if not os.path.exists('de_DE.orig.dic'):
-                :copy de_DE.dic de_DE.orig.dic
+            :copy de_DE.dic de_DE.orig.dic
         @if os.path.exists('de_DE.diff'):
             :sys patch <de_DE.diff
 
+de_19.aff de_19.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch $ZIPFILE_19
+        # Move the other files out of the way.
+        @if os.path.exists("de_DE.aff"):
+            :move de_DE.aff de_DE_comb.aff
+            :move de_DE.dic de_DE_comb.dic
+            :move README_de_DE.txt README_de_DE_comb.txt
+
+        :sys $UNZIP $ZIPFILE_19
+        :delete $ZIPFILE_19
+        :delete {f} de_AT.dic
+        :move de_DE.aff de_19.aff
+        :move de_DE.dic de_19.dic
+        :move README_de_DE.txt README_de_19.txt
+
+        @if os.path.exists("de_DE_comb.aff"):
+            :move de_DE_comb.aff de_DE.aff
+            :move de_DE_comb.dic de_DE.dic
+            :move README_de_DE_comb.txt README_de_DE.txt
+        @if not os.path.exists('de_19.orig.aff'):
+            :copy de_19.aff de_19.orig.aff
+        @if not os.path.exists('de_19.orig.dic'):
+            :copy de_19.dic de_19.orig.dic
+        @if os.path.exists('de_19.diff'):
+            :sys patch <de_19.diff
+
+de_20.aff de_20.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch $ZIPFILE_20
+        :sys $UNZIP $ZIPFILE_20
+        :delete $ZIPFILE_20
+        :move de_DE_neu.aff de_20.aff
+        :move de_DE_neu.dic de_20.dic
+        :move README_de_DE_neu.txt README_de_20.txt
+        @if not os.path.exists('de_20.orig.aff'):
+            :copy de_20.aff de_20.orig.aff
+        @if not os.path.exists('de_20.orig.dic'):
+            :copy de_20.dic de_20.orig.dic
+        @if os.path.exists('de_20.diff'):
+            :sys patch <de_20.diff
+
+# It appears de_AT.dic is only an additional file for another word list.  We
+# guess it's the old spelling one and concatenate them.  Complication is that
+# de_AT.dic is missing a newline at the end.
+de_AT.aff de_AT.dic: {buildcheck=} de_19.dic
+        :assertpkg unzip patch
+        :fetch $ZIPFILE_AT
+        :sys $UNZIP $ZIPFILE_AT
+        :delete $ZIPFILE_AT
+        :print >>de_AT.dic
+        :cat de_19.dic >>de_AT.dic
+        @if not os.path.exists('de_AT.orig.aff'):
+            :copy de_AT.aff de_AT.orig.aff
+        @if not os.path.exists('de_AT.orig.dic'):
+            :copy de_AT.dic de_AT.orig.dic
+        @if os.path.exists('de_AT.diff'):
+            :sys patch <de_AT.diff
+
+de_CH.aff de_CH.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch $ZIPFILE_CH
+        :sys $UNZIP $ZIPFILE_CH
+        :delete $ZIPFILE_CH
+        @if not os.path.exists('de_CH.orig.aff'):
+            :copy de_CH.aff de_CH.orig.aff
+        @if not os.path.exists('de_CH.orig.dic'):
+            :copy de_CH.dic de_CH.orig.dic
+        @if os.path.exists('de_CH.diff'):
+            :sys patch <de_CH.diff
+
 
 # Generate diff files, so that others can get the OpenOffice files and apply
 # the diffs to get the Vim versions.
-
 diff:
         :assertpkg diff
         :sys {force} diff -a -C 1 de_DE.orig.aff de_DE.aff >de_DE.diff
         :sys {force} diff -a -C 1 de_DE.orig.dic de_DE.dic >>de_DE.diff
+        :sys {force} diff -a -C 1 de_19.orig.aff de_19.aff >de_19.diff
+        :sys {force} diff -a -C 1 de_19.orig.dic de_19.dic >>de_19.diff
+        :sys {force} diff -a -C 1 de_20.orig.aff de_20.aff >de_20.diff
+        :sys {force} diff -a -C 1 de_20.orig.dic de_20.dic >>de_20.diff
+        :sys {force} diff -a -C 1 de_AT.orig.aff de_AT.aff >de_AT.diff
+        :sys {force} diff -a -C 1 de_AT.orig.dic de_AT.dic >>de_AT.diff
+        :sys {force} diff -a -C 1 de_CH.orig.aff de_CH.aff >de_CH.diff
+        :sys {force} diff -a -C 1 de_CH.orig.dic de_CH.dic >>de_CH.diff
 
 
 # Check for updated OpenOffice spell files.  When there are changes the
 # ".new.aff" and ".new.dic" files are left behind for manual inspection.
 
 check:
+        :print TODO!!!!
         :assertpkg unzip diff
-        :fetch $(ZIPFILE)
+        :fetch $ZIPFILE_DE
         :mkdir tmp
         :cd tmp
         @try:
             @import stat
-            :sys $(UNZIP) ../$(ZIPFILE)
+            :sys $UNZIP ../$ZIPFILE_DE
             :move de_DE_comb.aff de_DE.aff
             :move de_DE_comb.dic de_DE.dic
             :sys {force} diff ../de_DE.orig.aff de_DE.aff >d
@@ -77,7 +190,7 @@
         @finally:
             :cd ..
             :delete {r}{f}{q} tmp
-            :delete $(ZIPFILE)
+            :delete $ZIPFILE_DE
 
 
 # vim: set sts=4 sw=4 :