summaryrefslogtreecommitdiff
path: root/svdrp.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2002-01-27 18:00:00 +0100
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2002-01-27 18:00:00 +0100
commit27919ee969866b68fc95b327a047a9989e4b4153 (patch)
tree1857862abf169ff6e9287152cd6fec6a1d9dbc41 /svdrp.c
parentb420457467ad0c8ae71f8b985914e85b7a0ff5aa (diff)
downloadvdr-patch-lnbsharing-27919ee969866b68fc95b327a047a9989e4b4153.tar.gz
vdr-patch-lnbsharing-27919ee969866b68fc95b327a047a9989e4b4153.tar.bz2
Version 0.99pre2vdr-0.99pre2
- Fixed setting the OSD size in the 'Confirm' interface call (thanks to Deti Fliegl). - Removed the 'read incomplete section...' error message in the EIT processor. - Fixed channel data for "DW TV" (thanks to Axel Gruber). - Added DPID to "PREMIERE MOVIE 1" in channels.conf.cable (thanks to Stephan Schreiber). - Prepared the OSD functions for multiple overlapping windows. - Removed the check to see whether the system time is running linearly. - Improved performance of SVDRP command entry. - Removed EPGBugfixLevel '3' - after more than a year Pro-7 finally managed to broadcast the correct timestamps for EPG events between 0:00 and 6:00! - Fixed failing watchdog timer if program hangs in OSD activities (thanks to Carsten Koch). - No longer requiring 'libncurses' if compiling without DEBUG_OSD=1 and REMOTE=KBD (thanks to Lauri Pesonen). - The "Recordings" menu now displays a hierarchical structure if there are subdirectories for the recordings. This can be controlled through the "RecordingDirs" parameter in the "Setup" menu. See "MANUAL/Replaying a Recording" for details. - Improved speed of setting the Help button texts. - Fixed handling file names that contain single quotes (') or dollar signs ($) in the call to the shutdown command (option '-s') and the recording command (option '-r'). - Improved error handling in the editing process; the resulting file will be deleted if an error occured. - A message is now prompted at the end of the editing process, indicating whether the process succeeded or failed. - Fixed setting the LastActivity timestamp after a shutdown prompt (thanks to Sergei Haller). - A message is now prompted if free disk space becomes low during recording. - The editing process now calls AssertFreeDiskSpace() to remove deleted recordings if the disk becomes full. - The "Main" menu now displays in its title the used disk space (in percent) and the estimated free disk space (in hh:mm), assuming a data rate of 30 MB per minute. - Activating the "Recordings" menu now displays "scanning recordings..." to give the user some feedback in case this takes longer. - Status messages are now displayed centered. - Removed the 'Tools' subdirectory from the VDR archive. All contributed tools can now be found at ftp://ftp.cadsoft.de/pub/people/kls/vdr/Tools.
Diffstat (limited to 'svdrp.c')
-rw-r--r--svdrp.c80
1 files changed, 40 insertions, 40 deletions
diff --git a/svdrp.c b/svdrp.c
index 48c9563..67de63c 100644
--- a/svdrp.c
+++ b/svdrp.c
@@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection.
*
- * $Id: svdrp.c 1.27 2001/11/04 11:25:05 kls Exp $
+ * $Id: svdrp.c 1.28 2002/01/13 16:07:42 kls Exp $
*/
#include "svdrp.h"
@@ -899,49 +899,49 @@ void cSVDRP::Process(void)
}
if (NewConnection)
lastActivity = time(NULL);
- if (file.Ready(false)) {
- unsigned char c;
- int r = safe_read(file, &c, 1);
- if (r > 0) {
- if (c == '\n' || c == 0x00) {
- // strip trailing whitespace:
- while (numChars > 0 && strchr(" \t\r\n", cmdLine[numChars - 1]))
- cmdLine[--numChars] = 0;
- // make sure the string is terminated:
- cmdLine[numChars] = 0;
- // showtime!
- Execute(cmdLine);
- numChars = 0;
+ while (file.Ready(false)) {
+ unsigned char c;
+ int r = safe_read(file, &c, 1);
+ if (r > 0) {
+ if (c == '\n' || c == 0x00) {
+ // strip trailing whitespace:
+ while (numChars > 0 && strchr(" \t\r\n", cmdLine[numChars - 1]))
+ cmdLine[--numChars] = 0;
+ // make sure the string is terminated:
+ cmdLine[numChars] = 0;
+ // showtime!
+ Execute(cmdLine);
+ numChars = 0;
+ }
+ else if (c == 0x04 && numChars == 0) {
+ // end of file (only at beginning of line)
+ Close();
+ }
+ else if (c == 0x08 || c == 0x7F) {
+ // backspace or delete (last character)
+ if (numChars > 0)
+ numChars--;
+ }
+ else if (c <= 0x03 || c == 0x0D) {
+ // ignore control characters
+ }
+ else if (numChars < sizeof(cmdLine) - 1) {
+ cmdLine[numChars++] = c;
+ cmdLine[numChars] = 0;
+ }
+ else {
+ Reply(501, "Command line too long");
+ esyslog(LOG_ERR, "SVDRP: command line too long: '%s'", cmdLine);
+ numChars = 0;
+ }
+ lastActivity = time(NULL);
}
- else if (c == 0x04 && numChars == 0) {
- // end of file (only at beginning of line)
+ else if (r <= 0) {
+ isyslog(LOG_INFO, "lost connection to SVDRP client");
Close();
}
- else if (c == 0x08 || c == 0x7F) {
- // backspace or delete (last character)
- if (numChars > 0)
- numChars--;
- }
- else if (c <= 0x03 || c == 0x0D) {
- // ignore control characters
- }
- else if (numChars < sizeof(cmdLine) - 1) {
- cmdLine[numChars++] = c;
- cmdLine[numChars] = 0;
- }
- else {
- Reply(501, "Command line too long");
- esyslog(LOG_ERR, "SVDRP: command line too long: '%s'", cmdLine);
- numChars = 0;
- }
- lastActivity = time(NULL);
- }
- else if (r <= 0) {
- isyslog(LOG_INFO, "lost connection to SVDRP client");
- Close();
}
- }
- else if (Setup.SVDRPTimeout && time(NULL) - lastActivity > Setup.SVDRPTimeout) {
+ if (Setup.SVDRPTimeout && time(NULL) - lastActivity > Setup.SVDRPTimeout) {
isyslog(LOG_INFO, "timeout on SVDRP connection");
Close(true);
}