mirror of
https://github.com/vim/vim.git
synced 2025-10-12 06:44:06 -04:00
patch 8.0.1030: MS-Windows: wrong size computation in is_cygpty()
Problem: MS-Windows: wrong size computation in is_cygpty(). Solution: Compute the size properly. (Ken Takata)
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
* iscygpty.c -- part of ptycheck
|
* iscygpty.c -- part of ptycheck
|
||||||
* https://github.com/k-takata/ptycheck
|
* https://github.com/k-takata/ptycheck
|
||||||
*
|
*
|
||||||
* Copyright (c) 2015-2016 K.Takata
|
* Copyright (c) 2015-2017 K.Takata
|
||||||
*
|
*
|
||||||
* You can redistribute it and/or modify it under the terms of either
|
* You can redistribute it and/or modify it under the terms of either
|
||||||
* the MIT license (as described below) or the Vim license.
|
* the MIT license (as described below) or the Vim license.
|
||||||
@@ -27,6 +27,8 @@
|
|||||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
@@ -60,19 +62,19 @@
|
|||||||
//#define USE_DYNFILEID
|
//#define USE_DYNFILEID
|
||||||
#ifdef USE_DYNFILEID
|
#ifdef USE_DYNFILEID
|
||||||
typedef BOOL (WINAPI *pfnGetFileInformationByHandleEx)(
|
typedef BOOL (WINAPI *pfnGetFileInformationByHandleEx)(
|
||||||
HANDLE hFile,
|
HANDLE hFile,
|
||||||
FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
|
FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
|
||||||
LPVOID lpFileInformation,
|
LPVOID lpFileInformation,
|
||||||
DWORD dwBufferSize
|
DWORD dwBufferSize
|
||||||
);
|
);
|
||||||
static pfnGetFileInformationByHandleEx pGetFileInformationByHandleEx = NULL;
|
static pfnGetFileInformationByHandleEx pGetFileInformationByHandleEx = NULL;
|
||||||
|
|
||||||
# ifndef USE_FILEEXTD
|
# ifndef USE_FILEEXTD
|
||||||
static BOOL WINAPI stub_GetFileInformationByHandleEx(
|
static BOOL WINAPI stub_GetFileInformationByHandleEx(
|
||||||
HANDLE hFile,
|
HANDLE hFile,
|
||||||
FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
|
FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
|
||||||
LPVOID lpFileInformation,
|
LPVOID lpFileInformation,
|
||||||
DWORD dwBufferSize
|
DWORD dwBufferSize
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@@ -111,7 +113,7 @@ int is_cygpty(int fd)
|
|||||||
return 0;
|
return 0;
|
||||||
#else
|
#else
|
||||||
HANDLE h;
|
HANDLE h;
|
||||||
int size = sizeof(FILE_NAME_INFO) + sizeof(WCHAR) * MAX_PATH;
|
int size = sizeof(FILE_NAME_INFO) + sizeof(WCHAR) * (MAX_PATH - 1);
|
||||||
FILE_NAME_INFO *nameinfo;
|
FILE_NAME_INFO *nameinfo;
|
||||||
WCHAR *p = NULL;
|
WCHAR *p = NULL;
|
||||||
|
|
||||||
@@ -125,7 +127,7 @@ int is_cygpty(int fd)
|
|||||||
if (GetFileType(h) != FILE_TYPE_PIPE) {
|
if (GetFileType(h) != FILE_TYPE_PIPE) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
nameinfo = malloc(size);
|
nameinfo = malloc(size + sizeof(WCHAR));
|
||||||
if (nameinfo == NULL) {
|
if (nameinfo == NULL) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -178,4 +180,6 @@ int is_cygpty_used(void)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vi:set ts=8 sts=4 sw=4 noet: */
|
#endif /* _WIN32 */
|
||||||
|
|
||||||
|
/* vim: set ts=4 sw=4: */
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
* iscygpty.h -- part of ptycheck
|
* iscygpty.h -- part of ptycheck
|
||||||
* https://github.com/k-takata/ptycheck
|
* https://github.com/k-takata/ptycheck
|
||||||
*
|
*
|
||||||
* Copyright (c) 2015-2016 K.Takata
|
* Copyright (c) 2015-2017 K.Takata
|
||||||
*
|
*
|
||||||
* You can redistribute it and/or modify it under the terms of either
|
* You can redistribute it and/or modify it under the terms of either
|
||||||
* the MIT license (as described below) or the Vim license.
|
* the MIT license (as described below) or the Vim license.
|
||||||
@@ -30,7 +30,12 @@
|
|||||||
#ifndef _ISCYGPTY_H
|
#ifndef _ISCYGPTY_H
|
||||||
#define _ISCYGPTY_H
|
#define _ISCYGPTY_H
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
int is_cygpty(int fd);
|
int is_cygpty(int fd);
|
||||||
int is_cygpty_used(void);
|
int is_cygpty_used(void);
|
||||||
|
#else
|
||||||
|
#define is_cygpty(fd) 0
|
||||||
|
#define is_cygpty_used() 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* _ISCYGPTY_H */
|
#endif /* _ISCYGPTY_H */
|
||||||
|
@@ -769,6 +769,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1030,
|
||||||
/**/
|
/**/
|
||||||
1029,
|
1029,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user