X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fphosphor.c;h=8ba63dd28390b4f467474981837dcf5d06c8f5f7;hb=96a411663168b0ba5432b407a83be55f3df0c802;hp=105f9b5bcf7f0146d983c6e26b9d581bc933018f;hpb=df7adbee81405e2849728a24b498ad2117784b1f;p=xscreensaver diff --git a/hacks/phosphor.c b/hacks/phosphor.c index 105f9b5b..8ba63dd2 100644 --- a/hacks/phosphor.c +++ b/hacks/phosphor.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1999 Jamie Zawinski +/* xscreensaver, Copyright (c) 1999, 2000 Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -300,7 +300,7 @@ capture_font_bits (p_state *state) continue; XDrawString (state->dpy, p, state->gc1, i * safe_width, font->ascent, - string + i, 1); + (char *) (string + i), 1); } /* Draw the cursor. */ @@ -450,7 +450,6 @@ static void set_cursor (p_state *state, Bool on) { if (set_cursor_1 (state, on)) -; { if (state->cursor_timer) XtRemoveTimeOut (state->cursor_timer); @@ -529,6 +528,7 @@ static void scroll (p_state *state) { int x, y; + for (x = 0; x < state->grid_width; x++) { p_cell *from = 0, *to = 0; @@ -553,7 +553,7 @@ scroll (p_state *state) } to = from; - if (to->state == FLARE || to->state == NORMAL) + if (to && (to->state == FLARE || to->state == NORMAL)) { to->state = FADE; to->changed = True; @@ -566,6 +566,8 @@ scroll (p_state *state) static void print_char (p_state *state, int c) { + static char last_c = 0; + p_cell *cell = &state->cells[state->grid_width * state->cursor_y + state->cursor_x]; @@ -580,11 +582,16 @@ print_char (p_state *state, int c) if (c == '\r' || c == '\n') { - state->cursor_x = 0; - if (state->cursor_y == state->grid_height - 1) - scroll (state); + if (c == '\n' && last_c == '\r') + ; /* CRLF -- do nothing */ else - state->cursor_y++; + { + state->cursor_x = 0; + if (state->cursor_y == state->grid_height - 1) + scroll (state); + else + state->cursor_y++; + } } else if (c == '\014') { @@ -610,6 +617,8 @@ print_char (p_state *state, int c) } } set_cursor (state, True); + + last_c = c; } @@ -769,7 +778,7 @@ char *defaults [] = { "*ticks: 20", "*delay: 50000", "*cursor: 333", - "*program: " ZIPPY_PROGRAM, + "*program: " FORTUNE_PROGRAM, "*relaunch: 5", 0 };