diff options
Diffstat (limited to 'testing/source/vtown/input-methods/skkdic/unannotation.awk')
-rw-r--r-- | testing/source/vtown/input-methods/skkdic/unannotation.awk | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/testing/source/vtown/input-methods/skkdic/unannotation.awk b/testing/source/vtown/input-methods/skkdic/unannotation.awk new file mode 100644 index 00000000..22166064 --- /dev/null +++ b/testing/source/vtown/input-methods/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. |