diff options
Diffstat (limited to 'gcc/ada/adaint.c')
-rw-r--r-- | gcc/ada/adaint.c | 73 |
1 files changed, 40 insertions, 33 deletions
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c index 43ec654..1b6bb7f 100644 --- a/gcc/ada/adaint.c +++ b/gcc/ada/adaint.c @@ -82,6 +82,9 @@ #include <Rtapi.h> #else #include "mingw32.h" + +/* Current code page to use, set in initialize.c. */ +UINT CurrentCodePage; #endif #include <sys/utime.h> @@ -482,8 +485,8 @@ __gnat_try_lock (char *dir, char *file) TCHAR wfile[GNAT_MAX_PATH_LEN]; TCHAR wdir[GNAT_MAX_PATH_LEN]; - S2WSU (wdir, dir, GNAT_MAX_PATH_LEN); - S2WSU (wfile, file, GNAT_MAX_PATH_LEN); + S2WSC (wdir, dir, GNAT_MAX_PATH_LEN); + S2WSC (wfile, file, GNAT_MAX_PATH_LEN); _stprintf (wfull_path, _T("%s%c%s"), wdir, _T(DIR_SEPARATOR), wfile); fd = _topen (wfull_path, O_CREAT | O_EXCL, 0600); @@ -585,7 +588,7 @@ __gnat_get_current_dir (char *dir, int *length) _tgetcwd (wdir, *length); - WS2SU (dir, wdir, GNAT_MAX_PATH_LEN); + WS2SC (dir, wdir, GNAT_MAX_PATH_LEN); #elif defined (VMS) /* Force Unix style, which is what GNAT uses internally. */ @@ -662,7 +665,7 @@ __gnat_os_filename (char *filename, char *w_filename ATTRIBUTE_UNUSED, char *encoding ATTRIBUTE_UNUSED, int *e_length) { #if defined (_WIN32) && ! defined (__vxworks) && ! defined (CROSS_DIRECTORY_STRUCTURE) - WS2SU (os_name, (TCHAR *)w_filename, o_length); + WS2SC (os_name, (TCHAR *)w_filename, o_length); *o_length = strlen (os_name); strcpy (encoding, "encoding=utf8"); *e_length = strlen (encoding); @@ -682,7 +685,7 @@ __gnat_unlink (char *path) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); return _tunlink (wpath); } #else @@ -699,8 +702,8 @@ __gnat_rename (char *from, char *to) { TCHAR wfrom[GNAT_MAX_PATH_LEN], wto[GNAT_MAX_PATH_LEN]; - S2WSU (wfrom, from, GNAT_MAX_PATH_LEN); - S2WSU (wto, to, GNAT_MAX_PATH_LEN); + S2WSC (wfrom, from, GNAT_MAX_PATH_LEN); + S2WSC (wto, to, GNAT_MAX_PATH_LEN); return _trename (wfrom, wto); } #else @@ -717,7 +720,7 @@ __gnat_chdir (char *path) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); return _tchdir (wpath); } #else @@ -734,7 +737,7 @@ __gnat_rmdir (char *path) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); return _trmdir (wpath); } #else @@ -751,7 +754,9 @@ __gnat_fopen (char *path, char *mode, int encoding ATTRIBUTE_UNUSED) S2WS (wmode, mode, 10); - if (encoding == Encoding_UTF8) + if (encoding == Encoding_Unspecified) + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); + else if (encoding == Encoding_UTF8) S2WSU (wpath, path, GNAT_MAX_PATH_LEN); else S2WS (wpath, path, GNAT_MAX_PATH_LEN); @@ -773,7 +778,9 @@ __gnat_freopen (char *path, char *mode, FILE *stream, int encoding ATTRIBUTE_UNU S2WS (wmode, mode, 10); - if (encoding == Encoding_UTF8) + if (encoding == Encoding_Unspecified) + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); + else if (encoding == Encoding_UTF8) S2WSU (wpath, path, GNAT_MAX_PATH_LEN); else S2WS (wpath, path, GNAT_MAX_PATH_LEN); @@ -805,7 +812,7 @@ __gnat_open_read (char *path, int fmode) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); fd = _topen (wpath, O_RDONLY | o_fmode, 0444); } #else @@ -846,7 +853,7 @@ __gnat_open_rw (char *path, int fmode) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); fd = _topen (wpath, O_RDWR | o_fmode, PERM); } #else @@ -872,7 +879,7 @@ __gnat_open_create (char *path, int fmode) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); fd = _topen (wpath, O_WRONLY | O_CREAT | O_TRUNC | o_fmode, PERM); } #else @@ -894,7 +901,7 @@ __gnat_create_output_file (char *path) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); fd = _topen (wpath, O_WRONLY | O_CREAT | O_TRUNC | O_TEXT, PERM); } #else @@ -920,7 +927,7 @@ __gnat_open_append (char *path, int fmode) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); fd = _topen (wpath, O_WRONLY | O_CREAT | O_APPEND | o_fmode, PERM); } #else @@ -948,7 +955,7 @@ __gnat_open_new (char *path, int fmode) { TCHAR wpath[GNAT_MAX_PATH_LEN]; - S2WSU (wpath, path, GNAT_MAX_PATH_LEN); + S2WSC (wpath, path, GNAT_MAX_PATH_LEN); fd = _topen (wpath, O_WRONLY | O_CREAT | O_EXCL | o_fmode, PERM); } #else @@ -1101,7 +1108,7 @@ DIR* __gnat_opendir (char *name) #elif defined (__MINGW32__) TCHAR wname[GNAT_MAX_PATH_LEN]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN); + S2WSC (wname, name, GNAT_MAX_PATH_LEN); return (DIR*)_topendir (wname); #else @@ -1125,7 +1132,7 @@ __gnat_readdir (DIR *dirp, char *buffer, int *len) if (dirent != NULL) { - WS2SU (buffer, dirent->d_name, GNAT_MAX_PATH_LEN); + WS2SC (buffer, dirent->d_name, GNAT_MAX_PATH_LEN); *len = strlen (buffer); return buffer; @@ -1231,7 +1238,7 @@ __gnat_file_time_name (char *name) time_t ret = -1; TCHAR wname[GNAT_MAX_PATH_LEN]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN); + S2WSC (wname, name, GNAT_MAX_PATH_LEN); HANDLE h = CreateFile (wname, GENERIC_READ, FILE_SHARE_READ, 0, @@ -1368,7 +1375,7 @@ __gnat_set_file_time_name (char *name, time_t time_stamp) } t_write; TCHAR wname[GNAT_MAX_PATH_LEN]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN); + S2WSC (wname, name, GNAT_MAX_PATH_LEN); HANDLE h = CreateFile (wname, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, @@ -1631,7 +1638,7 @@ __gnat_stat (char *name, struct stat *statbuf) int name_len; TCHAR last_char; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); name_len = _tcslen (wname); if (name_len > GNAT_MAX_PATH_LEN) @@ -1667,7 +1674,7 @@ __gnat_file_exists (char *name) offset the _stat() routine fails on specific files like CON: */ TCHAR wname [GNAT_MAX_PATH_LEN + 2]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); return GetFileAttributes (wname) != INVALID_FILE_ATTRIBUTES; #else struct stat statbuf; @@ -1851,7 +1858,7 @@ __gnat_is_readable_file (char *name) TCHAR wname [GNAT_MAX_PATH_LEN + 2]; GENERIC_MAPPING GenericMapping; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); ZeroMemory (&GenericMapping, sizeof (GENERIC_MAPPING)); GenericMapping.GenericRead = GENERIC_READ; @@ -1875,7 +1882,7 @@ __gnat_is_writable_file (char *name) TCHAR wname [GNAT_MAX_PATH_LEN + 2]; GENERIC_MAPPING GenericMapping; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); ZeroMemory (&GenericMapping, sizeof (GENERIC_MAPPING)); GenericMapping.GenericWrite = GENERIC_WRITE; @@ -1901,7 +1908,7 @@ __gnat_is_executable_file (char *name) TCHAR wname [GNAT_MAX_PATH_LEN + 2]; GENERIC_MAPPING GenericMapping; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); ZeroMemory (&GenericMapping, sizeof (GENERIC_MAPPING)); GenericMapping.GenericExecute = GENERIC_EXECUTE; @@ -1924,7 +1931,7 @@ __gnat_set_writable (char *name) #if defined (_WIN32) && !defined (RTX) TCHAR wname [GNAT_MAX_PATH_LEN + 2]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); __gnat_set_OWNER_ACL (wname, GRANT_ACCESS, FILE_GENERIC_WRITE); SetFileAttributes @@ -1946,7 +1953,7 @@ __gnat_set_executable (char *name) #if defined (_WIN32) && !defined (RTX) TCHAR wname [GNAT_MAX_PATH_LEN + 2]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); __gnat_set_OWNER_ACL (wname, GRANT_ACCESS, FILE_GENERIC_EXECUTE); #elif ! defined (__vxworks) && ! defined(__nucleus__) @@ -1966,7 +1973,7 @@ __gnat_set_non_writable (char *name) #if defined (_WIN32) && !defined (RTX) TCHAR wname [GNAT_MAX_PATH_LEN + 2]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); __gnat_set_OWNER_ACL (wname, DENY_ACCESS, @@ -1991,7 +1998,7 @@ __gnat_set_readable (char *name) #if defined (_WIN32) && !defined (RTX) TCHAR wname [GNAT_MAX_PATH_LEN + 2]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); __gnat_set_OWNER_ACL (wname, GRANT_ACCESS, FILE_GENERIC_READ); #elif ! defined (__vxworks) && ! defined(__nucleus__) @@ -2010,7 +2017,7 @@ __gnat_set_non_readable (char *name) #if defined (_WIN32) && !defined (RTX) TCHAR wname [GNAT_MAX_PATH_LEN + 2]; - S2WSU (wname, name, GNAT_MAX_PATH_LEN + 2); + S2WSC (wname, name, GNAT_MAX_PATH_LEN + 2); __gnat_set_OWNER_ACL (wname, DENY_ACCESS, FILE_GENERIC_READ); #elif ! defined (__vxworks) && ! defined(__nucleus__) @@ -2285,7 +2292,7 @@ win32_no_block_spawn (char *command, char *args[]) int wsize = csize * 2; TCHAR *wcommand = (TCHAR *) xmalloc (wsize); - S2WSU (wcommand, full_command, wsize); + S2WSC (wcommand, full_command, wsize); free (full_command); @@ -2581,7 +2588,7 @@ __gnat_locate_exec_on_path (char *exec_name) apath_val = alloca (EXPAND_BUFFER_SIZE); - WS2SU (apath_val, wapath_val, EXPAND_BUFFER_SIZE); + WS2SC (apath_val, wapath_val, EXPAND_BUFFER_SIZE); return __gnat_locate_exec (exec_name, apath_val); #else |