if (*desc && isdigit((unsigned char)*desc)) {
do {
p = desc;
- while (desc && isdigit((unsigned char)*desc)) desc++;
+ while (*desc && isdigit((unsigned char)*desc)) desc++;
n = atoi(p);
rowspace -= n+1;
if (*desc && isdigit((unsigned char)*desc)) {
do {
p = desc;
- while (desc && isdigit((unsigned char)*desc)) desc++;
+ while (*desc && isdigit((unsigned char)*desc)) desc++;
state->rowdata[state->rowsize * i + state->rowlen[i]++] =
atoi(p);
} while (*desc++ == '.');
ui->drag = LEFT_DRAG;
ui->release = LEFT_RELEASE;
#ifdef STYLUS_BASED
- ui->state = currstate == GRID_FULL ? GRID_UNKNOWN : GRID_FULL;
+ ui->state = (currstate + 2) % 3; /* FULL -> EMPTY -> UNKNOWN */
#else
ui->state = GRID_FULL;
#endif
ui->drag = RIGHT_DRAG;
ui->release = RIGHT_RELEASE;
#ifdef STYLUS_BASED
- ui->state = currstate == GRID_EMPTY ? GRID_UNKNOWN : GRID_EMPTY;
+ ui->state = (currstate + 1) % 3; /* EMPTY -> FULL -> UNKNOWN */
#else
ui->state = GRID_EMPTY;
#endif
ds->visible = snewn(ds->w * ds->h, unsigned char);
ds->tilesize = 0; /* not decided yet */
memset(ds->visible, 255, ds->w * ds->h);
+ ds->cur_x = ds->cur_y = 0;
return ds;
}