diff options
Diffstat (limited to 'src/os_win32.c')
-rw-r--r-- | src/os_win32.c | 134 |
1 files changed, 11 insertions, 123 deletions
diff --git a/src/os_win32.c b/src/os_win32.c index b5a6ccebae..8966053b83 100644 --- a/src/os_win32.c +++ b/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 |