Группа :: Система/Библиотеки
Пакет: libst2205
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: st2205tool-1.4.3-no-exit.patch
Скачать
Скачать
diff -up st2205tool/libst2205/st2205.c~ st2205tool/libst2205/st2205.c
--- st2205tool/libst2205/st2205.c~ 2009-01-28 22:34:09.000000000 +0100
+++ st2205tool/libst2205/st2205.c 2011-02-20 10:04:21.926572083 +0100
@@ -355,11 +355,6 @@ static void pcf8833_send_partial(st2205_
p = adddata(h->buff, p, (tr)&0xff);
x++; //because we handle 2 pixels at a time
break;
- default:
- fprintf(stderr, "libst2205: Unknown bpp for this display: %i\n", h->bpp);
- //TODO: do not exit here, library should just send error to app
- exit(1);
- break;
}
}
}
@@ -497,6 +492,7 @@ st2205_handle *st2205_open(const char *d
fprintf(stderr, "Unknown version %hhi\n", b->version);
close(fd);
free_aligned(buff, BUFF_SIZE);
+ free(r);
return NULL;
}
@@ -509,7 +505,21 @@ st2205_handle *st2205_open(const char *d
r->oldpix = NULL;
r->offx = b->offx;
r->offy = b->offy;
-
+
+ /* Verify bpp */
+ switch (r->bpp) {
+ case 24:
+ case 16:
+ case 12:
+ break;
+ default:
+ fprintf(stderr, "libst2205: Unknown bpp for this display: %i\n", r->bpp);
+ close(fd);
+ free_aligned(buff, BUFF_SIZE);
+ free(r);
+ return NULL;
+ }
+
DPRINT("libst2205: detected device, %ix%i, %i bpp.\n", r->width, r->height, r->bpp);
return r;