⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 live-uselocale.patch

📁 VLC Player Source Code
💻 PATCH
字号:
Copyright (C) 2008 R茅mi Denis-Courmont.Licensed under GNU General Public License version 2 or higher.diff -ru live.old/liveMedia/include/Locale.hh live/liveMedia/include/Locale.hh--- live.old/liveMedia/include/Locale.hh	2008-07-06 04:10:57.000000000 +0300+++ live/liveMedia/include/Locale.hh	2008-07-13 12:54:21.000000000 +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; };  #endifdiff -ru live.old/liveMedia/Locale.cpp live/liveMedia/Locale.cpp--- live.old/liveMedia/Locale.cpp	2008-07-06 04:10:57.000000000 +0300+++ live/liveMedia/Locale.cpp	2008-07-13 12:55:32.000000000 +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 -ru live.old/liveMedia/RTSPClient.cpp live/liveMedia/RTSPClient.cpp--- live.old/liveMedia/RTSPClient.cpp	2008-07-06 04:10:57.000000000 +0300+++ live/liveMedia/RTSPClient.cpp	2008-07-13 12:53:35.000000000 +0300@@ -1017,7 +1017,7 @@     // This is the default value; we don't need a "Scale:" header:     buf[0] = '\0';   } else {-    Locale("C", LC_NUMERIC);+    Locale("C", LC_NUMERIC_MASK);     sprintf(buf, "Scale: %f\r\n", scale);   } @@ -1031,11 +1031,11 @@     buf[0] = '\0';   } else if (end < 0) {     // There's no end time:-    Locale("C", LC_NUMERIC);+    Locale("C", LC_NUMERIC_MASK);     sprintf(buf, "Range: npt=%.3f-\r\n", start);   } else {     // There's both a start and an end time; include them both in the "Range:" hdr-    Locale("C", LC_NUMERIC);+    Locale("C", LC_NUMERIC_MASK);     sprintf(buf, "Range: npt=%.3f-%.3f\r\n", start, end);   } @@ -2306,7 +2306,7 @@   if (_strncasecmp(line, "Scale: ", 7) != 0) return False;   line += 7; -  Locale("C", LC_NUMERIC);+  Locale("C", LC_NUMERIC_MASK);   return sscanf(line, "%f", &scale) == 1; } diff -ru live.old/liveMedia/RTSPCommon.cpp live/liveMedia/RTSPCommon.cpp--- live.old/liveMedia/RTSPCommon.cpp	2008-07-06 04:10:57.000000000 +0300+++ live/liveMedia/RTSPCommon.cpp	2008-07-13 12:53:20.000000000 +0300@@ -146,7 +146,7 @@   char const* fields = buf + 7;   while (*fields == ' ') ++fields;   float start, end;-  Locale("C", LC_NUMERIC);+  Locale("C", LC_NUMERIC_MASK);   if (sscanf(fields, "npt = %f - %f", &start, &end) == 2) {     rangeStart = start;     rangeEnd = end;--- live/config.mingw.old	2008-07-27 17:13:52.000000000 +0100+++ live/config.mingw	2008-07-27 17:19:04.000000000 +0100@@ -1,4 +1,4 @@-COMPILE_OPTS =         $(INCLUDES) -I. -O -DSOCKLEN_T=int+COMPILE_OPTS =         $(INCLUDES) -I. -O -DSOCKLEN_T=int -DLOCALE_NOT_USED C =                    c C_COMPILER =           $(CC) C_FLAGS =              $(COMPILE_OPTS) -DUSE_OUR_BZERO=1 -D__MINGW32__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -