+static int do_cut (sn_network_t *n, int defs_num, char **defs)
+{
+ int mask[SN_NETWORK_INPUT_NUM (n)];
+ int status;
+ int i;
+
+ memset (mask, 0, sizeof (mask));
+ for (i = 0; i < defs_num; i++)
+ {
+ char *endptr = NULL;
+ int pos;
+ int val = 1;
+
+ pos = (int) strtol (defs[i], &endptr, /* base = */ 0);
+ if (strcasecmp (":min", endptr) == 0)
+ val = -1;
+
+ if ((pos < 0) || (pos >= SN_NETWORK_INPUT_NUM (n)))
+ {
+ fprintf (stderr, "Invalid line number: %i\n", pos);
+ return (-1);
+ }
+
+ mask[pos] = val;
+ }
+
+ status = sn_network_cut (n, mask);
+ if (status != 0)
+ {
+ fprintf (stderr, "sn_network_cut failed with status %i.\n", status);
+ return (-1);
+ }
+
+ return (0);
+} /* }}} int do_cut */
+