updated for version 7.3.1013
Problem: New regexp logging is a bit messy.
Solution: Consistently use #defines, add explanatory comment. (Taro Muraoka)
diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c
index 02efe0a..61d9abc 100644
--- a/src/regexp_nfa.c
+++ b/src/regexp_nfa.c
@@ -5,12 +5,28 @@
* This file is included in "regexp.c".
*/
+/*
+ * Logging of NFA engine.
+ *
+ * The NFA engine can write four log files:
+ * - Error log: Contains NFA engine's fatal errors.
+ * - Dump log: Contains compiled NFA state machine's information.
+ * - Run log: Contains information of matching procedure.
+ * - Debug log: Contains detailed information of matching procedure. Can be
+ * disabled by undefining NFA_REGEXP_DEBUG_LOG.
+ * The first one can also be used without debug mode.
+ * The last three are enabled when compiled as debug mode and individually
+ * disabled by commenting them out.
+ * The log files can get quite big!
+ * Do disable all of this when compiling Vim for debugging, undefine DEBUG in
+ * regexp.c
+ */
#ifdef DEBUG
-/* Comment this out to disable log files. They can get pretty big */
+# define NFA_REGEXP_ERROR_LOG "nfa_regexp_error.log"
# define ENABLE_LOG
-# define LOG_NAME "log_nfarun.log"
-# define NFA_REGEXP_DEBUG_LOG
-# define NFA_REGEXP_DEBUG_LOG_NAME "nfa_regexp_debug.log"
+# define NFA_REGEXP_DUMP_LOG "nfa_regexp_dump.log"
+# define NFA_REGEXP_RUN_LOG "nfa_regexp_run.log"
+# define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log"
#endif
/* Upper limit allowed for {m,n} repetitions handled by NFA */
@@ -1769,7 +1785,7 @@
int *p;
FILE *f;
- f = fopen("LOG.log", "a");
+ f = fopen(NFA_REGEXP_DUMP_LOG, "a");
if (f != NULL)
{
fprintf(f, "\n-------------------------\n");
@@ -1827,7 +1843,7 @@
nfa_dump(prog)
nfa_regprog_T *prog;
{
- FILE *debugf = fopen("LOG.log", "a");
+ FILE *debugf = fopen(NFA_REGEXP_DUMP_LOG, "a");
if (debugf != NULL)
{
@@ -1994,14 +2010,15 @@
static void
st_error(postfix, end, p)
- int *postfix;
- int *end;
- int *p;
+ int *postfix UNUSED;
+ int *end UNUSED;
+ int *p UNUSED;
{
+#ifdef NFA_REGEXP_ERROR_LOG
FILE *df;
int *p2;
- df = fopen("stack.err", "a");
+ df = fopen(NFA_REGEXP_ERROR_LOG, "a");
if (df)
{
fprintf(df, "Error popping the stack!\n");
@@ -2036,6 +2053,7 @@
fprintf(df, "\n--------------------------\n");
fclose(df);
}
+#endif
EMSG(_("E874: (NFA) Could not pop the stack !"));
}
@@ -2148,8 +2166,10 @@
}
e1 = POP();
e1.start->negated = TRUE;
+#ifdef FEAT_MBYTE
if (e1.start->c == NFA_COMPOSING)
e1.start->out1->negated = TRUE;
+#endif
PUSH(e1);
break;
@@ -2265,6 +2285,7 @@
PUSH(frag(s, list1(&s1->out)));
break;
+#ifdef FEAT_MBYTE
case NFA_COMPOSING: /* char with composing char */
#if 0
/* TODO */
@@ -2274,6 +2295,7 @@
}
#endif
/* FALLTHROUGH */
+#endif
case NFA_MOPEN + 0: /* Submatch */
case NFA_MOPEN + 1:
@@ -2298,9 +2320,11 @@
case NFA_NOPEN:
mclose = NFA_NCLOSE;
break;
+#ifdef FEAT_MBYTE
case NFA_COMPOSING:
mclose = NFA_END_COMPOSING;
break;
+#endif
default:
/* NFA_MOPEN(0) ... NFA_MOPEN(9) */
mclose = *p + NSUBEXP;
@@ -2336,9 +2360,11 @@
goto theend;
patch(e.out, s1);
+#ifdef FEAT_MBYTE
if (mopen == NFA_COMPOSING)
/* COMPOSING->out1 = END_COMPOSING */
patch(list1(&s->out1), s1);
+#endif
PUSH(frag(s, list1(&s1->out)));
break;
@@ -2802,8 +2828,6 @@
thread_T *t;
char_u *old_reginput = NULL;
char_u *old_regline = NULL;
- nfa_state_T *sta;
- nfa_state_T *end;
List list[3];
List *listtbl[2][2];
List *ll;
@@ -2813,13 +2837,12 @@
List *neglist;
int *listids = NULL;
int j = 0;
- int len = 0;
#ifdef NFA_REGEXP_DEBUG_LOG
- FILE *debug = fopen(NFA_REGEXP_DEBUG_LOG_NAME, "a");
+ FILE *debug = fopen(NFA_REGEXP_DEBUG_LOG, "a");
if (debug == NULL)
{
- EMSG2(_("(NFA) COULD NOT OPEN %s !"), NFA_REGEXP_DEBUG_LOG_NAME);
+ EMSG2(_("(NFA) COULD NOT OPEN %s !"), NFA_REGEXP_DEBUG_LOG);
return FALSE;
}
#endif
@@ -2836,7 +2859,7 @@
vim_memset(list[2].t, 0, size);
#ifdef ENABLE_LOG
- log_fd = fopen(LOG_NAME, "a");
+ log_fd = fopen(NFA_REGEXP_RUN_LOG, "a");
if (log_fd != NULL)
{
fprintf(log_fd, "**********************************\n");
@@ -3025,7 +3048,7 @@
nfa_restore_listids(start, listids);
#ifdef ENABLE_LOG
- log_fd = fopen(LOG_NAME, "a");
+ log_fd = fopen(NFA_REGEXP_RUN_LOG, "a");
if (log_fd != NULL)
{
fprintf(log_fd, "****************************\n");
@@ -3141,7 +3164,10 @@
#ifdef FEAT_MBYTE
case NFA_COMPOSING:
{
- int mc = c;
+ int mc = c;
+ int len = 0;
+ nfa_state_T *end;
+ nfa_state_T *sta;
result = OK;
sta = t->state->out;
@@ -3469,7 +3495,7 @@
need_clear_subexpr = TRUE;
#ifdef ENABLE_LOG
- f = fopen(LOG_NAME, "a");
+ f = fopen(NFA_REGEXP_RUN_LOG, "a");
if (f != NULL)
{
fprintf(f, "\n\n\n\n\n\n\t\t=======================================================\n");
@@ -3662,7 +3688,7 @@
*/
#ifdef ENABLE_LOG
{
- FILE *f = fopen(LOG_NAME, "a");
+ FILE *f = fopen(NFA_REGEXP_RUN_LOG, "a");
if (f != NULL)
{