Neil Hodgson
2013-07-24 00:41:09 UTC
Attached is an updated patch to use C++11's regular expression implementation within Scintilla. Unlike previous versions it performs backwards regex searches. The limited state of regex implementations in C++ support libraries means this isn't being committed now. The libstdc++ library used with g++ has an empty regex implementation, so this will not work at all with g++.
Other implementations have problems with '^' and '$'. The runtime for Visual C++ only recognises \n line ends for start/end line, not \r\n or \r. libc++ used by Clang on OS X doesn't match '^' or '$' inside a search range, only at the ends. To get around these issues, the patch performs line by line searches, just like Scintilla's current limited regex. This means that regex searches will not match over line ends. It may be possible to add another flag to regex to choose between line by line and whole range searches but the results of whole range searches are still going to be platform dependent.
I still want to add C++11 regex to Scintilla at some point but, for now, applications that want good regex support should implement this in the application code, possibly using calls like SCI_GETRANGEPOINTER for fast access to the text inside Scintilla.
Neil
Other implementations have problems with '^' and '$'. The runtime for Visual C++ only recognises \n line ends for start/end line, not \r\n or \r. libc++ used by Clang on OS X doesn't match '^' or '$' inside a search range, only at the ends. To get around these issues, the patch performs line by line searches, just like Scintilla's current limited regex. This means that regex searches will not match over line ends. It may be possible to add another flag to regex to choose between line by line and whole range searches but the results of whole range searches are still going to be platform dependent.
I still want to add C++11 regex to Scintilla at some point but, for now, applications that want good regex support should implement this in the application code, possibly using calls like SCI_GETRANGEPOINTER for fast access to the text inside Scintilla.
Neil
--
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scintilla-interest+***@googlegroups.com.
To post to this group, send email to scintilla-***@googlegroups.com.
Visit this group at http://groups.google.com/group/scintilla-interest.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to the Google Groups "scintilla-interest" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scintilla-interest+***@googlegroups.com.
To post to this group, send email to scintilla-***@googlegroups.com.
Visit this group at http://groups.google.com/group/scintilla-interest.
For more options, visit https://groups.google.com/groups/opt_out.