diff Wnn/jutil/wnntouch.c @ 0:bbc77ca4def5

initial import
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Thu, 13 Dec 2007 04:30:14 +0900
parents
children a7ccf412ba02
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Wnn/jutil/wnntouch.c	Thu Dec 13 04:30:14 2007 +0900
@@ -0,0 +1,122 @@
+/*
+ *  $Id: wnntouch.c,v 1.8 2004/07/19 18:24:26 hiroo Exp $
+ */
+
+/*
+ * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
+ * This file is part of FreeWnn.
+ * 
+ * Copyright Kyoto University Research Institute for Mathematical Sciences
+ *                 1987, 1988, 1989, 1990, 1991, 1992
+ * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
+ * Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992
+ * Copyright FreeWnn Project 1999, 2000, 2002, 2004
+ *
+ * Maintainer:  FreeWnn Project   <freewnn@tomo.gr.jp>
+ *
+ * This program 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 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/*
+ * 辞書のヘッダを書き換えて、辞書の inode と合わせるプログラム。
+ */
+
+#ifndef lint
+static char *rcs_id = "$Id: wnntouch.c,v 1.8 2004/07/19 18:24:26 hiroo Exp $";
+#endif /* lint */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <stdio.h>
+#if STDC_HEADERS
+#  include <stdlib.h>
+#endif /* STDC_HEADERS */
+#if HAVE_UNISTD_H
+#  include <unistd.h>
+#endif
+#include "jslib.h"
+#include "commonhd.h"
+#include "getopt.h"	/* GNU getopt in the stock */
+
+extern int input_file_header (), check_inode (), change_file_uniq ();
+static void usage (void);
+
+char *com_name;
+struct wnn_file_head fh;
+
+static void
+parse_options (int argc, char** argv)
+{
+  int c;
+
+  while ((c = getopt (argc, argv, "")) != EOF)
+    {
+    }
+  if (optind)
+    {
+      optind--;
+      argc -= optind;
+      argv += optind;
+    }
+  if (argc < 2)
+    {
+      usage ();
+    }
+}
+
+static void
+usage (void)
+{
+  fprintf (stderr, "Usage: %s Wnn_file_name* \n", com_name);
+  exit (1);
+}
+
+int
+main (int argc, char** argv)
+{
+  FILE *ifpter;
+  int k;
+
+  com_name = argv[0];
+  parse_options (argc, argv);
+
+  for (k = 1; k < argc; k++)
+    {
+      if ((ifpter = fopen (argv[k], "r")) == NULL)
+        {
+          fprintf (stderr, "Can't open the input file %s.\n", argv[k]);
+          perror ("");
+          exit (1);
+        }
+      if (input_file_header (ifpter, &fh) == -1)
+        {
+          fprintf (stderr, "%s %s: It's not a Wnn File.\n", com_name, argv[k]);
+          exit (1);
+        }
+      if (check_inode (ifpter, &fh) == -1)
+        {
+          if (change_file_uniq (&fh, argv[k]) == -1)
+            {
+              fprintf (stderr, "%s %s: Can't change file_uniq.\n", com_name, argv[k]);
+              perror ("");
+              exit (1);
+            }
+        }
+      fclose (ifpter);
+    }
+  exit (0);
+}