src/sn_normalize.c: Add a program to normalize sort networks.
[sort-networks.git] / src / sn-normalize.c
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <string.h>
4
5 #include "sn_network.h"
6
7 void exit_usage (const char *name)
8 {
9   printf ("%s [file]\n", name);
10   exit (1);
11 }
12
13 int main (int argc, char **argv)
14 {
15   sn_network_t *n;
16
17   if (argc > 2)
18   {
19     exit_usage (argv[0]);
20   }
21   else if (argc == 2)
22   {
23     if ((strcmp ("-h", argv[1]) == 0)
24         || (strcmp ("--help", argv[1]) == 0)
25         || (strcmp ("-help", argv[1]) == 0))
26       exit_usage (argv[0]);
27
28     n = sn_network_read_file (argv[1]);
29   }
30   else
31   {
32     n = sn_network_read (stdin);
33   }
34
35   if (n == NULL)
36   {
37     printf ("n == NULL!\n");
38     return (1);
39   }
40
41   sn_network_normalize (n);
42   sn_network_compress (n);
43
44   sn_network_write (n, stdout);
45
46   return (0);
47 } /* int main */
48
49 /* vim: set shiftwidth=2 softtabstop=2 : */