aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r--src/Editor.cxx17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 97c141bae..35148299e 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -5832,6 +5832,19 @@ void Editor::StyleSetMessage(Message iMessage, uptr_t wParam, sptr_t lParam) {
case Message::StyleSetVisible:
vs.styles[wParam].visible = lParam != 0;
break;
+ case Message::StyleSetInvisibleRepresentation: {
+ const char *utf8 = ConstCharPtrFromSPtr(lParam);
+ char *rep = vs.styles[wParam].invisibleRepresentation;
+ const int classified = UTF8Classify(utf8);
+ if (!(classified & UTF8MaskInvalid)) {
+ // valid UTF-8
+ int len = classified & UTF8MaskWidth;
+ while (len--)
+ *rep++ = *utf8++;
+ }
+ *rep = 0;
+ break;
+ }
case Message::StyleSetChangeable:
vs.styles[wParam].changeable = lParam != 0;
break;
@@ -5878,6 +5891,8 @@ sptr_t Editor::StyleGetMessage(Message iMessage, uptr_t wParam, sptr_t lParam) {
return vs.styles[wParam].visible ? 1 : 0;
case Message::StyleGetChangeable:
return vs.styles[wParam].changeable ? 1 : 0;
+ case Message::StyleGetInvisibleRepresentation:
+ return StringResult(lParam, vs.styles[wParam].invisibleRepresentation);
case Message::StyleGetHotSpot:
return vs.styles[wParam].hotspot ? 1 : 0;
case Message::StyleGetCheckMonospaced:
@@ -7328,6 +7343,7 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) {
case Message::StyleSetChangeable:
case Message::StyleSetHotSpot:
case Message::StyleSetCheckMonospaced:
+ case Message::StyleSetInvisibleRepresentation:
StyleSetMessage(iMessage, wParam, lParam);
break;
@@ -7347,6 +7363,7 @@ sptr_t Editor::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) {
case Message::StyleGetChangeable:
case Message::StyleGetHotSpot:
case Message::StyleGetCheckMonospaced:
+ case Message::StyleGetInvisibleRepresentation:
return StyleGetMessage(iMessage, wParam, lParam);
case Message::StyleResetDefault: