| tex: make ex_pathexpand() more compact - neatvi - [fork] simple vi-type editor … | |
| git clone git://src.adamsgaard.dk/neatvi | |
| Log | |
| Files | |
| Refs | |
| README | |
| --- | |
| commit debb1a79efbabb95f0ce6383bc091c96b5bf1edc | |
| parent 2413a868f0ce3e3d67a8732f7174de731c3f7a05 | |
| Author: Ali Gholami Rudi <[email protected]> | |
| Date: Thu, 7 Oct 2021 13:04:29 +0330 | |
| ex: make ex_pathexpand() more compact | |
| Diffstat: | |
| M ex.c | 26 +++++++++----------------- | |
| 1 file changed, 9 insertions(+), 17 deletions(-) | |
| --- | |
| diff --git a/ex.c b/ex.c | |
| t@@ -122,27 +122,19 @@ static char *ex_pathexpand(char *src, int spaceallowed) | |
| char *end = dst + sizeof(buf); | |
| while (dst + 1 < end && *src && *src != '\n' && | |
| (spaceallowed || (*src != ' ' && *src != '\t'))) { | |
| - if (*src == '%') { | |
| - if (!bufs[0].path || !bufs[0].path[0]) { | |
| - ex_show("\"%\" is unset\n"); | |
| + if (*src == '%' || *src == '#') { | |
| + int idx = *src == '#'; | |
| + if (!bufs[idx].path || !bufs[idx].path[0]) { | |
| + ex_show("pathname \"%\" or \"#\" is not set\n"… | |
| return NULL; | |
| } | |
| - dst += snprintf(dst, end - dst, "%s", bufs[0].path); | |
| + dst += snprintf(dst, end - dst, "%s", bufs[idx].path); | |
| src++; | |
| - continue; | |
| - } | |
| - if (*src == '#') { | |
| - if (!bufs[1].path || !bufs[1].path[0]) { | |
| - ex_show("\"#\" is unset\n"); | |
| - return NULL; | |
| - } | |
| - dst += snprintf(dst, end - dst, "%s", bufs[1].path); | |
| - src++; | |
| - continue; | |
| + } else { | |
| + if (*src == '\\' && src[1]) | |
| + src++; | |
| + *dst++ = *src++; | |
| } | |
| - if (*src == '\\' && src[1]) | |
| - src++; | |
| - *dst++ = *src++; | |
| } | |
| if (dst + 1 >= end) | |
| dst = end - 1; |