diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-04-03 19:36:59 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-04-03 21:38:05 +0200 |
| commit | a547e3053bf112206452e56b919806bf4c9d575f (patch) | |
| tree | 74e0b8289db8c6fe88be0500aa42d819a7c12194 /sam.c | |
| parent | c90aa3e9e45ad38760e6c75b76478511dadf7329 (diff) | |
| download | vis-a547e3053bf112206452e56b919806bf4c9d575f.tar.gz vis-a547e3053bf112206452e56b919806bf4c9d575f.tar.xz | |
sam: support % as address denoting the whole file
Diffstat (limited to 'sam.c')
| -rw-r--r-- | sam.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -31,7 +31,7 @@ typedef struct { /* used to keep context when dealing with external proce } Filter; struct Address { - char type; /* # (char) l (line) g (goto line) / ? . $ + - , ; * */ + char type; /* # (char) l (line) g (goto line) / ? . $ + - , ; % */ Regex *regex; /* NULL denotes default for x, y, X, and Y commands */ size_t number; /* line or character number */ Address *left; /* left hand side of a compound address , ; */ @@ -366,6 +366,7 @@ static Address *address_parse_simple(Vis *vis, const char **s, enum SamError *er case '.': case '+': case '-': + case '%': (*s)++; break; default: @@ -594,7 +595,7 @@ static Command *command_parse(Vis *vis, const char **s, int level, enum SamError if (cmddef->flags & CMD_ADDRESS_ALL) { if (!(cmd->address = address_new())) goto fail; - cmd->address->type = '*'; + cmd->address->type = '%'; } } @@ -704,7 +705,7 @@ static Filerange address_evaluate(Address *addr, File *file, Filerange *range, i /* TODO: enforce strict ordering? */ return text_range_union(&left, &right); } - case '*': + case '%': return text_range_new(0, text_size(file->text)); } if (text_range_valid(&ret)) |
