diff options
| author | Andreas Mair <amair.sob@googlemail.com> | 2011-03-05 11:52:09 +0100 |
|---|---|---|
| committer | Andreas Mair <amair.sob@googlemail.com> | 2011-03-05 11:52:09 +0100 |
| commit | ac3ca809d23b4ac399d3f2f96d88314e7e24aa7a (patch) | |
| tree | 6ab6c163e178d57d247d7c1525b659bc3f7d6f88 | |
| parent | 3a4e225a07c8cf43b82b468938a9dba60942d85d (diff) | |
| download | vdr-plugin-skinenigmang-ac3ca809d23b4ac399d3f2f96d88314e7e24aa7a.tar.gz vdr-plugin-skinenigmang-ac3ca809d23b4ac399d3f2f96d88314e7e24aa7a.tar.bz2 | |
Use access() instead if lstat() to check if logo is readable.
| -rw-r--r-- | logo.c | 24 |
1 files changed, 14 insertions, 10 deletions
@@ -207,25 +207,29 @@ bool cEnigmaLogoCache::LoadXpm(const char *fileNameP, int w, int h) if (fileNameP == NULL) return false; - struct stat stbuf; cBitmap *bmp = new cBitmap(1, 1, 1); // create absolute filename debug("cPluginSkinEnigma::LoadXpm(%s)", fileNameP); // check validity - if ((lstat(fileNameP, &stbuf) == 0) && bmp->LoadXpm(fileNameP)) { - if ((bmp->Width() <= w) && (bmp->Height() <= h)) { - debug("cPluginSkinEnigma::LoadXpm(%s) LOGO FOUND", fileNameP); - // assign bitmap - bitmapM = bmp; - return true; + if (access(fileNameP, R_OK) == 0) { + if (bmp->LoadXpm(fileNameP)) { + if ((bmp->Width() <= w) && (bmp->Height() <= h)) { + debug("cPluginSkinEnigma::LoadXpm(%s) LOGO FOUND", fileNameP); + // assign bitmap + bitmapM = bmp; + return true; + } else { + // wrong size + error("cPluginSkinEnigma::LoadXpm(%s) LOGO HAS WRONG SIZE %d/%d (%d/%d)", fileNameP, bmp->Width(), bmp->Height(), w, h); + } } else { - // wrong size - error("cPluginSkinEnigma::LoadXpm(%s) LOGO HAS WRONG SIZE %d/%d (%d/%d)", fileNameP, bmp->Width(), bmp->Height(), w, h); + // bmp->LoadXpm() failed + error("cPluginSkinEnigma::LoadXpm(%s) VDR can't load logo", fileNameP); } } else { // no xpm logo found - error("cPluginSkinEnigma::LoadXpm(%s) LOGO NOT FOUND", fileNameP); + error("cPluginSkinEnigma::LoadXpm(%s) LOGO NOT FOUND/READABLE (%m)", fileNameP); } delete bmp; |
