summaryrefslogtreecommitdiff
path: root/packaging/iso_3166.sed
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/iso_3166.sed')
-rw-r--r--packaging/iso_3166.sed31
1 files changed, 31 insertions, 0 deletions
diff --git a/packaging/iso_3166.sed b/packaging/iso_3166.sed
new file mode 100644
index 0000000..705dbdb
--- /dev/null
+++ b/packaging/iso_3166.sed
@@ -0,0 +1,31 @@
+1,/<iso_3166_entries/b
+
+# on each new iso-code process the current one
+\!\(<iso_3166_entry\|</iso_3166_entries>\)!{
+ x
+ s/^$//
+ # we are on the first iso-code--nothing to process here
+ t
+ # process and write to output
+ s/\s\+/ /g
+ s/<iso_3166_entry//
+ s!/\s*>!!
+ # use '%' as a separator of parsed and unparsed input
+ s/\(.*\)alpha_2_code="\([^"]\+\)"\(.*\)/\2 % \1 \3/
+ s/\([^%]\+\)%\(.*\)alpha_3_code="\([^"]\+\)"\(.*\)/\1% \2 \4/
+ # clear subst. memory for the next t
+ t clear
+ :clear
+ s/\([^%]\+\)%\(.*\)numeric_code="\([^"]\+\)"\(.*\)/\1% \2 \4/
+ t name
+ # no 3166 code--write xx
+ s/%/\tXX %/
+ :name
+ s/\([^%]\+\)%\(.*\)name="\([^"]\+\)"\(.*\)/\1\t\3/
+ s/ \t/\t/g
+ p
+ b
+ :noout
+}
+
+H