static int alignment;
static XrmOptionDescRec opts[] = {
- {"-program", ".starwars.program", XrmoptionSepArg, (caddr_t) 0 },
- {"-lines", ".starwars.lines", XrmoptionSepArg, (caddr_t) 0 },
- {"-steps", ".starwars.steps", XrmoptionSepArg, (caddr_t) 0 },
- {"-spin", ".starwars.spin", XrmoptionSepArg, (caddr_t) 0 },
- {"-size", ".starwars.fontSize", XrmoptionSepArg, (caddr_t) 0 },
- {"-columns", ".starwars.columns", XrmoptionSepArg, (caddr_t) 0 },
- {"-smooth", ".starwars.smooth", XrmoptionNoArg, (caddr_t) "True" },
- {"-no-smooth", ".starwars.smooth", XrmoptionNoArg, (caddr_t) "False" },
- {"-thick", ".starwars.thick", XrmoptionNoArg, (caddr_t) "True" },
- {"-no-thick", ".starwars.thick", XrmoptionNoArg, (caddr_t) "False" },
- {"-fade", ".starwars.fade", XrmoptionNoArg, (caddr_t) "True" },
- {"-no-fade", ".starwars.fade", XrmoptionNoArg, (caddr_t) "False" },
- {"-wrap", ".starwars.lineWrap", XrmoptionNoArg, (caddr_t) "True" },
- {"-no-wrap", ".starwars.lineWrap", XrmoptionNoArg, (caddr_t) "False" },
- {"-nowrap", ".starwars.lineWrap", XrmoptionNoArg, (caddr_t) "False" },
- {"-left", ".starwars.alignment",XrmoptionNoArg, (caddr_t) "Left" },
- {"-right", ".starwars.alignment",XrmoptionNoArg, (caddr_t) "Right" },
- {"-center", ".starwars.alignment",XrmoptionNoArg, (caddr_t) "Center" },
+ {"-program", ".starwars.program", XrmoptionSepArg, 0 },
+ {"-lines", ".starwars.lines", XrmoptionSepArg, 0 },
+ {"-steps", ".starwars.steps", XrmoptionSepArg, 0 },
+ {"-spin", ".starwars.spin", XrmoptionSepArg, 0 },
+ {"-size", ".starwars.fontSize", XrmoptionSepArg, 0 },
+ {"-columns", ".starwars.columns", XrmoptionSepArg, 0 },
+ {"-smooth", ".starwars.smooth", XrmoptionNoArg, "True" },
+ {"-no-smooth", ".starwars.smooth", XrmoptionNoArg, "False" },
+ {"-thick", ".starwars.thick", XrmoptionNoArg, "True" },
+ {"-no-thick", ".starwars.thick", XrmoptionNoArg, "False" },
+ {"-fade", ".starwars.fade", XrmoptionNoArg, "True" },
+ {"-no-fade", ".starwars.fade", XrmoptionNoArg, "False" },
+ {"-wrap", ".starwars.lineWrap", XrmoptionNoArg, "True" },
+ {"-no-wrap", ".starwars.lineWrap", XrmoptionNoArg, "False" },
+ {"-nowrap", ".starwars.lineWrap", XrmoptionNoArg, "False" },
+ {"-left", ".starwars.alignment",XrmoptionNoArg, "Left" },
+ {"-right", ".starwars.alignment",XrmoptionNoArg, "Right" },
+ {"-center", ".starwars.alignment",XrmoptionNoArg, "Center" },
};
static argtype vars[] = {
}
+/* The GLUT font only has ASCII characters in them, so do what we can to
+ convert Latin1 characters to the nearest ASCII equivalent...
+ */
+static void
+latin1_to_ascii (char *s)
+{
+ unsigned char *us = (unsigned char *) s;
+ const unsigned char ascii[95] = {
+ '!', 'C', '#', '#', 'Y', '|', 'S', '_', 'C', '?', '<', '=', '-', 'R', '_',
+ '?', '?', '2', '3', '\'','u', 'P', '.', ',', '1', 'o', '>', '?', '?', '?',
+ '?', 'A', 'A', 'A', 'A', 'A', 'A', 'E', 'C', 'E', 'E', 'E', 'E', 'I', 'I',
+ 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'x', '0', 'U', 'U', 'U', 'U',
+ 'Y', 'p', 'S', 'a', 'a', 'a', 'a', 'a', 'a', 'e', 'c', 'e', 'e', 'e', 'e',
+ 'i', 'i', 'i', 'i', 'o', 'n', 'o', 'o', 'o', 'o', 'o', '/', 'o', 'u', 'u',
+ 'u', 'u', 'y', 'p', 'y' };
+ while (*us)
+ {
+ if (*us >= 161)
+ *us = ascii[*us - 161];
+ else if (*us > 127)
+ *us = '?';
+ us++;
+ }
+}
+
\f
/* Subprocess.
(This bit mostly cribbed from phosphor.c)
sc->lines[sc->total_lines] = (char *) malloc (L+1);
memcpy (sc->lines[sc->total_lines], sc->buf, L);
sc->lines[sc->total_lines][L] = 0;
+ latin1_to_ascii (sc->lines[sc->total_lines]);
{
char *t = sc->lines[sc->total_lines];