dsdo (1.6.25-1) 1006_improve_myspell_rules.patch

Summary

 Makefile                |    5 +-
 myspell/Makefile        |   15 ++++++--
 no-compound_marking     |   30 ++++++++++++++++
 words-da.no-compound.sq |   90 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 135 insertions(+), 5 deletions(-)

    
download this patch

Patch contents

Description: Improve myspell rules
Author: Jonas Smedegaard <dr@jones.dk>
Last-Update: 2010-03-10
--- a/Makefile
+++ b/Makefile
@@ -16,9 +16,10 @@
 
 words: words-$(language_code)
 
-words-$(language_code): words-$(language_code).sq unsq
+words-$(language_code): words-$(language_code).sq words-$(language_code).excluded.sq words-$(language_code).no-compound.sq unsq
 	./unsq < words-$(language_code).sq > words-$(language_code)
 	./unsq < words-$(language_code).excluded.sq > words-$(language_code).excluded
+	./unsq < words-$(language_code).no-compound.sq > words-$(language_code).no-compound
 
 aspell: words
 	$(MAKE) -C aspell all
@@ -55,7 +56,7 @@
 # Cleanup rules:
 
 clean:
-	rm -f words-$(language_code) words-$(language_code).excluded
+	rm -f words-$(language_code) words-$(language_code).excluded words-$(language_code).no-compound
 	$(MAKE) -C aspell clean
 	$(MAKE) -C new_aspell clean
 	$(MAKE) -C ispell clean
--- a/myspell/Makefile
+++ b/myspell/Makefile
@@ -16,12 +16,21 @@
 ../ispell/words-$(language_code).complete ../ispell/words-$(language_code).complete.cnt:
 	make -C ../ispell words-$(language_code).complete
 
-$(language_code)_$(country_code).dic: ../ispell/words-$(language_code).complete
-	cat ../ispell/words-$(language_code).complete.cnt ../ispell/words-$(language_code).complete > $(language_code)_$(country_code).dic
+words-$(language_code).complete: ../ispell/words-$(language_code).complete ../words-$(language_code).no-compound
+	sort -u ../ispell/words-$(language_code).complete \
+		| bash ../no-compound_marking ../words-$(language_code).no-compound \
+		| LC_COLLATE=POSIX sort -u \
+		> $@
+
+words-$(language_code).complete.cnt: words-$(language_code).complete
+	wc -l < $^ > $@
+
+$(language_code)_$(country_code).dic: words-$(language_code).complete.cnt words-$(language_code).complete
+	cat words-$(language_code).complete.cnt words-$(language_code).complete > $@
 
 install: $(language_code)_$(country_code).dic $(language_code)_$(country_code).aff
 	install -o root -g root -m 0644 $(language_code)_$(country_code).dic $(installdir)
 	install -o root -g root -m 0644 $(language_code)_$(country_code).aff $(installdir)
 
 clean:
-	rm -f $(language_code)_$(country_code).dic
+	rm -f words-$(language_code).complete.cnt words-$(language_code).complete $(language_code)_$(country_code).dic
--- /dev/null
+++ b/no-compound_marking
@@ -0,0 +1,30 @@
+#! /bin/bash
+#-----------------------------------------------------------------------------
+#--  No-compound list:
+
+if [ ! -e "$1" ]; then
+   touch "$1"
+fi
+
+#-----------------------------------------------------------------------------
+#--  Scan input:
+
+while read line; do
+   word=$(  echo "${line}" | cut -d/ -f1 )
+
+   if [ "$( echo "${line}" | tr -cd '/' )" = "/" ]; then
+      flags=$( echo "${line}" | cut -d/ -f2 | sed 's/m//g' )
+   else
+      flags=
+   fi
+
+   grep -q '^'"${word}"'$' "$1" 1>/dev/null || flags="${flags}m"
+
+   if [ -z "${flags}" ]; then
+      echo "${word}"
+   else
+      echo "${word}/${flags}"
+   fi
+done
+
+#-----------------------------------------------------------------------------
--- /dev/null
+++ b/words-da.no-compound.sq
@@ -0,0 +1,90 @@
+0A
+0a
+0B
+0b
+1egge
+0C
+0c
+0D
+0d
+1en
+3gang
+3ne
+2r
+1in
+2sse
+0E
+0e
+0É
+0é
+0F
+0f
+1lere
+0G
+0g
+0H
+0h
+1inanden
+1vad
+2em
+3randre
+2ilke
+6n
+3s
+0I
+0i
+0J
+0j
+1eres
+0K
+0k
+0L
+0l
+0M
+0m
+1ed
+1in
+2t
+0N
+0n
+0O
+0o
+0Ó
+0ó
+0P
+0p
+0Q
+0q
+0R
+0r
+0S
+0s
+1amme
+1ig
+2n
+3e
+2t
+1om
+0T
+0t
+0ude
+0V
+0v
+1ore
+4s
+0W
+0w
+0X
+0x
+0Y
+0y
+0Ü
+0ü
+0Z
+0z
+0Æ
+0æ
+0Ä
+0ä
+0Ö
+0ö