X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fnoseguy.c;h=205d273f234088c0d966310fdb919bd0507fc9c8;hp=4b25990848fb8caf1eab33e20c8dc359e158be33;hb=447db08c956099b3b183886729108bf5b364c4b8;hpb=2d04c4f22466851aedb6ed0f2919d148f726b889 diff --git a/hacks/noseguy.c b/hacks/noseguy.c index 4b259908..205d273f 100644 --- a/hacks/noseguy.c +++ b/hacks/noseguy.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992, 1996, 1997, 1998 +/* xscreensaver, Copyright (c) 1992, 1996, 1997, 1998, 2005 * Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its @@ -33,7 +33,6 @@ static char *words; static char *get_words (void); static int x, y; static XFontStruct *font; -static char *def_words = "I'm out running around."; static void walk (int dir); static void talk (int erase); static void talk_1 (void); @@ -49,7 +48,6 @@ static char *program, *orig_program, *filename, *text; #define FROM_PROGRAM 2 #define FROM_FILE 3 #define FROM_RESRC 4 -static int getwordsfrom; #define IS_MOVING 1 #define GET_PASSWD 2 @@ -288,9 +286,8 @@ think (void) walk(FRONT); if (random() & 1) { - if (getwordsfrom == FROM_PROGRAM) - words = get_words(); - return 1; + words = get_words(); + return 1; } return 0; } @@ -347,6 +344,9 @@ talk(int force_erase) walk(FRONT); p = strcpy(buf, words); + for (p2 = p; *p2; p2++) + if (*p2 == '\t') *p2 = ' '; + if (!(p2 = strchr(p, '\n')) || !p2[1]) { total = strlen (words); @@ -452,8 +452,6 @@ look (void) static void init_words (void) { - char *mode = get_string_resource ("mode", "Mode"); - program = get_string_resource ("program", "Program"); filename = get_string_resource ("filename", "Filename"); text = get_string_resource ("text", "Text"); @@ -467,31 +465,6 @@ init_words (void) strcat (program, " ) 2>&1"); } - if (!mode || !strcmp (mode, "program")) - getwordsfrom = FROM_PROGRAM; - else if (!strcmp (mode, "file")) - getwordsfrom = FROM_FILE; - else if (!strcmp (mode, "string")) - getwordsfrom = FROM_RESRC; - else - { - fprintf (stderr, - "%s: mode must be program, file, or string, not %s\n", - progname, mode); - exit (1); - } - - if (getwordsfrom == FROM_PROGRAM && !program) - { - fprintf (stderr, "%s: no program specified.\n", progname); - exit (1); - } - if (getwordsfrom == FROM_FILE && !filename) - { - fprintf (stderr, "%s: no file specified.\n", progname); - exit (1); - } - words = get_words(); } @@ -506,10 +479,6 @@ get_words (void) buf[0] = '\0'; - switch (getwordsfrom) - { - case FROM_PROGRAM: -#ifndef VMS if ((pp = popen(program, "r"))) { while (fgets(p, sizeof(buf) - strlen(buf), pp)) @@ -551,41 +520,8 @@ get_words (void) else { perror(program); - p = def_words; - } - break; -#endif /* VMS */ - case FROM_FILE: - if ((pp = fopen(filename, "r"))) - { - while (fgets(p, sizeof(buf) - strlen(buf), pp)) - { - if (strlen(buf) + 1 < sizeof(buf)) - p = buf + strlen(buf); - else - break; - } - (void) fclose(pp); - if (! buf[0]) - sprintf (buf, "file \"%s\" is empty!", filename); - p = buf; - } - else - { - sprintf (buf, "couldn't read file \"%s\"!", filename); - p = buf; } - break; - case FROM_RESRC: - p = text; - break; - default: - p = def_words; - break; - } - if (!p || *p == '\0') - p = def_words; return p; } @@ -594,15 +530,10 @@ get_words (void) char *progclass = "Noseguy"; char *defaults [] = { - ".background: black", - ".foreground: gray80", -#ifndef VMS - "*mode: program", -#else - "*mode: string", -#endif - "*program: " FORTUNE_PROGRAM, - "noseguy.font: -*-new century schoolbook-*-r-*-*-*-180-*-*-*-*-*-*", + ".background: black", + ".foreground: gray80", + "*program: xscreensaver-text --cols 40 | head -15", + "noseguy.font: -*-new century schoolbook-*-r-*-*-*-180-*-*-*-*-*-*", 0 };