Access2Base - New release

Stephan Bergmann sbergman at
Mon May 19 00:23:34 PDT 2014

On 05/16/2014 06:39 PM, Lionel Elie Mamane wrote:
> I took a deeper look at it; actually, the problem is different. A
> user-installed extension *is* allowed to override a Basic script (or
> dialog) library from a *bundled* *extension*, or from a *system*
> (installed as "for all users") extension. *But* not to override a
> script (or dialog) library that forms an integral part of
> LibreOffice. And access2base is (in LibreOffice 4.2) not a bundled
> extension, but a "standard" part of LibreOffice.
> The code that enforces that is:
> desktop/source/deployment/registry/script/dp_script.cxx around line 350:
>              if (sOriginalUrl.match("$UNO_USER_PACKAGES_CACHE")
>                  || sOriginalUrl.match("$UNO_SHARED_PACKAGES_CACHE")
>                  || sOriginalUrl.match("$BUNDLED_EXTENSIONS"))
>              {
>                  xScriptLibs->removeLibrary(rName);
>                  bCanAdd = true;
>              }
>              else
>              {
>                  bCanAdd = false;
>              }
> However, if I direct the code flow into the if branch anyway with gdb,
> then everything goes well, the built-in access2base is disabled and
> the one from the user-installed extension takes over.
> So, the question is "why does this code enforce this condition, and
> can we change it"? Can we just remove the condition altogether, or
> should we add this case:
>                  || sOriginalUrl.match("$(INST)")
> Noel? Uray? You are our Basic "FindTheExpert"s. What's your opinion on
> this?

Most likely, the reason that that desktop/source/deployment code only 
checks against existing extension libraries but not built-in ones is 
that that was never a use-case the code was designed for.  I do not 
know, though,whether there are any gotchas on the BASIC side that would 
be enabled by your proposed change.


More information about the LibreOffice mailing list