diff options
author | Klaus Schmidinger <vdr@tvdr.de> | 2000-07-23 15:01:31 +0200 |
---|---|---|
committer | Klaus Schmidinger <vdr@tvdr.de> | 2000-07-23 15:01:31 +0200 |
commit | 52514313fbb740517a65da615de18d3e6e9e151a (patch) | |
tree | ea146bb811e2d3910b02b200dadc8e92a3eeab30 /tools.c | |
parent | a91ff70bf20ec3ed0d53a40b688c31206e79d35f (diff) | |
download | vdr-52514313fbb740517a65da615de18d3e6e9e151a.tar.gz vdr-52514313fbb740517a65da615de18d3e6e9e151a.tar.bz2 |
Implemented SVDRP
Diffstat (limited to 'tools.c')
-rw-r--r-- | tools.c | 40 |
1 files changed, 39 insertions, 1 deletions
@@ -4,11 +4,12 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.c 1.9 2000/07/16 14:14:44 kls Exp $ + * $Id: tools.c 1.10 2000/07/23 13:16:54 kls Exp $ */ #define _GNU_SOURCE #include "tools.h" +#include <ctype.h> #include <dirent.h> #include <errno.h> #include <signal.h> @@ -58,6 +59,26 @@ bool readint(int filedes, int &n) return DataAvailable(filedes) && read(filedes, &n, sizeof(n)) == sizeof(n); } +int readstring(int filedes, char *buffer, int size, bool wait = false) +{ + int rbytes = 0; + + while (DataAvailable(filedes, wait)) { + int n = read(filedes, buffer + rbytes, size - rbytes); + if (n == 0) + break; // EOF + if (n < 0) { + LOG_ERROR; + break; + } + rbytes += n; + if (rbytes == size) + break; + wait = false; + } + return rbytes; +} + void purge(int filedes) { while (DataAvailable(filedes)) @@ -88,6 +109,13 @@ char *strreplace(char *s, char c1, char c2) return s; } +char *skipspace(char *s) +{ + while (*s && isspace(*s)) + s++; + return s; +} + int time_ms(void) { static time_t t0 = 0; @@ -107,6 +135,16 @@ void delay_ms(int ms) ; } +bool isnumber(const char *s) +{ + while (*s) { + if (!isdigit(*s)) + return false; + s++; + } + return true; +} + bool MakeDirs(const char *FileName, bool IsDirectory) { bool result = true; |