Eric Blake
15e9ecd14a
Add fexecve, execvpe.
...
* exec.cc (fexecve): New function.
* cygwin.din (execvpe, fexecve): Export new fexecve and existing
execvpe.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* posix.sgml: Mention them.
2009-09-26 21:01:10 +00:00
Eric Blake
52dba6a5c4
Fix some POSIX-compliance bugs in link, rename, mkdir.
...
* syscalls.cc (link): Delete obsolete comment. Reject directories
and missing source up front.
(rename): Use correct errno for trailing '.'. Detect empty
strings. Allow trailing slash to newpath iff oldpath is
directory.
* dir.cc (mkdir): Reject dangling symlink with trailing slash.
* fhandler_disk_file.cc (fhandler_disk_file::link): Reject
trailing slash.
* fhandler.cc (fhandler_base::link): Match Linux errno.
2009-09-26 15:51:53 +00:00
Eric Blake
76fe91b90b
* new-features.sgml (ov-new1.7-file): Mention eaccess, euidaccess,
...
canonicalize_file_name, and document change in access semantics.
2009-09-25 23:56:18 +00:00
Eric Blake
2bf78f0928
Provide euidaccess, canonicalize_file_name; fix fchmodat.
...
* syscalls.cc (fchmodat): lchmod is not yet implemented.
(euidaccess): New function.
* path.cc (realpath): Update comment.
(canonicalize_file_name): New function.
* include/cygwin/stdlib.h (canonicalize_file_name): Declare it.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* cygwin.din: Export canonicalize_file_name, eaccess, euidaccess.
* posix.sgml: Mention them.
2009-09-25 23:55:00 +00:00
Corinna Vinschen
5ceb291210
* setup2.sgml (setup-locale-problems): Fix charset names of codepages
...
936 and 949.
2009-09-25 16:42:36 +00:00
Eric Blake
3dbe243afa
Fix faccessat(,0) and access() semantics.
...
* fhandler.h (fhandler_base::fhaccess): Add parameter.
* security.h (check_file_access, check_registry_access): Likewise.
* security.cc (check_file_access, check_registry_access)
(check_access): Implement new parameter.
* fhandler.cc (fhandler_base::fhaccess): Likewise.
(device_access_denied): Update caller.
* syscalls.cc (access, faccessat): Update callers.
* spawn.cc (find_exec, fixup): Likewise.
2009-09-25 13:44:45 +00:00
Eric Blake
5386cd8ecc
* setup2.sgml (setup-locale-problems): Document how to install
...
non-default charsets.
2009-09-25 12:27:46 +00:00
Corinna Vinschen
599d462dfa
* posix_ipc.cc (mq_open): Avoid closing the same descriptor twice in
...
case of errors.
(sem_open): Ditto.
2009-09-24 09:25:35 +00:00
Corinna Vinschen
1c23aff7a3
* kernel32.cc (CreateMutexW): Use correct access mask.
...
(CreateSemaphoreW): Ditto.
2009-09-24 09:09:45 +00:00
Corinna Vinschen
8e3607fcee
* strfuncs.cc (__set_charset_from_codepage): Fetch current ANSI
...
codepage if cp is 0.
2009-09-23 17:13:55 +00:00
Corinna Vinschen
565d6ede3f
Fix typo.
2009-09-23 12:01:42 +00:00
Corinna Vinschen
e664429d77
* strfuncs.cc (sys_cp_wcstombs): Convert lone surrogate pair
...
second halves to unambiguous ASCII SO sequence. When converting
chars invalid in current codepage to ASCII SO sequence, make
sure to check for surrogate pair second half only if ct least
one wide characters is left. Decrement nwc if valid second half has
been converted.
(sys_cp_mbstowcs): Improve ASCII SO handling. Never break from loop
if invalid character has been found. Recognize ASCII SO sequence
representing originally invalid mulitbyte char converted into a
lone surrogate pair second half. Convert accordingly.
2009-09-23 11:31:00 +00:00
Corinna Vinschen
5e8d7527af
* autoload.cc (WSARecv): Define.
...
* fhandler_socket.cc (fhandler_socket::recv_internal): Call WSARecv
instead of WSARecvFrom if no name parameter is given. Explain why.
2009-09-22 14:27:57 +00:00
Eric Blake
74a67d01a5
Make *at functions more like Linux.
...
* syscalls.cc (faccessat): Fix typo, reject bad flags.
(fchmodat, fchownat, fstatat, utimensat, linkat, unlinkat): Reject
bad flags.
2009-09-22 12:13:53 +00:00
Corinna Vinschen
abe6b5a3e2
* strfuncs.cc (sys_cp_mbstowcs): Reset shift state after handling
...
invalid multibyte sequence.
2009-09-22 09:44:32 +00:00
Corinna Vinschen
4401b147bb
* path.cc (symlink_worker): Rework error handling to generate Linux
...
compatible errno in case of trailing slash in newpath.
2009-09-22 09:24:30 +00:00
Eric Blake
29bca9bb0c
Match dup2 and fcntl error values to POSIX.
...
* dtable.h (OPEN_MAX_MAX): New macro.
* resource.cc (getrlimit) [RLIMIT_NOFILE]: Use it.
* dtable.cc (dtable::extend): Likewise.
* fcntl.cc (fcntl64): Obey POSIX rule with too-large F_DUPFD.
* syscalls.cc (dup2): Likewise.
2009-09-22 04:09:03 +00:00
Eric Blake
a7b24e14d7
* ChangeLog-2002: Fix typo.
...
* ChangeLog-2008: Likewise.
2009-09-22 02:49:15 +00:00
Corinna Vinschen
ee42ccd3a2
* cygheap.h (cwdstuff::get_posix): Convert to const inline method just
...
returning pointer to posix path.
(cwdstuff::reset_posix): Convert to non-inline method taking a wchar_t
pointer.
* path.cc (cwdstuff::set): Revert change from 2009-05-13. Set posix
to valid incoming path again.
(cwdstuff::reset_posix): New implementation setting posix path from
incoming wchar_t path. Explain usage.
(cwdstuff::get_posix): Drop implementation.
(cwdstuff::get): Drop special case to handle empty posix path.
* syscalls.cc (internal_setlocale): Store old posix cwd as wide char
path. Restore posix cwd using new charset. Explain why.
2009-09-21 19:29:16 +00:00
Corinna Vinschen
8fd422fe4e
* new-features.sgml (ov-new1.7-file): Add new hardlink behaviour on
...
filesystems not supporting hardlinks.
* overview2.sgml (ov-hi-files): Change descripton accordingly.
2009-09-21 11:01:19 +00:00
Corinna Vinschen
6cabe044dd
* fhandler_disk_file.cc (fhandler_disk_file::link): Drop faking hardlink
...
creation on filesystems not supporting hardlinks.
2009-09-21 10:56:50 +00:00
Christopher Faylor
92c4330f5b
* dcrt0.cc (dll_crt0_1): Add another hack to REALLY make sure that cxx_malloc
...
is always set to the cygwin version.
2009-09-21 02:32:06 +00:00
Christopher Faylor
adfbdcdb07
* external.cc (cygwin_internal): Add hack to always reset cxx_malloc to proper
...
value.
* lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Relocate wayward comment.
2009-09-21 02:19:31 +00:00
Christopher Faylor
50a8741474
* exceptions.cc (sigpacket::process): Explicitly set thread-specific handler
...
function to zero to avoid transferring to incorrect location.
(_cygtls::call_signal_handler): Don't transfer to handler if there is no
handler to transfer to.
2009-09-19 15:34:19 +00:00
Christopher Faylor
7b9f3ce02c
* exceptions.cc (sigpacket::process): Give sigwait() processing precedence even
...
when a handler is present.
* syscalls.cc (getpagesize): Change return to 'int'.
2009-09-18 21:27:02 +00:00
Christopher Faylor
a7f0112577
* ntea.c (write_ea): Don't abort if not-samba.
2009-09-16 16:23:51 +00:00
Keith Marshall
532032a874
Avoid multiple link time definitions of _printf() for C++
2009-09-01 20:41:55 +00:00
Christopher Faylor
d984eb88db
* select.cc (peek_console): Always check window size when there is ANY keyboard
...
activity.
2009-09-01 14:25:10 +00:00
Chris Sutcliffe
89b883512d
2009-08-30 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
...
* include/wtsapi32.h (WTSQuerySessionInformationA,
WTSQuerySessionInformationW, WTSQuerySessionInformation, WTSFreeMemory):
Moved to (_WIN32_WINNT >= 0x0500) guard.
(thanks to Pierre Ossman)
2009-08-30 23:20:52 +00:00
Corinna Vinschen
2671595b4a
* path.h (INTERIX_SYMLINK_COOKIE): Define.
...
* path.cc (symlink_info::check_sysfile): Read Interix symlinks as well.
2009-08-26 20:32:35 +00:00
Corinna Vinschen
50bd7b0bb6
* fhandler.cc (fhandler_base::open): Only set R/O attribute if ACLs
...
are not used.
2009-08-26 19:37:34 +00:00
Corinna Vinschen
1f14755fd2
* new-features.sgml (ov-new1.7-posix): Add "KOI8-R" and "KOI8-U"
...
charsets.
2009-08-26 08:15:49 +00:00
Corinna Vinschen
c177980e75
* mount.cc (fs_info::update): Add comment.
...
* path.cc (symlink_info::check_reparse_point): Return -1 for volume
mount points. Explain why.
(symlink_info::check): Call fs.update again for volume mount points.
Explain why.
2009-08-25 11:27:03 +00:00
Corinna Vinschen
11788f8ce0
* globals.cc (ro_u_volume): New R/O unicode string.
...
* path.cc (symlink_info::check_reparse_point): Fix check for volume
mount points to work on Vista and later as well.
2009-08-24 11:14:30 +00:00
Christopher Faylor
f3b6fef631
* cygwin/strfuncs.cc (__set_charset_from_codepage): Add codepages 20866
...
(KOI8-R) and 21866 (KOI8-U).
* doc/setup2.sgml (setup-locale-charsetlist): Add KOI8-R and KOI8-U to list of
supported charsets.
2009-08-22 15:01:03 +00:00
Corinna Vinschen
d90dc552ac
* setup2.sgml (setup-locale-charsetlist): Add description of
...
case-insensitivity of charsets. Fix a typo. Add "UTF8" to the list.
2009-08-22 08:44:04 +00:00
Christopher Faylor
6282fe16dd
* dll_init.h (has_dtors): New flag.
...
(run_dtors): New wrapper function which avoids calling dtors more than once.
* dll_init.cc (dll_global_dtors): Use dll.run_dtors wrapper.
(dll_list::detach): Ditto.
(dll_list::alloc): Set has_dtors flag.
2009-08-21 21:32:06 +00:00
Christopher Faylor
e41f43a1a6
* fcntl.cc (fcntl64): Detect negative fd as error.
2009-08-21 21:19:45 +00:00
Corinna Vinschen
a2c5f4b4e4
* mmap.cc (mmap64): Allocate fh_disk_file on cygheap. Delete
...
explicitely before returning.
2009-08-21 08:47:59 +00:00
Corinna Vinschen
1c1b04b84c
* dtable.cc (build_fh_dev): Take additional bool parameter indicating
...
whether set_name should be called or not.
(dtable::dup_worker): Call build_fh_pc with new second parameter set
to false. Explain why. If fhandler's dup failed, delete rather than
cfree newfh and set newfh to NULL to indicate failure correctly.
* dtable.h (build_fh_pc): Change declaration according to above change.
Default set_name parameter to true.
* mmap.cc (mmap_record::free_fh): Delete rather than cfree fh.
2009-08-20 08:34:21 +00:00
Christopher Faylor
421ba492fa
* dtable.cc (dtable::fixup_after_exec): Close any popen'ed file handles here.
...
* fhandler.h (fhandler_*::ispipe): New function.
(fhandler_base::get_popen_pid): Define virtual function.
(fhandler_*::isdevice): Make const.
(fhandler_*::isfifo): Ditto.
2009-08-18 15:21:47 +00:00
Corinna Vinschen
4db8460fdb
* Makefile.in (CXXFLAGS): Allow override.
2009-08-18 08:37:23 +00:00
Christopher Faylor
4315703af7
* syscalls.cc (popen): Reorganize slightly for clarity. Fix a comment.
2009-08-18 01:51:35 +00:00
Christopher Faylor
d5c44ae231
* syscalls.cc (popen): Rewrite to accommodate situations where stdin, stdout,
...
or stderr are closed.
2009-08-18 01:40:46 +00:00
Christopher Faylor
28c054b720
* pipe.cc (fhandler_pipe::create_selectable): Add -pipe to default pipe names.
...
* lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Use bool/true/false for
what is actually a boolean variable.
2009-08-17 12:45:51 +00:00
Chris Sutcliffe
22fa213129
2009-08-14 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
...
* include/_mingw.h: Increment version to 3.16.
2009-08-15 02:50:19 +00:00
Corinna Vinschen
719ffe8792
* fhandler_disk_file.cc (fhandler_disk_file::readdir): Fix length
...
check for ".." dir.
2009-08-14 18:27:18 +00:00
Corinna Vinschen
e684ace44e
* fhandler_disk_file.cc (fhandler_disk_file::readdir): Change comment
...
to be fair.
2009-08-14 14:10:31 +00:00
Corinna Vinschen
e575678945
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Remove
...
ill-advised attempt to optimize "." and ".." handling by checking for
specific position in directory listing. Explain why.
(fhandler_disk_file.cc (fhandler_disk_file::readdir): Ditto.
Special-case opening file on NFS to fetch inode number and add longish
comment to explain why.
2009-08-14 13:39:07 +00:00
Corinna Vinschen
c1999c4b0c
* (fhandler_socket::getsockname): Fix length returned for unbound
...
AF_LOCAL sockets.
(fhandler_socket::getpeername): Ditto.
* net.cc (socketpair): Don't set sun_path and peer_sun_path to
make sure getsockname and getpeername return the correct values
for AF_LOCAL sockets.
2009-08-14 06:58:44 +00:00