From 1c5ece6100d7dcb1015187a7e3ae73b41d509b16 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 24 Oct 2010 13:08:55 +0200 Subject: [PATCH] Added cString::operator=(const char *String) --- CONTRIBUTORS | 3 +++ HISTORY | 1 + tools.c | 9 ++++++++- tools.h | 3 ++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 0af54535..d6a06464 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2626,3 +2626,6 @@ Cristiano A. Silva Osama Alrawab for adding support for languages that are written right-to-left for translating OSD texts to the Arabian language + +Antti Seppälä + for suggesting to add cString::operator=(const char *String) diff --git a/HISTORY b/HISTORY index bc1c890d..bc9ebeea 100644 --- a/HISTORY +++ b/HISTORY @@ -6489,3 +6489,4 @@ Video Disk Recorder Revision History - Changed the description of cDevice::GetSTC() to make it mandatory for devices that can replay. - Removed the check for positive STC values from cDvbSubtitleConverter::Action(). +- Added cString::operator=(const char *String) (suggested by Antti Seppälä). diff --git a/tools.c b/tools.c index 09053301..f7d6bc6d 100644 --- a/tools.c +++ b/tools.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.c 2.9 2010/10/24 11:32:27 kls Exp $ + * $Id: tools.c 2.10 2010/10/24 13:07:30 kls Exp $ */ #include "tools.h" @@ -885,6 +885,13 @@ cString &cString::operator=(const cString &String) return *this; } +cString &cString::operator=(const char *String) +{ + free(s); + s = String ? strdup(String) : NULL; + return *this; +} + cString &cString::Truncate(int Index) { int l = strlen(s); diff --git a/tools.h b/tools.h index 95c35ff3..1a80a8d4 100644 --- a/tools.h +++ b/tools.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: tools.h 2.4 2009/12/23 15:14:39 kls Exp $ + * $Id: tools.h 2.5 2010/10/24 13:06:27 kls Exp $ */ #ifndef __TOOLS_H @@ -171,6 +171,7 @@ public: operator const char * () const { return s; } // for use in (const char *) context const char * operator*() const { return s; } // for use in (const void *) context (printf() etc.) cString &operator=(const cString &String); + cString &operator=(const char *String); cString &Truncate(int Index); ///< Truncate the string at the given Index (if Index is < 0 it is counted from the end of the string). static cString sprintf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); static cString sprintf(const char *fmt, va_list &ap);