Most elegant way to disable all BASIC functionality?

Tor Lillqvist tml at
Sun Feb 26 06:27:33 PST 2012

For the iOS port, no BASIC-related functionality can be present if we
want apps using the code to be allowed in the App Store. What would be
the most elegant way (least ifdefs to clutter the code, etc) to
achieve this?

(Well, just the possibility to execute BASIC code input as a result of
user action, i.e. in user documents, typed in, or whatever, needs to
go away, so in theory we could leave internal functionality
implemented in BASIC. But I hope we don't have any such...)

The first step is to don't even bother to build any of the libraries
that is related only to BASIC. Done already. (The corresponding
headers are still "delivered" though, to make it possible to compile
other stuff for now...)

I can think of the following approaches now:

1) Ifdef out all calls to code in the BASIC-related libraries. This
will surely mean a somewhat large amount of ugly ifdefs.

2) Add ifdefs to headers like basmgr.hxx and sbstar.hxx that implement
methods as necessary as "no-op" inline ones. This is somewhat ugly,
too, even if restricted to just a few headers, hopefully. Having
various BASIC-related methods always return compile-time false, NULL,
etc will hopefully mean lots of calling code will be optimized away.

3) Create a small number (as small as possible) of parallel "no-op"
headers related to BASIC just for iOS, that would work as in case 2,
i.e. contain inline null implementations.

Obviously I am just guessing about the relative ugliness of each
approach... But I think the third alternative is the best?


More information about the LibreOffice mailing list