1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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.
|