diff --git a/src/iscygpty.c b/src/iscygpty.c
index d7037c5..722f88f 100644
--- a/src/iscygpty.c
+++ b/src/iscygpty.c
@@ -2,7 +2,7 @@
  * iscygpty.c -- part of 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
  * the MIT license (as described below) or the Vim license.
@@ -27,6 +27,8 @@
  * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#ifdef _WIN32
+
 #include <ctype.h>
 #include <io.h>
 #include <wchar.h>
@@ -60,19 +62,19 @@
 //#define USE_DYNFILEID
 #ifdef USE_DYNFILEID
 typedef BOOL (WINAPI *pfnGetFileInformationByHandleEx)(
-		HANDLE					  hFile,
+		HANDLE                    hFile,
 		FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
-		LPVOID					  lpFileInformation,
-		DWORD					  dwBufferSize
+		LPVOID                    lpFileInformation,
+		DWORD                     dwBufferSize
 );
 static pfnGetFileInformationByHandleEx pGetFileInformationByHandleEx = NULL;
 
 # ifndef USE_FILEEXTD
 static BOOL WINAPI stub_GetFileInformationByHandleEx(
-		HANDLE					  hFile,
+		HANDLE                    hFile,
 		FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
-		LPVOID					  lpFileInformation,
-		DWORD					  dwBufferSize
+		LPVOID                    lpFileInformation,
+		DWORD                     dwBufferSize
 		)
 {
 	return FALSE;
@@ -111,7 +113,7 @@
 	return 0;
 #else
 	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;
 	WCHAR *p = NULL;
 
@@ -125,7 +127,7 @@
 	if (GetFileType(h) != FILE_TYPE_PIPE) {
 		return 0;
 	}
-	nameinfo = malloc(size);
+	nameinfo = malloc(size + sizeof(WCHAR));
 	if (nameinfo == NULL) {
 		return 0;
 	}
@@ -178,4 +180,6 @@
 	return ret;
 }
 
-/* vi:set ts=8 sts=4 sw=4 noet: */
+#endif /* _WIN32 */
+
+/* vim: set ts=4 sw=4: */
diff --git a/src/iscygpty.h b/src/iscygpty.h
index fbca4b4..82fd0af 100644
--- a/src/iscygpty.h
+++ b/src/iscygpty.h
@@ -2,7 +2,7 @@
  * iscygpty.h -- part of 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
  * the MIT license (as described below) or the Vim license.
@@ -30,7 +30,12 @@
 #ifndef _ISCYGPTY_H
 #define _ISCYGPTY_H
 
+#ifdef _WIN32
 int is_cygpty(int fd);
 int is_cygpty_used(void);
+#else
+#define is_cygpty(fd)		0
+#define is_cygpty_used()	0
+#endif
 
 #endif /* _ISCYGPTY_H */
diff --git a/src/version.c b/src/version.c
index fbf175e..d5257a7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -770,6 +770,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1030,
+/**/
     1029,
 /**/
     1028,
