Kaydet (Commit) fecde943 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

Undo basis/brand split: moved Python from basis to brand.

The Windows-only code in pyuno/zipcore/python.cxx may still need fixing.
üst cf33eb5f
...@@ -90,5 +90,5 @@ ALLTAR : $(MISC)/pythonloader.component ...@@ -90,5 +90,5 @@ ALLTAR : $(MISC)/pythonloader.component
$(MISC)/pythonloader.component .ERRREMOVE : \ $(MISC)/pythonloader.component .ERRREMOVE : \
$(SOLARENV)/bin/createcomponent.xslt pythonloader.component $(SOLARENV)/bin/createcomponent.xslt pythonloader.component
$(XSLTPROC) --nonet --stringparam uri \ $(XSLTPROC) --nonet --stringparam uri \
'vnd.sun.star.expand:$$OOO_BASE_DIR/program/$(SHL1TARGETN:f)' -o $@ \ 'vnd.sun.star.expand:$$BRAND_BASE_DIR/program/$(SHL1TARGETN:f)' \
$(SOLARENV)/bin/createcomponent.xslt pythonloader.component -o $@ $(SOLARENV)/bin/createcomponent.xslt pythonloader.component
...@@ -181,7 +181,7 @@ Reference< XInterface > CreateInstance( const Reference< XComponentContext > & c ...@@ -181,7 +181,7 @@ Reference< XInterface > CreateInstance( const Reference< XComponentContext > & c
{ {
OUString pythonPath; OUString pythonPath;
OUString pythonHome; OUString pythonHome;
OUString path( RTL_CONSTASCII_USTRINGPARAM( "$OOO_BASE_DIR/program/" SAL_CONFIGFILE("pythonloader.uno" ))); OUString path( RTL_CONSTASCII_USTRINGPARAM( "$BRAND_BASE_DIR/program/" SAL_CONFIGFILE("pythonloader.uno" )));
rtl::Bootstrap::expandMacros(path); //TODO: detect failure rtl::Bootstrap::expandMacros(path); //TODO: detect failure
rtl::Bootstrap bootstrap(path); rtl::Bootstrap bootstrap(path);
......
...@@ -103,31 +103,20 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) { ...@@ -103,31 +103,20 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) {
wchar_t * bootstrapEnd = tools::buildPath( wchar_t * bootstrapEnd = tools::buildPath(
bootstrap + MY_LENGTH(L"vnd.sun.star.pathname:"), path, pathEnd, bootstrap + MY_LENGTH(L"vnd.sun.star.pathname:"), path, pathEnd,
MY_STRING(L"fundamental.ini")); MY_STRING(L"fundamental.ini"));
if (bootstrapEnd == NULL || if (bootstrapEnd == NULL) {
(tools::buildPath(path, path, pathEnd, MY_STRING(L"..\\basis-link"))
== NULL))
{
exit(EXIT_FAILURE);
}
pathEnd = tools::resolveLink(path);
wchar_t path1[MAX_PATH];
wchar_t * path1End = tools::buildPath(
path1, path, pathEnd, MY_STRING(L"\\program"));
if (path1End == NULL) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
wchar_t pythonpath2[MAX_PATH]; wchar_t pythonpath2[MAX_PATH];
wchar_t * pythonpath2End = tools::buildPath( wchar_t * pythonpath2End = tools::buildPath(
pythonpath2, path, pathEnd, pythonpath2, path, pathEnd,
MY_STRING(L"\\program\\python-core-" MY_PYVERSION L"\\lib")); MY_STRING(L"\\python-core-" MY_PYVERSION L"\\lib"));
if (pythonpath2End == NULL) { if (pythonpath2End == NULL) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
wchar_t pythonpath3[MAX_PATH]; wchar_t pythonpath3[MAX_PATH];
wchar_t * pythonpath3End = tools::buildPath( wchar_t * pythonpath3End = tools::buildPath(
pythonpath3, path, pathEnd, pythonpath3, path, pathEnd,
MY_STRING( MY_STRING(L"\\python-core-" MY_PYVERSION L"\\lib\\site-packages"));
L"\\program\\python-core-" MY_PYVERSION L"\\lib\\site-packages"));
if (pythonpath3End == NULL) { if (pythonpath3End == NULL) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -135,22 +124,14 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) { ...@@ -135,22 +124,14 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) {
wchar_t pythonpath4[MAX_PATH]; wchar_t pythonpath4[MAX_PATH];
wchar_t * pythonpath4End = tools::buildPath( wchar_t * pythonpath4End = tools::buildPath(
pythonpath4, path, pathEnd, pythonpath4, path, pathEnd,
MY_STRING(L"\\program\\python-core-" MY_PYVERSION L"\\lib\\lib-dynload")); MY_STRING(L"\\python-core-" MY_PYVERSION L"\\lib\\lib-dynload"));
if (pythonpath4End == NULL) { if (pythonpath4End == NULL) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
wchar_t pythonpath5[MAX_PATH];
wchar_t * pythonpath5End = tools::buildPath(
pythonpath5, path, pathEnd,
MY_STRING(L"\\program\\python-core-" MY_PYVERSION L"\\lib\\lib-dynload"));
if (pythonpath5End == NULL) {
exit(EXIT_FAILURE);
}
#endif #endif
wchar_t pythonhome[MAX_PATH]; wchar_t pythonhome[MAX_PATH];
wchar_t * pythonhomeEnd = tools::buildPath( wchar_t * pythonhomeEnd = tools::buildPath(
pythonhome, path, pathEnd, pythonhome, path, pathEnd, MY_STRING(L"\\python-core-" MY_PYVERSION));
MY_STRING(L"\\program\\python-core-" MY_PYVERSION));
if (pythonhomeEnd == NULL) { if (pythonhomeEnd == NULL) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -158,25 +139,34 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) { ...@@ -158,25 +139,34 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) {
wchar_t * pythonexeEnd = tools::buildPath( wchar_t * pythonexeEnd = tools::buildPath(
pythonexe, path, pathEnd, pythonexe, path, pathEnd,
#ifdef __MINGW32__ #ifdef __MINGW32__
MY_STRING( MY_STRING(L"\\python-core-" MY_PYVERSION L"\\bin\\python.bin"));
L"\\program\\python-core-" MY_PYVERSION L"\\bin\\python.bin"));
#else #else
MY_STRING( MY_STRING(L"\\python-core-" MY_PYVERSION L"\\bin\\python.exe"));
L"\\program\\python-core-" MY_PYVERSION L"\\bin\\python.exe"));
#endif #endif
if (pythonexeEnd == NULL) { if (pythonexeEnd == NULL) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (tools::buildPath(path, path, pathEnd, MY_STRING(L"\\ure-link")) == NULL) wchar_t urepath[MAX_PATH];
if (tools::buildPath(urepath, path, pathEnd, MY_STRING(L"..\\basis-link"))
== NULL)
{
exit(EXIT_FAILURE);
}
wchar_t * urepathEnd = urepathEnd = tools::resolveLink(urepath);
if (urepathEnd == NULL ||
(tools::buildPath(
urepath, urepath, urepathEnd, MY_STRING(L"\\ure-link"))
== NULL))
{ {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
pathEnd = tools::resolveLink(path); urepathEnd = tools::resolveLink(urepath);
if (pathEnd == NULL) { if (urepathEnd == NULL) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
pathEnd = tools::buildPath(path, path, pathEnd, MY_STRING(L"\\bin")); urepathEnd = tools::buildPath(
if (pathEnd == NULL) { urepath, urepath, urepathEnd, MY_STRING(L"\\bin"));
if (urepathEnd == NULL) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
std::size_t clSize = MY_LENGTH(L"\"") + 4 * (pythonexeEnd - pythonexe) + std::size_t clSize = MY_LENGTH(L"\"") + 4 * (pythonexeEnd - pythonexe) +
...@@ -226,9 +216,9 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) { ...@@ -226,9 +216,9 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) {
} }
} }
wchar_t * value = new wchar_t[ wchar_t * value = new wchar_t[
(pathEnd - path) + MY_LENGTH(L";") + (path1End - path1) + (urepathEnd - urepath) + MY_LENGTH(L";") + (pathEnd - path) +
(n == 0 ? 0 : MY_LENGTH(L";") + (n - 1)) + 1]; //TODO: overflow (n == 0 ? 0 : MY_LENGTH(L";") + (n - 1)) + 1]; //TODO: overflow
wsprintfW(value, L"%s;%s%s%s", path, path1, n == 0 ? L"" : L";", orig); wsprintfW(value, L"%s;%s%s%s", urepath, path, n == 0 ? L"" : L";", orig);
if (!SetEnvironmentVariableW(L"PATH", value)) { if (!SetEnvironmentVariableW(L"PATH", value)) {
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
...@@ -252,22 +242,20 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) { ...@@ -252,22 +242,20 @@ int wmain(int argc, wchar_t ** argv, wchar_t **) {
} }
#ifdef __MINGW32__ #ifdef __MINGW32__
value = new wchar_t[ value = new wchar_t[
(path1End - path1) + MY_LENGTH(L";") + (pythonpath2End - pythonpath2) + (pathEnd - path) + MY_LENGTH(L";") + (pythonpath2End - pythonpath2) +
MY_LENGTH(L";") + (pythonpath4End - pythonpath4) + MY_LENGTH(L";") + (pythonpath4End - pythonpath4) +
MY_LENGTH(L";") + (pythonpath5End - pythonpath5) +
MY_LENGTH(L";") + (pythonpath3End - pythonpath3) + MY_LENGTH(L";") + (pythonpath3End - pythonpath3) +
(n == 0 ? 0 : MY_LENGTH(L";") + (n - 1)) + 1]; //TODO: overflow (n == 0 ? 0 : MY_LENGTH(L";") + (n - 1)) + 1]; //TODO: overflow
wsprintfW( wsprintfW(
value, L"%s;%s;%s;%s;%s%s%s", path1, pythonpath2, pythonpath4, value, L"%s;%s;%s;%s%s%s", path, pythonpath2, pythonpath4, pythonpath3,
pythonpath5, pythonpath3,
n == 0 ? L"" : L";", orig); n == 0 ? L"" : L";", orig);
#else #else
value = new wchar_t[ value = new wchar_t[
(path1End - path1) + MY_LENGTH(L";") + (pythonpath2End - pythonpath2) + (pathEnd - path) + MY_LENGTH(L";") + (pythonpath2End - pythonpath2) +
MY_LENGTH(L";") + (pythonpath3End - pythonpath3) + MY_LENGTH(L";") + (pythonpath3End - pythonpath3) +
(n == 0 ? 0 : MY_LENGTH(L";") + (n - 1)) + 1]; //TODO: overflow (n == 0 ? 0 : MY_LENGTH(L";") + (n - 1)) + 1]; //TODO: overflow
wsprintfW( wsprintfW(
value, L"%s;%s;%s%s%s", path1, pythonpath2, pythonpath3, value, L"%s;%s;%s%s%s", path, pythonpath2, pythonpath3,
n == 0 ? L"" : L";", orig); n == 0 ? L"" : L";", orig);
#endif #endif
if (!SetEnvironmentVariableW(L"PYTHONPATH", value)) { if (!SetEnvironmentVariableW(L"PYTHONPATH", value)) {
......
...@@ -44,7 +44,7 @@ PATH=$sd_prog${PATH+:$PATH} ...@@ -44,7 +44,7 @@ PATH=$sd_prog${PATH+:$PATH}
export PATH export PATH
# Set %%OOO_LIBRARY_PATH_VAR%% so that "import pyuno" finds libpyuno.so: # Set %%OOO_LIBRARY_PATH_VAR%% so that "import pyuno" finds libpyuno.so:
%%OOO_LIBRARY_PATH_VAR%%=$sd_prog/../basis-link/program:$sd_prog/../basis-link/ure-link/lib${%%OOO_LIBRARY_PATH_VAR%%:+:$%%OOO_LIBRARY_PATH_VAR%%} %%OOO_LIBRARY_PATH_VAR%%=$sd_prog:$sd_prog/../basis-link/ure-link/lib${%%OOO_LIBRARY_PATH_VAR%%:+:$%%OOO_LIBRARY_PATH_VAR%%}
export %%OOO_LIBRARY_PATH_VAR%% export %%OOO_LIBRARY_PATH_VAR%%
# Set UNO_PATH so that "officehelper.bootstrap()" can find soffice executable: # Set UNO_PATH so that "officehelper.bootstrap()" can find soffice executable:
...@@ -57,19 +57,19 @@ export UNO_PATH ...@@ -57,19 +57,19 @@ export UNO_PATH
export URE_BOOTSTRAP export URE_BOOTSTRAP
NONMACSECTION NONMACSECTION
PYTHONPATH=$sd_prog/../basis-link/program:$sd_prog/../basis-link/program/python-core-%%PYVERSION%%/lib:$sd_prog/../basis-link/program/python-core-%%PYVERSION%%/lib/lib-dynload:$sd_prog/../basis-link/program/python-core-%%PYVERSION%%/lib/lib-tk:$sd_prog/../basis-link/program/python-core-%%PYVERSION%%/lib/site-packages${PYTHONPATH+:$PYTHONPATH} PYTHONPATH=$sd_prog:$sd_prog/python-core-%%PYVERSION%%/lib:$sd_prog/python-core-%%PYVERSION%%/lib/lib-dynload:$sd_prog/python-core-%%PYVERSION%%/lib/lib-tk:$sd_prog/python-core-%%PYVERSION%%/lib/site-packages${PYTHONPATH+:$PYTHONPATH}
export PYTHONPATH export PYTHONPATH
PYTHONHOME=$sd_prog/../basis-link/program/python-core-%%PYVERSION%% PYTHONHOME=$sd_prog/python-core-%%PYVERSION%%
export PYTHONHOME export PYTHONHOME
# execute binary # execute binary
exec "$sd_prog/../basis-link/program/python.bin" "$@" exec "$sd_prog/python.bin" "$@"
MACSECTION MACSECTION
PYTHONHOME=$sd_prog/../basis-link/program/OOoPython.framework PYTHONHOME=$sd_prog/OOoPython.framework
export PYTHONHOME export PYTHONHOME
pybasislibdir=$PYTHONHOME/Versions/%%PYVERSION%%/lib/python%%PYVERSION%% pybasislibdir=$PYTHONHOME/Versions/%%PYVERSION%%/lib/python%%PYVERSION%%
PYTHONPATH=$sd_prog/../basis-link/program:$pybasislibdir:$pybasislibdir/lib-dynload:$pybasislibdir/lib-tk:$pybasislibdir/site-packages${PYTHONPATH+:$PYTHONPATH} PYTHONPATH=$sd_prog:$pybasislibdir:$pybasislibdir/lib-dynload:$pybasislibdir/lib-tk:$pybasislibdir/site-packages${PYTHONPATH+:$PYTHONPATH}
export PYTHONPATH export PYTHONPATH
# execute binary # execute binary
......
...@@ -36,13 +36,13 @@ File gid_File_Lib_Pyuno ...@@ -36,13 +36,13 @@ File gid_File_Lib_Pyuno
#else #else
Name = "pyuno.pyd"; Name = "pyuno.pyd";
#endif #endif
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Styles = (PACKED); Styles = (PACKED);
End End
File gid_File_Lib_Pythonloader File gid_File_Lib_Pythonloader
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
#ifdef UNX #ifdef UNX
Name = STRING(CONCAT2(pythonloader.uno,UNXSUFFIX)); Name = STRING(CONCAT2(pythonloader.uno,UNXSUFFIX));
#else #else
...@@ -53,28 +53,28 @@ End ...@@ -53,28 +53,28 @@ End
File gid_File_Py_Unohelper File gid_File_Py_Unohelper
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = "unohelper.py"; Name = "unohelper.py";
Styles = (PACKED); Styles = (PACKED);
End End
File gid_File_Py_Officehelper File gid_File_Py_Officehelper
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = "officehelper.py"; Name = "officehelper.py";
Styles = (PACKED); Styles = (PACKED);
End End
File gid_File_Py_Uno File gid_File_Py_Uno
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = "uno.py"; Name = "uno.py";
Styles = (PACKED); Styles = (PACKED);
End End
File gid_File_Py_Pythonloader File gid_File_Py_Pythonloader
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = "pythonloader.py"; Name = "pythonloader.py";
Styles = (PACKED); Styles = (PACKED);
End End
...@@ -82,7 +82,7 @@ End ...@@ -82,7 +82,7 @@ End
#ifndef SYSTEM_PYTHON #ifndef SYSTEM_PYTHON
File gid_File_Py_Python_Core File gid_File_Py_Python_Core
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
#ifdef MACOSX #ifdef MACOSX
Name = "OOoPython.framework.zip"; Name = "OOoPython.framework.zip";
Styles = (ARCHIVE,USE_INTERNAL_RIGHTS); Styles = (ARCHIVE,USE_INTERNAL_RIGHTS);
...@@ -96,7 +96,7 @@ End ...@@ -96,7 +96,7 @@ End
#ifndef MACOSX #ifndef MACOSX
File gid_File_Py_Python_Bin File gid_File_Py_Python_Bin
BIN_FILE_BODY; BIN_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = "python.bin"; Name = "python.bin";
Styles = (PACKED); Styles = (PACKED);
End End
...@@ -126,14 +126,14 @@ End ...@@ -126,14 +126,14 @@ End
#ifndef MACOSX #ifndef MACOSX
File gid_File_Lib_Python_So File gid_File_Lib_Python_So
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = STRING(PY_FULL_DLL_NAME); Name = STRING(PY_FULL_DLL_NAME);
Styles = (PACKED); Styles = (PACKED);
End End
#ifdef UNX #ifdef UNX
Shortcut gid_Shortcut_Lib_Python_So Shortcut gid_Shortcut_Lib_Python_So
FileID = gid_File_Lib_Python_So; FileID = gid_File_Lib_Python_So;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = STRING(CONCAT3(libpython,PYMAJMIN,UNXSUFFIX)); Name = STRING(CONCAT3(libpython,PYMAJMIN,UNXSUFFIX));
Styles = (NETWORK,RELATIVE); Styles = (NETWORK,RELATIVE);
End End
...@@ -141,7 +141,7 @@ End ...@@ -141,7 +141,7 @@ End
#else //MACOSX #else //MACOSX
//directory entries solely to be able to create the symlinks //directory entries solely to be able to create the symlinks
Directory gid_Dir_PythonFramework Directory gid_Dir_PythonFramework
ParentID = gid_Dir_Program; ParentID = gid_Brand_Dir_Program;
HostName = "OOoPython.framework"; HostName = "OOoPython.framework";
End End
...@@ -287,15 +287,6 @@ Unixlink gid_Unixlink_Python_libpython ...@@ -287,15 +287,6 @@ Unixlink gid_Unixlink_Python_libpython
Styles = (); Styles = ();
End End
#endif //MACOSX #endif //MACOSX
#ifdef WNT
File gid_File_Lib_Python_So_Brand // Fix for system-python-problem on windows
TXT_FILE_BODY;
Dir = gid_Brand_Dir_Program;
Name = STRING(PY_FULL_DLL_NAME);
Styles = (PACKED);
End
#endif
#endif #endif
#ifdef UNX #ifdef UNX
...@@ -308,7 +299,7 @@ File gid_File_Pyuno ...@@ -308,7 +299,7 @@ File gid_File_Pyuno
#else #else
Name = "pyuno.so"; Name = "pyuno.so";
#endif #endif
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Styles = (PACKED); Styles = (PACKED);
End End
......
...@@ -34,7 +34,7 @@ Module gid_Module_Optional_Pyuno ...@@ -34,7 +34,7 @@ Module gid_Module_Optional_Pyuno
MOD_NAME_DESC ( MODULE_OPTIONAL_PYTHON ); MOD_NAME_DESC ( MODULE_OPTIONAL_PYTHON );
ParentID = gid_Module_Optional; ParentID = gid_Module_Optional;
Sortkey = "750"; Sortkey = "750";
Files = (gid_File_Pyuno,gid_File_Lib_Pyuno,gid_File_Lib_Pythonloader,gid_File_Py_Unohelper,gid_File_Py_Officehelper,gid_File_Py_Uno,gid_File_Py_Pythonloader,gid_File_Py_Python_Core,gid_File_Py_Python_Bin,gid_File_Lib_Python_So,gid_Shortcut_Lib_Python_So,gid_File_Lib_Python_So_Brand,gid_File_Scripts_Python,gid_File_Share_Registry_Pyuno_Xcd); Files = (gid_File_Pyuno,gid_File_Lib_Pyuno,gid_File_Lib_Pythonloader,gid_File_Py_Unohelper,gid_File_Py_Officehelper,gid_File_Py_Uno,gid_File_Py_Pythonloader,gid_File_Py_Python_Core,gid_File_Py_Python_Bin,gid_File_Lib_Python_So,gid_Shortcut_Lib_Python_So,gid_File_Scripts_Python,gid_File_Share_Registry_Pyuno_Xcd);
Minimal = NO; Minimal = NO;
Default = YES; Default = YES;
Styles = ( ); Styles = ( );
......
...@@ -31,13 +31,13 @@ ...@@ -31,13 +31,13 @@
#ifndef DISABLE_PYUNO #ifndef DISABLE_PYUNO
File gid_File_Pymailmerge File gid_File_Pymailmerge
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = "mailmerge.py"; Name = "mailmerge.py";
Styles = (PACKED); Styles = (PACKED);
End End
File gid_File_Pymailmerge_msgbox File gid_File_Pymailmerge_msgbox
TXT_FILE_BODY; TXT_FILE_BODY;
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Name = "msgbox.py"; Name = "msgbox.py";
Styles = (PACKED); Styles = (PACKED);
End End
......
...@@ -36,7 +36,7 @@ Profile gid_Profile_Pythonloader_Uno_Ini ...@@ -36,7 +36,7 @@ Profile gid_Profile_Pythonloader_Uno_Ini
#else #else
Name = "pythonloader.uno.ini"; Name = "pythonloader.uno.ini";
#endif #endif
Dir = gid_Dir_Program; Dir = gid_Brand_Dir_Program;
Styles = (NETWORK); Styles = (NETWORK);
End End
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment