summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c13
-rw-r--r--src/eval.c21
-rw-r--r--src/ex_cmds.c10
-rw-r--r--src/ex_cmds.h4
-rw-r--r--src/ex_cmds2.c25
-rw-r--r--src/ex_docmd.c13
-rw-r--r--src/ex_eval.c12
-rw-r--r--src/fileio.c38
-rw-r--r--src/gui_gtk_x11.c5
-rw-r--r--src/main.c15
-rw-r--r--src/misc1.c8
-rw-r--r--src/normal.c1
-rw-r--r--src/ops.c13
-rw-r--r--src/option.c2
-rw-r--r--src/os_unix.c6
-rw-r--r--src/po/es.po2210
-rw-r--r--src/structs.h5
-rw-r--r--src/term.c12
18 files changed, 1307 insertions, 1106 deletions
diff --git a/src/buffer.c b/src/buffer.c
index c2bc09473b..007afd6356 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1262,7 +1262,8 @@ set_curbuf(buf, action)
|| action == DOBUF_WIPE);
setpcmark();
- curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */
+ if (!cmdmod.keepalt)
+ curwin->w_alt_fnum = curbuf->b_fnum; /* remember alternate file */
buflist_altfpos(); /* remember curpos */
#ifdef FEAT_VISUAL
@@ -1345,7 +1346,15 @@ enter_buffer(buf)
/* Make sure the buffer is loaded. */
if (curbuf->b_ml.ml_mfp == NULL) /* need to load the file */
+ {
+ /* If there is no filetype, allow for detecting one. Esp. useful for
+ * ":ball" used in a autocommand. If there already is a filetype we
+ * might prefer to keep it. */
+ if (*curbuf->b_p_ft == NUL)
+ did_filetype = FALSE;
+
open_buffer(FALSE, NULL);
+ }
else
{
need_fileinfo = TRUE; /* display file info after redraw */
@@ -2536,7 +2545,7 @@ setaltfname(ffname, sfname, lnum)
/* Create a buffer. 'buflisted' is not set if it's a new buffer */
buf = buflist_new(ffname, sfname, lnum, 0);
- if (buf != NULL)
+ if (buf != NULL && !cmdmod.keepalt)
curwin->w_alt_fnum = buf->b_fnum;
return buf;
}
diff --git a/src/eval.c b/src/eval.c
index 4e6c7b6a52..756c5fe75a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -7341,19 +7341,22 @@ f_strridx(argvars, retvar)
needle = get_var_string(&argvars[1]);
haystack = get_var_string_buf(&argvars[0], buf);
- rest = haystack;
- while (*haystack != '\0')
- {
- rest = (char_u *)strstr((char *)rest, (char *)needle);
- if (rest == NULL)
- break;
- lastmatch = rest++;
- }
+ if (*needle == NUL)
+ /* Empty string matches past the end. */
+ lastmatch = haystack + STRLEN(haystack);
+ else
+ for (rest = haystack; *rest != '\0'; ++rest)
+ {
+ rest = (char_u *)strstr((char *)rest, (char *)needle);
+ if (rest == NULL)
+ break;
+ lastmatch = rest;
+ }
if (lastmatch == NULL)
retvar->var_val.var_number = -1;
else
- retvar->var_val.var_number = (varnumber_T) (lastmatch - haystack);
+ retvar->var_val.var_number = (varnumber_T)(lastmatch - haystack);
}
/*
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index ba36700425..2568b194ba 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2040,7 +2040,7 @@ ex_file(eap)
}
curbuf->b_flags |= BF_NOTEDITED;
buf = buflist_new(fname, xfname, curwin->w_cursor.lnum, 0);
- if (buf != NULL)
+ if (buf != NULL && !cmdmod.keepalt)
curwin->w_alt_fnum = buf->b_fnum;
vim_free(fname);
vim_free(sfname);
@@ -2689,7 +2689,8 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags)
if (!(flags & ECMD_ADDBUF))
#endif
{
- curwin->w_alt_fnum = curbuf->b_fnum;
+ if (!cmdmod.keepalt)
+ curwin->w_alt_fnum = curbuf->b_fnum;
buflist_altfpos();
}
@@ -4736,7 +4737,8 @@ ex_help(eap)
alt_fnum = curbuf->b_fnum;
(void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL,
ECMD_HIDE + ECMD_SET_HELP);
- curwin->w_alt_fnum = alt_fnum;
+ if (!cmdmod.keepalt)
+ curwin->w_alt_fnum = alt_fnum;
empty_fnum = curbuf->b_fnum;
}
}
@@ -4756,7 +4758,7 @@ ex_help(eap)
}
/* keep the previous alternate file */
- if (alt_fnum != 0 && curwin->w_alt_fnum == empty_fnum)
+ if (alt_fnum != 0 && curwin->w_alt_fnum == empty_fnum && !cmdmod.keepalt)
curwin->w_alt_fnum = alt_fnum;
erret:
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 3c802d213a..d687d8992c 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -109,7 +109,7 @@ EX(CMD_anoremenu, "anoremenu", ex_menu,
EX(CMD_args, "args", ex_args,
BANG|FILES|EDITCMD|ARGOPT|TRLBAR),
EX(CMD_argadd, "argadd", ex_argadd,
- BANG|NEEDARG|RANGE|NOTADR|COUNT|FILES|TRLBAR),
+ BANG|NEEDARG|RANGE|NOTADR|ZEROR|COUNT|FILES|TRLBAR),
EX(CMD_argdelete, "argdelete", ex_argdelete,
BANG|RANGE|NOTADR|COUNT|FILES|TRLBAR),
EX(CMD_argdo, "argdo", ex_listdo,
@@ -452,6 +452,8 @@ EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier,
NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier,
NEEDARG|EXTRA|NOTRLCOM),
+EX(CMD_keepalt, "keepalt", ex_wrongmodifier,
+ NEEDARG|EXTRA|NOTRLCOM),
EX(CMD_list, "list", ex_print,
RANGE|WHOLEFOLD|COUNT|TRLBAR|CMDWIN),
EX(CMD_last, "last", ex_last,
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index b651f34a7b..1e2584159b 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1062,6 +1062,7 @@ do_one_arg(str)
static int do_arglist __ARGS((char_u *str, int what, int after));
static void alist_check_arg_idx __ARGS((void));
+static int editing_arg_idx __ARGS((win_T *win));
#ifdef FEAT_LISTCMDS
static int alist_add_list __ARGS((int count, char_u **files, int after));
#endif
@@ -1221,20 +1222,30 @@ alist_check_arg_idx()
}
/*
- * Check if window "win" is editing the w_arg_idx file in its argument list.
+ * Return TRUE if window "win" is editing then file at the current argument
+ * index.
*/
- void
-check_arg_idx(win)
+ static int
+editing_arg_idx(win)
win_T *win;
{
- if (WARGCOUNT(win) > 1
- && (win->w_arg_idx >= WARGCOUNT(win)
+ return !(win->w_arg_idx >= WARGCOUNT(win)
|| (win->w_buffer->b_fnum
!= WARGLIST(win)[win->w_arg_idx].ae_fnum
&& (win->w_buffer->b_ffname == NULL
|| !(fullpathcmp(
alist_name(&WARGLIST(win)[win->w_arg_idx]),
- win->w_buffer->b_ffname, TRUE) & FPC_SAME)))))
+ win->w_buffer->b_ffname, TRUE) & FPC_SAME))));
+}
+
+/*
+ * Check if window "win" is editing the w_arg_idx file in its argument list.
+ */
+ void
+check_arg_idx(win)
+ win_T *win;
+{
+ if (WARGCOUNT(win) > 1 && !editing_arg_idx(win))
{
/* We are not editing the current entry in the argument list.
* Set "arg_had_last" if we are editing the last one. */
@@ -1662,7 +1673,7 @@ ex_listdo(eap)
break;
/* Don't call do_argfile() when already there, it will try
* reloading the file. */
- if (curwin->w_arg_idx != i)
+ if (curwin->w_arg_idx != i || !editing_arg_idx(curwin))
do_argfile(eap, i);
if (curwin->w_arg_idx != i)
break;
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 7415e4629c..3627f32ccc 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -1694,6 +1694,11 @@ do_one_cmd(cmdlinep, sourcing,
cmdmod.keepmarks = TRUE;
continue;
}
+ if (checkforcmd(&ea.cmd, "keepalt", 5))
+ {
+ cmdmod.keepalt = TRUE;
+ continue;
+ }
if (!checkforcmd(&ea.cmd, "keepjumps", 5))
break;
cmdmod.keepjumps = TRUE;
@@ -2388,6 +2393,7 @@ do_one_cmd(cmdlinep, sourcing,
case CMD_ilist:
case CMD_isearch:
case CMD_isplit:
+ case CMD_keepalt:
case CMD_keepjumps:
case CMD_keepmarks:
case CMD_leftabove:
@@ -2788,6 +2794,7 @@ cmd_exists(name)
{"browse", 3},
{"confirm", 4},
{"hide", 3},
+ {"keepalt", 5},
{"keepjumps", 5},
{"keepmarks", 3},
{"leftabove", 5},
@@ -2892,7 +2899,7 @@ set_one_cmd_context(xp, buff)
* Isolate the command and search for it in the command table.
* Exceptions:
* - the 'k' command can directly be followed by any character, but
- * do accept "keepmarks" and "keepjumps".
+ * do accept "keepmarks", "keepalt" and "keepjumps".
* - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r'
*/
if (*cmd == 'k' && cmd[1] != 'e')
@@ -3240,6 +3247,7 @@ set_one_cmd_context(xp, buff)
case CMD_folddoclosed:
case CMD_folddoopen:
case CMD_hide:
+ case CMD_keepalt:
case CMD_keepjumps:
case CMD_keepmarks:
case CMD_leftabove:
@@ -6702,7 +6710,8 @@ do_exedit(eap, old_curwin)
&& *eap->arg != NUL
&& curwin != old_curwin
&& win_valid(old_curwin)
- && old_curwin->w_buffer != curbuf)
+ && old_curwin->w_buffer != curbuf
+ && !cmdmod.keepalt)
old_curwin->w_alt_fnum = curbuf->b_fnum;
#endif
diff --git a/src/ex_eval.c b/src/ex_eval.c
index 1386115e82..284ae3f884 100644
--- a/src/ex_eval.c
+++ b/src/ex_eval.c
@@ -1620,16 +1620,16 @@ ex_finally(eap)
* a missing ":endwhile" detected here, the exception will be
* discarded. */
if (did_throw && cstack->cs_exception[cstack->cs_idx] !=
- current_exception)
+ current_exception)
EMSG(_(e_internal));
}
/*
- * Set cs_had_finally, so do_cmdline() will reset did_emsg, got_int,
- * and did_throw and make the finally clause active. This will
- * happen after emsg() has been called for a missing ":endif" or
- * a missing ":endwhile" detected here, so that the following
- * finally clause will be executed even then.
+ * Set cs_had_finally, so do_cmdline() will reset did_emsg,
+ * got_int, and did_throw and make the finally clause active.
+ * This will happen after emsg() has been called for a missing
+ * ":endif" or a missing ":endwhile" detected here, so that the
+ * following finally clause will be executed even then.
*/
cstack->cs_had_finally = TRUE;
}
diff --git a/src/fileio.c b/src/fileio.c
index d1c11a0461..026bc8f384 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -473,6 +473,8 @@ readfile(fname, sfname, from, lines_to_skip, lines_to_read, eap, flags)
#endif
#ifdef VMS
curbuf->b_fab_rfm = st.st_fab_rfm;
+ curbuf->b_fab_rat = st.st_fab_rat;
+ curbuf->b_fab_mrs = st.st_fab_mrs;
#endif
}
else
@@ -2511,6 +2513,11 @@ set_file_time(fname, atime, mtime)
}
#endif /* UNIX */
+#if defined(VMS) && !defined(MIN)
+/* Older DECC compiler for VAX doesn't define MIN() */
+# define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
/*
* buf_write() - write to file 'fname' lines 'start' through 'end'
*
@@ -3924,20 +3931,29 @@ restore_backup:
* On VMS there is a problem: newlines get added when writing blocks
* at a time. Fix it by writing a line at a time.
* This is much slower!
- * Explanation: Vim can not handle, so far, variable record format.
- * With $analize/rms filename you can get the rms file structure, and
- * if the Record format filed is variable, CR will be added after
- * every written buffer. In other cases it works without this fix.
- * From other side read is about 5 times slower for "variable record
- * format" files.
+ * Explanation: VAX/DECC RTL insists that records in some RMS
+ * structures end with a newline (carriage return) character, and if
+ * they don't it adds one.
+ * With other RMS structures it works perfect without this fix.
*/
- if (buf->b_fab_rfm == FAB$C_VAR)
+ if ((buf->b_fab_rat & (FAB$M_FTN | FAB$M_CR)) != 0)
{
- write_info.bw_len = len;
- if (buf_write_bytes(&write_info) == FAIL)
+ int b2write;
+
+ buf->b_fab_mrs = (buf->b_fab_mrs == 0
+ ? MIN(4096, bufsize)
+ : MIN(buf->b_fab_mrs, bufsize));
+
+ b2write = len;
+ while (b2write > 0)
{
- end = 0; /* write error: break loop */
- break;
+ write_info.bw_len = MIN(b2write, buf->b_fab_mrs);
+ if (buf_write_bytes(&write_info) == FAIL)
+ {
+ end = 0;
+ break;
+ }
+ b2write -= MIN(b2write, buf->b_fab_mrs);
}
write_info.bw_len = bufsize;
nchars += len;
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index e36c85827f..aed649b277 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -5845,8 +5845,11 @@ gui_mch_wait_for_chars(long wtime)
/*
* Loop in GTK+ processing until a timeout or input occurs.
+ * Skip this if input is available anyway (can happen in rare
+ * situations, sort of race condition).
*/
- gtk_main();
+ if (!input_available())
+ gtk_main();
/* Got char, return immediately */
if (input_available())
diff --git a/src/main.c b/src/main.c
index 8e20121aea..0c8701ad93 100644
--- a/src/main.c
+++ b/src/main.c
@@ -150,11 +150,6 @@ main
int literal = FALSE; /* don't expand file names */
#endif
-# ifdef NBDEBUG
- nbdebug_log_init("SPRO_GVIM_DEBUG", "SPRO_GVIM_DLEVEL");
- nbdebug_wait(WT_ENV | WT_WAIT | WT_STOP, "SPRO_GVIM_WAIT", 20);
-# endif
-
/*
* Do any system-specific initialisations. These can NOT use IObuff or
* NameBuff. Thus emsg2() cannot be called!
@@ -209,6 +204,13 @@ main
TIME_MSG("Allocated generic buffers");
+#ifdef NBDEBUG
+ /* Wait a moment for debugging NetBeans. Must be after allocating
+ * NameBuff. */
+ nbdebug_log_init("SPRO_GVIM_DEBUG", "SPRO_GVIM_DLEVEL");
+ nbdebug_wait(WT_ENV | WT_WAIT | WT_STOP, "SPRO_GVIM_WAIT", 20);
+#endif
+
#if defined(HAVE_LOCALE_H) || defined(X_LOCALE)
/*
* Setup to use the current locale (for ctype() and many other things).
@@ -2475,6 +2477,9 @@ usage()
break;
mch_msg(_("\n or:"));
}
+#ifdef VMS
+ mch_msg(_("where case is ignored prepend / to make flag upper case"));
+#endif
mch_msg(_("\n\nArguments:\n"));
main_msg(_("--\t\t\tOnly file names after this"));
diff --git a/src/misc1.c b/src/misc1.c
index 8a2d19e1bd..9558cc5ff8 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -2168,7 +2168,7 @@ del_bytes(count, fixpos)
#ifdef FEAT_MBYTE
/* If 'delcombine' is set and deleting (less than) one character, only
* delete the last combining character. */
- if (p_deco && enc_utf8 && (*mb_ptr2len_check)(oldp + col) <= count)
+ if (p_deco && enc_utf8 && utfc_ptr2len_check(oldp + col) >= count)
{
int c1, c2;
int n;
@@ -3321,7 +3321,11 @@ expand_env_esc(src, dst, dstlen, esc)
while (*src && dstlen > 0)
{
copy_char = TRUE;
- if (*src == '$'
+ if ((*src == '$'
+#ifdef VMS
+ && at_start
+#endif
+ )
#if defined(MSDOS) || defined(MSWIN) || defined(OS2)
|| *src == '%'
#endif
diff --git a/src/normal.c b/src/normal.c
index 330356ce9e..8ea4ba64ce 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -4343,6 +4343,7 @@ dozet:
curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
else
curwin->w_cursor.lnum = cap->count0;
+ check_cursor_col();
}
switch (nchar)
diff --git a/src/ops.c b/src/ops.c
index 128984e6a7..1184c9d16c 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3703,6 +3703,11 @@ ex_display(eap)
int name;
int attr;
char_u *arg = eap->arg;
+#ifdef FEAT_MBYTE
+ int clen;
+#else
+# define clen 1
+#endif
if (arg != NULL && *arg == NUL)
arg = NULL;
@@ -3750,10 +3755,12 @@ ex_display(eap)
}
for (p = yb->y_array[j]; *p && (n -= ptr2cells(p)) >= 0; ++p)
{
- msg_outtrans_len(p, 1);
#ifdef FEAT_MBYTE
- if (has_mbyte)
- p += (*mb_ptr2len_check)(p) - 1;
+ clen = (*mb_ptr2len_check)(p);
+#endif
+ msg_outtrans_len(p, clen);
+#ifdef FEAT_MBYTE
+ p += clen - 1;
#endif
}
}
diff --git a/src/option.c b/src/option.c
index 981e231ea6..d049cd47a7 100644
--- a/src/option.c
+++ b/src/option.c
@@ -714,7 +714,7 @@ static struct vimoption
{"define", "def", P_STRING|P_ALLOCED|P_VI_DEF,
#ifdef FEAT_FIND_ID
(char_u *)&p_def, OPT_BOTH(PV_DEF),
- {(char_u *)"^\\s#\\s*define", (char_u *)0L}
+ {(char_u *)"^\\s*#\\s*define", (char_u *)0L}
#else
(char_u *)NULL, PV_NONE,
{(char_u *)NULL, (char_u *)0L}
diff --git a/src/os_unix.c b/src/os_unix.c
index 08276456b6..24c86b2619 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -1954,9 +1954,9 @@ vim_is_vt300(name)
{
if (name == NULL)
return FALSE; /* actually all ANSI comp. terminals should be here */
- return (STRNICMP(name, "vt3", 3) == 0 /* it will cover all from VT100-VT300 */
- || STRNICMP(name, "vt2", 3) == 0 /* TODO: from VT340 can hanle colors */
- || STRNICMP(name, "vt1", 3) == 0
+ /* catch VT100 - VT5xx */
+ return ((STRNICMP(name, "vt", 2) == 0
+ && vim_strchr((char_u *)"12345", name[2]) != NULL)
|| STRCMP(name, "builtin_vt320") == 0);
}
diff --git a/src/po/es.po b/src/po/es.po
index ed89984fac..511d3f31f9 100644
--- a/src/po/es.po
+++ b/src/po/es.po
@@ -8,10 +8,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Vim 6.3.7 (Español)\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-06-23 20:35-0500\n"
-"PO-Revision-Date: 2004-06-23 20:46-0500\n"
+"Project-Id-Version: Vim 7.0aa (Español)\n"
+"Report-Msgid-Bugs-To: Alejandro López-Valencia <dradul@yahoo.com>\n"
+"POT-Creation-Date: 2004-08-02 19:58-0500\n"
+"PO-Revision-Date: 2004-08-02 20:01-0500\n"
"Last-Translator: Alejandro López-Valencia <dradul@yahoo.com>\n"
"Language-Team: Alejandro López-Valencia <dradul@yahoo.com>\n"
"MIME-Version: 1.0\n"
@@ -26,172 +26,176 @@ msgstr "E82: No se puede asignar memoria para ningún «buffer», saliendo..."
msgid "E83: Cannot allocate buffer, using other one..."
msgstr "E83: No se puede asignar memoria para el «buffer», usando otro..."
-#: buffer.c:808
+#: buffer.c:827
+#, c-format
msgid "E515: No buffers were unloaded"
msgstr "E515: No se descargó ningún «buffer»."
-#: buffer.c:810
+#: buffer.c:829
+#, c-format
msgid "E516: No buffers were deleted"
-msgstr "E516: No se borró ningún «buffer»."
+msgstr "E516: No se eliminó ningún «buffer»."
-#: buffer.c:812
+#: buffer.c:831
+#, c-format
msgid "E517: No buffers were wiped out"
-msgstr "E517: No se eliminó ningún «buffer»."
+msgstr "E517: No se borró ningún «buffer»."
-#: buffer.c:820
+#: buffer.c:839
msgid "1 buffer unloaded"
-msgstr "Un «buffer» descargado."
+msgstr "Un «buffer» descargado de la memoria."
-#: buffer.c:822
+#: buffer.c:841
#, c-format
msgid "%d buffers unloaded"
-msgstr "%d «buffers» descargados."
+msgstr "%d «buffers» descargados de la memoria."
-#: buffer.c:827
+#: buffer.c:846
msgid "1 buffer deleted"
-msgstr "Un «buffer» suprimido."
+msgstr "Un «buffer» eliminado."
-#: buffer.c:829
+#: buffer.c:848
#, c-format
msgid "%d buffers deleted"
-msgstr "%d «buffers» suprimidos."
+msgstr "%d «buffers» eliminados."
-#: buffer.c:834
+#: buffer.c:853
msgid "1 buffer wiped out"
-msgstr "1 «buffer» eliminado."
+msgstr "1 «buffer» borrado."
-#: buffer.c:836
+#: buffer.c:855
#, c-format
msgid "%d buffers wiped out"
-msgstr "%d «buffers» eliminados."
+msgstr "%d «buffers» borrado."
-#: buffer.c:897
+#: buffer.c:916
msgid "E84: No modified buffer found"
msgstr "E84: No he encontrado ningún «buffer» modificado."
#. back where we started, didn't find anything.
-#: buffer.c:936
+#: buffer.c:955
msgid "E85: There is no listed buffer"
msgstr "E85: No hay «buffers» en la lista."
-#: buffer.c:948
+#: buffer.c:967
#, c-format
msgid "E86: Buffer %ld does not exist"
msgstr "E86: El «buffer» %ld no existe."
-#: buffer.c:951
+#: buffer.c:970
msgid "E87: Cannot go beyond last buffer"
msgstr "E87: No puedo ir más allá del último «buffer»."
-#: buffer.c:953
+#: buffer.c:972
msgid "E88: Cannot go before first buffer"
msgstr "E88: No puedo ir más atrás del primer buffer."
-#: buffer.c:991
+#: buffer.c:1010
#, c-format
msgid "E89: No write since last change for buffer %ld (add ! to override)"
msgstr ""
"E89: No ha guardado el fichero desde el último cambio del «buffer» %ld "
"(añada ! para forzar)."
-#: buffer.c:1008
+#: buffer.c:1027
msgid "E90: Cannot unload last buffer"
msgstr "E90: No se puede descargar el último buffer."
-#: buffer.c:1544
+#: buffer.c:1563
msgid "W14: Warning: List of file names overflow"
msgstr "W14: Advertencia: lista de nombres de ficheros demasiado larga."
-#: buffer.c:1716
+#: buffer.c:1741
#, c-format
msgid "E92: Buffer %ld not found"
msgstr "E92: No se ha encontrado el buffer %ld"
-#: buffer.c:1947
+#: buffer.c:1972
#, c-format
msgid "E93: More than one match for %s"
msgstr "E93: Más de una coincidencia con %s."
-#: buffer.c:1949
+#: buffer.c:1974
#, c-format
msgid "E94: No matching buffer for %s"
msgstr "E94: No hay un buffer que coincida con %s."
-#: buffer.c:2344
+#: buffer.c:2369
#, c-format
msgid "line %ld"
msgstr "línea %ld"
-#: buffer.c:2429
+#: buffer.c:2454
msgid "E95: Buffer with this name already exists"
msgstr "E95: Ya existe un buffer con este nombre."
-#: buffer.c:2724
+#: buffer.c:2749
msgid " [Modified]"
msgstr " [Modificado]"
-#: buffer.c:2729
+#: buffer.c:2754
msgid "[Not edited]"
msgstr "[Sin editar]"
-#: buffer.c:2734
+#: buffer.c:2759
msgid "[New file]"
msgstr "[Fichero nuevo]"
-#: buffer.c:2735
+#: buffer.c:2760
msgid "[Read errors]"
msgstr "[Errores de lectura]"
-#: buffer.c:2737 fileio.c:2124
+#: buffer.c:2762 fileio.c:2098
msgid "[readonly]"
msgstr "[Sólo lectura]"
-#: buffer.c:2758
+#: buffer.c:2783
#, c-format
msgid "1 line --%d%%--"
msgstr "1 línea --%d%%--"
-#: buffer.c:2760
+#: buffer.c:2785
#, c-format
msgid "%ld lines --%d%%--"
msgstr "%ld líneas --%d%%--"
-#: buffer.c:2767
+#: buffer.c:2792
#, c-format
msgid "line %ld of %ld --%d%%-- col "
msgstr "línea %ld de %ld --%d%%-- col "
-#: buffer.c:2875
+#: buffer.c:2900
msgid "[No file]"
msgstr "[Sin fichero]"
# must be a help buffer
#. must be a help buffer
-#: buffer.c:2915
+#: buffer.c:2940
msgid "help"
msgstr "ayuda"
-#: buffer.c:3474 screen.c:5079
+#: buffer.c:3499 screen.c:5122
msgid "[help]"
msgstr "[ayuda]"
-#: buffer.c:3506 screen.c:5085
+#: buffer.c:3531 screen.c:5128
msgid "[Preview]"
msgstr "[Vista previa]"
-#: buffer.c:3786
+#: buffer.c:3811
msgid "All"
msgstr "Todo"
-#: buffer.c:3786
+#: buffer.c:3811
msgid "Bot"
msgstr "Final"
-#: buffer.c:3788
+#: buffer.c:3813
msgid "Top"
msgstr "Comienzo"
-#: buffer.c:4536
+#: buffer.c:4568
+#, c-format
msgid ""
"\n"
"# Buffer list:\n"
@@ -199,15 +203,15 @@ msgstr ""
"\n"
"# Lista de «buffers»:\n"
-#: buffer.c:4569
+#: buffer.c:4601
msgid "[Error List]"
msgstr "[Lista de errores]"
-#: buffer.c:4582 memline.c:1521
-msgid "[No File]"
-msgstr "[Sin fichero]"
+#: buffer.c:4614 memline.c:1524
+msgid "[No Name]"
+msgstr "[Sin Nombre]"
-#: buffer.c:4895
+#: buffer.c:4927
msgid ""
"\n"
"--- Signs ---"
@@ -215,51 +219,51 @@ msgstr ""
"\n"
"--- Signos ---"
-#: buffer.c:4914
+#: buffer.c:4946
#, c-format
msgid "Signs for %s:"
msgstr "Signos para %s"
-#: buffer.c:4920
+#: buffer.c:4952
#, c-format
msgid " line=%ld id=%d name=%s"
msgstr " línea=%ld id=%d nombre=%s"
-#: diff.c:139
+#: diff.c:163
#, c-format
msgid "E96: Can not diff more than %ld buffers"
msgstr "E96: No puedo usar «diff» con más de %ld «buffers»."
-#: diff.c:713
+#: diff.c:737
msgid "E97: Cannot create diffs"
msgstr "E97: No puedo crear «diffs»."
-#: diff.c:819
+#: diff.c:843
msgid "Patch file"
msgstr "Fichero de parches."
-#: diff.c:1072
+#: diff.c:1146
msgid "E98: Cannot read diff output"
msgstr "E98: no puedo leer la salida de «diff»."
-#: diff.c:1822
+#: diff.c:1896
msgid "E99: Current buffer is not in diff mode"
msgstr "E99: El «buffer» actual no está en modo «diff»."
-#: diff.c:1834
+#: diff.c:1908
msgid "E100: No other buffer in diff mode"
msgstr "E100: Ningún otro «buffer» está en modo «diff»."
-#: diff.c:1842
+#: diff.c:1916
msgid "E101: More than two buffers in diff mode, don't know which one to use"
msgstr "E101: Más de dos «buffers» en modo «diff», no se cual usar."
-#: diff.c:1865
+#: diff.c:1939
#, c-format
msgid "E102: Can't find buffer \"%s\""
msgstr "E102: No puedo encontrar el «buffer» «%s»."
-#: diff.c:1871
+#: diff.c:1945
#, c-format
msgid "E103: Buffer \"%s\" is not in diff mode"
msgstr "E103: El «buffer» «%s» no está en modo «diff»."
@@ -277,91 +281,96 @@ msgid "E105: Using :loadkeymap not in a sourced file"
msgstr ""
"E105: «:loadkeymap» en un fichero que no contiene instrucciones ejecutables."
-#: edit.c:40
+#: edit.c:41
msgid " Keyword completion (^N^P)"
msgstr " Completar palabra clave (^N^P)."
# ctrl_x_mode == 0, ^P/^N compl.
#. ctrl_x_mode == 0, ^P/^N compl.
-#: edit.c:41
-msgid " ^X mode (^E^Y^L^]^F^I^K^D^V^N^P)"
-msgstr " modo ^X (^E^Y^L^]^F^I^K^D^V^N^P)."
+#: edit.c:42
+msgid " ^X mode (^E^Y^L^]^F^I^K^D^U^V^N^P)"
+msgstr " modo ^X (^E^Y^L^]^F^I^K^D^V^N^P)"
# Scroll has it's own msgs, in it's place there is the msg for local
# * ctrl_x_mode = 0 (eg continue_status & CONT_LOCAL) -- Acevedo
#. Scroll has it's own msgs, in it's place there is the msg for local
#. * ctrl_x_mode = 0 (eg continue_status & CONT_LOCAL) -- Acevedo
-#: edit.c:44
+#: edit.c:45
msgid " Keyword Local completion (^N^P)"
msgstr " Completar palabra clave local (^N^P)."
-#: edit.c:45
+#: edit.c:46
msgid " Whole line completion (^L^N^P)"
msgstr " Completar toda la línea (^L^N^P)."
-#: edit.c:46
+#: edit.c:47
msgid " File name completion (^F^N^P)"
msgstr " Completar nombre de fichero (^F^N^P)."
-#: edit.c:47
+#: edit.c:48
msgid " Tag completion (^]^N^P)"
msgstr " Completar «tag» (^]^N^P)."
-#: edit.c:48
+#: edit.c:49
msgid " Path pattern completion (^N^P)"
msgstr " Completar patrón de ruta (^N^P)."
-#: edit.c:49
+#: edit.c:50
msgid " Definition completion (^D^N^P)"
msgstr " Completar definición (^D^N^P)."
-#: edit.c:51
+#: edit.c:52
msgid " Dictionary completion (^K^N^P)"
msgstr " Completar diccionario (^K^N^P)."
-#: edit.c:52
+#: edit.c:53
msgid " Thesaurus completion (^T^N^P)"
msgstr " Completar diccionario de sinónimos (^T^N^P)."
-#: edit.c:53
+#: edit.c:54
msgid " Command-line completion (^V^N^P)"
msgstr " Completar línea de comandos (^V^N^P)."
-#: edit.c:56
+#: edit.c:55
+msgid " User defined completion (^U^N^P)"
+msgstr " Completar patrón definido por el usuario (^V^N^P)."
+
+#: edit.c:58
msgid "Hit end of paragraph"
msgstr "He llegado al final del párrafo."
-#: edit.c:962
+#: edit.c:994
msgid "'thesaurus' option is empty"
msgstr "La opción «thesaurus» está vacía."
-#: edit.c:1166
+#: edit.c:1204
msgid "'dictionary' option is empty"
msgstr "La opción «dictionary» está vacía."
-#: edit.c:2162
+#: edit.c:2204
#, c-format
msgid "Scanning dictionary: %s"
msgstr "Buscando en el diccionario: %s."
-#: edit.c:2368
+#: edit.c:2410
msgid " (insert) Scroll (^E/^Y)"
msgstr " (insertar) «Scroll» (^E/^Y)."
-#: edit.c:2370
+#: edit.c:2412
msgid " (replace) Scroll (^E/^Y)"
msgstr " (reemplazar) «Scroll» (^E/^Y)."
-#: edit.c:2684
+#: edit.c:2814
#, c-format
msgid "Scanning: %s"
msgstr "Buscando: %s."
-#: edit.c:2719
+#: edit.c:2849
+#, c-format
msgid "Scanning tags."
msgstr "Buscando «tags»."
-#: edit.c:3381
+#: edit.c:3550
msgid " Adding"
msgstr "Añadiendo."
@@ -372,28 +381,28 @@ msgstr "Añadiendo."
#. * be called before line = ml_get(), or when this address is no
#. * longer needed. -- Acevedo.
#.
-#: edit.c:3430
+#: edit.c:3599
msgid "-- Searching..."
msgstr "-- Buscando..."
-#: edit.c:3486
+#: edit.c:3655
msgid "Back at original"
msgstr "De vuelta al original."
-#: edit.c:3491
+#: edit.c:3660
msgid "Word from other line"
msgstr "Palabra de otra línea."
-#: edit.c:3496
+#: edit.c:3665
msgid "The only match"
msgstr "La única coincidencia."
-#: edit.c:3555
+#: edit.c:3724
#, c-format
msgid "match %d of %d"
msgstr "coincidencia %d de %d."
-#: edit.c:3558
+#: edit.c:3727
#, c-format
msgid "match %d"
msgstr "coincidencia %d."
@@ -402,74 +411,74 @@ msgstr "coincidencia %d."
# * search for a trailing command.
#. Skip further arguments but do continue to
#. * search for a trailing command.
-#: eval.c:1024
+#: eval.c:1055
#, c-format
msgid "E106: Unknown variable: \"%s\""
msgstr "E106: Variable desconocida: «%s»."
-#: eval.c:1320
+#: eval.c:1351
#, c-format
msgid "E107: Missing braces: %s"
msgstr "E107: Faltan llaves: %s."
-#: eval.c:1435 eval.c:1449
+#: eval.c:1466 eval.c:1480
#, c-format
msgid "E108: No such variable: \"%s\""
msgstr "E108: No existe tal variable: «%s»."
-#: eval.c:1705
+#: eval.c:1736
msgid "E109: Missing ':' after '?'"
msgstr "E109: Falta «:» después de «?»."
-#: eval.c:2327
+#: eval.c:2358
msgid "E110: Missing ')'"
msgstr "E110: Falta un «)»."
-#: eval.c:2389
+#: eval.c:2420
msgid "E111: Missing ']'"
msgstr "E111: Falta un «]»."
-#: eval.c:2466
+#: eval.c:2497
#, c-format
msgid "E112: Option name missing: %s"
msgstr "E112: Falta el nombre de la opción: %s."
-#: eval.c:2484
+#: eval.c:2515
#, c-format
msgid "E113: Unknown option: %s"
msgstr "E113: Opción desconocida: %s."
-#: eval.c:2555
+#: eval.c:2586
#, c-format
msgid "E114: Missing quote: %s"
msgstr "E114: Faltan comillas: %s."
-#: eval.c:2698
+#: eval.c:2729
#, c-format
msgid "E115: Missing quote: %s"
msgstr "E115: Faltan comillas: %s."
-#: eval.c:3054
+#: eval.c:3092
#, c-format
msgid "E116: Invalid arguments for function %s"
msgstr "E116: Argumentos no válidos para la función %s."
-#: eval.c:3083
+#: eval.c:3121
#, c-format
msgid "E117: Unknown function: %s"
msgstr "E117: Función desconocida: %s."
-#: eval.c:3084
+#: eval.c:3122
#, c-format
msgid "E118: Too many arguments for function: %s"