*** empty log message ***
[m17n/m17n-test.git] / viewfile.c
diff --git a/viewfile.c b/viewfile.c
new file mode 100644 (file)
index 0000000..bb9e54a
--- /dev/null
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <string.h>
+#include <gtk/gtk.h>
+
+static void
+destroy (GtkWidget *widget, gpointer data)
+{
+  gtk_main_quit ();
+}
+
+int
+main (int argc, char **argv)
+{
+  FILE *fp;
+  struct stat statbuf;
+  unsigned char *buf;
+  size_t nbytes;
+  GtkWidget *window, *view;
+  GtkTextBuffer *buffer;
+
+  if (argc < 2)
+    {
+      fprintf (stderr, "Usage: viewfile FILENAME\n");
+      exit (1);
+    }
+  if (stat (argv[1], &statbuf) != 0
+      || ! (fp = fopen (argv[1], "r")))
+    {
+      fprintf (stderr, "Can't open \"%s\"\n", argv[1]);
+      exit (1);
+    }
+  buf = alloca (statbuf.st_size);
+  fread (buf, 1, statbuf.st_size, fp);
+  fclose (fp);
+
+  gtk_init (&argc, &argv);
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL);
+  view = gtk_text_view_new ();
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
+  gtk_text_buffer_set_text (buffer, (gchar *) buf, statbuf.st_size);
+  gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE);
+  gtk_container_add (GTK_CONTAINER (window), view);
+  gtk_widget_show_all (window);
+  gtk_main ();
+
+  return 0;
+}