diff options
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/buffer.c b/src/buffer.c index ff7c50fae1..a47342a3f5 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -5278,24 +5278,21 @@ append_arg_number( int buflen, int add_file) // Add "file" before the arg number { - char_u *p; - if (ARGCOUNT <= 1) // nothing to do return FALSE; - p = buf + STRLEN(buf); // go to the end of the buffer - if (p - buf + 35 >= buflen) // getting too long - return FALSE; - *p++ = ' '; - *p++ = '('; - if (add_file) + char *msg; + switch ((wp->w_arg_idx_invalid ? 1 : 0) + (add_file ? 2 : 0)) { - STRCPY(p, "file "); - p += 5; + case 0: msg = _(" (%d of %d)"); break; + case 1: msg = _(" ((%d) of %d)"); break; + case 2: msg = _(" (file %d of %d)"); break; + case 3: msg = _(" (file (%d) of %d)"); break; } - vim_snprintf((char *)p, (size_t)(buflen - (p - buf)), - wp->w_arg_idx_invalid ? "(%d) of %d)" - : "%d of %d)", wp->w_arg_idx + 1, ARGCOUNT); + + char_u *p = buf + STRLEN(buf); // go to the end of the buffer + vim_snprintf((char *)p, (size_t)(buflen - (p - buf)), msg, + wp->w_arg_idx + 1, ARGCOUNT); return TRUE; } |