[mythtv-users] [PATCH] Make it possible to delete programs that
have no file anymore
Tako Schotanus
quintesse at palacio-cristal.com
Fri Jun 27 22:38:08 EDT 2003
Found out that if you delete a .nuv file you can't remove its entry from
the Recorded Programs listing.
The code would exit prematurely if it could not find the file and
therefore would not delete the program entry either.
This patch fixes that.
Cheers,
-Tako
-------------- next part --------------
Index: mainserver.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/mainserver.cpp,v
retrieving revision 1.58
diff -r1.58 mainserver.cpp
722,738d721
< QString fileprefix = gContext->GetFilePrefix();
< QString filename = pginfo->GetRecordFilename(fileprefix);
< QFile checkFile(filename);
<
< if (!checkFile.exists())
< {
< cerr << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")
< << " Strange. File: " << filename << " doesn't exist." << endl;
<
< QStringList outputlist;
< outputlist << "BAD: Tried to delete a file that was in "
< "the database but wasn't on the disk.";
< WriteStringList(pbs->getSocket(), outputlist);
< delete pginfo;
< return;
< }
<
782,783c765,767
< DeleteStruct *ds = new DeleteStruct;
< ds->filename = filename;
---
> QString fileprefix = gContext->GetFilePrefix();
> QString filename = pginfo->GetRecordFilename(fileprefix);
> QFile checkFile(filename);
785,788c769,779
< pthread_t deletethread;
< pthread_attr_t attr;
< pthread_attr_init(&attr);
< pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
---
> // Check if file exists
> if (!checkFile.exists())
> {
> // If so, let's delete it using a newly created deleter thread
> DeleteStruct *ds = new DeleteStruct;
> ds->filename = filename;
>
> pthread_t deletethread;
> pthread_attr_t attr;
> pthread_attr_init(&attr);
> pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
790c781,793
< pthread_create(&deletethread, &attr, SpawnDelete, ds);
---
> pthread_create(&deletethread, &attr, SpawnDelete, ds);
> }
> else
> {
> // If not, output an error but continue as if nothing happened
> cerr << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")
> << " Strange. File: " << filename << " doesn't exist." << endl;
>
> QStringList outputlist;
> outputlist << "BAD: Tried to delete a file that was in "
> "the database but wasn't on the disk.";
> WriteStringList(pbs->getSocket(), outputlist);
> }
More information about the mythtv-users
mailing list