summaryrefslogtreecommitdiff
path: root/source/x/skkdic/unannotation.awk
diff options
context:
space:
mode:
Diffstat (limited to 'source/x/skkdic/unannotation.awk')
-rw-r--r--source/x/skkdic/unannotation.awk75
1 files changed, 75 insertions, 0 deletions
diff --git a/source/x/skkdic/unannotation.awk b/source/x/skkdic/unannotation.awk
new file mode 100644
index 00000000..22166064
--- /dev/null
+++ b/source/x/skkdic/unannotation.awk
@@ -0,0 +1,75 @@
+# unannotation.awk: filter to remove annotations in dictionaries.
+#
+# Copyright (C) 2001, 2002 SKK Development Team <skk@ring.gr.jp>
+#
+# Maintainer: SKK Development Team <skk@ring.gr.jp>
+# Version: $Id: unannotation.awk,v 1.3 2006/01/04 10:35:06 skk-cvs Exp $
+# Last Modified: $Date: 2006/01/04 10:35:06 $
+#
+# This file is part of Daredevil SKK.
+#
+# Daredevil SKK is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2, or
+# (at your option) any later version.
+#
+# Daredevil SKK is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Daredevil SKK, see the file COPYING. If not, write to
+# the Free Software Foundation Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+BEGIN{
+ print ";; -*- text -*-";
+ ctime = myctime(0);
+ this = ARGV[1];
+ if (match(this, "\.annotated$") != 0){
+ this = substr(this, 1, RSTART - 1);
+ } else
+ this = this ".unannotated";
+ printf(";; %s was generated automatically by unannotation.awk at %s\n",
+ this, ctime);
+ #getline modeindicator
+ #if (match(modeindicator, /;; -*- text -*-/) != 0){
+ # print modeindicator;
+ #}
+}
+#$0 !~ /"^;; -\*- text -\*-\n"/{
+{
+ if (match($0, /^;/) == 0) {
+ gsub(";[^/]*/", "/");
+ if (DEQUOTE && $0 ~ /\\073/) {
+ $0 = dequote($0);
+ }
+ }
+ print;
+}
+function myctime(ts, format) {
+ format = "%a %b %e %H:%M:%S %Y";
+ if (ts == 0)
+ ts = systime(); # use current time as default
+ return strftime(format, ts);
+}
+# convert '\073' to ';' and strip '(concat "...")'.
+# example: 'smile /(concat "^_^\073\073")/:-)/' to 'smile /^_^;;/:-)/'
+# @param s string to convert
+# @return converted string
+function dequote(s) {
+ ret = "";
+ n = split(s, a, "/");
+ for (i = 1; i < n; i++) {
+ if (a[i] ~ /^\(concat ".*\\073.*"\)$/) { # \073 = ';'
+ gsub(/\\073/, ";", a[i]);
+ if (a[i] !~ /\\/) { # no other quote
+ a[i] = gensub(/^\(concat "(.*)"\)$/, "\\1", "g", a[i]);
+ }
+ }
+ ret = ret a[i] "/";
+ }
+ return ret;
+}
+# end of unannotation.awk.