[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemacs-commit] qemacs htmlsrc.c markdown.c xml.c script.c unih...
From: |
Charlie Gordon |
Subject: |
[Qemacs-commit] qemacs htmlsrc.c markdown.c xml.c script.c unih... |
Date: |
Wed, 02 Apr 2014 12:58:25 +0000 |
CVSROOT: /sources/qemacs
Module name: qemacs
Changes by: Charlie Gordon <chqrlie> 14/04/02 12:58:24
Modified files:
. : htmlsrc.c markdown.c xml.c script.c unihex.c
hex.c makemode.c perl.c latex-mode.c lisp.c
orgmode.c extra-modes.c
Log message:
improve colorizers
* use mode specific namespace for colorizer states and styles
* use enum values instead of preprocessor macros for states and styles
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/htmlsrc.c?cvsroot=qemacs&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/qemacs/markdown.c?cvsroot=qemacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/qemacs/xml.c?cvsroot=qemacs&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/qemacs/script.c?cvsroot=qemacs&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/qemacs/unihex.c?cvsroot=qemacs&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/qemacs/hex.c?cvsroot=qemacs&r1=1.37&r2=1.38
http://cvs.savannah.gnu.org/viewcvs/qemacs/makemode.c?cvsroot=qemacs&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/qemacs/perl.c?cvsroot=qemacs&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/qemacs/latex-mode.c?cvsroot=qemacs&r1=1.44&r2=1.45
http://cvs.savannah.gnu.org/viewcvs/qemacs/lisp.c?cvsroot=qemacs&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/qemacs/orgmode.c?cvsroot=qemacs&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/qemacs/extra-modes.c?cvsroot=qemacs&r1=1.10&r2=1.11
Patches:
Index: htmlsrc.c
===================================================================
RCS file: /sources/qemacs/qemacs/htmlsrc.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- htmlsrc.c 24 Mar 2014 10:58:10 -0000 1.11
+++ htmlsrc.c 2 Apr 2014 12:58:12 -0000 1.12
@@ -56,14 +56,24 @@
/* color colorization states */
enum {
- HTML_COMMENT = 0x01, /* <!-- <> --> */
- HTML_COMMENT1 = 0x02, /* <! ... > */
- HTML_STRING = 0x04, /* " ... " */
- HTML_STRING1 = 0x08, /* ' ... ' */
- HTML_TAG = 0x10, /* <tag ... > */
- HTML_ENTITY = 0x20, /* &name[;] / {[;] */
- HTML_SCRIPTTAG = 0x40, /* <SCRIPT ...> */
- HTML_SCRIPT = 0x80, /* <SCRIPT> [...] </SCRIPT> */
+ IN_HTML_COMMENT = 0x01, /* <!-- <> --> */
+ IN_HTML_COMMENT1 = 0x02, /* <! ... > */
+ IN_HTML_STRING = 0x04, /* " ... " */
+ IN_HTML_STRING1 = 0x08, /* ' ... ' */
+ IN_HTML_TAG = 0x10, /* <tag ... > */
+ IN_HTML_ENTITY = 0x20, /* &name[;] / {[;] */
+ IN_HTML_SCRIPTTAG = 0x40, /* <SCRIPT ...> */
+ IN_HTML_SCRIPT = 0x80, /* <SCRIPT> [...] </SCRIPT> */
+};
+
+enum {
+ HTML_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
+ HTML_STYLE_SCRIPT = QE_STYLE_HTML_SCRIPT,
+ HTML_STYLE_COMMENT = QE_STYLE_HTML_COMMENT,
+ HTML_TYLE_ENTITY = QE_STYLE_HTML_ENTITY,
+ HTML_STYLE_STRING = QE_STYLE_HTML_STRING,
+ HTML_STYLE_TAG = QE_STYLE_HTML_TAG,
+ //HTML_STYLE_TEXT = QE_STYLE_HTML_TEXT,
};
void htmlsrc_colorize_line(unsigned int *buf, int len, int mode_flags,
@@ -80,7 +90,7 @@
/* Kludge for preprocessed html */
if (*p == '#') {
p = p_end;
- set_color(p_start, p, QE_STYLE_PREPROCESS);
+ set_color(p_start, p, HTML_STYLE_PREPROCESS);
goto the_end;
}
@@ -88,113 +98,113 @@
p_start = p;
c = *p;
- if (state & HTML_SCRIPTTAG) {
+ if (state & IN_HTML_SCRIPTTAG) {
while (p < p_end) {
if (*p++ == '>') {
- state = HTML_SCRIPT;
+ state = IN_HTML_SCRIPT;
break;
}
}
- set_color(p_start, p, QE_STYLE_HTML_SCRIPT);
+ set_color(p_start, p, HTML_STYLE_SCRIPT);
continue;
}
- if (state & HTML_SCRIPT) {
+ if (state & IN_HTML_SCRIPT) {
for (; p < p_end; p++) {
if (*p == '<' && ustristart(p, "</script>", NULL))
break;
}
- js_state = state & ~HTML_SCRIPT;
+ js_state = state & ~IN_HTML_SCRIPT;
c = *p; /* save char to set '\0' delimiter */
*p = '\0';
/* XXX: should have javascript specific colorize_func */
c_colorize_line(p_start, p - p_start, CLANG_JS | CLANG_REGEX,
&js_state, state_only);
*p = c;
- state = js_state | HTML_SCRIPT;
+ state = js_state | IN_HTML_SCRIPT;
if (p < p_end) {
p_start = p;
p += strlen("</script>");
state = 0;
- set_color(p_start, p, QE_STYLE_HTML_SCRIPT);
+ set_color(p_start, p, HTML_STYLE_SCRIPT);
}
continue;
}
- if (state & HTML_COMMENT) {
+ if (state & IN_HTML_COMMENT) {
for (; p < p_end; p++) {
if (*p == '-' && p[1] == '-' && p[2] == '>') {
p += 2;
- state &= ~HTML_COMMENT;
+ state &= ~IN_HTML_COMMENT;
break;
}
}
- set_color(p_start, p, QE_STYLE_HTML_COMMENT);
+ set_color(p_start, p, HTML_STYLE_COMMENT);
continue;
}
- if (state & HTML_COMMENT1) {
+ if (state & IN_HTML_COMMENT1) {
for (; p < p_end; p++) {
if (*p == '>') {
p++;
- state &= ~HTML_COMMENT1;
+ state &= ~IN_HTML_COMMENT1;
break;
}
}
- set_color(p_start, p, QE_STYLE_HTML_COMMENT);
+ set_color(p_start, p, HTML_STYLE_COMMENT);
continue;
}
- if (state & HTML_ENTITY) {
+ if (state & IN_HTML_ENTITY) {
if ((l = get_html_entity(p)) == 0)
p++;
else
p += l;
- state &= ~HTML_ENTITY;
- set_color(p_start, p, QE_STYLE_HTML_ENTITY);
+ state &= ~IN_HTML_ENTITY;
+ set_color(p_start, p, HTML_TYLE_ENTITY);
continue;
}
- if (state & (HTML_STRING|HTML_STRING1)) {
- char delim = (char)((state & HTML_STRING1) ? '\'' : '\"');
+ if (state & (IN_HTML_STRING | IN_HTML_STRING1)) {
+ char delim = (char)((state & IN_HTML_STRING1) ? '\'' : '\"');
for (; p < p_end; p++) {
if (*p == '&' && get_html_entity(p)) {
- state |= HTML_ENTITY;
+ state |= IN_HTML_ENTITY;
break;
}
if (*p == delim) {
p++;
- state &= ~(HTML_STRING|HTML_STRING1);
+ state &= ~(IN_HTML_STRING | IN_HTML_STRING1);
break;
}
/* Premature end of string */
if (*p == '>') {
- state &= ~(HTML_STRING|HTML_STRING1);
+ state &= ~(IN_HTML_STRING | IN_HTML_STRING1);
break;
}
}
- set_color(p_start, p, QE_STYLE_HTML_STRING);
+ set_color(p_start, p, HTML_STYLE_STRING);
continue;
}
- if (state & HTML_TAG) {
+ if (state & IN_HTML_TAG) {
for (; p < p_end; p++) {
if (*p == '&' && get_html_entity(p)) {
- state |= HTML_ENTITY;
+ state |= IN_HTML_ENTITY;
break;
}
if (*p == '\"') {
- state |= HTML_STRING;
+ state |= IN_HTML_STRING;
break;
}
if (*p == '\'') {
- state |= HTML_STRING1;
+ state |= IN_HTML_STRING1;
break;
}
if (*p == '>') {
p++;
- state &= ~HTML_TAG;
+ state &= ~IN_HTML_TAG;
break;
}
}
- set_color(p_start, p, QE_STYLE_HTML_TAG);
- if (state & (HTML_STRING|HTML_STRING1)) {
- set_color1(p, QE_STYLE_HTML_STRING);
+ set_color(p_start, p, HTML_STYLE_TAG);
+ if (state & (IN_HTML_STRING | IN_HTML_STRING1)) {
+ set_color1(p, HTML_STYLE_STRING);
p++;
}
continue;
@@ -204,31 +214,31 @@
if (*p == '<'
&& (qe_isalpha(p[1])
|| p[1] == '!' || p[1] == '/' || p[1] == '?')) {
- //set_color(p_start, p, QE_STYLE_HTML_TEXT);
+ //set_color(p_start, p, HTML_STYLE_TEXT);
p_start = p;
if (ustristart(p, "<script", NULL)) {
- state |= HTML_SCRIPTTAG;
+ state |= IN_HTML_SCRIPTTAG;
break;
}
if (p[1] == '!') {
- state |= HTML_COMMENT1;
+ state |= IN_HTML_COMMENT1;
p += 2;
if (*p == '-' && p[1] == '-') {
p += 2;
- state |= HTML_COMMENT;
+ state |= IN_HTML_COMMENT;
}
- set_color(p_start, p, QE_STYLE_HTML_COMMENT);
+ set_color(p_start, p, HTML_STYLE_COMMENT);
p_start = p;
} else
- state |= HTML_TAG;
+ state |= IN_HTML_TAG;
break;
}
if (*p == '&' && get_html_entity(p)) {
- state |= HTML_ENTITY;
+ state |= IN_HTML_ENTITY;
break;
}
}
- //set_color(p_start, p - p_start, QE_STYLE_HTML_TEXT);
+ //set_color(p_start, p - p_start, HTML_STYLE_TEXT);
}
the_end:
*colorize_state_ptr = state;
Index: markdown.c
===================================================================
RCS file: /sources/qemacs/qemacs/markdown.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- markdown.c 24 Mar 2014 10:58:10 -0000 1.9
+++ markdown.c 2 Apr 2014 12:58:13 -0000 1.10
@@ -23,59 +23,48 @@
ModeDef mkd_mode;
enum {
- QE_STYLE_MKD_HEADING1 = QE_STYLE_FUNCTION,
- QE_STYLE_MKD_HEADING2 = QE_STYLE_STRING,
- QE_STYLE_MKD_HEADING3 = QE_STYLE_VARIABLE,
- QE_STYLE_MKD_HEADING4 = QE_STYLE_TYPE,
- QE_STYLE_MKD_TILDE = QE_STYLE_PREPROCESS,
- QE_STYLE_MKD_COMMENT = QE_STYLE_COMMENT,
- QE_STYLE_MKD_BLOCK_QUOTE = QE_STYLE_FUNCTION,
- QE_STYLE_MKD_TABLE = QE_STYLE_TYPE,
- QE_STYLE_MKD_HBAR = QE_STYLE_VARIABLE,
- QE_STYLE_MKD_STRONG2 = QE_STYLE_FUNCTION,
- QE_STYLE_MKD_STRONG1 = QE_STYLE_FUNCTION,
- QE_STYLE_MKD_EMPHASIS2 = QE_STYLE_VARIABLE,
- QE_STYLE_MKD_EMPHASIS1 = QE_STYLE_VARIABLE,
- QE_STYLE_MKD_CODE = QE_STYLE_STRING,
- QE_STYLE_MKD_IMAGE_LINK = QE_STYLE_KEYWORD,
- QE_STYLE_MKD_REF_LINK = QE_STYLE_KEYWORD,
- QE_STYLE_MKD_DLIST = QE_STYLE_NUMBER,
- QE_STYLE_MKD_LIST = QE_STYLE_NUMBER,
-
-#if 0
-QE_STYLE_COMMENT,
-QE_STYLE_PREPROCESS,
-QE_STYLE_STRING,
-QE_STYLE_STRING_Q,
-QE_STYLE_KEYWORD,
-QE_STYLE_NUMBER,
-QE_STYLE_FUNCTION,
-QE_STYLE_VARIABLE,
-QE_STYLE_TYPE,
-QE_STYLE_TAG,
-#endif
+ /* TODO: define specific styles */
+ MKD_STYLE_HEADING1 = QE_STYLE_FUNCTION,
+ MKD_STYLE_HEADING2 = QE_STYLE_STRING,
+ MKD_STYLE_HEADING3 = QE_STYLE_VARIABLE,
+ MKD_STYLE_HEADING4 = QE_STYLE_TYPE,
+ MKD_STYLE_TILDE = QE_STYLE_PREPROCESS,
+ MKD_STYLE_COMMENT = QE_STYLE_COMMENT,
+ MKD_STYLE_BLOCK_QUOTE = QE_STYLE_FUNCTION,
+ MKD_STYLE_TABLE = QE_STYLE_TYPE,
+ MKD_STYLE_HBAR = QE_STYLE_VARIABLE,
+ MKD_STYLE_STRONG2 = QE_STYLE_FUNCTION,
+ MKD_STYLE_STRONG1 = QE_STYLE_FUNCTION,
+ MKD_STYLE_EMPHASIS2 = QE_STYLE_VARIABLE,
+ MKD_STYLE_EMPHASIS1 = QE_STYLE_VARIABLE,
+ MKD_STYLE_CODE = QE_STYLE_STRING,
+ MKD_STYLE_IMAGE_LINK = QE_STYLE_KEYWORD,
+ MKD_STYLE_REF_LINK = QE_STYLE_KEYWORD,
+ MKD_STYLE_DLIST = QE_STYLE_NUMBER,
+ MKD_STYLE_LIST = QE_STYLE_NUMBER,
};
-#define IN_HTML_BLOCK 0x8000
-#define IN_BLOCK 0x4000
-#define IN_LANG 0x3800
-#define IN_C 0x0800
-#define IN_PYTHON 0x1000
-#define IN_RUBY 0x1800
-#define IN_HASKELL 0x2000
-#define IN_LUA 0x2800
-#define IN_LEVEL 0x0700
-#define LEVEL_SHIFT 8
-
-#define MAX_LEVEL 128
-
-/* TODO: define specific styles */
-#define BULLET_STYLES 4
-static int MkdBulletStyles[BULLET_STYLES] = {
- QE_STYLE_MKD_HEADING1,
- QE_STYLE_MKD_HEADING2,
- QE_STYLE_MKD_HEADING3,
- QE_STYLE_MKD_HEADING4,
+enum {
+ IN_MKD_HTML_BLOCK = 0x8000,
+ IN_MKD_BLOCK = 0x4000,
+ IN_MKD_LANG = 0x3800,
+ IN_MKD_C = 0x0800,
+ IN_MKD_PYTHON = 0x1000,
+ IN_MKD_RUBY = 0x1800,
+ IN_MKD_HASKELL = 0x2000,
+ IN_MKD_LUA = 0x2800,
+ IN_MKD_LEVEL = 0x0700,
+};
+
+#define MKD_LEVEL_SHIFT 8
+#define MKD_MAX_LEVEL 128
+
+#define MKD_BULLET_STYLES 4
+static int MkdBulletStyles[MKD_BULLET_STYLES] = {
+ MKD_STYLE_HEADING1,
+ MKD_STYLE_HEADING2,
+ MKD_STYLE_HEADING3,
+ MKD_STYLE_HEADING4,
};
static int mkd_scan_chunk(const unsigned int *str,
@@ -108,55 +97,55 @@
int colstate = *statep;
int level, indent, i = 0, j = 0, base_style = 0;
- if (colstate & IN_HTML_BLOCK) {
+ if (colstate & IN_MKD_HTML_BLOCK) {
if (str[i] != '<' && str[i] != '\0' && !qe_isblank(str[i]))
- colstate &= ~IN_HTML_BLOCK;
+ colstate &= ~IN_MKD_HTML_BLOCK;
}
- if ((colstate & IN_HTML_BLOCK)
+ if ((colstate & IN_MKD_HTML_BLOCK)
|| (str[i] == '<' && str[i + 1] != '/')) {
/* block level HTML markup */
- colstate &= ~IN_HTML_BLOCK;
+ colstate &= ~IN_MKD_HTML_BLOCK;
htmlsrc_colorize_line(str, n, 0, &colstate, state_only);
- colstate |= IN_HTML_BLOCK;
+ colstate |= IN_MKD_HTML_BLOCK;
if ((str[i] & CHAR_MASK) == '<' && (str[i + 1] & CHAR_MASK) == '/')
colstate = 0;
*statep = colstate;
return;
}
- if (colstate & IN_BLOCK) {
+ if (colstate & IN_MKD_BLOCK) {
/* Should count number of ~ to detect end of block */
if (ustrstart(str + i, "~~~", NULL)
|| ustrstart(str + i, "```", NULL)) {
- colstate &= ~(IN_BLOCK | IN_LANG);
- SET_COLOR(str, i, n, QE_STYLE_MKD_TILDE);
+ colstate &= ~(IN_MKD_BLOCK | IN_MKD_LANG);
+ SET_COLOR(str, i, n, MKD_STYLE_TILDE);
i = n;
} else {
- int lang = colstate & IN_LANG;
- colstate &= ~(IN_BLOCK | IN_LANG);
+ int lang = colstate & IN_MKD_LANG;
+ colstate &= ~(IN_MKD_BLOCK | IN_MKD_LANG);
switch (lang) {
- case IN_C:
+ case IN_MKD_C:
c_colorize_line(str, n, CLANG_C, &colstate, state_only);
break;
- case IN_PYTHON:
+ case IN_MKD_PYTHON:
python_colorize_line(str, n, 0, &colstate, state_only);
break;
- case IN_RUBY:
+ case IN_MKD_RUBY:
ruby_colorize_line(str, n, 0, &colstate, state_only);
break;
- case IN_HASKELL:
+ case IN_MKD_HASKELL:
haskell_colorize_line(str, n, 0, &colstate, state_only);
break;
- case IN_LUA:
+ case IN_MKD_LUA:
lua_colorize_line(str, n, 0, &colstate, state_only);
break;
default:
- SET_COLOR(str, i, n, QE_STYLE_MKD_CODE);
+ SET_COLOR(str, i, n, MKD_STYLE_CODE);
break;
}
- colstate &= ~(IN_BLOCK | IN_LANG);
- colstate |= (IN_BLOCK | lang);
+ colstate &= ~(IN_MKD_BLOCK | IN_MKD_LANG);
+ colstate |= (IN_MKD_BLOCK | lang);
}
*statep = colstate;
return;
@@ -168,42 +157,42 @@
continue;
if (qe_isblank(str[j])) {
- base_style = MkdBulletStyles[(j - i - 1) % BULLET_STYLES];
+ base_style = MkdBulletStyles[(j - i - 1) % MKD_BULLET_STYLES];
SET_COLOR(str, i, j + 1, base_style);
i = j + 1;
}
} else
if (str[i] == '%') {
/* pandoc extension: line comment */
- SET_COLOR(str, i, n, QE_STYLE_MKD_COMMENT);
+ SET_COLOR(str, i, n, MKD_STYLE_COMMENT);
i = n;
} else
if (str[i] == '>') {
/* block quoting */
- SET_COLOR(str, i, n, QE_STYLE_MKD_BLOCK_QUOTE);
+ SET_COLOR(str, i, n, MKD_STYLE_BLOCK_QUOTE);
i = n;
} else
if (ustrstart(str + i, "~~~", NULL)
|| ustrstart(str + i, "```", NULL)) {
/* verbatim block */
- colstate |= IN_BLOCK;
+ colstate |= IN_MKD_BLOCK;
if (ustrstr(str + i + 3, "c")
|| ustrstr(str + i + 3, "java")) {
- colstate |= IN_C;
+ colstate |= IN_MKD_C;
} else
if (ustrstr(str + i + 3, "haskell")) {
- colstate |= IN_HASKELL;
+ colstate |= IN_MKD_HASKELL;
} else
if (ustrstr(str + i + 3, "lua")) {
- colstate |= IN_LUA;
+ colstate |= IN_MKD_LUA;
} else
if (ustrstr(str + i + 3, "python")) {
- colstate |= IN_PYTHON;
+ colstate |= IN_MKD_PYTHON;
} else
if (ustrstr(str + i + 3, "ruby")) {
- colstate |= IN_RUBY;
+ colstate |= IN_MKD_RUBY;
}
- SET_COLOR(str, i, n, QE_STYLE_MKD_TILDE);
+ SET_COLOR(str, i, n, MKD_STYLE_TILDE);
i = n;
} else
if (str[i] == '-') {
@@ -211,7 +200,7 @@
for (j = i + 1; str[j] == '-'; j++)
continue;
if (j == n) {
- SET_COLOR(str, i, n, QE_STYLE_MKD_HEADING2);
+ SET_COLOR(str, i, n, MKD_STYLE_HEADING2);
i = n;
}
} else
@@ -220,12 +209,12 @@
for (j = i + 1; str[j] == '='; j++)
continue;
if (j == n) {
- SET_COLOR(str, i, n, QE_STYLE_MKD_HEADING1);
+ SET_COLOR(str, i, n, MKD_STYLE_HEADING1);
i = n;
}
} else
if (str[i] == '|') {
- base_style = QE_STYLE_MKD_TABLE;
+ base_style = MKD_STYLE_TABLE;
}
/* [X] unordered lists: /[-*+] / */
@@ -244,7 +233,7 @@
/* [X] litteral chars: isolate them or escape them with \ */
/* \ ` * _ { } [ ] ( ) # + - . ! */
- level = (colstate & IN_LEVEL) >> LEVEL_SHIFT;
+ level = (colstate & IN_MKD_LEVEL) >> MKD_LEVEL_SHIFT;
for (indent = 0;; i++) {
if (str[i] == ' ')
indent++;
@@ -264,7 +253,7 @@
if (indent >= 4) {
/* Should detect sequel lines in ordered/unordered lists */
- SET_COLOR(str, i, n, QE_STYLE_MKD_CODE);
+ SET_COLOR(str, i, n, MKD_STYLE_CODE);
i = n;
}
}
@@ -281,13 +270,13 @@
}
if (j == n && count >= 3) {
/* Horizontal rule */
- SET_COLOR(str, i, n, QE_STYLE_MKD_HBAR);
+ SET_COLOR(str, i, n, MKD_STYLE_HBAR);
i = n;
}
}
if (level) {
- base_style = QE_STYLE_MKD_LIST;
+ base_style = MKD_STYLE_LIST;
}
if (qe_isdigit(str[i])) {
@@ -295,7 +284,7 @@
continue;
if (str[j] == '.' && qe_isblank(str[j + 1])) {
level++;
- base_style = QE_STYLE_MKD_DLIST;
+ base_style = MKD_STYLE_DLIST;
SET_COLOR(str, i, j, base_style);
i = j;
}
@@ -303,7 +292,7 @@
if ((str[i] == '-' || str[i] == '*' || str[i] == '+')
&& qe_isblank(str[i + 1])) {
level++;
- base_style = QE_STYLE_MKD_LIST;
+ base_style = MKD_STYLE_LIST;
SET_COLOR(str, i, j, base_style);
i = j;
}
@@ -321,24 +310,24 @@
break;
case '*': /* bold */
if (str[i + 1] == '*') {
- chunk_style = QE_STYLE_MKD_STRONG2;
+ chunk_style = MKD_STYLE_STRONG2;
chunk = mkd_scan_chunk(str + i, "**", "**", 1);
} else {
- chunk_style = QE_STYLE_MKD_STRONG1;
+ chunk_style = MKD_STYLE_STRONG1;
chunk = mkd_scan_chunk(str + i, "*", "*", 1);
}
break;
case '_': /* emphasis */
if (str[i + 1] == '_') {
- chunk_style = QE_STYLE_MKD_EMPHASIS2;
+ chunk_style = MKD_STYLE_EMPHASIS2;
chunk = mkd_scan_chunk(str + i, "__", "__", 1);
} else {
- chunk_style = QE_STYLE_MKD_EMPHASIS1;
+ chunk_style = MKD_STYLE_EMPHASIS1;
chunk = mkd_scan_chunk(str + i, "_", "_", 1);
}
break;
case '`': /* code */
- chunk_style = QE_STYLE_MKD_CODE;
+ chunk_style = MKD_STYLE_CODE;
if (str[i + 1] == '`') {
if (str[i + 2] == ' ') {
chunk = mkd_scan_chunk(str + i, "`` ", " ``", 1);
@@ -350,15 +339,15 @@
}
break;
case '!': /* image link ^[...: <...>] */
- chunk_style = QE_STYLE_MKD_IMAGE_LINK;
+ chunk_style = MKD_STYLE_IMAGE_LINK;
chunk = mkd_scan_chunk(str + i, "![", "]", 1);
break;
case '[': /* link ^[...: <...>] */
- chunk_style = QE_STYLE_MKD_REF_LINK;
+ chunk_style = MKD_STYLE_REF_LINK;
chunk = mkd_scan_chunk(str + i, "[", "]", 1);
break;
case '<': /* automatic link <http://address> */
- chunk_style = QE_STYLE_MKD_REF_LINK;
+ chunk_style = MKD_STYLE_REF_LINK;
chunk = mkd_scan_chunk(str + i, "<http", ">", 1);
if (chunk)
break;
@@ -392,8 +381,8 @@
}
}
- colstate &= ~IN_LEVEL;
- colstate |= (level << LEVEL_SHIFT) & IN_LEVEL;
+ colstate &= ~IN_MKD_LEVEL;
+ colstate |= (level << MKD_LEVEL_SHIFT) & IN_MKD_LEVEL;
*statep = colstate;
}
@@ -480,12 +469,12 @@
static void do_outline_next_vsible_heading(EditState *s)
{
- s->offset = mkd_next_heading(s, s->offset, MAX_LEVEL, NULL);
+ s->offset = mkd_next_heading(s, s->offset, MKD_MAX_LEVEL, NULL);
}
static void do_outline_previous_vsible_heading(EditState *s)
{
- s->offset = mkd_prev_heading(s, s->offset, MAX_LEVEL, NULL);
+ s->offset = mkd_prev_heading(s, s->offset, MKD_MAX_LEVEL, NULL);
}
static void do_outline_up_heading(EditState *s)
@@ -572,7 +561,7 @@
if (offset < 0)
return;
- offset1 = mkd_next_heading(s, offset, subtree ? level : MAX_LEVEL, NULL);
+ offset1 = mkd_next_heading(s, offset, subtree ? level : MKD_MAX_LEVEL,
NULL);
/* XXX: if repeating last command, add subtree to region */
if (qs->last_cmd_func != qs->this_cmd_func)
@@ -671,7 +660,7 @@
return;
}
}
- offset = mkd_next_heading(s, offset, MAX_LEVEL, &level1);
+ offset = mkd_next_heading(s, offset, MKD_MAX_LEVEL, &level1);
if (level1 <= level)
break;
}
Index: xml.c
===================================================================
RCS file: /sources/qemacs/qemacs/xml.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- xml.c 24 Mar 2014 10:58:10 -0000 1.16
+++ xml.c 2 Apr 2014 12:58:13 -0000 1.17
@@ -22,12 +22,18 @@
/* colorization states */
enum {
- XML_TAG = 1,
- XML_COMMENT,
- XML_TAG_SCRIPT,
- XML_TAG_STYLE,
- XML_STYLE,
- XML_SCRIPT = 0x80, /* special mode for inside a script, ored with c mode */
+ IN_XML_TAG = 1,
+ IN_XML_COMMENT,
+ IN_XML_TAG_SCRIPT,
+ IN_XML_TAG_STYLE,
+ IN_XML_STYLE,
+ IN_XML_SCRIPT = 0x80, /* special mode for inside a script, ored with c
mode */
+};
+
+enum {
+ XML_STYLE_COMMENT = QE_STYLE_COMMENT,
+ XML_STYLE_TAG = QE_STYLE_TAG,
+ XML_STYLE_CSS = QE_STYLE_CSS,
};
static void xml_colorize_line(unsigned int *buf, int len, int mode_flags,
@@ -41,15 +47,15 @@
p_start = p;
/* if already in a state, go directly in the code parsing it */
- if (state & XML_SCRIPT)
+ if (state & IN_XML_SCRIPT)
goto parse_script;
switch (state) {
- case XML_COMMENT:
+ case IN_XML_COMMENT:
goto parse_comment;
- case XML_TAG:
- case XML_TAG_SCRIPT:
+ case IN_XML_TAG:
+ case IN_XML_TAG_SCRIPT:
goto parse_tag;
- case XML_STYLE:
+ case IN_XML_STYLE:
goto parse_style;
default:
break;
@@ -66,7 +72,7 @@
p++;
if (p[0] == '!' && p[1] == '-' && p[2] == '-') {
p += 3;
- state = XML_COMMENT;
+ state = IN_XML_COMMENT;
/* wait until end of comment */
parse_comment:
while (*p != '\0') {
@@ -78,24 +84,24 @@
p++;
}
}
- set_color(p_start, p, QE_STYLE_COMMENT);
+ set_color(p_start, p, XML_STYLE_COMMENT);
} else {
/* we are in a tag */
if (ustristart(p, "SCRIPT", (const unsigned int **)&p)) {
- state = XML_TAG_SCRIPT;
+ state = IN_XML_TAG_SCRIPT;
} else
if (ustristart(p, "STYLE", (const unsigned int **)&p)) {
- state = XML_TAG_STYLE;
+ state = IN_XML_TAG_STYLE;
}
parse_tag:
while (*p != '\0') {
if (*p == '>') {
p++;
- if (state == XML_TAG_SCRIPT)
- state = XML_SCRIPT;
+ if (state == IN_XML_TAG_SCRIPT)
+ state = IN_XML_SCRIPT;
else
- if (state == XML_TAG_STYLE)
- state = XML_STYLE;
+ if (state == IN_XML_TAG_STYLE)
+ state = IN_XML_STYLE;
else
state = 0;
break;
@@ -103,18 +109,18 @@
p++;
}
}
- set_color(p_start, p, QE_STYLE_TAG);
- if (state == XML_SCRIPT) {
+ set_color(p_start, p, XML_STYLE_TAG);
+ if (state == IN_XML_SCRIPT) {
/* javascript coloring */
p_start = p;
parse_script:
for (;;) {
if (*p == '\0') {
- state &= ~XML_SCRIPT;
+ state &= ~IN_XML_SCRIPT;
/* XXX: should have javascript specific
colorize_func */
c_colorize_line(p_start, p - p_start,
CLANG_C | CLANG_REGEX, &state, state_only);
- state |= XML_SCRIPT;
+ state |= IN_XML_SCRIPT;
break;
} else
if (ustristart(p, "</SCRIPT", (const unsigned int
**)&p1)) {
@@ -122,15 +128,15 @@
if (*p1++ == '>')
break;
}
- state &= ~XML_SCRIPT;
+ state &= ~IN_XML_SCRIPT;
c = *p;
*p = '\0';
/* XXX: should have javascript specific
colorize_func */
c_colorize_line(p_start, p - p_start,
CLANG_C | CLANG_REGEX, &state, state_only);
*p = c;
- state |= XML_SCRIPT;
- set_color(p, p1, QE_STYLE_TAG);
+ state |= IN_XML_SCRIPT;
+ set_color(p, p1, XML_STYLE_TAG);
p = p1;
state = 0;
break;
@@ -139,13 +145,13 @@
}
}
} else
- if (state == XML_STYLE) {
+ if (state == IN_XML_STYLE) {
/* stylesheet coloring */
p_start = p;
parse_style:
for (;;) {
if (*p == '\0') {
- set_color(p_start, p, QE_STYLE_CSS);
+ set_color(p_start, p, XML_STYLE_CSS);
break;
} else
if (ustristart(p, "</STYLE", (const unsigned int
**)&p1)) {
@@ -153,8 +159,8 @@
if (*p1++ != '>')
break;
}
- set_color(p_start, p, QE_STYLE_CSS);
- set_color(p, p1, QE_STYLE_TAG);
+ set_color(p_start, p, XML_STYLE_CSS);
+ set_color(p, p1, XML_STYLE_TAG);
p = p1;
state = 0;
break;
Index: script.c
===================================================================
RCS file: /sources/qemacs/qemacs/script.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- script.c 24 Mar 2014 10:58:10 -0000 1.7
+++ script.c 2 Apr 2014 12:58:13 -0000 1.8
@@ -23,13 +23,13 @@
/*---------------- Shell script colors ----------------*/
enum {
- SCRIPT_TEXT = QE_STYLE_DEFAULT,
- SCRIPT_COMMENT = QE_STYLE_COMMENT,
- SCRIPT_PREPROCESS = QE_STYLE_PREPROCESS,
- SCRIPT_COMMAND = QE_STYLE_FUNCTION,
- SCRIPT_VARIABLE = QE_STYLE_TYPE,
- SCRIPT_STRING = QE_STYLE_STRING,
- SCRIPT_BACKTICK = QE_STYLE_STRING_Q,
+ SCRIPT_STYLE_TEXT = QE_STYLE_DEFAULT,
+ SCRIPT_STYLE_COMMENT = QE_STYLE_COMMENT,
+ SCRIPT_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
+ SCRIPT_STYLE_COMMAND = QE_STYLE_FUNCTION,
+ SCRIPT_STYLE_VARIABLE = QE_STYLE_TYPE,
+ SCRIPT_STYLE_STRING = QE_STYLE_STRING,
+ SCRIPT_STYLE_BACKTICK = QE_STYLE_STRING_Q,
};
static int script_var(const unsigned int *str, int j, int n)
@@ -47,25 +47,25 @@
{
int i = 0, j, style;
- style = SCRIPT_COMMAND;
+ style = SCRIPT_STYLE_COMMAND;
while (i < n) {
switch (str[i]) {
case '#':
if (i > 0 && str[i - 1] == '$')
break;
- style = SCRIPT_COMMENT;
+ style = SCRIPT_STYLE_COMMENT;
if (str[i + 1] == '!')
- style = SCRIPT_PREPROCESS;
+ style = SCRIPT_STYLE_PREPROCESS;
SET_COLOR(str, i, n, style);
i = n;
continue;
case '`':
- style = SCRIPT_BACKTICK;
+ style = SCRIPT_STYLE_BACKTICK;
goto has_string;
case '\'':
case '"':
- style = SCRIPT_STRING;
+ style = SCRIPT_STYLE_STRING;
has_string:
/* parse string const */
for (j = i + 1; j < n; j++) {
@@ -86,15 +86,15 @@
while (qe_isblank(str[j]))
j++;
if (str[j] == '=')
- style = SCRIPT_VARIABLE;
+ style = SCRIPT_STYLE_VARIABLE;
SET_COLOR(str, i, j, style);
- style = SCRIPT_TEXT;
+ style = SCRIPT_STYLE_TEXT;
i = j;
continue;
}
// Should support << syntax
// Should support $ syntax
- style = SCRIPT_TEXT;
+ style = SCRIPT_STYLE_TEXT;
break;
}
i++;
Index: unihex.c
===================================================================
RCS file: /sources/qemacs/qemacs/unihex.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- unihex.c 10 Feb 2014 03:24:35 -0000 1.22
+++ unihex.c 2 Apr 2014 12:58:13 -0000 1.23
@@ -21,6 +21,11 @@
#include "qe.h"
+enum {
+ UNIHEX_STYLE_OFFSET = QE_STYLE_COMMENT,
+ UNIHEX_STYLE_DUMP = QE_STYLE_FUNCTION,
+};
+
static int unihex_mode_init(EditState *s, ModeSavedData *saved_data)
{
int c, maxc, offset, max_offset;
@@ -79,7 +84,7 @@
display_bol(ds);
- ds->style = QE_STYLE_COMMENT;
+ ds->style = UNIHEX_STYLE_OFFSET;
display_printf(ds, -1, -1, "%08x ", offset);
//int charpos = eb_get_char_offset(s->b, offset);
//display_printf(ds, -1, -1, "%08x ", charpos);
@@ -95,7 +100,7 @@
}
pos[len] = offset;
- ds->style = QE_STYLE_FUNCTION;
+ ds->style = UNIHEX_STYLE_DUMP;
for (j = 0; j < disp_width; j++) {
display_char(ds, -1, -1, ' ');
Index: hex.c
===================================================================
RCS file: /sources/qemacs/qemacs/hex.c,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- hex.c 4 Feb 2014 22:47:31 -0000 1.37
+++ hex.c 2 Apr 2014 12:58:14 -0000 1.38
@@ -21,6 +21,11 @@
#include "qe.h"
+enum {
+ HEX_STYLE_OFFSET = QE_STYLE_COMMENT,
+ HEX_STYLE_DUMP = QE_STYLE_FUNCTION,
+};
+
static int to_disp(int c)
{
#if 1
@@ -47,7 +52,7 @@
display_bol(ds);
- ds->style = QE_STYLE_COMMENT;
+ ds->style = HEX_STYLE_OFFSET;
display_printf(ds, -1, -1, "%08x ", offset);
ateof = 0;
@@ -57,7 +62,7 @@
if (s->mode == &hex_mode) {
- ds->style = QE_STYLE_FUNCTION;
+ ds->style = HEX_STYLE_DUMP;
for (j = 0; j < s->disp_width; j++) {
display_char(ds, -1, -1, ' ');
Index: makemode.c
===================================================================
RCS file: /sources/qemacs/qemacs/makemode.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- makemode.c 24 Mar 2014 10:58:10 -0000 1.14
+++ makemode.c 2 Apr 2014 12:58:20 -0000 1.15
@@ -22,33 +22,47 @@
/*---------------- Makefile colors ----------------*/
-#define MAKEFILE_TEXT QE_STYLE_DEFAULT
-#define MAKEFILE_COMMENT QE_STYLE_COMMENT
-#define MAKEFILE_STRING QE_STYLE_STRING
-#define MAKEFILE_PREPROCESS QE_STYLE_PREPROCESS
-#define MAKEFILE_TARGET QE_STYLE_FUNCTION
-#define MAKEFILE_VARIABLE QE_STYLE_VARIABLE
-#define MAKEFILE_MACRO QE_STYLE_TYPE
+/* grab an identifier from a uint buf, stripping color.
+ * return char count.
+ */
+static int get_word_lc(char *buf, int buf_size, unsigned int *p)
+{
+ unsigned int c;
+ int i, j;
+
+ i = j = 0;
+ c = p[i] & CHAR_MASK;
+ if (qe_isalpha_(c)) {
+ do {
+ if (j < buf_size - 1)
+ buf[j++] = qe_tolower(c);
+ i++;
+ c = p[i] & CHAR_MASK;
+ } while (qe_isalnum_(c));
+ }
+ buf[j] = '\0';
+ return i;
+}
+
+enum {
+ MAKEFILE_STYLE_TEXT = QE_STYLE_DEFAULT,
+ MAKEFILE_STYLE_COMMENT = QE_STYLE_COMMENT,
+ MAKEFILE_STYLE_STRING = QE_STYLE_STRING,
+ MAKEFILE_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
+ MAKEFILE_STYLE_TARGET = QE_STYLE_FUNCTION,
+ MAKEFILE_STYLE_VARIABLE = QE_STYLE_VARIABLE,
+ MAKEFILE_STYLE_MACRO = QE_STYLE_TYPE,
+};
static void makefile_colorize_line(unsigned int *str, int n, int mode_flags,
int *statep, int state_only)
{
- int i, j, level;
-
- i = j = 0;
+ char buf[32];
+ int i = 0, j = i, level;
- /* CG: should check for end of word */
- if (str[0] == 'i') {
- if (ustristart(str, "ifeq", NULL)
- || ustristart(str, "ifneq", NULL)
- || ustristart(str, "ifdef", NULL)
- || ustristart(str, "ifndef", NULL)
- || ustristart(str, "include", NULL))
- goto preprocess;
- } else
- if (str[0] == 'e') {
- if (ustristart(str, "else", NULL)
- || ustristart(str, "endif", NULL))
+ if (qe_isalnum_(str[0])) {
+ get_word_lc(buf, countof(buf), str);
+ if (strfind("ifeq|ifneq|ifdef|ifndef|include|else|endif", buf))
goto preprocess;
}
@@ -73,7 +87,7 @@
}
}
if (i < j)
- SET_COLOR(str, i, j, MAKEFILE_MACRO);
+ SET_COLOR(str, i, j, MAKEFILE_STYLE_MACRO);
i = j;
continue;
case ' ':
@@ -89,18 +103,18 @@
break;
if (str[i+1] == '=')
goto variable;
- SET_COLOR(str, j, i, MAKEFILE_TARGET);
+ SET_COLOR(str, j, i, MAKEFILE_STYLE_TARGET);
break;
case '=':
if (j)
break;
variable:
- SET_COLOR(str, j, i, MAKEFILE_VARIABLE);
+ SET_COLOR(str, j, i, MAKEFILE_STYLE_VARIABLE);
break;
case '#':
if (i > 0 && str[i - 1] == '\\')
break;
- SET_COLOR(str, i, n, MAKEFILE_COMMENT);
+ SET_COLOR(str, i, n, MAKEFILE_STYLE_COMMENT);
i = n;
continue;
case '!':
@@ -113,7 +127,7 @@
if (str[j] == '#')
break;
}
- SET_COLOR(str, i, j, MAKEFILE_PREPROCESS);
+ SET_COLOR(str, i, j, MAKEFILE_STYLE_PREPROCESS);
i = j;
continue;
case '\'':
@@ -126,7 +140,7 @@
break;
}
}
- SET_COLOR(str, i, j, MAKEFILE_STRING);
+ SET_COLOR(str, i, j, MAKEFILE_STYLE_STRING);
i = j;
continue;
default:
@@ -136,14 +150,6 @@
}
}
-#undef MAKEFILE_TEXT
-#undef MAKEFILE_COMMENT
-#undef MAKEFILE_STRING
-#undef MAKEFILE_PREPROCESS
-#undef MAKEFILE_VARIABLE
-#undef MAKEFILE_TARGET
-#undef MAKEFILE_MACRO
-
static int makefile_mode_probe(ModeDef *mode, ModeProbeData *p)
{
/* check file name or extension */
Index: perl.c
===================================================================
RCS file: /sources/qemacs/qemacs/perl.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- perl.c 24 Mar 2014 10:58:10 -0000 1.15
+++ perl.c 2 Apr 2014 12:58:23 -0000 1.16
@@ -22,20 +22,24 @@
/*---------------- Perl colors ----------------*/
-#define PERL_TEXT QE_STYLE_DEFAULT
-#define PERL_COMMENT QE_STYLE_COMMENT
-#define PERL_STRING QE_STYLE_STRING
-#define PERL_REGEX QE_STYLE_STRING
-#define PERL_DELIM QE_STYLE_KEYWORD
-#define PERL_KEYWORD QE_STYLE_KEYWORD
-#define PERL_VAR QE_STYLE_VARIABLE
-#define PERL_NUMBER QE_STYLE_NUMBER
-
-#define IN_STRING1 0x01 /* single quote */
-#define IN_STRING2 0x02 /* double quote */
-#define IN_FORMAT 0x04 /* format = ... */
-#define IN_HEREDOC 0x08
-#define IN_POD 0x10
+enum {
+ PERL_STYLE_TEXT = QE_STYLE_DEFAULT,
+ PERL_STYLE_COMMENT = QE_STYLE_COMMENT,
+ PERL_STYLE_STRING = QE_STYLE_STRING,
+ PERL_STYLE_REGEX = QE_STYLE_STRING,
+ PERL_STYLE_DELIM = QE_STYLE_KEYWORD,
+ PERL_STYLE_KEYWORD = QE_STYLE_KEYWORD,
+ PERL_STYLE_VAR = QE_STYLE_VARIABLE,
+ PERL_STYLE_NUMBER = QE_STYLE_NUMBER,
+};
+
+enum {
+ IN_PERL_STRING1 = 0x01, /* single quote */
+ IN_PERL_STRING2 = 0x02, /* double quote */
+ IN_PERL_FORMAT = 0x04, /* format = ... */
+ IN_PERL_HEREDOC = 0x08,
+ IN_PERL_POD = 0x10,
+};
/* CG: bogus if multiple regions are colorized, should use signature */
/* XXX: should move this to mode data */
@@ -106,43 +110,43 @@
int i = 0, c, c1, c2, j = i, s1, s2, delim = 0;
int colstate = *statep;
- if (colstate & (IN_STRING1|IN_STRING2)) {
- delim = (colstate & IN_STRING1) ? '\'' : '\"';
+ if (colstate & (IN_PERL_STRING1 | IN_PERL_STRING2)) {
+ delim = (colstate & IN_PERL_STRING1) ? '\'' : '\"';
i = perl_string(str, delim, j, n);
if (i < n) {
i++;
- colstate &= ~(IN_STRING1|IN_STRING2);
+ colstate &= ~(IN_PERL_STRING1 | IN_PERL_STRING2);
}
- SET_COLOR(str, j, i, PERL_STRING);
+ SET_COLOR(str, j, i, PERL_STYLE_STRING);
} else
- if (colstate & IN_FORMAT) {
+ if (colstate & IN_PERL_FORMAT) {
i = n;
if (n == 1 && str[0] == '.')
- colstate &= ~IN_FORMAT;
- SET_COLOR(str, j, i, PERL_STRING);
+ colstate &= ~IN_PERL_FORMAT;
+ SET_COLOR(str, j, i, PERL_STYLE_STRING);
}
- if (colstate & IN_HEREDOC) {
+ if (colstate & IN_PERL_HEREDOC) {
i = n;
if (n == perl_eos_len && !umemcmp(perl_eos, str, n)) {
- colstate &= ~IN_HEREDOC;
- SET_COLOR(str, j, i, PERL_KEYWORD);
+ colstate &= ~IN_PERL_HEREDOC;
+ SET_COLOR(str, j, i, PERL_STYLE_KEYWORD);
} else {
- SET_COLOR(str, j, i, PERL_STRING);
+ SET_COLOR(str, j, i, PERL_STYLE_STRING);
}
}
if (str[i] == '=' && qe_isalpha(str[i + 1])) {
- colstate |= IN_POD;
+ colstate |= IN_PERL_POD;
}
- if (colstate & IN_POD) {
+ if (colstate & IN_PERL_POD) {
if (ustrstart(str + i, "=cut", NULL)) {
- colstate &= ~IN_POD;
+ colstate &= ~IN_PERL_POD;
}
if (str[i] == '=' && qe_isalpha(str[i + 1])) {
i = n;
- SET_COLOR(str, j, i, PERL_KEYWORD);
+ SET_COLOR(str, j, i, PERL_STYLE_KEYWORD);
} else {
i = n;
- SET_COLOR(str, j, i, PERL_COMMENT);
+ SET_COLOR(str, j, i, PERL_STYLE_COMMENT);
}
}
@@ -172,7 +176,7 @@
break;
s1 = perl_var(str, j, n);
if (s1 > j) {
- SET_COLOR(str, i, s1, PERL_VAR);
+ SET_COLOR(str, i, s1, PERL_STYLE_VAR);
i = s1;
continue;
}
@@ -188,7 +192,7 @@
}
break;
case '#':
- SET_COLOR(str, i, n, PERL_COMMENT);
+ SET_COLOR(str, i, n, PERL_STYLE_COMMENT);
i = n;
continue;
case '<':
@@ -207,7 +211,7 @@
perl_eos_len = min((int)(s2 - s1), countof(perl_eos) - 1);
umemcpy(perl_eos, str + s1, perl_eos_len);
perl_eos[perl_eos_len] = '\0';
- colstate |= IN_HEREDOC;
+ colstate |= IN_PERL_HEREDOC;
}
i += 2;
continue;
@@ -221,12 +225,12 @@
s1 = perl_string(str, c, j, n);
if (s1 >= n)
break;
- SET_COLOR1(str, i, PERL_DELIM);
- SET_COLOR(str, i + 1, s1, PERL_REGEX);
+ SET_COLOR1(str, i, PERL_STYLE_DELIM);
+ SET_COLOR(str, i + 1, s1, PERL_STYLE_REGEX);
i = s1;
while (++i < n && qe_isalpha(str[i]))
continue;
- SET_COLOR(str, s1, i, PERL_DELIM);
+ SET_COLOR(str, s1, i, PERL_STYLE_DELIM);
continue;
case '\'':
case '`':
@@ -237,15 +241,15 @@
s1 = perl_string(str, delim, j, n);
if (s1 >= n) {
if (c == '\'') {
- SET_COLOR(str, i, n, PERL_STRING);
+ SET_COLOR(str, i, n, PERL_STYLE_STRING);
i = n;
- colstate |= IN_STRING1;
+ colstate |= IN_PERL_STRING1;
continue;
}
if (c == '\"') {
- SET_COLOR(str, i, n, PERL_STRING);
+ SET_COLOR(str, i, n, PERL_STYLE_STRING);
i = n;
- colstate |= IN_STRING2;
+ colstate |= IN_PERL_STRING2;
continue;
}
/* ` string spanning more than one line treated as
@@ -254,7 +258,7 @@
break;
}
s1++;
- SET_COLOR(str, i, s1, PERL_STRING);
+ SET_COLOR(str, i, s1, PERL_STYLE_STRING);
i = s1;
continue;
case '.':
@@ -266,7 +270,7 @@
if (qe_isdigit(c)) {
number:
j = perl_number(str, i, n);
- SET_COLOR(str, i, j, PERL_NUMBER);
+ SET_COLOR(str, i, j, PERL_STYLE_NUMBER);
i = j;
continue;
}
@@ -286,12 +290,12 @@
s1 = perl_string(str, str[j], j + 1, n);
if (s1 >= n)
goto keyword;
- SET_COLOR(str, i, j + 1, PERL_DELIM);
- SET_COLOR(str, j + 1, s1, PERL_REGEX);
+ SET_COLOR(str, i, j + 1, PERL_STYLE_DELIM);
+ SET_COLOR(str, j + 1, s1, PERL_STYLE_REGEX);
i = s1;
while (++i < n && qe_isalpha(str[i]))
continue;
- SET_COLOR(str, s1, i, PERL_DELIM);
+ SET_COLOR(str, s1, i, PERL_STYLE_DELIM);
continue;
}
/* Should check for context */
@@ -303,14 +307,14 @@
s2 = perl_string(str, str[j], s1 + 1, n);
if (s2 >= n)
goto keyword;
- SET_COLOR(str, i, j + 1, PERL_DELIM);
- SET_COLOR(str, j + 1, s1, PERL_REGEX);
- SET_COLOR1(str, s1, PERL_DELIM);
- SET_COLOR(str, s1 + 1, s2, PERL_REGEX);
+ SET_COLOR(str, i, j + 1, PERL_STYLE_DELIM);
+ SET_COLOR(str, j + 1, s1, PERL_STYLE_REGEX);
+ SET_COLOR1(str, s1, PERL_STYLE_DELIM);
+ SET_COLOR(str, s1 + 1, s2, PERL_STYLE_REGEX);
i = s2;
while (++i < n && qe_isalpha(str[i]))
continue;
- SET_COLOR(str, s2, i, PERL_DELIM);
+ SET_COLOR(str, s2, i, PERL_STYLE_DELIM);
continue;
}
keyword:
@@ -321,10 +325,10 @@
}
if (s1 == i) {
/* keyword is first on line */
- colstate |= IN_FORMAT;
+ colstate |= IN_PERL_FORMAT;
}
}
- SET_COLOR(str, i, j, PERL_KEYWORD);
+ SET_COLOR(str, i, j, PERL_STYLE_KEYWORD);
i = j;
continue;
}
@@ -334,21 +338,6 @@
*statep = colstate;
}
-#undef PERL_TEXT
-#undef PERL_COMMENT
-#undef PERL_STRING
-#undef PERL_REGEX
-#undef PERL_DELIM
-#undef PERL_KEYWORD
-#undef PERL_VAR
-#undef PERL_NUMBER
-
-#undef IN_STRING1
-#undef IN_STRING2
-#undef IN_FORMAT
-#undef IN_HEREDOC
-#undef IN_POD
-
static int perl_mode_probe(ModeDef *mode, ModeProbeData *p)
{
/* just check file extension */
Index: latex-mode.c
===================================================================
RCS file: /sources/qemacs/qemacs/latex-mode.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- latex-mode.c 24 Mar 2014 10:58:10 -0000 1.44
+++ latex-mode.c 2 Apr 2014 12:58:23 -0000 1.45
@@ -22,6 +22,14 @@
#include "qe.h"
+enum {
+ LATEX_STYLE_COMMENT = QE_STYLE_COMMENT,
+ LATEX_STYLE_STRING = QE_STYLE_STRING,
+ LATEX_STYLE_FUNCTION = QE_STYLE_FUNCTION,
+ LATEX_STYLE_KEYWORD = QE_STYLE_KEYWORD,
+ LATEX_STYLE_VARIABLE = QE_STYLE_VARIABLE,
+};
+
/* TODO: add state handling to allow colorization of elements longer
* than one line (eg, multi-line functions and strings)
*/
@@ -61,7 +69,7 @@
break;
}
}
- set_color(p_start, p, QE_STYLE_STRING);
+ set_color(p_start, p, LATEX_STYLE_STRING);
}
break;
case '\\':
@@ -73,7 +81,7 @@
while (*p != '\0' && *p != '{' && *p != '[' && *p != ' ' && *p
!= '\\')
p++;
}
- set_color(p_start, p, QE_STYLE_FUNCTION);
+ set_color(p_start, p, LATEX_STYLE_FUNCTION);
while (*p == ' ' || *p == '\t') {
/* skip space */
p++;
@@ -84,7 +92,7 @@
p_start = p;
while (*p != '\0' && *p != ']')
p++;
- set_color(p_start, p, QE_STYLE_KEYWORD);
+ set_color(p_start, p, LATEX_STYLE_KEYWORD);
if (*p == ']')
p++;
} else {
@@ -101,7 +109,7 @@
}
p++;
}
- set_color(p_start, p, QE_STYLE_VARIABLE);
+ set_color(p_start, p, LATEX_STYLE_VARIABLE);
if (*p == '}')
p++;
}
@@ -116,7 +124,7 @@
/* line comment */
while (*p != '\0')
p++;
- set_color(p_start, p, QE_STYLE_COMMENT);
+ set_color(p_start, p, LATEX_STYLE_COMMENT);
break;
default:
p++;
Index: lisp.c
===================================================================
RCS file: /sources/qemacs/qemacs/lisp.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- lisp.c 24 Mar 2014 10:58:10 -0000 1.8
+++ lisp.c 2 Apr 2014 12:58:24 -0000 1.9
@@ -24,12 +24,16 @@
/*---------------- Lisp colors ----------------*/
-#define IN_COMMENT 0x01
-#define IN_STRING 0x02
+enum {
+ IN_LISP_COMMENT = 0x01,
+ IN_LISP_STRING = 0x02,
+};
-#define LISP_TEXT QE_STYLE_DEFAULT
-#define LISP_COMMENT QE_STYLE_COMMENT
-#define LISP_STRING QE_STYLE_STRING
+enum {
+ LISP_STYLE_TEXT = QE_STYLE_DEFAULT,
+ LISP_STYLE_COMMENT = QE_STYLE_COMMENT,
+ LISP_STYLE_STRING = QE_STYLE_STRING,
+};
static void lisp_colorize_line(unsigned int *str, int n, int mode_flags,
int *statep, __unused__ int state_only)
@@ -37,62 +41,62 @@
int colstate = *statep;
int i = 0, j = 0;
- if (colstate & IN_STRING) {
+ if (colstate & IN_LISP_STRING) {
for (j = i; j < n;) {
if (str[j] == '\\' && ++j < n) {
j++;
} else
if (str[j++] == '"') {
- colstate &= ~IN_STRING;
+ colstate &= ~IN_LISP_STRING;
break;
}
}
- SET_COLOR(str, i, j, LISP_STRING);
+ SET_COLOR(str, i, j, LISP_STYLE_STRING);
i = j;
}
- if (colstate & IN_COMMENT) {
+ if (colstate & IN_LISP_COMMENT) {
for (j = i; j < n; j++) {
if (str[j] == '|' && j + 1 < n && str[j + 1] == '#') {
j += 2;
- colstate &= ~IN_COMMENT;
+ colstate &= ~IN_LISP_COMMENT;
break;
}
}
- SET_COLOR(str, i, j, LISP_COMMENT);
+ SET_COLOR(str, i, j, LISP_STYLE_COMMENT);
i = j;
}
while (i < n) {
switch (str[i]) {
case ';':
- SET_COLOR(str, i, n, LISP_COMMENT);
+ SET_COLOR(str, i, n, LISP_STYLE_COMMENT);
i = n;
continue;
case '#':
/* check for block comment */
if (str[i + 1] == '|') {
- colstate |= IN_COMMENT;
+ colstate |= IN_LISP_COMMENT;
for (j = i + 2; j < n; j++) {
if (str[j] == '|' && str[j + 1] == '#') {
j += 2;
- colstate &= ~IN_COMMENT;
+ colstate &= ~IN_LISP_COMMENT;
break;
}
}
- SET_COLOR(str, i, j, LISP_COMMENT);
+ SET_COLOR(str, i, j, LISP_STYLE_COMMENT);
i = j;
continue;
}
break;
case '"':
/* parse string const */
- colstate |= IN_STRING;
+ colstate |= IN_LISP_STRING;
for (j = i + 1; j < n;) {
if (str[j++] == '"') {
- colstate &= ~IN_STRING;
+ colstate &= ~IN_LISP_STRING;
break;
}
}
- SET_COLOR(str, i, j, LISP_STRING);
+ SET_COLOR(str, i, j, LISP_STYLE_STRING);
i = j;
continue;
default:
@@ -103,12 +107,6 @@
*statep = colstate;
}
-#undef IN_STRING
-#undef IN_COMMENT
-#undef LISP_TEXT
-#undef LISP_COMMENT
-#undef LISP_STRING
-
static int lisp_mode_probe(ModeDef *mode, ModeProbeData *p)
{
/* check file name or extension */
Index: orgmode.c
===================================================================
RCS file: /sources/qemacs/qemacs/orgmode.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- orgmode.c 24 Mar 2014 10:58:10 -0000 1.17
+++ orgmode.c 2 Apr 2014 12:58:24 -0000 1.18
@@ -24,9 +24,26 @@
ModeDef org_mode;
-#define IN_BLOCK 0x80
-#define IN_LISP 0x40
-#define IN_TABLE 0x20
+enum {
+ IN_ORG_BLOCK = 0x80,
+ IN_ORG_LISP = 0x40,
+ IN_ORG_TABLE = 0x20,
+};
+
+enum {
+ ORG_STYLE_TODO = QE_STYLE_STRING,
+ ORG_STYLE_DONE = QE_STYLE_TYPE,
+ ORG_STYLE_BULLET1 = QE_STYLE_FUNCTION,
+ ORG_STYLE_BULLET2 = QE_STYLE_STRING,
+ ORG_STYLE_BULLET3 = QE_STYLE_VARIABLE,
+ ORG_STYLE_BULLET4 = QE_STYLE_TYPE,
+ ORG_STYLE_COMMENT = QE_STYLE_COMMENT,
+ ORG_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
+ ORG_STYLE_CODE = QE_STYLE_FUNCTION,
+ ORG_STYLE_PROPERTY = QE_STYLE_KEYWORD,
+ ORG_STYLE_TABLE = QE_STYLE_TYPE,
+ ORG_STYLE_EMPHASIS = QE_STYLE_STRING,
+};
#define MAX_LEVEL 128
@@ -35,17 +52,17 @@
const char *keyword;
int style;
} OrgTodoKeywords [] = {
- { "TODO", QE_STYLE_STRING },
- { "DONE", QE_STYLE_TYPE },
+ { "TODO", ORG_STYLE_TODO },
+ { "DONE", ORG_STYLE_DONE },
};
/* TODO: define specific styles */
#define BULLET_STYLES 5
static int OrgBulletStyles[BULLET_STYLES] = {
- QE_STYLE_FUNCTION,
- QE_STYLE_STRING,
- QE_STYLE_VARIABLE,
- QE_STYLE_TYPE,
+ ORG_STYLE_BULLET1,
+ ORG_STYLE_BULLET2,
+ ORG_STYLE_BULLET3,
+ ORG_STYLE_BULLET4,
};
static int org_todo_keyword(const unsigned int *str)
@@ -90,16 +107,16 @@
int colstate = *statep;
int i = 0, j = 0, kw, base_style = 0, has_space;
- if (colstate & IN_BLOCK) {
+ if (colstate & IN_ORG_BLOCK) {
for (j = i; str[j] == ' '; )
j++;
if (ustristart(str + j, "#+end_", NULL)) {
- colstate &= ~(IN_BLOCK | IN_LISP);
+ colstate &= ~(IN_ORG_BLOCK | IN_ORG_LISP);
} else {
- if (colstate & IN_LISP) {
- colstate &= ~(IN_LISP | IN_BLOCK);
+ if (colstate & IN_ORG_LISP) {
+ colstate &= ~(IN_ORG_LISP | IN_ORG_BLOCK);
lisp_mode.colorize_func(str, n, 0, &colstate, state_only);
- colstate |= IN_LISP | IN_BLOCK;
+ colstate |= IN_ORG_LISP | IN_ORG_BLOCK;
}
*statep = colstate;
return;
@@ -129,7 +146,7 @@
if (str[i] == '#') {
if (str[i + 1] == ' ') { /* [ \t]*[#][ ] -> comment */
- SET_COLOR(str, i, n, QE_STYLE_COMMENT);
+ SET_COLOR(str, i, n, ORG_STYLE_COMMENT);
i = n;
} else
if (str[i + 1] == '+') { /* [ \t]*[#][+] -> metadata */
@@ -139,23 +156,23 @@
* #+BEGIN_SRC / #+END_SRC
*/
if (ustristart(str + i, "#+begin_", NULL)) {
- colstate |= IN_BLOCK;
+ colstate |= IN_ORG_BLOCK;
if (ustristr(str + i, "lisp")) {
- colstate |= IN_LISP;
+ colstate |= IN_ORG_LISP;
}
}
- SET_COLOR(str, i, n, QE_STYLE_PREPROCESS);
+ SET_COLOR(str, i, n, ORG_STYLE_PREPROCESS);
i = n;
}
} else
if (str[i] == ':') {
if (str[i + 1] == ' ') {
/* code snipplet, should use code colorizer */
- SET_COLOR(str, i, n, QE_STYLE_FUNCTION);
+ SET_COLOR(str, i, n, ORG_STYLE_CODE);
i = n;
} else {
/* property */
- SET_COLOR(str, i, n, QE_STYLE_KEYWORD);
+ SET_COLOR(str, i, n, ORG_STYLE_PROPERTY);
i = n;
}
} else
@@ -163,8 +180,8 @@
/* five or more dashes indicate a horizontal bar */
} else
if (str[i] == '|') {
- colstate |= IN_TABLE;
- base_style = QE_STYLE_TYPE;
+ colstate |= IN_ORG_TABLE;
+ base_style = ORG_STYLE_TABLE;
}
}
@@ -258,7 +275,7 @@
has_space = (str[i] == ' ');
}
if (chunk) {
- SET_COLOR(str, i, i + chunk, QE_STYLE_STRING);
+ SET_COLOR(str, i, i + chunk, ORG_STYLE_EMPHASIS);
i += chunk;
} else {
SET_COLOR1(str, i, base_style);
@@ -266,7 +283,7 @@
}
}
- colstate &= ~IN_TABLE;
+ colstate &= ~IN_ORG_TABLE;
*statep = colstate;
}
Index: extra-modes.c
===================================================================
RCS file: /sources/qemacs/qemacs/extra-modes.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- extra-modes.c 24 Mar 2014 10:58:09 -0000 1.10
+++ extra-modes.c 2 Apr 2014 12:58:24 -0000 1.11
@@ -71,12 +71,12 @@
/* colstate is used to store the comment character */
enum {
- ASM_TEXT = QE_STYLE_DEFAULT,
- ASM_PREPROCESS = QE_STYLE_PREPROCESS,
- ASM_COMMENT = QE_STYLE_COMMENT,
- ASM_STRING = QE_STYLE_STRING,
- ASM_NUMBER = QE_STYLE_NUMBER,
- ASM_IDENTIFIER = QE_STYLE_VARIABLE,
+ ASM_STYLE_TEXT = QE_STYLE_DEFAULT,
+ ASM_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
+ ASM_STYLE_COMMENT = QE_STYLE_COMMENT,
+ ASM_STYLE_STRING = QE_STYLE_STRING,
+ ASM_STYLE_NUMBER = QE_STYLE_NUMBER,
+ ASM_STYLE_IDENTIFIER = QE_STYLE_VARIABLE,
};
static void asm_colorize_line(unsigned int *str, int n, int mode_flags,
@@ -97,7 +97,7 @@
break;
}
}
- SET_COLOR(str, w, i, ASM_COMMENT);
+ SET_COLOR(str, w, i, ASM_STYLE_COMMENT);
}
for (w = i; i < n && qe_isspace(str[i]); i++)
continue;
@@ -113,11 +113,11 @@
if (str[j] == ';')
break;
}
- SET_COLOR(str, i, j, ASM_PREPROCESS);
+ SET_COLOR(str, i, j, ASM_STYLE_PREPROCESS);
i = j;
continue;
case ';':
- SET_COLOR(str, i, n, ASM_COMMENT);
+ SET_COLOR(str, i, n, ASM_STYLE_COMMENT);
i = n;
continue;
case '\'':
@@ -129,7 +129,7 @@
break;
}
}
- SET_COLOR(str, i, j, ASM_STRING);
+ SET_COLOR(str, i, j, ASM_STYLE_STRING);
i = j;
continue;
default:
@@ -141,7 +141,7 @@
if (!qe_isalnum(str[j]))
break;
}
- SET_COLOR(str, i, j, ASM_NUMBER);
+ SET_COLOR(str, i, j, ASM_STYLE_NUMBER);
i = j;
continue;
}
@@ -163,7 +163,7 @@
break;
}
colstate = str[w];
- SET_COLOR(str, i, w, ASM_PREPROCESS);
+ SET_COLOR(str, i, w, ASM_STYLE_PREPROCESS);
i = w + 1;
goto comment;
}
@@ -172,12 +172,12 @@
} else
if (wn == 2) {
if (is_lc_keyword(str, i, j, asm_prepkeywords2)) {
- SET_COLOR(str, i, j, ASM_PREPROCESS);
+ SET_COLOR(str, i, j, ASM_STYLE_PREPROCESS);
i = j;
continue;
}
}
- SET_COLOR(str, i, j, ASM_IDENTIFIER);
+ SET_COLOR(str, i, j, ASM_STYLE_IDENTIFIER);
i = j;
continue;
}
@@ -238,12 +238,12 @@
};
enum {
- BASIC_TEXT = QE_STYLE_DEFAULT,
- BASIC_KEYWORD = QE_STYLE_KEYWORD,
- BASIC_PREPROCESS = QE_STYLE_PREPROCESS,
- BASIC_COMMENT = QE_STYLE_COMMENT,
- BASIC_STRING = QE_STYLE_STRING,
- BASIC_IDENTIFIER = QE_STYLE_VARIABLE,
+ BASIC_STYLE_TEXT = QE_STYLE_DEFAULT,
+ BASIC_STYLE_KEYWORD = QE_STYLE_KEYWORD,
+ BASIC_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
+ BASIC_STYLE_COMMENT = QE_STYLE_COMMENT,
+ BASIC_STYLE_STRING = QE_STYLE_STRING,
+ BASIC_STYLE_IDENTIFIER = QE_STYLE_VARIABLE,
};
static void basic_colorize_line(unsigned int *str, int n, int mode_flags,
@@ -255,9 +255,9 @@
switch (str[i]) {
case '\'':
if (str[i + 1] == '$')
- SET_COLOR(str, i, n, BASIC_PREPROCESS);
+ SET_COLOR(str, i, n, BASIC_STYLE_PREPROCESS);
else
- SET_COLOR(str, i, n, BASIC_COMMENT);
+ SET_COLOR(str, i, n, BASIC_STYLE_COMMENT);
i = n;
continue;
case '\"':
@@ -268,7 +268,7 @@
break;
}
}
- SET_COLOR(str, i, j, BASIC_STRING);
+ SET_COLOR(str, i, j, BASIC_STYLE_STRING);
i = j;
continue;
default:
@@ -280,7 +280,7 @@
if (!qe_isalnum(str[j]) && str[j] != '.')
break;
}
- SET_COLOR(str, i, j, BASIC_IDENTIFIER);
+ SET_COLOR(str, i, j, BASIC_STYLE_IDENTIFIER);
i = j;
continue;
}
@@ -294,11 +294,11 @@
}
}
if (is_lc_keyword(str, i, j, basic_keywords)) {
- SET_COLOR(str, i, j, BASIC_KEYWORD);
+ SET_COLOR(str, i, j, BASIC_STYLE_KEYWORD);
i = j;
continue;
}
- SET_COLOR(str, i, j, BASIC_IDENTIFIER);
+ SET_COLOR(str, i, j, BASIC_STYLE_IDENTIFIER);
i = j;
continue;
}
@@ -352,19 +352,21 @@
"|"
};
-#define IN_COMMENT 0x01
-#define IN_COMMENT1 0x02
-#define IN_COMMENT2 0x04
+enum {
+ IN_PASCAL_COMMENT = 0x01,
+ IN_PASCAL_COMMENT1 = 0x02,
+ IN_PASCAL_COMMENT2 = 0x04,
+};
enum {
- PAS_TEXT = QE_STYLE_DEFAULT,
- PAS_KEYWORD = QE_STYLE_KEYWORD,
- PAS_PREPROCESS = QE_STYLE_PREPROCESS,
- PAS_COMMENT = QE_STYLE_COMMENT,
- PAS_STRING = QE_STYLE_STRING,
- PAS_IDENTIFIER = QE_STYLE_VARIABLE,
- PAS_NUMBER = QE_STYLE_NUMBER,
- PAS_FUNCTION = QE_STYLE_FUNCTION,
+ PASCAL_STYLE_TEXT = QE_STYLE_DEFAULT,
+ PASCAL_STYLE_KEYWORD = QE_STYLE_KEYWORD,
+ PASCAL_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
+ PASCAL_STYLE_COMMENT = QE_STYLE_COMMENT,
+ PASCAL_STYLE_STRING = QE_STYLE_STRING,
+ PASCAL_STYLE_IDENTIFIER = QE_STYLE_VARIABLE,
+ PASCAL_STYLE_NUMBER = QE_STYLE_NUMBER,
+ PASCAL_STYLE_FUNCTION = QE_STYLE_FUNCTION,
};
static void pascal_colorize_line(unsigned int *str, int n, int mode_flags,
@@ -373,20 +375,20 @@
int i = 0, j = i, k;
int colstate = *statep;
- if (colstate & IN_COMMENT)
+ if (colstate & IN_PASCAL_COMMENT)
goto in_comment;
- if (colstate & IN_COMMENT1)
+ if (colstate & IN_PASCAL_COMMENT1)
goto in_comment1;
- if (colstate & IN_COMMENT2)
+ if (colstate & IN_PASCAL_COMMENT2)
goto in_comment2;
while (i < n) {
switch (str[i]) {
case '/':
if (str[i + 1] == '/') { /* C++ comments, recent extension */
- SET_COLOR(str, i, n, PAS_COMMENT);
+ SET_COLOR(str, i, n, PASCAL_STYLE_COMMENT);
i = n;
continue;
}
@@ -394,7 +396,7 @@
case '{':
/* check for preprocessor */
if (str[i + 1] == '$') {
- colstate = IN_COMMENT1;
+ colstate = IN_PASCAL_COMMENT1;
j = i + 2;
in_comment1:
for (; j < n; j++) {
@@ -404,11 +406,11 @@
break;
}
}
- SET_COLOR(str, i, j, PAS_PREPROCESS);
+ SET_COLOR(str, i, j, PASCAL_STYLE_PREPROCESS);
} else
{
/* regular comment (recursive?) */
- colstate = IN_COMMENT;
+ colstate = IN_PASCAL_COMMENT;
j = i + 1;
in_comment:
for (; j < n; j++) {
@@ -418,7 +420,7 @@
break;
}
}
- SET_COLOR(str, i, j, PAS_COMMENT);
+ SET_COLOR(str, i, j, PASCAL_STYLE_COMMENT);
}
i = j;
continue;
@@ -428,7 +430,7 @@
break;
/* regular comment (recursive?) */
- colstate = IN_COMMENT2;
+ colstate = IN_PASCAL_COMMENT2;
j = i + 2;
in_comment2:
for (; j < n; j++) {
@@ -438,7 +440,7 @@
break;
}
}
- SET_COLOR(str, i, j, PAS_COMMENT);
+ SET_COLOR(str, i, j, PASCAL_STYLE_COMMENT);
i = j;
continue;
case '\'':
@@ -449,7 +451,7 @@
break;
}
}
- SET_COLOR(str, i, j, PAS_STRING);
+ SET_COLOR(str, i, j, PASCAL_STYLE_STRING);
i = j;
continue;
case '#':
@@ -458,7 +460,7 @@
if (!qe_isdigit(str[j]))
break;
}
- SET_COLOR(str, i, j, PAS_STRING);
+ SET_COLOR(str, i, j, PASCAL_STYLE_STRING);
i = j;
continue;
default:
@@ -470,7 +472,7 @@
if (!qe_isalnum(str[j]) && str[j] != '.')
break;
}
- SET_COLOR(str, i, j, PAS_NUMBER);
+ SET_COLOR(str, i, j, PASCAL_STYLE_NUMBER);
i = j;
continue;
}
@@ -481,16 +483,17 @@
break;
}
if (is_lc_keyword(str, i, j, pascal_keywords)) {
- SET_COLOR(str, i, j, PAS_KEYWORD);
+ SET_COLOR(str, i, j, PASCAL_STYLE_KEYWORD);
i = j;
continue;
}
for (k = j; k < n; k++) {
- if (str[k] != ' ' && str[k] != '\t')
+ if (!qe_isblank(str[k]))
break;
}
SET_COLOR(str, i, j,
- str[k] == '(' ? PAS_FUNCTION : PAS_IDENTIFIER);
+ str[k] == '(' ? PASCAL_STYLE_FUNCTION :
+ PASCAL_STYLE_IDENTIFIER);
i = j;
continue;
}
@@ -500,10 +503,6 @@
*statep = colstate;
}
-#undef IN_COMMENT2
-#undef IN_COMMENT1
-#undef IN_COMMENT
-
static int pascal_mode_probe(ModeDef *mode, ModeProbeData *p)
{
if (match_extension(p->filename, mode->extensions))
@@ -536,13 +535,13 @@
/*---------------- Ini file (and similar) coloring ----------------*/
enum {
- INI_TEXT = QE_STYLE_DEFAULT,
- INI_COMMENT = QE_STYLE_COMMENT,
- INI_STRING = QE_STYLE_STRING,
- INI_FUNCTION = QE_STYLE_FUNCTION,
- INI_NUMBER = QE_STYLE_NUMBER,
- INI_IDENTIFIER = QE_STYLE_VARIABLE,
- INI_PREPROCESS = QE_STYLE_PREPROCESS,
+ INI_STYLE_TEXT = QE_STYLE_DEFAULT,
+ INI_STYLE_COMMENT = QE_STYLE_COMMENT,
+ INI_STYLE_STRING = QE_STYLE_STRING,
+ INI_STYLE_FUNCTION = QE_STYLE_FUNCTION,
+ INI_STYLE_NUMBER = QE_STYLE_NUMBER,
+ INI_STYLE_IDENTIFIER = QE_STYLE_VARIABLE,
+ INI_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
};
static void ini_colorize_line(unsigned int *str, int n, int mode_flags,
@@ -556,18 +555,18 @@
case ';':
if (!bol)
break;
- SET_COLOR(str, i, n, INI_COMMENT);
+ SET_COLOR(str, i, n, INI_STYLE_COMMENT);
i = n;
continue;
case '#':
if (!bol)
break;
- SET_COLOR(str, i, n, INI_PREPROCESS);
+ SET_COLOR(str, i, n, INI_STYLE_PREPROCESS);
i = n;
continue;
case '[':
if (i == 0) {
- SET_COLOR(str, i, n, INI_FUNCTION);
+ SET_COLOR(str, i, n, INI_STYLE_FUNCTION);
i = n;
continue;
}
@@ -580,7 +579,7 @@
break;
}
}
- SET_COLOR(str, i, j, INI_STRING);
+ SET_COLOR(str, i, j, INI_STYLE_STRING);
i = j;
continue;
default:
@@ -597,7 +596,7 @@
if (!qe_isalnum(str[j]))
break;
}
- SET_COLOR(str, i, j, INI_NUMBER);
+ SET_COLOR(str, i, j, INI_STYLE_NUMBER);
i = j;
continue;
}
@@ -610,7 +609,7 @@
break;
}
if (j < n) {
- SET_COLOR(str, i, j, INI_IDENTIFIER);
+ SET_COLOR(str, i, j, INI_STYLE_IDENTIFIER);
i = j;
continue;
} else {
@@ -680,15 +679,17 @@
/*---------------- PostScript colors ----------------*/
-#define IN_STRING 0x0F /* ( ... ) level */
-#define IN_COMMENT 0x10
+enum {
+ IN_PS_STRING = 0x0F /* ( ... ) level */,
+ IN_PS_COMMENT = 0x10,
+};
enum {
- PS_TEXT = QE_STYLE_DEFAULT,
- PS_COMMENT = QE_STYLE_COMMENT,
- PS_STRING = QE_STYLE_STRING,
- PS_NUMBER = QE_STYLE_DEFAULT,
- PS_IDENTIFIER = QE_STYLE_FUNCTION,
+ PS_STYLE_TEXT = QE_STYLE_DEFAULT,
+ PS_STYLE_COMMENT = QE_STYLE_COMMENT,
+ PS_STYLE_STRING = QE_STYLE_STRING,
+ PS_STYLE_NUMBER = QE_STYLE_DEFAULT,
+ PS_STYLE_IDENTIFIER = QE_STYLE_FUNCTION,
};
#define ispssep(c) (qe_findchar(" \t\r\n,()<>[]{}/", c))
@@ -700,10 +701,10 @@
int i = 0, j;
int colstate = *statep;
- if (colstate & IN_COMMENT)
+ if (colstate & IN_PS_COMMENT)
goto in_comment;
- if (colstate & IN_STRING)
+ if (colstate & IN_PS_STRING)
goto in_string;
colstate = 0;
@@ -714,10 +715,10 @@
case '%':
in_comment:
if (wrap)
- colstate |= IN_COMMENT;
+ colstate |= IN_PS_COMMENT;
else
- colstate &= ~IN_COMMENT;
- SET_COLOR(str, i, n, PS_COMMENT);
+ colstate &= ~IN_PS_COMMENT;
+ SET_COLOR(str, i, n, PS_STYLE_COMMENT);
i = n;
continue;
case '(':
@@ -730,7 +731,7 @@
continue;
case ')':
colstate--;
- if (!(colstate & IN_STRING))
+ if (!(colstate & IN_PS_STRING))
break;
continue;
case '\\':
@@ -743,7 +744,7 @@
}
break;
}
- SET_COLOR(str, i, j, PS_STRING);
+ SET_COLOR(str, i, j, PS_STYLE_STRING);
i = j;
continue;
default:
@@ -755,7 +756,7 @@
if (!qe_isalnum(str[j]) && str[j] != '.')
break;
}
- SET_COLOR(str, i, j, PS_NUMBER);
+ SET_COLOR(str, i, j, PS_STYLE_NUMBER);
i = j;
continue;
}
@@ -765,7 +766,7 @@
if (ispssep(str[j]))
break;
}
- SET_COLOR(str, i, j, PS_IDENTIFIER);
+ SET_COLOR(str, i, j, PS_STYLE_IDENTIFIER);
i = j;
continue;
}
@@ -775,9 +776,6 @@
*statep = colstate;
}
-#undef IN_STRING
-#undef IN_COMMENT
-
static int ps_mode_probe(ModeDef *mode, ModeProbeData *p)
{
if (match_extension(p->filename, mode->extensions))
@@ -812,14 +810,16 @@
/*---------------- SQL script coloring ----------------*/
-#define IN_COMMENT 1
+enum {
+ IN_SQL_COMMENT = 1,
+};
enum {
- SQL_TEXT = QE_STYLE_DEFAULT,
- SQL_COMMENT = QE_STYLE_COMMENT,
- SQL_STRING = QE_STYLE_STRING,
- SQL_IDENTIFIER = QE_STYLE_KEYWORD,
- SQL_PREPROCESS = QE_STYLE_PREPROCESS,
+ SQL_STYLE_TEXT = QE_STYLE_DEFAULT,
+ SQL_STYLE_COMMENT = QE_STYLE_COMMENT,
+ SQL_STYLE_STRING = QE_STYLE_STRING,
+ SQL_STYLE_IDENTIFIER = QE_STYLE_KEYWORD,
+ SQL_STYLE_PREPROCESS = QE_STYLE_PREPROCESS,
};
static void sql_colorize_line(unsigned int *str, int n, int mode_flags,
@@ -828,7 +828,7 @@
int i = 0, j = i;
int state = *statep;
- if (state & IN_COMMENT)
+ if (state & IN_SQL_COMMENT)
goto parse_c_comment;
while (i < n) {
@@ -840,11 +840,11 @@
/* normal comment */
j = i + 2;
parse_c_comment:
- state |= IN_COMMENT;
+ state |= IN_SQL_COMMENT;
while (j < n) {
if (str[j] == '*' && str[j + 1] == '/') {
j += 2;
- state &= ~IN_COMMENT;
+ state &= ~IN_SQL_COMMENT;
break;
} else {
j++;
@@ -861,7 +861,7 @@
line_comment:
j = n;
comment:
- SET_COLOR(str, i, j, SQL_COMMENT);
+ SET_COLOR(str, i, j, SQL_STYLE_COMMENT);
i = j;
continue;
case '\'':
@@ -879,7 +879,8 @@
break;
}
}
- SET_COLOR(str, i, j, str[i] == '`' ? SQL_IDENTIFIER : SQL_STRING);
+ SET_COLOR(str, i, j,
+ str[i] == '`' ? SQL_STYLE_IDENTIFIER : SQL_STYLE_STRING);
i = j;
continue;
default:
@@ -891,8 +892,6 @@
*statep = state;
}
-#undef IN_COMMENT
-
static int sql_mode_probe(ModeDef *mode, ModeProbeData *p)
{
if (match_extension(p->filename, mode->extensions))
@@ -936,20 +935,22 @@
};
#endif
-#define IN_COMMENT 0x10
-#define IN_STRING 0x20
-#define IN_STRING2 0x40
-#define IN_LONGLIT 0x80
-#define IN_LEVEL 0x0F
+enum {
+ IN_LUA_COMMENT = 0x10,
+ IN_LUA_STRING = 0x20,
+ IN_LUA_STRING2 = 0x40,
+ IN_LUA_LONGLIT = 0x80,
+ IN_LUA_LEVEL = 0x0F,
+};
enum {
- LUA_TEXT = QE_STYLE_DEFAULT,
- LUA_COMMENT = QE_STYLE_COMMENT,
- LUA_STRING = QE_STYLE_STRING,
- LUA_LONGLIT = QE_STYLE_STRING,
- LUA_NUMBER = QE_STYLE_NUMBER,
- LUA_KEYWORD = QE_STYLE_KEYWORD,
- LUA_FUNCTION = QE_STYLE_FUNCTION,
+ LUA_STYLE_TEXT = QE_STYLE_DEFAULT,
+ LUA_STYLE_COMMENT = QE_STYLE_COMMENT,
+ LUA_STYLE_STRING = QE_STYLE_STRING,
+ LUA_STYLE_LONGLIT = QE_STYLE_STRING,
+ LUA_STYLE_NUMBER = QE_STYLE_NUMBER,
+ LUA_STYLE_KEYWORD = QE_STYLE_KEYWORD,
+ LUA_STYLE_FUNCTION = QE_STYLE_FUNCTION,
};
static int lua_long_bracket(unsigned int *str, int *level)
@@ -973,18 +974,18 @@
int state = *statep;
char kbuf[32];
- if (state & IN_LONGLIT) {
+ if (state & IN_LUA_LONGLIT) {
/* either a comment or a string */
- level = state & IN_LEVEL;
+ level = state & IN_LUA_LEVEL;
goto parse_longlit;
}
- if (state & IN_STRING) {
+ if (state & IN_LUA_STRING) {
sep = '\'';
state = 0;
goto parse_string;
}
- if (state & IN_STRING2) {
+ if (state & IN_LUA_STRING2) {
sep = '\"';
state = 0;
goto parse_string;
@@ -996,10 +997,10 @@
if (str[i + 1] == '-') {
if (str[i + 2] == '['
&& lua_long_bracket(str + i + 2, &level)) {
- state = IN_COMMENT | IN_LONGLIT | (level & IN_LEVEL);
+ state = IN_LUA_COMMENT | IN_LUA_LONGLIT | (level &
IN_LUA_LEVEL);
goto parse_longlit;
}
- SET_COLOR(str, i, n, LUA_COMMENT);
+ SET_COLOR(str, i, n, LUA_STYLE_COMMENT);
i = n;
continue;
}
@@ -1015,11 +1016,11 @@
if (c == '\\') {
if (str[j] == 'z' && j + 1 == n) {
/* XXX: partial support for \z */
- state = (sep == '\'') ? IN_STRING : IN_STRING2;
+ state = (sep == '\'') ? IN_LUA_STRING : IN_LUA_STRING2;
j += 1;
} else
if (j == n) {
- state = (sep == '\'') ? IN_STRING : IN_STRING2;
+ state = (sep == '\'') ? IN_LUA_STRING : IN_LUA_STRING2;
} else {
j += 1;
}
@@ -1028,17 +1029,18 @@
break;
}
}
- SET_COLOR(str, i, j, LUA_STRING);
+ SET_COLOR(str, i, j, LUA_STYLE_STRING);
i = j;
continue;
case '[':
if (lua_long_bracket(str + i, &level)) {
- state = IN_LONGLIT | (level & IN_LEVEL);
+ state = IN_LUA_LONGLIT | (level & IN_LUA_LEVEL);
goto parse_longlit;
}
break;
parse_longlit:
- style = (state & IN_COMMENT) ? LUA_COMMENT : LUA_LONGLIT;
+ style = (state & IN_LUA_COMMENT) ?
+ LUA_STYLE_COMMENT : LUA_STYLE_LONGLIT;
for (j = i; j < n; j++) {
if (str[j] != ']')
continue;
@@ -1058,7 +1060,7 @@
if (!qe_isalnum(str[j] && str[j] != '.'))
break;
}
- SET_COLOR(str, i, j, LUA_NUMBER);
+ SET_COLOR(str, i, j, LUA_STYLE_NUMBER);
i = j;
continue;
}
@@ -1070,14 +1072,14 @@
kbuf[klen] = '\0';
if (strfind(lua_keywords, kbuf)) {
- SET_COLOR(str, i, j, LUA_KEYWORD);
+ SET_COLOR(str, i, j, LUA_STYLE_KEYWORD);
i = j;
continue;
}
while (qe_isblank(str[j]))
j++;
if (str[j] == '(') {
- SET_COLOR(str, i, j, LUA_FUNCTION);
+ SET_COLOR(str, i, j, LUA_STYLE_FUNCTION);
i = j;
continue;
}
@@ -1092,12 +1094,6 @@
*statep = state;
}
-#undef IN_COMMENT
-#undef IN_STRING
-#undef IN_STRING2
-#undef IN_LONGLIT
-#undef IN_LEVEL
-
static int lua_mode_probe(ModeDef *mode, ModeProbeData *p)
{
if (match_extension(p->filename, mode->extensions))
@@ -1136,18 +1132,20 @@
"|"
};
-#define IN_COMMENT 0x10
-#define IN_STRING 0x20
-#define IN_LEVEL 0x0F
+enum {
+ IN_HASKELL_COMMENT = 0x10,
+ IN_HASKELL_STRING = 0x20,
+ IN_HASKELL_LEVEL = 0x0F,
+};
enum {
- HASKELL_TEXT = QE_STYLE_DEFAULT,
- HASKELL_COMMENT = QE_STYLE_COMMENT,
- HASKELL_STRING = QE_STYLE_STRING,
- HASKELL_NUMBER = QE_STYLE_NUMBER,
- HASKELL_KEYWORD = QE_STYLE_KEYWORD,
- HASKELL_FUNCTION = QE_STYLE_FUNCTION,
- HASKELL_SYMBOL = QE_STYLE_NUMBER,
+ HASKELL_STYLE_TEXT = QE_STYLE_DEFAULT,
+ HASKELL_STYLE_COMMENT = QE_STYLE_COMMENT,
+ HASKELL_STYLE_STRING = QE_STYLE_STRING,
+ HASKELL_STYLE_NUMBER = QE_STYLE_NUMBER,
+ HASKELL_STYLE_KEYWORD = QE_STYLE_KEYWORD,
+ HASKELL_STYLE_FUNCTION = QE_STYLE_FUNCTION,
+ HASKELL_STYLE_SYMBOL = QE_STYLE_NUMBER,
};
static inline int haskell_is_symbol(int c)
@@ -1162,10 +1160,10 @@
int state = *statep;
char kbuf[32];
- if (state & IN_COMMENT)
+ if (state & IN_HASKELL_COMMENT)
goto parse_comment;
- if (state & IN_STRING) {
+ if (state & IN_HASKELL_STRING) {
sep = '\"';
state = 0;
while (qe_isspace(str[j]))
@@ -1179,14 +1177,14 @@
switch (c = str[i]) {
case '-':
if (str[i + 1] == '-' && !haskell_is_symbol(str[i + 2])) {
- SET_COLOR(str, i, n, HASKELL_COMMENT);
+ SET_COLOR(str, i, n, HASKELL_STYLE_COMMENT);
i = n;
continue;
}
goto parse_symbol;
case '{':
if (str[i + 1] == '-') {
- state |= IN_COMMENT;
+ state |= IN_HASKELL_COMMENT;
goto parse_comment;
}
/* FALL THRU */
@@ -1202,7 +1200,7 @@
break;
parse_comment:
- level = state & IN_LEVEL;
+ level = state & IN_HASKELL_LEVEL;
for (j = i; j < n; j++) {
if (str[i] == '{' && str[i + 1] == '-') {
level++;
@@ -1214,14 +1212,14 @@
level--;
if (level == 0) {
j++;
- state &= ~IN_COMMENT;
+ state &= ~IN_HASKELL_COMMENT;
break;
}
}
}
- state &= ~IN_COMMENT;
- state |= level & IN_COMMENT;
- SET_COLOR(str, i, j, HASKELL_COMMENT);
+ state &= ~IN_HASKELL_COMMENT;
+ state |= level & IN_HASKELL_COMMENT;
+ SET_COLOR(str, i, j, HASKELL_STYLE_COMMENT);
i = j;
continue;
@@ -1237,7 +1235,7 @@
if (j == n) {
if (sep == '\"') {
/* XXX: should ignore whitespace */
- state = IN_STRING;
+ state = IN_HASKELL_STRING;
}
} else
if (str[j] == '^' && j + 1 < n && str[j + 1] != sep) {
@@ -1250,7 +1248,7 @@
break;
}
}
- SET_COLOR(str, i, j, HASKELL_STRING);
+ SET_COLOR(str, i, j, HASKELL_STYLE_STRING);
i = j;
continue;
@@ -1286,7 +1284,7 @@
}
}
/* XXX: should detect malformed number constants */
- SET_COLOR(str, i, j, HASKELL_NUMBER);
+ SET_COLOR(str, i, j, HASKELL_STYLE_NUMBER);
i = j;
continue;
}
@@ -1300,14 +1298,14 @@
kbuf[klen] = '\0';
if (strfind(haskell_keywords, kbuf)) {
- SET_COLOR(str, i, j, HASKELL_KEYWORD);
+ SET_COLOR(str, i, j, HASKELL_STYLE_KEYWORD);
i = j;
continue;
}
while (qe_isblank(str[j]))
j++;
if (str[j] == '(') {
- SET_COLOR(str, i, j, HASKELL_FUNCTION);
+ SET_COLOR(str, i, j, HASKELL_STYLE_FUNCTION);
i = j;
continue;
}
@@ -1318,7 +1316,7 @@
if (haskell_is_symbol(c)) {
for (j = i + 1; haskell_is_symbol(str[j]); j++)
continue;
- SET_COLOR(str, i, j, HASKELL_SYMBOL);
+ SET_COLOR(str, i, j, HASKELL_STYLE_SYMBOL);
i = j;
continue;
}
@@ -1330,10 +1328,6 @@
*statep = state;
}
-#undef IN_COMMENT
-#undef IN_STRING
-#undef IN_LEVEL
-
static int haskell_mode_probe(ModeDef *mode, ModeProbeData *p)
{
if (match_extension(p->filename, mode->extensions))
@@ -1373,20 +1367,22 @@
"|"
};
-#define IN_COMMENT 0x80
-#define IN_STRING 0x40
-#define IN_STRING2 0x20
-#define IN_LONG_STRING 0x10
-#define IN_LONG_STRING2 0x08
-#define IN_RAW_STRING 0x04
+enum {
+ IN_PYTHON_COMMENT = 0x80,
+ IN_PYTHON_STRING = 0x40,
+ IN_PYTHON_STRING2 = 0x20,
+ IN_PYTHON_LONG_STRING = 0x10,
+ IN_PYTHON_LONG_STRING2 = 0x08,
+ IN_PYTHON_RAW_STRING = 0x04,
+};
enum {
- PYTHON_TEXT = QE_STYLE_DEFAULT,
- PYTHON_COMMENT = QE_STYLE_COMMENT,
- PYTHON_STRING = QE_STYLE_STRING,
- PYTHON_NUMBER = QE_STYLE_NUMBER,
- PYTHON_KEYWORD = QE_STYLE_KEYWORD,
- PYTHON_FUNCTION = QE_STYLE_FUNCTION,
+ PYTHON_STYLE_TEXT = QE_STYLE_DEFAULT,
+ PYTHON_STYLE_COMMENT = QE_STYLE_COMMENT,
+ PYTHON_STYLE_STRING = QE_STYLE_STRING,
+ PYTHON_STYLE_NUMBER = QE_STYLE_NUMBER,
+ PYTHON_STYLE_KEYWORD = QE_STYLE_KEYWORD,
+ PYTHON_STYLE_FUNCTION = QE_STYLE_FUNCTION,
};
void python_colorize_line(unsigned int *str, int n, int mode_flags,
@@ -1396,19 +1392,19 @@
int state = *statep;
char kbuf[32];
- if (state & IN_STRING) {
+ if (state & IN_PYTHON_STRING) {
sep = '\'';
goto parse_string;
}
- if (state & IN_STRING2) {
+ if (state & IN_PYTHON_STRING2) {
sep = '\"';
goto parse_string;
}
- if (state & IN_LONG_STRING) {
+ if (state & IN_PYTHON_LONG_STRING) {
sep = '\'';
goto parse_long_string;
}
- if (state & IN_LONG_STRING2) {
+ if (state & IN_PYTHON_LONG_STRING2) {
sep = '\"';
goto parse_long_string;
}
@@ -1417,7 +1413,7 @@
switch (c = str[i]) {
case '#':
j = n;
- SET_COLOR(str, i, j, PYTHON_COMMENT);
+ SET_COLOR(str, i, j, PYTHON_STYLE_COMMENT);
i = j;
continue;
@@ -1429,12 +1425,13 @@
sep = str[j++];
if (str[j] == sep && str[j + 1] == sep) {
/* long string */
- state = (sep == '\"') ? IN_LONG_STRING2 : IN_LONG_STRING;
+ state = (sep == '\"') ? IN_PYTHON_LONG_STRING2 :
+ IN_PYTHON_LONG_STRING;
j += 2;
parse_long_string:
while (j < n) {
c = str[j++];
- if (!(state & IN_RAW_STRING) && c == '\\') {
+ if (!(state & IN_PYTHON_RAW_STRING) && c == '\\') {
if (j < n) {
j += 1;
}
@@ -1446,11 +1443,11 @@
}
}
} else {
- state = (sep == '\"') ? IN_STRING2 : IN_STRING;
+ state = (sep == '\"') ? IN_PYTHON_STRING2 : IN_PYTHON_STRING;
parse_string:
while (j < n) {
c = str[j++];
- if (!(state & IN_RAW_STRING) && c == '\\') {
+ if (!(state & IN_PYTHON_RAW_STRING) && c == '\\') {
if (j < n) {
j += 1;
}
@@ -1461,7 +1458,7 @@
}
}
}
- SET_COLOR(str, i, j, PYTHON_STRING);
+ SET_COLOR(str, i, j, PYTHON_STYLE_STRING);
i = j;
continue;
@@ -1476,7 +1473,7 @@
case 'B':
if (qe_tolower(str[i + 1]) == 'r'
&& (str[i + 2] == '\'' || str[i + 2] == '\"')) {
- state |= IN_RAW_STRING;
+ state |= IN_PYTHON_RAW_STRING;
j = i + 2;
goto has_quote;
}
@@ -1486,12 +1483,12 @@
case 'R':
if (qe_tolower(str[i + 1]) == 'b'
&& (str[i + 2] == '\'' || str[i + 2] == '\"')) {
- state |= IN_RAW_STRING;
+ state |= IN_PYTHON_RAW_STRING;
j = i + 2;
goto has_quote;
}
if ((str[i + 1] == '\'' || str[i + 1] == '\"')) {
- state |= IN_RAW_STRING;
+ state |= IN_PYTHON_RAW_STRING;
j = i + 1;
goto has_quote;
}
@@ -1539,7 +1536,7 @@
}
/* XXX: should detect malformed number constants */
- SET_COLOR(str, i, j, PYTHON_NUMBER);
+ SET_COLOR(str, i, j, PYTHON_STYLE_NUMBER);
i = j;
continue;
}
@@ -1552,14 +1549,14 @@
kbuf[klen] = '\0';
if (strfind(python_keywords, kbuf)) {
- SET_COLOR(str, i, j, PYTHON_KEYWORD);
+ SET_COLOR(str, i, j, PYTHON_STYLE_KEYWORD);
i = j;
continue;
}
while (qe_isblank(str[j]))
j++;
if (str[j] == '(') {
- SET_COLOR(str, i, j, PYTHON_FUNCTION);
+ SET_COLOR(str, i, j, PYTHON_STYLE_FUNCTION);
i = j;
continue;
}
@@ -1574,13 +1571,6 @@
*statep = state;
}
-#undef IN_COMMENT
-#undef IN_STRING
-#undef IN_STRING2
-#undef IN_LONG_STRING
-#undef IN_LONG_STRING2
-#undef IN_RAW_STRING
-
static int python_mode_probe(ModeDef *mode, ModeProbeData *p)
{
if (match_extension(p->filename, mode->extensions))
@@ -1630,30 +1620,32 @@
* == === <=> [] []= ** ! ~ != !~ =~ & | ^
*/
-#define IN_HEREDOC 0x80
-#define IN_HD_INDENT 0x40
-#define IN_HD_SIG 0x3f
-#define IN_COMMENT 0x40
-#define IN_STRING 0x20 /* single quote */
-#define IN_STRING2 0x10 /* double quote */
-#define IN_STRING3 0x08 /* back quote */
-#define IN_STRING4 0x04 /* %q{...} */
-#define IN_REGEX 0x02
-#define IN_POD 0x01
+enum {
+ IN_RUBY_HEREDOC = 0x80,
+ IN_RUBY_HD_INDENT = 0x40,
+ IN_RUBY_HD_SIG = 0x3f,
+ IN_RUBY_COMMENT = 0x40,
+ IN_RUBY_STRING = 0x20 /* single quote */,
+ IN_RUBY_STRING2 = 0x10 /* double quote */,
+ IN_RUBY_STRING3 = 0x08 /* back quote */,
+ IN_RUBY_STRING4 = 0x04 /* %q{...} */,
+ IN_RUBY_REGEX = 0x02,
+ IN_RUBY_POD = 0x01,
+};
enum {
- RUBY_TEXT = QE_STYLE_DEFAULT,
- RUBY_COMMENT = QE_STYLE_COMMENT,
- RUBY_STRING = QE_STYLE_STRING,
- RUBY_STRING2 = QE_STYLE_STRING,
- RUBY_STRING3 = QE_STYLE_STRING,
- RUBY_STRING4 = QE_STYLE_STRING,
- RUBY_REGEX = QE_STYLE_STRING_Q,
- RUBY_NUMBER = QE_STYLE_NUMBER,
- RUBY_KEYWORD = QE_STYLE_KEYWORD,
- RUBY_FUNCTION = QE_STYLE_FUNCTION,
- RUBY_MEMBER = QE_STYLE_VARIABLE,
- RUBY_HEREDOC = QE_STYLE_PREPROCESS,
+ RUBY_STYLE_TEXT = QE_STYLE_DEFAULT,
+ RUBY_STYLE_COMMENT = QE_STYLE_COMMENT,
+ RUBY_STYLE_STRING = QE_STYLE_STRING,
+ RUBY_STYLE_STRING2 = QE_STYLE_STRING,
+ RUBY_STYLE_STRING3 = QE_STYLE_STRING,
+ RUBY_STYLE_STRING4 = QE_STYLE_STRING,
+ RUBY_STYLE_REGEX = QE_STYLE_STRING_Q,
+ RUBY_STYLE_NUMBER = QE_STYLE_NUMBER,
+ RUBY_STYLE_KEYWORD = QE_STYLE_KEYWORD,
+ RUBY_STYLE_FUNCTION = QE_STYLE_FUNCTION,
+ RUBY_STYLE_MEMBER = QE_STYLE_VARIABLE,
+ RUBY_STYLE_HEREDOC = QE_STYLE_PREPROCESS,
};
static int ruby_get_name(char *buf, int size, unsigned int *str)
@@ -1686,8 +1678,8 @@
for (indent = 0; qe_isspace(str[indent]); indent++)
continue;
- if (state & IN_HEREDOC) {
- if (state & IN_HD_INDENT) {
+ if (state & IN_RUBY_HEREDOC) {
+ if (state & IN_RUBY_HD_INDENT) {
while (qe_isspace(str[j]))
j++;
}
@@ -1700,40 +1692,40 @@
}
for (; qe_isspace(str[j]); j++)
continue;
- SET_COLOR(str, i, n, RUBY_HEREDOC);
+ SET_COLOR(str, i, n, RUBY_STYLE_HEREDOC);
i = n;
- if (j > 0 && j == n && (state & IN_HD_SIG) == (sig & IN_HD_SIG))
- state &= ~(IN_HEREDOC | IN_HD_INDENT | IN_HD_SIG);
+ if (j > 0 && j == n && (state & IN_RUBY_HD_SIG) == (sig &
IN_RUBY_HD_SIG))
+ state &= ~(IN_RUBY_HEREDOC | IN_RUBY_HD_INDENT | IN_RUBY_HD_SIG);
} else {
- if (state & IN_COMMENT)
+ if (state & IN_RUBY_COMMENT)
goto parse_c_comment;
- if (state & IN_REGEX)
+ if (state & IN_RUBY_REGEX)
goto parse_regex;
- if (state & IN_STRING)
+ if (state & IN_RUBY_STRING)
goto parse_string;
- if (state & IN_STRING2)
+ if (state & IN_RUBY_STRING2)
goto parse_string2;
- if (state & IN_STRING3)
+ if (state & IN_RUBY_STRING3)
goto parse_string3;
- if (state & IN_STRING4)
+ if (state & IN_RUBY_STRING4)
goto parse_string4;
if (str[i] == '=' && qe_isalpha(str[i + 1])) {
- state |= IN_POD;
+ state |= IN_RUBY_POD;
}
- if (state & IN_POD) {
+ if (state & IN_RUBY_POD) {
if (ustrstart(str + i, "=end", NULL)) {
- state &= ~IN_POD;
+ state &= ~IN_RUBY_POD;
}
if (str[i] == '=' && qe_isalpha(str[i + 1])) {
- SET_COLOR(str, i, n, RUBY_KEYWORD);
+ SET_COLOR(str, i, n, RUBY_STYLE_KEYWORD);
} else {
- SET_COLOR(str, i, n, RUBY_COMMENT);
+ SET_COLOR(str, i, n, RUBY_STYLE_COMMENT);
}
i = n;
}
@@ -1751,11 +1743,11 @@
/* C comment */
j = i + 2;
parse_c_comment:
- state = IN_COMMENT;
+ state = IN_RUBY_COMMENT;
for (; j < n; j++) {
if (str[j] == '*' && str[j + 1] == '/') {
j += 2;
- state &= ~IN_COMMENT;
+ state &= ~IN_RUBY_COMMENT;
break;
}
}
@@ -1768,7 +1760,7 @@
/* XXX: should use context to tell regex from divide */
/* parse regex */
j = i + 1;
- state = IN_REGEX;
+ state = IN_RUBY_REGEX;
parse_regex:
while (j < n) {
/* XXX: should ignore / inside char classes */
@@ -1791,7 +1783,7 @@
break;
}
}
- SET_COLOR(str, i, j, RUBY_REGEX);
+ SET_COLOR(str, i, j, RUBY_STYLE_REGEX);
i = j;
continue;
}
@@ -1800,7 +1792,7 @@
case '#':
j = n;
comment:
- SET_COLOR(str, i, j, RUBY_COMMENT);
+ SET_COLOR(str, i, j, RUBY_STYLE_COMMENT);
i = j;
continue;
@@ -1822,7 +1814,7 @@
if (sep == '[') sep = ']';
if (sep == '<') sep = '>';
/* parse special string const */
- state = IN_STRING4;
+ state = IN_RUBY_STRING4;
parse_string4:
while (j < n) {
c = str[j++];
@@ -1848,7 +1840,7 @@
}
}
}
- SET_COLOR(str, i, j, RUBY_STRING4);
+ SET_COLOR(str, i, j, RUBY_STYLE_STRING4);
i = j;
continue;
}
@@ -1857,7 +1849,7 @@
case '\'':
/* parse single quoted string const */
j = i + 1;
- state = IN_STRING;
+ state = IN_RUBY_STRING;
parse_string:
while (j < n) {
c = str[j++];
@@ -1869,14 +1861,14 @@
break;
}
}
- SET_COLOR(str, i, j, RUBY_STRING);
+ SET_COLOR(str, i, j, RUBY_STYLE_STRING);
i = j;
continue;
case '`':
/* parse single quoted string const */
j = i + 1;
- state = IN_STRING3;
+ state = IN_RUBY_STRING3;
parse_string3:
while (j < n) {
c = str[j++];
@@ -1893,7 +1885,7 @@
break;
}
}
- SET_COLOR(str, i, j, RUBY_STRING3);
+ SET_COLOR(str, i, j, RUBY_STYLE_STRING3);
i = j;
continue;
@@ -1919,13 +1911,13 @@
}
}
if (c == '\"') {
- if (state == IN_STRING2)
+ if (state == IN_RUBY_STRING2)
state = 0;
} else {
if (state == 0)
- state = IN_STRING2;
+ state = IN_RUBY_STRING2;
}
- SET_COLOR(str, i, j, RUBY_STRING2);
+ SET_COLOR(str, i, j, RUBY_STYLE_STRING2);
i = j;
continue;
@@ -1969,13 +1961,13 @@
* start on the line after the << operator. This
* is a bug due to limited state bits.
*/
- state &= ~(IN_HEREDOC | IN_HD_INDENT | IN_HD_SIG);
- state |= IN_HEREDOC;
+ state &= ~(IN_RUBY_HEREDOC | IN_RUBY_HD_INDENT |
IN_RUBY_HD_SIG);
+ state |= IN_RUBY_HEREDOC;
if (str[i + 2] == '-') {
- state |= IN_HD_INDENT;
+ state |= IN_RUBY_HD_INDENT;
}
- state |= (sig & IN_HD_SIG);
- SET_COLOR(str, i, j, RUBY_HEREDOC);
+ state |= (sig & IN_RUBY_HD_SIG);
+ SET_COLOR(str, i, j, RUBY_STYLE_HEREDOC);
i = j;
}
}
@@ -2007,7 +1999,7 @@
case '@':
j = i + 1;
j += ruby_get_name(kbuf, countof(kbuf), str + j);
- SET_COLOR(str, i, j, RUBY_MEMBER);
+ SET_COLOR(str, i, j, RUBY_STYLE_MEMBER);
i = j;
continue;
@@ -2054,7 +2046,7 @@
}
/* XXX: should detect malformed number constants */
- SET_COLOR(str, i, j, RUBY_NUMBER);
+ SET_COLOR(str, i, j, RUBY_STYLE_NUMBER);
i = j;
continue;
}
@@ -2063,14 +2055,14 @@
j += ruby_get_name(kbuf, countof(kbuf), str + j);
if (strfind(ruby_keywords, kbuf)) {
- SET_COLOR(str, i, j, RUBY_KEYWORD);
+ SET_COLOR(str, i, j, RUBY_STYLE_KEYWORD);
i = j;
continue;
}
while (qe_isblank(str[j]))
j++;
if (str[j] == '(') {
- SET_COLOR(str, i, j, RUBY_FUNCTION);
+ SET_COLOR(str, i, j, RUBY_STYLE_FUNCTION);
i = j;
continue;
}
@@ -2085,17 +2077,6 @@
*statep = state;
}
-#undef IN_HEREDOC
-#undef IN_HD_INDENT
-#undef IN_HD_SIG
-#undef IN_COMMENT
-#undef IN_STRING
-#undef IN_STRING2
-#undef IN_STRING3
-#undef IN_STRING4
-#undef IN_REGEX
-#undef IN_POD
-
static int ruby_mode_probe(ModeDef *mode, ModeProbeData *p)
{
if (match_extension(p->filename, mode->extensions)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemacs-commit] qemacs htmlsrc.c markdown.c xml.c script.c unih...,
Charlie Gordon <=