+static Bool martin;
+static Bool popcorn;
+static Bool ejk1;
+static Bool ejk2;
+static Bool ejk3;
+static Bool ejk4;
+static Bool ejk5;
+static Bool ejk6;
+static Bool rr;
+static Bool jong;
+static Bool sine;
+
+static XrmOptionDescRec opts[] =
+{
+ {"-martin", ".hop.martin", XrmoptionNoArg, (caddr_t) "on"},
+ {"+martin", ".hop.martin", XrmoptionNoArg, (caddr_t) "off"},
+ {"-popcorn", ".hop.popcorn", XrmoptionNoArg, (caddr_t) "on"},
+ {"+popcorn", ".hop.popcorn", XrmoptionNoArg, (caddr_t) "off"},
+ {"-ejk1", ".hop.ejk1", XrmoptionNoArg, (caddr_t) "on"},
+ {"+ejk1", ".hop.ejk1", XrmoptionNoArg, (caddr_t) "off"},
+ {"-ejk2", ".hop.ejk2", XrmoptionNoArg, (caddr_t) "on"},
+ {"+ejk2", ".hop.ejk2", XrmoptionNoArg, (caddr_t) "off"},
+ {"-ejk3", ".hop.ejk3", XrmoptionNoArg, (caddr_t) "on"},
+ {"+ejk3", ".hop.ejk3", XrmoptionNoArg, (caddr_t) "off"},
+ {"-ejk4", ".hop.ejk4", XrmoptionNoArg, (caddr_t) "on"},
+ {"+ejk4", ".hop.ejk4", XrmoptionNoArg, (caddr_t) "off"},
+ {"-ejk5", ".hop.ejk5", XrmoptionNoArg, (caddr_t) "on"},
+ {"+ejk5", ".hop.ejk5", XrmoptionNoArg, (caddr_t) "off"},
+ {"-ejk6", ".hop.ejk6", XrmoptionNoArg, (caddr_t) "on"},
+ {"+ejk6", ".hop.ejk6", XrmoptionNoArg, (caddr_t) "off"},
+ {"-rr", ".hop.rr", XrmoptionNoArg, (caddr_t) "on"},
+ {"+rr", ".hop.rr", XrmoptionNoArg, (caddr_t) "off"},
+ {"-jong", ".hop.jong", XrmoptionNoArg, (caddr_t) "on"},
+ {"+jong", ".hop.jong", XrmoptionNoArg, (caddr_t) "off"},
+ {"-sine", ".hop.sine", XrmoptionNoArg, (caddr_t) "on"},
+ {"+sine", ".hop.sine", XrmoptionNoArg, (caddr_t) "off"}
+};
+static argtype vars[] =
+{
+ {(caddr_t *) & martin, "martin", "Martin", DEF_MARTIN, t_Bool},
+ {(caddr_t *) & popcorn, "popcorn", "Popcorn", DEF_POPCORN, t_Bool},
+ {(caddr_t *) & ejk1, "ejk1", "EJK1", DEF_EJK1, t_Bool},
+ {(caddr_t *) & ejk2, "ejk2", "EJK2", DEF_EJK2, t_Bool},
+ {(caddr_t *) & ejk3, "ejk3", "EJK3", DEF_EJK3, t_Bool},
+ {(caddr_t *) & ejk4, "ejk4", "EJK4", DEF_EJK4, t_Bool},
+ {(caddr_t *) & ejk5, "ejk5", "EJK5", DEF_EJK5, t_Bool},
+ {(caddr_t *) & ejk6, "ejk6", "EJK6", DEF_EJK6, t_Bool},
+ {(caddr_t *) & rr, "rr", "RR", DEF_RR, t_Bool},
+ {(caddr_t *) & jong, "jong", "Jong", DEF_JONG, t_Bool},
+ {(caddr_t *) & sine, "sine", "Sine", DEF_SINE, t_Bool}
+};
+static OptionStruct desc[] =
+{
+ {"-/+martin", "turn on/off sqrt format"},
+ {"-/+popcorn", "turn on/off Clifford A. Pickover's popcorn format"},
+ {"-/+ejk1", "turn on/off ejk1 format"},
+ {"-/+ejk2", "turn on/off ejk2 format"},
+ {"-/+ejk3", "turn on/off ejk3 format"},
+ {"-/+ejk4", "turn on/off ejk4 format"},
+ {"-/+ejk5", "turn on/off ejk5 format"},
+ {"-/+ejk6", "turn on/off ejk6 format"},
+ {"-/+rr", "turn on/off rr format"},
+ {"-/+jong", "turn on/off jong format"},
+ {"-/+sine", "turn on/off sine format"}
+};
+
+ModeSpecOpt hop_opts =
+{sizeof opts / sizeof opts[0], opts, sizeof vars / sizeof vars[0], vars, desc};
+
+#ifdef USE_MODULES
+ModStruct hop_description =
+{"hop", "init_hop", "draw_hop", "release_hop",
+ "refresh_hop", "init_hop", NULL, &hop_opts,
+ 10000, 1000, 2500, 1, 64, 1.0, "",
+ "Shows real plane iterated fractals", 0, NULL};
+
+#endif
+
+#define MARTIN 0
+#define POPCORN 7
+#define SINE 8
+#define EJK1 1
+#define EJK2 2
+#define EJK3 9
+#define EJK4 3
+#define EJK5 4
+#define EJK6 10
+#define RR 5
+#define JONG 6
+#ifdef OFFENDING
+#define OPS 8 /* 8, 9, 10 might be too close to a swastika for some... */
+#else
+#define OPS 11
+#endif