tled: update autoindent only if prefix is empty - neatvi - [fork] simple vi-type editor with UTF-8 support
(HTM) git clone git://src.adamsgaard.dk/neatvi
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit c7dcceb5c62060da479326a72bc9e1170f18654c
(DIR) parent f57f8c4f0b99d1c293036dd028859fa16e03f847
(HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
Date: Sat, 23 May 2015 14:43:52 +0430
led: update autoindent only if prefix is empty
Diffstat:
M led.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
---
(DIR) diff --git a/led.c b/led.c
t@@ -230,7 +230,7 @@ char *led_input(char *pref, char *post, char *ai, int ai_max, char **kmap)
{
struct sbuf *sb = sbuf_make();
char *first_ai = NULL;
- int key, i, ai_len;
+ int key, i;
while (1) {
char *ln = led_line(pref, post, ai, ai_max, &key, kmap);
if (pref)
t@@ -244,13 +244,15 @@ char *led_input(char *pref, char *post, char *ai, int ai_max, char **kmap)
key == '\n' ? "" : post, *kmap);
if (key == '\n')
term_chr('\n');
+ if (!pref || !pref[0]) { /* updating autoindent */
+ int ai_len = ai_max ? strlen(ai) : 0;
+ for (i = 0; isspace((unsigned char) ln[i]); i++)
+ if (ai_len < ai_max)
+ ai[ai_len++] = ln[i];
+ ai[ai_len] = '\0';
+ }
pref = NULL;
term_kill();
- ai_len = ai_max ? strlen(ai) : 0;
- for (i = 0; isspace((unsigned char) ln[i]); i++)
- if (ai_len < ai_max)
- ai[ai_len++] = ln[i];
- ai[ai_len] = '\0';
free(ln);
if (key != '\n')
break;