ftp://ftp.krokus.ru/pub/OpenBSD/distfiles/xscreensaver-5.01.tar.gz
[xscreensaver] / hacks / slidescreen.c
index fe4d24aef62dbc3902ed9cc32bebf8dc1d4f272e..42d3fefca029a6b10a03d81b640f7f334f942f90 100644 (file)
@@ -326,7 +326,8 @@ slidescreen_draw (Display *dpy, Window window, void *closure)
      /* alternate between horizontal and vertical slides */
      /* note that draw_dir specifies the direction the _hole_ moves, not the tiles */
      if (st->draw_last == VERTICAL) {
-       if ((st->draw_rnd = random () % (st->grid_w - 1)) < st->hole_x) {
+       if (((st->grid_w > 1) ? st->draw_rnd = random () % (st->grid_w - 1) : 0)
+          < st->hole_x) {
          st->draw_dx = -1; st->draw_dir = LEFT;  st->hole_x -= st->draw_rnd;
        } else {
          st->draw_dx =  1; st->draw_dir = RIGHT; st->draw_rnd -= st->hole_x;
@@ -334,7 +335,8 @@ slidescreen_draw (Display *dpy, Window window, void *closure)
        st->draw_dy = 0; st->draw_w = st->draw_size = st->draw_rnd + 1; st->draw_h = 1;
        st->draw_last = HORIZONTAL;
      } else {
-       if ((st->draw_rnd = random () % (st->grid_h - 1)) < st->hole_y) {
+       if (((st->grid_h > 1) ? st->draw_rnd = random () % (st->grid_h - 1) : 0)
+          < st->hole_y) {
          st->draw_dy = -1; st->draw_dir = UP;    st->hole_y -= st->draw_rnd;
        } else {
          st->draw_dy =  1; st->draw_dir = DOWN;  st->draw_rnd -= st->hole_y;