Compare commits

..

10 Commits

Author SHA1 Message Date
Bjorn Winckler 29745cf124 Snapshot 47 2009-07-16 20:08:56 +02:00
Bjorn Winckler 699de3c049 Change some logging messages 2009-07-16 14:35:27 +02:00
Bjorn Winckler 5560396666 Dialog sheet animation can no longer cause a crash
Explicitly force the sheet animation to be performed before passing the
result of the sheet on to the backend.  Before this patch the animation
was performed asynchronously and this could lead to a Vim controller
being released at the same time as the animation was being performed
since the animation took place in the default run loop mode.
2009-07-15 00:54:08 +02:00
Bjorn Winckler 8570b5df1f Merge upstream 2009-07-14 21:41:00 +02:00
vimboss 7391be3977 updated for version 7.2-234 2009-07-14 19:40:21 +00:00
vimboss 7068f9086c updated for version 7.2-233 2009-07-14 16:38:36 +00:00
vimboss af2e8b9e3b updated for version 7.2-232 2009-07-14 15:38:41 +00:00
vimboss 7d87f83e26 updated for version 7.2-231 2009-07-14 14:04:54 +00:00
vimboss eb6512ab82 updated for version 7.2-230 2009-07-14 11:44:30 +00:00
vimboss c2d5277fc9 updated for version 7.2-229 2009-07-14 10:20:22 +00:00
19 changed files with 156 additions and 64 deletions
+8 -1
View File
@@ -441,13 +441,20 @@ between files with almost the same name. If there are multiple matches,
those files with an extension that is in the 'suffixes' option are ignored.
The default is ".bak,~,.o,.h,.info,.swp,.obj", which means that files ending
in ".bak", "~", ".o", ".h", ".info", ".swp" and ".obj" are sometimes ignored.
It is impossible to ignore suffixes with two dots. Examples:
An empty entry, two consecutive commas, match a file name that does not
contain a ".", thus has no suffix. This is useful to ignore "prog" and prefer
"prog.c".
Examples:
pattern: files: match: ~
test* test.c test.h test.o test.c
test* test.h test.o test.h and test.o
test* test.i test.h test.c test.i and test.c
It is impossible to ignore suffixes with two dots.
If there is more than one matching file (after ignoring the ones matching
the 'suffixes' option) the first file name is inserted. You can see that
there is only one match when you type 'wildchar' twice and the completed
+1 -1
View File
@@ -1189,7 +1189,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>46</string>
<string>47</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key>
+3 -3
View File
@@ -636,12 +636,12 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
- (void)removeVimController:(id)controller
{
ASLogDebug(@"Remove Vim controller pid=%d id=%d",
[controller pid], [controller identifier]);
ASLogDebug(@"Remove Vim controller pid=%d id=%d (processingFlag=%d)",
[controller pid], [controller identifier], processingFlag);
int idx = [vimControllers indexOfObject:controller];
if (NSNotFound == idx) {
ASLogWarn(@"Controller at index=%d not found", idx);
ASLogDebug(@"Controller not found, probably due to duplicate removal");
return;
}
+16 -16
View File
@@ -346,8 +346,8 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
identifier = [appProxy connectBackend:self pid:pid];
return YES;
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught when trying to connect backend: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"Connect backend failed: reason=%@", ex);
}
return NO;
@@ -510,8 +510,8 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
debugStringForMessageQueue(outputQueue));
[appProxy processInput:outputQueue forIdentifier:identifier];
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"processInput:forIdentifer failed: reason=%@", ex);
if (![connection isValid]) {
ASLogNotice(@"Connection is invalid, exit now!");
ASLogDebug(@"waitForAck=%d got_int=%d", waitForAck, got_int);
@@ -579,8 +579,8 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
debugStringForMessageQueue(outputQueue));
[appProxy processInput:outputQueue forIdentifier:identifier];
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught when sending CloseWindowMsgID: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"CloseWindowMsgID send failed: reason=%@", ex);
}
// NOTE: If Cmd-w was pressed to close the window the menu is briefly
@@ -702,8 +702,8 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
[dialogReturn release]; dialogReturn = nil;
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"Exception: reason=%@", ex);
}
return (char *)s;
@@ -757,8 +757,8 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
[dialogReturn release]; dialogReturn = nil;
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"Exception: reason=%@", ex);
}
return retval;
@@ -1320,8 +1320,8 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
[proxy addInput:string client:self];
}
}
@catch (NSException *e) {
ASLogWarn(@"Caught exception: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"Exception: reason=%@", ex);
return NO;
}
@@ -1339,8 +1339,8 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
@try {
list = [proxy serverList];
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught when listing servers: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"serverList failed: reason=%@", ex);
}
} else {
EMSG(_("E???: No connection to MacVim, server listing not possible."));
@@ -1409,8 +1409,8 @@ extern GuiFont gui_mch_retain_font(GuiFont font);
[client addReply:reply server:self];
return YES;
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"addReply:server: failed: reason=%@", ex);
}
} else {
EMSG2(_("E???: server2client failed; no client with id 0x%x"), port);
+32 -11
View File
@@ -348,8 +348,9 @@ static BOOL isUnsafeMessage(int msgid);
@try {
[backendProxy processInput:msgid data:data];
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught during DO call: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"processInput:data: failed: pid=%d id=%d msg=%s reason=%@",
pid, identifier, MessageStrings[msgid], ex);
}
}
@@ -378,8 +379,10 @@ static BOOL isUnsafeMessage(int msgid);
@try {
[backendProxy processInput:msgid data:data];
}
@catch (NSException *e) {
@catch (NSException *ex) {
sendOk = NO;
ASLogNotice(@"processInput:data: failed: pid=%d id=%d msg=%s reason=%@",
pid, identifier, MessageStrings[msgid], ex);
}
@finally {
[conn setRequestTimeout:oldTimeout];
@@ -410,7 +413,8 @@ static BOOL isUnsafeMessage(int msgid);
ASLogDebug(@"eval(%@)=%@", expr, eval);
}
@catch (NSException *ex) {
ASLogWarn(@"Exception caught: %@", ex);
ASLogNotice(@"evaluateExpression: failed: pid=%d id=%d reason=%@",
pid, identifier, ex);
}
return eval;
@@ -426,7 +430,8 @@ static BOOL isUnsafeMessage(int msgid);
errorString:errstr];
ASLogDebug(@"eval(%@)=%@", expr, eval);
} @catch (NSException *ex) {
ASLogWarn(@"Exception caught: %@", ex);
ASLogNotice(@"evaluateExpressionCocoa: failed: pid=%d id=%d reason=%@",
pid, identifier, ex);
*errstr = [ex reason];
}
@@ -464,7 +469,7 @@ static BOOL isUnsafeMessage(int msgid);
[windowController processInputQueueDidFinish];
}
@catch (NSException *ex) {
ASLogWarn(@"Caught exception (pid=%d): %@", pid, ex);
ASLogNotice(@"Exception: pid=%d id=%d reason=%@", pid, identifier, ex);
}
}
@@ -830,9 +835,15 @@ static BOOL isUnsafeMessage(int msgid);
context:(void *)context
{
NSString *path = (code == NSOKButton) ? [panel filename] : nil;
ASLogDebug(@"Open/save panel path=%@", path);
// NOTE! This causes the sheet animation to run its course BEFORE the rest
// of this function is executed. If we do not wait for the sheet to
// disappear before continuing it can happen that the controller is
// released from under us (i.e. we'll crash and burn) because this
// animation is otherwise performed in the default run loop mode!
[panel orderOut:self];
// NOTE! setDialogReturn: is a synchronous call so set a proper timeout to
// avoid waiting forever for it to finish. We make this a synchronous call
// so that we can be fairly certain that Vim doesn't think the dialog box
@@ -850,8 +861,8 @@ static BOOL isUnsafeMessage(int msgid);
[[NSDocumentController sharedDocumentController]
noteNewRecentFilePath:path];
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"Exception: pid=%d id=%d reason=%@", pid, identifier, ex);
}
@finally {
[conn setRequestTimeout:oldTimeout];
@@ -873,11 +884,19 @@ static BOOL isUnsafeMessage(int msgid);
ASLogDebug(@"Alert return=%@", ret);
// NOTE! This causes the sheet animation to run its course BEFORE the rest
// of this function is executed. If we do not wait for the sheet to
// disappear before continuing it can happen that the controller is
// released from under us (i.e. we'll crash and burn) because this
// animation is otherwise performed in the default run loop mode!
[[alert window] orderOut:self];
@try {
[backendProxy setDialogReturn:ret];
}
@catch (NSException *e) {
ASLogWarn(@"Exception caught: %@", e);
@catch (NSException *ex) {
ASLogNotice(@"setDialogReturn: failed: pid=%d id=%d reason=%@",
pid, identifier, ex);
}
}
@@ -1259,6 +1278,8 @@ static BOOL isUnsafeMessage(int msgid);
- (void)scheduleClose
{
ASLogDebug(@"pid=%d id=%d", pid, identifier);
// NOTE! This message can arrive at pretty much anytime, e.g. while
// the run loop is the 'event tracking' mode. This means that Cocoa may
// well be in the middle of processing some message while this message is
+3 -2
View File
@@ -998,8 +998,9 @@
@try {
reply = [backendProxy starRegisterToPasteboard:pb];
}
@catch (NSException *e) {
ASLogWarn(@"Caught exception: \"%@\"", e);
@catch (NSException *ex) {
ASLogNotice(@"starRegisterToPasteboard: failed: pid=%d reason=%@",
[vimController pid], ex);
}
}
+3 -3
View File
@@ -737,7 +737,7 @@
i386,
);
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 46;
CURRENT_PROJECT_VERSION = 47;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
@@ -778,7 +778,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH)";
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 46;
CURRENT_PROJECT_VERSION = 47;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
@@ -810,7 +810,7 @@
buildSettings = {
ARCHS = "$(NATIVE_ARCH)";
COPY_PHASE_STRIP = YES;
CURRENT_PROJECT_VERSION = 46;
CURRENT_PROJECT_VERSION = 47;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)",
+7 -6
View File
@@ -41,9 +41,9 @@
-->
<item>
<title>Snapshot 46 released</title>
<title>Snapshot 47 released</title>
<description><![CDATA[
<h1>MacVim snapshot 46 released</h1>
<h1>MacVim snapshot 47 released</h1>
<p> Changes since snapshot 45:
<ul>
@@ -56,15 +56,16 @@
<li> The titles of the next/previous tab menu items now match other apps </li>
<li> Add NetBeans support (Kazuki Sakamoto) </li>
<li> Add simple logging facility </li>
<li> Fix a bug which could cause a crash when a dialog sheet was used </li>
<li> Update to latest Vim patches and runtime files </li>
</ul>
</p>
]]></description>
<pubDate>Fri, 10 Jul 2009 23:50 CET</pubDate>
<pubDate>Fri, 16 Jul 2009 19:43 CET</pubDate>
<enclosure type="application/octet-stream"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-46.tbz"
length="8198862"
sparkle:version="46"
url="http://newmacvim.muskokamug.org/mirror/files/MacVim-snapshot-47.tbz"
length="8200839"
sparkle:version="47"
sparkle:shortVersionString="7.2"
/>
</item>
+5 -7
View File
@@ -3708,11 +3708,10 @@ get_map_mode(cmdp, forceit)
* Clear all mappings or abbreviations.
* 'abbr' should be FALSE for mappings, TRUE for abbreviations.
*/
/*ARGSUSED*/
void
map_clear(cmdp, arg, forceit, abbr)
char_u *cmdp;
char_u *arg;
char_u *arg UNUSED;
int forceit;
int abbr;
{
@@ -3741,13 +3740,12 @@ map_clear(cmdp, arg, forceit, abbr)
/*
* Clear all mappings in "mode".
*/
/*ARGSUSED*/
void
map_clear_int(buf, mode, local, abbr)
buf_T *buf; /* buffer for local mappings */
int mode; /* mode in which to delete */
int local; /* TRUE for buffer-local mappings */
int abbr; /* TRUE for abbreviations */
buf_T *buf UNUSED; /* buffer for local mappings */
int mode; /* mode in which to delete */
int local UNUSED; /* TRUE for buffer-local mappings */
int abbr; /* TRUE for abbreviations */
{
mapblock_T *mp, **mpp;
int hash;
+2
View File
@@ -720,9 +720,11 @@ ex_perl(eap)
#ifdef HAVE_SANDBOX
if (sandbox)
{
# ifndef MAKE_TEST /* avoid a warning for unreachable code */
if ((safe = perl_get_sv( "VIM::safe", FALSE )) == NULL || !SvTRUE(safe))
EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module"));
else
# endif
{
PUSHMARK(SP);
XPUSHs(safe);
+19 -5
View File
@@ -8533,11 +8533,25 @@ match_suffix(fname)
for (setsuf = p_su; *setsuf; )
{
setsuflen = copy_option_part(&setsuf, suf_buf, MAXSUFLEN, ".,");
if (fnamelen >= setsuflen
&& fnamencmp(suf_buf, fname + fnamelen - setsuflen,
(size_t)setsuflen) == 0)
break;
setsuflen = 0;
if (setsuflen == 0)
{
char_u *tail = gettail(fname);
/* empty entry: match name without a '.' */
if (vim_strchr(tail, '.') == NULL)
{
setsuflen = 1;
break;
}
}
else
{
if (fnamelen >= setsuflen
&& fnamencmp(suf_buf, fname + fnamelen - setsuflen,
(size_t)setsuflen) == 0)
break;
setsuflen = 0;
}
}
return (setsuflen != 0);
}
-1
View File
@@ -291,7 +291,6 @@
# define HAVE_SETENV
# define HAVE_RENAME
# endif
# define mch_chdir(s) chdir(s)
#endif
#if defined(MACOS_X) && !defined(HAVE_CONFIG_H)
+6
View File
@@ -2039,6 +2039,12 @@ mch_chdir(char *path)
{
if (path[0] == NUL) /* just checking... */
return 0;
if (p_verbose >= 5)
{
verbose_enter();
smsg((char_u *)"chdir(%s)", path);
verbose_leave();
}
if (path[1] == ':') /* has a drive name */
{
if (change_drive(TOLOWER_ASC(path[0]) - 'a' + 1))
+6
View File
@@ -653,6 +653,12 @@ mch_chdir(char *path)
if (path[0] == NUL) /* just checking... */
return -1;
if (p_verbose >= 5)
{
verbose_enter();
smsg((char_u *)"chdir(%s)", path);
verbose_leave();
}
if (isalpha(path[0]) && path[1] == ':') /* has a drive name */
{
/* If we can change to the drive, skip that part of the path. If we
+6
View File
@@ -1203,6 +1203,12 @@ mch_chdir(dir)
int retval;
char_u *new_dir;
if (p_verbose >= 5)
{
verbose_enter();
smsg((char_u *)"chdir(%s)", dir);
verbose_leave();
}
length = strlen(dir);
if (dir[length - 1] != '.')
return chdir(dir); /* No trailing dots - nothing to do. */
+26 -3
View File
@@ -319,6 +319,23 @@ static struct signalinfo
{-1, "Unknown!", FALSE}
};
int
mch_chdir(path)
char *path;
{
if (p_verbose >= 5)
{
verbose_enter();
smsg((char_u *)"chdir(%s)", path);
verbose_leave();
}
# ifdef VMS
return chdir(vms_fixfilename(path));
# else
return chdir(path);
# endif
}
/*
* Write s[len] to the screen.
*/
@@ -1138,10 +1155,10 @@ mch_suspend()
* to happen).
*/
{
long wait;
for (wait = 0; !sigcont_received && wait <= 3L; wait++)
long wait_time;
for (wait_time = 0; !sigcont_received && wait_time <= 3L; wait_time++)
/* Loop is not entered most of the time */
mch_delay(wait, FALSE);
mch_delay(wait_time, FALSE);
}
# endif
@@ -2426,6 +2443,12 @@ mch_FullName(fname, buf, len, force)
#ifdef HAVE_FCHDIR
if (fd >= 0)
{
if (p_verbose >= 5)
{
verbose_enter();
MSG("fchdir() to previous dir");
verbose_leave();
}
l = fchdir(fd);
close(fd);
}
-5
View File
@@ -482,11 +482,6 @@ typedef struct dsc$descriptor DESC;
# else
int mch_rename __ARGS((const char *src, const char *dest));
# endif
# ifdef VMS
# define mch_chdir(s) chdir(vms_fixfilename(s))
# else
# define mch_chdir(s) chdir(s)
# endif
# ifndef VMS
# ifdef __MVS__
/* on OS390 Unix getenv() doesn't return a pointer to persistent
+1
View File
@@ -1,4 +1,5 @@
/* os_unix.c */
int mch_chdir __ARGS((char *path));
void mch_write __ARGS((char_u *s, int len));
int mch_inchar __ARGS((char_u *buf, int maxlen, long wtime, int tb_change_cnt));
int mch_char_avail __ARGS((void));
+12
View File
@@ -691,6 +691,18 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
234,
/**/
233,
/**/
232,
/**/
231,
/**/
230,
/**/
229,
/**/
228,
/**/