src/sn_normalize.c: Add a program to normalize sort networks.
authorFlorian Forster <octo@leeloo.home.verplant.org>
Wed, 7 May 2008 15:03:42 +0000 (17:03 +0200)
committerFlorian Forster <octo@leeloo.home.verplant.org>
Wed, 7 May 2008 15:03:42 +0000 (17:03 +0200)
src/sn-normalize.c [new file with mode: 0644]

diff --git a/src/sn-normalize.c b/src/sn-normalize.c
new file mode 100644 (file)
index 0000000..320555f
--- /dev/null
@@ -0,0 +1,49 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "sn_network.h"
+
+void exit_usage (const char *name)
+{
+  printf ("%s [file]\n", name);
+  exit (1);
+}
+
+int main (int argc, char **argv)
+{
+  sn_network_t *n;
+
+  if (argc > 2)
+  {
+    exit_usage (argv[0]);
+  }
+  else if (argc == 2)
+  {
+    if ((strcmp ("-h", argv[1]) == 0)
+       || (strcmp ("--help", argv[1]) == 0)
+       || (strcmp ("-help", argv[1]) == 0))
+      exit_usage (argv[0]);
+
+    n = sn_network_read_file (argv[1]);
+  }
+  else
+  {
+    n = sn_network_read (stdin);
+  }
+
+  if (n == NULL)
+  {
+    printf ("n == NULL!\n");
+    return (1);
+  }
+
+  sn_network_normalize (n);
+  sn_network_compress (n);
+
+  sn_network_write (n, stdout);
+
+  return (0);
+} /* int main */
+
+/* vim: set shiftwidth=2 softtabstop=2 : */