mirror of
https://github.com/rizonesoft/Notepad3.git
synced 2026-06-14 21:09:05 +08:00
Merge pull request #3058 from RaiKoHoff/Dev_Lexilla
Enable horizontal scrolling by "Shift + Mouse-Wheel"
This commit is contained in:
commit
d7de6ea27b
@ -236,38 +236,38 @@ constexpr float componentMaximum = 255.0F;
|
||||
class ColourDesired {
|
||||
unsigned int co;
|
||||
public:
|
||||
explicit ColourDesired(unsigned int co_ = 0) noexcept : co(co_) {}
|
||||
constexpr explicit ColourDesired(unsigned int co_ = 0) noexcept : co(co_) {}
|
||||
|
||||
ColourDesired(unsigned int red, unsigned int green, unsigned int blue) noexcept :
|
||||
co(red | (green << 8) | (blue << 16)) {}
|
||||
|
||||
bool operator==(const ColourDesired &other) const noexcept {
|
||||
constexpr bool operator==(const ColourDesired &other) const noexcept {
|
||||
return co == other.co;
|
||||
}
|
||||
|
||||
unsigned int AsInteger() const noexcept {
|
||||
constexpr unsigned int AsInteger() const noexcept {
|
||||
return co;
|
||||
}
|
||||
|
||||
// Red, green and blue values as bytes 0..255
|
||||
unsigned char GetRed() const noexcept {
|
||||
constexpr unsigned char GetRed() const noexcept {
|
||||
return co & 0xff;
|
||||
}
|
||||
unsigned char GetGreen() const noexcept {
|
||||
constexpr unsigned char GetGreen() const noexcept {
|
||||
return (co >> 8) & 0xff;
|
||||
}
|
||||
unsigned char GetBlue() const noexcept {
|
||||
constexpr unsigned char GetBlue() const noexcept {
|
||||
return (co >> 16) & 0xff;
|
||||
}
|
||||
|
||||
// Red, green and blue values as float 0..1.0
|
||||
float GetRedComponent() const noexcept {
|
||||
constexpr float GetRedComponent() const noexcept {
|
||||
return GetRed() / componentMaximum;
|
||||
}
|
||||
float GetGreenComponent() const noexcept {
|
||||
constexpr float GetGreenComponent() const noexcept {
|
||||
return GetGreen() / componentMaximum;
|
||||
}
|
||||
float GetBlueComponent() const noexcept {
|
||||
constexpr float GetBlueComponent() const noexcept {
|
||||
return GetBlue() / componentMaximum;
|
||||
}
|
||||
};
|
||||
@ -277,7 +277,7 @@ public:
|
||||
*/
|
||||
class ColourAlpha : public ColourDesired {
|
||||
public:
|
||||
explicit ColourAlpha(unsigned int co_ = 0) noexcept : ColourDesired(co_) {}
|
||||
constexpr explicit ColourAlpha(unsigned int co_ = 0) noexcept : ColourDesired(co_) {}
|
||||
|
||||
ColourAlpha(unsigned int red, unsigned int green, unsigned int blue) noexcept :
|
||||
ColourDesired(red | (green << 8) | (blue << 16)) {}
|
||||
@ -287,15 +287,15 @@ public:
|
||||
ColourAlpha(ColourDesired cd, unsigned int alpha) noexcept :
|
||||
ColourDesired(cd.AsInteger() | (alpha << 24)) {}
|
||||
|
||||
ColourDesired GetColour() const noexcept {
|
||||
constexpr ColourDesired GetColour() const noexcept {
|
||||
return ColourDesired(AsInteger() & 0xffffff);
|
||||
}
|
||||
|
||||
unsigned char GetAlpha() const noexcept {
|
||||
constexpr unsigned char GetAlpha() const noexcept {
|
||||
return (AsInteger() >> 24) & 0xff;
|
||||
}
|
||||
|
||||
float GetAlphaComponent() const noexcept {
|
||||
constexpr float GetAlphaComponent() const noexcept {
|
||||
return GetAlpha() / componentMaximum;
|
||||
}
|
||||
|
||||
|
||||
@ -31,6 +31,7 @@ Supported character encodings:
|
||||
|
||||
Master branch
|
||||
-------------
|
||||
* NEW API: ONIG_SYNTAX_PYTHON
|
||||
* NEW API: ONIG_OPTION_IGNORECASE_IS_ASCII
|
||||
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
Oniguruma API Version 6.9.7 2020/12/07
|
||||
Oniguruma API Version 6.9.7 2021/01/18
|
||||
|
||||
#include <oniguruma.h>
|
||||
|
||||
@ -82,10 +82,7 @@ Oniguruma API Version 6.9.7 2020/12/07
|
||||
ONIG_OPTION_EXTEND extended pattern form
|
||||
ONIG_OPTION_FIND_LONGEST find longest match
|
||||
ONIG_OPTION_FIND_NOT_EMPTY ignore empty match
|
||||
ONIG_OPTION_NEGATE_SINGLELINE
|
||||
clear ONIG_OPTION_SINGLELINE which is enabled on
|
||||
ONIG_SYNTAX_POSIX_BASIC, ONIG_SYNTAX_POSIX_EXTENDED,
|
||||
ONIG_SYNTAX_PERL, ONIG_SYNTAX_PERL_NG, ONIG_SYNTAX_JAVA
|
||||
ONIG_OPTION_NEGATE_SINGLELINE clear ONIG_OPTION_SINGLELINE which is enabled on ONIG_SYNTAX_POSIX_BASIC/POSIX_EXTENDED/PERL/PERL_NG/PYTHON/JAVA
|
||||
|
||||
ONIG_OPTION_DONT_CAPTURE_GROUP only named group captured.
|
||||
ONIG_OPTION_CAPTURE_GROUP named and no-named group captured.
|
||||
@ -153,6 +150,7 @@ Oniguruma API Version 6.9.7 2020/12/07
|
||||
ONIG_SYNTAX_JAVA Java (Sun java.util.regex)
|
||||
ONIG_SYNTAX_PERL Perl
|
||||
ONIG_SYNTAX_PERL_NG Perl + named group
|
||||
ONIG_SYNTAX_PYTHON Python
|
||||
ONIG_SYNTAX_ONIGURUMA Oniguruma
|
||||
ONIG_SYNTAX_DEFAULT default (== ONIG_SYNTAX_ONIGURUMA)
|
||||
onig_set_default_syntax()
|
||||
@ -680,7 +678,6 @@ Oniguruma API Version 6.9.7 2020/12/07
|
||||
|
||||
# OnigEncoding onig_get_encoding(regex_t* reg)
|
||||
# OnigOptionType onig_get_options(regex_t* reg)
|
||||
# OnigCaseFoldType onig_get_case_fold_flag(regex_t* reg)
|
||||
# OnigSyntaxType* onig_get_syntax(regex_t* reg)
|
||||
|
||||
Return a value of the regex object.
|
||||
@ -689,6 +686,15 @@ Oniguruma API Version 6.9.7 2020/12/07
|
||||
1 reg: regex object.
|
||||
|
||||
|
||||
# OnigCaseFoldType onig_get_case_fold_flag(regex_t* reg)
|
||||
|
||||
Return the case_fold_flag of the regex object.
|
||||
This function is deprecated.
|
||||
|
||||
arguments
|
||||
1 reg: regex object.
|
||||
|
||||
|
||||
# int onig_number_of_captures(regex_t* reg)
|
||||
|
||||
Return the number of capture group in the pattern.
|
||||
@ -896,11 +902,13 @@ Oniguruma API Version 6.9.7 2020/12/07
|
||||
# OnigCaseFoldType onig_get_default_case_fold_flag()
|
||||
|
||||
Get default case fold flag.
|
||||
This function is deprecated.
|
||||
|
||||
|
||||
# int onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag)
|
||||
|
||||
Set default case fold flag.
|
||||
This function is deprecated.
|
||||
|
||||
1 case_fold_flag: case fold flag
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
oniguruma.h - Oniguruma (regular expression library)
|
||||
**********************************************************************/
|
||||
/*-
|
||||
* Copyright (c) 2002-2020 K.Kosako
|
||||
* Copyright (c) 2002-2021 K.Kosako
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -441,6 +441,7 @@ ONIG_EXTERN OnigSyntaxType OnigSyntaxJava;
|
||||
ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl;
|
||||
ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl_NG;
|
||||
ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby;
|
||||
ONIG_EXTERN OnigSyntaxType OnigSyntaxPython;
|
||||
ONIG_EXTERN OnigSyntaxType OnigSyntaxOniguruma;
|
||||
|
||||
/* predefined syntaxes (see regsyntax.c) */
|
||||
@ -454,6 +455,7 @@ ONIG_EXTERN OnigSyntaxType OnigSyntaxOniguruma;
|
||||
#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl)
|
||||
#define ONIG_SYNTAX_PERL_NG (&OnigSyntaxPerl_NG)
|
||||
#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby)
|
||||
#define ONIG_SYNTAX_PYTHON (&OnigSyntaxPython)
|
||||
#define ONIG_SYNTAX_ONIGURUMA (&OnigSyntaxOniguruma)
|
||||
|
||||
/* default syntax */
|
||||
@ -526,6 +528,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax;
|
||||
#define ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS (1U<<28) /* (?{...}) (?{{...}}) */
|
||||
#define ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME (1U<<29) /* (*name) (*name{a,..}) */
|
||||
#define ONIG_SYN_OP2_OPTION_ONIGURUMA (1U<<30) /* (?imxWDSPy) */
|
||||
#define ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME (1U<<31) /* (?P<name>...) (?P=name) */
|
||||
|
||||
/* syntax (behavior) */
|
||||
#define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1U<<31) /* not implemented */
|
||||
@ -541,6 +544,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax;
|
||||
#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) /* a{n}?=(?:a{n})? */
|
||||
#define ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH (1U<<10) /* ..(?i)...|... */
|
||||
#define ONIG_SYN_VARIABLE_LEN_LOOK_BEHIND (1U<<11) /* (?<=a+|..) */
|
||||
#define ONIG_SYN_PYTHON (1U<<12) /* \UHHHHHHHH */
|
||||
|
||||
/* syntax (behavior) in char class [...] */
|
||||
#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */
|
||||
@ -623,6 +627,7 @@ ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax;
|
||||
#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209
|
||||
#define ONIGERR_TOO_MANY_CAPTURES -210
|
||||
#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212
|
||||
#define ONIGERR_UNDEFINED_OPERATOR -213
|
||||
#define ONIGERR_EMPTY_GROUP_NAME -214
|
||||
#define ONIGERR_INVALID_GROUP_NAME -215
|
||||
#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
regerror.c - Oniguruma (regular expression library)
|
||||
**********************************************************************/
|
||||
/*-
|
||||
* Copyright (c) 2002-2020 K.Kosako
|
||||
* Copyright (c) 2002-2021 K.Kosako
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -146,6 +146,8 @@ onig_error_code_to_format(int code)
|
||||
p = "too big wide-char value"; break;
|
||||
case ONIGERR_TOO_LONG_WIDE_CHAR_VALUE:
|
||||
p = "too long wide-char value"; break;
|
||||
case ONIGERR_UNDEFINED_OPERATOR:
|
||||
p = "undefined operator"; break;
|
||||
case ONIGERR_INVALID_CODE_POINT_VALUE:
|
||||
p = "invalid code point value"; break;
|
||||
case ONIGERR_EMPTY_GROUP_NAME:
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
regparse.c - Oniguruma (regular expression library)
|
||||
**********************************************************************/
|
||||
/*-
|
||||
* Copyright (c) 2002-2020 K.Kosako
|
||||
* Copyright (c) 2002-2021 K.Kosako
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -5061,6 +5061,7 @@ fetch_token_cc(PToken* tok, UChar** src, UChar* end, ScanEnv* env, int state)
|
||||
int r;
|
||||
OnigCodePoint code;
|
||||
OnigCodePoint c, c2;
|
||||
int mindigits, maxdigits;
|
||||
OnigSyntaxType* syn = env->syntax;
|
||||
OnigEncoding enc = env->enc;
|
||||
UChar* prev;
|
||||
@ -5249,10 +5250,11 @@ fetch_token_cc(PToken* tok, UChar** src, UChar* end, ScanEnv* env, int state)
|
||||
|
||||
case 'u':
|
||||
if (PEND) break;
|
||||
|
||||
prev = p;
|
||||
if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_U_HEX4)) {
|
||||
r = scan_hexadecimal_number(&p, end, 4, 4, enc, &code);
|
||||
mindigits = maxdigits = 4;
|
||||
u_hex_digits:
|
||||
r = scan_hexadecimal_number(&p, end, mindigits, maxdigits, enc, &code);
|
||||
if (r < 0) return r;
|
||||
if (p == prev) { /* can't read nothing. */
|
||||
code = 0; /* but, it's not error */
|
||||
@ -5263,6 +5265,15 @@ fetch_token_cc(PToken* tok, UChar** src, UChar* end, ScanEnv* env, int state)
|
||||
}
|
||||
break;
|
||||
|
||||
case 'U':
|
||||
if (PEND) break;
|
||||
prev = p;
|
||||
if (IS_SYNTAX_BV(syn, ONIG_SYN_PYTHON)) {
|
||||
mindigits = maxdigits = 8;
|
||||
goto u_hex_digits;
|
||||
}
|
||||
break;
|
||||
|
||||
case '0':
|
||||
case '1': case '2': case '3': case '4': case '5': case '6': case '7':
|
||||
if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_OCTAL3)) {
|
||||
@ -5334,10 +5345,17 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
int r;
|
||||
OnigCodePoint code;
|
||||
OnigCodePoint c;
|
||||
OnigEncoding enc = env->enc;
|
||||
OnigSyntaxType* syn = env->syntax;
|
||||
int mindigits, maxdigits;
|
||||
UChar* prev;
|
||||
UChar* p = *src;
|
||||
int allow_num;
|
||||
OnigEncoding enc;
|
||||
OnigSyntaxType* syn;
|
||||
UChar* p;
|
||||
|
||||
enc = env->enc;
|
||||
syn = env->syntax;
|
||||
p = *src;
|
||||
|
||||
PFETCH_READY;
|
||||
|
||||
if (tok->code_point_continue != 0) {
|
||||
@ -5576,12 +5594,20 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
break;
|
||||
|
||||
case 'Z':
|
||||
if (IS_SYNTAX_BV(syn, ONIG_SYN_PYTHON)) {
|
||||
goto end_buf;
|
||||
}
|
||||
else {
|
||||
if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break;
|
||||
tok->type = TK_ANCHOR;
|
||||
tok->u.subtype = ANCR_SEMI_END_BUF;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
if (IS_SYNTAX_BV(syn, ONIG_SYN_PYTHON))
|
||||
return ONIGERR_UNDEFINED_OPERATOR;
|
||||
|
||||
if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break;
|
||||
end_buf:
|
||||
tok->type = TK_ANCHOR;
|
||||
@ -5670,10 +5696,11 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
|
||||
case 'u':
|
||||
if (PEND) break;
|
||||
|
||||
prev = p;
|
||||
mindigits = maxdigits = 4;
|
||||
if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_U_HEX4)) {
|
||||
r = scan_hexadecimal_number(&p, end, 4, 4, enc, &code);
|
||||
u_hex_digits:
|
||||
r = scan_hexadecimal_number(&p, end, mindigits, maxdigits, enc, &code);
|
||||
if (r < 0) return r;
|
||||
if (p == prev) { /* can't read nothing. */
|
||||
code = 0; /* but, it's not error */
|
||||
@ -5684,6 +5711,15 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
}
|
||||
break;
|
||||
|
||||
case 'U':
|
||||
if (PEND) break;
|
||||
prev = p;
|
||||
if (IS_SYNTAX_BV(syn, ONIG_SYN_PYTHON)) {
|
||||
mindigits = maxdigits = 8;
|
||||
goto u_hex_digits;
|
||||
}
|
||||
break;
|
||||
|
||||
case '1': case '2': case '3': case '4':
|
||||
case '5': case '6': case '7': case '8': case '9':
|
||||
PUNFETCH;
|
||||
@ -5745,6 +5781,9 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
int back_num;
|
||||
enum REF_NUM num_type;
|
||||
|
||||
allow_num = 1;
|
||||
|
||||
backref_start:
|
||||
prev = p;
|
||||
|
||||
#ifdef USE_BACKREF_WITH_LEVEL
|
||||
@ -5759,6 +5798,8 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
if (r < 0) return r;
|
||||
|
||||
if (num_type != IS_NOT_NUM) {
|
||||
if (allow_num == 0) return ONIGERR_INVALID_BACKREF;
|
||||
|
||||
if (num_type == IS_REL_NUM) {
|
||||
back_num = backref_rel_to_abs(back_num, env);
|
||||
}
|
||||
@ -5815,12 +5856,17 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
UChar* name_end;
|
||||
enum REF_NUM num_type;
|
||||
|
||||
allow_num = 1;
|
||||
|
||||
call_start:
|
||||
prev = p;
|
||||
r = fetch_name((OnigCodePoint )c, &p, end, &name_end, env,
|
||||
&gnum, &num_type, TRUE);
|
||||
if (r < 0) return r;
|
||||
|
||||
if (num_type != IS_NOT_NUM) {
|
||||
if (allow_num == 0) return ONIGERR_UNDEFINED_GROUP_REFERENCE;
|
||||
|
||||
if (num_type == IS_REL_NUM) {
|
||||
gnum = backref_rel_to_abs(gnum, env);
|
||||
if (gnum < 0) {
|
||||
@ -5977,6 +6023,7 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
case '(':
|
||||
if (!PEND && PPEEK_IS('?') &&
|
||||
IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_QMARK_GROUP_EFFECT)) {
|
||||
prev = p;
|
||||
PINC;
|
||||
if (! PEND) {
|
||||
c = PPEEK;
|
||||
@ -6064,11 +6111,35 @@ fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (c == 'P' &&
|
||||
IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME)) {
|
||||
PINC; /* skip 'P' */
|
||||
if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;
|
||||
PFETCH(c);
|
||||
allow_num = 0;
|
||||
if (c == '=') {
|
||||
c = '(';
|
||||
goto backref_start;
|
||||
}
|
||||
else if (c == '>') {
|
||||
#ifdef USE_CALL
|
||||
c = '(';
|
||||
goto call_start;
|
||||
#else
|
||||
return ONIGERR_UNDEFINED_OPERATOR;
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
p = prev;
|
||||
goto lparen_qmark_end2;
|
||||
}
|
||||
}
|
||||
}
|
||||
lparen_qmark_end:
|
||||
PUNFETCH;
|
||||
}
|
||||
|
||||
lparen_qmark_end2:
|
||||
if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LPAREN_SUBEXP)) break;
|
||||
tok->type = TK_SUBEXP_OPEN;
|
||||
break;
|
||||
@ -7934,12 +8005,26 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end,
|
||||
break;
|
||||
#endif
|
||||
|
||||
case 'P':
|
||||
if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME)) {
|
||||
if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;
|
||||
PFETCH(c);
|
||||
if (c == '<') goto named_group1;
|
||||
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
}
|
||||
/* else fall */
|
||||
case 'W': case 'D': case 'S':
|
||||
case 'y':
|
||||
if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA))
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
/* else fall */
|
||||
|
||||
#ifdef USE_POSIXLINE_OPTION
|
||||
case 'p':
|
||||
#endif
|
||||
case 'a':
|
||||
case '-': case 'i': case 'm': case 's': case 'x':
|
||||
case 'W': case 'D': case 'S': case 'P':
|
||||
case 'y':
|
||||
{
|
||||
int neg = 0;
|
||||
|
||||
@ -7976,10 +8061,26 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end,
|
||||
OPTION_NEGATE(option, ONIG_OPTION_MULTILINE|ONIG_OPTION_SINGLELINE, neg);
|
||||
break;
|
||||
#endif
|
||||
case 'W': OPTION_NEGATE(option, ONIG_OPTION_WORD_IS_ASCII, neg); break;
|
||||
case 'D': OPTION_NEGATE(option, ONIG_OPTION_DIGIT_IS_ASCII, neg); break;
|
||||
case 'S': OPTION_NEGATE(option, ONIG_OPTION_SPACE_IS_ASCII, neg); break;
|
||||
case 'P': OPTION_NEGATE(option, ONIG_OPTION_POSIX_IS_ASCII, neg); break;
|
||||
case 'W':
|
||||
if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA))
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
OPTION_NEGATE(option, ONIG_OPTION_WORD_IS_ASCII, neg);
|
||||
break;
|
||||
case 'D':
|
||||
if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA))
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
OPTION_NEGATE(option, ONIG_OPTION_DIGIT_IS_ASCII, neg);
|
||||
break;
|
||||
case 'S':
|
||||
if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA))
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
OPTION_NEGATE(option, ONIG_OPTION_SPACE_IS_ASCII, neg);
|
||||
break;
|
||||
case 'P':
|
||||
if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA))
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
OPTION_NEGATE(option, ONIG_OPTION_POSIX_IS_ASCII, neg);
|
||||
break;
|
||||
|
||||
case 'y': /* y{g}, y{w} */
|
||||
{
|
||||
@ -8018,8 +8119,15 @@ prs_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end,
|
||||
PFETCH(c);
|
||||
if (c != '}')
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
break;
|
||||
} /* case 'y' */
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_PYTHON))
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
|
||||
OPTION_NEGATE(option, ONIG_OPTION_POSIX_IS_ASCII, neg);
|
||||
break;
|
||||
|
||||
default:
|
||||
return ONIGERR_UNDEFINED_GROUP_OPTION;
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
regposix.c - Oniguruma (regular expression library)
|
||||
**********************************************************************/
|
||||
/*-
|
||||
* Copyright (c) 2002-2020 K.Kosako
|
||||
* Copyright (c) 2002-2021 K.Kosako
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -120,6 +120,7 @@ onig2posix_error_code(int code)
|
||||
{ ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED, REG_BADPAT },
|
||||
{ ONIGERR_TOO_BIG_WIDE_CHAR_VALUE, REG_EONIG_BADWC },
|
||||
{ ONIGERR_TOO_LONG_WIDE_CHAR_VALUE, REG_EONIG_BADWC },
|
||||
{ ONIGERR_UNDEFINED_OPERATOR, REG_BADPAT },
|
||||
{ ONIGERR_INVALID_CODE_POINT_VALUE, REG_EONIG_BADWC },
|
||||
{ ONIGERR_EMPTY_GROUP_NAME, REG_BADPAT },
|
||||
{ ONIGERR_INVALID_GROUP_NAME, REG_BADPAT },
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
regsyntax.c - Oniguruma (regular expression library)
|
||||
**********************************************************************/
|
||||
/*-
|
||||
* Copyright (c) 2002-2020 K.Kosako
|
||||
* Copyright (c) 2002-2021 K.Kosako
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -240,6 +240,35 @@ OnigSyntaxType OnigSyntaxPerl_NG = {
|
||||
}
|
||||
};
|
||||
|
||||
/* Python 3.9 */
|
||||
OnigSyntaxType OnigSyntaxPython = {
|
||||
(( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |
|
||||
ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 |
|
||||
ONIG_SYN_OP_ESC_CONTROL_CHARS |
|
||||
ONIG_SYN_OP_ESC_C_CONTROL )
|
||||
& ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END )
|
||||
, ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL |
|
||||
ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE |
|
||||
ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME |
|
||||
ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY |
|
||||
ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |
|
||||
ONIG_SYN_OP2_QMARK_CAPITAL_P_NAME |
|
||||
ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP |
|
||||
ONIG_SYN_OP2_ESC_V_VTAB | ONIG_SYN_OP2_ESC_U_HEX4 )
|
||||
, ( SYN_GNU_REGEX_BV | ONIG_SYN_ISOLATED_OPTION_CONTINUE_BRANCH |
|
||||
ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV | ONIG_SYN_PYTHON )
|
||||
, ONIG_OPTION_SINGLELINE
|
||||
,
|
||||
{
|
||||
(OnigCodePoint )'\\' /* esc */
|
||||
, (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */
|
||||
, (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */
|
||||
, (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */
|
||||
, (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */
|
||||
, (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
extern int
|
||||
|
||||
@ -538,7 +538,7 @@ public:
|
||||
};
|
||||
using TextPositions = VarBuffer<XYPOSITION, stackBufferLength>;
|
||||
|
||||
class SurfaceGDI : public Surface {
|
||||
class SurfaceGDI final : public Surface {
|
||||
bool unicodeMode = false;
|
||||
HDC hdc{};
|
||||
bool hdcOwned = false;
|
||||
@ -798,7 +798,7 @@ constexpr byte AlphaScaled(unsigned char component, unsigned int alpha) noexcept
|
||||
return static_cast<byte>(component * alpha / 255);
|
||||
}
|
||||
|
||||
const inline DWORD dwordMultiplied(ColourDesired colour, unsigned int alpha) noexcept {
|
||||
constexpr DWORD dwordMultiplied(ColourDesired colour, unsigned int alpha) noexcept {
|
||||
return dwordFromBGRA(
|
||||
AlphaScaled(colour.GetBlue(), alpha),
|
||||
AlphaScaled(colour.GetGreen(), alpha),
|
||||
@ -1206,7 +1206,7 @@ constexpr D2D1_RECT_F RectangleFromPRectangle(PRectangle rc) noexcept {
|
||||
|
||||
class BlobInline;
|
||||
|
||||
class SurfaceD2D : public Surface {
|
||||
class SurfaceD2D final : public Surface {
|
||||
bool unicodeMode = false;
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
@ -1553,25 +1553,27 @@ void SurfaceD2D::RoundedRectangle(PRectangle rc, ColourDesired fore, ColourDesir
|
||||
void SurfaceD2D::AlphaRectangle(PRectangle rc, int cornerSize, ColourDesired fill, int alphaFill,
|
||||
ColourDesired outline, int alphaOutline, int /* flags*/) {
|
||||
if (pRenderTarget) {
|
||||
float const left = std::round(rc.left);
|
||||
float const right = std::round(rc.right);
|
||||
if (cornerSize == 0) {
|
||||
// When corner size is zero, draw square rectangle to prevent blurry pixels at corners
|
||||
const D2D1_RECT_F rectFill = D2D1::RectF(std::round(rc.left) + 1.0f, rc.top + 1.0f, std::round(rc.right) - 1.0f, rc.bottom - 1.0f);
|
||||
const D2D1_RECT_F rectFill = D2D1::RectF(left + 1.0f, rc.top + 1.0f, right - 1.0f, rc.bottom - 1.0f);
|
||||
D2DPenColour(fill, alphaFill);
|
||||
pRenderTarget->FillRectangle(rectFill, pBrush);
|
||||
|
||||
const D2D1_RECT_F rectOutline = D2D1::RectF(std::round(rc.left) + 0.5f, rc.top + 0.5f, std::round(rc.right) - 0.5f, rc.bottom - 0.5f);
|
||||
const D2D1_RECT_F rectOutline = D2D1::RectF(left + 0.5f, rc.top + 0.5f, right - 0.5f, rc.bottom - 0.5f);
|
||||
D2DPenColour(outline, alphaOutline);
|
||||
pRenderTarget->DrawRectangle(rectOutline, pBrush);
|
||||
} else {
|
||||
const float cornerSizeF = static_cast<float>(cornerSize);
|
||||
D2D1_ROUNDED_RECT roundedRectFill = {
|
||||
D2D1::RectF(std::round(rc.left) + 1.0f, rc.top + 1.0f, std::round(rc.right) - 1.0f, rc.bottom - 1.0f),
|
||||
D2D1::RectF(left + 1.0f, rc.top + 1.0f, right - 1.0f, rc.bottom - 1.0f),
|
||||
cornerSizeF - 1.0f, cornerSizeF - 1.0f };
|
||||
D2DPenColour(fill, alphaFill);
|
||||
pRenderTarget->FillRoundedRectangle(roundedRectFill, pBrush);
|
||||
|
||||
D2D1_ROUNDED_RECT roundedRect = {
|
||||
D2D1::RectF(std::round(rc.left) + 0.5f, rc.top + 0.5f, std::round(rc.right) - 0.5f, rc.bottom - 0.5f),
|
||||
D2D1::RectF(left + 0.5f, rc.top + 0.5f, right - 0.5f, rc.bottom - 0.5f),
|
||||
cornerSizeF, cornerSizeF };
|
||||
D2DPenColour(outline, alphaOutline);
|
||||
pRenderTarget->DrawRoundedRectangle(roundedRect, pBrush);
|
||||
@ -1581,12 +1583,13 @@ void SurfaceD2D::AlphaRectangle(PRectangle rc, int cornerSize, ColourDesired fil
|
||||
|
||||
namespace {
|
||||
|
||||
inline D2D_COLOR_F ColorFromColourAlpha(ColourAlpha colour) noexcept {
|
||||
D2D_COLOR_F col;
|
||||
col.r = colour.GetRedComponent();
|
||||
col.g = colour.GetGreenComponent();
|
||||
col.b = colour.GetBlueComponent();
|
||||
col.a = colour.GetAlphaComponent();
|
||||
constexpr D2D_COLOR_F ColorFromColourAlpha(ColourAlpha colour) noexcept {
|
||||
D2D_COLOR_F col = {
|
||||
colour.GetRedComponent(),
|
||||
colour.GetGreenComponent(),
|
||||
colour.GetBlueComponent(),
|
||||
colour.GetAlphaComponent()
|
||||
};
|
||||
return col;
|
||||
}
|
||||
|
||||
@ -1623,8 +1626,9 @@ void SurfaceD2D::GradientRectangle(PRectangle rc, const std::vector<ColourStop>
|
||||
if (SUCCEEDED(hr) && pBrushLinear) {
|
||||
const D2D1_RECT_F rectangle = D2D1::RectF(std::round(rc.left), rc.top, std::round(rc.right), rc.bottom);
|
||||
pRenderTarget->FillRectangle(&rectangle, pBrushLinear);
|
||||
ReleaseUnknown(pBrushLinear);
|
||||
}
|
||||
ReleaseUnknown(pBrushLinear);
|
||||
ReleaseUnknown(pGradientStops);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2570,7 +2574,7 @@ ListBox::ListBox() noexcept = default;
|
||||
|
||||
ListBox::~ListBox() = default;
|
||||
|
||||
class ListBoxX : public ListBox {
|
||||
class ListBoxX final : public ListBox {
|
||||
int lineHeight;
|
||||
FontID fontCopy;
|
||||
int technology;
|
||||
@ -3462,13 +3466,7 @@ LRESULT ListBoxX::WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam
|
||||
wheelDelta -= GET_WHEEL_DELTA_WPARAM(wParam);
|
||||
if (std::abs(wheelDelta) >= WHEEL_DELTA) {
|
||||
const int nRows = GetVisibleRows();
|
||||
int linesToScroll = 1;
|
||||
if (nRows > 1) {
|
||||
linesToScroll = nRows - 1;
|
||||
}
|
||||
if (linesToScroll > 3) {
|
||||
linesToScroll = 3;
|
||||
}
|
||||
int linesToScroll = std::clamp(nRows - 1, 1, 3);
|
||||
linesToScroll *= (wheelDelta / WHEEL_DELTA);
|
||||
int top = ListBox_GetTopIndex(lb) + linesToScroll;
|
||||
if (top < 0) {
|
||||
|
||||
@ -231,7 +231,7 @@ class ScintillaWin; // Forward declaration for COM interface subobjects
|
||||
|
||||
/**
|
||||
*/
|
||||
class FormatEnumerator : public IEnumFORMATETC {
|
||||
class FormatEnumerator final : public IEnumFORMATETC {
|
||||
ULONG ref;
|
||||
ULONG pos;
|
||||
std::vector<CLIPFORMAT> formats;
|
||||
@ -254,7 +254,7 @@ public:
|
||||
|
||||
/**
|
||||
*/
|
||||
class DropSource : public IDropSource {
|
||||
class DropSource final : public IDropSource {
|
||||
public:
|
||||
ScintillaWin *sci = nullptr;
|
||||
DropSource() noexcept = default;
|
||||
@ -272,7 +272,7 @@ public:
|
||||
|
||||
/**
|
||||
*/
|
||||
class DataObject : public IDataObject {
|
||||
class DataObject final : public IDataObject {
|
||||
public:
|
||||
ScintillaWin *sci = nullptr;
|
||||
DataObject() noexcept = default;
|
||||
@ -297,7 +297,7 @@ public:
|
||||
|
||||
/**
|
||||
*/
|
||||
class DropTarget : public IDropTarget {
|
||||
class DropTarget final : public IDropTarget {
|
||||
public:
|
||||
ScintillaWin *sci = nullptr;
|
||||
DropTarget() noexcept = default;
|
||||
@ -434,7 +434,8 @@ class ScintillaWin final :
|
||||
SetCoalescableTimerSig SetCoalescableTimerFn;
|
||||
#endif
|
||||
|
||||
unsigned int linesPerScroll; ///< Intellimouse support
|
||||
UINT linesPerScroll; ///< Intellimouse support
|
||||
UINT charsPerScroll; ///< Intellimouse support
|
||||
int wheelDelta; ///< Wheel delta from roll
|
||||
|
||||
DPI_T dpi = { USER_DEFAULT_SCREEN_DPI, USER_DEFAULT_SCREEN_DPI };
|
||||
@ -676,6 +677,7 @@ ScintillaWin::ScintillaWin(HWND hwnd) {
|
||||
#endif
|
||||
|
||||
linesPerScroll = 0;
|
||||
charsPerScroll = 0;
|
||||
wheelDelta = 0; // Wheel delta from roll
|
||||
|
||||
dpi = GetWindowDPI(hwnd);
|
||||
@ -763,8 +765,8 @@ void ScintillaWin::Init() noexcept {
|
||||
|
||||
void ScintillaWin::Finalise() noexcept {
|
||||
ScintillaBase::Finalise();
|
||||
for (TickReason tr = tickCaret; tr <= tickDwell; tr = static_cast<TickReason>(tr + 1)) {
|
||||
FineTickerCancel(tr);
|
||||
for (int tr = tickCaret; tr <= tickDwell; tr = tr + 1) {
|
||||
FineTickerCancel(static_cast<TickReason>(tr));
|
||||
}
|
||||
SetIdle(false);
|
||||
#if defined(USE_D2D)
|
||||
@ -884,7 +886,7 @@ bool ScintillaWin::DragThreshold(Point ptStart, Point ptNow) noexcept {
|
||||
const XYPOSITION xMove = std::trunc(std::abs(ptDifference.x));
|
||||
const XYPOSITION yMove = std::trunc(std::abs(ptDifference.y));
|
||||
return (xMove > SystemMetricsForDpi(SM_CXDRAG, dpi.x)) ||
|
||||
(yMove > SystemMetricsForDpi(SM_CYDRAG, dpi.y));
|
||||
(yMove > SystemMetricsForDpi(SM_CYDRAG, dpi.y));
|
||||
}
|
||||
|
||||
void ScintillaWin::StartDrag() {
|
||||
@ -1457,16 +1459,16 @@ unsigned int SciMessageFromEM(unsigned int iMessage) noexcept {
|
||||
case EM_LINEINDEX: return SCI_POSITIONFROMLINE;
|
||||
case EM_LINESCROLL: return SCI_LINESCROLL;
|
||||
case EM_REDO: return SCI_REDO;
|
||||
case EM_UNDO: return SCI_UNDO;
|
||||
case EM_SCROLL: return WM_VSCROLL;
|
||||
case EM_REPLACESEL: return SCI_REPLACESEL;
|
||||
case EM_SCROLL: return WM_VSCROLL;
|
||||
case EM_SCROLLCARET: return SCI_SCROLLCARET;
|
||||
case EM_SETREADONLY: return SCI_SETREADONLY;
|
||||
case EM_UNDO: return SCI_UNDO;
|
||||
case WM_CLEAR: return SCI_CLEAR;
|
||||
case WM_COPY: return SCI_COPY;
|
||||
case WM_CUT: return SCI_CUT;
|
||||
case WM_SETTEXT: return SCI_SETTEXT;
|
||||
case WM_PASTE: return SCI_PASTE;
|
||||
case WM_SETTEXT: return SCI_SETTEXT;
|
||||
case WM_UNDO: return SCI_UNDO;
|
||||
}
|
||||
return iMessage;
|
||||
@ -1709,21 +1711,40 @@ sptr_t ScintillaWin::MouseMessage(unsigned int iMessage, uptr_t wParam, sptr_t l
|
||||
// (A good idea for datazoom would be to "fold" or "unfold" details.
|
||||
// i.e. if datazoomed out only class structures are visible, when datazooming in the control
|
||||
// structures appear, then eventually the individual statements...)
|
||||
if (wParam & (MK_SHIFT | MK_RBUTTON)) {
|
||||
// send to client
|
||||
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
|
||||
//@@@if (wParam & (MK_SHIFT | MK_RBUTTON)) {
|
||||
if (wParam & MK_SHIFT) {
|
||||
if (vs.wrapState != WrapMode::none || charsPerScroll == 0) {
|
||||
return ::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
// Either SCROLL or ZOOM. We handle the wheel steppings calculation
|
||||
wheelDelta -= GET_WHEEL_DELTA_WPARAM(wParam);
|
||||
if (std::abs(wheelDelta) >= WHEEL_DELTA && linesPerScroll > 0) {
|
||||
if (std::abs(wheelDelta) < WHEEL_DELTA) {
|
||||
return 0;
|
||||
}
|
||||
if (wParam & MK_SHIFT) {
|
||||
int charsToScroll = charsPerScroll;
|
||||
if (charsPerScroll == WHEEL_PAGESCROLL) {
|
||||
const PRectangle rcText = GetTextRectangle();
|
||||
const int pageWidth = static_cast<int>(rcText.Width() * 2 / 3);
|
||||
charsToScroll = pageWidth;
|
||||
} else {
|
||||
charsToScroll = 1 + static_cast<int>(std::max(charsToScroll, 1) * vs.aveCharWidth);
|
||||
}
|
||||
charsToScroll *= (wheelDelta / WHEEL_DELTA);
|
||||
if (wheelDelta >= 0) {
|
||||
wheelDelta = wheelDelta % WHEEL_DELTA;
|
||||
} else {
|
||||
wheelDelta = -(-wheelDelta % WHEEL_DELTA);
|
||||
}
|
||||
HorizontalScrollTo(xOffset + charsToScroll);
|
||||
} else if (linesPerScroll > 0) {
|
||||
Sci::Line linesToScroll = linesPerScroll;
|
||||
if (linesPerScroll == WHEEL_PAGESCROLL) {
|
||||
linesToScroll = LinesOnScreen() - 1;
|
||||
}
|
||||
if (linesToScroll == 0) {
|
||||
linesToScroll = 1;
|
||||
}
|
||||
linesToScroll = std::max<Sci::Line>(linesToScroll, 1);
|
||||
linesToScroll *= (wheelDelta / WHEEL_DELTA);
|
||||
if (wheelDelta >= 0) {
|
||||
wheelDelta = wheelDelta % WHEEL_DELTA;
|
||||
@ -1739,10 +1760,8 @@ sptr_t ScintillaWin::MouseMessage(unsigned int iMessage, uptr_t wParam, sptr_t l
|
||||
} else {
|
||||
KeyCommand(SCI_ZOOMOUT);
|
||||
}
|
||||
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
|
||||
// send to main window too !
|
||||
// send to main window too (trigger Zoom CallTip) !
|
||||
::DefWindowProc(MainHWND(), iMessage, wParam, lParam);
|
||||
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
|
||||
} else {
|
||||
// Scroll
|
||||
ScrollTo(topLine + linesToScroll);
|
||||
@ -3251,6 +3270,7 @@ LRESULT ScintillaWin::ImeOnReconvert(LPARAM lParam) {
|
||||
void ScintillaWin::GetIntelliMouseParameters() noexcept {
|
||||
// This retrieves the number of lines per scroll as configured in the Mouse Properties sheet in Control Panel
|
||||
::SystemParametersInfo(SPI_GETWHEELSCROLLLINES, 0, &linesPerScroll, 0);
|
||||
::SystemParametersInfo(SPI_GETWHEELSCROLLCHARS, 0, &charsPerScroll, 0);
|
||||
}
|
||||
|
||||
void ScintillaWin::CopyToGlobal(GlobalMemory &gmUnicode, const SelectionText &selectedText, CopyEncoding encoding) {
|
||||
@ -3341,7 +3361,7 @@ void ScintillaWin::CopyToClipboard(const SelectionText &selectedText) {
|
||||
}
|
||||
|
||||
void ScintillaWin::ScrollMessage(WPARAM wParam) {
|
||||
//DWORD dwStart = timeGetTime();
|
||||
//DWORD dwStart = GetTickCount();
|
||||
//Platform::DebugPrintf("Scroll %x %d\n", wParam, lParam);
|
||||
|
||||
SCROLLINFO sci = {};
|
||||
@ -3752,7 +3772,7 @@ STDMETHODIMP ScintillaWin::Drop(LPDATAOBJECT pIDataSource, DWORD grfKeyState, PO
|
||||
NotifyURIDropped(putf.c_str());
|
||||
} else {
|
||||
FORMATETC fmtr = { cfColumnSelect, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
|
||||
const bool isRectangular = (S_OK == pIDataSource->QueryGetData(&fmtr));
|
||||
const bool isRectangular = S_OK == pIDataSource->QueryGetData(&fmtr);
|
||||
|
||||
POINT rpt = { pt.x, pt.y };
|
||||
::ScreenToClient(MainHWND(), &rpt);
|
||||
@ -3824,7 +3844,7 @@ bool ScintillaWin::Register(HINSTANCE hInstance_) noexcept {
|
||||
wndclass.lpszClassName = L"Scintilla";
|
||||
scintillaClassAtom = ::RegisterClassExW(&wndclass);
|
||||
|
||||
const bool result = (0 != scintillaClassAtom);
|
||||
const bool result = 0 != scintillaClassAtom;
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -4002,7 +4022,7 @@ namespace Scintilla {
|
||||
}
|
||||
#else
|
||||
extern "C"
|
||||
sptr_t __stdcall Scintilla_DirectFunction(
|
||||
sptr_t SCI_METHOD Scintilla_DirectFunction(
|
||||
ScintillaWin* sci, UINT iMessage, uptr_t wParam, sptr_t lParam) {
|
||||
return sci->WndProc(iMessage, wParam, lParam);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user