Package: openoffice.org-dev Version: 1.1.3-9 Severity: important Tags: patch
strace shows that when IDLC (idlc.bin) calls idlcpp (the preprocessor), it actually calls a nonexistent file "idlcidlcpp". A simple workaround is creating a simbolic link idlcidlcpp->idlcpp. The problem seems to be in the file idlcompile.cxx. It looks as the copy method of cpp would not be able to delete characters on its own string. A suggested patch (not tried actually) is attached in which I create a temporary second variable. I don't know if the problem persists in the OpenOffice SDK of 2.0 version. -- System Information: Debian Release: 3.1 Architecture: i386 (i686) Kernel: Linux 2.6.8-2-386 Locale: LANG=spanish, LC_CTYPE=spanish (charmap=ISO-8859-1) (ignored: LC_ALL set to es_ES) Versions of packages openoffice.org-dev depends on: ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries an ii libgcc1 1:3.4.3-13 GCC support library ii libstdc++5 1:3.3.5-13 The GNU Standard C++ Library v3 ii libstlport4.6 4.6.2-2 STLport C++ class library ii libstlport4.6-dev 4.6.2-2 STLport C++ class library ii openoffice.org-bin 1.1.3-9 OpenOffice.org office suite binary ii openoffice.org-debian-files 1.1.3-8+1 Debian specific parts of OpenOffic -- no debconf information
--- orig_idlccompile.cxx 2003-03-26 13:11:08.000000000 +0100 +++ idlccompile.cxx 2006-03-17 13:52:21.000000000 +0100 @@ -322,15 +322,17 @@ OUString cmdArg(RTL_CONSTASCII_USTRINGPARAM("@")); cmdArg += OStringToOUString(cmdFileName, RTL_TEXTENCODING_UTF8); - OUString cpp; + OUString execfile; OUString startDir; - OSL_VERIFY(osl_getExecutableFile(&cpp.pData) == osl_Process_E_None); + OSL_VERIFY(osl_getExecutableFile(&execfile.pData) == osl_Process_E_None); + + OUString cpp; #if defined(SAL_W32) || defined(SAL_OS2) - cpp = cpp.copy(0, cpp.getLength() - 8); + cpp = execfile.copy(0, execfile.getLength() - 8); cpp += OUString( RTL_CONSTASCII_USTRINGPARAM("idlcpp.exe")); #else - cpp = cpp.copy(0, cpp.getLength() - 4); + cpp = execfile.copy(0, execfile.getLength() - 4); cpp += OUString( RTL_CONSTASCII_USTRINGPARAM("idlcpp")); #endif