Kaydet (Commit) 7916faf1 authored tarafından Oliver Bolte's avatar Oliver Bolte

CWS-TOOLING: integrate CWS os2port05

2009-02-05 19:23:48 +0100 ydario  r267438 : i98084: add quotes to paths, required to properly set libpath when installation directory has spaces in it. Fixes ticket:135.
2009-01-22 13:24:00 +0100 ydario  r266715 : i98084: use native code to set readonly-hidden flags (see w32), fixes lock files set as readonly and not removable.
2009-01-22 13:22:45 +0100 ydario  r266714 : i98084: fix build error with gcc432, requires os2 headers now.
2009-01-21 23:42:58 +0100 ydario  r266707 : i98084: properly generates rtti names for unknown symbols, see ticket:138.
2009-01-21 23:41:27 +0100 ydario  r266706 : i98084: if xmlsec is not built, certificate is not valid, fixes ticket:138.
2009-01-15 23:39:09 +0100 ydario  r266396 : i98084: convert unicode to char for panic dialog messages.
2009-01-15 23:36:13 +0100 ydario  r266395 : i98084: use dmake build system instead of configure scripts.
2009-01-15 23:32:05 +0100 ydario  r266394 : i98084: add senddoc/open-url integration. changeset 865-866.
üst aee7e11d
......@@ -61,8 +61,8 @@ int main( int argc, char* argv[])
_splitpath( szApplicationName, szDrive, szDir, szFileName, szExt );
char* basedir = strstr( szDir, "\\PROGRAM\\");
if (basedir) *basedir = 0;
sprintf( szLibpath, "%s%s\\URE\\BIN;%s%s\\BASIS\\PROGRAM;%BeginLIBPATH%",
szDrive, szDir, szDrive, szDir);
sprintf( szLibpath, "\"%s%s\\URE\\BIN\";\"%s%s\\BASIS\\PROGRAM\";%BeginLIBPATH%",
szDrive, szDir, szDrive, szDir);
DosSetExtLIBPATH( (PCSZ)szLibpath, BEGIN_LIBPATH);
// make sure we load DLL from our path only, so multiple instances/versions
// can be loaded.
......
......@@ -5,6 +5,7 @@ sl shell\source\win32\simplemail nmake - w sl_win32_simp
sl shell\source\unix\exec nmake - u sl_unix sl_inc NULL
sl shell\source\unix\exec nmake - p sl_unix sl_inc NULL
sl shell\source\unix\misc nmake - u sl_unix_misc sl_inc NULL
sl shell\source\unix\misc nmake - p sl_unix_misc sl_inc NULL
sl shell\source\cmdmail nmake - u sl_cmdmail sl_inc NULL
sl shell\source\cmdmail nmake - p sl_cmdmail sl_inc NULL
sl shell\source\all nmake - all sl_all sl_inc NULL
......
......@@ -97,7 +97,11 @@ void escapeForShell( rtl::OStringBuffer & rBuffer, const rtl::OString & rURL)
{
// escape every non alpha numeric characters (excluding a few "known good") by prepending a '\'
sal_Char c = rURL[n];
if( ( c < 'A' || c > 'Z' ) && ( c < 'a' || c > 'z' ) && ( c < '0' || c > '9' ) && c != '/' && c != '.' )
if( ( c < 'A' || c > 'Z' ) && ( c < 'a' || c > 'z' ) && ( c < '0' || c > '9' )
#ifdef OS2 // YD we don't need to escape ':', '-', '\\', '_'
&& c != ':' && c != '-' && c != '\\' && c != '_'
#endif
&& c != '/' && c != '.' )
rBuffer.append( '\\' );
rBuffer.append( c );
......
......@@ -51,6 +51,23 @@ SCRIPTFILES = \
$(BIN)$/gnome-open-url \
$(BIN)$/kde-open-url
.IF "$(GUI)" == "OS2"
APP1TARGET = open-url
APP1OBJS = \
$(OBJ)$/open-url.obj \
open-url.def
APP1LIBS =
APP2TARGET = senddoc
APP2OBJS = \
$(OBJ)$/senddoc.obj \
senddoc.def
APP2LIBS =
APP2STDLIBS =
.ELSE
APP1TARGET = gnome-open-url.bin
APP1OBJS = \
$(OBJ)$/gnome-open-url.obj
......@@ -65,6 +82,7 @@ APP2LIBS =
APP2STDLIBS =
OBJFILES = $(APP1OBJS) $(APP2OBJS)
.ENDIF
# --- Targets ------------------------------------------------------
......
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile:$
*
* $Revision:$
*
* last change: $Author:$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <process.h>
#include <time.h>
#define INCL_DOS
#define INCL_DOSERRORS
#define INCL_PM
#include <os2.h>
// OOo uses popen() to start us, so we cannot show PM dialogs.
// log message to disk.
void logMessage( char* msg)
{
PPIB pib;
CHAR szApplicationName[_MAX_PATH];
CHAR szDrive[_MAX_PATH];
CHAR szDir[_MAX_PATH];
CHAR szFileName[_MAX_PATH];
CHAR szExt[_MAX_PATH];
FILE* log;
time_t timeOfDay;
struct tm* localTime;
// get executable fullpath
DosGetInfoBlocks(NULL, &pib);
DosQueryModuleName(pib->pib_hmte, sizeof(szApplicationName), szApplicationName);
_splitpath( szApplicationName, szDrive, szDir, szFileName, szExt );
// log name
_makepath( szApplicationName, szDrive, szDir, szFileName, (".LOG") );
log = fopen( szApplicationName, "a");
if (!log)
return;
time( &timeOfDay);
localTime = localtime( &timeOfDay);
fprintf( log, "%04d/%02d/%02d %02d:%02d:%02d %s\n",
localTime->tm_year+1900, localTime->tm_mon+1, localTime->tm_mday,
localTime->tm_hour, localTime->tm_min, localTime->tm_sec, msg);
fclose( log);
}
// dump comand line arguments
void dumpArgs( int argc, char *argv[] )
{
int i;
logMessage( "Start of command line arguments dump:");
for( i=0; i<argc; i++)
logMessage( argv[i]);
}
/*
* The intended use of this tool is to pass the argument to
* the default URL exe.
*/
int main(int argc, char *argv[] )
{
APIRET rc;
RESULTCODES result = {0};
char szAppFromINI[_MAX_PATH];
char szDirFromINI[_MAX_PATH];
char szCmdLine[1024];
char szFail[ _MAX_PATH];
ULONG ulSID;
PID pid;
// check parameters
if (argc != 2)
{
logMessage( "Usage: open-url <url>");
dumpArgs( argc, argv);
return -1;
}
// check configuration
rc = PrfQueryProfileString(HINI_USER, "WPURLDEFAULTSETTINGS",
"DefaultBrowserExe", "",
szAppFromINI, sizeof(szAppFromINI));
rc = PrfQueryProfileString(HINI_USER, "WPURLDEFAULTSETTINGS",
"DefaultWorkingDir", "",
szDirFromINI, sizeof(szDirFromINI));
if (*szAppFromINI == 0 || *szDirFromINI == 0)
{
logMessage( "Unable to find default url handler in USER.INI; exiting.");
dumpArgs( argc, argv);
return -1;
}
// get default parameter list
rc = PrfQueryProfileString(HINI_USER, "WPURLDEFAULTSETTINGS",
"DefaultParameters", "",
szCmdLine, sizeof(szCmdLine));
strcat( szCmdLine, " ");
strcat( szCmdLine, argv[1]);
// change default directory
_chdir( szDirFromINI);
// start default handler
STARTDATA SData;
CHAR szObjBuf[CCHMAXPATH];
SData.Length = sizeof(STARTDATA);
SData.Related = SSF_RELATED_INDEPENDENT;
SData.FgBg = (1) ? SSF_FGBG_FORE : SSF_FGBG_BACK;
SData.TraceOpt = SSF_TRACEOPT_NONE;
SData.PgmTitle = (PSZ)szAppFromINI;
SData.PgmName = (PSZ)szAppFromINI;
SData.PgmInputs = (PSZ)szCmdLine;
SData.TermQ = NULL;
SData.Environment = 0;
SData.InheritOpt = SSF_INHERTOPT_PARENT;
SData.SessionType = SSF_TYPE_PM;
SData.IconFile = 0;
SData.PgmHandle = 0;
SData.PgmControl = SSF_CONTROL_VISIBLE;
SData.InitXPos = 30;
SData.InitYPos = 40;
SData.InitXSize = 200;
SData.InitYSize = 140;
SData.Reserved = 0;
SData.ObjectBuffer = szFail;
SData.ObjectBuffLen = (ULONG)sizeof(szFail);
rc = DosStartSession( &SData, &ulSID, &pid);
// show error dialog in case of problems
if (rc != NO_ERROR && rc != ERROR_SMG_START_IN_BACKGROUND) {
char szMessage[ _MAX_PATH*2];
sprintf( szMessage, "Execution failed! rc: %d, failing module:%s", rc, szFail);
logMessage( szMessage);
dumpArgs( argc, argv);
return -1;
}
// ok
return 0;
}
/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile:$
*
* $Revision:$
*
* last change: $Author:$
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <process.h>
#include <time.h>
#define INCL_DOS
#define INCL_DOSERRORS
#define INCL_PM
#include <os2.h>
// OOo uses popen() to start us, so we cannot show PM dialogs.
// log message to disk.
void logMessage( char* msg)
{
PPIB pib;
CHAR szApplicationName[_MAX_PATH];
CHAR szDrive[_MAX_PATH];
CHAR szDir[_MAX_PATH];
CHAR szFileName[_MAX_PATH];
CHAR szExt[_MAX_PATH];
FILE* log;
time_t timeOfDay;
struct tm* localTime;
// get executable fullpath
DosGetInfoBlocks(NULL, &pib);
DosQueryModuleName(pib->pib_hmte, sizeof(szApplicationName), szApplicationName);
_splitpath( szApplicationName, szDrive, szDir, szFileName, szExt );
// log name
_makepath( szApplicationName, szDrive, szDir, szFileName, (".LOG") );
log = fopen( szApplicationName, "a");
if (!log)
return;
time( &timeOfDay);
localTime = localtime( &timeOfDay);
fprintf( log, "%04d/%02d/%02d %02d:%02d:%02d %s\n",
localTime->tm_year+1900, localTime->tm_mon+1, localTime->tm_mday,
localTime->tm_hour, localTime->tm_min, localTime->tm_sec, msg);
fclose( log);
}
// dump comand line arguments
void dumpArgs( int argc, char *argv[] )
{
int i;
logMessage( "Start of command line arguments dump:");
for( i=0; i<argc; i++)
logMessage( argv[i]);
}
/*
* The intended use of this tool is to pass the argument to
* the default mail handler.
*/
int main(int argc, char *argv[] )
{
APIRET rc;
RESULTCODES result = {0};
char szAppFromINI[_MAX_PATH];
char szDirFromINI[_MAX_PATH];
char szCmdLine[1024];
char szFail[ _MAX_PATH];
ULONG ulSID;
PID pid;
int i;
BOOL bMailClient = FALSE;
// check parameters
if (argc < 5)
{
logMessage( "Usage: senddoc --mailclient <client> --attach <uri>");
dumpArgs( argc, argv);
return -1;
}
// check configuration
rc = PrfQueryProfileString(HINI_USER, "WPURLDEFAULTSETTINGS",
"DefaultMailExe", "",
szAppFromINI, sizeof(szAppFromINI));
rc = PrfQueryProfileString(HINI_USER, "WPURLDEFAULTSETTINGS",
"DefaultMailWorkingDir", "",
szDirFromINI, sizeof(szDirFromINI));
if (*szAppFromINI == 0 || *szDirFromINI == 0)
{
logMessage( "Unable to find default mail handler in USER.INI; exiting.");
dumpArgs( argc, argv);
return -1;
}
// get default parameter list, at leat -compose is required
rc = PrfQueryProfileString(HINI_USER, "WPURLDEFAULTSETTINGS",
"DefaultMailParameters", "",
szCmdLine, sizeof(szCmdLine));
if (strstr( szCmdLine, "-compose") == 0)
strcat( szCmdLine, " -compose"); // add if missing!
// parse cmdline arguments
for( i=1; i<argc; i++)
{
if (!strcmp( argv[i], "--mailclient")) {
// we support only Thunderbird/Mozilla command line options, check exe name
if (strstr( argv[i+1], "thunderbird") == 0
&& strstr( argv[i+1], "mozilla") == 0
&& strstr( argv[i+1], "seamonkey") == 0)
{
logMessage( "Only Thunderbird/Mozilla is currently supported. Exiting.");
dumpArgs( argc, argv);
return -1;
}
// mail client found
bMailClient = TRUE;
i++;
} else if (!strcmp( argv[i], "--attach")) {
strcat( szCmdLine, " attachment=file://");
strcat( szCmdLine, argv[i+1]);
i++;
}
// ignore other options (BTW currently none)
}
if (bMailClient == FALSE)
{
logMessage( "No mail client specified. Exiting.");
dumpArgs( argc, argv);
return -1;
}
// change default directory
_chdir( szDirFromINI);
// start default handler
STARTDATA SData;
CHAR szObjBuf[CCHMAXPATH];
SData.Length = sizeof(STARTDATA);
SData.Related = SSF_RELATED_INDEPENDENT;
SData.FgBg = (1) ? SSF_FGBG_FORE : SSF_FGBG_BACK;
SData.TraceOpt = SSF_TRACEOPT_NONE;
SData.PgmTitle = (PSZ)szAppFromINI;
SData.PgmName = (PSZ)szAppFromINI;
SData.PgmInputs = (PSZ)szCmdLine;
SData.TermQ = NULL;
SData.Environment = 0;
SData.InheritOpt = SSF_INHERTOPT_PARENT;
SData.SessionType = SSF_TYPE_PM;
SData.IconFile = 0;
SData.PgmHandle = 0;
SData.PgmControl = SSF_CONTROL_VISIBLE;
SData.InitXPos = 30;
SData.InitYPos = 40;
SData.InitXSize = 200;
SData.InitYSize = 140;
SData.Reserved = 0;
SData.ObjectBuffer = szFail;
SData.ObjectBuffLen = (ULONG)sizeof(szFail);
rc = DosStartSession( &SData, &ulSID, &pid);
// show error dialog in case of problems
if (rc != NO_ERROR && rc != ERROR_SMG_START_IN_BACKGROUND) {
char szMessage[ _MAX_PATH*2];
sprintf( szMessage, "Execution failed! rc: %d, failing module:%s", rc, szFail);
logMessage( szMessage);
dumpArgs( argc, argv);
return -1;
}
// ok
return 0;
}
......@@ -394,6 +394,10 @@ extern "C" int NeonSession_CertificationNotify( void *userdata,
xCertificateContainer = uno::Reference< ::com::sun::star::security::XCertificateContainer >(
pSession->getMSF().get()->createInstance( rtl::OUString::createFromAscii( "com.sun.star.security.CertificateContainer" )), uno::UNO_QUERY );
// YD if xmlsecurity is not built (os2), we cannot continue.
if (!xCertificateContainer.is())
return 1;
char * dn;
failures = 0;
......
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