RegExp: Mingw fix and GetMatchPos (thanks Domingo), Draw docs

git-svn-id: svn://ultimatepp.org/upp/trunk@1485 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2009-08-10 07:29:29 +00:00
parent 86044a4664
commit e4d181ca65
13 changed files with 214 additions and 102 deletions

View file

@ -271,10 +271,6 @@ public:
virtual void Start(Size sz);
virtual void WriteLineRaw(const byte *data);
Size GetSize() const { return ib.GetSize(); }
int GetWidth() const { return GetSize().cx; }
int GetHeight() const { return GetSize().cy; }
operator const RGBA *() { return Image(ib); }
operator Image() { return Image(ib); }
};

View file

@ -0,0 +1,31 @@
topic "ImageEncoder";
[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,2#27521748481378242620020725143825:desc]
[0 $$3,0#96390100711032703541132217272105:end]
[H6;0 $$4,0#05600065144404261032431302351956:begin]
[i448;a25;kKO9;2 $$5,0#37138531426314131252341829483370:item]
[l288;a4;*@5;1 $$6,6#70004532496200323422659154056402:requirement]
[l288;i1121;b17;O9;~~~.1408;2 $$7,0#10431211400427159095818037425705:param]
[i448;b42;O9;2 $$8,8#61672508125594000341940100500538:tparam]
[b42;2 $$9,9#13035079074754324216151401829390:normal]
[{_}
[ {{10000@(113.42.0) [s0;%% [*@7;4 ImageEncoder]]}}&]
[s4;H0; &]
[s0;a25; [@(0.0.255)3 class][3 _][*3 ImageEncoder][3 _:_][@(0.0.255)3 public][3 _][*@3;3 RasterEncod
er]&]
[s0;l288;%% This RasterEncoder derived class encodes scanlines to
produce regular Image as result.&]
[s0;l288;%% &]
[s3; &]
[ {{10000F(128)G(128)@1 [s0;%% [* Public Method List]]}}&]
[s4;H0; &]
[s5;:ImageEncoder`:`:operator const RGBA`*`(`): [@(0.0.255) operator]_[@(0.0.255) const]_
[_^RGBA^ RGBA]_`*()&]
[s2;%% Returns a pointer to the array of pixels of Image.&]
[s3; &]
[s4; &]
[s5;:ImageEncoder`:`:operator Image`(`): [* operator_Image]()&]
[s2;%% Returns the resulting Image. Should only be called after all
scanlines (according to requested Image size) are completed.&]
[s3;%% ]

View file

@ -0,0 +1,6 @@
TITLE("ImageEncoder")
COMPRESSED
120,156,133,83,109,111,211,48,16,254,43,150,186,161,182,170,170,59,191,196,78,242,165,32,96,67,128,64,131,111,81,214,186,137,183,69,164,73,73,82,196,152,182,223,206,57,77,89,39,38,173,106,19,247,226,231,158,151,115,18,206,78,78,96,6,35,120,225,19,189,117,87,118,87,118,105,82,72,105,98,203,85,252,227,227,151,48,246,120,36,188,208,40,140,18,40,121,64,23,20,200,21,23,18,13,15,165,17,194,64,148,149,182,109,211,164,228,198,244,32,62,227,35,174,21,71,45,141,52,40,180,225,132,229,0,28,52,87,40,133,225,42,202,93,155,165,9,208,118,65,28,97,32,66,64,0,141,8,130,107,16,74,34,10,78,45,184,230,8,42,114,85,158,38,231,65,236,1,210,155,82,1,73,15,168,155,148,64,221,61,76,10,20,192,133,194,80,5,209,218,93,23,213,115,150,212,139,150,52,68,69,231,54,131,35,43,227,233,66,197,72,208,96,22,140,52,209,74,69,100,161,119,36,8,198,121,160,66,84,146,36,73,224,81,227,126,238,138,198,109,92,213,13,29,10,68,
142,241,26,117,76,18,30,30,30,230,40,97,159,148,38,45,8,164,155,35,213,200,135,70,21,66,168,12,26,16,90,114,165,201,250,214,54,118,51,56,89,75,30,15,62,204,204,140,2,12,40,81,48,164,95,133,212,0,200,4,221,41,72,69,95,97,162,110,0,123,156,7,133,179,112,68,33,9,5,58,4,45,181,146,228,132,99,128,20,36,120,255,52,134,168,170,155,141,45,211,228,110,121,207,18,118,119,135,254,148,44,198,52,144,185,228,115,152,176,164,133,248,244,148,37,211,133,142,37,251,176,177,215,238,93,149,213,185,107,210,244,254,254,85,154,180,50,62,135,152,249,21,244,233,179,100,49,134,57,204,73,231,68,176,225,192,8,182,76,147,169,120,218,192,87,35,170,31,239,223,238,214,101,145,29,0,11,17,11,118,97,219,206,53,7,208,158,168,15,155,116,125,191,41,218,167,27,24,253,138,95,46,223,51,51,215,87,91,214,102,182,42,139,138,86,93,205,182,77,157,239,50,199,26,119,189,43,109,179,87,197,108,75,133,150,222,142,249,83,14,255,79,244,14,15,1,
189,31,35,55,147,179,254,186,192,199,140,216,215,94,61,251,236,186,155,58,103,159,138,182,251,63,37,21,71,199,41,172,162,85,84,111,93,99,187,186,97,89,93,181,29,187,56,123,243,122,53,93,141,87,147,232,56,76,118,216,150,46,143,171,61,134,74,203,75,143,187,236,209,233,114,53,29,79,60,27,247,202,46,92,183,107,170,150,89,182,173,139,138,178,242,33,116,55,100,185,105,236,45,171,175,216,182,248,237,202,214,175,122,109,243,71,207,164,252,69,217,253,131,65,239,244,159,204,101,95,78,159,209,225,169,247,81,23,213,245,192,200,190,221,212,187,50,103,117,85,222,178,181,99,153,45,75,154,162,189,242,114,105,125,52,193,177,205,178,186,201,61,150,124,248,151,208,209,1,200,135,49,182,197,31,55,33,103,212,162,222,108,75,71,79,6,59,164,32,253,11,246,229,115,28,

View file

@ -1,4 +1,4 @@
topic "";
topic "RasterEncoder";
[2 $$0,0#00000000000000000000000000000000:Default]
[i448;a25;kKO9;2 $$1,0#37138531426314131252341829483380:class]
[l288;2 $$2,2#27521748481378242620020725143825:desc]

View file

@ -1,4 +1,4 @@
TITLE("")
TITLE("RasterEncoder")
COMPRESSED
120,156,181,89,251,111,219,70,18,254,87,22,112,19,72,134,162,242,41,82,18,14,240,53,105,157,226,218,94,16,247,144,31,4,90,162,200,149,180,8,69,178,220,165,93,37,72,254,246,155,217,93,62,244,178,104,3,53,2,69,230,238,204,206,55,143,111,102,233,153,69,126,248,193,24,24,87,198,133,159,201,59,186,10,203,68,4,51,230,56,254,52,180,220,233,231,255,252,119,60,69,121,19,228,109,207,180,125,215,54,29,107,4,31,166,109,90,174,101,59,166,111,141,29,223,182,125,99,18,37,33,231,193,44,177,124,95,10,89,3,235,202,242,92,203,244,28,223,241,77,219,243,45,144,181,12,195,50,60,203,53,29,219,183,220,73,76,121,20,204,12,216,110,195,25,227,145,61,54,76,195,240,76,211,176,45,207,176,93,199,52,109,11,84,88,158,101,26,238,132,166,113,48,123,63,154,162,128,131,160,220,17,152,62,2,109,142,99,128,118,20,115,108,211,54,44,219,53,199,238,104,178,164,107,150,158,130,228,94,132,228,25,19,38,232,86,35,10,157,233,245,141,59,53,65,116,
52,24,93,121,112,172,227,194,97,99,68,100,131,152,101,141,220,177,233,58,96,146,99,88,147,130,254,85,178,130,110,105,42,180,6,102,154,150,57,93,154,222,20,76,248,254,253,251,208,116,12,229,41,15,108,49,13,176,219,50,225,25,224,240,76,119,108,140,93,223,244,13,219,115,44,215,3,232,121,88,132,91,141,100,233,88,83,141,195,31,248,87,35,115,4,30,53,124,176,223,29,131,2,3,64,192,255,224,72,23,254,217,254,68,104,97,148,67,161,241,96,124,5,78,178,93,195,27,27,158,227,185,14,32,177,204,145,9,142,52,16,63,132,97,146,102,197,54,76,130,217,215,249,183,87,63,255,241,230,127,119,100,70,190,126,53,49,87,110,122,16,150,161,99,13,141,62,153,113,99,74,102,215,55,222,212,33,31,67,46,104,241,115,26,101,49,45,130,224,219,183,215,193,140,59,211,87,111,8,126,49,167,147,189,13,139,201,66,37,205,4,54,204,110,122,198,208,24,2,130,190,77,116,42,217,100,30,204,174,237,3,181,168,202,154,238,63,36,156,22,15,148,147,144,147,40,

View file

@ -18,3 +18,7 @@ TOPIC("RasterEncoder$en-us")
#include "RasterEncoder$en-us.tppi"
END_TOPIC
TOPIC("ImageEncoder$en-us")
#include "ImageEncoder$en-us.tppi"
END_TOPIC

View file

@ -1,29 +1,57 @@
TOPIC("Flags$en-us")
#include "Flags$en-us.tppi"
TOPIC("About$en-us")
#include "About$en-us.tppi"
END_TOPIC
TOPIC("Files$en-us")
#include "Files$en-us.tppi"
END_TOPIC
TOPIC("Sponsor$en-us")
#include "Sponsor$en-us.tppi"
END_TOPIC
TOPIC("Assist$en-us")
#include "Assist$en-us.tppi"
END_TOPIC
TOPIC("install$en-us")
#include "install$en-us.tppi"
END_TOPIC
TOPIC("index$en-us")
#include "index$en-us.tppi"
END_TOPIC
TOPIC("BSD$en-us")
#include "BSD$en-us.tppi"
END_TOPIC
TOPIC("IntroductionToUPP$en-us")
#include "IntroductionToUPP$en-us.tppi"
END_TOPIC
TOPIC("CrossComp$en-gb")
#include "CrossComp$en-gb.tppi"
END_TOPIC
TOPIC("PackageTemplates$en-us")
#include "PackageTemplates$en-us.tppi"
END_TOPIC
TOPIC("About$en-us")
#include "About$en-us.tppi"
END_TOPIC
TOPIC("esc$en-us")
#include "esc$en-us.tppi"
END_TOPIC
TOPIC("cmdline$en-us")
#include "cmdline$en-us.tppi"
TOPIC("Keys$en-us")
#include "Keys$en-us.tppi"
END_TOPIC
TOPIC("Topic$en-us")
#include "Topic$en-us.tppi"
END_TOPIC
TOPIC("NewProject$en-us")
#include "NewProject$en-us.tppi"
END_TOPIC
TOPIC("ConfiguringPackagesAssemblies$en-us")
@ -38,6 +66,10 @@ TOPIC("IconDes$en-us")
#include "IconDes$en-us.tppi"
END_TOPIC
TOPIC("Blitz$en-us")
#include "Blitz$en-us.tppi"
END_TOPIC
TOPIC("macros$en-us")
#include "macros$en-us.tppi"
END_TOPIC
@ -54,43 +86,11 @@ TOPIC("Contact$en-us")
#include "Contact$en-us.tppi"
END_TOPIC
TOPIC("Files$en-us")
#include "Files$en-us.tppi"
TOPIC("Flags$en-us")
#include "Flags$en-us.tppi"
END_TOPIC
TOPIC("Sponsor$en-us")
#include "Sponsor$en-us.tppi"
END_TOPIC
TOPIC("install$en-us")
#include "install$en-us.tppi"
END_TOPIC
TOPIC("BSD$en-us")
#include "BSD$en-us.tppi"
END_TOPIC
TOPIC("IntroductionToUPP$en-us")
#include "IntroductionToUPP$en-us.tppi"
END_TOPIC
TOPIC("CrossComp$en-gb")
#include "CrossComp$en-gb.tppi"
END_TOPIC
TOPIC("Keys$en-us")
#include "Keys$en-us.tppi"
END_TOPIC
TOPIC("Topic$en-us")
#include "Topic$en-us.tppi"
END_TOPIC
TOPIC("NewProject$en-us")
#include "NewProject$en-us.tppi"
END_TOPIC
TOPIC("Blitz$en-us")
#include "Blitz$en-us.tppi"
TOPIC("cmdline$en-us")
#include "cmdline$en-us.tppi"
END_TOPIC

View file

@ -0,0 +1,61 @@
Copyright 1998-2008 The U++ Project. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE U++ PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
This package contains source code with following credentials and copyright:
*************************************************
* Perl-Compatible Regular Expressions *
*************************************************
PCRE is a library of functions to support regular expressions whose syntax
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
Copyright (c) 1997-2008 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the University of Cambridge nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-----------------------------------------------------------------------------

View file

@ -2,6 +2,11 @@
#define _plugin_pcre_pcre_h_
#include <Core/Core.h>
#ifdef PLATFORM_WIN32
#define PCRE_EXP_DECL extern
#endif
#include "lib/pcre.h"
NAMESPACE_UPP

View file

@ -1,6 +1,5 @@
#include "Pcre.h"
NAMESPACE_UPP
@ -145,4 +144,11 @@ String RegExp::GetString(int i)
return text.Mid(pos[i], pos[i + 1] - pos[i]);
}
void RegExp::GetMatchPos(int i, int& iPosStart, int& iPosAfterEnd)
{
i = 2 * (i + 1);
iPosStart = pos[i];
iPosAfterEnd = pos[i + 1];
}
END_UPP_NAMESPACE

View file

@ -30,28 +30,30 @@ private:
int execute_options;
public:
void Clear(bool freemem = false);
void SetOptions(int options);
void SetPattern(const char * p);
void SetPattern(const String &p);
bool Compile(bool recompile = false);
int Execute(const String &t, int offset = 0);
bool Match(const String &t, bool copy = true);
bool FastMatch(const String &t);
bool GlobalMatch(const String &t);
String operator[](const int i);
int GetCount();
String GetString(int i);
void GetMatchPos(int i, int& iPosStart, int& iPosAfterEnd);
Vector<String> GetStrings();
bool IsError() { return error_code != 0; }
const char *GetError() { return error_string; }
int GetErrorCode() { return error_code; }
RegExp(int options = UTF8);
RegExp(const char * p, int options = UTF8);
RegExp(const String &p, int options = UTF8);
~RegExp();
void Clear(bool freemem = false);
void SetOptions(int options);
void SetPattern(const char * p);
void SetPattern(const String &p);
bool Compile(bool recompile = false);
int Execute(const String &t, int offset = 0);
bool Match(const String &t, bool copy = true);
bool FastMatch(const String &t);
bool GlobalMatch(const String &t);
String operator[](const int i);
int GetCount();
Vector<String> GetStrings();
String GetString(int i);
bool IsError() { return error_code != 0; }
const char * GetError() { return error_string; }
int GetErrorCode() { return error_code; }
};
#endif

View file

@ -1,31 +1,31 @@
#define SUPPORT_UTF8
#define SUPPORT_UCP
#define HAVE_CONFIG_H
#ifdef COMPILER_GCC
#define PCRE_STATIC
#endif
#include "lib/pcre_chartables.c"
#include "lib/pcre_compile.c"
#undef PSSTART
#undef PSEND
#undef NLBLOCK
#include "lib/pcre_config.c"
#include "lib/pcre_dfa_exec.c"
#include "lib/pcre_exec.c"
#include "lib/pcre_fullinfo.c"
#include "lib/pcre_get.c"
#include "lib/pcre_globals.c"
#include "lib/pcre_info.c"
#include "lib/pcre_maketables.c"
#include "lib/pcre_newline.c"
#include "lib/pcre_ord2utf8.c"
#include "lib/pcre_refcount.c"
#include "lib/pcre_study.c"
#include "lib/pcre_tables.c"
#include "lib/pcre_try_flipped.c"
#include "lib/pcre_ucp_searchfuncs.c"
#include "lib/pcre_valid_utf8.c"
#include "lib/pcre_version.c"
#include "lib/pcre_xclass.c"
#define SUPPORT_UTF8
#define SUPPORT_UCP
#define HAVE_CONFIG_H
#ifdef COMPILER_GCC
#define PCRE_STATIC
#endif
#include "lib/pcre_chartables.c"
#include "lib/pcre_compile.c"
#undef PSSTART
#undef PSEND
#undef NLBLOCK
#include "lib/pcre_config.c"
#include "lib/pcre_dfa_exec.c"
#include "lib/pcre_exec.c"
#include "lib/pcre_fullinfo.c"
#include "lib/pcre_get.c"
#include "lib/pcre_globals.c"
#include "lib/pcre_info.c"
#include "lib/pcre_maketables.c"
#include "lib/pcre_newline.c"
#include "lib/pcre_ord2utf8.c"
#include "lib/pcre_refcount.c"
#include "lib/pcre_study.c"
#include "lib/pcre_tables.c"
#include "lib/pcre_try_flipped.c"
#include "lib/pcre_ucp_searchfuncs.c"
#include "lib/pcre_valid_utf8.c"
#include "lib/pcre_version.c"
#include "lib/pcre_xclass.c"

View file

@ -1,8 +1,9 @@
description "PCRE regular expressions library";
description "PCRE regular expressions library\377";
file
Pcre.h,
RegExp.h,
RegExp.cpp,
lib.cpp;
lib.cpp,
COPYING;