syntax highlighting fixes
Этот коммит содержится в:
родитель
84d270f480
Коммит
aa95c74fd2
@ -97,7 +97,7 @@ static int compare_word_to_right (WEdit * edit, long i, char *text, char *whole_
|
|||||||
if (c == p[j])
|
if (c == p[j])
|
||||||
goto found_char2;
|
goto found_char2;
|
||||||
break;
|
break;
|
||||||
found_char2:
|
found_char2:;
|
||||||
}
|
}
|
||||||
i--;
|
i--;
|
||||||
while (*p != '\003')
|
while (*p != '\003')
|
||||||
@ -188,7 +188,7 @@ static int compare_word_to_left (WEdit * edit, long i, char *text, char *whole_l
|
|||||||
if (c == p[j])
|
if (c == p[j])
|
||||||
goto found_char2;
|
goto found_char2;
|
||||||
break;
|
break;
|
||||||
found_char2:
|
found_char2:;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
p--;
|
p--;
|
||||||
@ -231,7 +231,7 @@ static int compare_word_to_left (WEdit * edit, long i, char *text, char *whole_l
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
#if 1
|
||||||
#define debug_printf(x,y) fprintf(stderr,x,y)
|
#define debug_printf(x,y) fprintf(stderr,x,y)
|
||||||
#else
|
#else
|
||||||
#define debug_printf(x,y)
|
#define debug_printf(x,y)
|
||||||
@ -240,7 +240,7 @@ static int compare_word_to_left (WEdit * edit, long i, char *text, char *whole_l
|
|||||||
static inline unsigned long apply_rules_going_right (WEdit * edit, long i, unsigned long rule)
|
static inline unsigned long apply_rules_going_right (WEdit * edit, long i, unsigned long rule)
|
||||||
{
|
{
|
||||||
struct context_rule *r;
|
struct context_rule *r;
|
||||||
int context, keyword, c1, c2;
|
int context, contextchanged = 0, keyword, c1, c2;
|
||||||
int found_right = 0, found_left = 0;
|
int found_right = 0, found_left = 0;
|
||||||
int done = 0;
|
int done = 0;
|
||||||
unsigned long border;
|
unsigned long border;
|
||||||
@ -322,37 +322,24 @@ static inline unsigned long apply_rules_going_right (WEdit * edit, long i, unsig
|
|||||||
debug_printf ("B:4 count=%d", count);
|
debug_printf ("B:4 count=%d", count);
|
||||||
found_left = 1;
|
found_left = 1;
|
||||||
border = 0;
|
border = 0;
|
||||||
if (!keyword)
|
|
||||||
context = 0;
|
context = 0;
|
||||||
|
contextchanged = 1;
|
||||||
|
keyword = 0;
|
||||||
} else if (r->last_left == c1 && compare_word_to_left (edit, i - 1, r->left, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_left) \
|
} else if (r->last_left == c1 && compare_word_to_left (edit, i - 1, r->left, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_left) \
|
||||||
&&(rule & RULE_ON_LEFT_BORDER)) {
|
&&(rule & RULE_ON_LEFT_BORDER)) {
|
||||||
debug_printf ("B:2 ", 0);
|
debug_printf ("B:2 ", 0);
|
||||||
found_left = 1;
|
found_left = 1;
|
||||||
border = 0;
|
border = 0;
|
||||||
if (r->between_delimiters) {
|
if (r->between_delimiters) {
|
||||||
if (!keyword)
|
|
||||||
context = count;
|
context = count;
|
||||||
|
contextchanged = 1;
|
||||||
|
keyword = 0;
|
||||||
debug_printf ("context=%d ", context);
|
debug_printf ("context=%d ", context);
|
||||||
if (r->first_right == c2 && compare_word_to_right (edit, i, r->right, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_right)) {
|
if (r->first_right == c2 && compare_word_to_right (edit, i, r->right, r->whole_word_chars_left, r->whole_word_chars_right, r->line_start_right)) {
|
||||||
debug_printf ("B:3 ", 0);
|
debug_printf ("B:3 ", 0);
|
||||||
found_right = 1;
|
found_right = 1;
|
||||||
border = RULE_ON_RIGHT_BORDER;
|
border = RULE_ON_RIGHT_BORDER;
|
||||||
if (!keyword)
|
|
||||||
context = 0;
|
context = 0;
|
||||||
} else {
|
|
||||||
char *p;
|
|
||||||
p = (r = edit->rules[context])->keyword_first_chars;
|
|
||||||
while ((p = strchr (p + 1, c2))) {
|
|
||||||
struct key_word *k;
|
|
||||||
int count;
|
|
||||||
count = (unsigned long) p - (unsigned long) r->keyword_first_chars;
|
|
||||||
k = r->keyword[count];
|
|
||||||
if (compare_word_to_right (edit, i, k->keyword, k->whole_word_chars_left, k->whole_word_chars_right, k->line_start)) {
|
|
||||||
keyword = count;
|
|
||||||
debug_printf ("keyword=%d ", keyword);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -373,6 +360,21 @@ static inline unsigned long apply_rules_going_right (WEdit * edit, long i, unsig
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!keyword && contextchanged) {
|
||||||
|
char *p;
|
||||||
|
p = (r = edit->rules[context])->keyword_first_chars;
|
||||||
|
while ((p = strchr (p + 1, c2))) {
|
||||||
|
struct key_word *k;
|
||||||
|
int coutner;
|
||||||
|
coutner = (unsigned long) p - (unsigned long) r->keyword_first_chars;
|
||||||
|
k = r->keyword[coutner];
|
||||||
|
if (compare_word_to_right (edit, i, k->keyword, k->whole_word_chars_left, k->whole_word_chars_right, k->line_start)) {
|
||||||
|
keyword = coutner;
|
||||||
|
debug_printf ("keyword=%d ", keyword);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
debug_printf ("border=%s ", border ? ((border & RULE_ON_LEFT_BORDER) ? "left" : "right") : "off");
|
debug_printf ("border=%s ", border ? ((border & RULE_ON_LEFT_BORDER) ? "left" : "right") : "off");
|
||||||
debug_printf ("keyword=%d ", keyword);
|
debug_printf ("keyword=%d ", keyword);
|
||||||
|
|
||||||
@ -406,7 +408,7 @@ static inline int resolve_left_delim (WEdit * edit, long i, struct context_rule
|
|||||||
static inline unsigned long apply_rules_going_left (WEdit * edit, long i, unsigned long rule)
|
static inline unsigned long apply_rules_going_left (WEdit * edit, long i, unsigned long rule)
|
||||||
{
|
{
|
||||||
struct context_rule *r;
|
struct context_rule *r;
|
||||||
int context, keyword, c2, c1;
|
int context, contextchanged = 0, keyword, c2, c1;
|
||||||
int found_left = 0, found_right = 0;
|
int found_left = 0, found_right = 0;
|
||||||
int done = 0;
|
int done = 0;
|
||||||
unsigned long border;
|
unsigned long border;
|
||||||
@ -488,8 +490,9 @@ static inline unsigned long apply_rules_going_left (WEdit * edit, long i, unsign
|
|||||||
debug_printf ("B:1 count=%d", count);
|
debug_printf ("B:1 count=%d", count);
|
||||||
found_right = 1;
|
found_right = 1;
|
||||||
border = 0;
|
border = 0;
|
||||||
if (!keyword)
|
|
||||||
context = 0;
|
context = 0;
|
||||||
|
contextchanged = 1;
|
||||||
|
keyword = 0;
|
||||||
} else if (r->first_right == c2 && compare_word_to_right (edit, i + 1, r->right, r->whole_word_chars_right, r->whole_word_chars_left, r->line_start_right) \
|
} else if (r->first_right == c2 && compare_word_to_right (edit, i + 1, r->right, r->whole_word_chars_right, r->whole_word_chars_left, r->line_start_right) \
|
||||||
&&(rule & RULE_ON_RIGHT_BORDER)) {
|
&&(rule & RULE_ON_RIGHT_BORDER)) {
|
||||||
if (!(c2 == '\n' && r->single_char)) {
|
if (!(c2 == '\n' && r->single_char)) {
|
||||||
@ -498,28 +501,14 @@ static inline unsigned long apply_rules_going_left (WEdit * edit, long i, unsign
|
|||||||
border = 0;
|
border = 0;
|
||||||
if (r->between_delimiters) {
|
if (r->between_delimiters) {
|
||||||
debug_printf ("context=%d ", context);
|
debug_printf ("context=%d ", context);
|
||||||
if (!keyword)
|
|
||||||
context = resolve_left_delim (edit, i, r, count);
|
context = resolve_left_delim (edit, i, r, count);
|
||||||
|
contextchanged = 1;
|
||||||
|
keyword = 0;
|
||||||
if (r->last_left == c1 && compare_word_to_left (edit, i, r->left, r->whole_word_chars_right, r->whole_word_chars_left, r->line_start_left)) {
|
if (r->last_left == c1 && compare_word_to_left (edit, i, r->left, r->whole_word_chars_right, r->whole_word_chars_left, r->line_start_left)) {
|
||||||
debug_printf ("B:2 ", 0);
|
debug_printf ("B:2 ", 0);
|
||||||
found_left = 1;
|
found_left = 1;
|
||||||
border = RULE_ON_LEFT_BORDER;
|
border = RULE_ON_LEFT_BORDER;
|
||||||
if (!keyword)
|
|
||||||
context = 0;
|
context = 0;
|
||||||
} else {
|
|
||||||
char *p;
|
|
||||||
p = (r = edit->rules[context])->keyword_last_chars;
|
|
||||||
while ((p = strchr (p + 1, c1))) {
|
|
||||||
struct key_word *k;
|
|
||||||
int count;
|
|
||||||
count = (unsigned long) p - (unsigned long) r->keyword_last_chars;
|
|
||||||
k = r->keyword[count];
|
|
||||||
if (compare_word_to_left (edit, i, k->keyword, k->whole_word_chars_right, k->whole_word_chars_left, k->line_start)) {
|
|
||||||
keyword = count;
|
|
||||||
debug_printf ("keyword=%d ", keyword);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -541,6 +530,21 @@ static inline unsigned long apply_rules_going_left (WEdit * edit, long i, unsign
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!keyword && contextchanged) {
|
||||||
|
char *p;
|
||||||
|
p = (r = edit->rules[context])->keyword_last_chars;
|
||||||
|
while ((p = strchr (p + 1, c1))) {
|
||||||
|
struct key_word *k;
|
||||||
|
int coutner;
|
||||||
|
coutner = (unsigned long) p - (unsigned long) r->keyword_last_chars;
|
||||||
|
k = r->keyword[coutner];
|
||||||
|
if (compare_word_to_left (edit, i, k->keyword, k->whole_word_chars_right, k->whole_word_chars_left, k->line_start)) {
|
||||||
|
keyword = coutner;
|
||||||
|
debug_printf ("keyword=%d ", keyword);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
debug_printf ("border=%s ", border ? ((border & RULE_ON_RIGHT_BORDER) ? "right" : "left") : "off");
|
debug_printf ("border=%s ", border ? ((border & RULE_ON_RIGHT_BORDER) ? "right" : "left") : "off");
|
||||||
debug_printf ("keyword=%d ", keyword);
|
debug_printf ("keyword=%d ", keyword);
|
||||||
|
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Wed May 6 13:46:37 1998 Paul Sheer <psheer@obsidian.co.za>
|
||||||
|
|
||||||
|
* syntax.c: more bug fixes.
|
||||||
|
|
||||||
1998-05-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
1998-05-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
||||||
|
|
||||||
* view.c (view_quit_cmd): Use dlg_stop.
|
* view.c (view_quit_cmd): Use dlg_stop.
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user