summaryrefslogtreecommitdiff
path: root/idlc/source/parser.y
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2007-01-25 10:01:07 +0000
committerOliver Bolte <obo@openoffice.org>2007-01-25 10:01:07 +0000
commita7482d51e159cd7a9ef25620b7336b4e1dcf548a (patch)
tree581f7fddd946184a30480cd74e3189c6585552d0 /idlc/source/parser.y
parent0adde186d4b3d27949f971eb6efd1fc22866bea0 (diff)
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
Diffstat (limited to 'idlc/source/parser.y')
-rw-r--r--idlc/source/parser.y26
1 files changed, 23 insertions, 3 deletions
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
{