Added uppsrc2 nest

git-svn-id: svn://ultimatepp.org/upp/trunk@1175 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2009-05-14 06:44:11 +00:00
parent 5855949de4
commit bd051cab9f
31 changed files with 13819 additions and 0 deletions

21
uppsrc2/TServ/Copying Normal file
View file

@ -0,0 +1,21 @@
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.

2616
uppsrc2/TServ/Makefile Normal file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

130
uppsrc2/TServ/TServ.sh Normal file
View file

@ -0,0 +1,130 @@
# Project modules: Web\TServ Web TCore Core plugin\bz2 plugin
# Configurations:
mkdir -p /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST
echo /src/uppsrc/Web/util.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Web/util.cpp -o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/util.o
echo /src/uppsrc/Web/html.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Web/html.cpp -o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/html.o
echo /src/uppsrc/Web/socket.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Web/socket.cpp -o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/socket.o
echo /src/uppsrc/Web/http.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Web/http.cpp -o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/http.o
echo /src/uppsrc/Web/auth.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Web/auth.cpp -o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/auth.o
echo /src/uppsrc/Web/smtp.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Web/smtp.cpp -o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/smtp.o
echo /src/uppsrc/Web/sproc.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Web/sproc.cpp -o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/sproc.o
/usr/local/bin/ar -sr /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Web.a /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/util.o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/html.o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/socket.o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/http.o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/auth.o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/smtp.o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/sproc.o
mkdir -p /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST
echo /src/uppsrc/TCore/util.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/util.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/util.o
echo /src/uppsrc/TCore/dbf.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/dbf.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/dbf.o
echo /src/uppsrc/TCore/globcfg.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/globcfg.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/globcfg.o
echo /src/uppsrc/TCore/atexit.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/atexit.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/atexit.o
echo /src/uppsrc/TCore/help.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/help.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/help.o
echo /src/uppsrc/TCore/CalcType.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/CalcType.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/CalcType.o
echo /src/uppsrc/TCore/CalcNode.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/CalcNode.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/CalcNode.o
echo /src/uppsrc/TCore/CalcBasic.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/CalcBasic.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/CalcBasic.o
echo /src/uppsrc/TCore/datafile.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/datafile.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/datafile.o
echo /src/uppsrc/TCore/database.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/database.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/database.o
echo /src/uppsrc/TCore/datatest.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/TCore/datatest.cpp -o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/datatest.o
/usr/local/bin/ar -sr /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/TCore.a /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/util.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/dbf.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/globcfg.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/atexit.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/help.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/CalcType.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/CalcNode.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/CalcBasic.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/datafile.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/database.o /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/datatest.o
mkdir -p /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST
echo /src/uppsrc/Core/Mt.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Mt.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Mt.o
echo /src/uppsrc/Core/Thread.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Thread.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Thread.o
echo /src/uppsrc/Core/heap.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/heap.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/heap.o
echo /src/uppsrc/Core/nheap.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/nheap.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/nheap.o
echo /src/uppsrc/Core/OString.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/OString.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/OString.o
echo /src/uppsrc/Core/OWString.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/OWString.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/OWString.o
echo /src/uppsrc/Core/String.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/String.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/String.o
echo /src/uppsrc/Core/StrUtil.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/StrUtil.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/StrUtil.o
echo /src/uppsrc/Core/CharSet.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/CharSet.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/CharSet.o
echo /src/uppsrc/Core/Path.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Path.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Path.o
echo /src/uppsrc/Core/App.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/App.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/App.o
echo /src/uppsrc/Core/Stream.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Stream.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Stream.o
echo /src/uppsrc/Core/Debug.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Debug.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Debug.o
echo /src/uppsrc/Core/Util.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Util.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Util.o
echo /src/uppsrc/Core/mathutil.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/mathutil.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/mathutil.o
echo /src/uppsrc/Core/Cont.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Cont.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Cont.o
echo /src/uppsrc/Core/Callback.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Callback.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Callback.o
echo /src/uppsrc/Core/Color.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Color.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Color.o
echo /src/uppsrc/Core/Gtypes.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Gtypes.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Gtypes.o
echo /src/uppsrc/Core/TimeDate.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/TimeDate.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/TimeDate.o
echo /src/uppsrc/Core/Value.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Value.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Value.o
echo /src/uppsrc/Core/Convert.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Convert.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Convert.o
echo /src/uppsrc/Core/Format.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Format.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Format.o
echo /src/uppsrc/Core/Lang.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Lang.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Lang.o
echo /src/uppsrc/Core/parser.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/parser.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/parser.o
echo /src/uppsrc/Core/Uuid.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Uuid.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Uuid.o
echo /src/uppsrc/Core/Ptr.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Ptr.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Ptr.o
echo /src/uppsrc/Core/Win32Com.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Win32Com.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Win32Com.o
echo /src/uppsrc/Core/Dli.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Dli.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Dli.o
echo /src/uppsrc/Core/Test.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Core/Test.cpp -o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Test.o
/usr/local/bin/ar -sr /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Core.a /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Mt.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Thread.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/heap.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/nheap.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/OString.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/OWString.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/String.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/StrUtil.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/CharSet.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Path.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/App.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Stream.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Debug.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Util.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/mathutil.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Cont.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Callback.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Color.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Gtypes.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/TimeDate.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Value.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Convert.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Format.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Lang.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/parser.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Uuid.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Ptr.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Win32Com.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Dli.o /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Test.o
mkdir -p /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST
echo /src/uppsrc/plugin/bz2/bz2upp.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/bz2/bz2upp.cpp -o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/bz2upp.o
echo /src/uppsrc/plugin/bz2/blocksort.c
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/bz2/blocksort.c -o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/blocksort.o
echo /src/uppsrc/plugin/bz2/bzlib.c
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/bz2/bzlib.c -o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/bzlib.o
echo /src/uppsrc/plugin/bz2/compress.c
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/bz2/compress.c -o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/compress.o
echo /src/uppsrc/plugin/bz2/crctable.c
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/bz2/crctable.c -o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/crctable.o
echo /src/uppsrc/plugin/bz2/decompress.c
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/bz2/decompress.c -o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/decompress.o
echo /src/uppsrc/plugin/bz2/huffman.c
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/bz2/huffman.c -o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/huffman.o
echo /src/uppsrc/plugin/bz2/randtable.c
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/bz2/randtable.c -o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/randtable.o
/usr/local/bin/ar -sr /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/bz2.a /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/bz2upp.o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/blocksort.o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/bzlib.o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/compress.o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/crctable.o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/decompress.o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/huffman.o /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/randtable.o
mkdir -p /uppout/uppnew/plugin/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST
echo /src/uppsrc/plugin/dummy.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/plugin/dummy.cpp -o /uppout/uppnew/plugin/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/dummy.o
/usr/local/bin/ar -sr /uppout/uppnew/plugin/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/plugin.a /uppout/uppnew/plugin/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/dummy.o
mkdir -p /uppout/uppnew/Web/TServ/CONSOLE-GNU3-IA32-LINUX-MAIN-RELEASE-ST
echo /src/uppsrc/Web/TServ/tserv.cpp
/usr/local/bin/g++ -c -O2 -ffunction-sections -x c++ -fuse-cxa-atexit -I"/src/uppsrc" -DflagCONSOLE -DflagST -DflagMAIN -DflagLINUX -DflagGNU3 -DflagIA32 -DflagRELEASE /src/uppsrc/Web/TServ/tserv.cpp -o /uppout/uppnew/Web/TServ/CONSOLE-GNU3-IA32-LINUX-MAIN-RELEASE-ST/tserv.o
/usr/local/bin/g++ -Wl,-s -static -o /uppout/tserv -Wl,--start-group /uppout/uppnew/Web/TServ/CONSOLE-GNU3-IA32-LINUX-MAIN-RELEASE-ST/tserv.o /uppout/uppnew/Web/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Web.a /uppout/uppnew/TCore/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/TCore.a /uppout/uppnew/Core/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/Core.a -lpthread -ldl -luuid /uppout/uppnew/plugin/bz2/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/bz2.a /uppout/uppnew/plugin/CONSOLE-GNU3-IA32-LINUX-RELEASE-ST/plugin.a -Wl,--end-group

22
uppsrc2/TServ/TServ.upp Normal file
View file

@ -0,0 +1,22 @@
uses
Web,
plugin\bz2;
target(WIN32) tserv.exe;
target(!WIN32) tserv;
link(GNU3) "-Wl,-R -Wl,/usr/local/lib";
file
Makefile,
TServ.sh,
version.h,
tserv.cpp,
Info readonly separator,
Copying;
mainconfig
"" = "",
"" = "SHARED";

869
uppsrc2/TServ/err Normal file
View file

@ -0,0 +1,869 @@
make: Warning: File `/upp/uppsrc/Web/TServ/tserv.cpp' has modification time 2.9e+03 s in the future
In file included from /upp/uppsrc/Core/Core.h:206,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/stdlib.h:140: error: syntax error before `(' token
In file included from /usr/include/sys/types.h:133,
from /usr/include/stdlib.h:433,
from /upp/uppsrc/Core/Core.h:206,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/time.h:10: error: 'time_t' is used as a type, but is not
defined as a type.
/usr/include/linux/time.h:16: error: 'time_t' is used as a type, but is not
defined as a type.
/usr/include/linux/time.h:17: error: 'suseconds_t' is used as a type, but is
not defined as a type.
In file included from /usr/include/sys/select.h:46,
from /usr/include/sys/types.h:216,
from /usr/include/stdlib.h:433,
from /upp/uppsrc/Core/Core.h:206,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/bits/time.h:70: error: redefinition of `struct timeval'
/usr/include/linux/time.h:15: error: previous definition of `struct timeval'
In file included from /usr/include/sys/types.h:266,
from /usr/include/stdlib.h:433,
from /upp/uppsrc/Core/Core.h:206,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/bits/pthreadtypes.h:48: error: 'size_t' is used as a type, but is
not defined as a type.
/usr/include/bits/pthreadtypes.h:51: error: 'size_t' is used as a type, but is
not defined as a type.
In file included from /upp/uppsrc/Core/Core.h:206,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/stdlib.h:450: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:450: error: syntax error before `)' token
/usr/include/stdlib.h:480: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:480: error: syntax error before `,' token
/usr/include/stdlib.h:584: error: `size_t' was not declared in this scope
/usr/include/stdlib.h:584: error: syntax error before `)' token
/usr/include/stdlib.h:586: error: `size_t' was not declared in this scope
/usr/include/stdlib.h:586: error: syntax error before `,' token
/usr/include/stdlib.h:595: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:595: error: syntax error before `)' token
In file included from /usr/include/stdlib.h:606,
from /upp/uppsrc/Core/Core.h:206,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/alloca.h:33: error: `size_t' was not declared in this scope
/usr/include/alloca.h:33: error: syntax error before `)' token
In file included from /upp/uppsrc/Core/Core.h:206,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/stdlib.h:611: error: `size_t' was not declared in this scope
/usr/include/stdlib.h:611: error: syntax error before `)' token
/usr/include/stdlib.h:616: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:616: error: syntax error before `,' token
/usr/include/stdlib.h:768: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:768: error: syntax error before `,' token
/usr/include/stdlib.h:773: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:773: error: syntax error before `,' token
/usr/include/stdlib.h:846: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:846: error: syntax error before `)' token
/usr/include/stdlib.h:849: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:849: error: syntax error before `)' token
/usr/include/stdlib.h:853: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:853: error: syntax error before `)' token
/usr/include/stdlib.h:857: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:857: error: syntax error before `)' token
/usr/include/stdlib.h:866: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:866: error: syntax error before `)' token
/usr/include/stdlib.h:870: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:870: error: syntax error before `)' token
/usr/include/stdlib.h:877: error: syntax error before `(' token
/usr/include/stdlib.h:880: error: syntax error before `(' token
/usr/include/stdlib.h:943: error: type specifier omitted for parameter `size_t'
/usr/include/stdlib.h:943: error: syntax error before `)' token
In file included from /usr/include/_G_config.h:44,
from /usr/include/libio.h:32,
from /usr/include/stdio.h:72,
from /upp/uppsrc/Core/Core.h:207,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/gconv.h:72: error: type specifier omitted for parameter `size_t'
/usr/include/gconv.h:72: error: syntax error before `*' token
/usr/include/gconv.h:88: error: type specifier omitted for parameter `size_t'
/usr/include/gconv.h:88: error: syntax error before `*' token
/usr/include/gconv.h:97: error: type specifier omitted for parameter `size_t'
/usr/include/gconv.h:97: error: syntax error before `*' token
/usr/include/gconv.h:174: error: 'size_t' is used as a type, but is not defined
as a type.
In file included from /usr/include/stdio.h:72,
from /upp/uppsrc/Core/Core.h:207,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/libio.h:53:21: stdarg.h: No such file or directory
In file included from /usr/include/stdio.h:72,
from /upp/uppsrc/Core/Core.h:207,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/libio.h:354: error: type specifier omitted for parameter `size_t'
/usr/include/libio.h:354: error: syntax error before `)' token
/usr/include/libio.h:363: error: type specifier omitted for parameter `size_t'
/usr/include/libio.h:363: error: syntax error before `)' token
/usr/include/libio.h:475: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/libio.h:477: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/libio.h:479: error: syntax error before `(' token
In file included from /upp/uppsrc/Core/Core.h:207,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/stdio.h:77: error: syntax error before `;' token
In file included from /upp/uppsrc/Core/Core.h:207,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/stdio.h:286: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:286: error: syntax error before `,' token
/usr/include/stdio.h:292: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:292: error: syntax error before `*' token
/usr/include/stdio.h:304: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:304: error: syntax error before `)' token
/usr/include/stdio.h:311: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:311: error: syntax error before `)' token
/usr/include/stdio.h:339: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:339: error: syntax error before `)' token
/usr/include/stdio.h:344: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:344: error: syntax error before `)' token
/usr/include/stdio.h:347: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:347: error: syntax error before `)' token
/usr/include/stdio.h:353: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:353: error: syntax error before `,' token
/usr/include/stdio.h:357: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:357: error: syntax error before `,' token
/usr/include/stdio.h:367: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:367: error: syntax error before `)' token
/usr/include/stdio.h:383: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:383: error: syntax error before `)' token
/usr/include/stdio.h:414: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:414: error: syntax error before `)' token
/usr/include/stdio.h:421: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:421: error: syntax error before `)' token
/usr/include/stdio.h:426: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:426: error: syntax error before `)' token
/usr/include/stdio.h:562: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:562: error: syntax error before `*' token
/usr/include/stdio.h:565: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:565: error: syntax error before `*' token
/usr/include/stdio.h:575: error: type specifier omitted for parameter `size_t'
/usr/include/stdio.h:575: error: syntax error before `*' token
/usr/include/stdio.h:605: error: syntax error before `(' token
/usr/include/stdio.h:611: error: syntax error before `(' token
/usr/include/stdio.h:633: error: syntax error before `(' token
/usr/include/stdio.h:635: error: syntax error before `(' token
In file included from /upp/uppsrc/Core/Core.h:207,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/stdio.h:800: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/stdio.h:800: error: syntax error before `)' token
In file included from /usr/include/stdio.h:830,
from /upp/uppsrc/Core/Core.h:207,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/bits/stdio.h:34: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/bits/stdio.h:34: error: syntax error before `)' token
/usr/include/bits/stdio.h: In function `int vprintf(...)':
/usr/include/bits/stdio.h:36: error: `__fmt' undeclared (first use this
function)
/usr/include/bits/stdio.h:36: error: (Each undeclared identifier is reported
only once for each function it appears in.)
/usr/include/bits/stdio.h:36: error: `__arg' undeclared (first use this
function)
/usr/include/bits/stdio.h: At global scope:
/usr/include/bits/stdio.h:102: error: type specifier omitted for parameter `
size_t'
/usr/include/bits/stdio.h:102: error: syntax error before `*' token
/usr/include/bits/stdio.h: In function `__ssize_t getline(...)':
/usr/include/bits/stdio.h:104: error: `__lineptr' undeclared (first use this
function)
/usr/include/bits/stdio.h:104: error: `__n' undeclared (first use this
function)
/usr/include/bits/stdio.h:104: error: `__stream' undeclared (first use this
function)
In file included from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/upp/uppsrc/Core/Core.h:209:20: stdarg.h: No such file or directory
In file included from /upp/uppsrc/Core/Core.h:221,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/sys/time.h: At global scope:
/usr/include/sys/time.h:57: error: redefinition of `struct timezone'
/usr/include/linux/time.h:20: error: previous definition of `struct timezone'
/usr/include/sys/time.h:94: error: syntax error before numeric constant
/usr/include/sys/time.h:108: error: redefinition of `struct itimerval'
/usr/include/linux/time.h:402: error: previous definition of `struct itimerval'
In file included from /usr/include/asm-x86_64/vsyscall.h:4,
from /usr/include/asm/vsyscall.h:4,
from /usr/include/asm-x86_64/timex.h:12,
from /usr/include/asm/timex.h:4,
from /usr/include/linux/timex.h:157,
from /usr/include/linux/sched.h:11,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/seqlock.h: In function `void write_seqlock(seqlock_t*)':
/usr/include/linux/seqlock.h:52: error: `spin_lock' undeclared (first use this
function)
/usr/include/linux/seqlock.h:54: error: `smp_wmb' undeclared (first use this
function)
/usr/include/linux/seqlock.h: In function `void write_sequnlock(seqlock_t*)':
/usr/include/linux/seqlock.h:61: error: `spin_unlock' undeclared (first use
this function)
/usr/include/linux/seqlock.h: In function `int write_tryseqlock(seqlock_t*)':
/usr/include/linux/seqlock.h:66: error: `spin_trylock' undeclared (first use
this function)
/usr/include/linux/seqlock.h: In function `unsigned int read_seqbegin(const
seqlock_t*)':
/usr/include/linux/seqlock.h:79: error: `smp_rmb' undeclared (first use this
function)
In file included from /usr/include/asm/system.h:4,
from /usr/include/linux/jiffies.h:8,
from /usr/include/linux/sched.h:12,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/asm-x86_64/system.h: At global scope:
/usr/include/asm-x86_64/system.h:243: error: syntax error before `new'
/usr/include/asm-x86_64/system.h: In function `long unsigned int __cmpxchg(...)
':
/usr/include/asm-x86_64/system.h:246: error: `size' undeclared (first use this
function)
/usr/include/asm-x86_64/system.h:248: error: syntax error before string
constant
/usr/include/asm-x86_64/system.h:254: error: syntax error before string
constant
/usr/include/asm-x86_64/system.h:260: error: syntax error before string
constant
/usr/include/asm-x86_64/system.h:266: error: syntax error before string
constant
/usr/include/asm-x86_64/system.h:272: error: `old' undeclared (first use this
function)
In file included from /usr/include/linux/sched.h:12,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/jiffies.h: At global scope:
/usr/include/linux/jiffies.h:16: error: syntax error before `;' token
/usr/include/linux/jiffies.h:20: error: syntax error before `)' token
In file included from /usr/include/linux/sched.h:13,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/rbtree.h:129: error: syntax error before `new'
In file included from /usr/include/linux/thread_info.h:20,
from /usr/include/linux/sched.h:14,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/bitops.h: In function `int get_bitmask_order(unsigned int)':
/usr/include/linux/bitops.h:78: error: `fls' undeclared (first use this
function)
In file included from /usr/include/linux/cpumask.h:78,
from /usr/include/linux/sched.h:15,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/bitmap.h: In function `void bitmap_zero(long unsigned int*,
int)':
/usr/include/linux/bitmap.h:113: error: `BITS_PER_LONG' undeclared (first use
this function)
/usr/include/linux/bitmap.h:116: error: `BITS_TO_LONGS' undeclared (first use
this function)
/usr/include/linux/bitmap.h:117: error: `memset' undeclared (first use this
function)
/usr/include/linux/bitmap.h: In function `void bitmap_fill(long unsigned int*,
int)':
/usr/include/linux/bitmap.h:123: error: `size_t' undeclared (first use this
function)
/usr/include/linux/bitmap.h:123: error: syntax error before `=' token
/usr/include/linux/bitmap.h:124: error: `nlongs' undeclared (first use this
function)
/usr/include/linux/bitmap.h:126: error: `memset' undeclared (first use this
function)
/usr/include/linux/bitmap.h: In function `void bitmap_copy(long unsigned int*,
const long unsigned int*, int)':
/usr/include/linux/bitmap.h:137: error: `BITS_TO_LONGS' undeclared (first use
this function)
/usr/include/linux/bitmap.h:138: error: `memcpy' undeclared (first use this
function)
In file included from /usr/include/linux/sched.h:15,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/cpumask.h: At global scope:
/usr/include/linux/cpumask.h:81: error: `bits' was not declared in this scope
/usr/include/linux/cpumask.h:81: error: invalid data member initialization
/usr/include/linux/cpumask.h:81: error: (use `=' to initialize static data
members)
/usr/include/linux/cpumask.h: In function `void __cpu_set(int, volatile
cpumask_t*)':
/usr/include/linux/cpumask.h:87: error: 'volatile struct cpumask_t' has no
member named 'bits'
/usr/include/linux/cpumask.h: In function `void __cpu_clear(int, volatile
cpumask_t*)':
/usr/include/linux/cpumask.h:93: error: 'volatile struct cpumask_t' has no
member named 'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_setall(cpumask_t*, int)
':
/usr/include/linux/cpumask.h:99: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_clear(cpumask_t*, int)':
/usr/include/linux/cpumask.h:105: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h: In function `int __cpu_test_and_set(int,
cpumask_t*)':
/usr/include/linux/cpumask.h:114: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_and(cpumask_t*, const
cpumask_t*, const cpumask_t*, int)':
/usr/include/linux/cpumask.h:121: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h:121: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h:121: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_or(cpumask_t*, const
cpumask_t*, const cpumask_t*, int)':
/usr/include/linux/cpumask.h:128: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h:128: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h:128: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_xor(cpumask_t*, const
cpumask_t*, const cpumask_t*, int)':
/usr/include/linux/cpumask.h:135: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h:135: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h:135: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_andnot(cpumask_t*, const
cpumask_t*, const cpumask_t*, int)':
/usr/include/linux/cpumask.h:143: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h:143: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h:143: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_complement(cpumask_t*,
const cpumask_t*, int)':
/usr/include/linux/cpumask.h:150: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h:150: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `int __cpus_equal(const cpumask_t*,
const cpumask_t*, int)':
/usr/include/linux/cpumask.h:157: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h:157: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `int __cpus_intersects(const
cpumask_t*, const cpumask_t*, int)':
/usr/include/linux/cpumask.h:164: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h:164: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `int __cpus_subset(const cpumask_t*,
const cpumask_t*, int)':
/usr/include/linux/cpumask.h:171: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h:171: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `int __cpus_empty(const cpumask_t*,
int)':
/usr/include/linux/cpumask.h:177: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `int __cpus_full(const cpumask_t*,
int)':
/usr/include/linux/cpumask.h:183: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `int __cpus_weight(const cpumask_t*,
int)':
/usr/include/linux/cpumask.h:189: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_shift_right(cpumask_t*,
const cpumask_t*, int, int)':
/usr/include/linux/cpumask.h:197: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h:197: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `void __cpus_shift_left(cpumask_t*,
const cpumask_t*, int, int)':
/usr/include/linux/cpumask.h:205: error: 'struct cpumask_t' has no member named
'bits'
/usr/include/linux/cpumask.h:205: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `int __first_cpu(const cpumask_t*,
int)':
/usr/include/linux/cpumask.h:211: error: syntax error before `,' token
/usr/include/linux/cpumask.h: In function `int __next_cpu(int, const
cpumask_t*, int)':
/usr/include/linux/cpumask.h:217: error: syntax error before `,' token
/usr/include/linux/cpumask.h: In function `int __cpumask_scnprintf(char*, int,
const cpumask_t*, int)':
/usr/include/linux/cpumask.h:268: error: 'const struct cpumask_t' has no member
named 'bits'
/usr/include/linux/cpumask.h: In function `int __cpumask_parse(const char*,
int, cpumask_t*, int)':
/usr/include/linux/cpumask.h:276: error: 'struct cpumask_t' has no member named
'bits'
In file included from /usr/include/asm/mmu.h:4,
from /usr/include/linux/sched.h:21,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/asm-x86_64/mmu.h: At global scope:
/usr/include/asm-x86_64/mmu.h:15: error: 'rwlock_t' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/mmu.h:17: error: field `sem' has incomplete type
In file included from /usr/include/linux/signal.h:4,
from /usr/include/linux/sched.h:25,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/list.h:715:2: warning: #warning "don't include kernel headers in userspace"
In file included from /usr/include/asm/signal.h:4,
from /usr/include/linux/signal.h:6,
from /usr/include/linux/sched.h:25,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/asm-x86_64/signal.h:35: error: conflicting types for `typedef long
unsigned int sigset_t'
/usr/include/sys/select.h:38: error: previous declaration as `typedef struct
__sigset_t sigset_t'
/usr/include/asm-x86_64/signal.h:163: error: 'size_t' is used as a type, but is
not defined as a type.
In file included from /usr/include/asm-x86_64/siginfo.h:8,
from /usr/include/asm/siginfo.h:4,
from /usr/include/linux/signal.h:7,
from /usr/include/linux/sched.h:25,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/asm-generic/siginfo.h:57: error: 'timer_t' is used as a type, but
is not defined as a type.
/usr/include/asm-generic/siginfo.h:76: error: 'clock_t' is used as a type, but
is not defined as a type.
/usr/include/asm-generic/siginfo.h:77: error: 'clock_t' is used as a type, but
is not defined as a type.
In file included from /usr/include/linux/sched.h:27,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/fs_struct.h:9: error: 'rwlock_t' is used as a type, but is
not defined as a type.
In file included from /usr/include/linux/sched.h:29,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/completion.h:15: error: syntax error before `;' token
/usr/include/linux/completion.h: In function `void init_completion(completion*)
':
/usr/include/linux/completion.h:27: error: invalid use of `union wait'
/usr/include/linux/completion.h:27: error: `init_waitqueue_head' undeclared
(first use this function)
In file included from /usr/include/linux/sched.h:30,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/pid.h: At global scope:
/usr/include/linux/pid.h:17: error: field `pid_chain' has incomplete type
/usr/include/linux/pid.h:19: error: field `pid_list' has incomplete type
In file included from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/sched.h:92: error: type specifier omitted for parameter `
process_counts'
In file included from /usr/include/linux/sched.h:101,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/linux/timer.h:11: error: field `entry' has incomplete type
/usr/include/linux/timer.h: In function `void init_timer(timer_list*)':
/usr/include/linux/timer.h:45: error: `spin_lock_init' undeclared (first use
this function)
In file included from /usr/include/asm/pda.h:4,
from /usr/include/asm-x86_64/current.h:7,
from /usr/include/asm/current.h:4,
from /usr/include/asm-x86_64/processor.h:18,
from /usr/include/asm/processor.h:4,
from /usr/include/linux/sched.h:103,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/asm-x86_64/pda.h: At global scope:
/usr/include/asm-x86_64/pda.h:26: error: `CONFIG_X86_L1_CACHE_SHIFT' was not
declared in this scope
/usr/include/asm-x86_64/pda.h:26: error: requested alignment is not a constant
In file included from /usr/include/asm/processor.h:4,
from /usr/include/linux/sched.h:103,
from /usr/include/pthread.h:20,
from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/asm-x86_64/processor.h:190: error: 'u16' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:191: error: 'u16' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:192: error: 'u16' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:193: error: 'u16' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:194: error: 'u64' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:195: error: 'u64' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:196: error: 'u32' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:197: error: 'u32' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:198: error: syntax error before `[' token
/usr/include/asm-x86_64/processor.h:199: error: syntax error before `[' token
/usr/include/asm-x86_64/processor.h:200: error: syntax error before `[' token
/usr/include/asm-x86_64/processor.h:208: error: 'u32' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:209: error: 'u64' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:210: error: 'u64' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:211: error: 'u64' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:212: error: 'u64' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:213: error: syntax error before `[' token
/usr/include/asm-x86_64/processor.h:214: error: 'u32' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:215: error: 'u32' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:216: error: 'u16' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:217: error: 'u16' is used as a type, but is
not defined as a type.
/usr/include/asm-x86_64/processor.h:228: error: `CONFIG_X86_L1_CACHE_SHIFT' was
not declared in this scope
/usr/include/asm-x86_64/processor.h:228: error: requested alignment is not a
constant
/usr/include/asm-x86_64/processor.h:259: error: syntax error before `[' token
/usr/include/asm-x86_64/processor.h: In function `void prefetchw(void*)':
/usr/include/asm-x86_64/processor.h:401: error: `"r"' cannot be used as a
function
/usr/include/asm-x86_64/processor.h:401: error: `alternative_input' undeclared
(first use this function)
In file included from /upp/uppsrc/Core/Core.h:225,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/pthread.h: At global scope:
/usr/include/pthread.h:247: error: type specifier omitted for parameter `size_t
'
/usr/include/pthread.h:247: error: syntax error before `)' token
/usr/include/pthread.h:251: error: type specifier omitted for parameter `size_t
'
/usr/include/pthread.h:251: error: syntax error before `*' token
/usr/include/pthread.h:272: error: type specifier omitted for parameter `size_t
'
/usr/include/pthread.h:272: error: syntax error before `)' token
/usr/include/pthread.h:277: error: type specifier omitted for parameter `size_t
'
/usr/include/pthread.h:277: error: syntax error before `*' token
/usr/include/pthread.h:284: error: type specifier omitted for parameter `size_t
'
/usr/include/pthread.h:284: error: syntax error before `)' token
/usr/include/pthread.h:288: error: type specifier omitted for parameter `size_t
'
/usr/include/pthread.h:288: error: syntax error before `*' token
In file included from /usr/include/c++/3.3.5/cstring:49,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:65,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/cstddef:52: error: `ptrdiff_t' not declared
In file included from /usr/include/c++/3.3.5/bits/stl_algobase.h:65,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/cstring:80: error: `memmove' not declared
/usr/include/c++/3.3.5/cstring:81: error: `strcpy' not declared
/usr/include/c++/3.3.5/cstring:82: error: `strncpy' not declared
/usr/include/c++/3.3.5/cstring:83: error: `strcat' not declared
/usr/include/c++/3.3.5/cstring:84: error: `strncat' not declared
/usr/include/c++/3.3.5/cstring:85: error: `memcmp' not declared
/usr/include/c++/3.3.5/cstring:86: error: `strcmp' not declared
/usr/include/c++/3.3.5/cstring:87: error: `strcoll' not declared
/usr/include/c++/3.3.5/cstring:88: error: `strncmp' not declared
/usr/include/c++/3.3.5/cstring:89: error: `strxfrm' not declared
/usr/include/c++/3.3.5/cstring:90: error: `strcspn' not declared
/usr/include/c++/3.3.5/cstring:91: error: `strspn' not declared
/usr/include/c++/3.3.5/cstring:92: error: `strtok' not declared
/usr/include/c++/3.3.5/cstring:94: error: `strerror' not declared
/usr/include/c++/3.3.5/cstring:95: error: `strlen' not declared
/usr/include/c++/3.3.5/cstring:97: error: `memchr' not declared
/usr/include/c++/3.3.5/cstring:100: error: type specifier omitted for parameter
`size_t'
/usr/include/c++/3.3.5/cstring:100: error: syntax error before `)' token
/usr/include/c++/3.3.5/cstring: In function `void* std::memchr(...)':
/usr/include/c++/3.3.5/cstring:101: error: `__p' undeclared (first use this
function)
/usr/include/c++/3.3.5/cstring:101: error: `__c' undeclared (first use this
function)
/usr/include/c++/3.3.5/cstring: At global scope:
/usr/include/c++/3.3.5/cstring:103: error: `strchr' not declared
/usr/include/c++/3.3.5/cstring:109: error: `strpbrk' not declared
/usr/include/c++/3.3.5/cstring:115: error: `strrchr' not declared
/usr/include/c++/3.3.5/cstring:121: error: `strstr' not declared
In file included from /usr/include/c++/3.3.5/bits/stl_algobase.h:67,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/cstdlib:105: error: `mbstowcs' not declared
/usr/include/c++/3.3.5/cstdlib:115: error: `wcstombs' not declared
In file included from /usr/include/c++/3.3.5/bits/stl_algobase.h:69,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/new:82: error: `size_t' undeclared in namespace `std'
/usr/include/c++/3.3.5/new:82: error: declaration of `operator new' as
non-function
/usr/include/c++/3.3.5/new:82: error: invalid declarator
/usr/include/c++/3.3.5/new:83: error: `size_t' undeclared in namespace `std'
/usr/include/c++/3.3.5/new:83: error: declaration of `operator new []' as
non-function
/usr/include/c++/3.3.5/new:83: error: invalid declarator
/usr/include/c++/3.3.5/new:86: error: `size_t' undeclared in namespace `std'
/usr/include/c++/3.3.5/new:86: error: syntax error before `::' token
/usr/include/c++/3.3.5/new:86: error: `operator new' takes type `size_t' (`long
unsigned int') as first parameter
/usr/include/c++/3.3.5/new:87: error: `size_t' undeclared in namespace `std'
/usr/include/c++/3.3.5/new:87: error: syntax error before `::' token
/usr/include/c++/3.3.5/new:87: error: `operator new' takes type `size_t' (`long
unsigned int') as first parameter
/usr/include/c++/3.3.5/new:92: error: `size_t' undeclared in namespace `std'
/usr/include/c++/3.3.5/new:92: error: syntax error before `*' token
/usr/include/c++/3.3.5/new:92: error: `operator new' takes type `size_t' (`long
unsigned int') as first parameter
/usr/include/c++/3.3.5/new: In function `void* operator new(long unsigned int,
...)':
/usr/include/c++/3.3.5/new:92: error: `__p' undeclared (first use this
function)
/usr/include/c++/3.3.5/new: At global scope:
/usr/include/c++/3.3.5/new:93: error: `size_t' undeclared in namespace `std'
/usr/include/c++/3.3.5/new:93: error: syntax error before `*' token
/usr/include/c++/3.3.5/new:93: error: `operator new' takes type `size_t' (`long
unsigned int') as first parameter
In file included from /usr/include/c++/3.3.5/x86_64-suse-linux/bits/c++locale.h:43,
from /usr/include/c++/3.3.5/iosfwd:46,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:70,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/iconv.h:43: error: syntax error before `(' token
In file included from /usr/include/c++/3.3.5/iosfwd:47,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:70,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/cctype:68: error: `isalnum' not declared
/usr/include/c++/3.3.5/cctype:69: error: `isalpha' not declared
/usr/include/c++/3.3.5/cctype:70: error: `iscntrl' not declared
/usr/include/c++/3.3.5/cctype:71: error: `isdigit' not declared
/usr/include/c++/3.3.5/cctype:72: error: `isgraph' not declared
/usr/include/c++/3.3.5/cctype:73: error: `islower' not declared
/usr/include/c++/3.3.5/cctype:74: error: `isprint' not declared
/usr/include/c++/3.3.5/cctype:75: error: `ispunct' not declared
/usr/include/c++/3.3.5/cctype:76: error: `isspace' not declared
/usr/include/c++/3.3.5/cctype:77: error: `isupper' not declared
/usr/include/c++/3.3.5/cctype:78: error: `isxdigit' not declared
/usr/include/c++/3.3.5/cctype:79: error: `tolower' not declared
/usr/include/c++/3.3.5/cctype:80: error: `toupper' not declared
In file included from /usr/include/c++/3.3.5/x86_64-suse-linux/bits/c++io.h:35,
from /usr/include/c++/3.3.5/bits/fpos.h:44,
from /usr/include/c++/3.3.5/iosfwd:49,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:70,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/cstdio:114: error: `fread' not declared
/usr/include/c++/3.3.5/cstdio:120: error: `fwrite' not declared
In file included from /usr/include/c++/3.3.5/bits/fpos.h:44,
from /usr/include/c++/3.3.5/iosfwd:49,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:70,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/x86_64-suse-linux/bits/c++io.h:43: error: syntax error
before `;' token
/usr/include/c++/3.3.5/x86_64-suse-linux/bits/c++io.h:45: error: syntax error
before `;' token
In file included from /usr/include/c++/3.3.5/cwchar:51,
from /usr/include/c++/3.3.5/bits/fpos.h:45,
from /usr/include/c++/3.3.5/iosfwd:49,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:70,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/ctime:66: error: `clock_t' not declared
/usr/include/c++/3.3.5/ctime:67: error: `time_t' not declared
/usr/include/c++/3.3.5/ctime:68: error: `tm' not declared
/usr/include/c++/3.3.5/ctime:70: error: `clock' not declared
/usr/include/c++/3.3.5/ctime:71: error: `difftime' not declared
/usr/include/c++/3.3.5/ctime:72: error: `mktime' not declared
/usr/include/c++/3.3.5/ctime:73: error: `time' not declared
/usr/include/c++/3.3.5/ctime:74: error: `asctime' not declared
/usr/include/c++/3.3.5/ctime:75: error: `ctime' not declared
/usr/include/c++/3.3.5/ctime:76: error: `gmtime' not declared
/usr/include/c++/3.3.5/ctime:77: error: `localtime' not declared
/usr/include/c++/3.3.5/ctime:78: error: `strftime' not declared
In file included from /usr/include/c++/3.3.5/cwchar:54,
from /usr/include/c++/3.3.5/bits/fpos.h:45,
from /usr/include/c++/3.3.5/iosfwd:49,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:70,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/wchar.h:40:21: stdarg.h: No such file or directory
In file included from /usr/include/c++/3.3.5/cwchar:54,
from /usr/include/c++/3.3.5/bits/fpos.h:45,
from /usr/include/c++/3.3.5/iosfwd:49,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:70,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/wchar.h:137: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:137: error: syntax error before `)' token
/usr/include/wchar.h:145: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:145: error: syntax error before `)' token
/usr/include/wchar.h:152: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:152: error: syntax error before `)' token
/usr/include/wchar.h:162: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:162: error: syntax error before `)' token
/usr/include/wchar.h:172: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:172: error: syntax error before `,' token
/usr/include/wchar.h:182: error: syntax error before `(' token
/usr/include/wchar.h:198: error: syntax error before `(' token
/usr/include/wchar.h:224: error: syntax error before `(' token
/usr/include/wchar.h:228: error: syntax error before `(' token
/usr/include/wchar.h:243: error: syntax error before `(' token
/usr/include/wchar.h:254: error: syntax error before `(' token
/usr/include/wchar.h:261: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:261: error: syntax error before `)' token
/usr/include/wchar.h:266: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:266: error: syntax error before `)' token
/usr/include/wchar.h:271: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:271: error: syntax error before `)' token
/usr/include/wchar.h:275: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:275: error: syntax error before `)' token
/usr/include/wchar.h:279: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:279: error: syntax error before `)' token
/usr/include/wchar.h:286: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:286: error: syntax error before `)' token
/usr/include/wchar.h:306: error: syntax error before `(' token
/usr/include/wchar.h:311: error: syntax error before `(' token
/usr/include/wchar.h:315: error: syntax error before `(' token
/usr/include/wchar.h:317: error: syntax error before `(' token
/usr/include/wchar.h:324: error: syntax error before `(' token
/usr/include/wchar.h:333: error: syntax error before `(' token
/usr/include/wchar.h:339: error: syntax error before `(' token
/usr/include/wchar.h:348: error: syntax error before `(' token
/usr/include/wchar.h:354: error: syntax error before `(' token
/usr/include/wchar.h:368: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:368: error: syntax error before `)' token
/usr/include/wchar.h:575: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:575: error: syntax error before `)' token
/usr/include/wchar.h:602: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:602: error: syntax error before `,' token
/usr/include/wchar.h:612: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/wchar.h:612: error: syntax error before `)' token
/usr/include/wchar.h:619: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/wchar.h:619: error: syntax error before `)' token
/usr/include/wchar.h:623: error: type specifier omitted for parameter `size_t'
/usr/include/wchar.h:623: error: syntax error before `,' token
/usr/include/wchar.h:659: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/wchar.h:659: error: syntax error before `)' token
/usr/include/wchar.h:666: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/wchar.h:666: error: syntax error before `)' token
/usr/include/wchar.h:671: error: type specifier omitted for parameter `
__gnuc_va_list'
/usr/include/wchar.h:671: error: syntax error before `)' token
/usr/include/wchar.h:793: error: syntax error before `(' token
/usr/include/wchar.h:803: error: syntax error before `(' token
In file included from /usr/include/c++/3.3.5/bits/fpos.h:45,
from /usr/include/c++/3.3.5/iosfwd:49,
from /usr/include/c++/3.3.5/bits/stl_algobase.h:70,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/cwchar:147: error: `mbrlen' not declared
/usr/include/c++/3.3.5/cwchar:148: error: `mbrtowc' not declared
/usr/include/c++/3.3.5/cwchar:150: error: `mbsrtowcs' not declared
/usr/include/c++/3.3.5/cwchar:162: error: `wcrtomb' not declared
/usr/include/c++/3.3.5/cwchar:167: error: `wcscspn' not declared
/usr/include/c++/3.3.5/cwchar:168: error: `wcsftime' not declared
/usr/include/c++/3.3.5/cwchar:169: error: `wcslen' not declared
/usr/include/c++/3.3.5/cwchar:173: error: `wcsrtombs' not declared
/usr/include/c++/3.3.5/cwchar:174: error: `wcsspn' not declared
/usr/include/c++/3.3.5/cwchar:180: error: `wcsxfrm' not declared
/usr/include/c++/3.3.5/cwchar:216: error: type specifier omitted for parameter
`size_t'
/usr/include/c++/3.3.5/cwchar:216: error: syntax error before `)' token
/usr/include/c++/3.3.5/cwchar: In function `wchar_t* std::wmemchr(...)':
/usr/include/c++/3.3.5/cwchar:217: error: `wchar_t* std::wmemchr(...)'
conflicts with previous using declaration `wchar_t* wmemchr(...)'
In file included from /usr/include/c++/3.3.5/bits/stl_algobase.h:73,
from /usr/include/c++/3.3.5/algorithm:66,
from /upp/uppsrc/Core/Core.h:299,
from /upp/uppsrc/Web/Web.h:4,
from /upp/uppsrc/Web/TServ/tserv.cpp:1:
/usr/include/c++/3.3.5/bits/stl_iterator_base_types.h: At global scope:
/usr/include/c++/3.3.5/bits/stl_iterator_base_types.h:102: error: syntax error
before `,' token
/usr/include/c++/3.3.5/bits/stl_iterator_base_types.h:109: error: template
declaration of `typedef _Tp std::value_type'
/usr/include/c++/3.3.5/bits/stl_iterator_base_types.h:109: confused by earlier errors, bailing out
make: *** [/uppout/Web/TServ/GCC33-Gcc-Linux-Main/tserv.o] Error 1

5
uppsrc2/TServ/init Normal file
View file

@ -0,0 +1,5 @@
#ifndef _Web_TServ_icpp_init_stub
#define _Web_TServ_icpp_init_stub
#include "Web/init"
#include "plugin\bz2/init"
#endif

843
uppsrc2/TServ/tserv.cpp Normal file
View file

@ -0,0 +1,843 @@
#include <Web/Web.h>
#include "version.h"
#include <plugin/bz2/bz2.h>
#ifdef PLATFORM_POSIX
#include <signal.h>
#endif//PLATFORM_POSIX
using namespace Upp;
enum { DEFAULT_PORT = 2346 };
#ifdef _DEBUG
#define DO_SVRLOG 1
#else
#define DO_SVRLOG 0
#endif
#if DO_SVRLOG
#define SVRLOG(x) { StringStream ss; ss << x << '\n'; RLOG(ss.GetResult()); fputs(ss.GetResult(), stderr); fflush(stderr); }
#else
#define SVRLOG(x)
#endif
/*
void DeleteFolderDeep(const char *dir)
{
FindFile ff(String(dir) + "/*.*");
while(ff) {
String name = ff.GetName();
String p = AppendFileName(dir, name);
if(ff.IsFile())
DeleteFile(p);
else
if(ff.IsFolder())
DeleteFolderDeep(p);
ff.Next();
}
DirectoryDelete(dir);
}
*/
static bool quit_signal = false;
static void QuitSignal(int)
{
puts("Termination signal received, quitting...");
quit_signal = true;
}
class CommandServer
{
public:
typedef CommandServer CLASSNAME;
CommandServer();
virtual ~CommandServer();
CommandServer& Logging(bool l) { logging = l; return *this; }
CommandServer& Timing(bool t) { timing = t; return *this; }
CommandServer& Filter(const char *ip);
void Execute(Socket& socket);
bool StartServer(int port, const String& cmdline);
void StopServer(int port);
void RunServer(int port);
void RunClient();
void Quit() { quit_flag = true; }
protected:
String GetConInput(const char *prompt);
virtual void ExecTimer();
// void RunCommand(String cmd, Socket& socket);
String CheckFiles(const char *f);
String FileRemove(const char *f);
String DeleteFolderDeep(const char *f);
String UploadFiles(const char *f);
String DownloadFiles(const char *f);
String CreateDir(const char *f);
String GetFileInfo(const char *f);
protected:
class Connection
{
public:
Connection(Socket socket) : socket(socket), eof(false) {}
virtual ~Connection();
bool IsEof() const { return eof; }
String GetName() const { return name; }
virtual bool Run() = 0;
protected:
String name;
Socket socket;
bool eof;
};
class CommandConnection : public Connection
{
public:
CommandConnection(Socket& socket, const char *command);
virtual bool Run();
private:
One<SlaveProcess> slave;
};
Array<Connection> connections;
int timer_chunk;
bool logging;
bool timing;
bool quit_flag;
Index<dword> ip_filter;
// int thread_count;
};
//////////////////////////////////////////////////////////////////////
// CommandServer::Connection::
CommandServer::Connection::~Connection()
{
if(socket.IsOpen())
socket.StopWrite();
}
//////////////////////////////////////////////////////////////////////
// CommandServer::CommandConnection::
CommandServer::CommandConnection::CommandConnection(Socket& _socket, const char *_command)
: Connection(_socket)
{
_socket.Clear();
try {
String environment;
String pathlist;
if(*_command == ':') {
const char *b = ++_command;
while(*_command && *_command++ != '\n')
;
environment = ASCII85Decode(String(b, _command));
for(b = environment; *b; b += strlen(b) + 1)
if(!MemICmp(b, "PATH=", 5)) {
pathlist = b + 5;
break;
}
}
if(*_command == '=')
_command++;
String command = _command;
if(!IsNull(pathlist)) {
String exec;
if(*_command == '\"') {
while(*++_command && (*_command != '\"' || *++_command == '\"'))
exec.Cat(*_command);
}
else
while(*_command && (byte)*_command > ' ')
exec.Cat(*_command++);
command = GetFileOnPath(exec, pathlist, true);
#ifdef PLATFORM_WIN32
if(IsNull(command))
command = GetFileOnPath(exec + ".exe", pathlist, true);
#endif
if(IsNull(command))
command = exec;
if(command.Find(' ') >= 0)
command = '\"' + command + '\"';
command << ' ' << _command;
}
LOG("CommandServer::CommandConnection(" << command << ")");
slave = StartProcess(command, environment);
LOG("CommandServer::CommandConnection -> OK");
socket.Write("+\0", 2);
name << "[command]" << command;
}
catch(Exc e) {
if(socket.IsOpen())
socket.Write('-' + e + '\0');
throw;
}
}
bool CommandServer::CommandConnection::Run()
{
// SVRLOG("CommandConnection::Run");
if(eof)
return true;
ASSERT(socket.IsOpen());
bool work = false;
String inp = socket.ReadUntil('\0', 0, 10000000);
if(inp.IsVoid())
{ // broken pipe
slave -> Kill();
eof = true;
return true;
}
if(!inp.IsEmpty())
{
SVRLOG("-> input data: <" << inp << ">");
work = true;
slave -> Write(inp);
}
String out = Null;
eof = !slave -> Read(out);
if(!out.IsEmpty())
{
work = true;
SVRLOG("-> output data: <" << out << ">");
socket.Write(out);
}
if(eof)
{
work = true;
socket.Write("\0", 1);
SVRLOG("Process terminated, exit code = " << slave -> GetExitCode());
String ec = IntStr(slave -> GetExitCode());
socket.Write(ec, ec.GetLength() + 1);
socket.StopWrite();
}
// SVRLOG("/ CommandConnection::Run -> " << (work ? "working" : "idle"));
return work;
}
//////////////////////////////////////////////////////////////////////
// CommandServer::
CommandServer::CommandServer()
{
timer_chunk = 100;
quit_flag = true;
Logging(false);
Timing(false);
}
CommandServer::~CommandServer()
{
}
CommandServer& CommandServer::Filter(const char *ip)
{
Socket::Init();
hostent *he = gethostbyname(ip);
if(he)
ip_filter.FindAdd(Peek32be((in_addr *)(he -> h_addr_list[0])));
else
fputs(NFormat("gethostbyname: adresa '%s' nebyla nalezena ...\n", ip), stderr);
return *this;
}
String CommandServer::CheckFiles(const char *f)
{
int line = 0;
String out = "OK\n";
while(*f)
{
line++;
const char *b = f;
while(*f && *f != '\n' && *f != '\t')
f++;
String fn = NativePath(String(b, f));
int t;
if(*f != '\t' || IsNull(t = ScanInt(f + 1, &f)))
return NFormat("ERROR(%s): file time expected at line %d", fn, line);
Time time = Time(2000, 1, 1) + t;
int l;
if(*f != '\t' || IsNull(l = ScanInt(f + 1, &f)))
return NFormat("ERROR(%s): file size expected at line %d", fn, line);
FindFile ff(fn);
if(ff && tabs(Time(ff.GetLastWriteTime()) - time) <= 2 && ff.GetLength() == l)
out << fn << '\n';
while(*f && *f++ != '\n')
;
}
return out;
}
String CommandServer::FileRemove(const char *f)
{
String out;
while(*f)
{
const char *b = f;
while(*f && *f != '\n')
f++;
String fn(b, f);
if(!IsNull(fn) && !FileDelete(NativePath(fn)))
out << NFormat("%s: error deleting file\n", fn);
while(*f && *f++ != '\n')
;
}
if(IsNull(out))
out = "OK";
return out;
}
String CommandServer::DeleteFolderDeep(const char *f)
{
while(*f)
{
const char *b = f;
while(*f && *f != '\n')
f++;
String fn(b, f);
if(!IsNull(fn))
Upp::DeleteFolderDeep(NativePath(fn));
while(*f && *f++ != '\n')
;
}
return "OK";
}
String CommandServer::GetFileInfo(const char *f)
{
int td = ScanInt(f, &f) - (int)(GetSysTime() - Time(2000, 1, 1));
if(*f++ != ':')
return "ERROR(@): ':' expected after time delta";
int line = 0;
String output;
while(*f)
{
line++;
const char *b = f;
while(*f && *f != '\n')
f++;
String fn(b, f);
FindFile ff;
output << fn;
if(ff.Search(NativePath(fn)))
output << '\t' << ((int)(Time(ff.GetLastWriteTime()) - Time(2000, 1, 1)) + td)
<< '\t' << (ff.IsFile() ? (int)ff.GetLength() : -1);
output << "\n";
while(*f && *f++ != '\n')
;
}
return output;
}
String CommandServer::UploadFiles(const char *f)
{
SVRLOG("CommandServer::UploadFiles");
int line = 0;
while(*f)
{
++line;
const char *b = f;
while(*f && *f != '\t' && *f != '\n')
f++;
String fn = NativePath(String(b, f));
if(IsNull(fn))
return NFormat("ERROR: file name expected at line %d", line);
SVRLOG("Updating file '" << fn << "'...");
int t;
if(*f != '\t' || IsNull(t = ScanInt(f + 1, &f)))
return NFormat("ERROR(%s): file time expected at line %d", fn, line);
Time time = Time(2000, 1, 1) + t;
int l;
if(*f != '\t' || IsNull(l = ScanInt(f + 1, &f)))
return NFormat("ERROR(%s): file size expected at line %d", fn, line);
if(*f != '\t')
return NFormat("ERROR(%s): file content expected at line %d", fn, line);
b = ++f;
while(*f && *f != '\n')
f++;
if(*f != '\n')
return NFormat("ERROR(%s): unexpected end of file at line %d", fn, line);
SVRLOG("ASCII85 length = " << (int)(f - b));
String bz = ASCII85Decode((const byte *)b, f - b);
SVRLOG("BZ compressed length = " << bz.GetLength());
String content = BZ2Decompress(bz);
SVRLOG("Content length = " << content.GetLength());
if(content.GetLength() != l)
return NFormat("ERROR(%s): file size (%d) doesn't match decompressed size %d", fn, l, content.GetLength());
RealizePath(fn);
if(!SaveFile(fn, content) || !FileSetTime(fn, time))
return NFormat("ERROR(%s): cannot write file", fn);
SVRLOG(NFormat("FileSetTime(%s, %`) -> %`", fn, time, FileGetTime(fn)));
while(*f && *f++ != '\n')
;
}
SVRLOG("// CommandServer::UploadFiles");
return "OK";
}
String CommandServer::DownloadFiles(const char *f)
{
int line = 0;
String output;
while(*f)
{
line++;
const char *b = f;
while(*f && *f != '\n')
f++;
String fn(b, f);
FindFile ff;
output << fn;
String nfn = NativePath(fn);
if(ff.Search(nfn))
{
String data = LoadFile(nfn);
output << '\t' << data.GetLength() << '\t' << ASCII85Encode(BZ2Compress(data));
}
output << "\n";
while(*f && *f++ != '\n')
;
}
return output;
}
String CommandServer::CreateDir(const char *f)
{
RealizeDirectory(f);
return "OK";
}
/*
void CommandServer::RunCommand(const String& _command, Socket& socket)
{
String command = _command;
#ifdef PLATFORM_WIN32
if(*command == '/')
command = "x:" + command;
#endif
LOG("CommandServer::RunCommand(" << command << ")");
One<SlaveProcess> process = StartProcess(command);
LOG("CommandServer::RunCommand -> OK");
socket.Send("+\0", 2);
bool work = false, running;
do
{
if(socket.Peek())
{
SVRLOG("-> socket peek");
String inp = socket.Recv(0 | Socket::MULTIPART);
SVRLOG("-> input data: <" << inp << ">");
if(!inp.IsEmpty())
{
work = true;
process -> Write(inp);
}
}
String out = Null;
running = process -> Read(out);
// SVRLOG("-> output data: <" << out << ">");
if(!out.IsEmpty())
{
work = true;
socket.Send(out);
}
else
MtSleep(200);
// SVRLOG("work = " << work << ", running = " << running);
// if(!work && running)
}
while(running);
socket.Send("\0", 1);
LOG("Process terminated, exit code = " << process -> GetExitCode());
String ec = IntStr(process -> GetExitCode());
socket.Send(ec, ec.GetLength() + 1);
}
*/
void CommandServer::Execute(Socket& socket)
{
String cmd = socket.ReadUntil('\0', Null, 10000000);
if(logging)
puts(cmd);
SVRLOG(cmd);
String out;
const char *data = cmd;
switch(*data++)
{
case '?':
out = "+" TSERV_VERSION "\x1A";
break;
case '.':
Quit();
out = ".QUITTING\x1A";
break;
case ':':
case '=':
connections.Add(new CommandConnection(socket, cmd));
return;
case '-':
out = FileRemove(data);
break;
case '~':
out = DeleteFolderDeep(data);
break;
case '<':
out = CheckFiles(data);
break;
case '>':
out = UploadFiles(data);
break;
case '^':
out = DownloadFiles(data);
break;
case '*':
out = CreateDir(data);
break;
case '@':
out = GetFileInfo(data);
break;
default:
throw Exc(NFormat("Invalid command: '%s'", cmd));
}
socket.Write(out);
socket.Write("\0", 1);
socket.Close();
}
void CommandServer::ExecTimer()
{
}
bool CommandServer::StartServer(int port, const String& cmdline)
{
#ifdef PLATFORM_WIN32
STARTUPINFO sinfo;
GetStartupInfo(&sinfo);
PROCESS_INFORMATION pinfo;
Buffer<char> cmd(cmdline.GetLength() + 1);
memcpy(cmd, cmdline, cmdline.GetLength() + 1);
if(!CreateProcess(NULL, cmd, NULL, NULL, false,
CREATE_NO_WINDOW, NULL, NULL, &sinfo, &pinfo))
throw Exc(NFormat("Cannot create process '%s':\n%s", cmdline, GetErrorMessage(GetLastError())));
// detach from process
CloseHandle(pinfo.hThread);
CloseHandle(pinfo.hProcess);
#else
pid_t pid = fork();
if(pid == -1)
throw Exc(NFormat("Error executing fork(), error code: %d", errno));
// printf("fork -> %d\n", pid);
if(!pid)
{ // new process, return true to fall through to server loop
Logging(false);
Timing(false);
return true;
}
#endif
Socket::Init();
String sockerr;
String self = Socket::GetHostName();
Socket socket;
if(!ClientSocket(socket, self, port))
throw Exc(NFormat("Error opening server %s:%d: %s", self, port, Socket::GetErrorText()));
socket.Write("?\n");
String res = socket.ReadUntil('\x1A');
if(*res == '\x08')
throw Exc(res.Mid(1));
if(res != TSERV_VERSION)
throw Exc("Cannot run server process.");
return false;
}
void CommandServer::StopServer(int port)
{
Socket::Init();
Socket socket;
if(!ClientSocket(socket, Socket::GetHostName(), port))
throw Exc(NFormat("Error opening server at port %d", port));
socket.Write(".\n");
socket.ReadUntil('\x1A');
}
void CommandServer::RunServer(int port)
{
// thread_count = 0;
puts(NFormat("Running server at port %d", port));
if(logging)
puts(NFormat("Creating server socket at port %d ...", port));
String error;
Socket server;
if(!ServerSocket(server, port, true, 100)) {
puts(NFormat("Error creating server socket at port %d: %s", port, Socket::GetErrorText()));
return;
}
server.NoLinger();
if(logging) {
if(ip_filter.IsEmpty())
puts("IP Filtering: off (accepting requests from all IP addresses)");
else
{
fputs("IP filter:", stdout);
for(int i = 0; i < ip_filter.GetCount(); i++)
fputs(' ' + FormatIP(ip_filter[i]), stdout);
putc('\n', stdout);
}
puts("Running accept loop ...");
}
dword ipaddr;
dword ticks = GetTickCount() + 1000;
for(quit_flag = false; !quit_flag && !quit_signal;)
{
bool work = false;
Socket connection;
if(server.Accept(connection, &ipaddr, true, timer_chunk))
{
work = true;
if(logging)
{
fputc('\r', stderr);
fputs(Format(GetSysTime()), stderr);
fflush(stderr);
}
ExecTimer();
if(!connection.IsOpen())
continue;
try
{
if(!ip_filter.IsEmpty() && ip_filter.Find(ipaddr) < 0)
throw Exc(NFormat("Invalid request source IP address: %s", FormatIP(ipaddr)));
Execute(connection);
}
catch(Exc e)
{
if(connection.IsOpen())
connection.Write('-' + e + '\0');
if(logging)
puts(NFormat("ERROR: %s", e));
}
}
if(!connections.IsEmpty())
{
for(int i = connections.GetCount(); --i >= 0;)
{
Connection& conn = connections[i];
bool err = false;
try
{
if(conn.Run())
work = true;
}
catch(Exc e)
{
puts(NFormat("%s: %s", conn.GetName(), e));
err = true;
}
if(err || conn.IsEof())
{
connections.Remove(i);
continue;
}
}
}
if(!work)
Sleep(timer_chunk);
dword new_ticks = GetTickCount();
if(new_ticks >= ticks)
{
ticks = new_ticks + 1000;
fputs(String().Cat() << "\r" << Format(GetSysTime()), stderr);
fflush(stderr);
}
}
if(logging)
fputs("\nServer is shutting down ... \n", stderr);
}
/*
static void PutConsole(const char *p)
{
enum { ROW_BATCH = 20 };
int rows = ROW_BATCH;
int col = 0;
const char *b = p;
while(*p)
{
char c = *p;
putchar(c);
if(*p++ == '\n' || ++col >= 70)
{
col = 0;
if(*p && --rows <= 0)
{
rows = ROW_BATCH;
fputs("\n==== Pokracovat pomoci Enter ====\n", stdout);
fflush(stdout);
bool quit = false;
for(int c; (c = getchar()) >= 0 && c != '\n'; quit |= (c == 'Q' || c == 'q'))
;
if(quit)
break;
}
}
}
if(p > b && p[-1] != '\n')
putchar('\n');
}
*/
String CommandServer::GetConInput(const char *prompt)
{
fputc('\n', stdout);
fputs(prompt, stdout);
int i = getchar();
if(i == EOF)
return String::GetVoid();
String s;
while(i != '\n')
{
s.Cat(i);
if((i = getchar()) == EOF)
break;
}
return s;
}
void CommandServer::RunClient()
{
Socket::Init();
quit_flag = false;
for(String in; !quit_flag && !(in = GetConInput("run> ")).IsVoid();)
{
if(!CompareNoCase(in, "."))
break;
try
{
One<SlaveProcess> sp = StartProcess(in);
for(String s; sp -> Read(s); fputs(s, stdout))
{
// puts("Flushing application...");
Sleep(500);
}
printf("\nTerminated, exit code = %d\n", sp -> GetExitCode());
}
catch(Exc e)
{
puts("Error: " + e);
}
}
}
void TryMain()
{
bool start = false;
bool stop = false;
int port = -1;
CommandServer server;
Vector<String> cmdline;
cmdline <<= CommandLine();
for(int c = 0; c < cmdline.GetCount(); c++)
{
const char *arg = cmdline[c];
if(*arg == '-')
switch(arg++, *arg++)
{
case 'r': start = true; break;
case 's': stop = true; break;
default: throw Exc(NFormat("invalid option: '%s'", cmdline[c]));
}
else if(IsDigit(*arg))
{ // port number
port = atoi(arg);
}
}
bool noport = (port < 0);
if(noport)
port = DEFAULT_PORT;
if(stop)
{
server.StopServer(port);
return;
}
if(noport)
{ // run client against host
server.RunClient();
return;
}
if(start)
{
String cmd_line;
cmd_line << port;
if(!server.StartServer(port, cmd_line))
return;
}
server.RunServer(port);
}
CONSOLE_APP_MAIN
{
#ifdef PLATFORM_POSIX
signal(SIGPIPE, SIG_IGN);
signal(SIGINT, &QuitSignal);
signal(SIGTERM, &QuitSignal);
#endif//PLATFORM_POSIX
puts(String().Cat() << "TSERV " TSERV_VERSION ", release date: " << TSERV_DATE << "\n"
TSERV_COPYRIGHT);
/*
Vector<String> test;
for(int i = 0; i < 1000; i++)
test.Add(GetRandomIdent(10000));
test.Clear();
puts("Done !");
SetExitCode(111);
return;
*/
int retcode = 1;
try
{
// SetLanguage(LNG_ENGLISH);
TryMain();
}
catch(Exc e)
{
puts("Error: " + e);
SetExitCode(1);
}
}

3
uppsrc2/TServ/version.h Normal file
View file

@ -0,0 +1,3 @@
#define TSERV_VERSION "2.17c"
#define TSERV_DATE Date(2007, 6, 5)
#define TSERV_COPYRIGHT "Copyright (c) 2001-2007 Tomas Rylek"

174
uppsrc2/rw/Alias.cpp Normal file
View file

@ -0,0 +1,174 @@
#include "Designer.h"
String AliasMap::StdFileName()
{
return ConfigFile("rw.ali");
}
bool AliasMap::Load(const char *path)
{
String file = LoadFile(path);
if(file.IsVoid())
return false;
obj_source.Clear();
obj_dest.Clear();
for(const char *s = file; *s;)
{
bool is_dest = (*s == ' ' || *s == '\t');
while(*s == ' ' || *s == '\t')
s++;
const char *b = s;
while(*s && *s != '\n')
s++;
const char *e = s;
while(e > b && (byte)e[-1] <= ' ')
e--;
String part(b, e);
if(is_dest)
{
while(obj_dest.GetCount() < obj_source.GetCount())
obj_dest.Add(part);
}
else
obj_source.Add(part);
if(*s)
s++;
}
if(obj_dest.GetCount() < obj_source.GetCount())
obj_source.SetCount(obj_dest.GetCount());
IndexSort(obj_source, obj_dest, StdLess<String>());
return true;
}
bool AliasMap::Save(const char *path)
{
IndexSort(obj_dest, obj_source, StdLess<String>());
String out;
for(int i = 0; i < obj_source.GetCount(); i++)
{
out.Cat(obj_source[i]);
out.Cat("\r\n");
if(i + 1 >= obj_source.GetCount() || obj_dest[i + 1] != obj_dest[i])
{
out.Cat('\t');
out.Cat(obj_dest[i]);
out.Cat("\r\n");
}
}
IndexSort(obj_source, obj_dest, StdLess<String>());
return SaveFile(path, out);
}
void AliasMap::SetDefault()
{
obj_source.Add("WithKeyMap<*>"); obj_dest.Add("@1");
obj_source.Add("WithDropChoice<*>"); obj_dest.Add("@1");
obj_source.Add("WithChoiceList<*>"); obj_dest.Add("@1");
obj_source.Add("EditDoubleSpin"); obj_dest.Add("EditDouble");
obj_source.Add("EditDoubleNotNullSpin"); obj_dest.Add("EditDouble");
obj_source.Add("Ctrl"); obj_dest.Add("Label");
obj_source.Add("NotNullCtrl<*>"); obj_dest.Add("@1");
obj_source.Add("SqlArray"); obj_dest.Add("ArrayCtrl");
obj_source.Add("DataPusher"); obj_dest.Add("EditField");
}
static bool MatchAlias(const char *s, const char *t, Vector<String>& a)
{
while(*t)
switch(*t++)
{
case '*':
{
const char *b = s;
do
{
a.Add(String(b, s));
if(MatchAlias(s, t, a))
return true;
a.Drop();
}
while(*s++);
return false;
}
default:
if(t[-1] != *s++)
return false;
break;
}
return !*s;
}
String AliasMap::Convert(const String& name) const
{
for(int i = 0; i < obj_source.GetCount(); i++)
{
Vector<String> args;
if(MatchAlias(name, obj_source[i], args))
{
const char *s = obj_dest[i];
String out;
while(*s)
if(*s == '@' && (s[1] >= '1' && s[1] < '1' + min(args.GetCount(), 10)))
{
s += 2;
out.Cat(args[s[-1] - '1']);
}
else
out.Cat(*s++);
return out;
}
}
return name;
}
class DlgAlias : public WithAliasLayout<TopWindow>
{
public:
typedef DlgAlias CLASSNAME;
DlgAlias();
bool Run(AliasMap& map);
private:
EditStringNotNull obj_source;
EditStringNotNull obj_dest;
};
bool AliasMap::Edit()
{
return DlgAlias().Run(*this);
}
DlgAlias::DlgAlias()
{
CtrlLayoutOKCancel(*this, "Object alias map");
list.AutoHideSb();
list.AddColumn("Source object").Edit(obj_source);
list.AddColumn("Alias object").Edit(obj_dest);
list.Inserting().Removing().NoAskRemove();
}
bool DlgAlias::Run(AliasMap& map)
{
list.SetCount(map.obj_source.GetCount());
int i;
for(i = 0; i < map.obj_source.GetCount(); i++)
{
list.Set(i, 0, map.obj_source[i]);
list.Set(i, 1, map.obj_dest[i]);
}
if(!map.obj_source.IsEmpty())
list.SetCursor(0);
if(TopWindow::Run() != IDOK)
return false;
int n = list.GetCount();
map.obj_source.SetCount(n);
map.obj_dest.SetCount(n);
for(i = 0; i < n; i++)
{
map.obj_source[i] = list.Get(i, 0);
map.obj_dest[i] = list.Get(i, 1);
}
return true;
}

21
uppsrc2/rw/Copying Normal file
View file

@ -0,0 +1,21 @@
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.

1217
uppsrc2/rw/Designer.cpp Normal file

File diff suppressed because it is too large Load diff

401
uppsrc2/rw/Designer.h Normal file
View file

@ -0,0 +1,401 @@
#include <CtrlLib/CtrlLib.h>
#define LAYOUTFILE <rw/Designer.lay>
#include <CtrlCore/lay.h>
#define IMAGEFILE <rw/rw.iml>
#include <Draw/iml_header.h>
const Display& VarLblDisplay(bool selected);
typedef Ctrl *(*CtrlCreator)();
class AliasMap {
public:
AliasMap() {}
static String StdFileName();
bool IsEmpty() const { return obj_source.IsEmpty(); }
bool Edit();
bool Load(const char *path);
bool Save(const char *path);
void SetDefault();
String Convert(const String& name) const;
public:
Vector<String> obj_source;
Vector<String> obj_dest;
};
class SelectedDisplay : public Display {
virtual void Paint(Draw& w, const Rect& r, const Value& q, Color i, Color p, dword s) const;
};
extern const SelectedDisplay SelDisplay;
class LayoutDesigner : public Ctrl {
public:
virtual void Paint(Draw& w);
virtual Image CursorImage(Point p, dword keyflags);
virtual void LeftDown(Point p, dword keyflags);
virtual void LeftRepeat(Point p, dword keyflags);
virtual void LeftUp(Point p, dword keyflags);
virtual void RightDown(Point p, dword keyflags);
virtual void MouseMove(Point p, dword keyflags);
virtual bool Key(dword key, int count);
virtual void Layout();
virtual void Serialize(Stream& s);
protected:
enum {
LEFT,
CENTER,
RIGHT,
TOP = LEFT,
BOTTOM = RIGHT,
FORM,
SELECTRECT,
TRACKERSIZE = 6,
SLEFT = 0,
SRIGHT,
STOP,
SBOTTOM,
};
enum ITEMPOS
{
POS_NONE,
POS_AUTO,
POS_LEFT,
POS_CENTER,
POS_RIGHT,
POS_SIZE,
POS_TOP = POS_LEFT,
POS_BOTTOM = POS_RIGHT,
};
struct ItemInfo {
LogPos pos;
String classname;
String variable;
String labelid;
String helpid;
Vector<String> label;
Vector<String> help;
dword hotkey;
};
struct Form {
String name;
Size size;
Array<ItemInfo> item;
};
Array<Form> layout;
int layouti;
int langi;
DropList layoutlist;
DropList langlist;
CallbackArg<int> classset;
Point newctrl;
WithGridLayout<TopWindow> grid;
bool usegrid;
bool ignoremin;
bool qlib2_output;
WithMatrixLayout<TopWindow> matrix;
String filename;
FileSel filesel;
LRUList LruList;
AliasMap alias_map;
String alias_map_file;
Rect selectrect;
Point track;
Vector<int> itemi;
Vector<Point> melta;
Point delta;
bool moved;
bool cltm;
Ctrl design;
Splitter splital;
ArrayCtrl itab;
Splitter props;
Splitter label_help_split;
Ctrl class_var_lbl;
WithDropChoice<EditString> classname;
EditString variable;
DocEdit label;
DocEdit help;
struct DesignForm;
friend struct DesignForm;
struct DesignForm : public Ctrl {
virtual void Paint(Draw& w) { ld->PaintForm(w); }
LayoutDesigner *ld;
};
DesignForm form;
Array<Ctrl> ctrl;
Array<Ctrl> ref_ctrl;
Array<Ctrl> mnem_ctrl;
ScrollBars sb;
struct AfterPaint;
friend struct AfterPaint;
struct AfterPaint : public Ctrl {
virtual void Paint(Draw& w) { ld->PaintTrack(w); }
LayoutDesigner *ld;
};
AfterPaint apaint;
MenuBar menubar;
ToolBar toolbar;
FrameRight<Label> status;
static VectorMap<String, CtrlCreator>& ClassMap();
struct Frame;
friend struct Frame;
struct Frame : public TopWindow {
void WindowClose() { ld->CloseFile(); }
virtual bool Key(dword k, int c) { return ld->Key(k, c) ? true : TopWindow::Key(k, c); }
LayoutDesigner *ld;
Frame() { WhenClose = callback(this, &Frame::WindowClose); }
};
Frame frame;
static int GetTrack(int a, int b, int type);
static Image GetTrackShape(Point track);
String& Lng(Vector<String>& x) { return x.At(langi); }
String Lng(const Vector<String>& x) const;
Form& ActualForm() { return layout[layouti]; }
const Form& ActualForm() const { return layout[layouti]; }
ItemInfo& Item(int i) { return ActualForm().item[i]; }
const ItemInfo& Item(int i) const { return ActualForm().item[i]; }
int ItemCount() { return ActualForm().item.GetCount(); }
//G++ bug
String& ItemLabel(int i);
String ItemLabel(int i) const;
String& Help(int i);
String Help(int i) const;
Ctrl *CreateCtrl(const String& classname);
Ctrl *CreateCtrl(const String& classname, Index<String>& recursed);
Ctrl *CreateLayoutCtrl(String classname, Index<String>& recursed);
int ParseLayoutRef(String cls, String& base) const;
bool IsLayoutRef(String cls) const { String dummy; return ParseLayoutRef(cls, dummy) >= 0; }
void SynchronizeCtrl(int im);
void SynchronizeCtrl(Ctrl& ctrl, const ItemInfo& ii);
void SynchronizeCtrl();
void SynchronizeCtrls();
void SynchronizeMnemonic();
void CleanRefCtrl();
void AddCtrl(const String& cls, const String& var, const String& lbl, const String& hlp);
void SetClass(int im);
void UpdateClassList();
void LoadCtrl(CParser& p, ItemInfo& ii, int langi = 0);
String SaveCtrl(const ItemInfo& ii, int i, const String& name, bool lang) const;
Rect GetSpringRect(int i);
Rect GetTracker(Point track);
Point FindTracker(Point p);
Rect GetCtrlRect(int i);
Rect GetActualRect();
Rect GetActual();
void RefreshActual();
int FindItem(Point p);
void DrawHorzSpring(Draw& w, int i);
void DrawVertSpring(Draw& w, int i);
void PaintTrack(Draw& w);
void PaintForm(Draw& w);
void StartMoving(Point p);
void DoMoving();
bool IsMoving();
bool GetSpring(int im, int i);
bool GetSpring(int i);
void SetItemPos(int i, const Rect& r, int chi = -1, bool val = false, bool sync = true);
void SetActualPos(const Rect& r, int chi = -1, bool val = false);
void ShowHideLayouts();
// void SetAutoItemPos(int i, const Rect& r);
void WhenITab();
void NewClass();
void NewVariable();
void NewLabel();
void NewHelp();
void SetFormSize(Size sz);
void ClassMenu(Bar& menu);
void NewCtrl(int i);
int FindSelect(int im);
void SelectItem(int im);
void SelectOneItem(int im);
void UnselectItem(int im);
bool ItemSelected(int im) { return FindSelect(im) >= 0; }
void ClearSelection();
void ClearSelection0();
void RefreshSelect(int i);
void SelectToEnd(int i);
void RefreshSelectRect();
void Swap(int i1, int i2);
void SetLayout(int i, int li);
void SetLayout(int i) { SetLayout(i, langi); }
void EnterLayout();
void EnterLanguage();
void Scroll();
void ItemPos(int xy_long);
int GetItemPosMask() const;
void SetupLayoutList();
void NewLayout();
void RemoveLayout();
void RenameLayout();
void PrevLayout();
void NextLayout();
bool SaveLayoutFileAs();
bool DoSave();
bool PromptSave();
void LruOpen(const String& s);
void MakeCaption();
void OpenFile();
void SaveFile();
void SaveFileAs();
void CloseFile();
void NewFile();
#ifdef flagIDERW
void CloseDesigner();
#endif
void SetupAlias();
void SetupGrid();
void ToggleGrid();
void ToggleIgnoreMin();
void ToggleQLIB2Output();
int GridX() { return usegrid ? max((int)~grid.x, 1) : 1; }
int GridY() { return usegrid ? max((int)~grid.y, 1) : 1; }
void AddItem();
void MoveUp();
void MoveDown();
void DoDuplicate(const Vector<int>& imi, int dx, int dy);
void KeyMove(int dx, int dy, int sx, int sy);
void Copy();
void Cut();
void Paste();
void Delete();
void Duplicate();
void SelectAll();
void VertCenter();
void HorzCenter();
void AlignLeft();
void AlignRight();
void AlignTop();
void AlignBottom();
void AlignHCenter();
void AlignVCenter();
void SameWidth();
void SameHeight();
void SameSize();
void MinWidth();
void MinHeight();
void Matrix();
void AlignLbl();
void ShowStatus();
Vector<String> CoreLangs();
void AddLang(const String& lang, bool copy);
void NewLanguage();
void RenameLanguage();
void RemoveLanguage();
void AddCoreLanguages();
void NextLang();
void PrevLang();
void FileBar(Bar& bar);
void LayoutBar(Bar& bar);
void SpringsBar(Bar& bar);
void AlignBar(Bar& bar);
void SizeBar(Bar& bar);
void ItemBar(Bar& bar);
void OptionsBar(Bar& bar);
void EditBar(Bar& bar);
void LangBar(Bar& bar);
void MainBar(Bar& bar);
void Tool(Bar& bar);
void SetBar();
public:
static void Register(const String& classname, CtrlCreator creator);
void LoadLayoutFile(const char *s);
bool SaveLayoutFile();
bool CloseLayoutFile();
String GetLayoutFile() const;
String GetFileName() const { return filename; }
void Execute();
void OpenWindow();
LayoutDesigner();
typedef LayoutDesigner CLASSNAME;
};
template <class T>
class CtrlClassRegistrator {
public:
static Ctrl *Create() { return new T; }
CtrlClassRegistrator(const char *name) { LayoutDesigner::Register(name, Create); }
};
class UrgCtrl : public Ctrl {
public:
virtual void SetLabelText(const char *s);
virtual void Paint(Draw& w);
protected:
String label;
String classname;
public:
UrgCtrl(const String& classname) : classname(classname) { SetFrame(InsetFrame()); }
};
#define REGCTRLCLASS(x) static CtrlClassRegistrator<x > MK__s (#x);
void DesignLayout();

46
uppsrc2/rw/Designer.lay Normal file
View file

@ -0,0 +1,46 @@
#ifdef LAYOUTFILE
LAYOUT(LayoutLayout, 220, 60)
ITEM(Label, label1, SetLabel("&Layout:").LeftPosZ(4, 46).TopPosZ(4, 20))
ITEM(EditString, layout, HSizePosZ(52, 4).TopPosZ(4, 19))
ITEM(Button, ok, SetLabel("OK").RightPosZ(88, 80).BottomPosZ(4, 22))
ITEM(Button, cancel, SetLabel("Cancel").RightPosZ(4, 80).BottomPosZ(4, 22))
END_LAYOUT
LAYOUT(GridLayout, 172, 64)
ITEM(Label, dv___0, SetLabel("&X:").LeftPosZ(4, 12).TopPosZ(4, 20))
ITEM(EditIntSpin, x, LeftPosZ(18, 40).TopPosZ(4, 20))
ITEM(Label, dv___2, SetLabel("&Y:").LeftPosZ(90, 16).TopPosZ(4, 20))
ITEM(EditIntSpin, y, LeftPosZ(108, 40).TopPosZ(4, 20))
ITEM(Button, ok, SetLabel("OK").RightPosZ(88, 80).BottomPosZ(4, 22))
ITEM(Button, cancel, SetLabel("Cancel").RightPosZ(4, 80).BottomPosZ(4, 22))
END_LAYOUT
LAYOUT(MatrixLayout, 202, 86)
ITEM(Label, dv___0, SetLabel("&Horizontal").LeftPosZ(4, 54).TopPosZ(4, 19))
ITEM(EditIntSpin, x, LeftPosZ(60, 42).TopPosZ(4, 19))
ITEM(Label, dv___2, SetLabel("&spacing").LeftPosZ(108, 50).TopPosZ(4, 19))
ITEM(EditIntSpin, hspace, LeftPosZ(156, 42).TopPosZ(4, 19))
ITEM(Label, dv___4, SetLabel("&Vertical").LeftPosZ(4, 54).TopPosZ(28, 19))
ITEM(EditIntSpin, y, LeftPosZ(60, 42).TopPosZ(28, 19))
ITEM(Label, dv___6, SetLabel("s&pacing").LeftPosZ(108, 50).TopPosZ(28, 19))
ITEM(EditIntSpin, vspace, LeftPosZ(156, 42).TopPosZ(28, 19))
ITEM(Button, ok, SetLabel("OK").RightPosZ(88, 80).BottomPosZ(4, 22))
ITEM(Button, cancel, SetLabel("Cancel").RightPosZ(4, 80).BottomPosZ(4, 22))
END_LAYOUT
LAYOUT(LangLayout, 212, 82)
ITEM(Label, label1, SetLabel("&New language:").LeftPosZ(4, 76).TopPosZ(4, 19))
ITEM(WithDropChoice<EditString>, language, LeftPosZ(82, 126).TopPosZ(4, 19))
ITEM(Option, copy, SetLabel("&Copy current language").HSizePosZ(4, 4).TopPosZ(28, 18))
ITEM(Button, ok, SetLabel("OK").HSizePosZ(44, 88).BottomPosZ(4, 22))
ITEM(Button, cancel, SetLabel("Cancel").RightPosZ(4, 80).BottomPosZ(4, 22))
END_LAYOUT
LAYOUT(AliasLayout, 400, 400)
ITEM(ArrayCtrl, list, HSizePosZ(4, 4).VSizePosZ(4, 34))
ITEM(Button, ok, SetLabel("OK").RightPosZ(88, 80).BottomPosZ(4, 22))
ITEM(Button, cancel, SetLabel("Cancel").RightPosZ(4, 80).BottomPosZ(4, 22))
END_LAYOUT
#endif

421
uppsrc2/rw/DesignerFile.cpp Normal file
View file

@ -0,0 +1,421 @@
#include "Designer.h"
static Point sReadAB(CParser& p) {
Point pt;
p.PassChar('(');
pt.x = p.ReadInt();
p.PassChar(',');
pt.y = p.ReadInt();
p.PassChar(')');
return pt;
}
static String ReadVar(CParser& p) {
String var;
for(;;) {
if(p.IsId())
var << p.ReadId();
else
if(p.IsInt())
var << p.ReadInt();
else
if(p.Char('.'))
var << '.';
else
if(p.Char('['))
var << '[';
else
if(p.Char(']'))
var << ']';
else
return var;
}
}
void LayoutDesigner::LoadCtrl(CParser& p, ItemInfo& ii, int li) {
if(p.Id("ITEM")) {
p.PassChar('(');
if(p.IsId()) ii.classname = p.ReadIdt();
p.PassChar(',');
}
else
if(p.Id("UNTYPED"))
p.PassChar('(');
else
p.ThrowError("Bad item.");
if(p.IsId()) ii.variable = ReadVar(p);
if(strncmp(ii.variable, "dv___", 5) == 0)
ii.variable.Clear();
p.PassChar(',');
LogPos pos;
do {
if(p.Id("LeftPosZ") || p.Id("LeftPos")) {
Point pt = sReadAB(p);
pos.x = PosLeft(pt.x, pt.y);
}
else
if(p.Id("RightPosZ") || p.Id("RightPos")) {
Point pt = sReadAB(p);
pos.x = PosRight(pt.x, pt.y);
}
else
if(p.Id("HSizePosZ") || p.Id("HSizePos")) {
Point pt = sReadAB(p);
pos.x = PosSize(pt.x, pt.y);
}
else
if(p.Id("HCenterPosZ") || p.Id("HCenterPos")) {
Point pt = sReadAB(p);
pos.x = PosCenter(pt.x, pt.y);
}
else
if(p.Id("TopPosZ") || p.Id("TopPos")) {
Point pt = sReadAB(p);
pos.y = PosLeft(pt.x, pt.y);
}
else
if(p.Id("BottomPosZ") || p.Id("BottomPos")) {
Point pt = sReadAB(p);
pos.y = PosRight(pt.x, pt.y);
}
else
if(p.Id("VSizePosZ") || p.Id("VSizePos")) {
Point pt = sReadAB(p);
pos.y = PosSize(pt.x, pt.y);
}
else
if(p.Id("VCenterPosZ") || p.Id("VCenterPos")) {
Point pt = sReadAB(p);
pos.y = PosCenter(pt.x, pt.y);
}
else
if(p.Id("SetLabel")) {
p.PassChar('(');
if(p.IsString())
ii.label.At(li) = p.ReadString();
else
ii.labelid = p.ReadId();
p.PassChar(')');
}
else
if(p.Id("HelpC") || p.Id("Help") || p.Id("Description")) {
p.PassChar('(');
if(p.IsString())
ii.help.At(li) = p.ReadString();
else
ii.helpid = p.ReadId();
p.PassChar(')');
}
else
if(p.Id("Hide")) {
p.PassChar('(');
p.PassChar(')');
}
else
p.ThrowError("Invalid item modifier.");
}
while(p.Char('.'));
p.PassChar(')');
ii.pos = pos;
}
void LayoutDesigner::LoadLayoutFile(const char *_filename) {
SetLayout(-1);
layout.Clear();
langlist.Clear();
try {
filename = _filename;
String s = LoadFile(filename);
CParser p(s);
if(p.Id("#ifdef"))
p.Id("LAYOUTFILE");
while(p.Id("LAYOUT")) {
p.PassChar('(');
String name = p.ReadId();
p.PassChar(',');
int cx = p.ReadInt();
p.PassChar(',');
int cy = p.ReadInt();
p.PassChar(')');
const char *a = p.GetPtr();
const char *b = a;
Form& l = layout.Add();
l.name = name;
l.size = Size(cx, cy);
while(!p.IsEof() && !p.Id("END_LAYOUT"))
LoadCtrl(p, l.item.Add());
while(*a == '\n' || *a == '\r')
a++;
}
p.Id("#endif");
while(p.Id("#if")) {
p.PassId("LANGUAGE");
p.PassChar2('=', '=');
String langid = p.ReadId();
CParser::Pos idpos = p.GetPos();
if(*idpos.ptr == '(')
{
const char *b = idpos.ptr;
while(*idpos.ptr && *idpos.ptr++ != ')')
;
langid.Cat(b, idpos.ptr - b);
p.SetPos(idpos);
}
langlist.Add(langlist.GetCount(), langid);
VectorMap<String, String> map;
while(p.Id("txt")) {
p.PassChar('(');
String& txt = map.Add("txt" + p.ReadId());
p.PassChar(',');
txt = p.ReadString();
p.PassChar(')');
}
p.PassId("#endif");
for(int i = 0; i < layout.GetCount(); i++) {
Form& l = layout[i];
for(int i = 0; i < l.item.GetCount(); i++) {
ItemInfo& ii = l.item[i];
ii.label.Add(map.Get(ii.labelid, String()));
ii.help.Add(map.Get(ii.helpid, String()));
}
}
}
}
catch(CParser::Error& e) {
Exclamation(e);
filename.Clear();
}
MakeCaption();
SetupLayoutList();
SetLayout(layout.GetCount() ? 0 : -1, 0);
}
String SaveText(String mod, const Vector<String>& txt, bool lang, const String& name, int ii) {
mod = '.' + mod + '(';
if(lang) {
for(int i = 0; i < txt.GetCount(); i++)
if(!txt[i].IsEmpty())
return mod + name + Format("_%d", ii) + ')';
return String();
}
return txt.GetCount() && !txt[0].IsEmpty() ? mod + AsCString(txt[0]) + ')' : String();
}
String LayoutDesigner::SaveCtrl(const ItemInfo& ii, int i, const String& name, bool lang) const {
String out;
if(ii.classname.IsEmpty())
out << "\tUNTYPED(";
else
out << "\tITEM(" << ii.classname << ", ";
out << (ii.variable.IsEmpty() ? Format("dv___%d", i) : ii.variable) << ", ";
LogPos p = ii.pos;
const char *zfix = (qlib2_output ? "" : "Z");
switch(p.x.GetAlign()) {
case Ctrl::LEFT: out << Format("LeftPos%s(%d, %d).", zfix, p.x.GetA(), p.x.GetB()); break;
case Ctrl::RIGHT: out << Format("RightPos%s(%d, %d).", zfix, p.x.GetA(), p.x.GetB()); break;
case Ctrl::SIZE: out << Format("HSizePos%s(%d, %d).", zfix, p.x.GetA(), p.x.GetB()); break;
case Ctrl::CENTER: out << Format("HCenterPos%s(%d, %d).", zfix, p.x.GetB(), p.x.GetA()); break;
}
switch(p.y.GetAlign()) {
case Ctrl::TOP: out << Format("TopPos%s(%d, %d)", zfix, p.y.GetA(), p.y.GetB()); break;
case Ctrl::BOTTOM: out << Format("BottomPos%s(%d, %d)", zfix, p.y.GetA(), p.y.GetB()); break;
case Ctrl::SIZE: out << Format("VSizePos%s(%d, %d)", zfix, p.y.GetA(), p.y.GetB()); break;
case Ctrl::CENTER: out << Format("VCenterPos%s(%d, %d)", zfix, p.y.GetB(), p.y.GetA()); break;
}
out << SaveText("SetLabel", ii.label, lang, "txt" + name, i);
out << SaveText(qlib2_output ? "HelpC" : "Description", ii.help, lang, "txt" + name + "_HLP", i);
if(IsLayoutRef(ii.classname) && ii.variable.IsEmpty())
out << ".Hide()";
out << ")\n";
return out;
}
String txtSave(int li, const Vector<String>& txt, int ii, String name) {
for(int i = 0; i < txt.GetCount(); i++)
if(!txt[i].IsEmpty()) {
String s;
if(li < txt.GetCount())
s = txt[li];
return "txt(" + name + Format("_%d", ii) + ", " + AsCString(s) + ")\n";
}
return String();
}
String LayoutDesigner::GetLayoutFile() const {
int i;
Vector<int> layindex;
layindex.SetCount(layout.GetCount());
for(i = 0; i < layout.GetCount(); i++)
layindex[i] = i;
int maxswaps = layout.GetCount() * layout.GetCount();
for(i = 0; maxswaps > 0 && i < layindex.GetCount(); i++)
{
int lx = layindex[i];
const Form& l = layout[lx];
int maxref = -1;
String dummy;
for(int c = 0; c < l.item.GetCount(); c++)
maxref = max(maxref, FindIndex(layindex, ParseLayoutRef(l.item[c].classname, dummy)));
if(maxref > i)
{
layindex.Remove(i);
layindex.Insert(maxref, lx);
i--;
maxswaps--;
}
}
StringStream out;
out << "#ifdef LAYOUTFILE\n\n";
for(i = 0; i < layindex.GetCount(); i++) {
const Form& l = layout[layindex[i]];
out << "LAYOUT(" << l.name << ", " << l.size.cx << ", " << l.size.cy << ")\n";
for(int c = 0; c < l.item.GetCount(); c++)
out << SaveCtrl(l.item[c], c, l.name, langlist.GetCount());
out << "END_LAYOUT\n\n";
}
out << "#endif\n";
for(int li = 0; li < langlist.GetCount(); li++) {
out << "\n#if LANGUAGE == " << String(langlist.GetValue(li)) << "\n\n";
for(int i = 0; i < layindex.GetCount(); i++) {
const Form& l = layout[layindex[i]];
for(int c = 0; c < l.item.GetCount(); c++) {
out << txtSave(li, l.item[c].label, c, l.name);
out << txtSave(li, l.item[c].help, c, l.name + "_HLP");
}
out << '\n';
}
out << "#endif\n";
}
return out;
}
bool LayoutDesigner::SaveLayoutFile() {
String lf = GetLayoutFile();
if(::LoadFile(filename) != lf && !::SaveFile(filename, lf)) {
Exclamation("Error storing output file " + filename);
return false;
}
return true;
}
const char exts[] =
"Layout files (*.lay)|*.lay|"
"All files (*.*)|*.*|"
;
void LayoutDesigner::MakeCaption() {
String s;
if(layouti >= 0) {
s.Cat(layout[layouti].name);
if(!s.IsEmpty())
s.Cat(" - ");
}
s.Cat(filename.IsEmpty() ? "New layout file" : filename);
frame.Title(s);
}
bool LayoutDesigner::DoSave() {
if(filename.IsEmpty()) {
if(!SaveLayoutFileAs()) return false;
}
else
if(!SaveLayoutFile()) return false;
return true;
}
bool LayoutDesigner::PromptSave() {
return layout.GetCount() == 0
|| (!filename.IsEmpty() && GetLayoutFile() == LoadFile(filename))
|| !PromptYesNo("Save current file ?") || DoSave();
}
void LayoutDesigner::NewFile() {
if(!PromptSave()) return;
SetLayout(-1);
layout.Clear();
filename.Clear();
frame.Refresh();
MakeCaption();
SetupLayoutList();
}
void LayoutDesigner::OpenFile() {
if(!PromptSave()) return;
if(filesel.ExecuteOpen()) {
LoadLayoutFile(~filesel);
LruList.NewEntry(filename);
}
}
bool LayoutDesigner::SaveLayoutFileAs() {
filesel = filename;
if(!filesel.ExecuteSaveAs(NULL)) return false;
filename = filesel;
bool r = SaveLayoutFile();
if(r) LruList.NewEntry(filename);
MakeCaption();
return r;
}
void LayoutDesigner::SaveFileAs() {
SaveLayoutFileAs();
}
void LayoutDesigner::SaveFile() {
DoSave();
}
void LayoutDesigner::CloseFile() {
if(CloseLayoutFile())
{
#ifdef flagIDERW
SetTimeCallback(0, THISBACK(CloseDesigner), 555);
#endif
}
}
bool LayoutDesigner::CloseLayoutFile() {
if(layout.GetCount() && (filename.IsEmpty() || LoadFile(filename) != GetLayoutFile()))
switch(PromptYesNoCancel("Save current file ?")) {
case 1:
if(!DoSave()) return false;
case 0:
break;
default:
return false;
}
frame.Close();
return true;
}
void LayoutDesigner::LruOpen(const String& s) {
if(!PromptSave()) return;
LoadLayoutFile(s);
}
void LayoutDesigner::Serialize(Stream& s) {
int version = 1;
s.Magic();
s / version;
s % filesel;
LruList.Serialize(s);
splital.Serialize(s);
if(version == 0) {
Splitter d;
d.Serialize(s);
}
itab.SerializeHeader(s);
if(version >= 1)
frame.SerializePlacement(s);
else {
Rect r = frame.GetRect();
s % r;
frame.SetRect(r);
}
s % grid.x % grid.y;
s % ignoremin;
s % matrix.x % matrix.y % matrix.hspace % matrix.vspace;
s % usegrid;
s.Magic();
}

106
uppsrc2/rw/DesignerLayt.cpp Normal file
View file

@ -0,0 +1,106 @@
#include "Designer.h"
void LayoutDesigner::SetLayout(int i, int li) {
ClearSelection();
layouti = i;
layoutlist = i;
langi = li;
if(langlist.GetCount())
langlist = li;
itab.Clear();
if(layouti >= 0) {
Form& l = layout[layouti];
SetFormSize(l.size);
SynchronizeCtrls();
}
else {
ctrl.Clear();
ref_ctrl.Clear();
mnem_ctrl.Clear();
form.Hide();
itab.Clear();
}
sb = Point(0, 0);
form.Show(layouti >= 0);
MakeCaption();
ShowStatus();
langlist.Enable(langlist.GetCount());
SynchronizeMnemonic();
}
void LayoutDesigner::EnterLayout() {
SetLayout(~layoutlist, langlist.GetCount() ? langlist.GetIndex() : 0);
}
void LayoutDesigner::EnterLanguage() {
int i = -1;
if(itemi.GetCount())
i = itemi.Top();
EnterLayout();
SelectOneItem(i);
}
void LayoutDesigner::SetupLayoutList() {
layoutlist.Clear();
int i;
for(i = 0; i < layout.GetCount(); i++)
layoutlist.Add(i, layout[i].name);
layoutlist.Enable(i);
}
int FilterCid(int c) {
return IsAlNum(c) || c == '_' ? c : 0;
}
void LayoutDesigner::NewLayout() {
WithLayoutLayout<TopWindow> dlg;
CtrlLayoutOKCancel(dlg, "New Layout");
dlg.layout.SetFilter(FilterCid);
dlg.ActiveFocus(dlg.layout);
if(dlg.Run() == IDOK) {
int i = layout.GetCount();
Form& l = layout.Add();
l.name = dlg.layout;
l.size = Size(400, 200);
SetupLayoutList();
SetLayout(i);
}
}
void LayoutDesigner::RemoveLayout() {
if(layouti < 0) return;
if(PromptYesNo("Remove current layout ?")) {
int i = layouti;
SetLayout(-1);
layout.Remove(i);
SetupLayoutList();
SetLayout(min(i, layout.GetCount() - 1));
Refresh();
}
}
void LayoutDesigner::RenameLayout() {
if(layouti < 0) return;
WithLayoutLayout<TopWindow> dlg;
CtrlLayoutOKCancel(dlg, "Rename Layout");
dlg.ActiveFocus(dlg.layout);
dlg.layout.SetFilter(FilterCid);
dlg.layout = layout[layouti].name;
if(dlg.Run() == IDOK) {
layout[layouti].name = dlg.layout;
SetupLayoutList();
SetLayout(layouti);
}
}
void LayoutDesigner::NextLayout() {
if(layoutlist.GetCount() == 0) return;
layoutlist.SetIndex((layoutlist.GetIndex() + 1) % layoutlist.GetCount());
EnterLayout();
}
void LayoutDesigner::PrevLayout() {
if(layoutlist.GetCount() == 0) return;
layoutlist.SetIndex((layoutlist.GetIndex() + layoutlist.GetCount() - 1) % layoutlist.GetCount());
EnterLayout();
}

374
uppsrc2/rw/DesignerWin.cpp Normal file
View file

@ -0,0 +1,374 @@
#include "Designer.h"
#pragma hdrstop
#include "iderw.h"
void LayoutDesigner::SetupGrid() {
CtrlLayoutOKCancel(grid, "Grid settings");
grid.x.MinMax(1, 32);
grid.y.MinMax(1, 32);
grid.Backup();
grid.Execute();
}
void LayoutDesigner::FileBar(Bar& bar) {
bar.Add("New", THISBACK(NewFile))
.Key(K_CTRL_N);
bar.Add("Open..", THISBACK(OpenFile))
.Key(K_CTRL_O);
bar.Add("Save", THISBACK(SaveFile))
.Key(K_CTRL_S);
bar.Add("Save as..", THISBACK(SaveFileAs));
LruList(bar);
bar.MenuSeparator();
bar.Add(
#ifdef flagIDERW
"Close"
#else
"Exit"
#endif
, THISBACK(CloseFile));
}
void LayoutDesigner::EditBar(Bar& bar) {
bar.Add("Cut", CtrlImg::cut(), THISBACK(Cut))
.Key(K_CTRL_X);
bar.Add("Copy", CtrlImg::copy(), THISBACK(Copy))
.Key(K_CTRL_C);
bar.Add("Paste", CtrlImg::paste(), THISBACK(Paste))
.Key(K_CTRL_V);
bar.Add("Duplicate", THISBACK(Duplicate))
.Key(K_CTRL_D);
bar.Add("Delete", CtrlImg::remove(), THISBACK(Delete))
.Key(K_DELETE);
bar.MenuSeparator();
bar.Add("Select All", THISBACK(SelectAll))
.Key(K_CTRL_A);
}
void LayoutDesigner::LayoutBar(Bar& bar) {
bar.Add("New layout..", THISBACK(NewLayout));
bar.Add(layoutlist.GetCount(), "Remove layout", THISBACK(RemoveLayout));
bar.Add(layoutlist.GetCount(), "Rename layout..", THISBACK(RenameLayout));
if(layoutlist.GetCount() > 1) {
bar.Separator();
bar.Add("Previous layout", THISBACK(PrevLayout))
.Key(K_ALT_UP);
bar.Add("Next layout", THISBACK(NextLayout))
.Key(K_ALT_DOWN);
}
}
void LayoutDesigner::LangBar(Bar& bar) {
bar.Add("New language..", THISBACK(NewLanguage));
bar.Add(langlist.GetCount(), "Remove language", THISBACK(RemoveLanguage));
bar.Add(langlist.GetCount(), "Rename language..", THISBACK(RenameLanguage));
if(langlist.GetCount() > 1) {
bar.Separator();
bar.Add("Previous language", THISBACK(PrevLang))
.Key(K_ALT_LEFT);
bar.Add("Next language", THISBACK(NextLang))
.Key(K_ALT_RIGHT);
}
}
void LayoutDesigner::OptionsBar(Bar& bar) {
bar.Add("Alias map", THISBACK(SetupAlias));
bar.Add("Use grid", TB_GRID(), THISBACK(ToggleGrid))
.Check(usegrid);
bar.Add("Grid settings..", THISBACK(SetupGrid));
bar.Add("Ignore min size", THISBACK(ToggleIgnoreMin))
.Check(ignoremin);
bar.Add("QLIB2 output", THISBACK(ToggleQLIB2Output))
.Check(qlib2_output);
}
void LayoutDesigner::AlignBar(Bar& bar) {
int m = itemi.GetCount();
bar.Add(m, "Vertical center in layout", TB_VERTCENTER(), THISBACK(VertCenter))
.Key(K_CTRL_F9);
bar.Add(m, "Align label", TB_ALIGNLBL(), THISBACK(AlignLbl))
.Key(K_ALT_F9);
bar.Add(m, "Horizontal center in layout", TB_HORZCENTER(), THISBACK(HorzCenter))
.Key(K_CTRL|K_SHIFT_F9);
bar.Separator();
bar.Add(m > 1, "Left", TB_ALIGNLEFT(), THISBACK(AlignLeft))
.Key(K_ALT_LEFT);
bar.Add(m > 1, "Horizontal center", TB_ALIGNHCENTER(), THISBACK(AlignHCenter))
.Key(K_SHIFT_F9);
bar.Add(m > 1, "Right", TB_ALIGNRIGHT(), THISBACK(AlignRight))
.Key(K_ALT_RIGHT);
bar.Separator();
bar.Add(m > 1, "Top", TB_ALIGNTOP(), THISBACK(AlignTop))
.Key(K_ALT_UP);
bar.Add(m > 1, "Vertical center", TB_ALIGNVCENTER(), THISBACK(AlignVCenter))
.Key(K_F9);
bar.Add(m > 1, "Bottom", TB_ALIGNBOTTOM(), THISBACK(AlignBottom))
.Key(K_ALT_DOWN);
}
void LayoutDesigner::SizeBar(Bar& bar) {
int m = itemi.GetCount();
bar.Add(m > 1, "Same width", TB_SAMEWIDTH(), THISBACK(SameWidth))
.Key(K_SHIFT_F8);
bar.Add(m > 1, "Same height", TB_SAMEHEIGHT(), THISBACK(SameHeight))
.Key(K_CTRL_F8);
bar.Add(m > 1, "Same size", TB_SAMESIZE(), THISBACK(SameSize))
.Key(K_F8);
bar.Add(m, "Minimal width", TB_MINWIDTH(), THISBACK(MinWidth))
.Key(K_SHIFT_F7);
bar.Add(m, "Minimal height", TB_MINHEIGHT(), THISBACK(MinHeight))
.Key(K_CTRL_F7);
}
void LayoutDesigner::SpringsBar(Bar& bar) {
bool m = !itemi.IsEmpty();
int im = GetItemPosMask();
bar.Add(m, "Left", TB_SPRINGLEFT(), THISBACK1(ItemPos, MAKELONG(POS_LEFT, POS_NONE)))
.Check(im & MAKELONG(1 << POS_LEFT, 0));
bar.Add(m, "Right", TB_SPRINGRIGHT(), THISBACK1(ItemPos, MAKELONG(POS_RIGHT, POS_NONE)))
.Check(im & MAKELONG(1 << POS_RIGHT, 0));
bar.Add(m, "Horz size", TB_SPRINGHSIZE(), THISBACK1(ItemPos, MAKELONG(POS_SIZE, POS_NONE)))
.Check(im & MAKELONG(1 << POS_SIZE, 0));
bar.Add(m, "Horz center", TB_SPRINGHCENTER(), THISBACK1(ItemPos, MAKELONG(POS_CENTER, POS_NONE)))
.Check(im & MAKELONG(1 << POS_CENTER, 0));
bar.Separator();
bar.Add(m, "Top", TB_SPRINGTOP(), THISBACK1(ItemPos, MAKELONG(POS_NONE, POS_TOP)))
.Check(im & MAKELONG(0, 1 << POS_TOP));
bar.Add(m, "Bottom", TB_SPRINGBOTTOM(), THISBACK1(ItemPos, MAKELONG(POS_NONE, POS_BOTTOM)))
.Check(im & MAKELONG(0, 1 << POS_BOTTOM));
bar.Add(m, "Vert size", TB_SPRINGVSIZE(), THISBACK1(ItemPos, MAKELONG(POS_NONE, POS_SIZE)))
.Check(im & MAKELONG(0, 1 << POS_SIZE));
bar.Add(m, "Vert center", TB_SPRINGVCENTER(), THISBACK1(ItemPos, MAKELONG(POS_NONE, POS_CENTER)))
.Check(im & MAKELONG(0, 1 << POS_CENTER));
bar.Separator();
bar.Add(m, "Auto springs", TB_SPRINGAUTO(), THISBACK1(ItemPos, MAKELONG(POS_AUTO, POS_AUTO)))
.Key(K_CTRL_R);
bar.Add(m, "Topleft springs", TB_SPRINGTOPLEFT(), THISBACK1(ItemPos, MAKELONG(POS_LEFT, POS_TOP)))
.Key(im == MAKELONG(1 << POS_LEFT, 1 << POS_TOP));
}
void LayoutDesigner::ItemBar(Bar& bar) {
int m = itemi.GetCount();
bar.Add(layouti >= 0, "New item", THISBACK(AddItem))
.Key(K_ENTER);
bar.Add(m, "Remove item", THISBACK(Delete))
.Key(K_DELETE);
bar.Add(m, "Move item up", THISBACK(MoveUp))
.Key(K_CTRL_UP);
bar.Add(m, "Move item down", THISBACK(MoveDown))
.Key(K_CTRL_DOWN);
bar.MenuSeparator();
bar.Add("Alignment", THISBACK(AlignBar));
bar.Add("Size", THISBACK(SizeBar));
bar.Add("Springs", THISBACK(SpringsBar));
bar.MenuSeparator();
bar.Add(m, "Matrix..", THISBACK(Matrix))
.Key(K_CTRL_M);
}
void LayoutDesigner::MainBar(Bar& bar) {
bar.Add("File", THISBACK(FileBar));
bar.Add("Edit", THISBACK(EditBar));
bar.Add("Layout", THISBACK(LayoutBar));
bar.Add("Language", THISBACK(LangBar));
bar.Add("Item", THISBACK(ItemBar));
bar.Add("Options", THISBACK(OptionsBar));
}
void LayoutDesigner::Tool(Bar& bar) {
EditBar(bar);
// bar.Separator();
ItemBar(bar);
bar.Separator();
OptionsBar(bar);
bar.Break();
bar.Add(layoutlist, 200);
bar.Gap();
bar.Add(langlist, 100);
}
void LayoutDesigner::OpenWindow() {
if(!frame.IsOpen()) {
alias_map_file = AliasMap::StdFileName();
alias_map.Load(alias_map_file);
if(alias_map.IsEmpty())
alias_map.SetDefault();
UpdateClassList();
frame.OpenMain();
MakeCaption();
}
}
void LayoutDesigner::Execute() {
// frame.SetRect(100, 100, 700, 500);
#ifndef flagIDERW
LoadFromFile(*this);
#endif
OpenWindow();
frame.Run();
#ifndef flagIDERW
StoreToFile(*this);
#endif
if(!alias_map.Save(alias_map_file))
Exclamation(NFormat("Error updating alias file [* \1%s\1].", alias_map_file));
}
void LayoutDesigner::UpdateClassList() {
Vector<String> avail_classes;
Append(avail_classes, ClassMap().GetKeys());
Append(avail_classes, alias_map.obj_source);
Sort(avail_classes, StdLess<String>());
classname.ClearList();
for(int i = 0; i < avail_classes.GetCount(); i++)
classname.AddList(avail_classes[i]);
}
void LayoutDesigner::SetBar()
{
toolbar.Set(THISBACK(Tool));
}
LayoutDesigner::LayoutDesigner() {
int ehg = EditField::GetStdHeight();
VSizePos(0, 0).HSizePos(0, 0);
form.IgnoreMouse();
form.ld = this;
Add(form);
apaint.VSizePos(0, 0).HSizePos(0, 0).Transparent().IgnoreMouse();
apaint.ld = this;
itab.NoWantFocus();
itab.AddColumn("class");
itab.AddColumn("var / label").SetDisplay(VarLblDisplay(false)).Add(2);
itab.AddIndex();
itab.WhenLeftClick = THISBACK(WhenITab);
props.Vert(itab, label_help_split);
props.SetPos(6000);
class_var_lbl.NoWantFocus().Transparent();
class_var_lbl.Add(classname.TopPos(0, ehg).HSizePos(0, 88));
class_var_lbl.Add(variable.TopPos(0, ehg).RightPos(0, 80));
class_var_lbl.Add(label.VSizePos(ehg + 4, 0).HSizePos());
label_help_split.Vert(class_var_lbl, help);
// props.Add(itab.VSizePos(0, ehg + 8 + 60 + 8 + 60 + 8).HSizePos());
// props.Add(classname.BottomPos(60 + 8 + 60 + 8, STDSIZE).HSizePos(0, 88));
// props.Add(variable.BottomPos(60 + 8 + 60 + 8, STDSIZE).RightPos(0, 80));
// props.Add(label.BottomPos(60 + 8, 60).HSizePos());
// props.Add(help.BottomPos(0, 60).HSizePos());
classname.WhenAction = THISBACK(NewClass);
classname.SetDropLines(24);
variable.WhenAction = THISBACK(NewVariable);
variable.ClickSelect();
label.WhenAction = THISBACK(NewLabel);
help.WhenAction = THISBACK(NewHelp);
classset = THISBACK(NewCtrl);
layoutlist.WhenAction = THISBACK(EnterLayout);
layoutlist.SizePos();
// layoutlist.LeftPos(0, 150).TopPos(ehg + 11, ehg);
layouti = -1;
langlist.WhenAction = THISBACK(EnterLanguage);
langlist.SizePos();
// langlist.LeftPos(150, 150).TopPos(ehg + 11, ehg);
langi = 0;
form.Hide();
sb.WhenScroll = THISBACK(Scroll);
// menubar.TopPos(0, ehg + 4).HSizePos(0, 0);
// toolbar.HSizePos(300, 0).TopPos(ehg + 8, 24).SetFrame(NullFrame());
frame.ld = this;
frame.Sizeable().Zoomable().Icon(RwIconSmall(), RwIconLarge()); //.HelpBox(); // todo? or not to do?
frame.AddFrame(menubar);
frame.AddFrame(toolbar);
frame.WhenClose = THISBACK(CloseFile);
// status.TopPos(0, ehg + 4).HSizePos(0, 0);
status.NoTransparent();
menubar.AddFrame(status);
SetBar();
menubar.Set(THISBACK(MainBar));
design.SetFrame(InsetFrame());
design.AddFrame(sb);
design.Add(*this);
design.Add(apaint);
// splital.VSizePos(2 * EditField::GetStdHeight() + 16, 0);
splital.Horz(props, design);
splital.SetPos(3000);
frame.Add(splital.SizePos());
SetLayout(-1);
LruList.WhenSelect = THISBACK(LruOpen);
grid.x <<= grid.y <<= 2;
matrix.x <<= matrix.y <<= 1;
matrix.vspace <<= matrix.hspace <<= 0;
CtrlLayoutOKCancel(matrix, "Matrix duplication");
matrix.x.MinMax(1, 10);
matrix.y.MinMax(1, 10);
ignoremin = false;
qlib2_output = false;
moved = false;
usegrid = true;
// frame.HelpBox().CommentBox(); // todo? or not to do?
filesel.Type("Layout files (*.lay)", "*.lay").Type("All files (*.*)", "*.*")
.DefaultExt("lay");
layoutlist.Disable();
}
static Array<LayoutDesigner>& GetDesigners() {
static Array<LayoutDesigner> list;
return list;
}
#ifdef flagIDERW
void LayoutDesigner::CloseDesigner() {
Array<LayoutDesigner>& list = GetDesigners();
for(int i = 0; i < list.GetCount(); i++)
if(&list[i] == this)
{
list.Remove(i);
return;
}
}
#endif
bool CloseDesignLayout() {
Array<LayoutDesigner>& list = GetDesigners();
while(!list.IsEmpty())
{
if(!list[0].CloseLayoutFile())
return false;
list.Remove(0);
}
return true;
}
bool SaveDesignLayout() {
Array<LayoutDesigner>& list = GetDesigners();
bool is_ok = true;
for(int i = 0; i < list.GetCount(); i++)
if(!list[i].SaveLayoutFile())
is_ok = false;
return is_ok;
}
void DesignLayout(String open_file) {
Array<LayoutDesigner>& list = GetDesigners();
for(int i = 0; i < list.GetCount(); i++)
if(!CompareNoCase(list[i].GetFileName(), open_file))
{
list[i].SetWantFocus();
return;
}
LayoutDesigner& ld = list.Add();
ld.OpenWindow();
ld.LoadLayoutFile(open_file);
}
Image GetRwIcon() {
return RwIconSmall();
}
#ifndef flagIDERW
void AppMain()
{
SetDefaultCharset(CHARSET_WIN1250);
LayoutDesigner ld;
ld.Execute();
}
#endif//flagIDERW

295
uppsrc2/rw/ItemCtrl.cpp Normal file
View file

@ -0,0 +1,295 @@
#include "Designer.h"
//#include <TCtrlLib/TCtrlLib.h>
typedef VectorMap<String, CtrlCreator> CtrlCreatorMap;
GLOBAL_VAR(CtrlCreatorMap, LayoutDesigner::ClassMap);
void LayoutDesigner::Register(const String& classname, CtrlCreator creator) {
ClassMap().GetAdd(classname) = creator;
}
String LayoutDesigner::Lng(const Vector<String>& x) const {
return langi < x.GetCount() ? x[langi] : String();
}
String& LayoutDesigner::ItemLabel(int i) {
return Lng(Item(i).label);
}
String LayoutDesigner::ItemLabel(int i) const {
return Lng(Item(i).label);
}
String& LayoutDesigner::Help(int i) {
return Lng(Item(i).help);
}
String LayoutDesigner::Help(int i) const {
return Lng(Item(i).help);
}
void LayoutDesigner::SynchronizeCtrl(int im) {
const ItemInfo& ii = Item(im);
SynchronizeCtrl(ctrl[im], ii);
itab.Set(im, 0, ii.classname);
itab.Set(im, 1, ii.variable);
itab.Set(im, 2, (langi < ii.label.GetCount() ? ii.label[langi] : String()));
}
void LayoutDesigner::SynchronizeCtrl(Ctrl& q, const ItemInfo& ii)
{
q.SetLabel(Lng(ii.label));
// q.Help(Help(im));
q.Tip(Lng(ii.help));
q.DesignMode();
q.SetPos(ii.pos);
}
void LayoutDesigner::SynchronizeCtrl() {
SynchronizeCtrl(itemi.Top());
}
void LayoutDesigner::SynchronizeCtrls() {
mnem_ctrl.Clear();
ref_ctrl.Clear();
ctrl.Clear();
for(int i = 0; i < ItemCount(); i++) {
ItemInfo& ii = Item(i);
Ctrl& q = ctrl.Add(CreateCtrl(ii.classname));
form.Add(q);
SynchronizeCtrl(i);
}
ShowHideLayouts();
}
int LayoutDesigner::ParseLayoutRef(String cls, String& base) const
{
const char *p = cls;
if(p[0] != 'W' || p[1] != 'i' || p[2] != 't' || p[3] != 'h')
return -1;
const char *b = (p += 4);
while(IsAlNum(*p) || *p == '_')
p++;
if(p <= b)
return -1;
String layoutid(b, p);
int fi = FindFieldIndex(layout, &Form::name, layoutid);
if(fi < 0)
return -1;
while(*p && (byte)*p <= ' ')
p++;
if(*p++ != '<')
return -1;
while(*p && (byte)*p <= ' ')
p++;
const char *e = cls.End();
while(e > p && (byte)e[-1] <= ' ')
e--;
if(e > p && e[-1] == '>')
e--;
while(e > p && (byte)e[-1] <= ' ')
e--;
base = String(p, e);
return fi;
}
Ctrl *LayoutDesigner::CreateLayoutCtrl(String classname, Index<String>& recursed)
{
String base;
int fi = ParseLayoutRef(classname, base);
if(fi < 0 || recursed.Find(layout[fi].name) >= 0 || recursed.Find(base) >= 0)
return NULL;
recursed.Add(layout[fi].name);
recursed.Add(base);
Ctrl *ctrl = CreateCtrl(base, recursed);
if(!ctrl)
{
ctrl = new Ctrl();
ctrl->Transparent();
}
const Form& form = layout[fi];
for(int i = 0; i < form.item.GetCount(); i++) {
const ItemInfo& ii = form.item[i];
Ctrl *q = CreateCtrl(ii.classname, recursed);
if(!q)
{
q = new UrgCtrl(ii.classname);
q->DesignMode();
}
ref_ctrl.Add(q);
ctrl -> Add(*q);
SynchronizeCtrl(*q, ii);
}
recursed.Drop();
recursed.Drop();
return ctrl;
}
Ctrl *LayoutDesigner::CreateCtrl(const String& classname, Index<String>& recursed)
{
Ctrl *q = CreateLayoutCtrl(classname, recursed);
if(q)
return q;
int ci = ClassMap().Find(alias_map.Convert(classname));
if(ci >= 0)
{
q = ClassMap()[ci]();
q->DesignMode();
}
return q;
}
Ctrl *LayoutDesigner::CreateCtrl(const String& classname) {
Index<String> temp;
Ctrl *q = CreateCtrl(classname, temp);
if(!q)
{
q = new UrgCtrl(~classname);
q->DesignMode();
}
return q;
}
void LayoutDesigner::AddCtrl(const String& cls, const String& var, const String& lbl,
const String& help) {
int imi = ctrl.GetCount();
ItemInfo& ii = ActualForm().item.Add();
ii.classname = cls;
ii.variable = var;
Lng(ii.label) = lbl;
Lng(ii.help) = help;
Ctrl& q = ctrl.Add(CreateCtrl(cls));
q.TopPos(0, max(10, q.GetStdSize().cy)).LeftPos(0, 50);
ii.pos = q.GetPos();
q.SetLabel(lbl);
// q.Help(help);
q.Tip(help);
q.DesignMode();
form.Add(q);
Refresh();
itab.Add(cls, var, lbl);
SelectOneItem(imi);
}
class MnemCtrl : public Ctrl
{
public:
MnemCtrl(char letter, Font font) : letter(letter), font(font) {}
public:
virtual void Paint(Draw& draw)
{
draw.DrawRect(draw.GetClip(), LtRed);
draw.DrawText(1, 0, &letter, font, SBlack, 1);
}
private:
char letter;
Font font;
};
static void AddMnemonic(VectorMap< int, Vector<Ctrl *> >& out, Array<Ctrl>& in)
{
for(int i = in.GetCount(); --i >= 0;)
{
Ctrl& c = in[i];
int m;
if(c.GetParent() && c.GetParent() -> IsShown() && (m = c.GetMnemonic()) != 0)
out.GetAdd(ToUpper(m)).Add(&c);
}
}
void LayoutDesigner::SynchronizeMnemonic()
{
mnem_ctrl.Clear();
VectorMap< int, Vector<Ctrl *> > mnemonic;
AddMnemonic(mnemonic, ctrl);
AddMnemonic(mnemonic, ref_ctrl);
Point p = sb;
Size shift = Point(10, 10) - p;
Font mfont = StdFont().Bold();
FontInfo minfo = ScreenInfo().GetFontInfo(mfont);
int mht = minfo.GetHeight();
for(int m = 0; m < mnemonic.GetCount(); m++)
if(mnemonic[m].GetCount() >= 2)
{
const Vector<Ctrl *>& mdup = mnemonic[m];
for(int c = 0; c < mdup.GetCount(); c++)
{
char mnem = mnemonic.GetKey(m);
int mwd = minfo[(byte)mnem];
Ctrl& mctrl = mnem_ctrl.Add(new MnemCtrl(mnem, mfont));
mdup[c] -> Add(mctrl.RightPos(0, mwd + 2).BottomPos(0, mht));
}
}
}
void LayoutDesigner::CleanRefCtrl()
{
for(int i = ref_ctrl.GetCount(); --i >= 0;)
if(!ref_ctrl[i].GetParent())
ref_ctrl.Remove(i);
}
void LayoutDesigner::SetClass(int im) {
Ctrl& q = ctrl.Set(im, CreateCtrl(Item(im).classname));
CleanRefCtrl();
form.Add(q);
SynchronizeCtrl(im);
}
void LayoutDesigner::Swap(int i1, int i2) {
ActualForm().item.Swap(i1, i2);
SetClass(i1);
SetClass(i2);
}
REGCTRLCLASS(Button)
REGCTRLCLASS(EditField)
REGCTRLCLASS(EditInt)
REGCTRLCLASS(EditDouble)
REGCTRLCLASS(EditDate)
//REGCTRLCLASS(EditTime)
REGCTRLCLASS(EditIntNotNull)
REGCTRLCLASS(EditDoubleNotNull)
REGCTRLCLASS(EditDateNotNull)
REGCTRLCLASS(EditIntSpin)
REGCTRLCLASS(EditString)
REGCTRLCLASS(EditStringNotNull)
//REGCTRLCLASS(TableArray)
REGCTRLCLASS(ArrayCtrl)
REGCTRLCLASS(Option)
REGCTRLCLASS(Switch)
REGCTRLCLASS(Label)
REGCTRLCLASS(LabelBox)
REGCTRLCLASS(WithDropChoice<EditString>)
REGCTRLCLASS(DropList)
REGCTRLCLASS(ScrollBar)
REGCTRLCLASS(DocEdit)
REGCTRLCLASS(QtfCtrl)
REGCTRLCLASS(StaticRect)
REGCTRLCLASS(Icon)
REGCTRLCLASS(ProgressIndicator)
/*
REGCTRLCLASS(Picture)
REGCTRLCLASS(SqlTable)
REGCTRLCLASS(SqlArray)
REGCTRLCLASS(SqlOption)
*/
REGCTRLCLASS(ToolBar)
REGCTRLCLASS(MenuBar)
//REGCTRLCLASS(InfoBar)
/*
REGCTRLCLASS(TableCheck)
REGCTRLCLASS(ValueOption)
REGCTRLCLASS(FileCtrl)
REGCTRLCLASS(MenuButton)
REGCTRLCLASS(DragDropCtrl)
REGCTRLCLASS(ScrollTable)
REGCTRLCLASS(StaticCtrl)
*/
REGCTRLCLASS(DataPusher)
//REGCTRLCLASS(ColorCtrl)
REGCTRLCLASS(TabCtrl)
//REGCTRLCLASS(OldTreeCtrl)

117
uppsrc2/rw/Lang.cpp Normal file
View file

@ -0,0 +1,117 @@
#include "Designer.h"
int FindDlIndex(const DropList& d, const Value& val) {
for(int i = 0; i < d.GetCount(); i++)
if(d.GetValue(i) == val) return i;
return -1;
}
Vector<String> LayoutDesigner::CoreLangs() {
Vector<String> r;
return r;
}
void LayoutDesigner::AddLang(const String& lang, bool copy) {
int li = langlist.GetCount();
langlist.Add(li, lang);
if(copy)
for(int i = 0; i < layout.GetCount(); i++) {
Form& l = layout[i];
for(int i = 0; i < l.item.GetCount(); i++) {
String s = l.item[i].label.At(langi);
l.item[i].label.At(li) = s;
s = l.item[i].help.At(langi);
l.item[i].help.At(li) = s;
}
}
SetLayout(~layoutlist, li);
}
void LayoutDesigner::NewLanguage() {
WithLangLayout<TopWindow> dlg;
CtrlLayoutOKCancel(dlg, "New language");
dlg.copy = true;
Vector<String> cl = CoreLangs();
dlg.language.AddList("LNG_ALBANIAN");
dlg.language.AddList("LNG_BELARUSIAN");
dlg.language.AddList("LNG_BULGARIAN");
dlg.language.AddList("LNG_CROATIAN");
dlg.language.AddList("LNG_CZECH");
dlg.language.AddList("LNG_DANISH");
dlg.language.AddList("LNG_DUTCH");
dlg.language.AddList("LNG_ENGLISH");
dlg.language.AddList("LNG_ESTONIAN");
dlg.language.AddList("LNG_FINNISH");
dlg.language.AddList("LNG_FRENCH");
dlg.language.AddList("LNG_GERMAN");
dlg.language.AddList("LNG_GREEK");
dlg.language.AddList("LNG_HUNGARIAN");
dlg.language.AddList("LNG_ICELANDIC");
dlg.language.AddList("LNG_ITALIAN");
dlg.language.AddList("LNG_LATVIAN");
dlg.language.AddList("LNG_LITHUANIAN");
dlg.language.AddList("LNG_MACEDONIAN");
dlg.language.AddList("LNG_NORWEGIAN");
dlg.language.AddList("LNG_POLISH");
dlg.language.AddList("LNG_PORTUGUESE");
dlg.language.AddList("LNG_ROMANIAN");
dlg.language.AddList("LNG_RUSSIAN");
dlg.language.AddList("LNG_SERBIAN");
dlg.language.AddList("LNG_SLOVAK");
dlg.language.AddList("LNG_SLOVENIAN");
dlg.language.AddList("LNG_SPANISH");
dlg.language.AddList("LNG_SWEDISH");
dlg.language.AddList("LNG_TURKISH");
dlg.language.AddList("LNG_UKRAINIAN");
if(dlg.Run() != IDOK) return;
AddLang(dlg.language, dlg.copy);
}
void LayoutDesigner::RenameLanguage() {
if(langlist.GetCount() == 0) return;
String s = langlist.GetValue();
if(!EditText(s, "Pøejmenovat jazyk", "Nový jazyk")) return;
langlist.SetValue(s);
}
void LayoutDesigner::RemoveLanguage() {
if(langlist.GetCount() == 0) return;
if(!PromptYesNo("Remove current language ?")) return;
int i;
Vector<String> s;
for(i = 0; i < langlist.GetCount(); i++)
if(i != langi)
s.Add(langlist.GetValue(i));
if(langlist.GetCount() > 1)
for(i = 0; i < layout.GetCount(); i++) {
Form& l = layout[i];
for(int i = 0; i < l.item.GetCount(); i++) {
l.item[i].label.Remove(langi);
l.item[i].help.Remove(langi);
}
}
langlist.Clear();
for(i = 0; i < s.GetCount(); i++)
langlist.Add(i, s[i]);
SetLayout(~layoutlist, 0);
}
void LayoutDesigner::AddCoreLanguages() {
int id = PromptYesNoCancel("Copy current language ?");
if(id == IDCANCEL) return;
Vector<String> cl = CoreLangs();
for(int i = 0; i < cl.GetCount(); i++)
AddLang(cl[i], id == IDYES);
}
void LayoutDesigner::PrevLang() {
if(langlist.GetCount() == 0) return;
langlist.SetIndex((langlist.GetIndex() + 1) % langlist.GetCount());
EnterLanguage();
}
void LayoutDesigner::NextLang() {
if(langlist.GetCount() == 0) return;
langlist.SetIndex((langlist.GetIndex() + langlist.GetCount() - 1) % langlist.GetCount());
EnterLanguage();
}

1
uppsrc2/rw/StdCtrls.cpp Normal file
View file

@ -0,0 +1 @@
#include "Designer.h"

61
uppsrc2/rw/Util.cpp Normal file
View file

@ -0,0 +1,61 @@
#include "Designer.h"
struct VarLblDisplayCls : public Display
{
VarLblDisplayCls(bool selected) : selected(selected) {}
virtual void Paint(Draw& draw, const Rect& rc, const Value& value, Color i, Color p, dword style) const
{
ValueArray va(value);
if(selected && !(style & CURSOR))
i = SLtBlue;
if(va.GetCount() <= 1 || !IsNull(va[0]))
StdDisplay().Paint(draw, rc, va[0], i, p, style);
else
{
if(!(style & CURSOR))
i = Color(64, 160, selected ? 255 : 64);
StdDisplay().Paint(draw, rc, va[1], i, p, style);
}
}
bool selected;
};
const Display& VarLblDisplay(bool selected)
{
if(selected)
{
static VarLblDisplayCls vls(true);
return vls;
}
else
{
static VarLblDisplayCls vln(false);
return vln;
}
}
void SelectedDisplay::Paint(Draw& w, const Rect& r, const Value& q, Color ink, Color paper,
dword style) const {
w.DrawRect(r, paper);
DrawSmartText(w, r.left, r.top, r.Width(),
IsString(q) ? String(q) : StdFormat(q), StdFont(),
(style & CURSOR) ? ink : SLtBlue);
}
const SelectedDisplay SelDisplay;
void UrgCtrl::SetLabelText(const char *s) {
label = s;
Refresh();
}
void UrgCtrl::Paint(Draw& w) {
Size sz = GetSize();
w.DrawRect(0, 0, sz.cx, sz.cy, SLtCyan);
DrawSmartText(w, 0, 0, sz.cx, label);
Size tsz = w.GetTextSize(classname, Arial(11));
w.DrawRect(sz.cx - tsz.cx, sz.cy - tsz.cy, tsz.cx, tsz.cy, SBlue);
w.DrawText(sz.cx - tsz.cx, sz.cy - tsz.cy, classname, Arial(11), SYellow);
}

View file

@ -0,0 +1,23 @@
ITEM("AppDoc", "RW", "NewFeatures", "EN-US") EXTERNAL
TEXT("[{_} ")
TEXT("[s0; [*2 May 27, 2003]]")
TEXT("&")
TEXT("[s0;2 ]")
TEXT("&")
TEXT("[s0; [* Graphical warnings on duplicate ][*_ m][* ne][*_ m][* on")
TEXT("ic ")
TEXT("keys]]")
TEXT("&")
TEXT("[s0;2 ]")
TEXT("&")
TEXT("[s0; [2 Layout editor displays a ][/2 red block with letter][2 ")
TEXT("in ")
TEXT("the bottomright corner of each set of layout controls sharing ")
TEXT("the same mnemonic hotkey (underlined letter marked by `& in the ")
TEXT("label text string). This helps the designer catch situations ")
TEXT("in which multiple controls are assigned the same hotkey which ")
TEXT("is annoying to the end application user.]]")
TEXT("&")
TEXT("[s0;2 ]")
TEXT("]")
END_ITEM

0
uppsrc2/rw/doc.dpp/links Normal file
View file

4
uppsrc2/rw/iderw.h Normal file
View file

@ -0,0 +1,4 @@
bool CloseDesignLayout();
bool SaveDesignLayout();
void DesignLayout(String open_file);
Image GetRwIcon();

4
uppsrc2/rw/init Normal file
View file

@ -0,0 +1,4 @@
#ifndef _rw_icpp_init_stub
#define _rw_icpp_init_stub
#include "CtrlLib/init"
#endif

4
uppsrc2/rw/prj.aux Normal file
View file

@ -0,0 +1,4 @@
file
e:\out\cxlsrc\rw\DEBUG-GUI-MAIN-MSC-ST-WIN32\rw.log,
G:\upp2out\rw\Debug-gui-main-msc-st-win32\rw.log,
F:\uppsrc\Core\core.upp;

BIN
uppsrc2/rw/rw.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

497
uppsrc2/rw/rw.iml Normal file
View file

@ -0,0 +1,497 @@
IMAGE_BEGIN(CrossCursor)
IMAGE_SCAN("Ä\1\0\0\0")
IMAGE_SCAN("Ä\1\0\0\0")
IMAGE_SCAN("Ä\1\0\0\0")
IMAGE_SCAN("Ä\1\0\0\0")
IMAGE_SCAN("‰\0\0\0")
IMAGE_SCAN("Ä\1\0\0\0")
IMAGE_SCAN("Ä\1\0\0\0")
IMAGE_SCAN("Ä\1\0\0\0")
IMAGE_SCAN("Ä\1\0\0\0")
IMAGE_PACKED(CrossCursor, "\2\20\0\0\0\20\0\0\0\4\0\0\0\4\0\0\0\0\0\0\0")
IMAGE_BEGIN(RwIconSmall)
IMAGE_SCAN("")
IMAGE_SCAN("<22>€€€")
IMAGE_SCAN("\1€€€<E282AC>\377\0\0\1€€€")
IMAGE_SCAN("\1€€€<E282AC>\377\0\0\1€€€")
IMAGE_SCAN("\1€€€<E282AC>ÀÀÀ\1€€€")
IMAGE_SCAN("\2€€€ÀÀÀ\377\377\377\1\0\0\0…\377\377\377„ÀÀÀ\1€€€")
IMAGE_SCAN("\2€€€ÀÀÀ\377\377\377\0\0\0„\377\377\377„ÀÀÀ\1€€€")
IMAGE_SCAN("\1€€€ƒÀÀÀ\3\0\0\0003×\377\0\0\0‡ÀÀÀ\1€€€")
IMAGE_SCAN("\1€€€ƒÀÀÀ\1\0\0\03×\377\1\0\0\0†ÀÀÀ\1€€€")
IMAGE_SCAN("\1€€€ƒÀÀÀ\1\0\0\0ƒ3×\377\1\0\0\0…ÀÀÀ\1€€€")
IMAGE_SCAN("\1€€€ƒÀÀÀ\1\0\0\0ƒ3×\377\0\0\0…€€€")
IMAGE_SCAN("\1€€€ƒÀÀÀ\1\0\0\03×\377\1\0\0\0ÀÀÀ\1€€€ÀÀÀ€€€")
IMAGE_SCAN("\1€€€ƒÀÀÀ\6\0\0\0hhh\0\0\0003×\377\0\0\0ÀÀÀ…€€€")
IMAGE_SCAN("„€€€\5\0\0\0€€€\0\0\0003×\377\0\0\0†€€€")
IMAGE_SCAN("Ç\3\0\0\0003×\377\0\0\0")
IMAGE_SCAN("Ç\1€€€\0\0\0")
IMAGE_PACKED(RwIconSmall, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(RwIconLarge)
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("Áž€€€")
IMAGE_SCAN("Á\1€€€œ\377\0\0\1€€€")
IMAGE_SCAN("Á\4€€€\377\0\0\377\377\377\377\0\0\377\377\377\1°°°\377\0\0\3\377\377\377\377\0\0\377\377\377\377\0\0\1€€€")
IMAGE_SCAN("Á\3€€€\377\0\0\377\377\377\377\0\0\6\377\377\377°°°\377\377\377\377\0\0\377\377\377\377\0\0\377\377\377<37>\377\0\0\1€€€")
IMAGE_SCAN("Á\1€€€œ\377\0\0\1€€€")
IMAGE_SCAN("Á\1€€€œÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€œÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ÀÀÀŽ   ŒÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ÀÀÀ\1   <C2A0>\377\377\377\1ÞÞÞÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ÀÀÀ\1   <C2A0>\377\377\377\1ÞÞÞÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ƒÀÀÀŽÞÞÞÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€œÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€œÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ÀÀÀNNNÀÀÀ\2   ÀÀÀ\0\0\0ÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ÀÀÀ\3NNNÞÞÞÀÀÀ   \4ÀÀÀ\0\0\0003×\377\0\0\0ÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\1\0\0\03×\377\1\0\0\0<>ÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\1\0\0\0ƒ3×\377\1\0\0\0<>ÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\1\0\0\0„3×\377\1\0\0\0ŽÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\1\0\0\0…3×\377\1\0\0\0<>ÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\1\0\0\0†3×\377\1\0\0\0ŒÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\1\0\0\0„3×\377„\0\0\0ÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\1\0\0\03×\377\3\0\0\0003×\377\0\0\0ƒÀÀÀ‰ÞÞÞÀÀÀ\1€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\2\0\0\0003×\377\0\0\03×\377\1\0\0\0ÀÀÀ\3ÞÞÞÀÀÀ   ÀÀÀ   ÀÀÀ\3   ÀÀÀ€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\0\0\0\2ÀÀÀ\0\0\03×\377\1\0\0\0ÀÀÀ\2ÞÞÞÀÀÀ   \2ÀÀÀ   ƒÀÀÀ\3   ÀÀÀ€€€")
IMAGE_SCAN("Á\1€€€ˆÀÀÀ\1\0\0\0ƒÀÀÀ\1\0\0\03×\377\1\0\0\0ÀÀÀ‰   \2ÀÀÀ€€€")
IMAGE_SCAN("Á\1€€€ŒÀÀÀ\1\0\0\03×\377\1\0\0\0ŒÀÀÀ\1€€€")
IMAGE_SCAN("Á<>\0\0\0\0013×\377Ž\0\0\0")
IMAGE_SCAN("Ð\1\0\0\0")
IMAGE_PACKED(RwIconLarge, "\2 \0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ALIGNLEFT)
IMAGE_SCAN("\1\0\0\0")
IMAGE_SCAN("\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Á‡\0\0\0Ã\1€\0\0")
IMAGE_SCAN("\1\0\0\0Á\7\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0€\0\0")
IMAGE_SCAN("\1\0\0\0Á\7\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0Á…€\0\0")
IMAGE_SCAN("\1\0\0\0Á\7\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0€\0\0")
IMAGE_SCAN("\1\0\0\0Á‡\0\0\0Ã\1€\0\0")
IMAGE_SCAN("\1\0\0\0")
IMAGE_SCAN("\1\0\0\0")
IMAGE_SCAN("\1\0\0\0ƒ\0\0\0Ä\1€\0\0")
IMAGE_SCAN("\1\0\0\0Á\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0€\0\0")
IMAGE_SCAN("\1\0\0\0Á\5\0\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0Á‡€\0\0")
IMAGE_SCAN("\1\0\0\0Á\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0€\0\0")
IMAGE_SCAN("\1\0\0\0ƒ\0\0\0Ä\1€\0\0")
IMAGE_SCAN("\1\0\0\0")
IMAGE_PACKED(TB_ALIGNLEFT, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ALIGNRIGHT)
IMAGE_SCAN("Î\1\0\0\0")
IMAGE_SCAN("Î\1\0\0\0")
IMAGE_SCAN("Â\1€\0\0Ç\0\0\0Á\1\0\0\0")
IMAGE_SCAN("‚€\0\0Â\7\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0Á\1\0\0\0")
IMAGE_SCAN("…€\0\0Á\7\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0Á\1\0\0\0")
IMAGE_SCAN("‚€\0\0Â\7\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0Á\1\0\0\0")
IMAGE_SCAN("Â\1€\0\0Ç\0\0\0Á\1\0\0\0")
IMAGE_SCAN("Î\1\0\0\0")
IMAGE_SCAN("Î\1\0\0\0")
IMAGE_SCAN("Ä\1€\0\0ă\0\0\0Â\1\0\0\0")
IMAGE_SCAN("Ä‚€\0\0Â\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0Á\1\0\0\0")
IMAGE_SCAN("‡€\0\0Á\5\0\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0Á\1\0\0\0")
IMAGE_SCAN("Ä‚€\0\0Â\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0Á\1\0\0\0")
IMAGE_SCAN("Ä\1€\0\0ă\0\0\0Â\1\0\0\0")
IMAGE_SCAN("Î\1\0\0\0")
IMAGE_PACKED(TB_ALIGNRIGHT, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ALIGNTOP)
IMAGE_SCAN("<22>\0\0\0")
IMAGE_SCAN("")
IMAGE_SCAN("ƒ\0\0\0‡\0\0\0")
IMAGE_SCAN("Á\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0Á\7\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("Á\5\0\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0Á\7\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Á\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0Á\7\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("ƒ\0\0\0‡\0\0\0")
IMAGE_SCAN("")
IMAGE_SCAN("Ã\1€\0\0Æ\1€\0\0")
IMAGE_SCAN("ƒ€\0\0ă€\0\0")
IMAGE_SCAN("Á…€\0\0Â…€\0\0")
IMAGE_SCAN("Ã\1€\0\0Æ\1€\0\0")
IMAGE_SCAN("Ã\1€\0\0Æ\1€\0\0")
IMAGE_SCAN("Ã\1€\0\0Æ\1€\0\0")
IMAGE_SCAN("Ã\1€\0\0Æ\1€\0\0")
IMAGE_PACKED(TB_ALIGNTOP, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ALIGNBOTTOM)
IMAGE_SCAN("Ã\1€\0\0Ç\1€\0\0")
IMAGE_SCAN("Ã\1€\0\0Ç\1€\0\0")
IMAGE_SCAN("Ã\1€\0\0Ç\1€\0\0")
IMAGE_SCAN("Ã\1€\0\0Ç\1€\0\0")
IMAGE_SCAN("Á…€\0\0Ã…€\0\0")
IMAGE_SCAN("ƒ€\0\0Ń€\0\0")
IMAGE_SCAN("Ã\1€\0\0Ç\1€\0\0")
IMAGE_SCAN("")
IMAGE_SCAN("ƒ\0\0\0Ç\0\0\0")
IMAGE_SCAN("Á\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0Â\7\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("Á\5\0\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0Â\7\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Á\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0Â\7\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("ƒ\0\0\0Ç\0\0\0")
IMAGE_SCAN("")
IMAGE_SCAN("<22>\0\0\0")
IMAGE_PACKED(TB_ALIGNBOTTOM, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_VERTCENTER)
IMAGE_SCAN("<22>\0\0\0")
IMAGE_SCAN("\1\0\0\0Ç\1€\0\0Æ\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Å…€\0\0Ä\1\0\0\0")
IMAGE_SCAN("\1\0\0\0ƃ€\0\0Å\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Ç\1€\0\0Æ\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Š\0\0\0Â\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Â\12\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0Â\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Â\12\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0Â\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Š\0\0\0Â\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Ç\1€\0\0Æ\1\0\0\0")
IMAGE_SCAN("\1\0\0\0ƃ€\0\0Å\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Å…€\0\0Ä\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Ç\1€\0\0Æ\1\0\0\0")
IMAGE_SCAN("<22>\0\0\0")
IMAGE_PACKED(TB_VERTCENTER, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_HORZCENTER)
IMAGE_SCAN("<22>\0\0\0")
IMAGE_SCAN("\1\0\0\0Î\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Å„\0\0\0Å\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Å\4\0\0\0\377\377\377ÀÀÀ\0\0\0Å\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Å\4\0\0\0ÀÀÀ\377\377\377\0\0\0Å\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Â\1€\0\0Â\4\0\0\0\377\377\377ÀÀÀ\0\0\0Â\1€\0\0Â\1\0\0\0")
IMAGE_SCAN("\1\0\0\0€\0\0Á\4\0\0\0ÀÀÀ\377\377\377\0\0\0Á€\0\0Â\1\0\0\0")
IMAGE_SCAN("\1\0\0\0…€\0\0\4\0\0\0\377\377\377ÀÀÀ\0\0\0…€\0\0\1\0\0\0")
IMAGE_SCAN("\1\0\0\0€\0\0Á\4\0\0\0ÀÀÀ\377\377\377\0\0\0Á€\0\0Â\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Â\1€\0\0Â\4\0\0\0\377\377\377ÀÀÀ\0\0\0Â\1€\0\0Â\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Å\4\0\0\0ÀÀÀ\377\377\377\0\0\0Å\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Å„\0\0\0Å\1\0\0\0")
IMAGE_SCAN("\1\0\0\0Î\1\0\0\0")
IMAGE_SCAN("<22>\0\0\0")
IMAGE_PACKED(TB_HORZCENTER, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ESPACEHORZ)
IMAGE_SCAN("")
IMAGE_SCAN("ƒ\0\0\0Ƀ\0\0\0")
IMAGE_SCAN("\3\377\377\377ÀÀÀ\0\0\0É\3\0\0\0\377\377\377ÀÀÀ")
IMAGE_SCAN("\3ÀÀÀ\377\377\377\0\0\0É\3\0\0\0ÀÀÀ\377\377\377")
IMAGE_SCAN("\3\377\377\377ÀÀÀ\0\0\0É\3\0\0\0\377\377\377ÀÀÀ")
IMAGE_SCAN("\3ÀÀÀ\377\377\377\0\0\0Â\1€\0\0Ã\1€\0\0Â\3\0\0\0ÀÀÀ\377\377\377")
IMAGE_SCAN("\3\377\377\377ÀÀÀ\0\0\0Á€\0\0À\0\0Á\3\0\0\0\377\377\377ÀÀÀ")
IMAGE_SCAN("\3ÀÀÀ\377\377\377\0\0\0‰€\0\0\3\0\0\0ÀÀÀ\377\377\377")
IMAGE_SCAN("\3\377\377\377ÀÀÀ\0\0\0Á€\0\0À\0\0Á\3\0\0\0\377\377\377ÀÀÀ")
IMAGE_SCAN("\3ÀÀÀ\377\377\377\0\0\0Â\1€\0\0Ã\1€\0\0Â\3\0\0\0ÀÀÀ\377\377\377")
IMAGE_SCAN("\3\377\377\377ÀÀÀ\0\0\0É\3\0\0\0\377\377\377ÀÀÀ")
IMAGE_SCAN("\3ÀÀÀ\377\377\377\0\0\0É\3\0\0\0ÀÀÀ\377\377\377")
IMAGE_SCAN("ƒ\0\0\0Ƀ\0\0\0")
IMAGE_PACKED(TB_ESPACEHORZ, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ESPACEVERT)
IMAGE_SCAN("\14\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("\14\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("Œ\0\0\0")
IMAGE_SCAN("Æ\1€\0\0")
IMAGE_SCAN("Ń€\0\0")
IMAGE_SCAN("Ä…€\0\0")
IMAGE_SCAN("Æ\1€\0\0")
IMAGE_SCAN("Æ\1€\0\0")
IMAGE_SCAN("Æ\1€\0\0")
IMAGE_SCAN("Ä…€\0\0")
IMAGE_SCAN("Ń€\0\0")
IMAGE_SCAN("Æ\1€\0\0")
IMAGE_SCAN("Œ\0\0\0")
IMAGE_SCAN("\14\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("\14\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_PACKED(TB_ESPACEVERT, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SAMEWIDTH)
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("<22>\0\0\0")
IMAGE_SCAN("\17\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("\17\0\0\0ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("\2\0\0\0\377\377\377€\0\0\7ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ€\0\0\2\377\377\377\0\0\0")
IMAGE_SCAN("\1\0\0\0<>€\0\0\1\0\0\0")
IMAGE_SCAN("\2\0\0\0\377\377\377€\0\0\7ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ€\0\0\2\377\377\377\0\0\0")
IMAGE_SCAN("\17\0\0\0ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("\17\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("<22>\0\0\0")
IMAGE_PACKED(TB_SAMEWIDTH, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SAMEHEIGHT)
IMAGE_SCAN("")
IMAGE_SCAN("É\0\0\0")
IMAGE_SCAN("Ã\11\0\0\0\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("Ã\3\0\0\0ÀÀÀ\377\377\377ƒ€\0\0\3\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Ã\2\0\0\0\377\377\377…€\0\0\2\377\377\377\0\0\0")
IMAGE_SCAN("Ã\11\0\0\0ÀÀÀ\377\377\377ÀÀÀ€\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Ã\11\0\0\0\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("Ã\11\0\0\0ÀÀÀ\377\377\377ÀÀÀ€\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Ã\11\0\0\0\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("Ã\11\0\0\0ÀÀÀ\377\377\377ÀÀÀ€\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Ã\2\0\0\0\377\377\377…€\0\0\2\377\377\377\0\0\0")
IMAGE_SCAN("Ã\3\0\0\0ÀÀÀ\377\377\377ƒ€\0\0\3\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Ã\11\0\0\0\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("É\0\0\0")
IMAGE_PACKED(TB_SAMEHEIGHT, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SAMESIZE)
IMAGE_SCAN("")
IMAGE_SCAN("<22>\0\0\0")
IMAGE_SCAN("\17\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ€\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("\6\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀƒ€\0\0\6ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("\5\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ…€\0\0\5ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("\17\0\0\0ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("\2\0\0\0\377\377\377€\0\0\7ÀÀÀ\377\377\377ÀÀÀ€\0\0ÀÀÀ\377\377\377ÀÀÀ€\0\0\2\377\377\377\0\0\0")
IMAGE_SCAN("\1\0\0\0<>€\0\0\1\0\0\0")
IMAGE_SCAN("\2\0\0\0\377\377\377€\0\0\7ÀÀÀ\377\377\377ÀÀÀ€\0\0ÀÀÀ\377\377\377ÀÀÀ€\0\0\2\377\377\377\0\0\0")
IMAGE_SCAN("\17\0\0\0ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\377\377\377€\0\0\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("\5\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ…€\0\0\5ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("\6\0\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀƒ€\0\0\6ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("\17\0\0\0\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ€\0\0ÀÀÀ\377\377\377ÀÀÀ\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("<22>\0\0\0")
IMAGE_PACKED(TB_SAMESIZE, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_GRID)
IMAGE_SCAN("")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0Â\1\0\0\0")
IMAGE_PACKED(TB_GRID, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ALIGNHCENTER)
IMAGE_SCAN("Ç\1\0\0\0")
IMAGE_SCAN("Ç\1\0\0\0")
IMAGE_SCAN("Á\1€\0\0‡\0\0\0Â\1€\0\0")
IMAGE_SCAN("Á‚€\0\0Á\7\0\0\0\377\377\377ÀÀÀ\0\0\0ÀÀÀ\377\377\377\0\0\0Á€\0\0")
IMAGE_SCAN("„€\0\0\7\0\0\0ÀÀÀ\377\377\377\0\0\0\377\377\377ÀÀÀ\0\0\0„€\0\0")
IMAGE_SCAN("Á‚€\0\0Á\7\0\0\0\377\377\377ÀÀÀ\0\0\0ÀÀÀ\377\377\377\0\0\0Á€\0\0")
IMAGE_SCAN("Á\1€\0\0‡\0\0\0Â\1€\0\0")
IMAGE_SCAN("Ç\1\0\0\0")
IMAGE_SCAN("Ç\1\0\0\0")
IMAGE_SCAN("Â\1€\0\0Ã\0\0\0Ã\1€\0\0")
IMAGE_SCAN("‚€\0\0Á\5\0\0\0\377\377\377\0\0\0\377\377\377\0\0\0Á€\0\0")
IMAGE_SCAN("…€\0\0\5\0\0\0ÀÀÀ\0\0\0ÀÀÀ\0\0\0…€\0\0")
IMAGE_SCAN("‚€\0\0Á\5\0\0\0\377\377\377\0\0\0\377\377\377\0\0\0Á€\0\0")
IMAGE_SCAN("Â\1€\0\0Ã\0\0\0Ã\1€\0\0")
IMAGE_SCAN("Ç\1\0\0\0")
IMAGE_PACKED(TB_ALIGNHCENTER, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ALIGNVCENTER)
IMAGE_SCAN("Ä\1€\0\0Æ\1€\0\0")
IMAGE_SCAN("Ä\1€\0\0Ä…€\0\0")
IMAGE_SCAN("Â…€\0\0À\0\0")
IMAGE_SCAN("À\0\0Å\1€\0\0")
IMAGE_SCAN("Ä\1€\0\0Ä…\0\0\0")
IMAGE_SCAN("Ã\0\0\0Ã\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("Â\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0Â\5\0\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Á<>\0\0\0")
IMAGE_SCAN("Â\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0Â\5\0\0\0ÀÀÀ\377\377\377ÀÀÀ\0\0\0")
IMAGE_SCAN("Ã\0\0\0Ã\5\0\0\0\377\377\377ÀÀÀ\377\377\377\0\0\0")
IMAGE_SCAN("Ä\1€\0\0Ä…\0\0\0")
IMAGE_SCAN("À\0\0Å\1€\0\0")
IMAGE_SCAN("Â…€\0\0À\0\0")
IMAGE_SCAN("Ä\1€\0\0Ä…€\0\0")
IMAGE_SCAN("Ä\1€\0\0Æ\1€\0\0")
IMAGE_PACKED(TB_ALIGNVCENTER, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_MINHEIGHT)
IMAGE_SCAN("")
IMAGE_SCAN("Ç\1€\0\0")
IMAGE_SCAN("Ç\1€\0\0")
IMAGE_SCAN("Å…€\0\0")
IMAGE_SCAN("ƃ€\0\0")
IMAGE_SCAN("Ç\1€\0\0")
IMAGE_SCAN("Á<>\0\0\0")
IMAGE_SCAN("Á\1\0\0\0\0\0\377\1\0\0\0")
IMAGE_SCAN("Á<>\0\0\0")
IMAGE_SCAN("Ç\1€\0\0")
IMAGE_SCAN("ƃ€\0\0")
IMAGE_SCAN("Å…€\0\0")
IMAGE_SCAN("Ç\1€\0\0")
IMAGE_SCAN("Ç\1€\0\0")
IMAGE_PACKED(TB_MINHEIGHT, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_MINWIDTH)
IMAGE_SCAN("")
IMAGE_SCAN("ƃ\0\0\0")
IMAGE_SCAN("Æ\3\0\0\0\0\0\377\0\0\0")
IMAGE_SCAN("Æ\3\0\0\0\0\0\377\0\0\0")
IMAGE_SCAN("Æ\3\0\0\0\0\0\377\0\0\0")
IMAGE_SCAN("Ã\1€\0\0Â\3\0\0\0\0\0\377\0\0\0Â\1€\0\0")
IMAGE_SCAN("€\0\0Á\3\0\0\0\0\0\377\0\0\0Á€\0\0")
IMAGE_SCAN("Á…€\0\0\3\0\0\0\0\0\377\0\0\0…€\0\0")
IMAGE_SCAN("€\0\0Á\3\0\0\0\0\0\377\0\0\0Á€\0\0")
IMAGE_SCAN("Ã\1€\0\0Â\3\0\0\0\0\0\377\0\0\0Â\1€\0\0")
IMAGE_SCAN("Æ\3\0\0\0\0\0\377\0\0\0")
IMAGE_SCAN("Æ\3\0\0\0\0\0\377\0\0\0")
IMAGE_SCAN("Æ\3\0\0\0\0\0\377\0\0\0")
IMAGE_SCAN("ƃ\0\0\0")
IMAGE_PACKED(TB_MINWIDTH, "\2\20\0\0\0\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_ALIGNLBL)
IMAGE_SCAN("")
IMAGE_SCAN("Ì\1€\0\0")
IMAGE_SCAN("˃€\0\0")
IMAGE_SCAN("Ê…€\0\0")
IMAGE_SCAN("\1\0\0\0Â\0\0\0Â\1\0\0\0Ä\1€\0\0")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Á\1\0\0\0Á\1\0\0\0Ä\1€\0\0")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Á\1\0\0\0Á\1\0\0\0Ä\1€\0\0")
IMAGE_SCAN("\1\0\0\0Â\0\0\0Â\1\0\0\0Á†\377\0\0")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Á\1\0\0\0Á\1\0\0\0Ä\1€\0\0")
IMAGE_SCAN("\1\0\0\0Â\1\0\0\0Á\1\0\0\0Á\1\0\0\0Ä\1€\0\0")
IMAGE_SCAN("\0\0\0Á\0\0\0Â\0\0\0Ã\1€\0\0")
IMAGE_SCAN("Ê…€\0\0")
IMAGE_SCAN("˃€\0\0")
IMAGE_SCAN("Ì\1€\0\0")
IMAGE_PACKED(TB_ALIGNLBL, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGLEFT)
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("Ì\1\377\0\0")
IMAGE_SCAN("\1\377\0\0‡\0\0\0Â\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0…\377\377\377\1\0\0\0Áƒ\377\0\0")
IMAGE_SCAN("ƒ\377\0\0\1\0\0\0…\377\377\377\1\0\0\0\377\0\0Á\1\377\0\0Á\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0…\377\377\377\1\0\0\0Ã\377\0\0")
IMAGE_SCAN("\1\377\0\0‡\0\0\0Ä\1\377\0\0")
IMAGE_SCAN("Î\1\377\0\0")
IMAGE_PACKED(TB_SPRINGLEFT, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGHSIZE)
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("\1\377\0\0Š\0\0\0Â\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0ˆ\377\377\377\1\0\0\0Â\1\377\0\0")
IMAGE_SCAN("ƒ\377\0\0\1\0\0\0ˆ\377\377\377\1\0\0\0ƒ\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0ˆ\377\377\377\1\0\0\0Â\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Š\0\0\0Â\1\377\0\0")
IMAGE_PACKED(TB_SPRINGHSIZE, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGHCENTER)
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("Ã\1\377\0\0Ê\1\377\0\0")
IMAGE_SCAN("Ã\1\377\0\0Á†\0\0\0Ã\1\377\0\0")
IMAGE_SCAN("ƒ\377\0\0\1\0\0\0„\377\377\377\1\0\0\0ƒ\377\0\0")
IMAGE_SCAN("\1\377\0\0Á\1\377\0\0Á\2\377\0\0\0\0\0„\377\377\377\2\0\0\0\377\0\0Á\1\377\0\0Á\1\377\0\0")
IMAGE_SCAN("ƒ\377\0\0Â\1\0\0\0„\377\377\377\1\0\0\0ƒ\377\0\0")
IMAGE_SCAN("Á\1\377\0\0Æ\0\0\0Á\1\377\0\0")
IMAGE_SCAN("Á\1\377\0\0Ê\1\377\0\0")
IMAGE_PACKED(TB_SPRINGHCENTER, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGRIGHT)
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("")
IMAGE_SCAN("Ã\1\377\0\0")
IMAGE_SCAN("Ã\1\377\0\0‡\0\0\0Â\1\377\0\0")
IMAGE_SCAN("ƒ\377\0\0Á\1\0\0\0…\377\377\377\1\0\0\0Â\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Á\1\377\0\0Á\377\0\0\1\0\0\0…\377\377\377\1\0\0\0ƒ\377\0\0")
IMAGE_SCAN("ƒ\377\0\0Ã\1\0\0\0…\377\377\377\1\0\0\0Â\1\377\0\0")
IMAGE_SCAN("Á\1\377\0\0ć\0\0\0Â\1\377\0\0")
IMAGE_SCAN("Á\1\377\0\0")
IMAGE_PACKED(TB_SPRINGRIGHT, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGTOP)
IMAGE_SCAN("Å…\377\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Å…\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å…\0\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Ç‚\377\0\0")
IMAGE_SCAN("ȃ\377\0\0")
IMAGE_SCAN("ƃ\377\0\0")
IMAGE_SCAN("ă\377\0\0")
IMAGE_SCAN("Æ‚\377\0\0")
IMAGE_PACKED(TB_SPRINGTOP, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGVSIZE)
IMAGE_SCAN("Å…\377\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Å…\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å…\0\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Å…\377\0\0")
IMAGE_PACKED(TB_SPRINGVSIZE, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGVCENTER)
IMAGE_SCAN("Æ‚\377\0\0")
IMAGE_SCAN("ă\377\0\0")
IMAGE_SCAN("ƃ\377\0\0")
IMAGE_SCAN("ȃ\377\0\0")
IMAGE_SCAN("Ç‚\377\0\0")
IMAGE_SCAN("Å…\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å…\0\0\0")
IMAGE_SCAN("Æ‚\377\0\0")
IMAGE_SCAN("ă\377\0\0")
IMAGE_SCAN("ƃ\377\0\0")
IMAGE_SCAN("ȃ\377\0\0")
IMAGE_SCAN("Ç‚\377\0\0")
IMAGE_PACKED(TB_SPRINGVCENTER, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGBOTTOM)
IMAGE_SCAN("Æ‚\377\0\0")
IMAGE_SCAN("ă\377\0\0")
IMAGE_SCAN("ƃ\377\0\0")
IMAGE_SCAN("ȃ\377\0\0")
IMAGE_SCAN("Ç‚\377\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Å…\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å\1\0\0\0ƒ\377\377\377\1\0\0\0")
IMAGE_SCAN("Å…\0\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Ç\1\377\0\0")
IMAGE_SCAN("Å…\377\0\0")
IMAGE_PACKED(TB_SPRINGBOTTOM, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGTOPLEFT)
IMAGE_SCAN("Ä…\377\0\0")
IMAGE_SCAN("Æ\1\377\0\0")
IMAGE_SCAN("Æ\1\377\0\0")
IMAGE_SCAN("Ç\0\0\0Â\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0…\377\377\377\1\0\0\0Â\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0…\377\377\377\1\0\0\0Áƒ\377\0\0")
IMAGE_SCAN("ƒ\377\0\0\1\0\0\0…\377\377\377\1\0\0\0\377\0\0Á\1\377\0\0Á\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0…\377\377\377\1\0\0\0Ã\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0…\377\377\377\1\0\0\0Ä\1\377\0\0")
IMAGE_SCAN("Ç\0\0\0Ä\1\377\0\0")
IMAGE_SCAN("Æ\1\377\0\0")
IMAGE_SCAN("Æ‚\377\0\0")
IMAGE_SCAN("ǃ\377\0\0")
IMAGE_SCAN("Ń\377\0\0")
IMAGE_SCAN("Ã\377\0\0")
IMAGE_SCAN("Å‚\377\0\0")
IMAGE_PACKED(TB_SPRINGTOPLEFT, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")
IMAGE_BEGIN(TB_SPRINGAUTO)
IMAGE_SCAN("Ã…\377\0\0")
IMAGE_SCAN("Å\1\377\0\0")
IMAGE_SCAN("Å\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â…\0\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0ƒ\377\377\377\1\0\0\0Â\1\377\0\0Ã\1\377\0\0")
IMAGE_SCAN("ƒ\377\0\0\1\0\0\0ƒ\377\377\377\1\0\0\0\377\0\0Á\1\377\0\0Á\1\377\0\0Á\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â\1\0\0\0ƒ\377\377\377\1\0\0\0Ä\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Â…\0\0\0")
IMAGE_SCAN("È…\0\0\0Â\1\377\0\0")
IMAGE_SCAN("Á\1\377\0\0Ã\1\377\0\0Â\1\0\0\0ƒ\377\377\377\1\0\0\0Â\1\377\0\0")
IMAGE_SCAN("\1\377\0\0Á\1\377\0\0Á\1\377\0\0Á\377\0\0\1\0\0\0ƒ\377\377\377\1\0\0\0ƒ\377\0\0")
IMAGE_SCAN("Ã\1\377\0\0Ä\1\0\0\0ƒ\377\377\377\1\0\0\0Â\1\377\0\0")
IMAGE_SCAN("È…\0\0\0Â\1\377\0\0")
IMAGE_SCAN("Ê\1\377\0\0")
IMAGE_SCAN("Ê\1\377\0\0")
IMAGE_SCAN("È…\377\0\0")
IMAGE_PACKED(TB_SPRINGAUTO, "\2\20\0\0\0\20\0\0\0\377\377\377\377\0\0\0\0\0\0\0\0")

1
uppsrc2/rw/rw.rc Normal file
View file

@ -0,0 +1 @@
5555 ICON "rw.ico"

27
uppsrc2/rw/rw.upp Normal file
View file

@ -0,0 +1,27 @@
acceptflags
IDERW;
uses
CtrlLib;
file
Designer.h,
Designer.lay,
Designer.cpp,
DesignerFile.cpp,
DesignerLayt.cpp,
DesignerWin.cpp,
iderw.h,
Alias.cpp,
ItemCtrl.cpp,
Lang.cpp,
StdCtrls.cpp,
Util.cpp,
rw.iml,
rw.rc,
Info readonly separator,
Copying;
mainconfig
"" = "";