mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.1.0809: too many #ifdefs
Problem: Too many #ifdefs. Solution: Graduate FEAT_MBYTE, part 3.
This commit is contained in:
134
src/os_win32.c
134
src/os_win32.c
@@ -452,11 +452,7 @@ unescape_shellxquote(char_u *p, char_u *escaped)
|
||||
{
|
||||
if (*p == '^' && vim_strchr(escaped, p[1]) != NULL)
|
||||
mch_memmove(p, p + 1, l--);
|
||||
#ifdef FEAT_MBYTE
|
||||
n = (*mb_ptr2len)(p);
|
||||
#else
|
||||
n = 1;
|
||||
#endif
|
||||
p += n;
|
||||
l -= n;
|
||||
}
|
||||
@@ -1890,7 +1886,6 @@ mch_inchar(
|
||||
{
|
||||
int n = 1;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (ch2 == NUL)
|
||||
{
|
||||
int i;
|
||||
@@ -1912,7 +1907,6 @@ mch_inchar(
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
typeahead[typeaheadlen] = c;
|
||||
if (ch2 != NUL)
|
||||
{
|
||||
@@ -1950,17 +1944,11 @@ mch_inchar(
|
||||
if ((modifiers & MOD_MASK_ALT)
|
||||
&& n == 1
|
||||
&& (typeahead[typeaheadlen] & 0x80) == 0
|
||||
#ifdef FEAT_MBYTE
|
||||
&& !enc_dbcs
|
||||
#endif
|
||||
)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
n = (*mb_char2bytes)(typeahead[typeaheadlen] | 0x80,
|
||||
typeahead + typeaheadlen);
|
||||
#else
|
||||
typeahead[typeaheadlen] |= 0x80;
|
||||
#endif
|
||||
modifiers &= ~MOD_MASK_ALT;
|
||||
}
|
||||
|
||||
@@ -2044,7 +2032,6 @@ executable_exists(char *name, char_u **path, int use_path)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *p = enc_to_utf16((char_u *)name, NULL);
|
||||
@@ -2073,7 +2060,6 @@ executable_exists(char *name, char_u **path, int use_path)
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
curpath = getenv("PATH");
|
||||
newpath = (char*)alloc((unsigned)(STRLEN(curpath) + 3));
|
||||
@@ -2768,7 +2754,6 @@ mch_check_win(
|
||||
}
|
||||
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
/*
|
||||
* fname_casew(): Wide version of fname_case(). Set the case of the file name,
|
||||
* if it already exists. When "len" is > 0, also expand short to long
|
||||
@@ -2878,7 +2863,6 @@ fname_casew(
|
||||
wcscpy(name, szTrueName);
|
||||
return OK;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* fname_case(): Set the case of the file name, if it already exists.
|
||||
@@ -2906,7 +2890,6 @@ fname_case(
|
||||
|
||||
slash_adjust(name);
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *p = enc_to_utf16(name, NULL);
|
||||
@@ -2933,7 +2916,6 @@ fname_case(
|
||||
}
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* If 'enc' is utf-8, flen can be larger than _MAX_PATH.
|
||||
* So we should check this after calling wide function. */
|
||||
@@ -2962,7 +2944,6 @@ fname_case(
|
||||
porigPrev = porig;
|
||||
while (*porig != NUL && *porig != psepc)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
int l;
|
||||
|
||||
if (enc_dbcs)
|
||||
@@ -2972,7 +2953,6 @@ fname_case(
|
||||
*ptrue++ = *porig++;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
*ptrue++ = *porig++;
|
||||
}
|
||||
*ptrue = NUL;
|
||||
@@ -3044,7 +3024,6 @@ mch_get_user_name(
|
||||
char szUserName[256 + 1]; /* UNLEN is 256 */
|
||||
DWORD cch = sizeof szUserName;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR wszUserName[256 + 1]; /* UNLEN is 256 */
|
||||
@@ -3062,7 +3041,6 @@ mch_get_user_name(
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (GetUserName(szUserName, &cch))
|
||||
{
|
||||
vim_strncpy(s, (char_u *)szUserName, len - 1);
|
||||
@@ -3083,7 +3061,6 @@ mch_get_host_name(
|
||||
{
|
||||
DWORD cch = len;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR wszHostName[256 + 1];
|
||||
@@ -3101,7 +3078,6 @@ mch_get_host_name(
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (!GetComputerName((LPSTR)s, &cch))
|
||||
vim_strncpy(s, (char_u *)"PC (Win32 Vim)", len - 1);
|
||||
}
|
||||
@@ -3135,7 +3111,6 @@ mch_dirname(
|
||||
* But the Win32s known bug list says that getcwd() doesn't work
|
||||
* so use the Win32 system call instead. <Negri>
|
||||
*/
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR wbuf[_MAX_PATH + 1];
|
||||
@@ -3167,7 +3142,6 @@ mch_dirname(
|
||||
}
|
||||
return FAIL;
|
||||
}
|
||||
#endif
|
||||
if (GetCurrentDirectory(len, (LPSTR)buf) == 0)
|
||||
return FAIL;
|
||||
lfnlen = GetLongPathNameA((LPCSTR)buf, (LPSTR)abuf, _MAX_PATH);
|
||||
@@ -3205,7 +3179,6 @@ mch_setperm(char_u *name, long perm)
|
||||
{
|
||||
long n = -1;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *p = enc_to_utf16(name, NULL);
|
||||
@@ -3219,7 +3192,6 @@ mch_setperm(char_u *name, long perm)
|
||||
}
|
||||
}
|
||||
if (n == -1)
|
||||
#endif
|
||||
n = _chmod((const char *)name, perm);
|
||||
if (n == -1)
|
||||
return FAIL;
|
||||
@@ -3290,7 +3262,6 @@ mch_isrealdir(char_u *name)
|
||||
int
|
||||
mch_mkdir(char_u *name)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *p;
|
||||
@@ -3303,7 +3274,6 @@ mch_mkdir(char_u *name)
|
||||
vim_free(p);
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
return _mkdir((const char *)name);
|
||||
}
|
||||
|
||||
@@ -3314,7 +3284,6 @@ mch_mkdir(char_u *name)
|
||||
int
|
||||
mch_rmdir(char_u *name)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *p;
|
||||
@@ -3327,7 +3296,6 @@ mch_rmdir(char_u *name)
|
||||
vim_free(p);
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
return _rmdir((const char *)name);
|
||||
}
|
||||
|
||||
@@ -3353,7 +3321,6 @@ mch_is_symbolic_link(char_u *name)
|
||||
int res = FALSE;
|
||||
WIN32_FIND_DATAA findDataA;
|
||||
DWORD fileFlags = 0, reparseTag = 0;
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
WIN32_FIND_DATAW findDataW;
|
||||
|
||||
@@ -3370,7 +3337,6 @@ mch_is_symbolic_link(char_u *name)
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
hFind = FindFirstFile((LPCSTR)name, &findDataA);
|
||||
if (hFind != INVALID_HANDLE_VALUE)
|
||||
@@ -3415,7 +3381,6 @@ win32_fileinfo(char_u *fname, BY_HANDLE_FILE_INFORMATION *info)
|
||||
{
|
||||
HANDLE hFile;
|
||||
int res = FILEINFO_READ_FAIL;
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
@@ -3436,7 +3401,6 @@ win32_fileinfo(char_u *fname, BY_HANDLE_FILE_INFORMATION *info)
|
||||
vim_free(wn);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
hFile = CreateFile((LPCSTR)fname, /* file name */
|
||||
GENERIC_READ, /* access mode */
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE, /* share mode */
|
||||
@@ -3466,7 +3430,6 @@ win32_fileinfo(char_u *fname, BY_HANDLE_FILE_INFORMATION *info)
|
||||
win32_getattrs(char_u *name)
|
||||
{
|
||||
int attr;
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *p = NULL;
|
||||
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
@@ -3478,7 +3441,6 @@ win32_getattrs(char_u *name)
|
||||
vim_free(p);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
attr = GetFileAttributes((char *)name);
|
||||
|
||||
return attr;
|
||||
@@ -3493,7 +3455,6 @@ win32_getattrs(char_u *name)
|
||||
win32_setattrs(char_u *name, int attrs)
|
||||
{
|
||||
int res;
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *p = NULL;
|
||||
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
@@ -3505,7 +3466,6 @@ win32_setattrs(char_u *name, int attrs)
|
||||
vim_free(p);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
res = SetFileAttributes((char *)name, attrs);
|
||||
|
||||
return res ? 0 : -1;
|
||||
@@ -3621,9 +3581,7 @@ mch_nodetype(char_u *name)
|
||||
{
|
||||
HANDLE hFile;
|
||||
int type;
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
#endif
|
||||
|
||||
/* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to
|
||||
* read from it later will cause Vim to hang. Thus return NODE_WRITABLE
|
||||
@@ -3631,7 +3589,6 @@ mch_nodetype(char_u *name)
|
||||
if (STRNCMP(name, "\\\\.\\", 4) == 0)
|
||||
return NODE_WRITABLE;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
wn = enc_to_utf16(name, NULL);
|
||||
|
||||
@@ -3647,7 +3604,6 @@ mch_nodetype(char_u *name)
|
||||
vim_free(wn);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
hFile = CreateFile((LPCSTR)name, /* file name */
|
||||
GENERIC_WRITE, /* access mode */
|
||||
0, /* share mode */
|
||||
@@ -3695,7 +3651,6 @@ mch_get_acl(char_u *fname)
|
||||
p = (struct my_acl *)alloc_clear((unsigned)sizeof(struct my_acl));
|
||||
if (p != NULL)
|
||||
{
|
||||
# ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
@@ -3737,7 +3692,6 @@ mch_get_acl(char_u *fname)
|
||||
vim_free(wn);
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
/* Try to retrieve the entire security descriptor. */
|
||||
err = GetNamedSecurityInfo(
|
||||
@@ -3815,9 +3769,7 @@ mch_set_acl(char_u *fname, vim_acl_T acl)
|
||||
|
||||
if (p != NULL)
|
||||
{
|
||||
# ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
# endif
|
||||
|
||||
/* Set security flags */
|
||||
if (p->pSidOwner)
|
||||
@@ -3836,7 +3788,6 @@ mch_set_acl(char_u *fname, vim_acl_T acl)
|
||||
if (p->pSacl)
|
||||
sec_info |= SACL_SECURITY_INFORMATION;
|
||||
|
||||
# ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
wn = enc_to_utf16(fname, NULL);
|
||||
if (wn != NULL)
|
||||
@@ -3853,7 +3804,6 @@ mch_set_acl(char_u *fname, vim_acl_T acl)
|
||||
vim_free(wn);
|
||||
}
|
||||
else
|
||||
# endif
|
||||
{
|
||||
(void)SetNamedSecurityInfo(
|
||||
(LPSTR)fname, // Abstract filename
|
||||
@@ -4211,7 +4161,6 @@ vim_create_process(
|
||||
LPVOID *env,
|
||||
char *cwd)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
BOOL ret;
|
||||
@@ -4247,7 +4196,6 @@ vim_create_process(
|
||||
return ret;
|
||||
}
|
||||
fallback:
|
||||
#endif
|
||||
return CreateProcess(
|
||||
NULL, /* Executable name */
|
||||
cmd, /* Command to execute */
|
||||
@@ -4267,7 +4215,6 @@ vim_shell_execute(
|
||||
char *cmd,
|
||||
INT n_show_cmd)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *wcmd = enc_to_utf16((char_u *)cmd, NULL);
|
||||
@@ -4279,7 +4226,6 @@ vim_shell_execute(
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return ShellExecute(NULL, NULL, cmd, NULL, NULL, n_show_cmd);
|
||||
}
|
||||
|
||||
@@ -4466,20 +4412,9 @@ dump_pipe(int options,
|
||||
while (ret != 0 && availableBytes > 0)
|
||||
{
|
||||
repeatCount++;
|
||||
toRead =
|
||||
# ifdef FEAT_MBYTE
|
||||
(DWORD)(BUFLEN - *buffer_off);
|
||||
# else
|
||||
(DWORD)BUFLEN;
|
||||
# endif
|
||||
toRead = (DWORD)(BUFLEN - *buffer_off);
|
||||
toRead = availableBytes < toRead ? availableBytes : toRead;
|
||||
ReadFile(g_hChildStd_OUT_Rd, buffer
|
||||
# ifdef FEAT_MBYTE
|
||||
+ *buffer_off, toRead
|
||||
# else
|
||||
, toRead
|
||||
# endif
|
||||
, &len, NULL);
|
||||
ReadFile(g_hChildStd_OUT_Rd, buffer + *buffer_off, toRead , &len, NULL);
|
||||
|
||||
/* If we haven't read anything, there is a problem */
|
||||
if (len == 0)
|
||||
@@ -4501,7 +4436,6 @@ dump_pipe(int options,
|
||||
ga_append(ga, buffer[i]);
|
||||
}
|
||||
}
|
||||
# ifdef FEAT_MBYTE
|
||||
else if (has_mbyte)
|
||||
{
|
||||
int l;
|
||||
@@ -4545,7 +4479,6 @@ dump_pipe(int options,
|
||||
}
|
||||
*buffer_off = 0;
|
||||
}
|
||||
# endif /* FEAT_MBYTE */
|
||||
else
|
||||
{
|
||||
buffer[len] = NUL;
|
||||
@@ -4740,11 +4673,9 @@ mch_system_piped(char *cmd, int options)
|
||||
}
|
||||
else if (ta_buf[i] == '\r')
|
||||
ta_buf[i] = '\n';
|
||||
# ifdef FEAT_MBYTE
|
||||
if (has_mbyte)
|
||||
i += (*mb_ptr2len_len)(ta_buf + i,
|
||||
ta_len + len - i) - 1;
|
||||
# endif
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -4755,7 +4686,6 @@ mch_system_piped(char *cmd, int options)
|
||||
{
|
||||
if (ta_buf[i] == '\n' || ta_buf[i] == '\b')
|
||||
msg_putchar(ta_buf[i]);
|
||||
# ifdef FEAT_MBYTE
|
||||
else if (has_mbyte)
|
||||
{
|
||||
int l = (*mb_ptr2len)(ta_buf + i);
|
||||
@@ -4763,7 +4693,6 @@ mch_system_piped(char *cmd, int options)
|
||||
msg_outtrans_len(ta_buf + i, l);
|
||||
i += l - 1;
|
||||
}
|
||||
# endif
|
||||
else
|
||||
msg_outtrans_len(ta_buf + i, 1);
|
||||
}
|
||||
@@ -4857,7 +4786,6 @@ mch_system(char *cmd, int options)
|
||||
}
|
||||
#else
|
||||
|
||||
# ifdef FEAT_MBYTE
|
||||
static int
|
||||
mch_system(char *cmd, int options)
|
||||
{
|
||||
@@ -4873,9 +4801,6 @@ mch_system(char *cmd, int options)
|
||||
}
|
||||
return system(cmd);
|
||||
}
|
||||
# else
|
||||
# define mch_system(c, o) system(c)
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -4972,7 +4897,6 @@ mch_call_shell(
|
||||
int tmode = cur_tmode;
|
||||
#ifdef FEAT_TITLE
|
||||
char szShellTitle[512];
|
||||
# ifdef FEAT_MBYTE
|
||||
int did_set_title = FALSE;
|
||||
|
||||
/* Change the title to reflect that we are in a subshell. */
|
||||
@@ -5003,7 +4927,6 @@ mch_call_shell(
|
||||
}
|
||||
}
|
||||
if (!did_set_title)
|
||||
# endif
|
||||
/* Change the title to reflect that we are in a subshell. */
|
||||
if (GetConsoleTitle(szShellTitle, sizeof(szShellTitle) - 4) > 0)
|
||||
{
|
||||
@@ -5217,7 +5140,6 @@ mch_call_shell(
|
||||
"External commands will not pause after completion.\n"
|
||||
"See :help win32-vimrun for more information.");
|
||||
char *title = _("Vim Warning");
|
||||
# ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *wmsg = enc_to_utf16((char_u *)msg, NULL);
|
||||
@@ -5229,7 +5151,6 @@ mch_call_shell(
|
||||
vim_free(wtitle);
|
||||
}
|
||||
else
|
||||
# endif
|
||||
MessageBox(NULL, msg, title, MB_ICONWARNING);
|
||||
need_vimrun_warning = FALSE;
|
||||
}
|
||||
@@ -5294,8 +5215,8 @@ job_io_file_open(
|
||||
DWORD dwFlagsAndAttributes)
|
||||
{
|
||||
HANDLE h;
|
||||
# ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
wn = enc_to_utf16(fname, NULL);
|
||||
@@ -5308,7 +5229,6 @@ job_io_file_open(
|
||||
}
|
||||
}
|
||||
if (wn == NULL)
|
||||
# endif
|
||||
h = CreateFile((LPCSTR)fname, dwDesiredAccess, dwShareMode,
|
||||
lpSecurityAttributes, dwCreationDisposition,
|
||||
dwFlagsAndAttributes, NULL);
|
||||
@@ -6339,7 +6259,6 @@ write_chars(
|
||||
COORD coord = g_coord;
|
||||
DWORD written;
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
static WCHAR *unicodebuf = NULL;
|
||||
@@ -6392,7 +6311,6 @@ write_chars(
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (!USE_VTP)
|
||||
{
|
||||
@@ -6763,10 +6681,8 @@ mch_delay(
|
||||
int
|
||||
mch_remove(char_u *name)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
int n;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* On Windows, deleting a directory's symbolic link is done by
|
||||
@@ -6777,7 +6693,6 @@ mch_remove(char_u *name)
|
||||
|
||||
win32_setattrs(name, FILE_ATTRIBUTE_NORMAL);
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
wn = enc_to_utf16(name, NULL);
|
||||
@@ -6788,7 +6703,6 @@ mch_remove(char_u *name)
|
||||
return n;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return DeleteFile((LPCSTR)name) ? 0 : -1;
|
||||
}
|
||||
|
||||
@@ -6839,7 +6753,6 @@ mch_total_mem(int special UNUSED)
|
||||
return (long_u)((ms.ullTotalPhys - WINNT_RESERVE_BYTES) / 1024);
|
||||
}
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
/*
|
||||
* Same code as below, but with wide functions and no comments.
|
||||
* Return 0 for success, non-zero for failure.
|
||||
@@ -6893,7 +6806,6 @@ mch_wrename(WCHAR *wold, WCHAR *wnew)
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
@@ -6924,7 +6836,6 @@ mch_rename(
|
||||
char szNewPath[_MAX_PATH+1];
|
||||
char *pszFilePart;
|
||||
HANDLE hf;
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *wold = NULL;
|
||||
WCHAR *wnew = NULL;
|
||||
int retval = -1;
|
||||
@@ -6939,7 +6850,6 @@ mch_rename(
|
||||
vim_free(wnew);
|
||||
return retval;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* No need to play tricks unless the file name contains a "~" as the
|
||||
@@ -7024,25 +6934,20 @@ mch_access(char *n, int p)
|
||||
{
|
||||
HANDLE hFile;
|
||||
int retval = -1; /* default: fail */
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR *wn = NULL;
|
||||
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
wn = enc_to_utf16((char_u *)n, NULL);
|
||||
#endif
|
||||
|
||||
if (mch_isdir((char_u *)n))
|
||||
{
|
||||
char TempName[_MAX_PATH + 16] = "";
|
||||
#ifdef FEAT_MBYTE
|
||||
WCHAR TempNameW[_MAX_PATH + 16] = L"";
|
||||
#endif
|
||||
|
||||
if (p & R_OK)
|
||||
{
|
||||
/* Read check is performed by seeing if we can do a find file on
|
||||
* the directory for any file. */
|
||||
#ifdef FEAT_MBYTE
|
||||
if (wn != NULL)
|
||||
{
|
||||
int i;
|
||||
@@ -7062,7 +6967,6 @@ mch_access(char *n, int p)
|
||||
(void)FindClose(hFile);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
char *pch;
|
||||
WIN32_FIND_DATA d;
|
||||
@@ -7087,7 +6991,6 @@ mch_access(char *n, int p)
|
||||
* directories on read-only network shares. However, in
|
||||
* directories whose ACL allows writes but denies deletes will end
|
||||
* up keeping the temporary file :-(. */
|
||||
#ifdef FEAT_MBYTE
|
||||
if (wn != NULL)
|
||||
{
|
||||
if (!GetTempFileNameW(wn, L"VIM", 0, TempNameW))
|
||||
@@ -7096,7 +6999,6 @@ mch_access(char *n, int p)
|
||||
DeleteFileW(TempNameW);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
if (!GetTempFileName(n, "VIM", 0, TempName))
|
||||
goto getout;
|
||||
@@ -7114,12 +7016,10 @@ mch_access(char *n, int p)
|
||||
DWORD access_mode = ((p & W_OK) ? GENERIC_WRITE : 0)
|
||||
| ((p & R_OK) ? GENERIC_READ : 0);
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (wn != NULL)
|
||||
hFile = CreateFileW(wn, access_mode, share_mode,
|
||||
NULL, OPEN_EXISTING, 0, NULL);
|
||||
else
|
||||
#endif
|
||||
hFile = CreateFile(n, access_mode, share_mode,
|
||||
NULL, OPEN_EXISTING, 0, NULL);
|
||||
if (hFile == INVALID_HANDLE_VALUE)
|
||||
@@ -7129,13 +7029,10 @@ mch_access(char *n, int p)
|
||||
|
||||
retval = 0; /* success */
|
||||
getout:
|
||||
#ifdef FEAT_MBYTE
|
||||
vim_free(wn);
|
||||
#endif
|
||||
return retval;
|
||||
}
|
||||
|
||||
#if defined(FEAT_MBYTE) || defined(PROTO)
|
||||
/*
|
||||
* Version of open() that may use UTF-16 file name.
|
||||
*/
|
||||
@@ -7143,7 +7040,7 @@ getout:
|
||||
mch_open(const char *name, int flags, int mode)
|
||||
{
|
||||
/* _wopen() does not work with Borland C 5.5: creates a read-only file. */
|
||||
# ifndef __BORLANDC__
|
||||
#ifndef __BORLANDC__
|
||||
WCHAR *wn;
|
||||
int f;
|
||||
|
||||
@@ -7157,7 +7054,7 @@ mch_open(const char *name, int flags, int mode)
|
||||
return f;
|
||||
}
|
||||
}
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* open() can open a file which name is longer than _MAX_PATH bytes
|
||||
* and shorter than _MAX_PATH characters successfully, but sometimes it
|
||||
@@ -7180,7 +7077,7 @@ mch_fopen(const char *name, const char *mode)
|
||||
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
# if defined(DEBUG) && _MSC_VER >= 1400
|
||||
#if defined(DEBUG) && _MSC_VER >= 1400
|
||||
/* Work around an annoying assertion in the Microsoft debug CRT
|
||||
* when mode's text/binary setting doesn't match _get_fmode(). */
|
||||
char newMode = mode[strlen(mode) - 1];
|
||||
@@ -7191,7 +7088,7 @@ mch_fopen(const char *name, const char *mode)
|
||||
_set_fmode(_O_TEXT);
|
||||
else if (newMode == 'b')
|
||||
_set_fmode(_O_BINARY);
|
||||
# endif
|
||||
#endif
|
||||
wn = enc_to_utf16((char_u *)name, NULL);
|
||||
wm = enc_to_utf16((char_u *)mode, NULL);
|
||||
if (wn != NULL && wm != NULL)
|
||||
@@ -7199,9 +7096,9 @@ mch_fopen(const char *name, const char *mode)
|
||||
vim_free(wn);
|
||||
vim_free(wm);
|
||||
|
||||
# if defined(DEBUG) && _MSC_VER >= 1400
|
||||
#if defined(DEBUG) && _MSC_VER >= 1400
|
||||
_set_fmode(oldMode);
|
||||
# endif
|
||||
#endif
|
||||
return f;
|
||||
}
|
||||
|
||||
@@ -7214,9 +7111,7 @@ mch_fopen(const char *name, const char *mode)
|
||||
|
||||
return fopen(name, mode);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
/*
|
||||
* SUB STREAM (aka info stream) handling:
|
||||
*
|
||||
@@ -7360,7 +7255,6 @@ copy_infostreams(char_u *from, char_u *to)
|
||||
vim_free(fromw);
|
||||
vim_free(tow);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Copy file attributes from file "from" to file "to".
|
||||
@@ -7370,11 +7264,9 @@ copy_infostreams(char_u *from, char_u *to)
|
||||
int
|
||||
mch_copy_file_attribute(char_u *from, char_u *to)
|
||||
{
|
||||
#ifdef FEAT_MBYTE
|
||||
/* File streams only work on Windows NT and later. */
|
||||
PlatformId();
|
||||
copy_infostreams(from, to);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -7464,7 +7356,6 @@ myresetstkoflw(void)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(FEAT_MBYTE) || defined(PROTO)
|
||||
/*
|
||||
* The command line arguments in UCS2
|
||||
*/
|
||||
@@ -7691,7 +7582,6 @@ fix_arg_enc(void)
|
||||
|
||||
set_alist_count();
|
||||
}
|
||||
#endif
|
||||
|
||||
int
|
||||
mch_setenv(char *var, char *value, int x)
|
||||
@@ -7704,7 +7594,6 @@ mch_setenv(char *var, char *value, int x)
|
||||
|
||||
sprintf((char *)envbuf, "%s=%s", var, value);
|
||||
|
||||
#ifdef FEAT_MBYTE
|
||||
if (enc_codepage >= 0 && (int)GetACP() != enc_codepage)
|
||||
{
|
||||
WCHAR *p = enc_to_utf16(envbuf, NULL);
|
||||
@@ -7713,14 +7602,13 @@ mch_setenv(char *var, char *value, int x)
|
||||
if (p == NULL)
|
||||
return -1;
|
||||
_wputenv(p);
|
||||
# ifdef libintl_wputenv
|
||||
#ifdef libintl_wputenv
|
||||
libintl_wputenv(p);
|
||||
# endif
|
||||
#endif
|
||||
/* Unlike Un*x systems, we can free the string for _wputenv(). */
|
||||
vim_free(p);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
_putenv((char *)envbuf);
|
||||
#ifdef libintl_putenv
|
||||
|
Reference in New Issue
Block a user