diff options
author | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-01-27 18:00:00 +0100 |
---|---|---|
committer | Klaus Schmidinger <kls (at) cadsoft (dot) de> | 2002-01-27 18:00:00 +0100 |
commit | 27919ee969866b68fc95b327a047a9989e4b4153 (patch) | |
tree | 1857862abf169ff6e9287152cd6fec6a1d9dbc41 /svdrp.c | |
parent | b420457467ad0c8ae71f8b985914e85b7a0ff5aa (diff) | |
download | vdr-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.c | 80 |
1 files changed, 40 insertions, 40 deletions
@@ -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); } |