mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Replaced strncpy() and strn0cpy() with Utf8Strn0Cpy() where necessary
This commit is contained in:
parent
81e44bce19
commit
b532dc8229
1
HISTORY
1
HISTORY
@ -5240,3 +5240,4 @@ Video Disk Recorder Revision History
|
||||
Thomas Günther). The codeset names in 'libsi/si.c' have been changed to the
|
||||
canonical spelling with '-' (thanks to Ludwig Nussel for pointing this out).
|
||||
- Modified handling invalid characters in VFAT mode.
|
||||
- Replaced strn0cpy() with Utf8Strn0Cpy() where necessary.
|
||||
|
14
config.c
14
config.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: config.c 1.151 2007/06/02 11:21:40 kls Exp $
|
||||
* $Id: config.c 1.152 2007/06/16 09:30:22 kls Exp $
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@ -385,8 +385,8 @@ bool cSetup::ParseLanguages(const char *Value, int *Values)
|
||||
bool cSetup::Parse(const char *Name, const char *Value)
|
||||
{
|
||||
if (!strcasecmp(Name, "OSDLanguage")) OSDLanguage = atoi(Value);
|
||||
else if (!strcasecmp(Name, "OSDSkin")) strn0cpy(OSDSkin, Value, MaxSkinName);
|
||||
else if (!strcasecmp(Name, "OSDTheme")) strn0cpy(OSDTheme, Value, MaxThemeName);
|
||||
else if (!strcasecmp(Name, "OSDSkin")) Utf8Strn0Cpy(OSDSkin, Value, MaxSkinName);
|
||||
else if (!strcasecmp(Name, "OSDTheme")) Utf8Strn0Cpy(OSDTheme, Value, MaxThemeName);
|
||||
else if (!strcasecmp(Name, "PrimaryDVB")) PrimaryDVB = atoi(Value);
|
||||
else if (!strcasecmp(Name, "ShowInfoOnChSwitch")) ShowInfoOnChSwitch = atoi(Value);
|
||||
else if (!strcasecmp(Name, "TimeoutRequChInfo")) TimeoutRequChInfo = atoi(Value);
|
||||
@ -394,7 +394,7 @@ bool cSetup::Parse(const char *Name, const char *Value)
|
||||
else if (!strcasecmp(Name, "MenuScrollWrap")) MenuScrollWrap = atoi(Value);
|
||||
else if (!strcasecmp(Name, "MenuKeyCloses")) MenuKeyCloses = atoi(Value);
|
||||
else if (!strcasecmp(Name, "MarkInstantRecord")) MarkInstantRecord = atoi(Value);
|
||||
else if (!strcasecmp(Name, "NameInstantRecord")) strn0cpy(NameInstantRecord, Value, MaxFileName);
|
||||
else if (!strcasecmp(Name, "NameInstantRecord")) Utf8Strn0Cpy(NameInstantRecord, Value, MaxFileName);
|
||||
else if (!strcasecmp(Name, "InstantRecordTime")) InstantRecordTime = atoi(Value);
|
||||
else if (!strcasecmp(Name, "LnbSLOF")) LnbSLOF = atoi(Value);
|
||||
else if (!strcasecmp(Name, "LnbFrequLo")) LnbFrequLo = atoi(Value);
|
||||
@ -435,9 +435,9 @@ bool cSetup::Parse(const char *Name, const char *Value)
|
||||
else if (!strcasecmp(Name, "OSDMessageTime")) OSDMessageTime = atoi(Value);
|
||||
else if (!strcasecmp(Name, "UseSmallFont")) UseSmallFont = atoi(Value);
|
||||
else if (!strcasecmp(Name, "AntiAlias")) AntiAlias = atoi(Value);
|
||||
else if (!strcasecmp(Name, "FontOsd")) strn0cpy(FontOsd, Value, MAXFONTNAME);
|
||||
else if (!strcasecmp(Name, "FontSml")) strn0cpy(FontSml, Value, MAXFONTNAME);
|
||||
else if (!strcasecmp(Name, "FontFix")) strn0cpy(FontFix, Value, MAXFONTNAME);
|
||||
else if (!strcasecmp(Name, "FontOsd")) Utf8Strn0Cpy(FontOsd, Value, MAXFONTNAME);
|
||||
else if (!strcasecmp(Name, "FontSml")) Utf8Strn0Cpy(FontSml, Value, MAXFONTNAME);
|
||||
else if (!strcasecmp(Name, "FontFix")) Utf8Strn0Cpy(FontFix, Value, MAXFONTNAME);
|
||||
else if (!strcasecmp(Name, "FontOsdSize")) FontOsdSize = atoi(Value);
|
||||
else if (!strcasecmp(Name, "FontSmlSize")) FontSmlSize = atoi(Value);
|
||||
else if (!strcasecmp(Name, "FontFixSize")) FontFixSize = atoi(Value);
|
||||
|
4
device.c
4
device.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: device.c 1.140 2007/04/30 09:34:00 kls Exp $
|
||||
* $Id: device.c 1.141 2007/06/16 09:31:32 kls Exp $
|
||||
*/
|
||||
|
||||
#include "device.h"
|
||||
@ -859,7 +859,7 @@ bool cDevice::SetAvailableTrack(eTrackType Type, int Index, uint16_t Id, const c
|
||||
if (Language)
|
||||
strn0cpy(availableTracks[t].language, Language, sizeof(availableTracks[t].language));
|
||||
if (Description)
|
||||
strn0cpy(availableTracks[t].description, Description, sizeof(availableTracks[t].description));
|
||||
Utf8Strn0Cpy(availableTracks[t].description, Description, sizeof(availableTracks[t].description));
|
||||
if (Id) {
|
||||
availableTracks[t].id = Id; // setting 'id' last to avoid the need for extensive locking
|
||||
int numAudioTracks = NumAudioTracks();
|
||||
|
12
menu.c
12
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 1.451 2007/06/09 14:36:46 kls Exp $
|
||||
* $Id: menu.c 1.452 2007/06/16 09:33:21 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -2239,14 +2239,14 @@ eOSState cMenuSetupOSD::ProcessKey(eKeys Key)
|
||||
if (skinIndex != originalSkinIndex) {
|
||||
cSkin *Skin = Skins.Get(skinIndex);
|
||||
if (Skin) {
|
||||
strn0cpy(data.OSDSkin, Skin->Name(), sizeof(data.OSDSkin));
|
||||
Utf8Strn0Cpy(data.OSDSkin, Skin->Name(), sizeof(data.OSDSkin));
|
||||
Skins.SetCurrent(Skin->Name());
|
||||
ModifiedApperance = true;
|
||||
}
|
||||
}
|
||||
if (themes.NumThemes() && Skins.Current()->Theme()) {
|
||||
Skins.Current()->Theme()->Load(themes.FileName(themeIndex));
|
||||
strn0cpy(data.OSDTheme, themes.Name(themeIndex), sizeof(data.OSDTheme));
|
||||
Utf8Strn0Cpy(data.OSDTheme, themes.Name(themeIndex), sizeof(data.OSDTheme));
|
||||
ModifiedApperance |= themeIndex != originalThemeIndex;
|
||||
}
|
||||
if (data.OSDLeft != Setup.OSDLeft || data.OSDTop != Setup.OSDTop || data.OSDWidth != Setup.OSDWidth || data.OSDHeight != Setup.OSDHeight) {
|
||||
@ -2256,9 +2256,9 @@ eOSState cMenuSetupOSD::ProcessKey(eKeys Key)
|
||||
if (data.UseSmallFont != Setup.UseSmallFont || data.AntiAlias != Setup.AntiAlias)
|
||||
ModifiedApperance = true;
|
||||
if (fontNames.Size()) {
|
||||
strn0cpy(data.FontOsd, fontNames[fontOsdIndex], sizeof(data.FontOsd));
|
||||
strn0cpy(data.FontSml, fontNames[fontSmlIndex], sizeof(data.FontSml));
|
||||
strn0cpy(data.FontFix, fontNames[fontFixIndex], sizeof(data.FontFix));
|
||||
Utf8Strn0Cpy(data.FontOsd, fontNames[fontOsdIndex], sizeof(data.FontOsd));
|
||||
Utf8Strn0Cpy(data.FontSml, fontNames[fontSmlIndex], sizeof(data.FontSml));
|
||||
Utf8Strn0Cpy(data.FontFix, fontNames[fontFixIndex], sizeof(data.FontFix));
|
||||
}
|
||||
if (strcmp(data.FontOsd, Setup.FontOsd) || data.FontOsdSize != Setup.FontOsdSize) {
|
||||
cFont::SetFont(fontOsd, data.FontOsd, data.FontOsdSize);
|
||||
|
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: recording.c 1.152 2007/06/16 08:57:22 kls Exp $
|
||||
* $Id: recording.c 1.153 2007/06/16 09:36:08 kls Exp $
|
||||
*/
|
||||
|
||||
#include "recording.h"
|
||||
@ -480,7 +480,7 @@ cRecording::cRecording(cTimer *Timer, const cEvent *Event)
|
||||
Subtitle = " ";
|
||||
else if (strlen(Subtitle) > MAX_SUBTITLE_LENGTH) {
|
||||
// let's make sure the Subtitle doesn't produce too long a file name:
|
||||
strn0cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH);
|
||||
Utf8Strn0Cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH);
|
||||
Subtitle = SubtitleBuffer;
|
||||
}
|
||||
char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE);
|
||||
|
8
timers.c
8
timers.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: timers.c 1.66 2007/06/03 13:48:57 kls Exp $
|
||||
* $Id: timers.c 1.67 2007/06/16 10:41:21 kls Exp $
|
||||
*/
|
||||
|
||||
#include "timers.h"
|
||||
@ -78,7 +78,7 @@ cTimer::cTimer(const cEvent *Event)
|
||||
*file = 0;
|
||||
const char *Title = Event->Title();
|
||||
if (!isempty(Title))
|
||||
strn0cpy(file, Event->Title(), sizeof(file));
|
||||
Utf8Strn0Cpy(file, Event->Title(), sizeof(file));
|
||||
aux = NULL;
|
||||
event = NULL; // let SetEvent() be called to get a log message
|
||||
}
|
||||
@ -286,7 +286,7 @@ bool cTimer::Parse(const char *s)
|
||||
}
|
||||
//TODO add more plausibility checks
|
||||
result = ParseDay(daybuffer, day, weekdays);
|
||||
strn0cpy(file, filebuffer, MaxFileName);
|
||||
Utf8Strn0Cpy(file, filebuffer, MaxFileName);
|
||||
strreplace(file, '|', ':');
|
||||
if (isnumber(channelbuffer))
|
||||
channel = Channels.GetByNumber(atoi(channelbuffer));
|
||||
@ -358,7 +358,7 @@ time_t cTimer::SetTime(time_t t, int SecondsFromMidnight)
|
||||
char *cTimer::SetFile(const char *File)
|
||||
{
|
||||
if (!isempty(File))
|
||||
strn0cpy(file, File, sizeof(file));
|
||||
Utf8Strn0Cpy(file, File, sizeof(file));
|
||||
return file;
|
||||
}
|
||||
|
||||
|
21
tools.c
21
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 1.127 2007/06/16 09:05:11 kls Exp $
|
||||
* $Id: tools.c 1.128 2007/06/16 09:22:40 kls Exp $
|
||||
*/
|
||||
|
||||
#include "tools.h"
|
||||
@ -661,6 +661,25 @@ int Utf8StrLen(const char *s)
|
||||
return n;
|
||||
}
|
||||
|
||||
char *Utf8Strn0Cpy(char *Dest, const char *Src, int n)
|
||||
{
|
||||
if (cCharSetConv::SystemCharacterTable())
|
||||
return strn0cpy(Dest, Src, n);
|
||||
char *d = Dest;
|
||||
while (*Src) {
|
||||
int sl = Utf8CharLen(Src);
|
||||
n -= sl;
|
||||
if (n > 0) {
|
||||
while (sl--)
|
||||
*d++ = *Src++;
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
*d = 0;
|
||||
return Dest;
|
||||
}
|
||||
|
||||
int Utf8ToArray(const char *s, uint *a, int Size)
|
||||
{
|
||||
int n = 0;
|
||||
|
7
tools.h
7
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 1.100 2007/06/16 09:05:22 kls Exp $
|
||||
* $Id: tools.h 1.101 2007/06/16 09:15:40 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __TOOLS_H
|
||||
@ -96,6 +96,11 @@ int Utf8SymChars(const char *s, int Symbols);
|
||||
int Utf8StrLen(const char *s);
|
||||
///< Returns the number of UTF-8 symbols formed by the given string of
|
||||
///< character bytes.
|
||||
char *Utf8Strn0Cpy(char *Dest, const char *Src, int n);
|
||||
///< Copies at most n character bytes from Src to Dst, making sure that the
|
||||
///< resulting copy ends with a complete UTF-8 symbol. The copy is guaranteed
|
||||
///< to be zero terminated.
|
||||
///< Returns a pointer to Dest.
|
||||
int Utf8ToArray(const char *s, uint *a, int Size);
|
||||
///< Converts the given character bytes (including the terminating 0) into an
|
||||
///< array of UTF-8 symbols of the given Size. Returns the number of symbols
|
||||
|
Loading…
Reference in New Issue
Block a user