2009-06-10 19:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/dos/global.cf
! Fixed to use xcopy instead of copy to 'install' files.
This means long filenames (and also casing) will be retained.
This also means that now 'install' actually works.
It may also mean that creating a DJGPP build isn't anymore
possible on a pure DOS system, I can't remember when xcopy
was introduced. Anyway I think it's better to have this
requirement than not having a proper DOS build at all
(since long years).
This also means that our DOS release cannot even be *used*
in pure DOS environment, since our long filenames will
be chopped when extracting the distro .zip. Only final
.exes are able to run under DOS.
We still have the option to implement full short name
support, but I'm not sure this has any importance anymore.
If we don't want to do this, we can finally lift some
restrictions which tied our hands so far, based on the
fact that DOS builds cannot even be created and run on
real DOS. So, this means:
- We may use long filenames as distro name.
- We may convert DOS platform as a target only platform,
similar to WinCE/ARM.
- If we do the above, we may even embed our DOS
libs in Windows distro, and build DOS apps using
hbmk2 hello.prg -arch=dos
- We may use long filename anywhere in our tree.
(but we must check first if long names are also
supported for headers, dirnames and source names)
If you have an opinion, please tell.
* config/dos/global.cf
! Adding ending pathsep to DOC_SUBDIR to make xcopy happy
and not ask if the target is a file or directory.
; TOFIX: Anyhow, DOC_SUBDIR feature simply doesn't work since
very long, so we should do something about it in the future.
* debian/changelog
+ Added new version entry. (Thanks Guy)
* bin/postinst.bat
! Added workaround to make it work under DOS.
(avoiding 'Out of environment space' error)
+ mpkg_dos.bat
+ Added DOS package generator batch. Very similar
to mpkg_win.bat, maybe we should merge them in
the future.
* mpkg_win.bat
* Using short name for main dir, just to sync it with
DOS version.
* utils/hbformat/hbformat.prg
+ Changed default GT to GTCGI.
* utils/hbmk2/hbmk2.prg
! Added workaround for dos/djgpp anomaly in hb_DirBase()
(and also hb_ProgName()) where path contains forward
slashed instead of backslashes.
; TOFIX: In core.
* source/vm/Makefile
! Disabled hbvmall for dos build because of thid djgpp error:
---
gcc -I. -I../../../../include -Wall -W -O3 -c ../../hvmall.c -ohvmall.o
In file included from ../../../../include/hbmath.h:60,
from ../../itemapi.c:97,
from ../../hvmall.c:67:
c:/devl/djgpp/include/libm/math.h:97: error: redefinition of 'struct exception'
---
* contrib/hbblat/hbblat.hbc
* contrib/hbhpdf/hbhpdf.hbc
* Minor formatting.
This commit is contained in:
@@ -17,11 +17,87 @@
|
||||
past entries belonging to author(s): Viktor Szakats.
|
||||
*/
|
||||
|
||||
2009-06-10 19:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* config/dos/global.cf
|
||||
! Fixed to use xcopy instead of copy to 'install' files.
|
||||
This means long filenames (and also casing) will be retained.
|
||||
This also means that now 'install' actually works.
|
||||
It may also mean that creating a DJGPP build isn't anymore
|
||||
possible on a pure DOS system, I can't remember when xcopy
|
||||
was introduced. Anyway I think it's better to have this
|
||||
requirement than not having a proper DOS build at all
|
||||
(since long years).
|
||||
This also means that our DOS release cannot even be *used*
|
||||
in pure DOS environment, since our long filenames will
|
||||
be chopped when extracting the distro .zip. Only final
|
||||
.exes are able to run under DOS.
|
||||
We still have the option to implement full short name
|
||||
support, but I'm not sure this has any importance anymore.
|
||||
If we don't want to do this, we can finally lift some
|
||||
restrictions which tied our hands so far, based on the
|
||||
fact that DOS builds cannot even be created and run on
|
||||
real DOS. So, this means:
|
||||
- We may use long filenames as distro name.
|
||||
- We may convert DOS platform as a target only platform,
|
||||
similar to WinCE/ARM.
|
||||
- If we do the above, we may even embed our DOS
|
||||
libs in Windows distro, and build DOS apps using
|
||||
hbmk2 hello.prg -arch=dos
|
||||
- We may use long filename anywhere in our tree.
|
||||
(but we must check first if long names are also
|
||||
supported for headers, dirnames and source names)
|
||||
If you have an opinion, please tell.
|
||||
|
||||
* config/dos/global.cf
|
||||
! Adding ending pathsep to DOC_SUBDIR to make xcopy happy
|
||||
and not ask if the target is a file or directory.
|
||||
; TOFIX: Anyhow, DOC_SUBDIR feature simply doesn't work since
|
||||
very long, so we should do something about it in the future.
|
||||
|
||||
* debian/changelog
|
||||
+ Added new version entry. (Thanks Guy)
|
||||
|
||||
* bin/postinst.bat
|
||||
! Added workaround to make it work under DOS.
|
||||
(avoiding 'Out of environment space' error)
|
||||
|
||||
+ mpkg_dos.bat
|
||||
+ Added DOS package generator batch. Very similar
|
||||
to mpkg_win.bat, maybe we should merge them in
|
||||
the future.
|
||||
|
||||
* mpkg_win.bat
|
||||
* Using short name for main dir, just to sync it with
|
||||
DOS version.
|
||||
|
||||
* utils/hbformat/hbformat.prg
|
||||
+ Changed default GT to GTCGI.
|
||||
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
! Added workaround for dos/djgpp anomaly in hb_DirBase()
|
||||
(and also hb_ProgName()) where path contains forward
|
||||
slashed instead of backslashes.
|
||||
; TOFIX: In core.
|
||||
|
||||
* source/vm/Makefile
|
||||
! Disabled hbvmall for dos build because of thid djgpp error:
|
||||
---
|
||||
gcc -I. -I../../../../include -Wall -W -O3 -c ../../hvmall.c -ohvmall.o
|
||||
In file included from ../../../../include/hbmath.h:60,
|
||||
from ../../itemapi.c:97,
|
||||
from ../../hvmall.c:67:
|
||||
c:/devl/djgpp/include/libm/math.h:97: error: redefinition of 'struct exception'
|
||||
---
|
||||
|
||||
* contrib/hbblat/hbblat.hbc
|
||||
* contrib/hbhpdf/hbhpdf.hbc
|
||||
* Minor formatting.
|
||||
|
||||
2009-06-10 13:19 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
+ examples/hbmsql/tests/hbmk.hbm
|
||||
- examples/hbmsql/tests/hbmsql.hbc
|
||||
+ examples/hbmsql/hbmsql.hbc
|
||||
* hbmk2 make file rearrangement continued.
|
||||
+ examples/hbmsql/tests/hbmk.hbm
|
||||
- examples/hbmsql/tests/hbmsql.hbc
|
||||
+ examples/hbmsql/hbmsql.hbc
|
||||
* hbmk2 make file rearrangement continued.
|
||||
|
||||
2009-06-10 13:17 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
|
||||
+ contrib/gtalleg/tests/hbmk.hbm
|
||||
|
||||
@@ -13,13 +13,11 @@ rem
|
||||
rem See COPYING for licensing terms.
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
set _HBMK_CFG=%HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo Generating %_HBMK_CFG%...
|
||||
echo # Harbour Make configuration> %_HBMK_CFG%
|
||||
echo # Generated by Harbour build process>> %_HBMK_CFG%
|
||||
echo arch=%HB_ARCHITECTURE%>> %_HBMK_CFG%
|
||||
echo comp=%HB_COMPILER%>> %_HBMK_CFG%
|
||||
set _HBMK_CFG=
|
||||
echo Generating %HB_BIN_INSTALL%\hbmk.cfg...
|
||||
echo # Harbour Make configuration> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo # Generated by Harbour build process>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo arch=%HB_ARCHITECTURE%>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
echo comp=%HB_COMPILER%>> %HB_BIN_INSTALL%\hbmk.cfg
|
||||
|
||||
goto inst_%HB_ARCHITECTURE%
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ install::
|
||||
|
||||
else
|
||||
INSTALL_OBJS = $(DOC_FILES)
|
||||
INSTALL_DIR = $(HB_DOC_INSTALL)$(DOC_SUBDIR)
|
||||
INSTALL_DIR = $(HB_DOC_INSTALL)$(DOC_SUBDIR)/
|
||||
|
||||
include $(TOP)$(ROOT)config/install.cf
|
||||
endif
|
||||
|
||||
@@ -49,7 +49,7 @@ endif
|
||||
|
||||
RM = del
|
||||
RD = rmdir
|
||||
CP = $(COMSPEC) /Ccopy
|
||||
CP = $(COMSPEC) /Cxcopy /D
|
||||
MV = move
|
||||
MD = md
|
||||
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
# $Id$
|
||||
#
|
||||
|
||||
libs=hbblat blat
|
||||
libs=hbblat
|
||||
libs=blat
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
# $Id$
|
||||
#
|
||||
|
||||
libs=hbhpdf libhpdf libpng
|
||||
libs=hbhpdf
|
||||
libs=libhpdf libpng
|
||||
|
||||
@@ -1,3 +1,9 @@
|
||||
harbour (2.0.0beta1-1) unstable; urgency=low
|
||||
|
||||
* 2.0.0beta1-1
|
||||
|
||||
-- Viktor Szakats <harbour___@syenar.hu> Wed, 10 Jun 2009 16:40:15 +0200
|
||||
|
||||
harbour (1.0.1-1) unstable; urgency=low
|
||||
|
||||
* Please see doc/whatsnew.txt
|
||||
@@ -24,4 +30,3 @@ harbour (0.44-1) unstable; urgency=low
|
||||
* Initial Release (closes: Bug#251486).
|
||||
|
||||
-- Luis Mayoral <mayoral@linuxadicto.org> Sun, 05 Sep 2004 14:33:19 +0200
|
||||
|
||||
|
||||
73
harbour/mpkg_dos.bat
Normal file
73
harbour/mpkg_dos.bat
Normal file
@@ -0,0 +1,73 @@
|
||||
@rem
|
||||
@rem $Id$
|
||||
@rem
|
||||
|
||||
@echo off
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem Installer creator for Harbour Project
|
||||
rem
|
||||
rem Copyright 2009 Viktor Szakats (harbour.01 syenar.hu)
|
||||
rem See COPYING for licensing terms.
|
||||
rem
|
||||
rem This script requires:
|
||||
rem - Windows NT or upper
|
||||
rem - Info-ZIP zip.exe in PATH
|
||||
rem https://sourceforge.net/project/showfiles.php?group_id=118012
|
||||
rem - HB_COMPILER envvar configured (see INSTALL doc)
|
||||
rem - C compiler and GNU Make configured (see INSTALL doc)
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto END
|
||||
|
||||
setlocal
|
||||
|
||||
rem ; Basic setup
|
||||
set HB_VERSION=200
|
||||
if "%HB_ARCHITECTURE%" == "" set HB_ARCHITECTURE=dos
|
||||
set HB_PKGNAME=hb%HB_VERSION%
|
||||
set HB_DIRNAME=%HB_PKGNAME%
|
||||
|
||||
rem ; Dir setup
|
||||
set HB_INSTALL_BASE=%~dp0_hb_inst
|
||||
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\%HB_DIRNAME%
|
||||
set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
set HB_DOC_INSTALL=%HB_INSTALL_PREFIX%\doc
|
||||
|
||||
rem ; Pre-build cleanup
|
||||
if exist %HB_INSTALL_PREFIX% rmdir /q /s %HB_INSTALL_PREFIX%
|
||||
|
||||
rem ; Option setup
|
||||
set HB_BUILD_OPTIM=yes
|
||||
set HB_BUILD_DEBUG=no
|
||||
|
||||
rem ; Build Harbour
|
||||
call make_gnu.bat clean install
|
||||
|
||||
rem if errorlevel 1 goto MK_ERROR
|
||||
|
||||
rem ; Post-build installation
|
||||
xcopy /D /Y ChangeLog* "%HB_INSTALL_PREFIX%\"
|
||||
xcopy /D /Y COPYING "%HB_INSTALL_PREFIX%\"
|
||||
xcopy /D /Y ERRATA "%HB_INSTALL_PREFIX%\"
|
||||
xcopy /D /Y INSTALL "%HB_INSTALL_PREFIX%\"
|
||||
xcopy /D /Y TODO "%HB_INSTALL_PREFIX%\"
|
||||
|
||||
rem ; Build .zip package
|
||||
if exist %HB_PKGNAME%.zip del %HB_PKGNAME%.zip
|
||||
pushd
|
||||
cd %HB_INSTALL_BASE%
|
||||
zip -9 -X -r -o %~dp0%HB_PKGNAME%.zip . -i %HB_DIRNAME%\*
|
||||
popd
|
||||
|
||||
:MK_ERROR
|
||||
|
||||
rem ; Cleanup
|
||||
if "%1" == "--deltemp" rmdir /q /s %HB_INSTALL_PREFIX%
|
||||
if "%1" == "--deltemp" rmdir /q %HB_INSTALL_BASE%
|
||||
|
||||
endlocal
|
||||
|
||||
:END
|
||||
@@ -33,7 +33,7 @@ set HB_PKGNAME=harbour-%HB_VERSION%-%HB_ARCHITECTURE%-%HB_COMPILER%
|
||||
set HB_DIRNAME=harbour-%HB_ARCHITECTURE%-%HB_COMPILER%
|
||||
|
||||
rem ; Dir setup
|
||||
set HB_INSTALL_BASE=%~dp0_hb_install_temp
|
||||
set HB_INSTALL_BASE=%~dp0_hb_inst
|
||||
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\%HB_DIRNAME%
|
||||
set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
@@ -30,6 +30,9 @@ endif
|
||||
ifeq ($(HB_COMPILER),dmc)
|
||||
HB_HVM_ALL = no
|
||||
endif
|
||||
ifeq ($(HB_ARCHITECTURE),dos)
|
||||
HB_HVM_ALL = no
|
||||
endif
|
||||
export HB_HVM_ALL
|
||||
endif
|
||||
|
||||
|
||||
@@ -58,6 +58,9 @@
|
||||
|
||||
#ifndef _CODEFORMAT_EMBEDDED_
|
||||
|
||||
ANNOUNCE HB_GTSYS
|
||||
REQUEST HB_GT_CGI_DEFAULT
|
||||
|
||||
MEMVAR cFunctions
|
||||
|
||||
FUNCTION MAIN( ... )
|
||||
|
||||
@@ -103,7 +103,6 @@
|
||||
#pragma linenumber=on
|
||||
|
||||
ANNOUNCE HB_GTSYS
|
||||
|
||||
REQUEST HB_GT_CGI_DEFAULT
|
||||
|
||||
/* Include these for -pause support. */
|
||||
@@ -188,6 +187,13 @@ REQUEST hbmk_KEYW
|
||||
#define HB_ISFIRSTIDCHAR( c ) ( HB_ISALPHA( c ) .OR. ( c ) == '_' )
|
||||
#define HB_ISNEXTIDCHAR( c ) ( HB_ISFIRSTIDCHAR(c) .OR. IsDigit( c ) )
|
||||
|
||||
/* Workaround for dos/djgpp bug */
|
||||
#if defined( __PLATFORM__DOS )
|
||||
#define HB_DIRBASE() StrTran( hb_DirBase(), "/", "\" )
|
||||
#else
|
||||
#define HB_DIRBASE() hb_DirBase()
|
||||
#endif
|
||||
|
||||
/* This requires Set( _SET_EXACT, .F. ) */
|
||||
#define LEFTEQUAL( l, r ) ( l = r )
|
||||
|
||||
@@ -975,10 +981,10 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
IF hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C
|
||||
|
||||
/* Detect system locations to enable shared library option by default */
|
||||
lSysLoc := hb_DirBase() == "/usr/local/bin/" .OR. ;
|
||||
hb_DirBase() == "/usr/bin/" .OR. ;
|
||||
hb_DirBase() == "/opt/harbour/" .OR. ;
|
||||
hb_DirBase() == "/opt/bin/"
|
||||
lSysLoc := HB_DIRBASE() == "/usr/local/bin/" .OR. ;
|
||||
HB_DIRBASE() == "/usr/bin/" .OR. ;
|
||||
HB_DIRBASE() == "/opt/harbour/" .OR. ;
|
||||
HB_DIRBASE() == "/opt/bin/"
|
||||
|
||||
s_cHB_BIN_INSTALL := PathSepToSelf( GetEnv( "HB_BIN_INSTALL" ) )
|
||||
s_cHB_LIB_INSTALL := PathSepToSelf( GetEnv( "HB_LIB_INSTALL" ) )
|
||||
@@ -987,14 +993,14 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
|
||||
s_cHB_INSTALL_PREFIX := PathSepToSelf( GetEnv( "HB_INSTALL_PREFIX" ) )
|
||||
IF Empty( s_cHB_INSTALL_PREFIX )
|
||||
DO CASE
|
||||
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + cBin_CompPRG + cBinExt )
|
||||
s_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".."
|
||||
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
|
||||
s_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() )
|
||||
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
|
||||
s_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".."
|
||||
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
|
||||
s_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".."
|
||||
CASE hb_FileExists( DirAddPathSep( HB_DIRBASE() ) + cBin_CompPRG + cBinExt )
|
||||
s_cHB_INSTALL_PREFIX := DirAddPathSep( HB_DIRBASE() ) + ".."
|
||||
CASE hb_FileExists( DirAddPathSep( HB_DIRBASE() ) + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
|
||||
s_cHB_INSTALL_PREFIX := DirAddPathSep( HB_DIRBASE() )
|
||||
CASE hb_FileExists( DirAddPathSep( HB_DIRBASE() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
|
||||
s_cHB_INSTALL_PREFIX := DirAddPathSep( HB_DIRBASE() ) + ".." + hb_osPathSeparator() + ".."
|
||||
CASE hb_FileExists( DirAddPathSep( HB_DIRBASE() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
|
||||
s_cHB_INSTALL_PREFIX := DirAddPathSep( HB_DIRBASE() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".."
|
||||
OTHERWISE
|
||||
hbmk_OutErr( hbmk, I_( "Error: HB_INSTALL_PREFIX not set, failed to autodetect." ) )
|
||||
RETURN 3
|
||||
@@ -4202,8 +4208,8 @@ STATIC FUNCTION FindInPath( cFileName )
|
||||
ENDIF
|
||||
|
||||
/* Check in the dir of this executable. */
|
||||
IF ! Empty( hb_DirBase() )
|
||||
IF hb_FileExists( cFileName := hb_FNameMerge( hb_DirBase(), cName, cExt ) )
|
||||
IF ! Empty( HB_DIRBASE() )
|
||||
IF hb_FileExists( cFileName := hb_FNameMerge( HB_DIRBASE(), cName, cExt ) )
|
||||
RETURN cFileName
|
||||
ENDIF
|
||||
ENDIF
|
||||
@@ -4662,11 +4668,11 @@ STATIC PROCEDURE HBC_ProcessAll( hbmk, lConfigOnly )
|
||||
#if defined( __PLATFORM__UNIX )
|
||||
aCFGDirs := { GetEnv( "HOME" ) + "/.harbour/",;
|
||||
"/etc/harbour",;
|
||||
DirAddPathSep( hb_DirBase() ) + "../etc/harbour",;
|
||||
DirAddPathSep( hb_DirBase() ) + "../etc",;
|
||||
hb_DirBase() }
|
||||
DirAddPathSep( HB_DIRBASE() ) + "../etc/harbour",;
|
||||
DirAddPathSep( HB_DIRBASE() ) + "../etc",;
|
||||
HB_DIRBASE() }
|
||||
#else
|
||||
aCFGDirs := { hb_DirBase() }
|
||||
aCFGDirs := { HB_DIRBASE() }
|
||||
#endif
|
||||
|
||||
FOR EACH cDir IN aCFGDirs
|
||||
@@ -5133,7 +5139,7 @@ STATIC FUNCTION MacroProc( hbmk, cString, cDirParent )
|
||||
|
||||
DO CASE
|
||||
CASE cMacro == "HB_ROOT"
|
||||
cMacro := PathSepToSelf( DirAddPathSep( hb_DirBase() ) )
|
||||
cMacro := PathSepToSelf( DirAddPathSep( HB_DIRBASE() ) )
|
||||
CASE cMacro == "HB_SELF"
|
||||
IF Empty( cDirParent )
|
||||
cMacro := ""
|
||||
@@ -6036,7 +6042,7 @@ STATIC PROCEDURE SetUILang( hbmk )
|
||||
hb_i18n_set( NIL )
|
||||
ELSE
|
||||
tmp := "${hb_root}hbmk2.${lng}.hbl"
|
||||
tmp := StrTran( tmp, "${hb_root}", PathSepToSelf( DirAddPathSep( hb_DirBase() ) ) )
|
||||
tmp := StrTran( tmp, "${hb_root}", PathSepToSelf( DirAddPathSep( HB_DIRBASE() ) ) )
|
||||
tmp := StrTran( tmp, "${lng}", StrTran( hbmk[ _HBMK_cUILNG ], "-", "_" ) )
|
||||
hb_i18n_set( iif( hb_i18n_check( tmp := hb_MemoRead( tmp ) ), hb_i18n_restoretable( tmp ), NIL ) )
|
||||
ENDIF
|
||||
|
||||
Reference in New Issue
Block a user