Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37697051
en ru br
Репозитории ALT

Группа :: Система/Библиотеки
Пакет: 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;
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin