summaryrefslogtreecommitdiff
path: root/helpers.c
diff options
context:
space:
mode:
authoranbr <vdr07@deltab.de>2010-12-21 20:57:28 +0100
committeranbr <vdr07@deltab.de>2010-12-21 20:57:28 +0100
commit3837f9ab492bcb791d278908cc2e7e4dc9a12217 (patch)
tree106f1089da730c02a8c5f27e1b21f9767fc3d66a /helpers.c
parent2906f2d1b7e1c5931b3d05156569d6061eb6b9b5 (diff)
downloadvdr-plugin-dvdswitch-0.1.5.tar.gz
vdr-plugin-dvdswitch-0.1.5.tar.bz2
release 0.1.5 from http://www.vdr-portal.de/board/thread.php?postid=845575#post8455750.1.5
Diffstat (limited to 'helpers.c')
-rw-r--r--helpers.c44
1 files changed, 25 insertions, 19 deletions
diff --git a/helpers.c b/helpers.c
index fbd7c4f..59850fc 100644
--- a/helpers.c
+++ b/helpers.c
@@ -424,10 +424,14 @@ cFileListItem::cFileListItem(const char *dir, const char *file)
{
if(file && !isempty(file) && dir && !isempty(dir))
{
- if(dir[strlen(dir) - 1] == '/')
- asprintf(&File, "%s%s", dir, file);
- else
- asprintf(&File, "%s/%s", dir, file);
+ if(dir[strlen(dir) - 1] == '/') {
+ if(0 >= asprintf(&File, "%s%s", dir, file))
+ return;
+ }
+ else {
+ if(0 >= asprintf(&File, "%s/%s", dir, file))
+ return;
+ }
}
else
File = NULL;
@@ -514,9 +518,10 @@ bool cFileList::Read(const char *dir, bool withsub)
CheckType(dir, DirData->d_name, tDir) &&
!RegIMatch(DirData->d_name, "^\\.{1,2}$"))
{
- asprintf(&buffer, "%s/%s", dir, DirData->d_name);
- Read(buffer, withsub);
- FREENULL(buffer);
+ if(0 < asprintf(&buffer, "%s/%s", dir, DirData->d_name)) {
+ Read(buffer, withsub);
+ FREENULL(buffer);
+ }
}
}
ret = true;
@@ -541,7 +546,8 @@ void cFileList::SortIn(const char *dir, const char *file)
case sDesc:
if(Item)
{
- asprintf(&NewItem, "%s/%s", dir, file);
+ if(0 >= asprintf(&NewItem, "%s/%s", dir, file))
+ break;
NewItemInfo = SortToFilename ? new cFileInfo(NewItem) : NULL;
while(Item)
{
@@ -618,15 +624,14 @@ bool cFileList::CheckType(const char *dir, const char *file, eFileInfo type)
char *buffer = NULL;
- asprintf(&buffer, "%s/%s", dir, file);
-
- cFileInfo *info = new cFileInfo(buffer);
- if(info->Type() == type)
- ret = true;
- delete(info);
-
- free(buffer);
+ if(0 < asprintf(&buffer, "%s/%s", dir, file)) {
+ cFileInfo *info = new cFileInfo(buffer);
+ if(info->Type() == type)
+ ret = true;
+ delete(info);
+ free(buffer);
+ }
return ret;
}
@@ -670,9 +675,10 @@ bool cFileList::DirIsIn(const char *file, const char *strings)
cTokenizer *token = new cTokenizer(strings, "@");
for(int i = 1; i <= token->Count(); i++)
{
- asprintf(&buffer, "^%s$", token->GetToken(i));
- fList->OptInclude(buffer);
- free(buffer);
+ if(0 < asprintf(&buffer, "^%s$", token->GetToken(i))) {
+ fList->OptInclude(buffer);
+ free(buffer);
+ }
}
DELETENULL(token);