live-uselocale.patch
资源名称:vlc-1.0.5.zip [点击查看]
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:3k
源码类别:
midi
开发平台:
Unix_Linux
- Copyright (C) 2008 Rémi Denis-Courmont, adaptation by Felix Kühne (C) 2009.
- Licensed under GNU General Public License version 2 or higher.
- diff -urN live.orig/liveMedia/include/Locale.hh live/liveMedia/include/Locale.hh
- --- live.orig/liveMedia/include/Locale.hh 2009-03-23 01:26:16 +0300
- +++ live/liveMedia/include/Locale.hh 2009-03-26 19:17:43 +0300
- @@ -27,23 +27,26 @@
- #ifndef LOCALE_NOT_USED
- #include <locale.h>
- +#ifdef __APPLE__
- +#include <xlocale.h>
- +#endif
- #else
- -#ifndef LC_ALL
- -#define LC_ALL 0
- +#ifndef LC_ALL_MASK
- +#define LC_ALL_MASK 0
- #endif
- -#ifndef LC_NUMERIC
- -#define LC_NUMERIC 4
- +#ifndef LC_NUMERIC_MASK
- +#define LC_NUMERIC_MASK 0
- #endif
- +typedef int locale_t;
- #endif
- class Locale {
- public:
- - Locale(char const* newLocale, int category = LC_ALL);
- + Locale(char const* newLocale, int category = LC_ALL_MASK);
- virtual ~Locale();
- private:
- - int fCategory;
- - char* fPrevLocale;
- + locale_t fLocale, fPrevLocale;
- };
- #endif
- diff -urN live.orig/liveMedia/Locale.cpp live/liveMedia/Locale.cpp
- --- live.orig/liveMedia/Locale.cpp 2009-03-23 01:26:16 +0300
- +++ live/liveMedia/Locale.cpp 2009-03-26 19:17:43 +0300
- @@ -22,19 +22,18 @@
- #include "Locale.hh"
- #include <strDup.hh>
- -Locale::Locale(char const* newLocale, int category)
- - : fCategory(category) {
- +Locale::Locale(char const* newLocale, int category) {
- #ifndef LOCALE_NOT_USED
- - fPrevLocale = strDup(setlocale(category, NULL));
- - setlocale(category, newLocale);
- + fLocale = newlocale(category, newLocale, NULL);
- + fPrevLocale = uselocale(fLocale);
- #endif
- }
- Locale::~Locale() {
- #ifndef LOCALE_NOT_USED
- - if (fPrevLocale != NULL) {
- - setlocale(fCategory, fPrevLocale);
- - delete[] fPrevLocale;
- + if (fLocale != (locale_t)0) {
- + uselocale(fPrevLocale);
- + freelocale(fLocale);
- }
- #endif
- }
- diff -urN live.orig/liveMedia/RTSPClient.cpp live/liveMedia/RTSPClient.cpp
- --- live.orig/liveMedia/RTSPClient.cpp 2009-03-23 01:26:16 +0300
- +++ live/liveMedia/RTSPClient.cpp 2009-03-26 19:29:38 +0300
- @@ -1019,7 +1019,7 @@
- // This is the default value; we don't need a "Scale:" header:
- buf[0] = ' ';
- } else {
- - Locale l("C", LC_NUMERIC);
- + Locale l("C", LC_NUMERIC_MASK);
- sprintf(buf, "Scale: %frn", scale);
- }
- @@ -1033,11 +1033,11 @@
- buf[0] = ' ';
- } else if (end < 0) {
- // There's no end time:
- - Locale l("C", LC_NUMERIC);
- + Locale l("C", LC_NUMERIC_MASK);
- sprintf(buf, "Range: npt=%.3f-rn", start);
- } else {
- // There's both a start and an end time; include them both in the "Range:" hdr
- - Locale l("C", LC_NUMERIC);
- + Locale l("C", LC_NUMERIC_MASK);
- sprintf(buf, "Range: npt=%.3f-%.3frn", start, end);
- }
- @@ -2342,7 +2342,7 @@
- if (_strncasecmp(line, "Scale: ", 7) != 0) return False;
- line += 7;
- - Locale l("C", LC_NUMERIC);
- + Locale l("C", LC_NUMERIC_MASK);
- return sscanf(line, "%f", &scale) == 1;
- }
- diff -urN live.orig/liveMedia/RTSPCommon.cpp live/liveMedia/RTSPCommon.cpp
- --- live.orig/liveMedia/RTSPCommon.cpp 2009-03-23 01:26:16 +0300
- +++ live/liveMedia/RTSPCommon.cpp 2009-03-26 19:23:25 +0300
- @@ -146,7 +146,7 @@
- char const* fields = buf + 7;
- while (*fields == ' ') ++fields;
- double start, end;
- - Locale l("C", LC_NUMERIC);
- + Locale l("C", LC_NUMERIC_MASK);
- if (sscanf(fields, "npt = %lf - %lf", &start, &end) == 2) {
- rangeStart = start;
- rangeEnd = end;