← Commit list

836d0a7ee

Denys Vlasenko
Denys Vlasenko
2018-11-29
SUCCESS Duration: 162s

Subject

vi: fix FEATURE_VI_REGEX_SEARCH to respect LIMITED (one-line) search

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

editors/vi.c+10 -5
@@ -255,8 +255,8 @@ enum {
YANKDEL = TRUE,
FORWARD = 1, // code depends on "1" for array index
BACK = -1, // code depends on "-1" for array index
- LIMITED = 0, // how much of text[] in char_search
- FULL = 1, // how much of text[] in char_search
+ LIMITED = 0, // char_search() only current line
+ FULL = 1, // char_search() to the end/beginning of entire text
S_BEFORE_WS = 1, // used in skip_thing() for moving "dot"
S_TO_WS = 2, // used in skip_thing() for moving "dot"
@@ -1914,10 +1914,15 @@ static char *char_search(char *p, const char *pat, int dir, int range)
return p;
}
- // assume a LIMITED forward search
- q = end - 1;
- if (dir == BACK)
+ q = end - 1; // if FULL
+ if (range == LIMITED)
+ q = next_line(p);
+ if (dir == BACK) {
q = text;
+ if (range == LIMITED)
+ q = prev_line(p);
+ }
+
// RANGE could be negative if we are searching backwards
range = q - p;
q = p;