On 17 May 2016, at 2:16 pm, Marcus Calhoun-Lopez <[email protected]> wrote: > > Greetings. > > I am trying to resolve an issue installing GNU Octave with the MacPorts > system. > > Octave includes qscilexeroctave.h, which includes a whole bunch of other > files until it gets to a header file from Gnulib. > Gnulib attempts to add a security warning to the C functions gets. > Because qscilexeroctave.h wraps everything in “extern "C++",” there is a > conflict between the linkages of gets (C vs C++). > > A few solutions have been proposed in the various discussions about this > problem (see references below). > On solution is to remove the “extern "C++"” from the Qt4Qt5/Qsci/*.h > qscintilla header files: > > -#ifdef __APPLE__ > > > -extern "C++" { > > > -#endif > ... > -#ifdef __APPLE__ > > > -} > > > -#endif > > For me, qscintilla and Octave both build fine after the change. > > Is this a safe change? > Any insight into why forcing C++ linkage is necessary (but just on Macs) > would be appreciated.
They were needed to work around a problem with the Qt binary installers circa 2007. > Is this a change that can be considered upstream? I'll add it to the TODO list. Phil _______________________________________________ QScintilla mailing list [email protected] https://www.riverbankcomputing.com/mailman/listinfo/qscintilla
