0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

updated for version 7.0116

This commit is contained in:
Bram Moolenaar
2005-07-25 20:42:36 +00:00
parent c013cb66a6
commit 027436338b
24 changed files with 249 additions and 509 deletions

View File

@@ -734,7 +734,8 @@ notags:
- if exist tags del tags
clean:
- $(DEL_TREE) $(OUTDIR) auto
- if exist $(OUTDIR)/nul $(DEL_TREE) $(OUTDIR)
- if exist auto/nul $(DEL_TREE) auto
- if exist *.obj del *.obj
- if exist $(VIM).exe del $(VIM).exe
- if exist $(VIM).ilk del $(VIM).ilk

View File

@@ -8937,6 +8937,8 @@ file_pat_to_reg_pat(pat, pat_end, allow_dirs, no_bslash)
case '*':
reg_pat[i++] = '.';
reg_pat[i++] = '*';
while (p[1] == '*') /* "**" matches like "*" */
++p;
break;
case '.':
#ifdef RISCOS

View File

@@ -1175,6 +1175,9 @@ gui_position_components(total_width)
--hold_gui_events;
}
/*
* Get the width of the widgets and decorations to the side of the text area.
*/
int
gui_get_base_width()
{
@@ -1188,6 +1191,9 @@ gui_get_base_width()
return base_width;
}
/*
* Get the height of the widgets and decorations above and below the text area.
*/
int
gui_get_base_height()
{
@@ -1331,6 +1337,8 @@ gui_get_shellsize()
/*
* Set the size of the Vim shell according to Rows and Columns.
* If "fit_to_display" is TRUE then the size may be reduced to fit the window
* on the screen.
*/
/*ARGSUSED*/
void

View File

@@ -318,8 +318,9 @@ typedef struct Gui
scrollbar_T bottom_sbar; /* Bottom scrollbar */
int which_scrollbars[3];/* Which scrollbar boxes are active? */
int prev_wrap; /* For updating the horizontal scrollbar */
int char_width; /* Width of char in pixels */
int char_height; /* Height of char in pixels + 'linespace' */
int char_width; /* Width of char cell in pixels */
int char_height; /* Height of char cell in pixels, includes
'linespace' */
int char_ascent; /* Ascent of char in pixels */
int border_width; /* Width of our border around text area */
int border_offset; /* Total pixel offset for all borders */

View File

@@ -1412,8 +1412,11 @@ mch_set_mouse_shape (int shape)//{{{
}//}}}
#endif
/*
* Adjust gui.char_height (after 'linespace' was changed).
*/
int
gui_mch_adjust_charsize ()//{{{
gui_mch_adjust_charheight ()//{{{
{
QFont f(*(gui.current_font));
QFontMetrics fm(f);

View File

@@ -3936,8 +3936,11 @@ gui_mch_init_font(font_name, fontset)
}
/*
* Adjust gui.char_height (after 'linespace' was changed).
*/
int
gui_mch_adjust_charsize()
gui_mch_adjust_charheight()
{
FontInfo font_info;
@@ -4092,19 +4095,6 @@ gui_mch_set_font(font)
TextFont(font & 0xFFFF);
}
#if 0 /* not used */
/*
* Return TRUE if the two fonts given are equivalent.
*/
int
gui_mch_same_font(f1, f2)
GuiFont f1;
GuiFont f2;
{
return f1 == f2;
}
#endif
/*
* If a font is not going to be used, free its structure.
*/
@@ -5107,10 +5097,7 @@ gui_mch_enable_menu(flag)
int flag;
{
/*
* Menu is always active in itself
* (maybe we should only disable a vim menu
* and keep standard menu)
*
* Menu is always active.
*/
}
@@ -5122,9 +5109,7 @@ gui_mch_set_menu_pos(x, y, w, h)
int h;
{
/*
* The menu is always at the top of the screen
* Maybe a futur version will permit a menu in the window
*
* The menu is always at the top of the screen.
*/
}

View File

@@ -3004,8 +3004,11 @@ gui_mch_init_font(char_u *vim_font_name, int fontset)
return( OK );
}
/*
* Adjust gui.char_height (after 'linespace' was changed).
*/
int
gui_mch_adjust_charsize(void)
gui_mch_adjust_charheight(void)
{
FontQueryInfo info;

View File

@@ -1022,8 +1022,11 @@ gui_mch_init_font(char_u *font_name, int fontset)
return OK;
}
/*
* Adjust gui.char_height (after 'linespace' was changed).
*/
int
gui_mch_adjust_charsize()
gui_mch_adjust_charheight()
{
return FAIL;
}
@@ -1083,17 +1086,6 @@ gui_mch_set_font(GuiFont font)
}
}
#if 0 /* not used */
/*
* Return TRUE if the two fonts given are equivalent.
*/
int
gui_mch_same_font(GuiFont f1, GuiFont f2)
{
return f1 == f2;
}
#endif
/*
* If a font is not going to be used, free its structure.
*/

View File

@@ -1113,7 +1113,6 @@ gui_mch_set_text_area_pos(int x, int y, int w, int h)
oldx = x;
oldy = y;
}
}
@@ -1141,7 +1140,8 @@ gui_mch_set_scrollbar_pos(
int w,
int h)
{
SetWindowPos(sb->id, NULL, x, y, w, h, SWP_NOZORDER | SWP_NOACTIVATE | SWP_SHOWWINDOW);
SetWindowPos(sb->id, NULL, x, y, w, h,
SWP_NOZORDER | SWP_NOACTIVATE | SWP_SHOWWINDOW);
}
void
@@ -1194,17 +1194,20 @@ GetFontSize(GuiFont font)
gui.char_height = tm.tmHeight
#ifndef MSWIN16_FASTTEXT
+ p_linespace
+ p_linespace
#endif
;
;
SelectFont(hdc, hfntOld);
ReleaseDC(hwnd, hdc);
}
/*
* Adjust gui.char_height (after 'linespace' was changed).
*/
int
gui_mch_adjust_charsize(void)
gui_mch_adjust_charheight(void)
{
GetFontSize(gui.norm_font);
return OK;

View File

@@ -7107,7 +7107,9 @@ set_num_option(opt_idx, varp, value, errbuf, errbuflen, opt_flags)
#ifdef FEAT_GUI
else if (pp == &p_linespace)
{
if (gui.in_use && gui_mch_adjust_charsize() == OK)
/* Recompute gui.char_height and resize the Vim window to keep the
* same number of lines. */
if (gui.in_use && gui_mch_adjust_charheight() == OK)
gui_set_shellsize(FALSE, FALSE);
}
#endif

View File

@@ -55,7 +55,7 @@ mch_chdir(char *p_name)
* in `path'. Called by mch_expandpath().
* "path" has backslashes before chars that are not to be expanded.
*/
int
static int
mac_expandpath(
garray_T *gap,
char_u *path,
@@ -109,8 +109,7 @@ mac_expandpath(
{
if (e)
break;
else
s = p + 1;
s = p + 1;
}
/* should use WILCARDLIST but what about ` */
/* if (vim_strchr((char_u *)"*?[{~$", *path) != NULL)*/
@@ -134,12 +133,10 @@ mac_expandpath(
/* now we have one wildcard component between s and e */
*e = NUL;
#if 1
dany = *s;
*s = NUL;
backslash_halve(buf);
*s = dany;
#endif
/* convert the file pattern to a regexp pattern */
pat = file_pat_to_reg_pat(s, e, NULL, FALSE);
@@ -207,7 +204,7 @@ mac_expandpath(
gMyCPB.hFileInfo.ioFDirIndex = index;
gMyCPB.hFileInfo.ioDirID = dirID;
gErr = PBGetCatInfo(&gMyCPB,false);
gErr = PBGetCatInfo(&gMyCPB, false);
if (gErr == noErr)
{
@@ -237,12 +234,14 @@ mac_expandpath(
addfile(gap, buf, flags);
}
}
if ((gMyCPB.hFileInfo.ioFlAttrib & ioDirMask) !=0 )
#if 0 /* What is this supposed to do? */
if ((gMyCPB.hFileInfo.ioFlAttrib & ioDirMask) != 0)
{
}
else
{
}
#endif
}
index++;
}
@@ -254,7 +253,7 @@ mac_expandpath(
do
{
gMyHPBlock.volumeParam.ioNamePtr = (char_u *) dirname;
gMyHPBlock.volumeParam.ioVRefNum =0;
gMyHPBlock.volumeParam.ioVRefNum = 0;
gMyHPBlock.volumeParam.ioVolIndex = index;
gErr = PBHGetVInfo (&gMyHPBlock,false);
@@ -291,164 +290,6 @@ mac_expandpath(
return gap->ga_len - start_len;
}
#ifdef USE_UNIXFILENAME
static int
pstrcmp(a, b)
const void *a, *b;
{
return (pathcmp(*(char **)a, *(char **)b, -1));
}
static int
unix_expandpath(gap, path, wildoff, flags)
garray_T *gap;
char_u *path;
int wildoff;
int flags; /* EW_* flags */
{
char_u *buf;
char_u *path_end;
char_u *p, *s, *e;
int start_len, c;
char_u *pat;
DIR *dirp;
regmatch_T regmatch;
struct dirent *dp;
int starts_with_dot;
int matches;
int len;
start_len = gap->ga_len;
buf = alloc(STRLEN(path) + BASENAMELEN + 5);/* make room for file name */
if (buf == NULL)
return 0;
/*
* Find the first part in the path name that contains a wildcard.
* Copy it into buf, including the preceding characters.
*/
p = buf;
s = buf;
e = NULL;
path_end = path;
while (*path_end)
{
/* May ignore a wildcard that has a backslash before it */
if (path_end >= path + wildoff && rem_backslash(path_end))
*p++ = *path_end++;
else if (*path_end == '/')
{
if (e != NULL)
break;
else
s = p + 1;
}
else if (vim_strchr((char_u *)"*?[{~$", *path_end) != NULL)
e = p;
#ifdef FEAT_MBYTE
if (has_mbyte)
{
len = (*mb_ptr2len_check)(path_end);
STRNCPY(p, path_end, len);
p += len;
path_end += len;
}
else
#endif
*p++ = *path_end++;
}
e = p;
*e = NUL;
/* now we have one wildcard component between s and e */
/* Remove backslashes between "wildoff" and the start of the wildcard
* component. */
for (p = buf + wildoff; p < s; ++p)
if (rem_backslash(p))
{
STRCPY(p, p + 1);
--e;
--s;
}
/* convert the file pattern to a regexp pattern */
starts_with_dot = (*s == '.');
pat = file_pat_to_reg_pat(s, e, NULL, FALSE);
if (pat == NULL)
{
vim_free(buf);
return 0;
}
/* compile the regexp into a program */
#ifdef MACOS_X
/* We want to behave like Terminal.app */
regmatch.rm_ic = TRUE;
#else
regmatch.rm_ic = FALSE; /* Don't ever ignore case */
#endif
regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
vim_free(pat);
if (regmatch.regprog == NULL)
{
vim_free(buf);
return 0;
}
/* open the directory for scanning */
c = *s;
*s = NUL;
dirp = opendir(*buf == NUL ? "." : (char *)buf);
*s = c;
/* Find all matching entries */
if (dirp != NULL)
{
for (;;)
{
dp = readdir(dirp);
if (dp == NULL)
break;
if ((dp->d_name[0] != '.' || starts_with_dot)
&& vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0))
{
STRCPY(s, dp->d_name);
len = STRLEN(buf);
STRCPY(buf + len, path_end);
if (mch_has_exp_wildcard(path_end)) /* handle more wildcards */
{
/* need to expand another component of the path */
/* remove backslashes for the remaining components only */
(void)unix_expandpath(gap, buf, len + 1, flags);
}
else
{
/* no more wildcards, check if there is a match */
/* remove backslashes for the remaining components only */
if (*path_end)
backslash_halve(buf + len + 1);
if (mch_getperm(buf) >= 0) /* add existing file */
addfile(gap, buf, flags);
}
}
}
closedir(dirp);
}
vim_free(buf);
vim_free(regmatch.regprog);
matches = gap->ga_len - start_len;
if (matches)
qsort(((char_u **)gap->ga_data) + start_len, matches,
sizeof(char_u *), pstrcmp);
return matches;
}
#endif
/*
* Recursively build up a list of files in "gap" matching the first wildcard
* in `path'. Called by expand_wildcards().
@@ -461,7 +302,7 @@ mch_expandpath(
int flags) /* EW_* flags */
{
#ifdef USE_UNIXFILENAME
return unix_expandpath(gap, path, 0, flags);
return unix_expandpath(gap, path, 0, flags, FALSE);
#else
char_u first = *path;
short scan_volume;

View File

@@ -174,8 +174,6 @@ static int have_dollars __ARGS((int, char_u **));
#endif
#ifndef NO_EXPANDPATH
static int pstrcmp __ARGS((const void *, const void *));
static int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags));
# if defined(MACOS_X) && defined(FEAT_MBYTE)
extern char_u *mac_precompose_path __ARGS((char_u *decompPath, size_t decompLen, size_t *precompLen));
# endif
@@ -4735,19 +4733,11 @@ RealWaitForChar(fd, msec, check_for_gpm)
#ifndef VMS
#ifndef NO_EXPANDPATH
static int
pstrcmp(a, b)
const void *a, *b;
{
return (pathcmp(*(char **)a, *(char **)b, -1));
}
/*
* Recursively expand one path component into all matching files and/or
* directories.
* "path" has backslashes before chars that are not to be expanded, starting
* at "path + wildoff".
* Return the number of matches found.
* Expand a path into all matching files and/or directories. Handles "*",
* "?", "[a-z]", "**", etc.
* "path" has backslashes before chars that are not to be expanded.
* Returns the number of matches found.
*/
int
mch_expandpath(gap, path, flags)
@@ -4755,167 +4745,7 @@ mch_expandpath(gap, path, flags)
char_u *path;
int flags; /* EW_* flags */
{
return unix_expandpath(gap, path, 0, flags);
}
static int
unix_expandpath(gap, path, wildoff, flags)
garray_T *gap;
char_u *path;
int wildoff;
int flags; /* EW_* flags */
{
char_u *buf;
char_u *path_end;
char_u *p, *s, *e;
int start_len, c;
char_u *pat;
DIR *dirp;
regmatch_T regmatch;
struct dirent *dp;
int starts_with_dot;
int matches;
int len;
start_len = gap->ga_len;
buf = alloc(STRLEN(path) + BASENAMELEN + 5);/* make room for file name */
if (buf == NULL)
return 0;
/*
* Find the first part in the path name that contains a wildcard.
* Copy it into buf, including the preceding characters.
*/
p = buf;
s = buf;
e = NULL;
path_end = path;
while (*path_end != NUL)
{
/* May ignore a wildcard that has a backslash before it; it will
* be removed by rem_backslash() or file_pat_to_reg_pat() below. */
if (path_end >= path + wildoff && rem_backslash(path_end))
*p++ = *path_end++;
else if (*path_end == '/')
{
if (e != NULL)
break;
s = p + 1;
}
else if (path_end >= path + wildoff
&& vim_strchr((char_u *)"*?[{~$", *path_end) != NULL)
e = p;
#ifdef FEAT_MBYTE
if (has_mbyte)
{
len = (*mb_ptr2len_check)(path_end);
STRNCPY(p, path_end, len);
p += len;
path_end += len;
}
else
#endif
*p++ = *path_end++;
}
e = p;
*e = NUL;
/* now we have one wildcard component between s and e */
/* Remove backslashes between "wildoff" and the start of the wildcard
* component. */
for (p = buf + wildoff; p < s; ++p)
if (rem_backslash(p))
{
STRCPY(p, p + 1);
--e;
--s;
}
/* convert the file pattern to a regexp pattern */
starts_with_dot = (*s == '.');
pat = file_pat_to_reg_pat(s, e, NULL, FALSE);
if (pat == NULL)
{
vim_free(buf);
return 0;
}
/* compile the regexp into a program */
#ifdef MACOS_X /* Can/Should we use CASE_INSENSITIVE_FILENAME instead ?*/
regmatch.rm_ic = TRUE; /* Behave like Terminal.app */
#else
regmatch.rm_ic = FALSE; /* Don't ever ignore case */
#endif
regmatch.regprog = vim_regcomp(pat, RE_MAGIC);
vim_free(pat);
if (regmatch.regprog == NULL)
{
vim_free(buf);
return 0;
}
/* open the directory for scanning */
c = *s;
*s = NUL;
dirp = opendir(*buf == NUL ? "." : (char *)buf);
*s = c;
/* Find all matching entries */
if (dirp != NULL)
{
for (;;)
{
dp = readdir(dirp);
if (dp == NULL)
break;
if ((dp->d_name[0] != '.' || starts_with_dot)
&& vim_regexec(&regmatch, (char_u *)dp->d_name, (colnr_T)0))
{
STRCPY(s, dp->d_name);
len = STRLEN(buf);
STRCPY(buf + len, path_end);
if (mch_has_exp_wildcard(path_end)) /* handle more wildcards */
{
/* need to expand another component of the path */
/* remove backslashes for the remaining components only */
(void)unix_expandpath(gap, buf, len + 1, flags);
}
else
{
/* no more wildcards, check if there is a match */
/* remove backslashes for the remaining components only */
if (*path_end != NUL)
backslash_halve(buf + len + 1);
if (mch_getperm(buf) >= 0) /* add existing file */
{
#if defined(MACOS_X) && defined(FEAT_MBYTE)
size_t precomp_len = STRLEN(buf)+1;
char_u *precomp_buf =
mac_precompose_path(buf, precomp_len, &precomp_len);
if (precomp_buf)
{
mch_memmove(buf, precomp_buf, precomp_len);
vim_free(precomp_buf);
}
#endif
addfile(gap, buf, flags);
}
}
}
}
closedir(dirp);
}
vim_free(buf);
vim_free(regmatch.regprog);
matches = gap->ga_len - start_len;
if (matches > 0)
qsort(((char_u **)gap->ga_data) + start_len, matches,
sizeof(char_u *), pstrcmp);
return matches;
return unix_expandpath(gap, path, 0, flags, FALSE);
}
#endif

View File

@@ -17,7 +17,7 @@ void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
void gui_mch_settitle __ARGS((char_u *title, char_u *icon));
void gui_mch_enable_menu __ARGS((int showit));
void gui_mch_show_toolbar __ARGS((int showit));
int gui_mch_adjust_charsize __ARGS((void));
int gui_mch_adjust_charheight __ARGS((void));
GuiFontset gui_mch_get_fontset __ARGS((char_u *name, int report_error, int fixed_width));
char_u *gui_mch_font_dialog __ARGS((char_u *oldval));
int gui_mch_init_font __ARGS((char_u *font_name, int fontset));

View File

@@ -14,7 +14,7 @@ void gui_mch_set_shellsize __ARGS((int width, int height, int min_width, int min
void gui_mch_get_screen_dimensions __ARGS((int *screen_w, int *screen_h));
void gui_mch_enable_menu __ARGS((int flag));
void gui_mch_show_toolbar __ARGS((int showit));
int gui_mch_adjust_charsize __ARGS((void));
int gui_mch_adjust_charheight __ARGS((void));
GuiFontset gui_mch_get_fontset __ARGS((char_u *name, int report_error, int fixed_width));
int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
GuiFont gui_mch_get_font __ARGS((char_u *name, int report_error));

View File

@@ -36,7 +36,7 @@ void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, l
void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
int gui_mch_adjust_charsize __ARGS((void));
int gui_mch_adjust_charheight __ARGS((void));
int gui_mch_init_font __ARGS((char_u *font_name, int fontset));
GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));

View File

@@ -59,7 +59,7 @@ void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
void gui_mch_toggle_tearoffs __ARGS((int enable));
void gui_mch_show_toolbar __ARGS((int showit));
int gui_mch_init_font __ARGS((char_u *vim_font_name, int fontset));
int gui_mch_adjust_charsize __ARGS((void));
int gui_mch_adjust_charheight __ARGS((void));
GuiFont gui_mch_get_font __ARGS((char_u *vim_font_name, int report_error));
char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
void gui_mch_set_font __ARGS((GuiFont font));

View File

@@ -12,7 +12,7 @@ void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
int gui_mch_adjust_charsize __ARGS((void));
int gui_mch_adjust_charheight __ARGS((void));
GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
void gui_mch_free_font __ARGS((GuiFont font));

View File

@@ -12,7 +12,7 @@ void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
int gui_mch_adjust_charsize __ARGS((void));
int gui_mch_adjust_charheight __ARGS((void));
GuiFont gui_mch_get_font __ARGS((char_u *name, int giveErrorIfMissing));
char_u *gui_mch_get_fontname __ARGS((GuiFont font, char_u *name));
void gui_mch_free_font __ARGS((GuiFont font));

View File

@@ -36,7 +36,6 @@ int stat __ARGS((char *p, struct stat *p_st));
int mch_call_shell __ARGS((char_u *cmd, int options));
int mch_has_wildcard __ARGS((char_u *s));
int mch_expandpath __ARGS((struct growarray *gap, char_u *path, int flags));
int mac_expandpath __ARGS((struct growarray *gap, char_u *path, int flags, short start_at, short as_full));
/*int vim_chdir __ARGS((char *path));*/
void mch_delay __ARGS((long msec, int ignoreinput));
void mch_breakcheck __ARGS((void));

View File

@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 24)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 24, compiled "
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 25)"
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 25, compiled "