0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

updated for version 7.0212

This commit is contained in:
Bram Moolenaar
2006-03-02 22:40:52 +00:00
parent 261bfeab3e
commit b475fb917b
5 changed files with 194 additions and 87 deletions

View File

@@ -393,6 +393,7 @@ os_risc.txt:
os_win32.txt:
touch os_win32.txt
# Note that $< works with GNU make while $> works for BSD make.
vim-fr.UTF-8.1: vim-fr.1
iconv -f latin1 -t utf-8 $< >$@

View File

@@ -1,4 +1,4 @@
*os_vms.txt* For Vim version 7.0aa. Last change: 2005 Jul 12
*os_vms.txt* For Vim version 7.0aa. Last change: 2006 Mar 02
VIM REFERENCE MANUAL
@@ -56,11 +56,14 @@ To use the precompiled binary version, you need one of these archives:
vim-XX-exe-vax-gui.zip VAX GUI executables
vim-XX-exe-vax-term.zip VAX console executables
and of course
and of course (optional)
vim-XX-runtime.zip runtime files
The binary archives contain: vim.exe, ctags.exe, xxd.exe files.
For GTK executables you will need GTKLIB that is available for
Alpha and IA64 platform.
==============================================================================
3. Compiling *vms-compiling*
@@ -121,10 +124,10 @@ Vim uses a special directory structure to hold the document and runtime files:
|- vim57
|----- doc
|----- syntax
|- vim60
|- vim62
|----- doc
|----- syntax
|- vim61
|- vim64
|----- doc
|----- syntax
vimrc (system rc files)
@@ -239,6 +242,17 @@ and to the SYS$STARTUP:SYLOGIN.COM >
It will set up a normal Vim work environment for every user on the system.
IMPORTANT: Vim on OpenVMS (and on other case insensitive system) command line
parameters are assumed to be lowecase. In order to indicate that a command
line parameter is uppercase "/" sign must be used.
Examples:
>
vim -R filename ! means: -r List swap files and exit
vim -/r filename ! means: -R Readonly mode (like "view")
vim -u <vimrc> ! means: -u Use <vimrc> instead of any .vimrc
vim -/u <gvimrc> ! means: -U Use <gvimrc> instead of any .gvimrc
==============================================================================
7. GUI mode questions *vms-gui*
@@ -653,7 +667,10 @@ start it with: >
9. VMS related changes *vms-changes*
Version 7.0
Version 7
- Improved low level char input (affects just console mode)
Version 6.4 (2005 Oct 15)
- GTKLIB and Vim build on IA64
- colors in terminal mode
- syntax highlighting in terminal mode

View File

@@ -1,7 +1,7 @@
INSTALLvms.txt - Installation of Vim on OpenVMS
Maintainer: Zoltan Arpadffy <arpadffy@polarhome.com>
Last change: 2005 Jul 12
Last change: 2006 Mar 02
This file contains instructions for compiling Vim on Openvms.
If you already have an executable version of Vim, you don't need this.
@@ -143,7 +143,6 @@ from CVS mirror ftp://ftp.polarhome.com/pub/cvs/SOURCE/
Uncommented - build without support.
Default : Uncommented
Parameter name : VIM_XIM
Description : X Input Method. For entering special languages
like chinese and Japanese. Please define just
@@ -304,9 +303,20 @@ perl_env :
You need also the OpenVMS Porting Library:
http://www.openvms.compaq.com/openvms/products/ips/porting.html
Source code for GTK and porting library that is used to build
VMS executables at polarhome.com are at
http://www.polarhome.com/vim/files/source/vms/
Enable GTK in make_vms.mms file with GTK = YES
Define GTK_ROOT that points to your GTK root directory.
You will need to edit GTKDIR variable in order to point
to GTK header files and libraries.
GTK_DIR = ALPHA$DKA0:[GTK128.]
".]" at the end is very important.
Build it as normally.
Used sharable images are:

View File

@@ -4453,6 +4453,9 @@ ex_buffer_all(eap)
|| ((cmdmod.split & WSP_VERT)
? wp->w_height + wp->w_status_height < Rows - p_ch
: wp->w_width != Columns)
#endif
#ifdef FEAT_WINDOWS
|| (had_tab > 0 && wp != firstwin)
#endif
)
{
@@ -4460,6 +4463,7 @@ ex_buffer_all(eap)
#ifdef FEAT_AUTOCMD
wpnext = firstwin; /* just in case an autocommand does
something strange with windows */
tpnext = first_tabpage; /* start all over...*/
open_wins = 0;
#endif
}
@@ -4471,12 +4475,6 @@ ex_buffer_all(eap)
/* Without the ":tab" modifier only do the current tab page. */
if (had_tab == 0 || tpnext == NULL)
break;
# ifdef FEAT_AUTOCMD
/* check if autocommands removed the next tab page */
if (!valid_tabpage(tpnext))
tpnext = first_tabpage; /* start all over...*/
# endif
goto_tabpage_tp(tpnext);
}
#endif
@@ -4500,14 +4498,28 @@ ex_buffer_all(eap)
if ((!all && buf->b_ml.ml_mfp == NULL) || !buf->b_p_bl)
continue;
/* Check if this buffer already has a window */
for (wp = firstwin; wp != NULL; wp = wp->w_next)
if (wp->w_buffer == buf)
break;
/* If the buffer already has a window, move it */
if (wp != NULL)
win_move_after(wp, curwin);
else if (split_ret == OK)
#ifdef FEAT_WINDOWS
if (had_tab != 0)
{
/* With the ":tab" modifier don't move the window. */
if (buf->b_nwindows > 0)
wp = lastwin; /* buffer has a window, skip it */
else
wp = NULL;
}
else
#endif
{
/* Check if this buffer already has a window */
for (wp = firstwin; wp != NULL; wp = wp->w_next)
if (wp->w_buffer == buf)
break;
/* If the buffer already has a window, move it */
if (wp != NULL)
win_move_after(wp, curwin);
}
if (wp == NULL && split_ret == OK)
{
/* Split the window and put the buffer in it */
p_ea_save = p_ea;

View File

@@ -904,8 +904,8 @@ static int spell_edit_score_limit __ARGS((slang_T *slang, char_u *badword, char_
#ifdef FEAT_MBYTE
static int spell_edit_score_limit_w __ARGS((slang_T *slang, char_u *badword, char_u *goodword, int limit));
#endif
static void dump_word __ARGS((slang_T *slang, char_u *word, int round, int flags, linenr_T lnum));
static linenr_T dump_prefixes __ARGS((slang_T *slang, char_u *word, int round, int flags, linenr_T startlnum));
static void dump_word __ARGS((slang_T *slang, char_u *word, char_u *pat, int *dir, int round, int flags, linenr_T lnum));
static linenr_T dump_prefixes __ARGS((slang_T *slang, char_u *word, char_u *pat, int *dir, int round, int flags, linenr_T startlnum));
static buf_T *open_spellbuf __ARGS((void));
static void close_spellbuf __ARGS((buf_T *buf));
@@ -14808,16 +14808,48 @@ pop:
#define DUMPFLAG_KEEPCASE 1 /* round 2: keep-case tree */
#define DUMPFLAG_COUNT 2 /* include word count */
#define DUMPFLAG_ICASE 4 /* ignore case when finding matches */
/*
* ":spelldump"
*/
/*ARGSUSED*/
void
ex_spelldump(eap)
exarg_T *eap;
{
buf_T *buf = curbuf;
if (no_spell_checking(curwin))
return;
/* Create a new empty buffer by splitting the window. */
do_cmdline_cmd((char_u *)"new");
if (!bufempty() || !buf_valid(buf))
return;
spell_dump_compl(buf, NULL, 0, NULL, eap->forceit ? DUMPFLAG_COUNT : 0);
/* Delete the empty line that we started with. */
if (curbuf->b_ml.ml_line_count > 1)
ml_delete(curbuf->b_ml.ml_line_count, FALSE);
redraw_later(NOT_VALID);
}
/*
* Go through all possible words and:
* 1. When "pat" is NULL: dump a list of all words in the current buffer.
* "ic" and "dir" are not used.
* 2. When "pat" is not NULL: add matching words to insert mode completion.
*/
void
spell_dump_compl(buf, pat, ic, dir, dumpflags_arg)
buf_T *buf; /* buffer with spell checking */
char_u *pat; /* leading part of the word */
int ic; /* ignore case */
int *dir; /* direction for adding matches */
int dumpflags_arg; /* DUMPFLAG_* */
{
langp_T *lp;
slang_T *slang;
idx_T arridx[MAXWLEN];
@@ -14835,15 +14867,11 @@ ex_spelldump(eap)
int do_region = TRUE; /* dump region names and numbers */
char_u *p;
int lpi;
int dumpflags;
int dumpflags = dumpflags_arg;
int patlen;
if (no_spell_checking(curwin))
return;
/* Create a new empty buffer by splitting the window. */
do_cmdline_cmd((char_u *)"new");
if (!bufempty() || !buf_valid(buf))
return;
if (ic)
dumpflags |= DUMPFLAG_ICASE;
/* Find out if we can support regions: All languages must support the same
* regions or none at all. */
@@ -14865,8 +14893,11 @@ ex_spelldump(eap)
if (do_region && region_names != NULL)
{
vim_snprintf((char *)IObuff, IOSIZE, "/regions=%s", region_names);
ml_append(lnum++, IObuff, (colnr_T)0, FALSE);
if (pat == NULL)
{
vim_snprintf((char *)IObuff, IOSIZE, "/regions=%s", region_names);
ml_append(lnum++, IObuff, (colnr_T)0, FALSE);
}
}
else
do_region = FALSE;
@@ -14881,8 +14912,18 @@ ex_spelldump(eap)
if (slang->sl_fbyts == NULL) /* reloading failed */
continue;
vim_snprintf((char *)IObuff, IOSIZE, "# file: %s", slang->sl_fname);
ml_append(lnum++, IObuff, (colnr_T)0, FALSE);
if (pat == NULL)
{
vim_snprintf((char *)IObuff, IOSIZE, "# file: %s", slang->sl_fname);
ml_append(lnum++, IObuff, (colnr_T)0, FALSE);
}
/* When matching with a pattern and there are no prefixes only use
* parts of the tree that match "pat". */
if (pat != NULL && slang->sl_pbyts == NULL)
patlen = STRLEN(pat);
else
patlen = 0;
/* round 1: case-folded tree
* round 2: keep-case tree */
@@ -14890,26 +14931,24 @@ ex_spelldump(eap)
{
if (round == 1)
{
dumpflags = 0;
dumpflags &= ~DUMPFLAG_KEEPCASE;
byts = slang->sl_fbyts;
idxs = slang->sl_fidxs;
}
else
{
dumpflags = DUMPFLAG_KEEPCASE;
dumpflags |= DUMPFLAG_KEEPCASE;
byts = slang->sl_kbyts;
idxs = slang->sl_kidxs;
}
if (byts == NULL)
continue; /* array is empty */
if (eap->forceit)
dumpflags |= DUMPFLAG_COUNT;
depth = 0;
arridx[0] = 0;
curi[0] = 1;
while (depth >= 0 && !got_int)
while (depth >= 0 && !got_int
&& (pat == NULL || !compl_interrupted))
{
if (curi[depth] > byts[arridx[depth]])
{
@@ -14945,13 +14984,17 @@ ex_spelldump(eap)
* when it's the first one. */
c = (unsigned)flags >> 24;
if (c == 0 || curi[depth] == 2)
dump_word(slang, word, dumpflags,
flags, lnum++);
{
dump_word(slang, word, pat, dir,
dumpflags, flags, lnum);
if (pat == NULL)
++lnum;
}
/* Apply the prefix, if there is one. */
if (c != 0)
lnum = dump_prefixes(slang, word, dumpflags,
flags, lnum);
lnum = dump_prefixes(slang, word, pat, dir,
dumpflags, flags, lnum);
}
}
else
@@ -14960,26 +15003,30 @@ ex_spelldump(eap)
word[depth++] = c;
arridx[depth] = idxs[n];
curi[depth] = 1;
/* Check if this characters matches with the pattern.
* If not skip the whole tree below it.
* TODO ignorecase
* TODO: multi-byte */
if (depth <= patlen && STRNCMP(word, pat, depth) != 0)
--depth;
}
}
}
}
}
/* Delete the empty line that we started with. */
if (curbuf->b_ml.ml_line_count > 1)
ml_delete(curbuf->b_ml.ml_line_count, FALSE);
redraw_later(NOT_VALID);
}
/*
* Dump one word: apply case modifications and append a line to the buffer.
* When "lnum" is zero add insert mode completion.
*/
static void
dump_word(slang, word, dumpflags, flags, lnum)
dump_word(slang, word, pat, dir, dumpflags, flags, lnum)
slang_T *slang;
char_u *word;
char_u *pat;
int *dir;
int dumpflags;
int flags;
linenr_T lnum;
@@ -15007,50 +15054,66 @@ dump_word(slang, word, dumpflags, flags, lnum)
}
tw = p;
/* Add flags and regions after a slash. */
if ((flags & (WF_BANNED | WF_RARE | WF_REGION)) || keepcap)
if (pat == NULL)
{
STRCPY(badword, p);
STRCAT(badword, "/");
if (keepcap)
STRCAT(badword, "=");
if (flags & WF_BANNED)
STRCAT(badword, "!");
else if (flags & WF_RARE)
STRCAT(badword, "?");
if (flags & WF_REGION)
for (i = 0; i < 7; ++i)
if (flags & (0x10000 << i))
sprintf((char *)badword + STRLEN(badword), "%d", i + 1);
p = badword;
}
if (dumpflags & DUMPFLAG_COUNT)
{
hashitem_T *hi;
/* Include the word count for ":spelldump!". */
hi = hash_find(&slang->sl_wordcount, tw);
if (!HASHITEM_EMPTY(hi))
/* Add flags and regions after a slash. */
if ((flags & (WF_BANNED | WF_RARE | WF_REGION)) || keepcap)
{
vim_snprintf((char *)IObuff, IOSIZE, "%s\t%d",
tw, HI2WC(hi)->wc_count);
p = IObuff;
STRCPY(badword, p);
STRCAT(badword, "/");
if (keepcap)
STRCAT(badword, "=");
if (flags & WF_BANNED)
STRCAT(badword, "!");
else if (flags & WF_RARE)
STRCAT(badword, "?");
if (flags & WF_REGION)
for (i = 0; i < 7; ++i)
if (flags & (0x10000 << i))
sprintf((char *)badword + STRLEN(badword), "%d", i + 1);
p = badword;
}
}
ml_append(lnum, p, (colnr_T)0, FALSE);
if (dumpflags & DUMPFLAG_COUNT)
{
hashitem_T *hi;
/* Include the word count for ":spelldump!". */
hi = hash_find(&slang->sl_wordcount, tw);
if (!HASHITEM_EMPTY(hi))
{
vim_snprintf((char *)IObuff, IOSIZE, "%s\t%d",
tw, HI2WC(hi)->wc_count);
p = IObuff;
}
}
ml_append(lnum, p, (colnr_T)0, FALSE);
}
else
{
/* TODO: ignore case, multi-byte */
if (STRNCMP(p, pat, STRLEN(pat)) == 0
&& ins_compl_add_infercase(p, (int)STRLEN(p),
dumpflags & DUMPFLAG_ICASE,
NULL, *dir, 0) == OK)
/* if dir was BACKWARD then honor it just once */
*dir = FORWARD;
}
}
/*
* For ":spelldump": Find matching prefixes for "word". Prepend each to
* "word" and append a line to the buffer.
* When "lnum" is zero add insert mode completion.
* Return the updated line number.
*/
static linenr_T
dump_prefixes(slang, word, dumpflags, flags, startlnum)
dump_prefixes(slang, word, pat, dir, dumpflags, flags, startlnum)
slang_T *slang;
char_u *word; /* case-folded word */
char_u *pat;
int *dir;
int dumpflags;
int flags; /* flags with prefix ID */
linenr_T startlnum;
@@ -15117,9 +15180,11 @@ dump_prefixes(slang, word, dumpflags, flags, startlnum)
if (c != 0)
{
vim_strncpy(prefix + depth, word, MAXWLEN - depth - 1);
dump_word(slang, prefix, dumpflags,
dump_word(slang, prefix, pat, dir, dumpflags,
(c & WF_RAREPFX) ? (flags | WF_RARE)
: flags, lnum++);
: flags, lnum);
if (lnum != 0)
++lnum;
}
/* Check for prefix that matches the word when the
@@ -15133,9 +15198,11 @@ dump_prefixes(slang, word, dumpflags, flags, startlnum)
{
vim_strncpy(prefix + depth, word_up,
MAXWLEN - depth - 1);
dump_word(slang, prefix, dumpflags,
dump_word(slang, prefix, pat, dir, dumpflags,
(c & WF_RAREPFX) ? (flags | WF_RARE)
: flags, lnum++);
: flags, lnum);
if (lnum != 0)
++lnum;
}
}
}