From: Bram Moolenaar Date: Sat, 29 Jun 2013 12:17:02 +0000 (+0200) Subject: updated for version 7.3.1262 X-Git-Tag: v7.3.1262 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fe17e7640d242e717e9498158570fe3eea2a769b;p=vim updated for version 7.3.1262 Problem: Crash and compilation warnings with Cygwin. Solution: Check return value of XmbTextListToTextProperty(). Add type casts. Adjust #ifdefs. (Lech Lorens) --- diff --git a/src/main.c b/src/main.c index 5c1405ea3..884a3082b 100644 --- a/src/main.c +++ b/src/main.c @@ -2408,7 +2408,7 @@ scripterror: * Look for evidence of non-Cygwin paths before we bother. * This is only for when using the Unix files. */ - if (strpbrk(p, "\\:") != NULL && !path_with_url(p)) + if (vim_strpbrk(p, "\\:") != NULL && !path_with_url(p)) { char posix_path[PATH_MAX]; @@ -2418,7 +2418,7 @@ scripterror: cygwin_conv_to_posix_path(p, posix_path); # endif vim_free(p); - p = vim_strsave(posix_path); + p = vim_strsave((char_u *)posix_path); if (p == NULL) mch_exit(2); } diff --git a/src/os_unix.c b/src/os_unix.c index f878fa957..8a7ae10b0 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -1559,7 +1559,7 @@ x_IOerror_check(dpy) { /* This function should not return, it causes exit(). Longjump instead. */ LONGJMP(lc_jump_env, 1); -# ifdef VMS +# if defined(VMS) || defined(__CYGWIN__) || defined(__CYGWIN32__) return 0; /* avoid the compiler complains about missing return value */ # endif } @@ -1581,7 +1581,7 @@ x_IOerror_handler(dpy) /* This function should not return, it causes exit(). Longjump instead. */ LONGJMP(x_jump_env, 1); -# ifdef VMS +# if defined(VMS) || defined(__CYGWIN__) || defined(__CYGWIN32__) return 0; /* avoid the compiler complains about missing return value */ # endif } @@ -5929,7 +5929,7 @@ mch_expand_wildcards(num_pat, pat, num_file, file, flags) # if defined(__CYGWIN__) || defined(__CYGWIN32__) /* Translate into . Caution, buffer may contain NUL. */ p = buffer; - for (i = 0; i < len; ++i) + for (i = 0; i < (int)len; ++i) if (!(buffer[i] == CAR && buffer[i + 1] == NL)) *p++ = buffer[i]; len = p - buffer; diff --git a/src/ui.c b/src/ui.c index 49bc56b93..714d1938b 100644 --- a/src/ui.c +++ b/src/ui.c @@ -2366,14 +2366,20 @@ clip_x11_convert_selection_cb(w, sel_atom, target, type, value, length, format) { XTextProperty text_prop; char *string_nt = (char *)alloc((unsigned)*length + 1); + int conv_result; /* create NUL terminated string which XmbTextListToTextProperty wants */ mch_memmove(string_nt, string, (size_t)*length); string_nt[*length] = NUL; - XmbTextListToTextProperty(X_DISPLAY, (char **)&string_nt, 1, - XCompoundTextStyle, &text_prop); + conv_result = XmbTextListToTextProperty(X_DISPLAY, (char **)&string_nt, + 1, XCompoundTextStyle, &text_prop); vim_free(string_nt); XtFree(*value); /* replace with COMPOUND text */ + if (conv_result != Success) + { + vim_free(string); + return False; + } *value = (XtPointer)(text_prop.value); /* from plain text */ *length = text_prop.nitems; *type = compound_text_atom; diff --git a/src/version.c b/src/version.c index 7fbb0eef6..59fa0febb 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1262, /**/ 1261, /**/