mirror of
https://github.com/vim/vim.git
synced 2025-08-31 20:53:42 -04:00
updated for version 7.0054
This commit is contained in:
parent
4d01d630a5
commit
8cd06cabf3
@ -1,4 +1,4 @@
|
||||
*repeat.txt* For Vim version 7.0aa. Last change: 2005 Feb 26
|
||||
*repeat.txt* For Vim version 7.0aa. Last change: 2005 Feb 28
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -572,7 +572,8 @@ It is only included when Vim was compiled with "huge" features.
|
||||
This only profiles the script itself, not the functions
|
||||
defined in it.
|
||||
When the [!] is added then all functions defined in the script
|
||||
will also be profiled.
|
||||
will also be profiled. But only if the script is loaded after
|
||||
this command.
|
||||
|
||||
|
||||
You must always start with a ":profile start fname" command. The resulting
|
||||
@ -632,5 +633,7 @@ mind there are various things that may clobber the results:
|
||||
: delfunc MyFunc
|
||||
:endif
|
||||
<
|
||||
- Profiling may give weird results on multi-processor systems, when sleep
|
||||
mode kicks in or the processor frequency is reduced to save power.
|
||||
|
||||
vim:tw=78:ts=8:ft=help:norl:
|
||||
|
@ -254,14 +254,14 @@ endif
|
||||
CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall
|
||||
|
||||
ifdef GETTEXT
|
||||
DEFINES +=-DHAVE_GETTEXT -DHAVE_LOCALE_H
|
||||
DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H
|
||||
GETTEXTINCLUDE = $(GETTEXT)/include
|
||||
GETTEXTLIB = $(INTLPATH)
|
||||
ifeq (yes, $(GETTEXT))
|
||||
DEFINES +=-DDYNAMIC_GETTEXT
|
||||
DEFINES += -DDYNAMIC_GETTEXT
|
||||
else
|
||||
ifdef DYNAMIC_GETTEXT
|
||||
DEFINES +=-D$(DYNAMIC_GETTEXT)
|
||||
DEFINES += -D$(DYNAMIC_GETTEXT)
|
||||
ifdef GETTEXT_DYNAMIC
|
||||
DEFINES += -DGETTEXT_DYNAMIC -DGETTEXT_DLL=\"$(GETTEXT_DYNAMIC)\"
|
||||
endif
|
||||
|
@ -26,7 +26,7 @@
|
||||
static void cmd_source __ARGS((char_u *fname, exarg_T *eap));
|
||||
|
||||
#ifdef FEAT_EVAL
|
||||
/* Growarray to store the names of sourced scripts.
|
||||
/* Growarray to store info about already sourced scripts.
|
||||
* For Unix also store the dev/ino, so that we don't have to stat() each
|
||||
* script when going through the list. */
|
||||
typedef struct scriptitem_S
|
||||
@ -38,7 +38,7 @@ typedef struct scriptitem_S
|
||||
# endif
|
||||
# ifdef FEAT_PROFILE
|
||||
int sn_prof_on; /* TRUE when script is/was profiled */
|
||||
int sn_pr_force; /* forceit: profile defined functions */
|
||||
int sn_pr_force; /* forceit: profile functions in this script */
|
||||
proftime_T sn_pr_child; /* time set when going into first child */
|
||||
int sn_pr_nest; /* nesting for sn_pr_child */
|
||||
/* profiling the script as a whole */
|
||||
@ -802,8 +802,12 @@ static proftime_T prof_wait_time;
|
||||
profile_zero(tm)
|
||||
proftime_T *tm;
|
||||
{
|
||||
# ifdef WIN3264
|
||||
tm->QuadPart = 0;
|
||||
# else
|
||||
tm->tv_usec = 0;
|
||||
tm->tv_sec = 0;
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
@ -813,7 +817,11 @@ profile_zero(tm)
|
||||
profile_start(tm)
|
||||
proftime_T *tm;
|
||||
{
|
||||
# ifdef WIN3264
|
||||
QueryPerformanceCounter(tm);
|
||||
# else
|
||||
gettimeofday(tm, NULL);
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
@ -825,6 +833,10 @@ profile_end(tm)
|
||||
{
|
||||
proftime_T now;
|
||||
|
||||
# ifdef WIN3264
|
||||
QueryPerformanceCounter(&now);
|
||||
tm->QuadPart = now.QuadPart - tm->QuadPart;
|
||||
# else
|
||||
gettimeofday(&now, NULL);
|
||||
tm->tv_usec = now.tv_usec - tm->tv_usec;
|
||||
tm->tv_sec = now.tv_sec - tm->tv_sec;
|
||||
@ -833,6 +845,7 @@ profile_end(tm)
|
||||
tm->tv_usec += 1000000;
|
||||
--tm->tv_sec;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
@ -842,6 +855,9 @@ profile_end(tm)
|
||||
profile_sub(tm, tm2)
|
||||
proftime_T *tm, *tm2;
|
||||
{
|
||||
# ifdef WIN3264
|
||||
tm->QuadPart -= tm2->QuadPart;
|
||||
# else
|
||||
tm->tv_usec -= tm2->tv_usec;
|
||||
tm->tv_sec -= tm2->tv_sec;
|
||||
if (tm->tv_usec < 0)
|
||||
@ -849,6 +865,7 @@ profile_sub(tm, tm2)
|
||||
tm->tv_usec += 1000000;
|
||||
--tm->tv_sec;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
@ -858,6 +875,9 @@ profile_sub(tm, tm2)
|
||||
profile_add(tm, tm2)
|
||||
proftime_T *tm, *tm2;
|
||||
{
|
||||
# ifdef WIN3264
|
||||
tm->QuadPart += tm2->QuadPart;
|
||||
# else
|
||||
tm->tv_usec += tm2->tv_usec;
|
||||
tm->tv_sec += tm2->tv_sec;
|
||||
if (tm->tv_usec >= 1000000)
|
||||
@ -865,6 +885,7 @@ profile_add(tm, tm2)
|
||||
tm->tv_usec -= 1000000;
|
||||
++tm->tv_sec;
|
||||
}
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
@ -897,7 +918,27 @@ profile_sub_wait(tm, tma)
|
||||
profile_equal(tm1, tm2)
|
||||
proftime_T *tm1, *tm2;
|
||||
{
|
||||
# ifdef WIN3264
|
||||
return (tm1->QuadPart == tm2->QuadPart);
|
||||
# else
|
||||
return (tm1->tv_usec == tm2->tv_usec && tm1->tv_sec == tm2->tv_sec);
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Return <0, 0 or >0 if "tm1" < "tm2", "tm1" == "tm2" or "tm1" > "tm2"
|
||||
*/
|
||||
int
|
||||
profile_cmp(tm1, tm2)
|
||||
proftime_T *tm1, *tm2;
|
||||
{
|
||||
# ifdef WIN3264
|
||||
return (int)(tm2->QuadPart - tm1->QuadPart);
|
||||
# else
|
||||
if (tm1->tv_sec == tm2->tv_sec)
|
||||
return tm2->tv_usec - tm1->tv_usec;
|
||||
return tm2->tv_sec - tm1->tv_sec;
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
@ -910,7 +951,14 @@ profile_msg(tm)
|
||||
{
|
||||
static char buf[50];
|
||||
|
||||
# ifdef WIN3264
|
||||
LARGE_INTEGER fr;
|
||||
|
||||
QueryPerformanceFrequency(&fr);
|
||||
sprintf(buf, "%10.6lf", (double)tm->QuadPart / (double)fr.QuadPart);
|
||||
# else
|
||||
sprintf(buf, "%3ld.%06ld", (long)tm->tv_sec, (long)tm->tv_usec);
|
||||
#endif
|
||||
return buf;
|
||||
}
|
||||
|
||||
@ -962,8 +1010,8 @@ profile_dump()
|
||||
EMSG2(_(e_notopen), profile_fname);
|
||||
else
|
||||
{
|
||||
func_dump_profile(fd);
|
||||
script_dump_profile(fd);
|
||||
func_dump_profile(fd);
|
||||
fclose(fd);
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* vi:set ts=8 sts=0 sw=8:
|
||||
/* vi:set ts=8 sts=4 sw=4:
|
||||
*
|
||||
* VIM - Vi IMproved by Bram Moolenaar
|
||||
*
|
||||
@ -382,7 +382,9 @@
|
||||
/*
|
||||
* +profile Profiling for functions and scripts.
|
||||
*/
|
||||
#if defined(FEAT_HUGE) && defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)
|
||||
#if defined(FEAT_HUGE) \
|
||||
&& ((defined(HAVE_GETTIMEOFDAY) && defined(HAVE_SYS_TIME_H)) \
|
||||
|| defined(WIN3264))
|
||||
# define FEAT_PROFILE
|
||||
#endif
|
||||
|
||||
|
13
src/fileio.c
13
src/fileio.c
@ -1333,10 +1333,19 @@ retry:
|
||||
* If there is conversion error or not enough room try using
|
||||
* another conversion.
|
||||
*/
|
||||
if ((iconv(iconv_fd, (void *)&fromp, &from_size, &top, &to_size)
|
||||
while ((iconv(iconv_fd, (void *)&fromp, &from_size,
|
||||
&top, &to_size)
|
||||
== (size_t)-1 && ICONV_ERRNO != ICONV_EINVAL)
|
||||
|| from_size > CONV_RESTLEN)
|
||||
goto rewind_retry;
|
||||
{
|
||||
if (!keep_dest_enc)
|
||||
goto rewind_retry;
|
||||
/* Ignore a byte and try again. */
|
||||
++fromp;
|
||||
--from_size;
|
||||
*top++ = '?';
|
||||
--to_size;
|
||||
}
|
||||
|
||||
if (from_size > 0)
|
||||
{
|
||||
|
@ -656,10 +656,10 @@ EXTERN JMP_BUF x_jump_env;
|
||||
* Used to protect areas where we could crash.
|
||||
*/
|
||||
EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */
|
||||
#ifdef SIGHASARG
|
||||
# ifdef SIGHASARG
|
||||
EXTERN int lc_signal; /* catched signal number, 0 when no was signal
|
||||
catched; used for mch_libcall() */
|
||||
#endif
|
||||
# endif
|
||||
EXTERN int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */
|
||||
#endif
|
||||
|
||||
@ -1412,7 +1412,7 @@ EXTERN char_u e_nbreadonly[] INIT(=N_("E744: NetBeans does not allow changes in
|
||||
#if defined(FEAT_EVAL) || defined(FEAT_SYN_HL) || defined(PROTO)
|
||||
EXTERN char_u e_intern2[] INIT(=N_("E685: Internal error: %s"));
|
||||
#endif
|
||||
#if defined(HAVE_SETJMP_H) || defined(HAVE_TRY_EXCEPT)
|
||||
#if defined(HAVE_SETJMP_H) || defined(HAVE_TRY_EXCEPT) || defined(__MINGW32__)
|
||||
EXTERN char_u e_complex[] INIT(=N_("E361: Crash intercepted; regexp too complex?"));
|
||||
#endif
|
||||
EXTERN char_u e_outofstack[] INIT(=N_("E363: pattern caused out-of-stack error"));
|
||||
|
@ -3830,6 +3830,7 @@ mch_call_shell(cmd, options)
|
||||
size_t l;
|
||||
|
||||
/* child */
|
||||
close(fromshell_fd);
|
||||
for (;;)
|
||||
{
|
||||
l = STRLEN(p + written);
|
||||
|
@ -2514,7 +2514,7 @@ jumpend:
|
||||
{
|
||||
/* The buffer is still loaded, the Filetype autocommands
|
||||
* need to be done now, in that buffer. And then the
|
||||
* modelines (again). */
|
||||
* modelines need to be done (again). */
|
||||
aucmd_prepbuf(&aco, buf);
|
||||
apply_autocmds(EVENT_FILETYPE, buf->b_p_ft,
|
||||
buf->b_fname, TRUE, buf);
|
||||
@ -2632,6 +2632,9 @@ load_dummy_buffer(fname)
|
||||
if (newbuf == NULL)
|
||||
return NULL;
|
||||
|
||||
/* Init the options. */
|
||||
buf_copy_options(newbuf, BCO_ENTER | BCO_NOHELP);
|
||||
|
||||
#ifdef FEAT_AUTOCMD
|
||||
/* set curwin/curbuf to buf and save a few things */
|
||||
aucmd_prepbuf(&aco, newbuf);
|
||||
|
57
src/regexp.c
57
src/regexp.c
@ -3182,6 +3182,36 @@ vim_regexec_multi(rmp, win, buf, lnum, col)
|
||||
return r;
|
||||
}
|
||||
|
||||
#if 0 /* this does not appear to work... */
|
||||
# ifdef __MINGW32__
|
||||
# define MINGW_TRY
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef MINGW_TRY
|
||||
/*
|
||||
* Special assembly code for MingW to simulate __try / __except.
|
||||
* Does not work with the optimizer!
|
||||
*/
|
||||
# include <excpt.h>
|
||||
|
||||
static void *ESP_save; /* used as _ESP below */
|
||||
static void *EBP_save; /* used as _EBP below */
|
||||
|
||||
__attribute__ ((cdecl))
|
||||
EXCEPTION_DISPOSITION
|
||||
_except_regexec_handler(
|
||||
struct _EXCEPTION_RECORD *ExceptionRecord,
|
||||
void *EstablisherFrame,
|
||||
struct _CONTEXT *ContextRecord,
|
||||
void *DispatcherContext)
|
||||
{
|
||||
__asm__ __volatile__ (
|
||||
"jmp regexec_reentry");
|
||||
return 0; /* Function does not return */
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Match a regexp against a string ("line" points to the string) or multiple
|
||||
* lines ("line" is NULL, use reg_getline()).
|
||||
@ -3301,6 +3331,17 @@ vim_regexec_both(line, col)
|
||||
goto theend;
|
||||
}
|
||||
|
||||
#ifdef MINGW_TRY
|
||||
/* Ugly assembly code that is necessary to simulate "__try". */
|
||||
__asm__ __volatile__ (
|
||||
"movl %esp, _ESP_save" "\n\t"
|
||||
"movl %ebp, _EBP_save");
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"pushl $__except_regexec_handler" "\n\t"
|
||||
"pushl %fs:0" "\n\t"
|
||||
"mov %esp, %fs:0");
|
||||
#endif
|
||||
#ifdef HAVE_TRY_EXCEPT
|
||||
__try
|
||||
{
|
||||
@ -3426,6 +3467,22 @@ inner_end:
|
||||
retval = 0L;
|
||||
}
|
||||
#endif
|
||||
#ifdef MINGW_TRY
|
||||
__asm__ __volatile__ (
|
||||
"jmp regexec_pop" "\n"
|
||||
"regexec_reentry:" "\n\t"
|
||||
"movl _ESP_save, %esp" "\n\t"
|
||||
"movl _EBP_save, %ebp");
|
||||
|
||||
EMSG(_(e_complex));
|
||||
retval = 0L;
|
||||
|
||||
__asm__ __volatile__ (
|
||||
"regexec_pop:" "\n\t"
|
||||
"mov (%esp), %eax" "\n\t"
|
||||
"mov %eax, %fs:0" "\n\t"
|
||||
"add $8, %esp");
|
||||
#endif
|
||||
|
||||
theend:
|
||||
/* Didn't find a match. */
|
||||
|
@ -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 Feb 26)"
|
||||
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Feb 26, compiled "
|
||||
#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Feb 28)"
|
||||
#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Feb 28, compiled "
|
||||
|
Loading…
x
Reference in New Issue
Block a user