aboutsummaryrefslogtreecommitdiff
path: root/vis.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-03-12 14:02:04 +0100
committerMarc André Tanner <mat@brain-dump.org>2016-03-12 14:02:04 +0100
commit2bbcf715a18a2a27dc2beb30e3f644273d7e16a9 (patch)
tree6b96898dd85e5a21eb085fbd31c97f1cc5d4cdd4 /vis.c
parentb9f04d851d17d404a842a4d8afe2156aef337283 (diff)
downloadvis-2bbcf715a18a2a27dc2beb30e3f644273d7e16a9.tar.gz
vis-2bbcf715a18a2a27dc2beb30e3f644273d7e16a9.tar.xz
vis: overhaul search related code, support "/ register
Diffstat (limited to 'vis.c')
-rw-r--r--vis.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/vis.c b/vis.c
index 7bb5d6a..7c04347 100644
--- a/vis.c
+++ b/vis.c
@@ -1112,6 +1112,20 @@ void vis_insert_nl(Vis *vis) {
copy_indent_from_previous_line(vis->win);
}
+Regex *vis_regex(Vis *vis, const char *pattern) {
+ if (!pattern && !(pattern = register_get(vis, &vis->registers[VIS_REG_SEARCH], NULL)))
+ return NULL;
+ Regex *regex = text_regex_new();
+ if (!regex)
+ return NULL;
+ if (text_regex_compile(regex, pattern, REG_EXTENDED|REG_NEWLINE) != 0) {
+ text_regex_free(regex);
+ return NULL;
+ }
+ register_put(vis, &vis->registers[VIS_REG_SEARCH], pattern, strlen(pattern)+1);
+ return regex;
+}
+
Text *vis_text(Vis *vis) {
return vis->win->file->text;
}