aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/search.c2
-rw-r--r--tests/testsuite.at5
2 files changed, 6 insertions, 1 deletions
diff --git a/src/search.c b/src/search.c
index 14a8540..0dea20c 100644
--- a/src/search.c
+++ b/src/search.c
@@ -271,7 +271,7 @@ teco_class2regexp(teco_search_state_t *state, teco_string_t *pattern,
pattern->data += len;
pattern->len -= len;
*state = TECO_SEARCH_STATE_START;
- return g_regex_escape_string(str.data, str.len);
+ return g_regex_escape_string(str.data ? : "", str.len);
}
break;
}
diff --git a/tests/testsuite.at b/tests/testsuite.at
index edf2d3f..3ed4df8 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -177,6 +177,11 @@ AT_CHECK([$SCITECO -e ":@S/foo/\"S(0/0)'"], 0, ignore, ignore)
AT_CHECK([$SCITECO -e ":@N/foo/\"S(0/0)'"], 0, ignore, ignore)
AT_CLEANUP
+AT_SETUP([Search for one of characters in uninitialized Q-Register])
+# Register "a" exists, but it's string part is yet uninitialized.
+AT_CHECK([$SCITECO -e ":@S/^EGa/\"S(0/0)'"], 0, ignore, ignore)
+AT_CLEANUP
+
AT_SETUP([Memory limiting during spawning])
# This might result in an OOM if memory limiting is not working
AT_CHECK([$SCITECO -e "50*1000*1000,2EJ 0,128ED @EC'dd if=/dev/zero'"], 1, ignore, ignore)