Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c21aa27e62 | ||
|
|
e25bce487b | ||
|
|
cdefd74f3f | ||
|
|
28f244cf2f |
@@ -40,13 +40,13 @@ Component ComponentId Directory_ Attributes Condition KeyPath
|
||||
s$(MSIBUILD_LENGTH_ID) S38 s$(MSIBUILD_LENGTH_ID) i2 S255 S$(MSIBUILD_LENGTH_ID)
|
||||
Component Component
|
||||
!IF "$(PLAT)" == "Win32"
|
||||
compwxExtend.dll.Win32 {239F2FF9-E998-4F81-85A8-DA2C0A5F860B} $(WXEXTEND_BIN_DIR) 0 filewxExtend.dll.Win32
|
||||
compwxExtend.dll.Win32 {7645D753-4A8C-40C6-BD6F-6DDE54F2B8F8} $(WXEXTEND_BIN_DIR) 0 filewxExtend.dll.Win32
|
||||
!ENDIF
|
||||
!IF "$(PLAT)" == "x64"
|
||||
compwxExtend.dll.x64 {AA798500-8E4F-4554-8611-F2C225046606} $(WXEXTEND_BIN_DIR) 256 filewxExtend.dll.x64
|
||||
compwxExtend.dll.x64 {919135CB-B106-467E-A3DA-CBC463FBB7FF} $(WXEXTEND_BIN_DIR) 256 filewxExtend.dll.x64
|
||||
!ENDIF
|
||||
!IF "$(LANG)" == "Sl"
|
||||
compwxExtend.mo.sl_SI {026F2E74-4190-4B49-820B-94141F32F04B} WXEXTENDLOCSLSIDIR $(MSIBUILD_COMPONENT_ATTRIB_FILE) filewxExtend.mo.sl_SI
|
||||
compwxExtend.mo.sl_SI {08656BB6-0887-4605-B6D3-20B0444624BA} WXEXTENDLOCSLSIDIR $(MSIBUILD_COMPONENT_ATTRIB_FILE) filewxExtend.mo.sl_SI
|
||||
!ENDIF
|
||||
<<NOKEEP
|
||||
|
||||
@@ -79,22 +79,22 @@ s$(MSIBUILD_LENGTH_ID) s$(MSIBUILD_LENGTH_ID) l255 i4 S$(MSIBUILD_LENGTH_ID) S20
|
||||
File File
|
||||
!IF "$(PLAT)" == "Win32"
|
||||
!IF "$(CFG)" == "Release"
|
||||
filewxExtend.dll.Win32 compwxExtend.dll.Win32 WXEXTE~2.DLL|wxExtend11u_vc100.dll 0 0 1536 1
|
||||
filewxExtend.dll.Win32 compwxExtend.dll.Win32 WXEXTE~2.DLL|wxExtend13u_vc100.dll 0 0 1536 1
|
||||
!ENDIF
|
||||
!IF "$(CFG)" == "Debug"
|
||||
filewxExtend.dll.Win32 compwxExtend.dll.Win32 WXEXTE~4.DLL|wxExtend11ud_vc100.dll 0 0 1536 1
|
||||
filewxExtend.dll.Win32 compwxExtend.dll.Win32 WXEXTE~4.DLL|wxExtend13ud_vc100.dll 0 0 1536 1
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
!IF "$(PLAT)" == "x64"
|
||||
!IF "$(CFG)" == "Release"
|
||||
filewxExtend.dll.x64 compwxExtend.dll.x64 WXEXTE~6.DLL|wxExtend11u_vc100_x64.dll 0 0 1536 1
|
||||
filewxExtend.dll.x64 compwxExtend.dll.x64 WXEXTE~6.DLL|wxExtend13u_vc100_x64.dll 0 0 1536 1
|
||||
!ENDIF
|
||||
!IF "$(CFG)" == "Debug"
|
||||
filewxExtend.dll.x64 compwxExtend.dll.x64 WXEXTE~8.DLL|wxExtend11ud_vc100_x64.dll 0 0 1536 1
|
||||
filewxExtend.dll.x64 compwxExtend.dll.x64 WXEXTE~8.DLL|wxExtend13ud_vc100_x64.dll 0 0 1536 1
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
!IF "$(LANG)" == "Sl"
|
||||
filewxExtend.mo.sl_SI compwxExtend.mo.sl_SI WXEXTE~1.MO|wxExtend11.mo 0 1060 0 1
|
||||
filewxExtend.mo.sl_SI compwxExtend.mo.sl_SI WXEXTE~1.MO|wxExtend13.mo 0 1060 0 1
|
||||
!ENDIF
|
||||
<<NOKEEP
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Label="PropertySheets" />
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<wxExtendVersion>11</wxExtendVersion>
|
||||
<wxExtendVersion>13</wxExtendVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OutDir>..\..\..\output\$(Platform).$(Configuration)\</OutDir>
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\url.cpp" />
|
||||
<ClCompile Include="..\src\valhex.cpp" />
|
||||
<ClCompile Include="..\src\xml.cpp" />
|
||||
</ItemGroup>
|
||||
@@ -40,11 +41,14 @@
|
||||
<ClInclude Include="..\include\wxex\hex.h" />
|
||||
<ClInclude Include="..\include\wxex\persist\auimanager.h" />
|
||||
<ClInclude Include="..\include\wxex\persist\dialog.h" />
|
||||
<ClInclude Include="..\include\wxex\url.h" />
|
||||
<ClInclude Include="..\include\wxex\valhex.h" />
|
||||
<ClInclude Include="..\include\wxex\xml.h" />
|
||||
<ClInclude Include="..\src\stdafx.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<POCompile Include="..\locale\de_DE.po" />
|
||||
<POCompile Include="..\locale\ru_RU.po" />
|
||||
<POCompile Include="..\locale\sl_SI.po" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -43,6 +43,9 @@
|
||||
<ClCompile Include="..\src\valhex.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\url.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\src\stdafx.h">
|
||||
@@ -75,6 +78,9 @@
|
||||
<ClInclude Include="..\include\wxex\valhex.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\include\wxex\url.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\locale\wxExtend.pot">
|
||||
@@ -85,6 +91,12 @@
|
||||
<POCompile Include="..\locale\sl_SI.po">
|
||||
<Filter>Resource Files\Localization</Filter>
|
||||
</POCompile>
|
||||
<POCompile Include="..\locale\de_DE.po">
|
||||
<Filter>Resource Files\Localization</Filter>
|
||||
</POCompile>
|
||||
<POCompile Include="..\locale\ru_RU.po">
|
||||
<Filter>Resource Files\Localization</Filter>
|
||||
</POCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\res\wxExtend.rc">
|
||||
|
||||
@@ -23,17 +23,17 @@
|
||||
///
|
||||
/// wxExtend Version
|
||||
///
|
||||
#define wxEXTEND_VERSION 0x01010000
|
||||
#define wxEXTEND_VERSION 0x01030000
|
||||
|
||||
#define wxEXTEND_VERSION_MAJ 1
|
||||
#define wxEXTEND_VERSION_MIN 1
|
||||
#define wxEXTEND_VERSION_MIN 3
|
||||
#define wxEXTEND_VERSION_REV 0
|
||||
#define wxEXTEND_VERSION_BUILD 0
|
||||
|
||||
#define wxEXTEND_VERSION_STR "1.1"
|
||||
#define wxEXTEND_VERSION_STR "1.3"
|
||||
#define wxEXTEND_BUILD_YEAR_STR "2016"
|
||||
|
||||
#define wxExtendVersion "11"
|
||||
#define wxExtendVersion "13"
|
||||
|
||||
|
||||
#if !defined(RC_INVOKED) && !defined(MIDL_PASS)
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include <wx/buffer.h>
|
||||
#include <wx/ffile.h>
|
||||
#include <wx/log.h>
|
||||
#include <wx/string.h>
|
||||
|
||||
#include <Wincrypt.h>
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include "wx/string.h"
|
||||
#include "wx/buffer.h"
|
||||
|
||||
@@ -32,6 +34,7 @@
|
||||
/// of a buffer of given length
|
||||
///
|
||||
/// \param[in] len Length of the buffer
|
||||
///
|
||||
/// \returns Maximum encoded representation size (in characters)
|
||||
///
|
||||
inline size_t wxHexEncodedSize(size_t len)
|
||||
@@ -110,6 +113,7 @@ enum wxHexDecodeMode
|
||||
/// length
|
||||
///
|
||||
/// \param[in] len Length of the hex encoded string
|
||||
///
|
||||
/// \returns Maximum decoded representation size (in bytes)
|
||||
///
|
||||
inline size_t wxHexDecodedSize(size_t len)
|
||||
|
||||
221
include/wxex/url.h
Normal file
221
include/wxex/url.h
Normal file
@@ -0,0 +1,221 @@
|
||||
/*
|
||||
Copyright 2015-2016 Amebis
|
||||
|
||||
This file is part of wxExtend.
|
||||
|
||||
wxExtend is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
wxExtend is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with wxExtend. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include "wx/string.h"
|
||||
#include "wx/buffer.h"
|
||||
|
||||
|
||||
///
|
||||
/// Return if given character should be protected for URL encoding
|
||||
///
|
||||
/// \param[in] chr ASCII character
|
||||
///
|
||||
/// \returns
|
||||
/// - \c true if character should be protected
|
||||
/// - \c false otherwise
|
||||
///
|
||||
inline bool wxURLIsProtected(char chr)
|
||||
{
|
||||
switch (chr) {
|
||||
case ' ':
|
||||
case '!':
|
||||
case '*':
|
||||
case '\'':
|
||||
case '(':
|
||||
case ')':
|
||||
case ';':
|
||||
case ':':
|
||||
case '@':
|
||||
case '&':
|
||||
case '=':
|
||||
case '+':
|
||||
case '$':
|
||||
case ',':
|
||||
case '/':
|
||||
case '?':
|
||||
case '#':
|
||||
case '[':
|
||||
case ']': return true;
|
||||
}
|
||||
|
||||
return chr < 0x20;
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Return the size needed for the buffer containing the encoded representation
|
||||
/// of a string of given length
|
||||
///
|
||||
/// \param[in] src Source string to encode
|
||||
/// \param[in] srcLen Length of \p src string (in bytes)
|
||||
///
|
||||
/// \returns Maximum encoded representation size (in characters)
|
||||
///
|
||||
inline size_t wxURLEncodedSize(size_t len)
|
||||
{
|
||||
return len*3;
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Raw URL encoding function which encodes the contents of a string of the
|
||||
/// specified length into the buffer of the specified size
|
||||
///
|
||||
/// \param[out] dst Destination buffer to receive URL encoded data
|
||||
/// \param[in] dstLen Length of \p dst buffer (in characters)
|
||||
/// \param[in] src Source string to encode
|
||||
/// \param[in] srcLen Length of \p src string (in bytes)
|
||||
///
|
||||
/// \returns The length of the encoded data or wxCONV_FAILED if the buffer is not
|
||||
/// large enough; to determine the needed size you can either allocate a buffer
|
||||
/// of \c{wxURLEncodedSize(srcLen)} size or call the function with NULL string in
|
||||
/// which case the required size will be returned
|
||||
///
|
||||
size_t WXEXTEND_API wxURLEncode(char *dst, size_t dstLen, const char *src, size_t srcLen);
|
||||
|
||||
|
||||
///
|
||||
/// URL encoding function which encodes the contents of a string of the
|
||||
/// specified length into the wxString
|
||||
///
|
||||
/// \param[in] src Source string to encode
|
||||
/// \param[in] srcLen Length of \p src string (in bytes)
|
||||
///
|
||||
/// \returns The URL encoded string
|
||||
///
|
||||
inline wxString wxURLEncode(const char *src, size_t srcLen)
|
||||
{
|
||||
const size_t dstLen = wxURLEncodedSize(srcLen);
|
||||
wxCharBuffer dst(dstLen);
|
||||
dst.shrink(wxURLEncode(dst.data(), dstLen, src, srcLen));
|
||||
|
||||
return dst;
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// URL encoding function which encodes the contents of a string into the wxString
|
||||
///
|
||||
/// \param[in] str Source string to encode
|
||||
///
|
||||
/// \returns The URL encoded string
|
||||
///
|
||||
inline wxString wxURLEncode(const wxString& str)
|
||||
{
|
||||
return wxURLEncode(str.GetData(), str.Length());
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// URL encoding function which encodes the contents of a buffer into the wxString
|
||||
///
|
||||
/// \param[in] buf Source buffer to encode
|
||||
///
|
||||
/// \returns The URL encoded string
|
||||
///
|
||||
inline wxString wxURLEncode(const wxMemoryBuffer& buf)
|
||||
{
|
||||
return wxURLEncode((const char*)buf.GetData(), buf.GetDataLen());
|
||||
}
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Decoding Functions
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
///
|
||||
/// Return the buffer size necessary for decoding a URL string of the given
|
||||
/// length
|
||||
///
|
||||
/// \param[in] len Length of the URL encoded string
|
||||
///
|
||||
/// \returns Maximum decoded representation size (in bytes)
|
||||
///
|
||||
inline size_t wxURLDecodedSize(size_t len)
|
||||
{
|
||||
return len;
|
||||
}
|
||||
|
||||
///
|
||||
/// Raw decoding function which decodes the contents of the string of specified
|
||||
/// length (or zero terminated by default) into the provided buffer of the given
|
||||
/// size
|
||||
///
|
||||
/// \param[out] dst Destination buffer to receive decoded data
|
||||
/// \param[in] dstLen Length of \p dst buffer (in bytes)
|
||||
/// \param[in] src Source buffer to decode
|
||||
/// \param[in] srcLen Length of \p src buffer (in characters) or wxNO_LEN for zero terminated strings
|
||||
///
|
||||
/// \returns The length of the decoded data or wxCONV_FAILED if the buffer is not
|
||||
/// large enough; to determine the needed size you can either allocate a buffer
|
||||
/// of \c{wxURLDecodedSize(srcLen)} size or call the function with NULL string in
|
||||
/// which case the required size will be returned
|
||||
///
|
||||
size_t WXEXTEND_API wxURLDecode(char *dst, size_t dstLen, const char *src, size_t srcLen = wxNO_LEN);
|
||||
|
||||
|
||||
///
|
||||
/// Decoding function which decodes the contents of the string into the provided buffer of the given size
|
||||
///
|
||||
/// \param[out] dst Destination buffer to receive decoded data
|
||||
/// \param[in] dstLen Length of \p dst buffer (in bytes)
|
||||
/// \param[in] src Source string to decode
|
||||
///
|
||||
/// \returns The length of the decoded data or wxCONV_FAILED if the buffer is not
|
||||
/// large enough; to determine the needed size you can either allocate a buffer
|
||||
/// of \c{wxURLDecodedSize(srcLen)} size or call the function with NULL string in
|
||||
/// which case the required size will be returned
|
||||
///
|
||||
inline size_t wxURLDecode(char *dst, size_t dstLen, const wxString& src)
|
||||
{
|
||||
// don't use str.length() here as the ASCII buffer is shorter than it is for
|
||||
// strings with embedded NULs
|
||||
return wxURLDecode(dst, dstLen, src.ToAscii(), wxNO_LEN);
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Decoding function which decodes the contents of the string of specified
|
||||
/// length (or zero terminated by default) into the buffer
|
||||
///
|
||||
/// \param[in] src Source buffer to decode
|
||||
/// \param[in] srcLen Length of \p src buffer (in characters) or wxNO_LEN for zero terminated strings
|
||||
///
|
||||
/// \returns Destination buffer with decoded data or an empty buffer if an error occured during decoding
|
||||
///
|
||||
wxMemoryBuffer WXEXTEND_API wxURLDecode(const char *src, size_t srcLen = wxNO_LEN);
|
||||
|
||||
|
||||
///
|
||||
/// Decoding function which decodes the contents of the string into the buffer
|
||||
///
|
||||
/// \param[in] src Source string to decode
|
||||
///
|
||||
/// \returns Destination buffer with decoded data or an empty buffer if an error occured during decoding
|
||||
///
|
||||
inline wxMemoryBuffer wxURLDecode(const wxString& src)
|
||||
{
|
||||
// don't use str.length() here as the ASCII buffer is shorter than it for
|
||||
// strings with embedded NULs
|
||||
return wxURLDecode(src.ToAscii(), wxNO_LEN);
|
||||
}
|
||||
@@ -51,8 +51,14 @@ protected:
|
||||
#endif
|
||||
wxString ToString(LongestValueType value) const;
|
||||
|
||||
protected:
|
||||
void DoSetWidth(unsigned int width) { m_width = width; }
|
||||
|
||||
private:
|
||||
virtual bool IsCharOk(const wxString& val, int pos, wxChar ch) const;
|
||||
|
||||
private:
|
||||
unsigned int m_width; ///< Preferred width of the string - zero padding (<=1 disables padding)
|
||||
};
|
||||
|
||||
|
||||
@@ -65,8 +71,9 @@ class wxHexValidator : public wxPrivate::wxNumValidator<wxHexValidatorBase, T>
|
||||
public:
|
||||
typedef wxPrivate::wxNumValidator<wxHexValidatorBase, T> Base;
|
||||
|
||||
wxHexValidator(ValueType *value = NULL, int style = wxNUM_VAL_DEFAULT) : Base(value, style)
|
||||
wxHexValidator(ValueType *value = NULL, int style = wxNUM_VAL_DEFAULT, unsigned int width = 0) : Base(value, style)
|
||||
{
|
||||
this->DoSetWidth(width);
|
||||
this->DoSetMin(std::numeric_limits<ValueType>::min());
|
||||
this->DoSetMax(std::numeric_limits<ValueType>::max());
|
||||
}
|
||||
|
||||
@@ -19,9 +19,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "crypto.h"
|
||||
#include "common.h"
|
||||
|
||||
#include "crypto.h"
|
||||
|
||||
#include <wx/string.h>
|
||||
#include <wx/xml/xml.h>
|
||||
|
||||
|
||||
28
locale/de_DE.po
Normal file
28
locale/de_DE.po
Normal file
@@ -0,0 +1,28 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: wxExtend\n"
|
||||
"POT-Creation-Date: 2016-05-13 19:22+0200\n"
|
||||
"PO-Revision-Date: 2016-05-13 19:33+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||
"Language: de_DE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.7\n"
|
||||
"X-Poedit-Basepath: .\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: _\n"
|
||||
|
||||
#: include/wxex/appbar.h:981
|
||||
msgid ""
|
||||
"There is already an auto hidden bar on this edge.\n"
|
||||
"Only one auto hidden bar is allowed on each edge.\n"
|
||||
"Auto-hide feature is now off."
|
||||
msgstr ""
|
||||
|
||||
#: include/wxex/appbar.h:981
|
||||
#, fuzzy
|
||||
msgid "Warning"
|
||||
msgstr "Warnung: "
|
||||
28
locale/ru_RU.po
Normal file
28
locale/ru_RU.po
Normal file
@@ -0,0 +1,28 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: wxExtend\n"
|
||||
"POT-Creation-Date: 2016-05-13 19:23+0200\n"
|
||||
"PO-Revision-Date: 2016-05-13 19:32+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||
"Language: ru_RU\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.7\n"
|
||||
"X-Poedit-Basepath: .\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: _\n"
|
||||
|
||||
#: include/wxex/appbar.h:981
|
||||
msgid ""
|
||||
"There is already an auto hidden bar on this edge.\n"
|
||||
"Only one auto hidden bar is allowed on each edge.\n"
|
||||
"Auto-hide feature is now off."
|
||||
msgstr ""
|
||||
|
||||
#: include/wxex/appbar.h:981
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: wxExtend\n"
|
||||
"POT-Creation-Date: 2016-03-14 17:16+0100\n"
|
||||
"PO-Revision-Date: 2016-03-14 17:20+0100\n"
|
||||
"PO-Revision-Date: 2016-05-13 19:32+0200\n"
|
||||
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
|
||||
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
|
||||
"Language: sl_SI\n"
|
||||
@@ -10,13 +10,11 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.8.7\n"
|
||||
"X-Poedit-Basepath: ..\n"
|
||||
"X-Poedit-Basepath: .\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
|
||||
"%100==4 ? 2 : 3);\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-KeywordsList: _\n"
|
||||
"X-Poedit-SearchPath-0: src\n"
|
||||
"X-Poedit-SearchPath-1: include\n"
|
||||
|
||||
#: include/wxex/appbar.h:981
|
||||
msgid ""
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include "../include/wxex/comutils.h"
|
||||
#include "../include/wxex/crypto.h"
|
||||
#include "../include/wxex/hex.h"
|
||||
#include "../include/wxex/url.h"
|
||||
#include "../include/wxex/valhex.h"
|
||||
#include "../include/wxex/xml.h"
|
||||
|
||||
|
||||
134
src/url.cpp
Normal file
134
src/url.cpp
Normal file
@@ -0,0 +1,134 @@
|
||||
/*
|
||||
Copyright 2015-2016 Amebis
|
||||
|
||||
This file is part of wxExtend.
|
||||
|
||||
wxExtend is free software: you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
wxExtend is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with wxExtend. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
size_t WXEXTEND_API wxURLEncode(char *dst, size_t dstLen, const char *src, size_t srcLen)
|
||||
{
|
||||
wxCHECK_MSG(src, wxCONV_FAILED, wxT("NULL input buffer"));
|
||||
|
||||
static const char bhex[] = "0123456789ABCDEF";
|
||||
|
||||
size_t encLen = 0;
|
||||
|
||||
for (size_t i = 0; i < srcLen && src[i]; i++) {
|
||||
if (wxURLIsProtected(src[i])) {
|
||||
encLen += 3;
|
||||
if ( dst )
|
||||
{
|
||||
if ( encLen > dstLen )
|
||||
return wxCONV_FAILED;
|
||||
|
||||
*dst++ = '%';
|
||||
*dst++ = bhex[((unsigned char)src[i]) >> 4];
|
||||
*dst++ = bhex[((unsigned char)src[i]) & 0x0f];
|
||||
}
|
||||
} else {
|
||||
encLen ++;
|
||||
if ( dst )
|
||||
{
|
||||
if ( encLen > dstLen )
|
||||
return wxCONV_FAILED;
|
||||
|
||||
*dst++ = src[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Zero terminate.
|
||||
if ( dst && encLen < dstLen )
|
||||
*dst++ = 0;
|
||||
|
||||
return encLen;
|
||||
}
|
||||
|
||||
|
||||
size_t WXEXTEND_API wxURLDecode(char *dst, size_t dstLen, const char *src, size_t srcLen)
|
||||
{
|
||||
wxCHECK_MSG(src, wxCONV_FAILED, wxT("NULL input buffer"));
|
||||
|
||||
static const char bhex[] = "0123456789ABCDEF";
|
||||
|
||||
size_t i, decLen = 0;
|
||||
|
||||
for (i = 0 ; i < srcLen && src[i];) {
|
||||
decLen ++;
|
||||
if (src[i] == '%') {
|
||||
// Decode % escaped hex value to character.
|
||||
char c = 0;
|
||||
size_t j = i + 1;
|
||||
for (size_t j_max = i + 3; j < j_max && j < srcLen; j++) {
|
||||
char x = src[j];
|
||||
c <<= 4;
|
||||
if ('0' <= x && x <= '9') c += x - '0';
|
||||
else if ('A' <= x && x <= 'F') c += x - 'A' + 10;
|
||||
else if ('a' <= x && x <= 'f') c += x - 'a' + 10;
|
||||
else break;
|
||||
}
|
||||
|
||||
if (c) {
|
||||
if ( dst )
|
||||
{
|
||||
if ( decLen > dstLen )
|
||||
return wxCONV_FAILED;
|
||||
|
||||
*dst++ = c;
|
||||
}
|
||||
|
||||
i = j;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ( dst )
|
||||
{
|
||||
if ( decLen > dstLen )
|
||||
return wxCONV_FAILED;
|
||||
|
||||
*dst++ = src[i];
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
||||
// Zero terminate.
|
||||
if ( dst && decLen < dstLen )
|
||||
*dst++ = 0;
|
||||
|
||||
return decLen;
|
||||
}
|
||||
|
||||
|
||||
wxMemoryBuffer WXEXTEND_API wxURLDecode(const char *src, size_t srcLen)
|
||||
{
|
||||
wxMemoryBuffer buf;
|
||||
wxCHECK_MSG( src, buf, wxT("NULL input buffer") );
|
||||
|
||||
if ( srcLen == wxNO_LEN )
|
||||
srcLen = strlen(src);
|
||||
|
||||
size_t len = wxURLDecodedSize(srcLen);
|
||||
len = wxURLDecode((char*)buf.GetWriteBuf(len), len, src, srcLen);
|
||||
if ( len == wxCONV_FAILED )
|
||||
len = 0;
|
||||
|
||||
buf.SetDataLen(len);
|
||||
|
||||
return buf;
|
||||
}
|
||||
@@ -24,12 +24,16 @@
|
||||
// wxHexValidatorBase
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
wxHexValidatorBase::wxHexValidatorBase(int style) : wxIntegerValidatorBase(style)
|
||||
wxHexValidatorBase::wxHexValidatorBase(int style) :
|
||||
m_width(0),
|
||||
wxIntegerValidatorBase(style)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
wxHexValidatorBase::wxHexValidatorBase(const wxHexValidatorBase& other) : wxIntegerValidatorBase(other)
|
||||
wxHexValidatorBase::wxHexValidatorBase(const wxHexValidatorBase& other) :
|
||||
m_width(other.m_width),
|
||||
wxIntegerValidatorBase(other)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -59,13 +63,13 @@ bool wxHexValidatorBase::FromString(const wxString &s, wxLongLong_t *value)
|
||||
wxString wxHexValidatorBase::ToString(LongestValueType value) const
|
||||
{
|
||||
const wxStringCharType hexa = (HasFlag((wxNumValidatorStyle)wxNUM_VAL_HEX_LOWERCASE) ? wxT('a') : wxT('A')) - 0xa;
|
||||
int offset = sizeof(LongestValueType)*8 - 4;
|
||||
unsigned int offset = sizeof(LongestValueType)*8 - 4, offset_s = m_width*4 - 4;
|
||||
wxULongLong_t m = ((wxULongLong_t)0xf) << offset;
|
||||
unsigned int x = 0;
|
||||
|
||||
// Skip leading zeros.
|
||||
while (m && !x) {
|
||||
x = (int)((m & (wxULongLong_t)value) >> offset);
|
||||
while (m && !x && offset >= offset_s) {
|
||||
x = (unsigned int)((m & (wxULongLong_t)value) >> offset);
|
||||
m >>= 4, offset -= 4;
|
||||
}
|
||||
|
||||
@@ -74,7 +78,7 @@ wxString wxHexValidatorBase::ToString(LongestValueType value) const
|
||||
|
||||
// Rest of the digits.
|
||||
while (m) {
|
||||
x = (int)((m & (wxULongLong_t)value) >> offset);
|
||||
x = (unsigned int)((m & (wxULongLong_t)value) >> offset);
|
||||
m >>= 4, offset -= 4;
|
||||
str += (wxStringCharType)((x < 0xa ? wxT('0') : hexa) + x);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user