<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[121091] trunk/dports/www/FileZilla/files</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/121091">121091</a></dd>
<dt>Author</dt> <dd>mojca@macports.org</dd>
<dt>Date</dt> <dd>2014-06-17 03:33:58 -0700 (Tue, 17 Jun 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>FileZilla: add missing patch</pre>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportswwwFileZillafilespatchconfigurediff">trunk/dports/www/FileZilla/files/patch-configure.diff</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkdportswwwFileZillafilespatchwxWidgets30diff">trunk/dports/www/FileZilla/files/patch-wxWidgets-3.0.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportswwwFileZillafilespatchconfigurediff"></a>
<div class="addfile"><h4>Added: trunk/dports/www/FileZilla/files/patch-configure.diff (0 => 121091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/www/FileZilla/files/patch-configure.diff                                (rev 0)
+++ trunk/dports/www/FileZilla/files/patch-configure.diff        2014-06-17 10:33:58 UTC (rev 121091)
</span><span class="lines">@@ -0,0 +1,62 @@
</span><ins>+http://trac.filezilla-project.org/ticket/9582
+
+--- configure.orig
++++ configure
+@@ -17870,12 +17870,12 @@ if test -n &quot;$LIBGTK_CFLAGS&quot;; then
+     pkg_cv_LIBGTK_CFLAGS=&quot;$LIBGTK_CFLAGS&quot;
+  elif test -n &quot;$PKG_CONFIG&quot;; then
+     if test -n &quot;$PKG_CONFIG&quot; &amp;&amp; \
+-    { { $as_echo &quot;$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \&quot;gtk+-2.0\&quot;&quot;; } &gt;&amp;5
+-  ($PKG_CONFIG --exists --print-errors &quot;gtk+-2.0&quot;) 2&gt;&amp;5
++    { { $as_echo &quot;$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \&quot;gtk+-3.0\&quot;&quot;; } &gt;&amp;5
++  ($PKG_CONFIG --exists --print-errors &quot;gtk+-3.0&quot;) 2&gt;&amp;5
+   ac_status=$?
+   $as_echo &quot;$as_me:${as_lineno-$LINENO}: \$? = $ac_status&quot; &gt;&amp;5
+   test $ac_status = 0; }; then
+-  pkg_cv_LIBGTK_CFLAGS=`$PKG_CONFIG --cflags &quot;gtk+-2.0&quot; 2&gt;/dev/null`
++  pkg_cv_LIBGTK_CFLAGS=`$PKG_CONFIG --cflags &quot;gtk+-3.0&quot; 2&gt;/dev/null`
+                       test &quot;x$?&quot; != &quot;x0&quot; &amp;&amp; pkg_failed=yes
+ else
+   pkg_failed=yes
+@@ -17887,12 +17887,12 @@ if test -n &quot;$LIBGTK_LIBS&quot;; then
+     pkg_cv_LIBGTK_LIBS=&quot;$LIBGTK_LIBS&quot;
+  elif test -n &quot;$PKG_CONFIG&quot;; then
+     if test -n &quot;$PKG_CONFIG&quot; &amp;&amp; \
+-    { { $as_echo &quot;$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \&quot;gtk+-2.0\&quot;&quot;; } &gt;&amp;5
+-  ($PKG_CONFIG --exists --print-errors &quot;gtk+-2.0&quot;) 2&gt;&amp;5
++    { { $as_echo &quot;$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \&quot;gtk+-3.0\&quot;&quot;; } &gt;&amp;5
++  ($PKG_CONFIG --exists --print-errors &quot;gtk+-3.0&quot;) 2&gt;&amp;5
+   ac_status=$?
+   $as_echo &quot;$as_me:${as_lineno-$LINENO}: \$? = $ac_status&quot; &gt;&amp;5
+   test $ac_status = 0; }; then
+-  pkg_cv_LIBGTK_LIBS=`$PKG_CONFIG --libs &quot;gtk+-2.0&quot; 2&gt;/dev/null`
++  pkg_cv_LIBGTK_LIBS=`$PKG_CONFIG --libs &quot;gtk+-3.0&quot; 2&gt;/dev/null`
+                       test &quot;x$?&quot; != &quot;x0&quot; &amp;&amp; pkg_failed=yes
+ else
+   pkg_failed=yes
+@@ -17913,21 +17913,21 @@ else
+         _pkg_short_errors_supported=no
+ fi
+         if test $_pkg_short_errors_supported = yes; then
+-                LIBGTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs &quot;gtk+-2.0&quot; 2&gt;&amp;1`
++                LIBGTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs &quot;gtk+-3.0&quot; 2&gt;&amp;1`
+         else
+-                LIBGTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs &quot;gtk+-2.0&quot; 2&gt;&amp;1`
++                LIBGTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs &quot;gtk+-3.0&quot; 2&gt;&amp;1`
+         fi
+         # Put the nasty error message in config.log where it belongs
+         echo &quot;$LIBGTK_PKG_ERRORS&quot; &gt;&amp;5


+-      as_fn_error $? &quot;gtk+-2.0 was not found, even though the used version of wxWidgets depends on it. Are you missing the gtk+2.0 development files?&quot; &quot;$LINENO&quot; 5
++      as_fn_error $? &quot;gtk+-3.0 was not found, even though the used version of wxWidgets depends on it. Are you missing the gtk+2.0 development files?&quot; &quot;$LINENO&quot; 5

+ elif test $pkg_failed = untried; then
+              { $as_echo &quot;$as_me:${as_lineno-$LINENO}: result: no&quot; &gt;&amp;5
+ $as_echo &quot;no&quot; &gt;&amp;6; }

+-      as_fn_error $? &quot;gtk+-2.0 was not found, even though the used version of wxWidgets depends on it. Are you missing the gtk+2.0 development files?&quot; &quot;$LINENO&quot; 5
++      as_fn_error $? &quot;gtk+-3.0 was not found, even though the used version of wxWidgets depends on it. Are you missing the gtk+2.0 development files?&quot; &quot;$LINENO&quot; 5

+ else
+         LIBGTK_CFLAGS=$pkg_cv_LIBGTK_CFLAGS
</ins></span></pre></div>
<a id="trunkdportswwwFileZillafilespatchwxWidgets30diff"></a>
<div class="delfile"><h4>Deleted: trunk/dports/www/FileZilla/files/patch-wxWidgets-3.0.diff (121090 => 121091)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/www/FileZilla/files/patch-wxWidgets-3.0.diff        2014-06-17 10:23:02 UTC (rev 121090)
+++ trunk/dports/www/FileZilla/files/patch-wxWidgets-3.0.diff        2014-06-17 10:33:58 UTC (rev 121091)
</span><span class="lines">@@ -1,990 +0,0 @@
</span><del>-http://trac.filezilla-project.org/ticket/8272
-
---- configure.orig
-+++ configure
-@@ -691,6 +691,9 @@ PACKAGE_VERSION_MAJOR
- WINDRESFLAGS
- WINDRES
- WX_CONFIG_WITH_ARGS
-+WX_VERSION_MICRO
-+WX_VERSION_MINOR
-+WX_VERSION_MAJOR
- WX_RESCOMP
- WX_VERSION
- WX_LIBS_STATIC
-@@ -16042,7 +16045,7 @@ $as_echo_n &quot;checking for wxWidgets version &gt;= $min_wx_version... &quot; &gt;&amp;6; }
- $as_echo_n &quot;checking for wxWidgets version &gt;= $min_wx_version (--unicode=yes --universal=no)... &quot; &gt;&amp;6; }
-     fi

--    WX_CONFIG_WITH_ARGS=&quot;$WX_CONFIG_PATH $wx_config_args --unicode=yes --universal=no aui,xrc,adv,core,xml,net,base&quot;
-+    WX_CONFIG_WITH_ARGS=&quot;$WX_CONFIG_PATH $wx_config_args --unicode=yes --universal=no&quot;

-     WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2&gt;/dev/null`
-     wx_config_major_version=`echo $WX_VERSION | \
-@@ -16081,14 +16084,13 @@ $as_echo_n &quot;checking for wxWidgets version &gt;= $min_wx_version (--unicode=yes --u


-     if test -n &quot;$wx_ver_ok&quot;; then
--
-       { $as_echo &quot;$as_me:${as_lineno-$LINENO}: result: yes (version $WX_VERSION)&quot; &gt;&amp;5
- $as_echo &quot;yes (version $WX_VERSION)&quot; &gt;&amp;6; }
--      WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`
-+      WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs aui,html,xrc,adv,core,xml,net,base`

-                               { $as_echo &quot;$as_me:${as_lineno-$LINENO}: checking for wxWidgets static library&quot; &gt;&amp;5
- $as_echo_n &quot;checking for wxWidgets static library... &quot; &gt;&amp;6; }
--      WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2&gt;/dev/null`
-+      WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs aui,html,xrc,adv,core,xml,net,base 2&gt;/dev/null`
-       if test &quot;x$WX_LIBS_STATIC&quot; = &quot;x&quot;; then
-         { $as_echo &quot;$as_me:${as_lineno-$LINENO}: result: no&quot; &gt;&amp;5
- $as_echo &quot;no&quot; &gt;&amp;6; }
-@@ -16131,16 +16133,16 @@ $as_echo &quot;yes&quot; &gt;&amp;6; }
-       fi

-       if test &quot;x$wx_has_cppflags&quot; = x ; then
--                  WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
-+                  WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags aui,html,xrc,adv,core,xml,net,base`
-          WX_CPPFLAGS=$WX_CFLAGS
-          WX_CXXFLAGS=$WX_CFLAGS

-          WX_CFLAGS_ONLY=$WX_CFLAGS
-          WX_CXXFLAGS_ONLY=$WX_CFLAGS
-       else
--                  WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags`
--         WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags`
--         WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
-+                  WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags aui,html,xrc,adv,core,xml,net,base`
-+         WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags aui,html,xrc,adv,core,xml,net,base`
-+         WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags aui,html,xrc,adv,core,xml,net,base`

-          WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed &quot;s@^$WX_CPPFLAGS *@@&quot;`
-          WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed &quot;s@^$WX_CFLAGS *@@&quot;`
-@@ -16164,7 +16166,32 @@ $as_echo &quot;no (version $WX_VERSION is not new enough)&quot; &gt;&amp;6; }
-        WX_LIBS=&quot;&quot;
-        WX_LIBS_STATIC=&quot;&quot;
-        WX_RESCOMP=&quot;&quot;
--       :
-+
-+       if test ! -z &quot;--unicode=yes --universal=no&quot;; then
-+
-+          wx_error_message=&quot;
-+    The configuration you asked for $PACKAGE_NAME requires a wxWidgets
-+    build with the following settings:
-+        --unicode=yes --universal=no
-+    but such build is not available.
-+
-+    To see the wxWidgets builds available on this system, please use
-+    'wx-config --list' command. To use the default build, returned by
-+    'wx-config --selected-config', use the options with their 'auto'
-+    default values.&quot;
-+
-+       fi
-+
-+       wx_error_message=&quot;
-+    The requested wxWidgets build couldn't be found.
-+    $wx_error_message
-+
-+    If you still get this error, then check that 'wx-config' is
-+    in path, the directory where wxWidgets libraries are installed
-+    (returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH
-+    or equivalent variable and wxWidgets version is $MIN_WX_VERSION or above.&quot;
-+
-+       as_fn_error $? &quot;$wx_error_message&quot; &quot;$LINENO&quot; 5

-     fi
-   else
-@@ -16190,6 +16217,13 @@ $as_echo &quot;no (version $WX_VERSION is not new enough)&quot; &gt;&amp;6; }



-+      WX_VERSION_MAJOR=&quot;$wx_config_major_version&quot;
-+  WX_VERSION_MINOR=&quot;$wx_config_minor_version&quot;
-+  WX_VERSION_MICRO=&quot;$wx_config_micro_version&quot;
-+
-+
-+
-+
-   if test &quot;$wxWin&quot; != 1; then
-     as_fn_error $? &quot;
-         wxWidgets must be installed on your system
-@@ -16205,9 +16239,6 @@ $as_echo &quot;no (version $WX_VERSION is not new enough)&quot; &gt;&amp;6; }
-         equivalent variable and wxWidgets version is $MIN_WX_VERSION or above.
-     &quot; &quot;$LINENO&quot; 5
-   fi
--  if test &quot;$wx_config_major_version&quot; -gt &quot;2&quot; || test &quot;$wx_config_minor_version&quot; -gt &quot;8&quot;; then
--    as_fn_error $? &quot;You need to use wxWidgets 2.8.x to compile this program.&quot; &quot;$LINENO&quot; 5
--  fi

-   # --universal=no doesn't work correctly, it still accepts universal builds. Reject it manually here.
-   if echo &quot;$WX_CPPFLAGS&quot; | grep __WXUNIVERSAL__ &gt; /dev/null; then
---- src/engine/local_path.cpp.orig
-+++ src/engine/local_path.cpp
-@@ -48,6 +48,7 @@ bool CLocalPath::SetPath(const wxString&amp; path, wxString* file /*=0*/)

-         wxChar* out;
-         wxChar* start;
-+        wxStringBuffer* buffer = 0;
-         if (*in == '\\')
-         {
-                 // possibly UNC
-@@ -59,7 +60,8 @@ bool CLocalPath::SetPath(const wxString&amp; path, wxString* file /*=0*/)
-                         return false;
-                 }

--                start = m_path.GetWriteBuf(path.Len() + 2);
-+                buffer = new wxStringBuffer(m_path, path.Len() + 2);
-+                start = *buffer;
-                 out = start;
-                 *out++ = '\\';
-                 *out++ = '\\';
-@@ -77,7 +79,7 @@ bool CLocalPath::SetPath(const wxString&amp; path, wxString* file /*=0*/)
-                 {
-                         // not a valid UNC path
-                         *start = 0;
--                        m_path.UngetWriteBuf( 0 );
-+                        delete buffer;
-                         return false;
-                 }

-@@ -87,21 +89,22 @@ bool CLocalPath::SetPath(const wxString&amp; path, wxString* file /*=0*/)
-         {
-                 // Regular path

--                start = m_path.GetWriteBuf(path.Len() + 2);
-+                buffer = new wxStringBuffer(m_path, path.Len() + 2);
-+                start = *buffer;
-                 out = start;
-                 *out++ = *in++;

-                 if (*in++ != ':')
-                 {
-                         *start = 0;
--                        m_path.UngetWriteBuf( 0 );
-+                        delete buffer;
-                         return false;
-                 }
-                 *out++ = ':';
-                 if (*in != '/' &amp;&amp; *in != '\\' &amp;&amp; *in)
-                 {
-                         *start = 0;
--                        m_path.UngetWriteBuf( 0 );
-+                        delete buffer;
-                         return false;
-                 }
-                 *out++ = path_separator;
-@@ -120,8 +123,13 @@ bool CLocalPath::SetPath(const wxString&amp; path, wxString* file /*=0*/)
-                 return false;
-         }

-+#if wxCHECK_VERSION(2, 9, 0)
-+        wxStringBuffer* buffer = new wxStringBuffer(m_path, path.Len() + 2);
-+        wxChar* out = *buffer;
-+#else
-         wxChar* start = m_path.GetWriteBuf(path.Len() + 2);
-         wxChar* out = start;
-+#endif

-         *out++ = '/';
-         segments.push_back(out);
-@@ -210,9 +218,13 @@ bool CLocalPath::SetPath(const wxString&amp; path, wxString* file /*=0*/)
-         }

-         *out = 0;
--
-+#if !wxCHECK_VERSION(2, 9, 0)
-         m_path.UngetWriteBuf( out - start );
--
-+#else
-+        if (buffer != 0) {
-+                delete buffer;
-+        }
-+#endif
-         ::Coalesce(m_path);

-         return true;
---- src/engine/logging.cpp.orig
-+++ src/engine/logging.cpp
-@@ -51,6 +51,43 @@ CLogging::~CLogging()
-         }
- }

-+#if wxCHECK_VERSION(2, 9, 0)
-+void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1) const
-+{
-+        LogMessage(nMessageType, msgFormat, (const char*)(wxString() &lt;&lt; value1).c_str());
-+}
-+
-+void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1, wxCStrData value2) const
-+{
-+        LogMessage(nMessageType, msgFormat, (const char*)(wxString() &lt;&lt; value1).c_str(), value2.AsWChar());
-+}
-+
-+void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1, wxCStrData value2, wxCStrData value3) const
-+{
-+        LogMessage(nMessageType, msgFormat, (const char*)(wxString() &lt;&lt; value1).c_str(), value2.AsWChar(), value3.AsWChar());
-+}
-+
-+void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1) const
-+{
-+        LogMessage(nMessageType, msgFormat, value1.AsWChar());
-+}
-+
-+void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1, wxCStrData value2) const
-+{
-+        LogMessage(nMessageType, msgFormat, value1.AsWChar(), value2.AsWChar());
-+}
-+
-+void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1, wxCStrData value2, wxCStrData value3, wxCStrData value4) const
-+{
-+        LogMessage(nMessageType, msgFormat, value1.AsWChar(), value2.AsWChar(), value3.AsWChar(), value4.AsWChar());
-+}
-+
-+void CLogging::LogMessage(wxString sourceFile, int nSourceLine, void *pInstance, MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1) const
-+{
-+        LogMessage(sourceFile, nSourceLine, pInstance, nMessageType, msgFormat, value1.AsWChar());
-+}
-+#endif
-+
- void CLogging::LogMessage(MessageType nMessageType, const wxChar *msgFormat, ...) const
- {
-         InitLogFile();
---- src/engine/logging_private.h.orig
-+++ src/engine/logging_private.h
-@@ -7,6 +7,16 @@ public:
-         CLogging(CFileZillaEnginePrivate *pEngine);
-         virtual ~CLogging();

-+#if wxCHECK_VERSION(2, 9, 0)
-+        void LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1) const;
-+        void LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1, wxCStrData value2) const;
-+        void LogMessage(MessageType nMessageType, const wxChar *msgFormat, int value1, wxCStrData value2, wxCStrData value3) const;
-+        void LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1) const;
-+        void LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1, wxCStrData value2) const;
-+        void LogMessage(MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1, wxCStrData value2, wxCStrData value3, wxCStrData value4) const;
-+        void LogMessage(wxString sourceFile, int nSourceLine, void *pInstance, MessageType nMessageType, const wxChar *msgFormat, wxCStrData value1) const;
-+#endif
-+
-         void LogMessage(MessageType nMessageType, const wxChar *msgFormat, ...) const;
-         void LogMessageRaw(MessageType nMessageType, const wxChar *msg) const;
-         void LogMessage(wxString sourceFile, int nSourceLine, void *pInstance, MessageType nMessageType, const wxChar *msgFormat, ...) const;
---- src/engine/misc.cpp.orig
-+++ src/engine/misc.cpp
-@@ -349,11 +349,24 @@ void MakeLowerAscii(wxString&amp; str)
- {
-         for (size_t i = 0; i &lt; str.Len(); i++)
-         {
-+#if wxCHECK_VERSION(2, 9, 0)
-+                char c;
-+                str.GetChar(i).GetAsChar(&amp;c);
-+                if (c &gt;= 'A' &amp;&amp; c &lt;= 'Z')
-+                {
-+                        c += 32;
-+                        str.SetChar(i, wxUniChar(c));
-+                } else if (c == 0x130 || c == 0x131) {
-+                        c = 'i';
-+                        str.SetChar(i, wxUniChar(c));
-+                }
-+#else
-                 wxChar&amp; c = str[i];
-                 if (c &gt;= 'A' &amp;&amp; c &lt;= 'Z')
-                         c += 32;
-                 else if (c == 0x130 || c == 0x131)
-                         c = 'i';
-+#endif
-         }
- }

---- src/engine/server.cpp.orig
-+++ src/engine/server.cpp
-@@ -12,13 +12,13 @@ struct t_protocolInfo
- };

- static const t_protocolInfo protocolInfos[] = {
--        { FTP,          _T(&quot;ftp&quot;),    false, 21,  true,  wxTRANSLATE(&quot;FTP - File Transfer Protocol with optional encryption&quot;),                 true  },
-+        { FTP,          _T(&quot;ftp&quot;),    false, 21,  true,  _T(&quot;FTP - File Transfer Protocol with optional encryption&quot;),          true  },
-         { SFTP,         _T(&quot;sftp&quot;),   true,  22,  false, _T(&quot;SFTP - SSH File Transfer Protocol&quot;),                              false },
-         { HTTP,         _T(&quot;http&quot;),   true,  80,  false, _T(&quot;HTTP - Hypertext Transfer Protocol&quot;),                             false  },
--        { HTTPS,        _T(&quot;https&quot;),  true, 443,  true,  wxTRANSLATE(&quot;HTTPS - HTTP over TLS&quot;),                                 false  },
--        { FTPS,         _T(&quot;ftps&quot;),   true, 990,  true,  wxTRANSLATE(&quot;FTPS - FTP over implicit TLS/SSL&quot;),                      true  },
--        { FTPES,        _T(&quot;ftpes&quot;),  true,  21,  true,  wxTRANSLATE(&quot;FTPES - FTP over explicit TLS/SSL&quot;),                     true  },
--        { INSECURE_FTP, _T(&quot;ftp&quot;),    false, 21,  true,  wxTRANSLATE(&quot;FTP - Insecure File Transfer Protocol&quot;), true  },
-+        { HTTPS,        _T(&quot;https&quot;),  true, 443,  true,  _T(&quot;HTTPS - HTTP over TLS&quot;),                                          false  },
-+        { FTPS,         _T(&quot;ftps&quot;),   true, 990,  true,  _T(&quot;FTPS - FTP over implicit TLS/SSL&quot;),                               true  },
-+        { FTPES,        _T(&quot;ftpes&quot;),  true,  21,  true,  _T(&quot;FTPES - FTP over explicit TLS/SSL&quot;),                              true  },
-+        { INSECURE_FTP, _T(&quot;ftp&quot;),    false, 21,  true,  _T(&quot;FTP - Insecure File Transfer Protocol&quot;),                          true  },
-         { UNKNOWN,      _T(&quot;&quot;),       false, 21,  false, _T(&quot;&quot;), false }
- };

---- src/engine/serverpath.cpp.orig
-+++ src/engine/serverpath.cpp
-@@ -258,8 +258,13 @@ wxString CServerPath::GetSafePath() const
-                 len += iter-&gt;Length() + 2 + INTLENGTH;

-         wxString safepath;
-+#if wxCHECK_VERSION(2, 9, 0)
-+        wxStringBuffer* buffer = new wxStringBuffer(safepath, len);
-+        wxChar* t = *buffer;
-+#else
-         wxChar* start = safepath.GetWriteBuf(len);
-         wxChar* t = start;
-+#endif

-         t = fast_sprint_number(t, m_type);
-         *(t++) = ' ';
-@@ -281,8 +286,11 @@ wxString CServerPath::GetSafePath() const
-                 t += iter-&gt;size();
-         }
-         *t = 0;
--
-+#if !wxCHECK_VERSION(2, 9, 0)
-         safepath.UngetWriteBuf( t - start );
-+#else
-+        delete buffer;
-+#endif
-         safepath.Shrink();

-         return safepath;
---- src/engine/socket.cpp.orig
-+++ src/engine/socket.cpp
-@@ -1187,7 +1187,7 @@ void CSocket::SetEventHandler(CSocketEventHandler* pEvtHandler)
-         }
- }

--#define ERRORDECL(c, desc) { c, _T(#c), wxTRANSLATE(desc) },
-+#define ERRORDECL(c, desc) { c, _T(#c), _T(desc) },

- struct Error_table
- {
---- src/engine/string_coalescer.cpp.orig
-+++ src/engine/string_coalescer.cpp
-@@ -67,7 +67,11 @@ struct fast_equal
-         {
-                 // wxString is CoW, yet it doesn't even do this fast pointer
-                 // comparison in its less and/or equal operator(s).
-+#if wxCHECK_VERSION(2, 9, 0)
-+                return lhs == rhs;
-+#else
-                 return lhs.c_str() == rhs.c_str() || lhs == rhs;
-+#endif
-         }
- };

---- src/include/libfilezilla.h.orig
-+++ src/include/libfilezilla.h
-@@ -21,6 +21,10 @@
- #include &lt;wx/datetime.h&gt;
- #include &lt;wx/event.h&gt;
- #include &lt;wx/string.h&gt;
-+#if wxCHECK_VERSION(2, 9, 0)
-+#include &lt;wx/translation.h&gt;
-+#include &lt;wx/dcclient.h&gt;
-+#endif

- #include &lt;list&gt;
- #include &lt;vector&gt;
---- src/interface/FileZilla.cpp.orig
-+++ src/interface/FileZilla.cpp
-@@ -269,7 +269,7 @@ bool CFileZillaApp::OnInit()
- #else
-                 if (!pInfo || !SetLocale(pInfo-&gt;Language))
-                 {
--                        if (pInfo &amp;&amp; pInfo-&gt;Description)
-+                        if (pInfo &amp;&amp; !pInfo-&gt;Description.IsEmpty())
-                                 wxMessageBoxEx(wxString::Format(_(&quot;Failed to set language to %s (%s), using default system language&quot;), pInfo-&gt;Description.c_str(), language.c_str()), _(&quot;Failed to change language&quot;), wxICON_EXCLAMATION);
-                         else
-                                 wxMessageBoxEx(wxString::Format(_(&quot;Failed to set language to %s, using default system language&quot;), language.c_str()), _(&quot;Failed to change language&quot;), wxICON_EXCLAMATION);
-@@ -694,7 +694,7 @@ void CFileZillaApp::CheckExistsFzsftp()
-         if (!wxFileName::FileExists(executable))
-         {
-                 wxMessageBoxEx(wxString::Format(_(&quot;%s could not be found. Without this component of FileZilla, SFTP will not work.\n\nPlease download FileZilla again. If this problem persists, please submit a bug report.&quot;), executable.c_str()),
--                        _(&quot;File not found&quot;), wxICON_ERROR);
-+                        _(&quot;File not found&quot;), wxICON_ERROR | wxOK);
-                 executable.clear();
-         }

---- src/interface/Mainfrm.cpp.orig
-+++ src/interface/Mainfrm.cpp
-@@ -759,14 +759,19 @@ void CMainFrame::OnMenuHandler(wxCommandEvent &amp;event)
-                         // Do a crude approach: Drop everything unexpected...
-                         for (unsigned int i = 0; i &lt; version.Len(); i++)
-                         {
-+#if wxCHECK_VERSION(2, 9, 0)
-+                                char c;
-+                                version.GetChar(i).GetAsChar(&amp;c);
-+#else
-                                 wxChar&amp; c = version[i];
-+#endif
-                                 if ((version[i] &gt;= '0' &amp;&amp; version[i] &lt;= '9') ||
-                                         (version[i] &gt;= 'a' &amp;&amp; version[i] &lt;= 'z') ||
-                                         (version[i] &gt;= 'A' &amp;&amp; version[i] &lt;= 'Z') ||
-                                         version[i] == '-' || version[i] == '.' ||
-                                         version[i] == '_')
-                                 {
--                                        url += c;
-+                                        url.Append(c);
-                                 }
-                         }
-                 }
-@@ -784,7 +789,11 @@ void CMainFrame::OnMenuHandler(wxCommandEvent &amp;event)
-                         {
-                                 pStatusBar-&gt;Show(show);
-                                 wxSizeEvent evt;
-+#if wxCHECK_VERSION(2, 9, 0)
-+                                controls-&gt;pLocalListViewPanel-&gt;ProcessWindowEvent(evt);
-+#else
-                                 controls-&gt;pLocalListViewPanel-&gt;ProcessEvent(evt);
-+#endif
-                         }
-                 }
-                 if (controls &amp;&amp; controls-&gt;pRemoteListViewPanel)
-@@ -794,7 +803,11 @@ void CMainFrame::OnMenuHandler(wxCommandEvent &amp;event)
-                         {
-                                 pStatusBar-&gt;Show(show);
-                                 wxSizeEvent evt;
-+#if wxCHECK_VERSION(2, 9, 0)
-+                                controls-&gt;pRemoteListViewPanel-&gt;ProcessWindowEvent(evt);
-+#else
-                                 controls-&gt;pRemoteListViewPanel-&gt;ProcessEvent(evt);
-+#endif
-                         }
-                 }
-         }
---- src/interface/QueueView.cpp.orig
-+++ src/interface/QueueView.cpp
-@@ -3443,9 +3443,13 @@ wxString CQueueView::ReplaceInvalidCharacters(const wxString&amp; filename)
-         const wxChar replace = COptions::Get()-&gt;GetOption(OPTION_INVALID_CHAR_REPLACE)[0];

-         wxString result;
--
-+#if wxCHECK_VERSION(2, 9, 0)
-+        wxStringBuffer* buffer = new wxStringBuffer(result, filename.Len() + 1);
-+        wxChar* buf = *buffer;
-+#else
-         wxChar* start = result.GetWriteBuf(filename.Len() + 1);
-         wxChar* buf = start;
-+#endif

-         const wxChar* p = filename.c_str();
-         while (*p)
-@@ -3480,9 +3484,11 @@ wxString CQueueView::ReplaceInvalidCharacters(const wxString&amp; filename)
-                 p++;
-         }
-         *buf = 0;
--
-+#if wxCHECK_VERSION(2, 9, 0)
-+        delete buffer;
-+#else
-         result.UngetWriteBuf( buf - start );
--
-+#endif
-         return result;
- }

---- src/interface/RemoteTreeView.cpp.orig
-+++ src/interface/RemoteTreeView.cpp
-@@ -351,7 +351,7 @@ void CRemoteTreeView::SetDirectoryListing(const CSharedPointer&lt;const CDirectoryL
-         SetItemImages(parent, false);

- #ifndef __WXMSW__
--        m_freezeCount--;
-+        Thaw();
- #endif
-         if (!modified)
-                 SafeSelectItem(parent);
---- src/interface/StatusView.cpp.orig
-+++ src/interface/StatusView.cpp
-@@ -71,7 +71,7 @@ public:
-         {
-                 wxWindow* parent = GetParent();
-                 event.SetEventObject(parent);
--                parent-&gt;ProcessEvent(event);
-+                parent-&gt;GetEventHandler()-&gt;ProcessEvent(event);
-         }
- #else
-         void OnKeyDown(wxKeyEvent&amp; event)
-@@ -89,7 +89,7 @@ public:
-                 navEvent.SetDirection(!event.ShiftDown());
-                 navEvent.SetFromTab(true);
-                 navEvent.ResumePropagation(1);
--                parent-&gt;ProcessEvent(navEvent);
-+                parent-&gt;GetEventHandler()-&gt;ProcessEvent(navEvent);
-         }
- #endif
- };
---- src/interface/aui_notebook_ex.cpp.orig
-+++ src/interface/aui_notebook_ex.cpp
-@@ -3,7 +3,16 @@
- #include &quot;aui_notebook_ex.h&quot;
- #include &lt;wx/dcmirror.h&gt;

-+#if wxCHECK_VERSION(2, 9, 0)
-+wxColor wxAuiStepColour(const wxColor&amp; c, int ialpha)
-+{
-+        wxColor* result = new wxColor(c);
-+        result-&gt;ChangeLightness(ialpha);
-+        return *result;
-+}
-+#else
- wxColor wxAuiStepColour(const wxColor&amp; c, int ialpha);
-+#endif

- #ifdef __WXMSW__
- #define TABCOLOUR wxSYS_COLOUR_3DFACE
-@@ -184,9 +193,6 @@ public:
-                 }
-         }

--#ifdef __WXGTK__
--        virtual GdkWindow* GetGDKWindow() const { return m_original_dc-&gt;GetGDKWindow(); }
--#endif
- protected:
-         int m_gradient_called;
-         int m_rectangle_called;
-@@ -215,9 +221,15 @@ public:
-         virtual wxAuiTabArt* Clone()
-         {
-                 wxAuiTabArtEx *art = new wxAuiTabArtEx(m_pNotebook, m_bottom, m_data);
-+#if wxCHECK_VERSION(2, 9, 0)
-+                art-&gt;SetNormalFont(m_normalFont);
-+                art-&gt;SetSelectedFont(m_selectedFont);
-+                art-&gt;SetMeasuringFont(m_measuringFont);
-+#else
-                 art-&gt;SetNormalFont(m_normal_font);
-                 art-&gt;SetSelectedFont(m_selected_font);
-                 art-&gt;SetMeasuringFont(m_measuring_font);
-+#endif
-                 return art;
-         }

-@@ -257,12 +269,21 @@ public:
-                                                  int* x_extent)
-         {
- #ifndef __WXMAC__
-+#if wxCHECK_VERSION(2, 9, 0)
-+                m_baseColour = wxSystemSettings::GetColour(TABCOLOUR);
-+#else
-                 m_base_colour = wxSystemSettings::GetColour(TABCOLOUR);
- #endif
-+#endif
-                 if (!pane.active)
-                 {
-+#if wxCHECK_VERSION(2, 9, 0)
-+                        if (m_baseColour.Red() + m_baseColour.Green() + m_baseColour.Blue() &gt;= 384)
-+                                m_baseColour = wxColour( m_baseColour.Red() * 0.95, m_baseColour.Green() * 0.95, m_baseColour.Blue() * 0.95 );
-+#else
-                         if (m_base_colour.Red() + m_base_colour.Green() + m_base_colour.Blue() &gt;= 384)
-                                 m_base_colour = wxColour( m_base_colour.Red() * 0.95, m_base_colour.Green() * 0.95, m_base_colour.Blue() * 0.95 );
-+#endif

-                         dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));
-                         if (m_pNotebook-&gt;Highlighted(m_pNotebook-&gt;GetPageIndex(pane.window)))
-@@ -270,27 +291,49 @@ public:
-                                 if (!m_fonts_initialized)
-                                 {
-                                         m_fonts_initialized = true;
-+#if wxCHECK_VERSION(2, 9, 0)
-+                                        m_original_normal_font = m_normalFont;
-+                                        m_highlighted_font = m_normalFont;
-+#else
-                                         m_original_normal_font = m_normal_font;
-                                         m_highlighted_font = m_normal_font;
-+#endif
-                                         m_highlighted_font.SetWeight(wxFONTWEIGHT_BOLD);
-                                         m_highlighted_font.SetStyle(wxFONTSTYLE_ITALIC);
-                                 }
-+#if wxCHECK_VERSION(2, 9, 0)
-+                                m_normalFont = m_highlighted_font;
-+#else
-                                 m_normal_font = m_highlighted_font;
-+#endif
-                         }
-                         else if (m_fonts_initialized)
-+#if wxCHECK_VERSION(2, 9, 0)
-+                                m_normalFont = m_original_normal_font;
-+#else
-                                 m_normal_font = m_original_normal_font;
-+#endif
-                 }
--
-+#if wxCHECK_VERSION(2, 9, 0)
-+                CFilterDC filter_dc(dc, pane.active ? 1 : 0, (m_tabCtrlHeight % 2) != 0, m_bottom);
-+                wxAuiGenericTabArt::DrawTab(*((wxDC*)&amp;filter_dc), wnd, pane, in_rect, close_button_state, out_tab_rect, out_button_rect, x_extent);
-+                m_baseColour = wxSystemSettings::GetColour(TABCOLOUR);
-+#else
-                 CFilterDC filter_dc(dc, pane.active ? 1 : 0, (m_tab_ctrl_height % 2) != 0, m_bottom);
-                 wxAuiDefaultTabArt::DrawTab(*((wxDC*)&amp;filter_dc), wnd, pane, in_rect, close_button_state, out_tab_rect, out_button_rect, x_extent);
--
-                 m_base_colour = wxSystemSettings::GetColour(TABCOLOUR);
-+#endif
-         }

-         virtual void DrawBackground(wxDC&amp; dc, wxWindow* wnd, const wxRect&amp; rect)
-         {
-+#if wxCHECK_VERSION(2, 9, 0)
-+                CFilterDC filter_dc(dc, 2, (m_tabCtrlHeight % 2) != 0, m_bottom);
-+                wxAuiGenericTabArt::DrawBackground(*((wxDC*)&amp;filter_dc), wnd, rect);
-+#else
-                 CFilterDC filter_dc(dc, 2, (m_tab_ctrl_height % 2) != 0, m_bottom);
-                 wxAuiDefaultTabArt::DrawBackground(*((wxDC*)&amp;filter_dc), wnd, rect);
-+#endif
-         }
- protected:
-         wxAuiNotebookEx* m_pNotebook;
---- src/interface/commandqueue.cpp.orig
-+++ src/interface/commandqueue.cpp
-@@ -289,7 +289,7 @@ void CCommandQueue::GrantExclusiveEngineRequest()

-         wxCommandEvent evt(fzEVT_GRANTEXCLUSIVEENGINEACCESS);
-         evt.SetId(m_requestId);
--        m_pMainFrame-&gt;GetQueue()-&gt;AddPendingEvent(evt);
-+        m_pMainFrame-&gt;GetQueue()-&gt;GetEventHandler()-&gt;AddPendingEvent(evt);
- }

- CFileZillaEngine* CCommandQueue::GetEngineExclusive(int requestId)
---- src/interface/filezilla.h.orig
-+++ src/interface/filezilla.h
-@@ -72,5 +72,6 @@
- #include &lt;wx/toolbar.h&gt;
- #include &lt;wx/treectrl.h&gt;
- #include &lt;wx/xrc/xmlres.h&gt;
-+#include &lt;wx/xml/xml.h&gt;

- #endif
---- src/interface/import.cpp.orig
-+++ src/interface/import.cpp
-@@ -146,7 +146,7 @@ wxString CImportDialog::DecodeLegacyPassword(wxString pass)
-                         return _T(&quot;&quot;);
-                 int number = (pass[i] - '0') * 100 +
-                                                 (pass[i + 1] - '0') * 10 +
--                                                pass[i + 2] - '0';
-+                                                (pass[i + 2] - '0');
-                 wxChar c = number ^ key[(i / 3 + pos) % strlen(key)];
-                 output += c;
-         }
---- src/interface/listctrlex.cpp.orig
-+++ src/interface/listctrlex.cpp
-@@ -73,7 +73,7 @@ wxListCtrlEx::~wxListCtrlEx()
- #ifndef __WXMSW__
- wxScrolledWindow* wxListCtrlEx::GetMainWindow() const
- {
--#ifdef __WXMAC__
-+#if defined(__WXMAC__) &amp;&amp; !wxCHECK_VERSION(2, 9, 0)
-         return (wxScrolledWindow*)m_genericImpl-&gt;m_mainWin;
- #else
-         return (wxScrolledWindow*)m_mainWin;
---- src/interface/netconfwizard.cpp.orig
-+++ src/interface/netconfwizard.cpp
-@@ -777,7 +777,12 @@ void CNetConfWizard::SendNextCommand()
-                         wxString hexIP = ip;
-                         for (unsigned int i = 0; i &lt; hexIP.Length(); i++)
-                         {
-+#if wxCHECK_VERSION(2, 9, 0)
-+                                char c;
-+                                hexIP.GetChar(i).GetAsChar(&amp;c);
-+#else
-                                 wxChar&amp; c = hexIP[i];
-+#endif
-                                 if (c == '.')
-                                         c = '-';
-                                 else
---- src/interface/queue.cpp.orig
-+++ src/interface/queue.cpp
-@@ -1310,7 +1310,7 @@ void CQueueViewBase::DisplayNumberQueuedFiles()
-         }
-         else
-         {
--                if (m_folderScanCount)
-+                if (m_folderScanCount &amp;&amp; m_fileCount &gt; 0)
-                         str.Printf(m_title + _T(&quot; (0+)&quot;), m_fileCount);
-                 else
-                         str = m_title;
-@@ -1442,7 +1442,11 @@ void CQueueViewBase::RefreshItem(const CQueueItem* pItem)
- void CQueueViewBase::OnNavigationKey(wxNavigationKeyEvent&amp; event)
- {
-         event.SetEventObject(m_pQueue);
-+#if wxCHECK_VERSION(2, 9, 0)
-+        m_pQueue-&gt;ProcessWindowEvent(event);
-+#else
-         m_pQueue-&gt;ProcessEvent(event);
-+#endif
- }

- void CQueueViewBase::OnChar(wxKeyEvent&amp; event)
---- src/interface/queue_storage.cpp.orig
-+++ src/interface/queue_storage.cpp
-@@ -135,7 +135,11 @@ struct fast_equal
-         {
-                 // wxString is CoW, yet it doesn't even do this fast pointer
-                 // comparison in it's less and/or equal operator(s).
-+#if wxCHECK_VERSION(2, 9, 0)
-+                return (const char*)lhs.c_str() == (const char*)rhs.c_str() || lhs == rhs;
-+#else
-                 return lhs.c_str() == rhs.c_str() || lhs == rhs;
-+#endif
-         }
- };

-@@ -561,9 +565,11 @@ bool CQueueStorage::Impl::Bind(sqlite3_stmt* statement, int index, wxLongLong_t
- extern &quot;C&quot; {
- static void custom_free(void* v)
- {
--#ifdef __WXMSW__
-+#if defined(__WXMSW__)
-+#if !wxCHECK_VERSION(2, 9, 0)
-         wxStringData* data = reinterpret_cast&lt;wxStringData*&gt;(v) - 1;
-         data-&gt;Unlock();
-+#endif
- #else
-         char* s = reinterpret_cast&lt;char*&gt;(v);
-         delete [] s;
-@@ -574,11 +580,16 @@ static void custom_free(void* v)
- bool CQueueStorage::Impl::Bind(sqlite3_stmt* statement, int index, const wxString&amp; value)
- {
- #ifdef __WXMSW__
-+#if wxCHECK_VERSION(2, 9, 0)
-+        char* data = value.char_str();
-+        return sqlite3_bind_text16(statement, index, data, value.length(), custom_free) == SQLITE_OK;
-+#else
-         // Increase string reference and pass the data to sqlite with a custom deallocator that
-         // reduces the reference once sqlite is done with it.
-         wxStringData* data = reinterpret_cast&lt;wxStringData*&gt;(const_cast&lt;wxChar*&gt;(value.c_str())) - 1;
-         data-&gt;Lock();
-         return sqlite3_bind_text16(statement, index, data + 1, data-&gt;nDataLength * 2, custom_free) == SQLITE_OK;
-+#endif
- #else
-         char* out = new char[value.size() * 2];
-         size_t outlen = utf16_.FromWChar(out, value.size() * 2, value.c_str(), value.size());
-@@ -831,9 +842,18 @@ wxString CQueueStorage::Impl::GetColumnText(sqlite3_stmt* statement, int index,
-         int len = sqlite3_column_bytes16(statement, index);
-         if (text)
-         {
-+#if wxCHECK_VERSION(2, 9, 0)
-+                wxStringBuffer* buffer = new wxStringBuffer(ret, len);
-+                wxChar* out = *buffer;
-+#else
-                 wxChar* out = ret.GetWriteBuf( len );
-+#endif
-                 int outlen = utf16_.ToWChar( out, len, text, len );
-+#if wxCHECK_VERSION(2, 9, 0)
-+                delete buffer;
-+#else
-                 ret.UngetWriteBuf( outlen );
-+#endif
-                 if (shrink)
-                         ret.Shrink();
-         }
---- src/interface/quickconnectbar.cpp.orig
-+++ src/interface/quickconnectbar.cpp
-@@ -222,12 +222,12 @@ void CQuickconnectBar::OnKeyboardNavigation(wxNavigationKeyEvent&amp; event)
-         if (event.GetDirection() &amp;&amp; event.GetEventObject() == XRCCTRL(*this, &quot;ID_QUICKCONNECT_DROPDOWN&quot;, wxButton))
-         {
-                 event.SetEventObject(this);
--                GetParent()-&gt;ProcessEvent(event);
-+                GetParent()-&gt;GetEventHandler()-&gt;ProcessEvent(event);
-         }
-         else if (!event.GetDirection() &amp;&amp; event.GetEventObject() == m_pHost)
-         {
-                 event.SetEventObject(this);
--                GetParent()-&gt;ProcessEvent(event);
-+                GetParent()-&gt;GetEventHandler()-&gt;ProcessEvent(event);
-         }
-         else
-                 event.Skip();
---- src/interface/resources/xrc/settings.xrc.orig
-+++ src/interface/resources/xrc/settings.xrc
-@@ -427,7 +427,7 @@
-               &lt;/object&gt;
-               &lt;cols&gt;1&lt;/cols&gt;
-               &lt;vgap&gt;3&lt;/vgap&gt;
--              &lt;rows&gt;2&lt;/rows&gt;
-+              &lt;rows&gt;3&lt;/rows&gt;
-             &lt;/object&gt;
-             &lt;flag&gt;wxLEFT|wxRIGHT|wxBOTTOM&lt;/flag&gt;
-             &lt;border&gt;4&lt;/border&gt;
-@@ -632,9 +632,9 @@
-               &lt;object class=&quot;sizeritem&quot;&gt;
-                 &lt;object class=&quot;wxListCtrl&quot; name=&quot;ID_KEYS&quot;&gt;
-                   &lt;style&gt;wxLC_REPORT|wxSUNKEN_BORDER&lt;/style&gt;
-+                  &lt;size&gt;400,-1&lt;/size&gt;
-                 &lt;/object&gt;
--                &lt;option&gt;1&lt;/option&gt;
--                &lt;flag&gt;wxGROW&lt;/flag&gt;
-+                &lt;flag&gt;wxSHAPED&lt;/flag&gt;
-               &lt;/object&gt;
-               &lt;vgap&gt;5&lt;/vgap&gt;
-               &lt;growablecols&gt;0&lt;/growablecols&gt;
-@@ -1393,7 +1393,7 @@
-           &lt;object class=&quot;sizeritem&quot;&gt;
-             &lt;object class=&quot;wxFlexGridSizer&quot;&gt;
-               &lt;cols&gt;2&lt;/cols&gt;
--              &lt;rows&gt;2&lt;/rows&gt;
-+              &lt;rows&gt;3&lt;/rows&gt;
-               &lt;object class=&quot;sizeritem&quot;&gt;
-                 &lt;object class=&quot;wxStaticText&quot;&gt;
-                   &lt;label&gt;&amp;amp;Theme:&lt;/label&gt;
-@@ -2105,7 +2105,6 @@
-                   &lt;/object&gt;
-                   &lt;growablecols&gt;1&lt;/growablecols&gt;
-                 &lt;/object&gt;
--                &lt;flag&gt;wxGROW&lt;/flag&gt;
-                 &lt;minsize&gt;400,0&lt;/minsize&gt;
-               &lt;/object&gt;
-               &lt;growablecols&gt;0&lt;/growablecols&gt;
---- src/interface/settings/optionspage_dateformatting.cpp.orig
-+++ src/interface/settings/optionspage_dateformatting.cpp
-@@ -16,7 +16,7 @@ bool COptionsPageDateFormatting::LoadPage()
-         const wxString&amp; dateFormat = m_pOptions-&gt;GetOption(OPTION_DATE_FORMAT);
-         if (dateFormat == _T(&quot;1&quot;))
-                 SetRCheck(XRCID(&quot;ID_DATEFORMAT_ISO&quot;), true, failure);
--        else if (dateFormat[0] == '2')
-+        else if (!dateFormat.IsEmpty() &amp;&amp; dateFormat[0] == '2')
-         {
-                 SetRCheck(XRCID(&quot;ID_DATEFORMAT_CUSTOM&quot;), true, failure);
-                 SetText(XRCID(&quot;ID_CUSTOM_DATEFORMAT&quot;), dateFormat.Mid(1), failure);
-@@ -27,7 +27,7 @@ bool COptionsPageDateFormatting::LoadPage()
-         const wxString&amp; timeFormat = m_pOptions-&gt;GetOption(OPTION_TIME_FORMAT);
-         if (timeFormat == _T(&quot;1&quot;))
-                 SetRCheck(XRCID(&quot;ID_TIMEFORMAT_ISO&quot;), true, failure);
--        else if (timeFormat[0] == '2')
-+        else if (!timeFormat.IsEmpty() &amp;&amp; timeFormat[0] == '2')
-         {
-                 SetRCheck(XRCID(&quot;ID_TIMEFORMAT_CUSTOM&quot;), true, failure);
-                 SetText(XRCID(&quot;ID_CUSTOM_TIMEFORMAT&quot;), timeFormat.Mid(1), failure);
---- src/interface/sitemanager.cpp.orig
-+++ src/interface/sitemanager.cpp
-@@ -525,6 +525,8 @@ CSiteManagerItemData_Site* CSiteManager::GetSiteByPath(wxString sitePath)

- bool CSiteManager::GetBookmarks(wxString sitePath, std::list&lt;wxString&gt; &amp;bookmarks)
- {
-+        if (sitePath.IsEmpty())
-+                return false;
-         wxChar c = sitePath[0];
-         if (c != '0' &amp;&amp; c != '1')
-                 return false;
---- src/interface/statusbar.cpp.orig
-+++ src/interface/statusbar.cpp
-@@ -153,10 +153,10 @@ void wxStatusBarEx::OnSize(wxSizeEvent&amp; event)
- void wxStatusBarEx::SetStatusText(const wxString&amp; text, int number /*=0*/)
- {
-         // Basically identical to the wx one, but not calling Update
--        wxString oldText = m_statusStrings[number];
-+        wxString oldText = GetStatusText(number);
-         if (oldText != text)
-         {
--                m_statusStrings[number] = text;
-+                wxStatusBar::SetStatusText(text, number);

-                 wxRect rect;
-                 GetFieldRect(number, rect);
---- src/interface/timeformatting.cpp.orig
-+++ src/interface/timeformatting.cpp
-@@ -23,7 +23,7 @@ public:

-                 if (dateFormat == _T(&quot;1&quot;))
-                         m_dateFormat = _T(&quot;%Y-%m-%d&quot;);
--                else if (dateFormat[0] == '2')
-+                else if (!dateFormat.IsEmpty() &amp;&amp; dateFormat[0] == '2')
-                         m_dateFormat = dateFormat.Mid(1);
-                 else
-                         m_dateFormat = _T(&quot;%x&quot;);
-@@ -33,7 +33,7 @@ public:

-                 if (timeFormat == _T(&quot;1&quot;))
-                         m_dateTimeFormat += _T(&quot;%H:%M&quot;);
--                else if (timeFormat[0] == '2')
-+                else if (!timeFormat.IsEmpty() &amp;&amp; timeFormat[0] == '2')
-                         m_dateTimeFormat += timeFormat.Mid(1);
-                 else
-                         m_dateTimeFormat += _T(&quot;%X&quot;);
---- src/interface/viewheader.cpp.orig
-+++ src/interface/viewheader.cpp
-@@ -24,7 +24,11 @@ class CComboBoxEx : public wxComboBox
- {
- public:
-         CComboBoxEx(CViewHeader* parent)
--                : wxComboBox(parent, wxID_ANY, _T(&quot;&quot;), wxDefaultPosition, wxDefaultSize, wxArrayString(), wxCB_DROPDOWN | wxTE_PROCESS_ENTER | wxCB_SORT)
-+                : wxComboBox(parent, wxID_ANY, _T(&quot;&quot;), wxDefaultPosition, wxDefaultSize, wxArrayString(), wxCB_DROPDOWN | wxTE_PROCESS_ENTER
-+#if !defined(__WXMAC__) || !wxCHECK_VERSION(2, 9, 0)
-+            | wxCB_SORT
-+#endif
-+    )
-         {
-                 m_parent = parent;
-         }
-@@ -67,7 +71,7 @@ protected:
-                 navEvent.SetDirection(!event.ShiftDown());
-                 navEvent.SetFromTab(true);
-                 navEvent.ResumePropagation(1);
--                m_parent-&gt;ProcessEvent(navEvent);
-+                m_parent-&gt;GetEventHandler()-&gt;ProcessEvent(navEvent);
-         }

-         void OnChar(wxKeyEvent&amp; event)
---- src/interface/wrapengine.cpp.orig
-+++ src/interface/wrapengine.cpp
-@@ -232,24 +232,24 @@ bool CWrapEngine::WrapText(wxWindow* parent, wxString&amp; text, unsigned long maxLe
-         bool containsURL = false;
-         for (int i = 0; i &lt;= strLen; i++)
-         {
--                if ((text[i] == ':' &amp;&amp; text[i + 1] == '/' &amp;&amp; text[i + 2] == '/') || // absolute
--                        (text[i] == '/' &amp;&amp; (!i || text[i - 1] == ' '))) // relative
-+                if ((i &lt; strLen - 2 &amp;&amp; text[i] == ':' &amp;&amp; text[i + 1] == '/' &amp;&amp; text[i + 2] == '/') || // absolute
-+                        (i &lt; strLen &amp;&amp; text[i] == '/' &amp;&amp; (!i || text[i - 1] == ' '))) // relative
-                 {
-                         url = true;
-                         containsURL = true;
-                 }
--                if (text[i] != ' ' &amp;&amp; text[i] != 0)
-+                if (i &lt; strLen &amp;&amp; text[i] != ' ')
-                 {
-                         // If url, wrap on slashes and ampersands, but not first slash of something://
-                         if (!url ||
--                                 ((text[i] != '/' || text[i + 1] == '/') &amp;&amp; (text[i] != '&amp;' || text[i + 1] == '&amp;') &amp;&amp; text[i] != '?'))
-+                                 ((i &lt; strLen - 1 &amp;&amp; (text[i] != '/' || text[i + 1] == '/')) &amp;&amp; (i &lt; strLen - 1 &amp;&amp; (text[i] != '&amp;' || text[i + 1] == '&amp;')) &amp;&amp; text[i] != '?'))
-                         continue;
-                 }

-                 wxString segment;
-                 if (wrapAfter == -1)
-                 {
--                        if (text[i] == '/' || text[i] == '?' || text[i] == '&amp;')
-+                        if (i &lt; strLen &amp;&amp; (text[i] == '/' || text[i] == '?' || text[i] == '&amp;'))
-                                 segment = text.Mid(start, i - start + 1);
-                         else
-                                 segment = text.Mid(start, i - start);
-@@ -257,7 +257,7 @@ bool CWrapEngine::WrapText(wxWindow* parent, wxString&amp; text, unsigned long maxLe
-                 }
-                 else
-                 {
--                        if (text[i] == '/' || text[i] == '?' || text[i] == '&amp;')
-+                        if (i &lt; strLen &amp;&amp; (text[i] == '/' || text[i] == '?' || text[i] == '&amp;'))
-                                 segment = text.Mid(wrapAfter + 1, i - wrapAfter);
-                         else
-                                 segment = text.Mid(wrapAfter + 1, i - wrapAfter - 1);
-@@ -272,7 +272,7 @@ bool CWrapEngine::WrapText(wxWindow* parent, wxString&amp; text, unsigned long maxLe
-                         if (wrappedText != _T(&quot;&quot;))
-                                 wrappedText += _T(&quot;\n&quot;);
-                         wrappedText += text.Mid(start, wrapAfter - start);
--                        if (text[wrapAfter] != ' ' &amp;&amp; text[wrapAfter] != '\0')
-+                        if (wrapAfter &lt; strLen &amp;&amp; text[wrapAfter] != ' ' &amp;&amp; text[wrapAfter] != '\0')
-                                 wrappedText += text[wrapAfter];

-                         if (width + spaceWidth &gt;= (int)maxLength)
-@@ -302,7 +302,7 @@ bool CWrapEngine::WrapText(wxWindow* parent, wxString&amp; text, unsigned long maxLe
-                         if (wrappedText != _T(&quot;&quot;))
-                                 wrappedText += _T(&quot;\n&quot;);
-                         wrappedText += text.Mid(start, i - start);
--                        if (text[i] != ' ' &amp;&amp; text[i] != '\0')
-+                        if (i &lt; strLen &amp;&amp; text[i] != ' ' &amp;&amp; text[i] != '\0')
-                                 wrappedText += text[i];
-                         start = i + 1;
-                         wrapAfter = -1;
-@@ -316,7 +316,7 @@ bool CWrapEngine::WrapText(wxWindow* parent, wxString&amp; text, unsigned long maxLe
-                         wrapAfter = i;
-                 }

--                if (text[i] == ' ')
-+                if (i &lt; strLen &amp;&amp; text[i] == ' ')
-                         url = false;
-         }
-         if (start &lt; strLen)
</del></span></pre>
</div>
</div>

</body>
</html>