From 55cd465b43bab0e515c19981bc234db9de6cd9b4 Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Tue, 5 May 2020 18:33:29 +0900 Subject: [PATCH] crystaledit: Make almost the same code into a common function --- .../crystaledit/Sample/SampleStatic.vs2017.vcxproj | 1 + .../Sample/SampleStatic.vs2017.vcxproj.filters | 3 + .../crystaledit/Sample/SampleStatic.vs2019.vcxproj | 1 + .../Sample/SampleStatic.vs2019.vcxproj.filters | 3 + Externals/crystaledit/editlib/asp.cpp | 388 +-------------------- Externals/crystaledit/editlib/basic.cpp | 28 +- Externals/crystaledit/editlib/batch.cpp | 30 +- Externals/crystaledit/editlib/cplusplus.cpp | 53 +-- Externals/crystaledit/editlib/crystallineparser.h | 9 + Externals/crystaledit/editlib/csharp.cpp | 30 +- Externals/crystaledit/editlib/dcl.cpp | 30 +- Externals/crystaledit/editlib/fortran.cpp | 30 +- Externals/crystaledit/editlib/go.cpp | 30 +- Externals/crystaledit/editlib/html.cpp | 384 +------------------- Externals/crystaledit/editlib/ini.cpp | 30 +- Externals/crystaledit/editlib/innosetup.cpp | 30 +- Externals/crystaledit/editlib/is.cpp | 30 +- Externals/crystaledit/editlib/isx.cpp | 378 ++++++++++++++++++++ Externals/crystaledit/editlib/java.cpp | 30 +- Externals/crystaledit/editlib/lisp.cpp | 30 +- Externals/crystaledit/editlib/lua.cpp | 53 +-- Externals/crystaledit/editlib/nsis.cpp | 30 +- Externals/crystaledit/editlib/pascal.cpp | 30 +- Externals/crystaledit/editlib/perl.cpp | 30 +- Externals/crystaledit/editlib/php.cpp | 388 +-------------------- Externals/crystaledit/editlib/po.cpp | 12 +- Externals/crystaledit/editlib/powershell.cpp | 30 +- Externals/crystaledit/editlib/python.cpp | 30 +- Externals/crystaledit/editlib/rexx.cpp | 30 +- Externals/crystaledit/editlib/rsrc.cpp | 30 +- Externals/crystaledit/editlib/ruby.cpp | 40 +-- Externals/crystaledit/editlib/rust.cpp | 53 +-- Externals/crystaledit/editlib/sgml.cpp | 146 +------- Externals/crystaledit/editlib/sh.cpp | 30 +- Externals/crystaledit/editlib/siod.cpp | 30 +- Externals/crystaledit/editlib/sql.cpp | 30 +- Externals/crystaledit/editlib/string_util.cpp | 20 -- Externals/crystaledit/editlib/string_util.h | 4 - Externals/crystaledit/editlib/tcl.cpp | 30 +- Externals/crystaledit/editlib/tex.cpp | 30 +- Externals/crystaledit/editlib/xml.cpp | 146 +------- Src/Merge.vs2017.vcxproj | 1 + Src/Merge.vs2017.vcxproj.filters | 3 + Src/Merge.vs2019.vcxproj | 3 +- Src/Merge.vs2019.vcxproj.filters | 3 + 45 files changed, 490 insertions(+), 2290 deletions(-) create mode 100644 Externals/crystaledit/editlib/isx.cpp diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj b/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj index 633f2f52b..cfa1d3b80 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj +++ b/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj @@ -513,6 +513,7 @@ + diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters b/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters index 18f07f366..2fea8270a 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters +++ b/Externals/crystaledit/Sample/SampleStatic.vs2017.vcxproj.filters @@ -237,6 +237,9 @@ editlib + + editlib\parsers + diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj b/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj index a8b4f3f5e..7b20ac030 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj +++ b/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj @@ -512,6 +512,7 @@ + diff --git a/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters b/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters index 12f9351ac..f4767bb52 100644 --- a/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters +++ b/Externals/crystaledit/Sample/SampleStatic.vs2019.vcxproj.filters @@ -237,6 +237,9 @@ editlib + + editlib\parsers + diff --git a/Externals/crystaledit/editlib/asp.cpp b/Externals/crystaledit/editlib/asp.cpp index c6bbb6225..397eb666d 100644 --- a/Externals/crystaledit/editlib/asp.cpp +++ b/Externals/crystaledit/editlib/asp.cpp @@ -23,334 +23,6 @@ #define new DEBUG_NEW #endif -// C++ keywords (MSVC5.0 + POET5.0) -static LPCTSTR s_apszHtmlKeywordList[] = - { - _T ("A"), - _T ("ABBR"), - _T ("ACRONYM"), - _T ("ADDRESS"), - _T ("APPLET"), - _T ("AREA"), - _T ("B"), - _T ("BASE"), - _T ("BASEFONT"), - _T ("BDO"), - _T ("BIG"), - _T ("BLOCKQUOTE"), - _T ("BODY"), - _T ("BR"), - _T ("BUTTON"), - _T ("CAPTION"), - _T ("CENTER"), - _T ("CITE"), - _T ("CODE"), - _T ("COL"), - _T ("COLGROUP"), - _T ("DD"), - _T ("DEL"), - _T ("DFN"), - _T ("DIR"), - _T ("DIV"), - _T ("DL"), - _T ("DOCTYPE"), - _T ("DT"), - _T ("EM"), - _T ("FIELDSET"), - _T ("FONT"), - _T ("FORM"), - _T ("FRAME"), - _T ("FRAMESET"), - _T ("H1"), - _T ("H2"), - _T ("H3"), - _T ("H4"), - _T ("H5"), - _T ("H6"), - _T ("HEAD"), - _T ("HR"), - _T ("HTML"), - _T ("I"), - _T ("IFRAME"), - _T ("IMG"), - _T ("INPUT"), - _T ("INS"), - _T ("ISINDEX"), - _T ("KBD"), - _T ("LABEL"), - _T ("LEGEND"), - _T ("LI"), - _T ("LINK"), - _T ("MAP"), - _T ("MENU"), - _T ("META"), - _T ("NOFRAMES"), - _T ("NOSCRIPT"), - _T ("OBJECT"), - _T ("OL"), - _T ("OPTGROUP"), - _T ("OPTION"), - _T ("P"), - _T ("PARAM"), - _T ("PRE"), - _T ("PUBLIC"), - _T ("Q"), - _T ("S"), - _T ("SAMP"), - _T ("SCRIPT"), - _T ("SELECT"), - _T ("SMALL"), - _T ("SPAN"), - _T ("STRIKE"), - _T ("STRONG"), - _T ("STYLE"), - _T ("SUB"), - _T ("SUP"), - _T ("TABLE"), - _T ("TBODY"), - _T ("TD"), - _T ("TEXTAREA"), - _T ("TFOOT"), - _T ("TH"), - _T ("THEAD"), - _T ("TITLE"), - _T ("TR"), - _T ("TT"), - _T ("U"), - _T ("UL"), - _T ("VAR"), - }; - -static LPCTSTR s_apszUser1KeywordList[] = - { - _T ("ABBR"), - _T ("ACCEPT-CHARSET"), - _T ("ACCEPT"), - _T ("ACCESSKEY"), - _T ("ACTION"), - _T ("ALIGN"), - _T ("ALINK"), - _T ("ALT"), - _T ("ARCHIVE"), - _T ("AXIS"), - _T ("BACKGROUND"), - _T ("BGCOLOR"), - _T ("BORDER"), - _T ("CELLPADDING"), - _T ("CELLSPACING"), - _T ("CHAR"), - _T ("CHAROFF"), - _T ("CHARSET"), - _T ("CHECKED"), - _T ("CITE"), - _T ("CLASS"), - _T ("CLASSID"), - _T ("CLEAR"), - _T ("CODE"), - _T ("CODEBASE"), - _T ("CODETYPE"), - _T ("COLOR"), - _T ("COLS"), - _T ("COLSPAN"), - _T ("COMPACT"), - _T ("CONTENT"), - _T ("COORDS"), - _T ("DATA"), - _T ("DATAFLD"), - _T ("DATAFORMATAS"), - _T ("DATASRC"), - _T ("DATETIME"), - _T ("DECLARE"), - _T ("DEFER"), - _T ("DIR"), - _T ("DISABLED"), - _T ("ENCTYPE"), - _T ("EVENT"), - _T ("FACE"), - _T ("FOR"), - _T ("FRAME"), - _T ("FRAMEBORDER"), - _T ("HEADERS"), - _T ("HEIGHT"), - _T ("HREF"), - _T ("HREFLANG"), - _T ("HSPACE"), - _T ("HTTP-EQUIV"), - _T ("ID"), - _T ("ISMAP"), - _T ("LABEL"), - _T ("LANG"), - _T ("LANGUAGE"), - _T ("LINK"), - _T ("LONGDESC"), - _T ("MARGINHEIGHT"), - _T ("MARGINWIDTH"), - _T ("MAXLENGTH"), - _T ("MEDIA"), - _T ("METHOD"), - _T ("MULTIPLE"), - _T ("NAME"), - _T ("NOHREF"), - _T ("NORESIZE"), - _T ("NOSHADE"), - _T ("NOWRAP"), - _T ("ONBLUR"), - _T ("ONCHANGE"), - _T ("ONCLICK"), - _T ("ONDBLCLICK"), - _T ("ONFOCUS"), - _T ("ONKEYDOWN"), - _T ("ONKEYPRESS"), - _T ("ONKEYUP"), - _T ("ONLOAD"), - _T ("ONMOUSEDOWN"), - _T ("ONMOUSEMOVE"), - _T ("ONMOUSEOUT"), - _T ("ONMOUSEOVER"), - _T ("ONMOUSEUP"), - _T ("ONRESET"), - _T ("ONSELECT"), - _T ("ONSUBMIT"), - _T ("ONUNLOAD"), - _T ("PROFILE"), - _T ("PROMPT"), - _T ("READONLY"), - _T ("REL"), - _T ("REV"), - _T ("ROWS"), - _T ("ROWSPAN"), - _T ("RULES"), - _T ("SCHEME"), - _T ("SCOPE"), - _T ("SCROLLING"), - _T ("SELECTED"), - _T ("SHAPE"), - _T ("SIZE"), - _T ("SPAN"), - _T ("SRC"), - _T ("STANDBY"), - _T ("START"), - _T ("STYLE"), - _T ("SUMMARY"), - _T ("TABINDEX"), - _T ("TARGET"), - _T ("TEXT"), - _T ("TITLE"), - _T ("TYPE"), - _T ("USEMAP"), - _T ("VALIGN"), - _T ("VALUE"), - _T ("VALUETYPE"), - _T ("VERSION"), - _T ("VLINK"), - _T ("VSPACE"), - _T ("WIDTH"), - }; - -static LPCTSTR s_apszUser2KeywordList[] = - { - _T ("aacute"), - _T ("Aacute"), - _T ("Acirc"), - _T ("acirc"), - _T ("acute"), - _T ("aelig"), - _T ("AElig"), - _T ("Agrave"), - _T ("agrave"), - _T ("amp"), - _T ("aring"), - _T ("Aring"), - _T ("Atilde"), - _T ("atilde"), - _T ("auml"), - _T ("Auml"), - _T ("brvbar"), - _T ("Ccedil"), - _T ("ccedil"), - _T ("cedil"), - _T ("cent"), - _T ("copy"), - _T ("curren"), - _T ("deg"), - _T ("divide"), - _T ("Eacute"), - _T ("eacute"), - _T ("ecirc"), - _T ("Ecirc"), - _T ("egrave"), - _T ("Egrave"), - _T ("eth"), - _T ("ETH"), - _T ("euml"), - _T ("Euml"), - _T ("frac12"), - _T ("frac14"), - _T ("frac34"), - _T ("gt"), - _T ("Iacute"), - _T ("iacute"), - _T ("Icirc"), - _T ("icirc"), - _T ("iexcl"), - _T ("igrave"), - _T ("Igrave"), - _T ("iquest"), - _T ("Iuml"), - _T ("iuml"), - _T ("laquo"), - _T ("lt"), - _T ("macr"), - _T ("micro"), - _T ("middot"), - _T ("nbsp"), - _T ("not"), - _T ("ntilde"), - _T ("Ntilde"), - _T ("Oacute"), - _T ("oacute"), - _T ("Ocirc"), - _T ("ocirc"), - _T ("ograve"), - _T ("Ograve"), - _T ("ordf"), - _T ("ordm"), - _T ("Oslash"), - _T ("oslash"), - _T ("otilde"), - _T ("Otilde"), - _T ("ouml"), - _T ("Ouml"), - _T ("para"), - _T ("plusmn"), - _T ("pound"), - _T ("quot"), - _T ("raquo"), - _T ("reg"), - _T ("sect"), - _T ("shy"), - _T ("sup1"), - _T ("sup2"), - _T ("sup3"), - _T ("szlig"), - _T ("thorn"), - _T ("THORN"), - _T ("times"), - _T ("Uacute"), - _T ("uacute"), - _T ("ucirc"), - _T ("Ucirc"), - _T ("Ugrave"), - _T ("ugrave"), - _T ("uml"), - _T ("uuml"), - _T ("Uuml"), - _T ("yacute"), - _T ("Yacute"), - _T ("yen"), - _T ("yuml"), - }; - static LPCTSTR s_apszAspKeywordList[] = { _T ("Abs"), @@ -515,55 +187,11 @@ static LPCTSTR s_apszAspKeywordList[] = }; static bool -IsHtmlKeyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszHtmlKeywordList, pszChars, nLength); -} - -static bool -IsUser1Keyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); -} - -static bool -IsUser2Keyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszUser2KeywordList, pszChars, nLength); -} - -static bool IsAspKeyword (LPCTSTR pszChars, int nLength) { return ISXKEYWORDI (s_apszAspKeywordList, pszChars, nLength); } -static bool -IsAspNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineAsp (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -756,11 +384,11 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsAspNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -775,7 +403,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsAspNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -806,7 +434,7 @@ out: } else if (dwCookie & COOKIE_USER1) { - if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } @@ -886,15 +514,15 @@ next: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsAspNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -925,7 +553,7 @@ next: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsAspNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/basic.cpp b/Externals/crystaledit/editlib/basic.cpp index 60ce2fdca..9fffc2c72 100644 --- a/Externals/crystaledit/editlib/basic.cpp +++ b/Externals/crystaledit/editlib/basic.cpp @@ -313,32 +313,6 @@ IsBasicKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszBasicKeywordList, pszChars, nLength); } -static bool -IsBasicNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - inline void DefineIdentiferBlock(const TCHAR *pszChars, int nLength, CrystalLineParser::TEXTBLOCK * pBuf, int &nActualItems, int nIdentBegin, int I) { @@ -346,7 +320,7 @@ DefineIdentiferBlock(const TCHAR *pszChars, int nLength, CrystalLineParser::TEXT { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsBasicNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (CrystalLineParser::IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/batch.cpp b/Externals/crystaledit/editlib/batch.cpp index 61a0dce5a..b45f40d8f 100644 --- a/Externals/crystaledit/editlib/batch.cpp +++ b/Externals/crystaledit/editlib/batch.cpp @@ -686,32 +686,6 @@ IsUser2Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser2KeywordList, pszChars, nLength); } -static bool -IsBatNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineBatch (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -908,7 +882,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsBatNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -944,7 +918,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsBatNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/cplusplus.cpp b/Externals/crystaledit/editlib/cplusplus.cpp index bd19ea319..7dd41927b 100644 --- a/Externals/crystaledit/editlib/cplusplus.cpp +++ b/Externals/crystaledit/editlib/cplusplus.cpp @@ -239,55 +239,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsCppNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0') - { - if (pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - else if (pszChars[1] == '0') - { - for (int I = 2; I < nLength; I++) - { - if ((pszChars[I] >= '0' && pszChars[I] <= '7') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - else if (pszChars[1] == 'b') - { - for (int I = 2; I < nLength; I++) - { - if ((pszChars[I] >= '0' && pszChars[I] <= '1') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - } - if (!_istdigit (pszChars[0]) && pszChars[0] != '.') - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E' && pszChars[I] != '_') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineC (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -469,7 +420,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsCppNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -510,7 +461,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsCppNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/crystallineparser.h b/Externals/crystaledit/editlib/crystallineparser.h index 54f5e4787..d5e5e3941 100644 --- a/Externals/crystaledit/editlib/crystallineparser.h +++ b/Externals/crystaledit/editlib/crystallineparser.h @@ -1,5 +1,8 @@ #pragma once +#define ISXKEYWORD(keywordlist, key, keylen) CrystalLineParser::IsXKeyword(key, keylen, keywordlist, sizeof(keywordlist)/sizeof(keywordlist[0]), _tcsncmp) +#define ISXKEYWORDI(keywordlist, key, keylen) CrystalLineParser::IsXKeyword(key, keylen, keywordlist, sizeof(keywordlist)/sizeof(keywordlist[0]), _tcsnicmp) + #define DEFINE_BLOCK(pos, colorindex) \ ASSERT((pos) >= 0 && (pos) <= nLength);\ if (pBuf != nullptr)\ @@ -45,6 +48,12 @@ struct TEXTBLOCK int m_nBgColorIndex; }; +bool IsXKeyword(const TCHAR *pszKey, size_t nKeyLen, const TCHAR *pszKeywordList[], size_t nKeywordListCount, int(*compare)(const TCHAR *, const TCHAR *, size_t)); +bool IsXNumber(const TCHAR* pszChars, int nLength); +bool IsHtmlKeyword(const TCHAR *pszChars, int nLength); +bool IsHtmlUser1Keyword(const TCHAR *pszChars, int nLength); +bool IsHtmlUser2Keyword(const TCHAR *pszChars, int nLength); + DWORD ParseLinePlain(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); DWORD ParseLineAsp(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); DWORD ParseLineBasic(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems); diff --git a/Externals/crystaledit/editlib/csharp.cpp b/Externals/crystaledit/editlib/csharp.cpp index 3a636e757..a5bd92981 100644 --- a/Externals/crystaledit/editlib/csharp.cpp +++ b/Externals/crystaledit/editlib/csharp.cpp @@ -122,32 +122,6 @@ IsCppKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszCppKeywordList, pszChars, nLength); } -static bool -IsCppNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineCSharp (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -327,7 +301,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsCppNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -364,7 +338,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsCppNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/dcl.cpp b/Externals/crystaledit/editlib/dcl.cpp index a9ea318c7..547a00457 100644 --- a/Externals/crystaledit/editlib/dcl.cpp +++ b/Externals/crystaledit/editlib/dcl.cpp @@ -123,32 +123,6 @@ IsUser2Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszUser2KeywordList, pszChars, nLength); } -static bool -IsDclNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineDcl (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -315,7 +289,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsDclNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -374,7 +348,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsDclNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/fortran.cpp b/Externals/crystaledit/editlib/fortran.cpp index 597e8460f..fba94ad13 100644 --- a/Externals/crystaledit/editlib/fortran.cpp +++ b/Externals/crystaledit/editlib/fortran.cpp @@ -239,32 +239,6 @@ IsFortranKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszFortranKeywordList, pszChars, nLength); } -static bool -IsFortranNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineFortran (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -400,7 +374,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsFortranNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -417,7 +391,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsFortranNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/go.cpp b/Externals/crystaledit/editlib/go.cpp index 490f4c7f9..1f36852f9 100644 --- a/Externals/crystaledit/editlib/go.cpp +++ b/Externals/crystaledit/editlib/go.cpp @@ -108,32 +108,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsGoNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0]) && pszChars[0] != '.') - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineGo (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -304,7 +278,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsGoNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -345,7 +319,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsGoNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/html.cpp b/Externals/crystaledit/editlib/html.cpp index ea96d8c4d..3c1f6e0e8 100644 --- a/Externals/crystaledit/editlib/html.cpp +++ b/Externals/crystaledit/editlib/html.cpp @@ -23,378 +23,6 @@ #define new DEBUG_NEW #endif -// C++ keywords (MSVC5.0 + POET5.0) -static LPCTSTR s_apszHtmlKeywordList[] = - { - _T ("A"), - _T ("ABBR"), - _T ("ACRONYM"), - _T ("ADDRESS"), - _T ("APPLET"), - _T ("AREA"), - _T ("B"), - _T ("BASE"), - _T ("BASEFONT"), - _T ("BDO"), - _T ("BIG"), - _T ("BLOCKQUOTE"), - _T ("BODY"), - _T ("BR"), - _T ("BUTTON"), - _T ("CAPTION"), - _T ("CENTER"), - _T ("CITE"), - _T ("CODE"), - _T ("COL"), - _T ("COLGROUP"), - _T ("DD"), - _T ("DEL"), - _T ("DFN"), - _T ("DIR"), - _T ("DIV"), - _T ("DL"), - _T ("DOCTYPE"), - _T ("DT"), - _T ("EM"), - _T ("FIELDSET"), - _T ("FONT"), - _T ("FORM"), - _T ("FRAME"), - _T ("FRAMESET"), - _T ("H1"), - _T ("H2"), - _T ("H3"), - _T ("H4"), - _T ("H5"), - _T ("H6"), - _T ("HEAD"), - _T ("HR"), - _T ("HTML"), - _T ("I"), - _T ("IFRAME"), - _T ("IMG"), - _T ("INPUT"), - _T ("INS"), - _T ("ISINDEX"), - _T ("KBD"), - _T ("LABEL"), - _T ("LEGEND"), - _T ("LI"), - _T ("LINK"), - _T ("MAP"), - _T ("MENU"), - _T ("META"), - _T ("NOFRAMES"), - _T ("NOSCRIPT"), - _T ("OBJECT"), - _T ("OL"), - _T ("OPTGROUP"), - _T ("OPTION"), - _T ("P"), - _T ("PARAM"), - _T ("PRE"), - _T ("PUBLIC"), - _T ("Q"), - _T ("S"), - _T ("SAMP"), - _T ("SCRIPT"), - _T ("SELECT"), - _T ("SMALL"), - _T ("SPAN"), - _T ("STRIKE"), - _T ("STRONG"), - _T ("STYLE"), - _T ("SUB"), - _T ("SUP"), - _T ("TABLE"), - _T ("TBODY"), - _T ("TD"), - _T ("TEXTAREA"), - _T ("TFOOT"), - _T ("TH"), - _T ("THEAD"), - _T ("TITLE"), - _T ("TR"), - _T ("TT"), - _T ("U"), - _T ("UL"), - _T ("VAR"), - }; - -static LPCTSTR s_apszUser1KeywordList[] = - { - _T ("ABBR"), - _T ("ACCEPT"), - _T ("ACCEPT-CHARSET"), - _T ("ACCESSKEY"), - _T ("ACTION"), - _T ("ALIGN"), - _T ("ALINK"), - _T ("ALT"), - _T ("ARCHIVE"), - _T ("AXIS"), - _T ("BACKGROUND"), - _T ("BGCOLOR"), - _T ("BORDER"), - _T ("CELLPADDING"), - _T ("CELLSPACING"), - _T ("CHAR"), - _T ("CHAROFF"), - _T ("CHARSET"), - _T ("CHECKED"), - _T ("CITE"), - _T ("CLASS"), - _T ("CLASSID"), - _T ("CLEAR"), - _T ("CODE"), - _T ("CODEBASE"), - _T ("CODETYPE"), - _T ("COLOR"), - _T ("COLS"), - _T ("COLSPAN"), - _T ("COMPACT"), - _T ("CONTENT"), - _T ("COORDS"), - _T ("DATA"), - _T ("DATAFLD"), - _T ("DATAFORMATAS"), - _T ("DATASRC"), - _T ("DATETIME"), - _T ("DECLARE"), - _T ("DEFER"), - _T ("DIR"), - _T ("DISABLED"), - _T ("ENCTYPE"), - _T ("EVENT"), - _T ("FACE"), - _T ("FOR"), - _T ("FRAME"), - _T ("FRAMEBORDER"), - _T ("HEADERS"), - _T ("HEIGHT"), - _T ("HREF"), - _T ("HREFLANG"), - _T ("HSPACE"), - _T ("HTTP-EQUIV"), - _T ("ID"), - _T ("ISMAP"), - _T ("LABEL"), - _T ("LANG"), - _T ("LANGUAGE"), - _T ("LINK"), - _T ("LONGDESC"), - _T ("MARGINHEIGHT"), - _T ("MARGINWIDTH"), - _T ("MAXLENGTH"), - _T ("MEDIA"), - _T ("METHOD"), - _T ("MULTIPLE"), - _T ("NAME"), - _T ("NOHREF"), - _T ("NORESIZE"), - _T ("NOSHADE"), - _T ("NOWRAP"), - _T ("ONBLUR"), - _T ("ONCHANGE"), - _T ("ONCLICK"), - _T ("ONDBLCLICK"), - _T ("ONFOCUS"), - _T ("ONKEYDOWN"), - _T ("ONKEYPRESS"), - _T ("ONKEYUP"), - _T ("ONLOAD"), - _T ("ONMOUSEDOWN"), - _T ("ONMOUSEMOVE"), - _T ("ONMOUSEOUT"), - _T ("ONMOUSEOVER"), - _T ("ONMOUSEUP"), - _T ("ONRESET"), - _T ("ONSELECT"), - _T ("ONSUBMIT"), - _T ("ONUNLOAD"), - _T ("PROFILE"), - _T ("PROMPT"), - _T ("READONLY"), - _T ("REL"), - _T ("REV"), - _T ("ROWS"), - _T ("ROWSPAN"), - _T ("RULES"), - _T ("SCHEME"), - _T ("SCOPE"), - _T ("SCROLLING"), - _T ("SELECTED"), - _T ("SHAPE"), - _T ("SIZE"), - _T ("SPAN"), - _T ("SRC"), - _T ("STANDBY"), - _T ("START"), - _T ("STYLE"), - _T ("SUMMARY"), - _T ("TABINDEX"), - _T ("TARGET"), - _T ("TEXT"), - _T ("TITLE"), - _T ("TYPE"), - _T ("USEMAP"), - _T ("VALIGN"), - _T ("VALUE"), - _T ("VALUETYPE"), - _T ("VERSION"), - _T ("VLINK"), - _T ("VSPACE"), - _T ("WIDTH"), - }; - -static LPCTSTR s_apszUser2KeywordList[] = - { - _T ("Aacute"), - _T ("aacute"), - _T ("acirc"), - _T ("Acirc"), - _T ("acute"), - _T ("aelig"), - _T ("AElig"), - _T ("agrave"), - _T ("Agrave"), - _T ("amp"), - _T ("aring"), - _T ("Aring"), - _T ("Atilde"), - _T ("atilde"), - _T ("Auml"), - _T ("auml"), - _T ("brvbar"), - _T ("ccedil"), - _T ("Ccedil"), - _T ("cedil"), - _T ("cent"), - _T ("copy"), - _T ("curren"), - _T ("deg"), - _T ("divide"), - _T ("Eacute"), - _T ("eacute"), - _T ("Ecirc"), - _T ("ecirc"), - _T ("Egrave"), - _T ("egrave"), - _T ("eth"), - _T ("ETH"), - _T ("Euml"), - _T ("euml"), - _T ("frac12"), - _T ("frac14"), - _T ("frac34"), - _T ("gt"), - _T ("iacute"), - _T ("Iacute"), - _T ("icirc"), - _T ("Icirc"), - _T ("iexcl"), - _T ("Igrave"), - _T ("igrave"), - _T ("iquest"), - _T ("Iuml"), - _T ("iuml"), - _T ("laquo"), - _T ("lt"), - _T ("macr"), - _T ("micro"), - _T ("middot"), - _T ("nbsp"), - _T ("not"), - _T ("Ntilde"), - _T ("ntilde"), - _T ("Oacute"), - _T ("oacute"), - _T ("ocirc"), - _T ("Ocirc"), - _T ("ograve"), - _T ("Ograve"), - _T ("ordf"), - _T ("ordm"), - _T ("oslash"), - _T ("Oslash"), - _T ("otilde"), - _T ("Otilde"), - _T ("ouml"), - _T ("Ouml"), - _T ("para"), - _T ("plusmn"), - _T ("pound"), - _T ("quot"), - _T ("raquo"), - _T ("reg"), - _T ("sect"), - _T ("shy"), - _T ("sup1"), - _T ("sup2"), - _T ("sup3"), - _T ("szlig"), - _T ("thorn"), - _T ("THORN"), - _T ("times"), - _T ("uacute"), - _T ("Uacute"), - _T ("Ucirc"), - _T ("ucirc"), - _T ("ugrave"), - _T ("Ugrave"), - _T ("uml"), - _T ("uuml"), - _T ("Uuml"), - _T ("Yacute"), - _T ("yacute"), - _T ("yen"), - _T ("yuml"), - }; - -static bool -IsHtmlKeyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszHtmlKeywordList, pszChars, nLength); -} - -static bool -IsUser1Keyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); -} - -static bool -IsUser2Keyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszUser2KeywordList, pszChars, nLength); -} - -static bool -IsHtmlNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineHtml (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -565,11 +193,11 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsHtmlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -580,7 +208,7 @@ out: } else if (dwCookie & COOKIE_USER1) { - if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } @@ -668,15 +296,15 @@ next: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsHtmlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/ini.cpp b/Externals/crystaledit/editlib/ini.cpp index f9240bc13..daf3cb08d 100644 --- a/Externals/crystaledit/editlib/ini.cpp +++ b/Externals/crystaledit/editlib/ini.cpp @@ -24,32 +24,6 @@ #define new DEBUG_NEW #endif -static bool -IsIniNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineIni (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -221,7 +195,7 @@ out: { if (nIdentBegin >= 0) { - if (IsIniNumber (pszChars + nIdentBegin, I - nIdentBegin)) + if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -234,7 +208,7 @@ out: if (nIdentBegin >= 0) { - if (IsIniNumber (pszChars + nIdentBegin, I - nIdentBegin)) + if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/innosetup.cpp b/Externals/crystaledit/editlib/innosetup.cpp index 4e4822da9..72891296b 100644 --- a/Externals/crystaledit/editlib/innosetup.cpp +++ b/Externals/crystaledit/editlib/innosetup.cpp @@ -324,32 +324,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsInnoSetupNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineInnoSetup (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -562,7 +536,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsInnoSetupNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -603,7 +577,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsInnoSetupNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/is.cpp b/Externals/crystaledit/editlib/is.cpp index 51e3d5cd8..46593ca87 100644 --- a/Externals/crystaledit/editlib/is.cpp +++ b/Externals/crystaledit/editlib/is.cpp @@ -429,32 +429,6 @@ IsUser2Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszUser2KeywordList, pszChars, nLength); } -static bool -IsISNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineIS (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -642,7 +616,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsISNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -687,7 +661,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsISNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/isx.cpp b/Externals/crystaledit/editlib/isx.cpp new file mode 100644 index 000000000..2e237fa38 --- /dev/null +++ b/Externals/crystaledit/editlib/isx.cpp @@ -0,0 +1,378 @@ +#include "StdAfx.h" +#include "crystallineparser.h" + +// HTML keywords +static LPCTSTR s_apszHtmlKeywordList[] = +{ + _T("A"), + _T("ABBR"), + _T("ACRONYM"), + _T("ADDRESS"), + _T("APPLET"), + _T("AREA"), + _T("B"), + _T("BASE"), + _T("BASEFONT"), + _T("BDO"), + _T("BIG"), + _T("BLOCKQUOTE"), + _T("BODY"), + _T("BR"), + _T("BUTTON"), + _T("CAPTION"), + _T("CENTER"), + _T("CITE"), + _T("CODE"), + _T("COL"), + _T("COLGROUP"), + _T("DD"), + _T("DEL"), + _T("DFN"), + _T("DIR"), + _T("DIV"), + _T("DL"), + _T("DOCTYPE"), + _T("DT"), + _T("EM"), + _T("FIELDSET"), + _T("FONT"), + _T("FORM"), + _T("FRAME"), + _T("FRAMESET"), + _T("H1"), + _T("H2"), + _T("H3"), + _T("H4"), + _T("H5"), + _T("H6"), + _T("HEAD"), + _T("HR"), + _T("HTML"), + _T("I"), + _T("IFRAME"), + _T("IMG"), + _T("INPUT"), + _T("INS"), + _T("ISINDEX"), + _T("KBD"), + _T("LABEL"), + _T("LEGEND"), + _T("LI"), + _T("LINK"), + _T("MAP"), + _T("MENU"), + _T("META"), + _T("NOFRAMES"), + _T("NOSCRIPT"), + _T("OBJECT"), + _T("OL"), + _T("OPTGROUP"), + _T("OPTION"), + _T("P"), + _T("PARAM"), + _T("PRE"), + _T("PUBLIC"), + _T("Q"), + _T("S"), + _T("SAMP"), + _T("SCRIPT"), + _T("SELECT"), + _T("SMALL"), + _T("SPAN"), + _T("STRIKE"), + _T("STRONG"), + _T("STYLE"), + _T("SUB"), + _T("SUP"), + _T("TABLE"), + _T("TBODY"), + _T("TD"), + _T("TEXTAREA"), + _T("TFOOT"), + _T("TH"), + _T("THEAD"), + _T("TITLE"), + _T("TR"), + _T("TT"), + _T("U"), + _T("UL"), + _T("VAR"), +}; +static LPCTSTR s_apszUser1KeywordList[] = +{ + _T("ABBR"), + _T("ACCEPT"), + _T("ACCEPT-CHARSET"), + _T("ACCESSKEY"), + _T("ACTION"), + _T("ALIGN"), + _T("ALINK"), + _T("ALT"), + _T("ARCHIVE"), + _T("AXIS"), + _T("BACKGROUND"), + _T("BGCOLOR"), + _T("BORDER"), + _T("CELLPADDING"), + _T("CELLSPACING"), + _T("CHAR"), + _T("CHAROFF"), + _T("CHARSET"), + _T("CHECKED"), + _T("CITE"), + _T("CLASS"), + _T("CLASSID"), + _T("CLEAR"), + _T("CODE"), + _T("CODEBASE"), + _T("CODETYPE"), + _T("COLOR"), + _T("COLS"), + _T("COLSPAN"), + _T("COMPACT"), + _T("CONTENT"), + _T("COORDS"), + _T("DATA"), + _T("DATAFLD"), + _T("DATAFORMATAS"), + _T("DATASRC"), + _T("DATETIME"), + _T("DECLARE"), + _T("DEFER"), + _T("DIR"), + _T("DISABLED"), + _T("ENCTYPE"), + _T("EVENT"), + _T("FACE"), + _T("FOR"), + _T("FRAME"), + _T("FRAMEBORDER"), + _T("HEADERS"), + _T("HEIGHT"), + _T("HREF"), + _T("HREFLANG"), + _T("HSPACE"), + _T("HTTP-EQUIV"), + _T("ID"), + _T("ISMAP"), + _T("LABEL"), + _T("LANG"), + _T("LANGUAGE"), + _T("LINK"), + _T("LONGDESC"), + _T("MARGINHEIGHT"), + _T("MARGINWIDTH"), + _T("MAXLENGTH"), + _T("MEDIA"), + _T("METHOD"), + _T("MULTIPLE"), + _T("NAME"), + _T("NOHREF"), + _T("NORESIZE"), + _T("NOSHADE"), + _T("NOWRAP"), + _T("ONBLUR"), + _T("ONCHANGE"), + _T("ONCLICK"), + _T("ONDBLCLICK"), + _T("ONFOCUS"), + _T("ONKEYDOWN"), + _T("ONKEYPRESS"), + _T("ONKEYUP"), + _T("ONLOAD"), + _T("ONMOUSEDOWN"), + _T("ONMOUSEMOVE"), + _T("ONMOUSEOUT"), + _T("ONMOUSEOVER"), + _T("ONMOUSEUP"), + _T("ONRESET"), + _T("ONSELECT"), + _T("ONSUBMIT"), + _T("ONUNLOAD"), + _T("PROFILE"), + _T("PROMPT"), + _T("READONLY"), + _T("REL"), + _T("REV"), + _T("ROWS"), + _T("ROWSPAN"), + _T("RULES"), + _T("SCHEME"), + _T("SCOPE"), + _T("SCROLLING"), + _T("SELECTED"), + _T("SHAPE"), + _T("SIZE"), + _T("SPAN"), + _T("SRC"), + _T("STANDBY"), + _T("START"), + _T("STYLE"), + _T("SUMMARY"), + _T("TABINDEX"), + _T("TARGET"), + _T("TEXT"), + _T("TITLE"), + _T("TYPE"), + _T("USEMAP"), + _T("VALIGN"), + _T("VALUE"), + _T("VALUETYPE"), + _T("VERSION"), + _T("VLINK"), + _T("VSPACE"), + _T("WIDTH"), +}; + +static LPCTSTR s_apszUser2KeywordList[] = +{ + _T("aacute"), + _T("Aacute"), + _T("Acirc"), + _T("acirc"), + _T("acute"), + _T("aelig"), + _T("AElig"), + _T("Agrave"), + _T("agrave"), + _T("amp"), + _T("aring"), + _T("Aring"), + _T("Atilde"), + _T("atilde"), + _T("auml"), + _T("Auml"), + _T("brvbar"), + _T("Ccedil"), + _T("ccedil"), + _T("cedil"), + _T("cent"), + _T("copy"), + _T("curren"), + _T("deg"), + _T("divide"), + _T("Eacute"), + _T("eacute"), + _T("ecirc"), + _T("Ecirc"), + _T("egrave"), + _T("Egrave"), + _T("eth"), + _T("ETH"), + _T("euml"), + _T("Euml"), + _T("frac12"), + _T("frac14"), + _T("frac34"), + _T("gt"), + _T("Iacute"), + _T("iacute"), + _T("Icirc"), + _T("icirc"), + _T("iexcl"), + _T("igrave"), + _T("Igrave"), + _T("iquest"), + _T("Iuml"), + _T("iuml"), + _T("laquo"), + _T("lt"), + _T("macr"), + _T("micro"), + _T("middot"), + _T("nbsp"), + _T("not"), + _T("ntilde"), + _T("Ntilde"), + _T("Oacute"), + _T("oacute"), + _T("Ocirc"), + _T("ocirc"), + _T("ograve"), + _T("Ograve"), + _T("ordf"), + _T("ordm"), + _T("Oslash"), + _T("oslash"), + _T("otilde"), + _T("Otilde"), + _T("ouml"), + _T("Ouml"), + _T("para"), + _T("plusmn"), + _T("pound"), + _T("quot"), + _T("raquo"), + _T("reg"), + _T("sect"), + _T("shy"), + _T("sup1"), + _T("sup2"), + _T("sup3"), + _T("szlig"), + _T("thorn"), + _T("THORN"), + _T("times"), + _T("Uacute"), + _T("uacute"), + _T("ucirc"), + _T("Ucirc"), + _T("Ugrave"), + _T("ugrave"), + _T("uml"), + _T("uuml"), + _T("Uuml"), + _T("yacute"), + _T("Yacute"), + _T("yen"), + _T("yuml"), +}; + +bool +CrystalLineParser::IsHtmlKeyword(const TCHAR *pszChars, int nLength) +{ + return ISXKEYWORDI(s_apszHtmlKeywordList, pszChars, nLength); +} + +bool +CrystalLineParser::IsHtmlUser1Keyword (const TCHAR *pszChars, int nLength) +{ + return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); +} + +bool +CrystalLineParser::IsHtmlUser2Keyword (const TCHAR *pszChars, int nLength) +{ + return ISXKEYWORDI (s_apszUser2KeywordList, pszChars, nLength); +} + +bool +CrystalLineParser::IsXKeyword(LPCTSTR pszKey, size_t nKeyLen, LPCTSTR pszKeywordList[], size_t nKeywordListCount, int(*compare)(LPCTSTR, LPCTSTR, size_t)) +{ + TCHAR **base = (TCHAR **)pszKeywordList; + size_t lim; + + for (lim = nKeywordListCount; lim != 0; lim >>= 1) + { + TCHAR **p = base + (lim >> 1); + int cmp = (*compare)(pszKey, *p, nKeyLen); + if (cmp == 0 && (*p)[nKeyLen] == 0) + return true; + if (cmp > 0) + { /* key > p: move right */ + base = (TCHAR **)p + 1; + lim--; + } /* else move left */ + } + return false; +} + +bool +CrystalLineParser::IsXNumber(const TCHAR *pszChars, int nLength) +{ + if ((nLength > 0 && _istdigit(pszChars[0])) || + (nLength > 1 && pszChars[0] == '.' && _istdigit(pszChars[1]))) + return true; + return false; +} + diff --git a/Externals/crystaledit/editlib/java.cpp b/Externals/crystaledit/editlib/java.cpp index 15f182c1d..ed1546f97 100644 --- a/Externals/crystaledit/editlib/java.cpp +++ b/Externals/crystaledit/editlib/java.cpp @@ -84,32 +84,6 @@ IsJavaKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszJavaKeywordList, pszChars, nLength); } -static bool -IsJavaNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineJava (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -289,7 +263,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsJavaNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -326,7 +300,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsJavaNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/lisp.cpp b/Externals/crystaledit/editlib/lisp.cpp index f45f9aa5f..f48ae0e1d 100644 --- a/Externals/crystaledit/editlib/lisp.cpp +++ b/Externals/crystaledit/editlib/lisp.cpp @@ -260,32 +260,6 @@ IsLispKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszLispKeywordList, pszChars, nLength); } -static bool -IsLispNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineLisp (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -450,7 +424,7 @@ out: } DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsLispNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -508,7 +482,7 @@ out: } DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsLispNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/lua.cpp b/Externals/crystaledit/editlib/lua.cpp index e6e2d4840..661aa4865 100644 --- a/Externals/crystaledit/editlib/lua.cpp +++ b/Externals/crystaledit/editlib/lua.cpp @@ -56,55 +56,6 @@ IsLuaKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszLuaKeywordList, pszChars, nLength); } -static bool -IsLuaNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0') - { - if (pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - else if (pszChars[1] == 'o') - { - for (int I = 2; I < nLength; I++) - { - if ((pszChars[I] >= '0' && pszChars[I] <= '7') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - else if (pszChars[1] == 'b') - { - for (int I = 2; I < nLength; I++) - { - if ((pszChars[I] >= '0' && pszChars[I] <= '1') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - } - if (!_istdigit (pszChars[0]) && pszChars[0] != '.') - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E' && pszChars[I] != '_') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineLua (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -289,7 +240,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsLuaNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -326,7 +277,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsLuaNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/nsis.cpp b/Externals/crystaledit/editlib/nsis.cpp index 731d08540..10461d76a 100644 --- a/Externals/crystaledit/editlib/nsis.cpp +++ b/Externals/crystaledit/editlib/nsis.cpp @@ -434,32 +434,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsNsisNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineNsis (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -644,7 +618,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsNsisNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -685,7 +659,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsNsisNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/pascal.cpp b/Externals/crystaledit/editlib/pascal.cpp index 8f2153d3d..264233555 100644 --- a/Externals/crystaledit/editlib/pascal.cpp +++ b/Externals/crystaledit/editlib/pascal.cpp @@ -112,32 +112,6 @@ IsPascalKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszPascalKeywordList, pszChars, nLength); } -static bool -IsPascalNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLinePascal (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -309,7 +283,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsPascalNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -346,7 +320,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsPascalNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/perl.cpp b/Externals/crystaledit/editlib/perl.cpp index 80d899fe3..a29de7f95 100644 --- a/Externals/crystaledit/editlib/perl.cpp +++ b/Externals/crystaledit/editlib/perl.cpp @@ -256,32 +256,6 @@ IsPerlKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszPerlKeywordList, pszChars, nLength); } -static bool -IsPerlNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLinePerl (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -417,7 +391,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsPerlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -454,7 +428,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsPerlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/php.cpp b/Externals/crystaledit/editlib/php.cpp index db94591f2..edd0a7fa6 100644 --- a/Externals/crystaledit/editlib/php.cpp +++ b/Externals/crystaledit/editlib/php.cpp @@ -23,334 +23,6 @@ #define new DEBUG_NEW #endif -// C++ keywords (MSVC5.0 + POET5.0) -static LPCTSTR s_apszHtmlKeywordList[] = - { - _T ("A"), - _T ("ABBR"), - _T ("ACRONYM"), - _T ("ADDRESS"), - _T ("APPLET"), - _T ("AREA"), - _T ("B"), - _T ("BASE"), - _T ("BASEFONT"), - _T ("BDO"), - _T ("BIG"), - _T ("BLOCKQUOTE"), - _T ("BODY"), - _T ("BR"), - _T ("BUTTON"), - _T ("CAPTION"), - _T ("CENTER"), - _T ("CITE"), - _T ("CODE"), - _T ("COL"), - _T ("COLGROUP"), - _T ("DD"), - _T ("DEL"), - _T ("DFN"), - _T ("DIR"), - _T ("DIV"), - _T ("DL"), - _T ("DOCTYPE"), - _T ("DT"), - _T ("EM"), - _T ("FIELDSET"), - _T ("FONT"), - _T ("FORM"), - _T ("FRAME"), - _T ("FRAMESET"), - _T ("H1"), - _T ("H2"), - _T ("H3"), - _T ("H4"), - _T ("H5"), - _T ("H6"), - _T ("HEAD"), - _T ("HR"), - _T ("HTML"), - _T ("I"), - _T ("IFRAME"), - _T ("IMG"), - _T ("INPUT"), - _T ("INS"), - _T ("ISINDEX"), - _T ("KBD"), - _T ("LABEL"), - _T ("LEGEND"), - _T ("LI"), - _T ("LINK"), - _T ("MAP"), - _T ("MENU"), - _T ("META"), - _T ("NOFRAMES"), - _T ("NOSCRIPT"), - _T ("OBJECT"), - _T ("OL"), - _T ("OPTGROUP"), - _T ("OPTION"), - _T ("P"), - _T ("PARAM"), - _T ("PRE"), - _T ("PUBLIC"), - _T ("Q"), - _T ("S"), - _T ("SAMP"), - _T ("SCRIPT"), - _T ("SELECT"), - _T ("SMALL"), - _T ("SPAN"), - _T ("STRIKE"), - _T ("STRONG"), - _T ("STYLE"), - _T ("SUB"), - _T ("SUP"), - _T ("TABLE"), - _T ("TBODY"), - _T ("TD"), - _T ("TEXTAREA"), - _T ("TFOOT"), - _T ("TH"), - _T ("THEAD"), - _T ("TITLE"), - _T ("TR"), - _T ("TT"), - _T ("U"), - _T ("UL"), - _T ("VAR"), - }; - -static LPCTSTR s_apszUser1KeywordList[] = - { - _T ("ABBR"), - _T ("ACCEPT"), - _T ("ACCEPT-CHARSET"), - _T ("ACCESSKEY"), - _T ("ACTION"), - _T ("ALIGN"), - _T ("ALINK"), - _T ("ALT"), - _T ("ARCHIVE"), - _T ("AXIS"), - _T ("BACKGROUND"), - _T ("BGCOLOR"), - _T ("BORDER"), - _T ("CELLPADDING"), - _T ("CELLSPACING"), - _T ("CHAR"), - _T ("CHAROFF"), - _T ("CHARSET"), - _T ("CHECKED"), - _T ("CITE"), - _T ("CLASS"), - _T ("CLASSID"), - _T ("CLEAR"), - _T ("CODE"), - _T ("CODEBASE"), - _T ("CODETYPE"), - _T ("COLOR"), - _T ("COLS"), - _T ("COLSPAN"), - _T ("COMPACT"), - _T ("CONTENT"), - _T ("COORDS"), - _T ("DATA"), - _T ("DATAFLD"), - _T ("DATAFORMATAS"), - _T ("DATASRC"), - _T ("DATETIME"), - _T ("DECLARE"), - _T ("DEFER"), - _T ("DIR"), - _T ("DISABLED"), - _T ("ENCTYPE"), - _T ("EVENT"), - _T ("FACE"), - _T ("FOR"), - _T ("FRAME"), - _T ("FRAMEBORDER"), - _T ("HEADERS"), - _T ("HEIGHT"), - _T ("HREF"), - _T ("HREFLANG"), - _T ("HSPACE"), - _T ("HTTP-EQUIV"), - _T ("ID"), - _T ("ISMAP"), - _T ("LABEL"), - _T ("LANG"), - _T ("LANGUAGE"), - _T ("LINK"), - _T ("LONGDESC"), - _T ("MARGINHEIGHT"), - _T ("MARGINWIDTH"), - _T ("MAXLENGTH"), - _T ("MEDIA"), - _T ("METHOD"), - _T ("MULTIPLE"), - _T ("NAME"), - _T ("NOHREF"), - _T ("NORESIZE"), - _T ("NOSHADE"), - _T ("NOWRAP"), - _T ("ONBLUR"), - _T ("ONCHANGE"), - _T ("ONCLICK"), - _T ("ONDBLCLICK"), - _T ("ONFOCUS"), - _T ("ONKEYDOWN"), - _T ("ONKEYPRESS"), - _T ("ONKEYUP"), - _T ("ONLOAD"), - _T ("ONMOUSEDOWN"), - _T ("ONMOUSEMOVE"), - _T ("ONMOUSEOUT"), - _T ("ONMOUSEOVER"), - _T ("ONMOUSEUP"), - _T ("ONRESET"), - _T ("ONSELECT"), - _T ("ONSUBMIT"), - _T ("ONUNLOAD"), - _T ("PROFILE"), - _T ("PROMPT"), - _T ("READONLY"), - _T ("REL"), - _T ("REV"), - _T ("ROWS"), - _T ("ROWSPAN"), - _T ("RULES"), - _T ("SCHEME"), - _T ("SCOPE"), - _T ("SCROLLING"), - _T ("SELECTED"), - _T ("SHAPE"), - _T ("SIZE"), - _T ("SPAN"), - _T ("SRC"), - _T ("STANDBY"), - _T ("START"), - _T ("STYLE"), - _T ("SUMMARY"), - _T ("TABINDEX"), - _T ("TARGET"), - _T ("TEXT"), - _T ("TITLE"), - _T ("TYPE"), - _T ("USEMAP"), - _T ("VALIGN"), - _T ("VALUE"), - _T ("VALUETYPE"), - _T ("VERSION"), - _T ("VLINK"), - _T ("VSPACE"), - _T ("WIDTH"), - }; - -static LPCTSTR s_apszUser2KeywordList[] = - { - _T ("Aacute"), - _T ("aacute"), - _T ("acirc"), - _T ("Acirc"), - _T ("acute"), - _T ("aelig"), - _T ("AElig"), - _T ("agrave"), - _T ("Agrave"), - _T ("amp"), - _T ("aring"), - _T ("Aring"), - _T ("Atilde"), - _T ("atilde"), - _T ("Auml"), - _T ("auml"), - _T ("brvbar"), - _T ("ccedil"), - _T ("Ccedil"), - _T ("cedil"), - _T ("cent"), - _T ("copy"), - _T ("curren"), - _T ("deg"), - _T ("divide"), - _T ("Eacute"), - _T ("eacute"), - _T ("Ecirc"), - _T ("ecirc"), - _T ("Egrave"), - _T ("egrave"), - _T ("eth"), - _T ("ETH"), - _T ("Euml"), - _T ("euml"), - _T ("frac12"), - _T ("frac14"), - _T ("frac34"), - _T ("gt"), - _T ("iacute"), - _T ("Iacute"), - _T ("icirc"), - _T ("Icirc"), - _T ("iexcl"), - _T ("Igrave"), - _T ("igrave"), - _T ("iquest"), - _T ("Iuml"), - _T ("iuml"), - _T ("laquo"), - _T ("lt"), - _T ("macr"), - _T ("micro"), - _T ("middot"), - _T ("nbsp"), - _T ("not"), - _T ("Ntilde"), - _T ("ntilde"), - _T ("Oacute"), - _T ("oacute"), - _T ("ocirc"), - _T ("Ocirc"), - _T ("ograve"), - _T ("Ograve"), - _T ("ordf"), - _T ("ordm"), - _T ("oslash"), - _T ("Oslash"), - _T ("otilde"), - _T ("Otilde"), - _T ("ouml"), - _T ("Ouml"), - _T ("para"), - _T ("plusmn"), - _T ("pound"), - _T ("quot"), - _T ("raquo"), - _T ("reg"), - _T ("sect"), - _T ("shy"), - _T ("sup1"), - _T ("sup2"), - _T ("sup3"), - _T ("szlig"), - _T ("thorn"), - _T ("THORN"), - _T ("times"), - _T ("uacute"), - _T ("Uacute"), - _T ("Ucirc"), - _T ("ucirc"), - _T ("ugrave"), - _T ("Ugrave"), - _T ("uml"), - _T ("uuml"), - _T ("Uuml"), - _T ("Yacute"), - _T ("yacute"), - _T ("yen"), - _T ("yuml"), - }; - static LPCTSTR s_apszPhpKeywordList[] = { _T ("array"), @@ -420,24 +92,6 @@ static LPCTSTR s_apszPhp2KeywordList[] = }; static bool -IsHtmlKeyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszHtmlKeywordList, pszChars, nLength); -} - -static bool -IsUser1Keyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); -} - -static bool -IsUser2Keyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszUser2KeywordList, pszChars, nLength); -} - -static bool IsPhpKeyword (LPCTSTR pszChars, int nLength) { return ISXKEYWORDI (s_apszPhpKeywordList, pszChars, nLength); @@ -455,32 +109,6 @@ IsPhp2Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszPhp2KeywordList, pszChars, nLength); } -static bool -IsPhpNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLinePhp (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -701,11 +329,11 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsPhpNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -732,7 +360,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsPhpNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -763,7 +391,7 @@ out: } else if (dwCookie & COOKIE_USER1) { - if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } @@ -861,15 +489,15 @@ next: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser1Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsPhpNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -908,7 +536,7 @@ next: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsPhpNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/po.cpp b/Externals/crystaledit/editlib/po.cpp index f41dd7e45..4fc0d59c8 100644 --- a/Externals/crystaledit/editlib/po.cpp +++ b/Externals/crystaledit/editlib/po.cpp @@ -52,14 +52,6 @@ IsPoKeyword (LPCTSTR pszChars, int nLength) return IsXKeyword (s_apszPoKeywordList, pszChars, nLength); } -static bool -IsPoNumber (LPCTSTR pszChars, int nLength) -{ - if (!_istdigit (pszChars[0])) - return false; - return true; -} - DWORD CrystalLineParser::ParseLinePo (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -195,7 +187,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsPoNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -232,7 +224,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsPoNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/powershell.cpp b/Externals/crystaledit/editlib/powershell.cpp index 92867f962..41971bdf4 100644 --- a/Externals/crystaledit/editlib/powershell.cpp +++ b/Externals/crystaledit/editlib/powershell.cpp @@ -341,32 +341,6 @@ IsCmdletKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszCmdletKeywordList, pszChars, nLength); } -static bool -IsPowerShellNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLinePowerShell (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -532,7 +506,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_FUNCNAME); } - else if (IsPowerShellNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -553,7 +527,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_FUNCNAME); } - else if (IsPowerShellNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/python.cpp b/Externals/crystaledit/editlib/python.cpp index 4ff36c026..dc0461f01 100644 --- a/Externals/crystaledit/editlib/python.cpp +++ b/Externals/crystaledit/editlib/python.cpp @@ -181,32 +181,6 @@ IsUser2Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszUser2KeywordList, pszChars, nLength); } -static bool -IsPythonNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLinePython (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -350,7 +324,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsPythonNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -395,7 +369,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsPythonNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/rexx.cpp b/Externals/crystaledit/editlib/rexx.cpp index 8ebc07e8d..7f1b83fe7 100644 --- a/Externals/crystaledit/editlib/rexx.cpp +++ b/Externals/crystaledit/editlib/rexx.cpp @@ -111,32 +111,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsRexxNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineRexx (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -299,7 +273,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsRexxNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -340,7 +314,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsRexxNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/rsrc.cpp b/Externals/crystaledit/editlib/rsrc.cpp index 8a719ef52..74d465317 100644 --- a/Externals/crystaledit/editlib/rsrc.cpp +++ b/Externals/crystaledit/editlib/rsrc.cpp @@ -175,32 +175,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsRsrcNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineRsrc (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -384,7 +358,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsRsrcNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -425,7 +399,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsRsrcNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/ruby.cpp b/Externals/crystaledit/editlib/ruby.cpp index b4c148b5f..4a72032ef 100644 --- a/Externals/crystaledit/editlib/ruby.cpp +++ b/Externals/crystaledit/editlib/ruby.cpp @@ -132,42 +132,6 @@ IsRubyConstant (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszRubyConstantsList, pszChars, nLength); } -static bool -IsRubyNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'b') - { - for (int I = 2; I < nLength; I++) - { - if (pszChars[I] == '0' || pszChars[I] == '1' || pszChars[I] == '_') - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E' || pszChars[I] == '_') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineRuby(DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -331,7 +295,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_PREPROCESSOR); } - else if (IsRubyNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -372,7 +336,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_PREPROCESSOR); } - else if (IsRubyNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/rust.cpp b/Externals/crystaledit/editlib/rust.cpp index b1c827de9..294afcf3f 100644 --- a/Externals/crystaledit/editlib/rust.cpp +++ b/Externals/crystaledit/editlib/rust.cpp @@ -115,55 +115,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORD (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsRustNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0') - { - if (pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - else if (pszChars[1] == 'o') - { - for (int I = 2; I < nLength; I++) - { - if ((pszChars[I] >= '0' && pszChars[I] <= '7') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - else if (pszChars[1] == 'b') - { - for (int I = 2; I < nLength; I++) - { - if ((pszChars[I] >= '0' && pszChars[I] <= '1') || pszChars[I] == '_') - continue; - return false; - } - return true; - } - } - if (!_istdigit (pszChars[0]) && pszChars[0] != '.') - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E' && pszChars[I] != '_') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineRust (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -345,7 +296,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsRustNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -386,7 +337,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsRustNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/sgml.cpp b/Externals/crystaledit/editlib/sgml.cpp index 1bc16ff54..bead92971 100644 --- a/Externals/crystaledit/editlib/sgml.cpp +++ b/Externals/crystaledit/editlib/sgml.cpp @@ -91,110 +91,6 @@ static LPCTSTR s_apszUser1KeywordList[] = _T ("SECTION"), }; -static LPCTSTR s_apszUser2KeywordList[] = - { - _T ("Aacute"), - _T ("aacute"), - _T ("acirc"), - _T ("Acirc"), - _T ("acute"), - _T ("aelig"), - _T ("AElig"), - _T ("agrave"), - _T ("Agrave"), - _T ("amp"), - _T ("Aring"), - _T ("aring"), - _T ("Atilde"), - _T ("atilde"), - _T ("Auml"), - _T ("auml"), - _T ("brvbar"), - _T ("ccedil"), - _T ("Ccedil"), - _T ("cedil"), - _T ("cent"), - _T ("copy"), - _T ("curren"), - _T ("deg"), - _T ("divide"), - _T ("Eacute"), - _T ("eacute"), - _T ("Ecirc"), - _T ("ecirc"), - _T ("Egrave"), - _T ("egrave"), - _T ("ETH"), - _T ("eth"), - _T ("euml"), - _T ("Euml"), - _T ("frac12"), - _T ("frac14"), - _T ("frac34"), - _T ("gt"), - _T ("Iacute"), - _T ("iacute"), - _T ("icirc"), - _T ("Icirc"), - _T ("iexcl"), - _T ("Igrave"), - _T ("igrave"), - _T ("iquest"), - _T ("iuml"), - _T ("Iuml"), - _T ("laquo"), - _T ("lt"), - _T ("macr"), - _T ("micro"), - _T ("middot"), - _T ("nbsp"), - _T ("not"), - _T ("ntilde"), - _T ("Ntilde"), - _T ("oacute"), - _T ("Oacute"), - _T ("ocirc"), - _T ("Ocirc"), - _T ("ograve"), - _T ("Ograve"), - _T ("ordf"), - _T ("ordm"), - _T ("oslash"), - _T ("Oslash"), - _T ("otilde"), - _T ("Otilde"), - _T ("Ouml"), - _T ("ouml"), - _T ("para"), - _T ("plusmn"), - _T ("pound"), - _T ("quot"), - _T ("raquo"), - _T ("reg"), - _T ("sect"), - _T ("shy"), - _T ("sup1"), - _T ("sup2"), - _T ("sup3"), - _T ("szlig"), - _T ("THORN"), - _T ("thorn"), - _T ("times"), - _T ("Uacute"), - _T ("uacute"), - _T ("Ucirc"), - _T ("ucirc"), - _T ("ugrave"), - _T ("Ugrave"), - _T ("uml"), - _T ("uuml"), - _T ("Uuml"), - _T ("Yacute"), - _T ("yacute"), - _T ("yen"), - _T ("yuml"), - }; - static bool IsSgmlKeyword (LPCTSTR pszChars, int nLength) { @@ -207,38 +103,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsUser2Keyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszUser2KeywordList, pszChars, nLength); -} - -static bool -IsSgmlNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineSgml (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -407,7 +271,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsSgmlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -418,7 +282,7 @@ out: } else if (dwCookie & COOKIE_USER1) { - if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } @@ -427,7 +291,7 @@ out: goto next; } } - else if (IsSgmlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -493,11 +357,11 @@ next: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsSgmlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/sh.cpp b/Externals/crystaledit/editlib/sh.cpp index 055341739..4e5b37bf1 100644 --- a/Externals/crystaledit/editlib/sh.cpp +++ b/Externals/crystaledit/editlib/sh.cpp @@ -80,32 +80,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsShNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineSh (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -245,7 +219,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsShNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -286,7 +260,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsShNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/siod.cpp b/Externals/crystaledit/editlib/siod.cpp index 84e3c0fac..036c78993 100644 --- a/Externals/crystaledit/editlib/siod.cpp +++ b/Externals/crystaledit/editlib/siod.cpp @@ -336,32 +336,6 @@ IsUser2Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser2KeywordList, pszChars, nLength); } -static bool -IsSiodNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineSiod (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -534,7 +508,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsSiodNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -600,7 +574,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsSiodNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/sql.cpp b/Externals/crystaledit/editlib/sql.cpp index e13bf1522..c098367b6 100644 --- a/Externals/crystaledit/editlib/sql.cpp +++ b/Externals/crystaledit/editlib/sql.cpp @@ -71,32 +71,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsSqlNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineSql (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -259,7 +233,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsSqlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -300,7 +274,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsSqlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/string_util.cpp b/Externals/crystaledit/editlib/string_util.cpp index a17a3cbc4..5bdaaaff5 100644 --- a/Externals/crystaledit/editlib/string_util.cpp +++ b/Externals/crystaledit/editlib/string_util.cpp @@ -60,26 +60,6 @@ int xisspace(wint_t c) return _istspace(normch(c)); } -bool IsXKeyword(LPCTSTR pszKey, size_t nKeyLen, LPCTSTR pszKeywordList[], size_t nKeywordListCount, int (*compare)(LPCTSTR, LPCTSTR, size_t)) -{ - TCHAR **base = (TCHAR **)pszKeywordList; - size_t lim; - - for (lim = nKeywordListCount; lim != 0; lim >>= 1) - { - TCHAR **p = base + (lim >> 1) ; - int cmp = (*compare)(pszKey, *p, nKeyLen); - if (cmp == 0 && (*p)[nKeyLen] == 0) - return true; - if (cmp > 0) - { /* key > p: move right */ - base = (TCHAR **)p + 1; - lim--; - } /* else move left */ - } - return false; -} - bool IsMBSTrail (const TCHAR *pszChars, int nCol) { #ifdef _UNICODE diff --git a/Externals/crystaledit/editlib/string_util.h b/Externals/crystaledit/editlib/string_util.h index 4994eba58..048c9332f 100644 --- a/Externals/crystaledit/editlib/string_util.h +++ b/Externals/crystaledit/editlib/string_util.h @@ -8,14 +8,10 @@ #pragma once -#define ISXKEYWORD(keywordlist, key, keylen) IsXKeyword(key, keylen, keywordlist, sizeof(keywordlist)/sizeof(keywordlist[0]), _tcsncmp) -#define ISXKEYWORDI(keywordlist, key, keylen) IsXKeyword(key, keylen, keywordlist, sizeof(keywordlist)/sizeof(keywordlist[0]), _tcsnicmp) - int xisalnum(wint_t c); int xisspecial(wint_t c); int xisalpha(wint_t c); int xisalnum(wint_t c); int xisspace(wint_t c); -bool IsXKeyword(LPCTSTR pszKey, size_t nKeyLen, LPCTSTR pszKeywordList[], size_t nKeywordListCount, int (*compare)(LPCTSTR, LPCTSTR, size_t)); bool IsMBSTrail(const TCHAR *pszChars, int nCol); diff --git a/Externals/crystaledit/editlib/tcl.cpp b/Externals/crystaledit/editlib/tcl.cpp index 81ec95798..1f7effa09 100644 --- a/Externals/crystaledit/editlib/tcl.cpp +++ b/Externals/crystaledit/editlib/tcl.cpp @@ -48,32 +48,6 @@ IsTclKeyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszTclKeywordList, pszChars, nLength); } -static bool -IsTclNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineTcl (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -209,7 +183,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsTclNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -246,7 +220,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_KEYWORD); } - else if (IsTclNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/tex.cpp b/Externals/crystaledit/editlib/tex.cpp index 278bab22e..829a120b2 100644 --- a/Externals/crystaledit/editlib/tex.cpp +++ b/Externals/crystaledit/editlib/tex.cpp @@ -856,32 +856,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsTexNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineTex (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -1021,7 +995,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsTexNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -1065,7 +1039,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsTexNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Externals/crystaledit/editlib/xml.cpp b/Externals/crystaledit/editlib/xml.cpp index df8342c16..8dec132a6 100644 --- a/Externals/crystaledit/editlib/xml.cpp +++ b/Externals/crystaledit/editlib/xml.cpp @@ -60,110 +60,6 @@ static LPCTSTR s_apszUser1KeywordList[] = _T ("version"), }; -static LPCTSTR s_apszUser2KeywordList[] = - { - _T ("Aacute"), - _T ("aacute"), - _T ("acirc"), - _T ("Acirc"), - _T ("acute"), - _T ("aelig"), - _T ("AElig"), - _T ("agrave"), - _T ("Agrave"), - _T ("amp"), - _T ("Aring"), - _T ("aring"), - _T ("Atilde"), - _T ("atilde"), - _T ("Auml"), - _T ("auml"), - _T ("brvbar"), - _T ("ccedil"), - _T ("Ccedil"), - _T ("cedil"), - _T ("cent"), - _T ("copy"), - _T ("curren"), - _T ("deg"), - _T ("divide"), - _T ("Eacute"), - _T ("eacute"), - _T ("Ecirc"), - _T ("ecirc"), - _T ("Egrave"), - _T ("egrave"), - _T ("ETH"), - _T ("eth"), - _T ("euml"), - _T ("Euml"), - _T ("frac12"), - _T ("frac14"), - _T ("frac34"), - _T ("gt"), - _T ("Iacute"), - _T ("iacute"), - _T ("icirc"), - _T ("Icirc"), - _T ("iexcl"), - _T ("Igrave"), - _T ("igrave"), - _T ("iquest"), - _T ("iuml"), - _T ("Iuml"), - _T ("laquo"), - _T ("lt"), - _T ("macr"), - _T ("micro"), - _T ("middot"), - _T ("nbsp"), - _T ("not"), - _T ("ntilde"), - _T ("Ntilde"), - _T ("oacute"), - _T ("Oacute"), - _T ("ocirc"), - _T ("Ocirc"), - _T ("ograve"), - _T ("Ograve"), - _T ("ordf"), - _T ("ordm"), - _T ("oslash"), - _T ("Oslash"), - _T ("otilde"), - _T ("Otilde"), - _T ("Ouml"), - _T ("ouml"), - _T ("para"), - _T ("plusmn"), - _T ("pound"), - _T ("quot"), - _T ("raquo"), - _T ("reg"), - _T ("sect"), - _T ("shy"), - _T ("sup1"), - _T ("sup2"), - _T ("sup3"), - _T ("szlig"), - _T ("THORN"), - _T ("thorn"), - _T ("times"), - _T ("Uacute"), - _T ("uacute"), - _T ("Ucirc"), - _T ("ucirc"), - _T ("ugrave"), - _T ("Ugrave"), - _T ("uml"), - _T ("uuml"), - _T ("Uuml"), - _T ("Yacute"), - _T ("yacute"), - _T ("yen"), - _T ("yuml"), - }; - static bool IsXmlKeyword (LPCTSTR pszChars, int nLength) { @@ -176,38 +72,6 @@ IsUser1Keyword (LPCTSTR pszChars, int nLength) return ISXKEYWORDI (s_apszUser1KeywordList, pszChars, nLength); } -static bool -IsUser2Keyword (LPCTSTR pszChars, int nLength) -{ - return ISXKEYWORDI (s_apszUser2KeywordList, pszChars, nLength); -} - -static bool -IsXmlNumber (LPCTSTR pszChars, int nLength) -{ - if (nLength > 2 && pszChars[0] == '0' && pszChars[1] == 'x') - { - for (int I = 2; I < nLength; I++) - { - if (_istdigit (pszChars[I]) || (pszChars[I] >= 'A' && pszChars[I] <= 'F') || - (pszChars[I] >= 'a' && pszChars[I] <= 'f')) - continue; - return false; - } - return true; - } - if (!_istdigit (pszChars[0])) - return false; - for (int I = 1; I < nLength; I++) - { - if (!_istdigit (pszChars[I]) && pszChars[I] != '+' && - pszChars[I] != '-' && pszChars[I] != '.' && pszChars[I] != 'e' && - pszChars[I] != 'E') - return false; - } - return true; -} - DWORD CrystalLineParser::ParseLineXml (DWORD dwCookie, const TCHAR *pszChars, int nLength, TEXTBLOCK * pBuf, int &nActualItems) { @@ -376,7 +240,7 @@ out: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsXmlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -387,7 +251,7 @@ out: } else if (dwCookie & COOKIE_USER1) { - if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } @@ -396,7 +260,7 @@ out: goto next; } } - else if (IsXmlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } @@ -461,11 +325,11 @@ next: { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER1); } - else if (IsUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsHtmlUser2Keyword (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_USER2); } - else if (IsXmlNumber (pszChars + nIdentBegin, I - nIdentBegin)) + else if (IsXNumber (pszChars + nIdentBegin, I - nIdentBegin)) { DEFINE_BLOCK (nIdentBegin, COLORINDEX_NUMBER); } diff --git a/Src/Merge.vs2017.vcxproj b/Src/Merge.vs2017.vcxproj index da9452857..c0456f1d7 100644 --- a/Src/Merge.vs2017.vcxproj +++ b/Src/Merge.vs2017.vcxproj @@ -452,6 +452,7 @@ + diff --git a/Src/Merge.vs2017.vcxproj.filters b/Src/Merge.vs2017.vcxproj.filters index 4f5c88055..7512f2255 100644 --- a/Src/Merge.vs2017.vcxproj.filters +++ b/Src/Merge.vs2017.vcxproj.filters @@ -892,6 +892,9 @@ Compare Engines\Source Files + + EditLib\Parsers\Source Files + diff --git a/Src/Merge.vs2019.vcxproj b/Src/Merge.vs2019.vcxproj index 690070891..988382e9c 100644 --- a/Src/Merge.vs2019.vcxproj +++ b/Src/Merge.vs2019.vcxproj @@ -59,14 +59,12 @@ Static Unicode v142 - false Application Static Unicode v142 - false Application @@ -453,6 +451,7 @@ + diff --git a/Src/Merge.vs2019.vcxproj.filters b/Src/Merge.vs2019.vcxproj.filters index 4f5c88055..7512f2255 100644 --- a/Src/Merge.vs2019.vcxproj.filters +++ b/Src/Merge.vs2019.vcxproj.filters @@ -892,6 +892,9 @@ Compare Engines\Source Files + + EditLib\Parsers\Source Files + -- 2.11.0