+{
+ if (argc >= 2)
+ {
+ Puzzle p;
+ switch (argc)
+ {
+ case 2 : p = load_puzzle (argv[1]);
+ puzzle_editor_loop (&p, argv[1]);
+ break;
+ case 4 : if (strcmp (argv[2], "new") == 0)
+ {
+ int grid_size = atoi (argv[3]);
+ init_puzzle (&p, grid_size);
+ puzzle_editor_loop (&p, argv[1]);
+ break;
+ }
+ default: fprintf (stderr, USAGE_LINE_1, argv[0]);
+ fprintf (stderr, USAGE_LINE_2);
+ fprintf (stderr, USAGE_LINE_3);
+ exit (3);
+ }
+ }