Add WITH_UNICODE knob (should be enabled by default when WITH_GTK2 is enabled?).
Patch is obtained from wxWindows CVS.
This commit is contained in:
parent
be7d87416e
commit
239a112c46
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=93029
2 changed files with 67 additions and 1 deletions
|
@ -7,7 +7,7 @@
|
|||
|
||||
PORTNAME= wxgtk
|
||||
PORTVERSION= 2.4.2
|
||||
PORTREVISION?= 2
|
||||
PORTREVISION?= 3
|
||||
CATEGORIES= x11-toolkits
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} \
|
||||
ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/
|
||||
|
@ -49,6 +49,16 @@ USE_GNOME= gtk12
|
|||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if defined(WITH_UNICODE)
|
||||
WITH_GTK2= yes
|
||||
|
||||
.if ${OSVERSION} < 500000
|
||||
BROKEN= Unicode mode is not supported on your system
|
||||
.else
|
||||
CONFIGURE_ARGS+=--enable-unicode
|
||||
.endif
|
||||
.endif # WITH_UNICODE
|
||||
|
||||
.if defined(WITH_GTK2)
|
||||
CONFIGURE_ARGS+=--enable-gtk2 ${MACHINE_ARCH}-portbld-freebsd${OSREL}
|
||||
.else
|
||||
|
|
56
x11-toolkits/wxgtk-devel/files/patch-src-common-datetime.cpp
Normal file
56
x11-toolkits/wxgtk-devel/files/patch-src-common-datetime.cpp
Normal file
|
@ -0,0 +1,56 @@
|
|||
--- src/common/datetime.cpp.orig Tue Nov 4 09:50:09 2003
|
||||
+++ src/common/datetime.cpp Tue Nov 4 09:52:02 2003
|
||||
@@ -349,6 +349,35 @@
|
||||
return wxString(buf);
|
||||
}
|
||||
|
||||
+#ifdef HAVE_STRPTIME
|
||||
+
|
||||
+// Unicode-friendly strptime() wrapper
|
||||
+static const wxChar *
|
||||
+CallStrptime(const wxChar *input, const char *fmt, tm *tm)
|
||||
+{
|
||||
+ // the problem here is that strptime() returns pointer into the string we
|
||||
+ // passed to it while we're really interested in the pointer into the
|
||||
+ // original, Unicode, string so we try to transform the pointer back
|
||||
+#if wxUSE_UNICODE
|
||||
+ wxCharBuffer inputMB(wxConvertWX2MB(input));
|
||||
+#else // ASCII
|
||||
+ const char * const inputMB = input;
|
||||
+#endif // Unicode/Ascii
|
||||
+
|
||||
+ const char *result = strptime(inputMB, fmt, tm);
|
||||
+ if ( !result )
|
||||
+ return NULL;
|
||||
+
|
||||
+#if wxUSE_UNICODE
|
||||
+ // FIXME: this is wrong in presence of surrogates &c
|
||||
+ return input + (result - inputMB.data());
|
||||
+#else // ASCII
|
||||
+ return result;
|
||||
+#endif // Unicode/Ascii
|
||||
+}
|
||||
+
|
||||
+#endif // HAVE_STRPTIME
|
||||
+
|
||||
// if year and/or month have invalid values, replace them with the current ones
|
||||
static void ReplaceDefaultYearMonthWithCurrent(int *year,
|
||||
wxDateTime::Month *month)
|
||||
@@ -2920,7 +2949,7 @@
|
||||
// to our generic code anyhow (FIXME !Unicode friendly)
|
||||
{
|
||||
struct tm tm;
|
||||
- const wxChar *result = strptime(input, "%x", &tm);
|
||||
+ const wxChar *result = CallStrptime(input, "%x", &tm);
|
||||
if ( result )
|
||||
{
|
||||
input = result;
|
||||
@@ -2985,7 +3014,7 @@
|
||||
{
|
||||
// use strptime() to do it for us (FIXME !Unicode friendly)
|
||||
struct tm tm;
|
||||
- input = strptime(input, "%X", &tm);
|
||||
+ input = CallStrptime(input, "%X", &tm);
|
||||
if ( !input )
|
||||
{
|
||||
return (wxChar *)NULL;
|
Loading…
Reference in a new issue