mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed handling symbolic links in cRecordings::ScanVideoDir()
This commit is contained in:
		@@ -192,6 +192,7 @@ Stefan Huelswitt <huels@iname.com>
 | 
				
			|||||||
 for fixing a possible race condition in cDevice::Action() and cTSBuffer::Action()
 | 
					 for fixing a possible race condition in cDevice::Action() and cTSBuffer::Action()
 | 
				
			||||||
 for reporting several memory leaks that were introduced through the use of cString
 | 
					 for reporting several memory leaks that were introduced through the use of cString
 | 
				
			||||||
 for adding MPEG1 replay capability to cPesAssembler
 | 
					 for adding MPEG1 replay capability to cPesAssembler
 | 
				
			||||||
 | 
					 for fixing handling symbolic links in cRecordings::ScanVideoDir()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Ulrich R<>der <roeder@efr-net.de>
 | 
					Ulrich R<>der <roeder@efr-net.de>
 | 
				
			||||||
 for pointing out that there are channels that have a symbol rate higher than 27500
 | 
					 for pointing out that there are channels that have a symbol rate higher than 27500
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								HISTORY
									
									
									
									
									
								
							@@ -3374,7 +3374,7 @@ Video Disk Recorder Revision History
 | 
				
			|||||||
  out).
 | 
					  out).
 | 
				
			||||||
- Added MPEG1 replay capability to cPesAssembler (thanks to Stefan Huelswitt).
 | 
					- Added MPEG1 replay capability to cPesAssembler (thanks to Stefan Huelswitt).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2005-02-08: Version 1.3.21
 | 
					2005-02-12: Version 1.3.21
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching
 | 
					- Fixed cDvbDevice::SetAudioTrackDevice() to avoid a blank screen after switching
 | 
				
			||||||
  back to live mode if a recording is currently active on the primary device.
 | 
					  back to live mode if a recording is currently active on the primary device.
 | 
				
			||||||
@@ -3384,3 +3384,5 @@ Video Disk Recorder Revision History
 | 
				
			|||||||
- Restricted the "setting audio track" log message to automatic changes during replay.
 | 
					- Restricted the "setting audio track" log message to automatic changes during replay.
 | 
				
			||||||
- Fixed handling Transfer Mode for radio channels (thanks to Andreas Regel for
 | 
					- Fixed handling Transfer Mode for radio channels (thanks to Andreas Regel for
 | 
				
			||||||
  reporting this one).
 | 
					  reporting this one).
 | 
				
			||||||
 | 
					- Fixed handling symbolic links in cRecordings::ScanVideoDir() (thanks to Stefan
 | 
				
			||||||
 | 
					  Huelswitt).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
 * See the main source file 'vdr.c' for copyright information and
 | 
					 * See the main source file 'vdr.c' for copyright information and
 | 
				
			||||||
 * how to reach the author.
 | 
					 * how to reach the author.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Id: recording.c 1.95 2005/02/06 09:46:31 kls Exp $
 | 
					 * $Id: recording.c 1.96 2005/02/12 10:17:47 kls Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "recording.h"
 | 
					#include "recording.h"
 | 
				
			||||||
@@ -637,8 +637,9 @@ void cRecordings::ScanVideoDir(const char *DirName)
 | 
				
			|||||||
           struct stat st;
 | 
					           struct stat st;
 | 
				
			||||||
           if (stat(buffer, &st) == 0) {
 | 
					           if (stat(buffer, &st) == 0) {
 | 
				
			||||||
              if (S_ISLNK(st.st_mode)) {
 | 
					              if (S_ISLNK(st.st_mode)) {
 | 
				
			||||||
                 free(buffer);
 | 
					                 char *old = buffer;
 | 
				
			||||||
                 buffer = ReadLink(buffer);
 | 
					                 buffer = ReadLink(old);
 | 
				
			||||||
 | 
					                 free(old);
 | 
				
			||||||
                 if (!buffer)
 | 
					                 if (!buffer)
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                 if (stat(buffer, &st) != 0) {
 | 
					                 if (stat(buffer, &st) != 0) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								tools.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tools.h
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
				
			|||||||
 * See the main source file 'vdr.c' for copyright information and
 | 
					 * See the main source file 'vdr.c' for copyright information and
 | 
				
			||||||
 * how to reach the author.
 | 
					 * how to reach the author.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Id: tools.h 1.66 2005/02/05 10:00:22 kls Exp $
 | 
					 * $Id: tools.h 1.67 2005/02/12 10:17:14 kls Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __TOOLS_H
 | 
					#ifndef __TOOLS_H
 | 
				
			||||||
@@ -95,7 +95,7 @@ bool DirectoryOk(const char *DirName, bool LogErrors = false);
 | 
				
			|||||||
bool MakeDirs(const char *FileName, bool IsDirectory = false);
 | 
					bool MakeDirs(const char *FileName, bool IsDirectory = false);
 | 
				
			||||||
bool RemoveFileOrDir(const char *FileName, bool FollowSymlinks = false);
 | 
					bool RemoveFileOrDir(const char *FileName, bool FollowSymlinks = false);
 | 
				
			||||||
bool RemoveEmptyDirectories(const char *DirName, bool RemoveThis = false);
 | 
					bool RemoveEmptyDirectories(const char *DirName, bool RemoveThis = false);
 | 
				
			||||||
char *ReadLink(const char *FileName);
 | 
					char *ReadLink(const char *FileName); ///< returns a new strings allocated on the heap, which the caller must delete (or NULL in case of an error)
 | 
				
			||||||
bool SpinUpDisk(const char *FileName);
 | 
					bool SpinUpDisk(const char *FileName);
 | 
				
			||||||
time_t LastModifiedTime(const char *FileName);
 | 
					time_t LastModifiedTime(const char *FileName);
 | 
				
			||||||
cString WeekDayName(int WeekDay);
 | 
					cString WeekDayName(int WeekDay);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user