Age | Commit message (Collapse) | Author | Files | Lines |
|
Allows building Scinterm without removing references to RunStyles.o.
63cee0686964d789e6b53406abcc0bdbed50206a, which removed RunStyles.cxx,
is still experimental and not yet merged upstream.
|
|
storage size as int, but does *not* alias it
* This is the case e.g. on NetBSD 10 for ARMv6 where Sci::Position == ptrdiff_t == long int,
but obviously for other platforms as well, where it causes "invalid conversion"
and "undefined symbol" errors.
Scintilla was testing for aliasability by comparing the storage size with sizeof()
or PTRDIFF_MAX == INT_MAX at the preprocessor level.
This was fundamentally flawed.
* In LineVector<T>::InsertLines() we are now using the C++17 construct
std::is_convertible_v<From*,To*> instead.
* We need RunStyles<ptrdiff_t> as well on the affected platforms.
AFAIK this is impossible to test for in a constant expression that can be used
with the preprocessor.
A workaround has been added previously for Haiku:
https://groups.google.com/g/scintilla-interest/c/xPXquJUIXo8/m/BLXBpTTgBwAJ
The workaround is not very robust, as probably nobody guarantees that ptrdiff_t
never aliases on Haiku. If it does, you will suddenly get errors about duplicate
template instantiations.
Quite possibly, the explicit instantiations of RunStyles were wrong on certain
32-bit Linux variants as well.
* We could have tried to explicitly instantiate RunStyles for all scalar types that could possibly be behind ptrdiff_t.
Unfortunately, it would result in "possible loss of data" warnings on MSVC.
Instead, we now implicitly instantiate RunStyles.
|
|
*not* alias it"
This reverts commit 0953ffeee80abdd8e79ddacc7066eb02c78968e7.
|
|
alias it
* This is the case e.g. on NetBSD 10 for ARMv6 where Sci::Position == ptrdiff_t == long int,
but obviously for other platforms as well, where it causes "invalid conversion"
and "undefined symbol" errors.
Scintilla was testing for aliasability by comparing the storage size with sizeof()
or PTRDIFF_MAX == INT_MAX at the preprocessor level.
This was fundamentally flawed.
* In LineVector<T>::InsertLines() we are now using the C++17 construct
std::is_convertible_v<From*,To*> instead.
* We need RunStyles<ptrdiff_t> as well on the affected platforms.
AFAIK this is impossible to test for in a constant expression that can be used
with the preprocessor.
A workaround has been added previously for Haiku:
https://groups.google.com/g/scintilla-interest/c/xPXquJUIXo8/m/BLXBpTTgBwAJ
The workaround is not very robust, as probably nobody guarantees that ptrdiff_t
never aliases on Haiku. If it does, you will suddenly get errors about duplicate
template instantiations.
Instead we now instantiate RunStyles for all scalar types that could possibly be behind ptrdiff_t.
This will always be more than what is required on any particular platform,
but the linker should eliminate unused symbols.
|
|
* SciTECO needs to avoid automatic scrolling as an optimization.
While this works partially by avoiding certain messages like SCI_GOTOPOS (in favor of SCI_SETEMPTYSELECTION),
there aren't alternatives for all messages that scroll.
For instance SCI_UNDO will always call EnsureCaretVisible().
Also, even if we could avoid all scrolling messages, there is no guarantee that will not suddenly
and unexpectedly break in the future.
* Instead, every scrolling is now disabled except for an explicit SCI_SCROLLCARET.
SciTECO can therefore use the more intuitive messages like SCI_GOTOPOS.
* SetLastXChosen() (choosing the X that caret sticks to) has been found to be a major slow down
during UNDO and serves no purpose on SciTECO anyway - we have to implement such an algorithm
at the SciTECO language level.
We therefore simply disable SetLastXChosen().
|
|
* This sets the default key representations on every SCI_SETDOCPOINTER
which is very inefficient considering the way that SciTECO uses the
Q-Register view.
Furthermore it meant, we had to reset the representations to their
SciTECO versions again after every SCI_SETDOCPOINTER.
* This patch only does not cause problems because we initialize
the representations anyway for every Scintilla view.
This patch is not meant to be upstreamed!
|
|
Avoid processing characters multiple times by relying on from_chars munching
digit characters instead of searching for delimiters.
|
|
|
|
bidirectional mode which is used for accessibility on macOS with VoiceOver.
Avoid out-of-bounds access.
|
|
|
|
|
|
allocations succeed and others fail.
|
|
for validity check.
|
|
|
|
|
|
Clarify code a little.
|
|
|
|
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16373
|
|
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/16373
|
|
|
|
|
|
|
|
|
|
|
|
parameter naming.
|
|
|
|
SC_UNDO_SELECTION_HISTORY_SCROLL flag to SCI_SETUNDOSELECTIONHISTORY.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
constants for processing character encodings or similar and where declaring
constants would make the code more obscure, not less.
|
|
memory to cache folding data for each DBCS code page used.
|
|
|
|
typedef with using, and initialising at declaration.
|
|
Add tests to check that inverted conversions yield the original value.
|
|
|
|
characters and invalid bytes.
Add more test cases.
|
|
|
|
Add comments about different types of Surface.
|
|
impossible exception, const some iterators.
|
|
{ unicodeReplacementChar, 1 } instead of constructed objects.
Declare named const values for 2 failure cases of CharacterExtracted.
Remove some dead code.
|
|
|
|
specified) and only discard the last combined character when these fail.
|
|
There are still problems for languages like Javanese but it will improve most
cases.
Unicode proposal to improve line breaking:
https://www.unicode.org/L2/L2022/22080r2-line-break-ortho-bnd.pdf
|
|
potentially invalid UTF-8 string. Use this in DiscardLastCombinedCharacter.
Place DiscardLastCombinedCharacter in Scintilla::Internal namespace for use in
text wrap.
|
|
prioritising Unicode-safe base character check over ASCII punctuation check and
by treating emoji modifiers as modifiers instead of base characters.
This is better for
1) Keycap emoji: *, VARIATION SELECTOR-16, COMBINING ENCLOSING KEYCAP
2) Emoji + skin tone: WAVING HAND SIGN, EMOJI MODIFIER FITZPATRICK TYPE-1-2
|