mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
updated for version 7.0122
This commit is contained in:
parent
83bab71b3c
commit
04a09c1975
@ -1,4 +1,4 @@
|
|||||||
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jul 31
|
*todo.txt* For Vim version 7.0aa. Last change: 2005 Aug 01
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -30,11 +30,6 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
|
|||||||
*known-bugs*
|
*known-bugs*
|
||||||
-------------------- Known bugs and current work -----------------------
|
-------------------- Known bugs and current work -----------------------
|
||||||
|
|
||||||
Spell: For Italian we also need to postpone prefixes with a chop string.
|
|
||||||
Or handle upper/lower case specially?
|
|
||||||
|
|
||||||
":w! /tmp/tt" gives ATTENTION message but no prompt.
|
|
||||||
|
|
||||||
Mac unicode patch (Da Woon Jung):
|
Mac unicode patch (Da Woon Jung):
|
||||||
- selecting proportional font breaks display
|
- selecting proportional font breaks display
|
||||||
- UTF-8 text causes display problems. Font replacement causes this.
|
- UTF-8 text causes display problems. Font replacement causes this.
|
||||||
@ -1008,6 +1003,7 @@ Macintosh:
|
|||||||
":w!!" for that.
|
":w!!" for that.
|
||||||
Or ask for permission to overwrite it (if file can be made writable) and
|
Or ask for permission to overwrite it (if file can be made writable) and
|
||||||
restore file to readonly afterwards.
|
restore file to readonly afterwards.
|
||||||
|
Overwriting a file for which a swap file exists is similar issue.
|
||||||
7 When compiled with "xterm_clipboard", startup can be slower and might get
|
7 When compiled with "xterm_clipboard", startup can be slower and might get
|
||||||
error message for invalid $DISPLAY. Try connecting to the X server in the
|
error message for invalid $DISPLAY. Try connecting to the X server in the
|
||||||
background (forked), so that Vim starts up quicker? Connect as soon as
|
background (forked), so that Vim starts up quicker? Connect as soon as
|
||||||
@ -1619,7 +1615,6 @@ Built-in script language:
|
|||||||
.vim file. Problem: distribution.
|
.vim file. Problem: distribution.
|
||||||
3. Use a cache directory for each user. How to recognize which cached
|
3. Use a cache directory for each user. How to recognize which cached
|
||||||
file belongs to a sourced script?
|
file belongs to a sourced script?
|
||||||
7 Add "m" flag to search() and searchpair() function to set the '' mark.
|
|
||||||
7 Add argument to winwidth() to subtract the space taken by 'foldcolumn',
|
7 Add argument to winwidth() to subtract the space taken by 'foldcolumn',
|
||||||
signs and/or 'number'.
|
signs and/or 'number'.
|
||||||
8 Add functions:
|
8 Add functions:
|
||||||
@ -1651,7 +1646,6 @@ Built-in script language:
|
|||||||
virtualmode() add argument to obtain whether "$" was used in
|
virtualmode() add argument to obtain whether "$" was used in
|
||||||
Visual block mode.
|
Visual block mode.
|
||||||
getacp() Win32: get codepage (Glenn Maynard)
|
getacp() Win32: get codepage (Glenn Maynard)
|
||||||
getbufline() get line from any buffer
|
|
||||||
deletebufline() delete line in any buffer
|
deletebufline() delete line in any buffer
|
||||||
appendbufline() append line in any buffer
|
appendbufline() append line in any buffer
|
||||||
libcall() Allow more than one argument.
|
libcall() Allow more than one argument.
|
||||||
@ -3207,13 +3201,6 @@ Various improvements:
|
|||||||
6 Add ":timer" command, to set a command to be executed at a certain
|
6 Add ":timer" command, to set a command to be executed at a certain
|
||||||
interval, or once after some time has elapsed. (Aaron)
|
interval, or once after some time has elapsed. (Aaron)
|
||||||
8 Add ":confirm" handling in open_exfile(), for when file already exists.
|
8 Add ":confirm" handling in open_exfile(), for when file already exists.
|
||||||
8 Use confirm/dialog stuff to ask the user, when a file has changed outside
|
|
||||||
of Vim, if he wants to reload it. Triggered when focus gained, after
|
|
||||||
shell command, when entering another buffer, etc..
|
|
||||||
Also do this when editing a new file, and another application creates
|
|
||||||
the file before doing ":w" in Vim.
|
|
||||||
Also check if the file protection has changed. When checking a file into
|
|
||||||
RCS it is made read-only, when checking out it is made read-write.
|
|
||||||
8 When quitting with changed files, make the dialog list the changed file
|
8 When quitting with changed files, make the dialog list the changed file
|
||||||
and allow "write all", "discard all", "write some". The last one would
|
and allow "write all", "discard all", "write some". The last one would
|
||||||
then ask "write" or "discard" for each changed file. Patch in HierAssist
|
then ask "write" or "discard" for each changed file. Patch in HierAssist
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jul 29
|
*version7.txt* For Vim version 7.0aa. Last change: 2005 Aug 01
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -62,6 +62,9 @@ In a |literal-string| a single quote can be doubled to get one.
|
|||||||
":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
|
":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
|
||||||
results in "a'b".
|
results in "a'b".
|
||||||
|
|
||||||
|
When overwriting a file with ":w! fname" there was no warning for when "fname"
|
||||||
|
was being edited by another Vim. Vim now gives an error message |E768|.
|
||||||
|
|
||||||
|
|
||||||
Minor incompatibilities:
|
Minor incompatibilities:
|
||||||
|
|
||||||
|
@ -2582,11 +2582,11 @@ check_overwrite(eap, buf, fname, ffname, other)
|
|||||||
|| ((buf->b_flags & BF_NEW)
|
|| ((buf->b_flags & BF_NEW)
|
||||||
&& vim_strchr(p_cpo, CPO_OVERNEW) == NULL)
|
&& vim_strchr(p_cpo, CPO_OVERNEW) == NULL)
|
||||||
|| (buf->b_flags & BF_READERR))
|
|| (buf->b_flags & BF_READERR))
|
||||||
&& !eap->forceit
|
|
||||||
&& !eap->append
|
|
||||||
&& !p_wa
|
&& !p_wa
|
||||||
&& vim_fexists(ffname))
|
&& vim_fexists(ffname))
|
||||||
{
|
{
|
||||||
|
if (!eap->forceit && !eap->append)
|
||||||
|
{
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
/* with UNIX it is possible to open a directory */
|
/* with UNIX it is possible to open a directory */
|
||||||
if (mch_isdir(ffname))
|
if (mch_isdir(ffname))
|
||||||
@ -2612,6 +2612,55 @@ check_overwrite(eap, buf, fname, ffname, other)
|
|||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* For ":w! filename" check that no swap file exists for "filename". */
|
||||||
|
if (other && !emsg_silent)
|
||||||
|
{
|
||||||
|
char_u dir[MAXPATHL];
|
||||||
|
char_u *p;
|
||||||
|
int r;
|
||||||
|
char_u *swapname;
|
||||||
|
|
||||||
|
/* We only try the first entry in 'directory', without checking if
|
||||||
|
* it's writable. If the "." directory is not writable the write
|
||||||
|
* will probably fail anyway.
|
||||||
|
* Use 'shortname' of the current buffer, since there is no buffer
|
||||||
|
* for the written file. */
|
||||||
|
if (*p_dir == NUL)
|
||||||
|
STRCPY(dir, ".");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
p = p_dir;
|
||||||
|
copy_option_part(&p, dir, MAXPATHL, ",");
|
||||||
|
}
|
||||||
|
swapname = makeswapname(fname, ffname, curbuf, dir);
|
||||||
|
r = vim_fexists(swapname);
|
||||||
|
vim_free(swapname);
|
||||||
|
if (r)
|
||||||
|
{
|
||||||
|
#if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG)
|
||||||
|
if (p_confirm || cmdmod.confirm)
|
||||||
|
{
|
||||||
|
char_u buff[IOSIZE];
|
||||||
|
|
||||||
|
dialog_msg(buff,
|
||||||
|
_("Swap file \"%s\" exists, overwrite anyway?"),
|
||||||
|
swapname);
|
||||||
|
if (vim_dialog_yesno(VIM_QUESTION, NULL, buff, 2)
|
||||||
|
!= VIM_YES)
|
||||||
|
return FAIL;
|
||||||
|
eap->forceit = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
EMSG2(_("E768: Swap file exists: %s (:silent! overrides)"),
|
||||||
|
swapname);
|
||||||
|
return FAIL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,7 +230,6 @@ static bhdr_T *ml_new_data __ARGS((memfile_T *, int, int));
|
|||||||
static bhdr_T *ml_new_ptr __ARGS((memfile_T *));
|
static bhdr_T *ml_new_ptr __ARGS((memfile_T *));
|
||||||
static bhdr_T *ml_find_line __ARGS((buf_T *, linenr_T, int));
|
static bhdr_T *ml_find_line __ARGS((buf_T *, linenr_T, int));
|
||||||
static int ml_add_stack __ARGS((buf_T *));
|
static int ml_add_stack __ARGS((buf_T *));
|
||||||
static char_u *makeswapname __ARGS((buf_T *, char_u *));
|
|
||||||
static void ml_lineadd __ARGS((buf_T *, int));
|
static void ml_lineadd __ARGS((buf_T *, int));
|
||||||
static int b0_magic_wrong __ARGS((ZERO_BL *));
|
static int b0_magic_wrong __ARGS((ZERO_BL *));
|
||||||
#ifdef CHECK_INODE
|
#ifdef CHECK_INODE
|
||||||
@ -3384,10 +3383,14 @@ ml_lineadd(buf, count)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* make swap file name out of the file name and a directory name
|
* Make swap file name out of the file name and a directory name.
|
||||||
|
* Returns pointer to allocated memory or NULL.
|
||||||
*/
|
*/
|
||||||
static char_u *
|
/*ARGSUSED*/
|
||||||
makeswapname(buf, dir_name)
|
char_u *
|
||||||
|
makeswapname(fname, ffname, buf, dir_name)
|
||||||
|
char_u *fname;
|
||||||
|
char_u *ffname;
|
||||||
buf_T *buf;
|
buf_T *buf;
|
||||||
char_u *dir_name;
|
char_u *dir_name;
|
||||||
{
|
{
|
||||||
@ -3398,7 +3401,7 @@ makeswapname(buf, dir_name)
|
|||||||
if (after_pathsep(dir_name, s) && s[-1] == s[-2])
|
if (after_pathsep(dir_name, s) && s[-1] == s[-2])
|
||||||
{ /* Ends with '//', Use Full path */
|
{ /* Ends with '//', Use Full path */
|
||||||
r = NULL;
|
r = NULL;
|
||||||
if ((s = make_percent_swname(dir_name, buf->b_fname)) != NULL)
|
if ((s = make_percent_swname(dir_name, fname)) != NULL)
|
||||||
{
|
{
|
||||||
r = modname(s, (char_u *)".swp", FALSE);
|
r = modname(s, (char_u *)".swp", FALSE);
|
||||||
vim_free(s);
|
vim_free(s);
|
||||||
@ -3415,9 +3418,9 @@ makeswapname(buf, dir_name)
|
|||||||
#endif
|
#endif
|
||||||
#ifdef RISCOS
|
#ifdef RISCOS
|
||||||
/* Avoid problems if fname has special chars, eg <Wimp$Scrap> */
|
/* Avoid problems if fname has special chars, eg <Wimp$Scrap> */
|
||||||
buf->b_ffname,
|
ffname,
|
||||||
#else
|
#else
|
||||||
buf->b_fname,
|
fname,
|
||||||
#endif
|
#endif
|
||||||
(char_u *)
|
(char_u *)
|
||||||
#if defined(VMS) || defined(RISCOS)
|
#if defined(VMS) || defined(RISCOS)
|
||||||
@ -3495,6 +3498,7 @@ get_file_in_dir(fname, dname)
|
|||||||
* Find out what name to use for the swap file for buffer 'buf'.
|
* Find out what name to use for the swap file for buffer 'buf'.
|
||||||
*
|
*
|
||||||
* Several names are tried to find one that does not exist
|
* Several names are tried to find one that does not exist
|
||||||
|
* Returns the name in allocated memory or NULL.
|
||||||
*
|
*
|
||||||
* Note: If BASENAMELEN is not correct, you will get error messages for
|
* Note: If BASENAMELEN is not correct, you will get error messages for
|
||||||
* not being able to open the swapfile
|
* not being able to open the swapfile
|
||||||
@ -3547,7 +3551,7 @@ findswapname(buf, dirp, old_fname)
|
|||||||
if (dir_name == NULL) /* out of memory */
|
if (dir_name == NULL) /* out of memory */
|
||||||
fname = NULL;
|
fname = NULL;
|
||||||
else
|
else
|
||||||
fname = makeswapname(buf, dir_name);
|
fname = makeswapname(buf->b_fname, buf->b_ffname, buf, dir_name);
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@ -3649,7 +3653,8 @@ findswapname(buf, dirp, old_fname)
|
|||||||
{
|
{
|
||||||
buf->b_shortname = TRUE;
|
buf->b_shortname = TRUE;
|
||||||
vim_free(fname);
|
vim_free(fname);
|
||||||
fname = makeswapname(buf, dir_name);
|
fname = makeswapname(buf->b_fname, buf->b_ffname,
|
||||||
|
buf, dir_name);
|
||||||
continue; /* try again with b_shortname set */
|
continue; /* try again with b_shortname set */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3719,7 +3724,8 @@ findswapname(buf, dirp, old_fname)
|
|||||||
{
|
{
|
||||||
buf->b_shortname = TRUE;
|
buf->b_shortname = TRUE;
|
||||||
vim_free(fname);
|
vim_free(fname);
|
||||||
fname = makeswapname(buf, dir_name);
|
fname = makeswapname(buf->b_fname, buf->b_ffname,
|
||||||
|
buf, dir_name);
|
||||||
continue; /* try again with '.' replaced with '_' */
|
continue; /* try again with '.' replaced with '_' */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +24,7 @@ int ml_delete __ARGS((linenr_T lnum, int message));
|
|||||||
void ml_setmarked __ARGS((linenr_T lnum));
|
void ml_setmarked __ARGS((linenr_T lnum));
|
||||||
linenr_T ml_firstmarked __ARGS((void));
|
linenr_T ml_firstmarked __ARGS((void));
|
||||||
void ml_clearmarked __ARGS((void));
|
void ml_clearmarked __ARGS((void));
|
||||||
|
char_u *makeswapname __ARGS((char_u *fname, char_u *ffname, buf_T *buf, char_u *dir_name));
|
||||||
char_u *get_file_in_dir __ARGS((char_u *fname, char_u *dname));
|
char_u *get_file_in_dir __ARGS((char_u *fname, char_u *dname));
|
||||||
void ml_setflags __ARGS((buf_T *buf));
|
void ml_setflags __ARGS((buf_T *buf));
|
||||||
long ml_find_line_or_offset __ARGS((buf_T *buf, linenr_T lnum, long *offp));
|
long ml_find_line_or_offset __ARGS((buf_T *buf, linenr_T lnum, long *offp));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user