From a7482d51e159cd7a9ef25620b7336b4e1dcf548a Mon Sep 17 00:00:00 2001 From: Oliver Bolte Date: Thu, 25 Jan 2007 10:01:07 +0000 Subject: INTEGRATION: CWS jsc17 (1.16.26); FILE MERGED 2007/01/22 15:51:55 jsc 1.16.26.1: #i73482# take care of predefined modules and XInterface --- idlc/source/parser.y | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'idlc/source/parser.y') diff --git a/idlc/source/parser.y b/idlc/source/parser.y index 96d52b078bb9..9792712eb1ef 100644 --- a/idlc/source/parser.y +++ b/idlc/source/parser.y @@ -4,9 +4,9 @@ * * $RCSfile: parser.y,v $ * - * $Revision: 1.16 $ + * $Revision: 1.17 $ * - * last change: $Author: kz $ $Date: 2006-07-19 16:20:11 $ + * last change: $Author: obo $ $Date: 2007-01-25 11:01:07 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -534,6 +534,15 @@ module_dcl : { pExists->setInMainfile(idlc()->isInMainFile()); pExists->setFileName(pModule->getFileName()); + if (pExists->isPredefined()) + { + pExists->setPredefined(false); + if (pExists->getDocumentation().getLength() == 0 && + pModule->getDocumentation().getLength() > 0) + { + pExists->setDocumentation(pModule->getDocumentation()); + } + } delete(pModule); pModule = (AstModule*)pExists; } else @@ -672,7 +681,18 @@ interface_dcl : delete pInterface; pInterface = pForward; } - } + } else { + // special handling for XInterface because it is predefined + if ( pForward->isPredefined() && + pForward->getScopedName() == "com::sun::star::uno::XInterface") + { + /* replace the predefined XInterface */ + *pForward = *pInterface; + delete pInterface; + pInterface = pForward; + } + + } } } else { -- cgit