Introduction
Introduction Statistics Contact Development Disclaimer Help
tled: indenting and deindenting when auto-indent buffer is empty - neatvi - [fo…
git clone git://src.adamsgaard.dk/neatvi
Log
Files
Refs
README
---
commit 49e4029728927afb1a22864698be10cf445413aa
parent edaafb4c0b7285982922d36a1e8b671e3d679691
Author: Ali Gholami Rudi <[email protected]>
Date: Thu, 4 Jun 2020 12:32:27 +0430
led: indenting and deindenting when auto-indent buffer is empty
Diffstat:
M led.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
---
diff --git a/led.c b/led.c
t@@ -291,6 +291,16 @@ static char *led_line(char *pref, char *post, char *ai,
ai[ai_len] = '\0';
break;
case TK_CTL('d'):
+ /* when ai and pref are empty, remove the first space …
+ if (ai_len == 0 && !pref[0]) {
+ char *buf = sbuf_buf(sb);
+ if (buf[0] == ' ' || buf[0] == '\t') {
+ char *dup = uc_dup(buf + 1);
+ sbuf_cut(sb, 0);
+ sbuf_str(sb, dup);
+ free(dup);
+ }
+ }
if (ai_len > 0)
ai[--ai_len] = '\0';
break;
t@@ -337,7 +347,7 @@ char *led_input(char *pref, char *post, int *kmap, char *s…
{
struct sbuf *sb = sbuf_make();
char ai[128];
- int ai_max = xai ? sizeof(ai) - 1 : 0;
+ int ai_max = sizeof(ai) - 1;
int n = 0;
int key;
while (n < ai_max && (*pref == ' ' || *pref == '\t'))
t@@ -348,6 +358,7 @@ char *led_input(char *pref, char *post, int *kmap, char *s…
int ln_sp = 0; /* number of initial spaces in ln */
while (ln[ln_sp] && (ln[ln_sp] == ' ' || ln[ln_sp] == '\t'))
ln_sp++;
+ /* append the auto-indent only if there are other characters */
if (ln[ln_sp] || (pref && pref[0]) ||
(key != '\n' && post[0] && post[0] != '\n'))
sbuf_str(sb, ai);
t@@ -368,6 +379,8 @@ char *led_input(char *pref, char *post, int *kmap, char *s…
memcpy(ai + ai_len, ln, ai_new);
ai[ai_len + ai_new] = '\0';
}
+ if (!xai)
+ ai[0] = '\0';
free(ln);
if (key != '\n')
break;
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.