[QScintilla] QScintilla 2.8

Hans-Peter Jansen hpj at urpla.net
Mon Dec 23 23:32:10 GMT 2013


Hi Phil,

On Samstag, 21. Dezember 2013 12:52:30 Phil Thompson wrote:
> On 18-12-2013 10:48 pm, Hans-Peter Jansen wrote:
> > Hi Phil,
> > 
> > in an attempt to build QScintilla 2.8 in the usual way¹, I noticed
> > some
> > issues. I was able to fix some of them with the attached patches, but
> > failed on this one:
> > 
> > [   58s] g++ -c -pipe -fmessage-length=0 -grecord-gcc-switches -O2
> > -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables
> > -fasynchronous-unwind-tables -g -DUSE_LIB64_PATHES
> > -fno-strict-aliasing -w -fmessage-length=0 -grecord-gcc-switches -O2
> > -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables
> > -fasynchronous-unwind-tables -g -DUSE_LIB64_PATHES
> > -fno-strict-aliasing -D_REENTRANT -fPIC  -DQSCINTILLA_MAKE_DLL
> > -DSCINTILLA_QT -DSCI_LEXER -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
> > -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/lib/qt3/mkspecs/default -I.
> > -I.
> > -I../include -I../lexlib -I../src -I/usr/include
> > -I/usr/lib/qt3/include -o LexAPDL.o ../lexers/LexAPDL.cpp
> > [   58s] In file included from ScintillaQt.h:64:0,
> > [   58s]                  from ScintillaQt.cpp:38:
> > [   58s] ../src/Editor.h: In member function 'QString
> > QsciScintillaQt::textRange(const SelectionText*) const':
> > [   58s] ../src/Editor.h:81:14: error: 'std::string SelectionText::s'
> > is private
> > [   58s]   std::string s;
> > [   58s]               ^
> > [   58s] ScintillaQt.cpp:425:16: error: within this context
> > [   58s]      if (!text->s)
> > [   58s]                 ^
> > [   58s] ScintillaQt.cpp:425:9: error: no match for 'operator!'
> > (operand type is 'const string {aka const std::basic_string<char>}')
> > [   58s]      if (!text->s)
> > [   58s]          ^
> > [   58s] ScintillaQt.cpp:425:9: note: candidate is:
> > [   58s] ScintillaQt.cpp:425:9: note: operator!(bool) <built-in>
> > [   58s] ScintillaQt.cpp:425:9: note:   no known conversion for
> > argument 1 from 'const string {aka const std::basic_string<char>}' to
> > 'bool'
> > [   58s] make: *** [ScintillaQt.o] Error 1
> > 
> > It might bail on some other lexer, though.
> > 
> > Any idea?
> 
> Should be fixed in tonight's snapshot.
> 
> I haven't applied your std-usage diff because I'm not convinced it is
> necessary - because it would affect Qt4 & Qt5 as well and I don't see
> the problem.

Sorry for being too sparse. Without that patch, compilation fails with:

[   56s] g++ -c -pipe -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DUSE_LIB64_PATHES -fno-strict-aliasing -w -fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -DUSE_LIB64_PATHES -fno-strict-aliasing -D_REENTRANT -fPIC  -DQSCINTILLA_MAKE_DLL -DSCINTILLA_QT -DSCI_LEXER -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/lib/qt3/mkspecs/default -I. -I. -I../include -I../lexlib -I../src -I/usr/include -I/usr/lib/qt3/include -o qscilexercmake.o qscilexercmake.cpp
[   57s] In file included from ScintillaQt.h:63:0,
[   57s]                  from qsciscintillabase.cpp:40:
[   57s] ../src/Editor.h: In member function 'void SelectionText::FixSelectionForClipboard()':
[   57s] ../src/Editor.h:124:3: error: 'replace' is not a member of 'std'
[   57s]    std::replace(s.begin(), s.end(), '\0', ' ');
[   57s]    ^
[   57s] make: *** [qsciscintillabase.o] Error 1
[   57s] make: *** Waiting for unfinished jobs....
[   58s] error: Bad exit status from /var/tmp/rpm-tmp.0k3pv3 (%build)

If you know a different way to fix this issue, let me know.

Merry Christmas for you and your family,
Pete


More information about the QScintilla mailing list