1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Added a copy constructor to cString and fixed its assignment operator

This commit is contained in:
Klaus Schmidinger 2005-11-26 14:16:02 +01:00
parent 71ccb6acb6
commit 22c5a38364
4 changed files with 15 additions and 2 deletions

View File

@ -1544,3 +1544,6 @@ Ralf M
Maarten Wisse <Maarten.Wisse@urz.uni-hd.de> Maarten Wisse <Maarten.Wisse@urz.uni-hd.de>
for translating OSD texts to the Dutch language for translating OSD texts to the Dutch language
Holger Brunn <holger.brunn@stud.uni-karlsruhe.de>
for adding a copy constructor to cString and fixing its assignment operator

View File

@ -3955,3 +3955,5 @@ Video Disk Recorder Revision History
and isn't actively used, yet. and isn't actively used, yet.
- Fixed SetProgress() in the 'skincurses' plugin in case Total is 0 (reported - Fixed SetProgress() in the 'skincurses' plugin in case Total is 0 (reported
by Stefan Huelswitt). by Stefan Huelswitt).
- Added a copy constructor to cString and fixed its assignment operator
(thanks to Holger Brunn).

View File

@ -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.c 1.103 2005/11/04 16:33:18 kls Exp $ * $Id: tools.c 1.104 2005/11/26 14:12:31 kls Exp $
*/ */
#include "tools.h" #include "tools.h"
@ -527,6 +527,11 @@ cString::cString(const char *S, bool TakePointer)
s = TakePointer ? (char *)S : S ? strdup(S) : NULL; s = TakePointer ? (char *)S : S ? strdup(S) : NULL;
} }
cString::cString(const cString &String)
{
s = String.s ? strdup(String.s) : NULL;
}
cString::~cString() cString::~cString()
{ {
free(s); free(s);
@ -534,6 +539,8 @@ cString::~cString()
cString &cString::operator=(const cString &String) cString &cString::operator=(const cString &String)
{ {
if (this == &String)
return *this;
free(s); free(s);
s = String.s ? strdup(String.s) : NULL; s = String.s ? strdup(String.s) : NULL;
return *this; return *this;

View File

@ -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.83 2005/11/05 10:54:39 kls Exp $ * $Id: tools.h 1.84 2005/11/26 14:03:47 kls Exp $
*/ */
#ifndef __TOOLS_H #ifndef __TOOLS_H
@ -75,6 +75,7 @@ private:
char *s; char *s;
public: public:
cString(const char *S = NULL, bool TakePointer = false); cString(const char *S = NULL, bool TakePointer = false);
cString(const cString &String);
virtual ~cString(); virtual ~cString();
operator const char * () const { return s; } // for use in (const char *) context 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.) const char * operator*() const { return s; } // for use in (const void *) context (printf() etc.)