Ticket #1661: symlinks.patch

File symlinks.patch, 2.9 KB (added by ajlill@…, 15 years ago)
  • libs/libmythtv/jobqueue.cpp

     
    17551755        QString statusText = StatusText(GetJobStatus(jobID));
    17561756        QString fileprefix = gContext->GetFilePrefix();
    17571757        QString filename = program_info->GetRecordFilename(fileprefix);
     1758        QString theLink;
    17581759
    17591760        origfilesize = 0;
    17601761        filesize = 0;
     
    17981799
    17991800        int status = GetJobStatus(jobID);
    18001801
     1802        QFileInfo inf(filename);
     1803        if( inf.isSymLink() ) {
     1804          theLink = filename;
     1805          filename = inf.readLink();
     1806        }
     1807
    18011808        if (status == JOB_STOPPING)
    18021809        {
    18031810            QString tmpfile = filename;
     
    18081815            // To save the original file...
    18091816            QString oldfile = filename;
    18101817            QString newfile = filename;
     1818            QString newlink = theLink;
    18111819            QString jobArgs = GetJobArgs(jobID);
    18121820            oldfile += ".old";
    18131821
     
    18181826
    18191827                newfile.replace(QRegExp("mpg$"), "nuv");
    18201828                newbase.replace(QRegExp("mpg$"), "nuv");
     1829                if( !theLink.isEmpty() )
     1830                  newlink.replace(QRegExp("mpg$"), "nuv");
    18211831                program_info->SetRecordBasename(newbase);
    18221832            }
    18231833
     
    18311841                    "JobQueue::DoTranscodeThread: Error Renaming '%1' to '%2'")
    18321842                    .arg(tmpfile).arg(newfile).ascii());
    18331843
     1844            if (!theLink.isEmpty() &&
     1845                (unlink(theLink) == -1 || symlink(newfile, newlink) == -1))
     1846                perror(QString(
     1847                    "JobQueue::DoTranscodeThread: Error resetting symink '%1' to '%2'")
     1848                    .arg(theLink).arg(newlink).ascii());
     1849
    18341850            if (!gContext->GetNumSetting("SaveTranscoding", 0))
    18351851            {
    18361852                if (unlink(oldfile) == -1)
     
    6465    bool build_index = false, fifosync = false, showprogress = false, mpeg2 = false;
    6566    QMap<long long, int> deleteMap;
    6667    QMap<long long, long long> posMap;
     68    int fd;
    6769    srand(time(NULL));
    6870
     71    /* Let this process migrate on openMosix */
     72    if( ( fd = open( "/proc/self/lock", O_WRONLY ) ) >= 0 ) {
     73      write( fd, "0\n", 2 );
     74      close( fd );
     75    }
     76
    6977    QApplication a(argc, argv, false);
    7078
    7179    print_verbose_messages = VB_IMPORTANT;
  • programs/mythtranscode/main.cpp

     
    11#include <qapplication.h>
    22#include <qsqldatabase.h>
    33#include <qfile.h>
     4#include <qfileinfo.h>
    45#include <qmap.h>
    56#include <qfileinfo.h>
    67#include <qregexp.h>
     
    368376        return TRANSCODE_EXIT_REMOTE_FILE;
    369377    }
    370378
     379    QFileInfo inf(infile);
     380    if( inf.isSymLink() )
     381      infile = inf.readLink();
     382
    371383    if (outfile.isNull())
    372384        outfile = infile + ".tmp";
    373385