+#define DEF_MARTIN "False"
+#define DEF_POPCORN "False"
+#define DEF_EJK1 "False"
+#define DEF_EJK2 "False"
+#define DEF_EJK3 "False"
+#define DEF_EJK4 "False"
+#define DEF_EJK5 "False"
+#define DEF_EJK6 "False"
+#define DEF_RR "False"
+#define DEF_JONG "False"
+#define DEF_SINE "False"
+
+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, "on"},
+ {"+martin", ".hop.martin", XrmoptionNoArg, "off"},
+ {"-popcorn", ".hop.popcorn", XrmoptionNoArg, "on"},
+ {"+popcorn", ".hop.popcorn", XrmoptionNoArg, "off"},
+ {"-ejk1", ".hop.ejk1", XrmoptionNoArg, "on"},
+ {"+ejk1", ".hop.ejk1", XrmoptionNoArg, "off"},
+ {"-ejk2", ".hop.ejk2", XrmoptionNoArg, "on"},
+ {"+ejk2", ".hop.ejk2", XrmoptionNoArg, "off"},
+ {"-ejk3", ".hop.ejk3", XrmoptionNoArg, "on"},
+ {"+ejk3", ".hop.ejk3", XrmoptionNoArg, "off"},
+ {"-ejk4", ".hop.ejk4", XrmoptionNoArg, "on"},
+ {"+ejk4", ".hop.ejk4", XrmoptionNoArg, "off"},
+ {"-ejk5", ".hop.ejk5", XrmoptionNoArg, "on"},
+ {"+ejk5", ".hop.ejk5", XrmoptionNoArg, "off"},
+ {"-ejk6", ".hop.ejk6", XrmoptionNoArg, "on"},
+ {"+ejk6", ".hop.ejk6", XrmoptionNoArg, "off"},
+ {"-rr", ".hop.rr", XrmoptionNoArg, "on"},
+ {"+rr", ".hop.rr", XrmoptionNoArg, "off"},
+ {"-jong", ".hop.jong", XrmoptionNoArg, "on"},
+ {"+jong", ".hop.jong", XrmoptionNoArg, "off"},
+ {"-sine", ".hop.sine", XrmoptionNoArg, "on"},
+ {"+sine", ".hop.sine", XrmoptionNoArg, "off"}
+};
+static argtype vars[] =
+{
+ {&martin, "martin", "Martin", DEF_MARTIN, t_Bool},
+ {&popcorn, "popcorn", "Popcorn", DEF_POPCORN, t_Bool},
+ {&ejk1, "ejk1", "EJK1", DEF_EJK1, t_Bool},
+ {&ejk2, "ejk2", "EJK2", DEF_EJK2, t_Bool},
+ {&ejk3, "ejk3", "EJK3", DEF_EJK3, t_Bool},
+ {&ejk4, "ejk4", "EJK4", DEF_EJK4, t_Bool},
+ {&ejk5, "ejk5", "EJK5", DEF_EJK5, t_Bool},
+ {&ejk6, "ejk6", "EJK6", DEF_EJK6, t_Bool},
+ {&rr, "rr", "RR", DEF_RR, t_Bool},
+ {&jong, "jong", "Jong", DEF_JONG, t_Bool},
+ {&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"}
+};
+
+ENTRYPOINT 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", (char *) 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