2038 lines
77 KiB
Plaintext
2038 lines
77 KiB
Plaintext
2008-06-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mount.cc (mount_info::get_cygdrive_info): Fix usage of user and
|
|
system arguments. Strip trailing slash from path for backward
|
|
compatibility.
|
|
|
|
2008-06-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (set_console_state_for_spawn): Drop declaration.
|
|
* fhandler_console.cc (set_console_state_for_spawn): Remove.
|
|
(fhandler_console::open): Set console state last. Don't set
|
|
ENABLE_PROCESSED_INPUT flag.
|
|
* spawn.cc (spawn_guts): Drop call to set_console_state_for_spawn.
|
|
|
|
2008-06-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (get_nt_native_path): Drop considerations for DOS devices.
|
|
Keep relative paths relative.
|
|
(cygwin_conv_path): Don't try to skip native NT prefixes on relative
|
|
paths.
|
|
|
|
2008-06-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/cygwin/version.h (CYGWIN_VERSION_MOUNT_REGISTRY): Bump.
|
|
(CYGWIN_INFO_CYGWIN_MOUNT_REGISTRY_NAME): Remove.
|
|
(CYGWIN_INFO_CYGDRIVE_FLAGS): Remove.
|
|
(CYGWIN_INFO_CYGDRIVE_PREFIX): Remove.
|
|
(CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX): Add comment to differ from the
|
|
registry related defines.
|
|
|
|
2008-06-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_procnet.cc (dad_to_flags): Fix comment.
|
|
|
|
2008-06-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_procnet.cc (get_scope): New static function to evaluate
|
|
scope.
|
|
(dad_to_flags): New static array to convert Windows DAD state to
|
|
Linux values.
|
|
(format_procnet_ifinet6): Drop asking for IfIndex, just use Ipv6IfIndex.
|
|
Use get_scope and dad_to_flags to generate more accurate linux-like
|
|
output.
|
|
|
|
2008-06-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* net.cc (if_nametoindex): Fix typo in call to get_adapters_addresses.
|
|
(if_indextoname): Prefer IPv6 loopback device name over IPv4 loopback
|
|
device name on pre-Vista systems.
|
|
(if_nameindex): Ditto.
|
|
|
|
2008-06-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_procnet.cc (format_procnet_ifinet6): Use sprintf rather than
|
|
__small_sprintf.
|
|
* net.cc (if_nametoindex): Prefer IPv6IfIndex over IfIndex for
|
|
consistency with /proc/net/if_inet6.
|
|
(if_indextoname): Ditto.
|
|
(if_nameindex): Ditto.
|
|
|
|
2008-06-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mount.cc (mount_info::from_fstab): Read sizeof (buf) - 2 bytes.
|
|
Add code to handle overly long lines.
|
|
|
|
2008-06-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* sec_auth.cc (lsaauth): Make returned token inheritable.
|
|
|
|
2008-06-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* devices.cc: Regenerate.
|
|
|
|
2008-06-09 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* devices.in: Remove "Global" from tty device.
|
|
|
|
008-06-09 Eric Blake <ebb9@byu.net>
|
|
|
|
* signal.cc (abort): Only flush streams after signal handler.
|
|
|
|
2008-06-02 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* cygwin.sc: Remove unrequired and erroneous definition.
|
|
|
|
2008-05-30 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* select.cc (peek_pipe): Semi-reinstate pipe NT-special write
|
|
detection.
|
|
|
|
2008-05-29 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* devices.in: Change mapping for /dev/ttyS* and /dev/com*.
|
|
* devices.cc: Regenerate.
|
|
|
|
2008-05-25 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* mount.cc (mount_info::from_fstab): Use proper buffer size.
|
|
|
|
2008-05-24 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* mount.cc (mount_info::init): Revert previous change.
|
|
(mount_info::from_fstab): Change system_printf to debug_printf. Just
|
|
use a local NT_MAX_PATH sized temporary buffer.
|
|
|
|
2008-05-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mount.cc (mount_info::init): Recreate path when trying to read the
|
|
user fstab file.
|
|
|
|
2008-05-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (symlink_info::check): Reorder test for nfs symlinks.
|
|
|
|
2008-05-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Don't try to
|
|
use FileIdBothDirectoryInformation on NFS shares. Fix comment to
|
|
explain why.
|
|
* path.cc (symlink_info::check): Reinstantiate no_ea. Use in
|
|
erroneously changed condition.
|
|
|
|
2008-05-23 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* mount.cc (find_root_from_cygwin_dll): New function factored from
|
|
from_fstab. Avoid use of tls since it isn't necessarily initialized
|
|
when cygwin1.dll is dynamically loaded.
|
|
(mount_info::create_root_entry): Ditto.
|
|
(mount_info::init): Calculate cygwin root once. Use create_root_entry
|
|
to record it. Pass fstab location to from_fstab.
|
|
(mount_info::from_fstab): Move root calculation stuff elsewhere, as per
|
|
above.
|
|
|
|
* shared_info.h (mount_info::from_fstab_line): Make private.
|
|
(mount_info::fstab): Ditto. Accommodate new arguments.
|
|
|
|
2008-05-23 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* mount.cc (mount_info::from_fstab): Use cygwin_hmodule rather than
|
|
trying to find handle based on cygwin1.dll.
|
|
|
|
* path.cc (symlink_info::check): Remove unused variable.
|
|
|
|
2008-05-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* shared.cc (open_shared): Fix comments. Fix a condition which has
|
|
been overlooked to revert to its old state in change from 2008-04-18.
|
|
|
|
2008-05-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (symlink_info::check): Define eabuf and easize outside of
|
|
loop. Set to NULL on first STATUS_EAS_NOT_SUPPORTED. Align comments.
|
|
Fix formatting.
|
|
|
|
2008-05-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::readdir): Eliminate
|
|
compiler warning.
|
|
|
|
2008-05-23 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* path.cc (symlink_info::check): Don't pass EaBuffer to NtCreateFile if
|
|
it has indicated that it isn't appropriate.
|
|
* ntdll.h (STATUS_EAS_NOT_SUPPORTED): Define.
|
|
|
|
* winsup.h: Remove __builtin* defines.
|
|
|
|
2008-05-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* grp.cc (internal_getgroups): Fix thinko. Only add enabled groups to
|
|
the group list.
|
|
|
|
2008-05-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* grp.cc (internal_getgroups): Don't add deny-only groups to the group
|
|
list.
|
|
|
|
2008-05-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygtls.h (struct san): Add two int values to store the current
|
|
tls_pathbuf counters.
|
|
(return_from_fault): Restore tls_pathbuf counters.
|
|
(setup_fault): Save tls_pathbuf counters.
|
|
* tlsoffset.h: Regenerate.
|
|
|
|
2008-05-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* sec_acl.cc (setacl): Set errno to EINVAL if user or group don't exist.
|
|
|
|
2008-05-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (cygwin_conv_path): Define tp before setting up faul handler.
|
|
* syscalls.cc: Ditto, throughout.
|
|
(gen_full_path_at): Add bool parameter to allow NULL pathname.
|
|
(futimesat): Allow NULL pathname as GLIBC.
|
|
|
|
2008-05-21 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* string.h (strchr): Eliminate.
|
|
|
|
* syscalls.cc (rename): Work around inexplicable C++ warning.
|
|
|
|
2008-05-21 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (get_ino_by_handle): Rename pfai to fai.
|
|
(fhandler_base::fstat_by_handle): Drop fai_size and pfai in favor of
|
|
static struct fai_buf. Restructure.
|
|
(fhandler_base::fstat_by_name): Drop fvi_size and pfvi. Drop fdi_size
|
|
and pfdi in favor of static struct fdi_buf. Drop redundant test for
|
|
existance. Use FileDirectoryInformation class instead of
|
|
FileBothDirectoryInformation. Drop call to NtQueryVolumeInformationFile
|
|
in favor of using pc.fs_serial_number (). Fix FileId information given
|
|
to fstat_helper.
|
|
(fhandler_disk_file::fstatvfs): Drop fvi_size, pfvi, fai_size and pfai.
|
|
Drop getting FileFsVolumeInformation and FileFsAttributeInformation in
|
|
favor of using the related path_conv info.
|
|
(fhandler_disk_file::opendir): Fix comment.
|
|
(fhandler_disk_file::readdir): Ditto. Use FileDirectoryInformation
|
|
class instead of FileBothDirectoryInformation.
|
|
* path.cc (fs_info::update): Store MaximumComponentNameLength in new
|
|
member name_len.
|
|
* path.h (struct fs_info): Use ULONG rather than DWORD. Add member
|
|
name_len to store MaximumComponentNameLength. Add accessor methods.
|
|
(path_conv::fs_name_len): New method.
|
|
|
|
2008-05-21 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (dirent_states): Add dirent_nfs_d_ino state and add it to
|
|
dirent_info_mask.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Set
|
|
dirent_nfs_d_ino flag for NFS shares. Explain why.
|
|
(fhandler_disk_file::readdir): Use FileNamesInformation instead of
|
|
FileBothDirectoryInformation info class on NFS clients not supporting
|
|
the FileIdBothDirectoryInformation info class. Use local pointers to
|
|
accommodate different offsets.
|
|
* path.cc (symlink_info::check): Don't test directories for symlinks
|
|
on NFS shares. Enhance comment.
|
|
|
|
2008-05-21 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (FILTERED_MODE): Define valid chmod mode mask.
|
|
(chmod): Call fh->fchmod with filtered mode.
|
|
(fchmod): Ditto.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Fix test for
|
|
S_IFSOCK in mode bits.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (symlink_worker): Fix EA buffer size info given to
|
|
NtCreateFile.
|
|
(symlink_info::check_nfs_symlink): Get 64K buffer for EA buffer.
|
|
Change EA buffer size info given to NtQueryEaFile accordingly.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (symlink_info::check_shortcut): Minimize requested file
|
|
access flags.
|
|
(symlink_info::check_sysfile): Ditto. Add missing `else'.
|
|
(symlink_info::check): Only retry to open file if first try failed
|
|
with access denied.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (fs_info::update): Re-add opening the unsplitted path
|
|
for fillout_mntent's sake.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::mkdir): Create directories
|
|
on NFS shares with correct mode bits.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* winsup.h (cygwin_inet_addr): Fix type of declaration.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (DLL_OFILES): Add nfs.o.
|
|
* fhandler.cc (fhandler_base::open): Open files on NFS shares with
|
|
correct access flags and EAs.
|
|
* fhandler.h (fhandler_base::fstat_by_nfs_ea): Declare.
|
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): New method.
|
|
(fhandler_base::fstat_by_handle): Call fstat_by_nfs_ea for files on
|
|
NFS shares.
|
|
(fhandler_disk_file::fchmod): Use NFS specific method to set mode for
|
|
files on NFS shares. Don't overrule errno from call to
|
|
set_file_attribute with errno from NtSetInformationFile call.
|
|
(fhandler_disk_file::fchown): Add comment.
|
|
* mount.cc (fillout_mntent): Accommodate change in second parameter
|
|
to fs_info::update.
|
|
* nfs.cc: New file.
|
|
* nfs.h: New file.
|
|
* path.cc (fs_info::update): Take handle instead of bool as second
|
|
parameter. Use that handle if it's not NULL. Only close handle if
|
|
it has been opened here. Use static defined buffers instead of
|
|
alloca'd buffers.
|
|
(path_conv::check): Call symlink_info::check with reference to fs.
|
|
Don't call fs.update here if file exists.
|
|
(conv_path_list): Prefer tmp_pathbuf buffer over using alloca.
|
|
(symlink_worker): Use NFS specific method to create symlinks on NFS
|
|
shares. Prefer tmp_pathbuf buffer over using alloca.
|
|
(symlink_info::check_shortcut): Reopen file from incoming handle
|
|
with necessary FILE_GENERIC_READ flag. Prefer tmp_pathbuf buffer over
|
|
using alloca.
|
|
(symlink_info::check_sysfile): Ditto.
|
|
(symlink_info::check_reparse_point): Use tmp_pathbuf buffer to
|
|
allocate REPARSE_DATA_BUFFER.
|
|
(symlink_info::check_nfs_symlink): New method.
|
|
(enum symlink_t): Remove.
|
|
(symlink_info::check): Don't use NtQueryAttributesFile. Rather, open
|
|
file with necessary access flags and call NtQueryInformationFile. Fix
|
|
error handling in case file can't be opened. For existing files, call
|
|
fs_info::update here. Restructure symlink checking to accommodate the
|
|
fact that the file is already open. Add case for NFS symlinks.
|
|
* path.h (fs_info::update): Take handle instead of bool as second
|
|
parameter.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (rename): Fix condition when to start a transaction.
|
|
|
|
2008-05-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (path_conv::check): Free wide_path and normalized_path if
|
|
necessary.
|
|
* path.h (path_conv::path_conv): Set wide_path, normalized_path and
|
|
normalized_path_size to 0 in all constructors.
|
|
|
|
2008-05-19 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (rename): Allocate temporary path buffers using
|
|
tmp_pathbuf. Don't try to unset R/O attribute on dstpc if a
|
|
removepc exists. dstpc is a non-existant file in that case.
|
|
|
|
2008-05-17 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* include/stdint.h: Use int rather than long for {u,}int32_t.
|
|
|
|
2008-05-16 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* CYGWIN_LICENSE: Remove duplicate file here.
|
|
|
|
2008-05-15 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (rename): ONly start transaction if FS supports them.
|
|
|
|
2008-05-15 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (LoadDLLfuncNt): Re-invent.
|
|
(NtCreateTransaction): Define.
|
|
(NtCommitTransaction): Define.
|
|
(NtRollbackTransaction): Define.
|
|
(RtlGetCurrentTransaction): Define.
|
|
(RtlSetCurrentTransaction): Define.
|
|
* ntdll.h (TRANSACTION_ALL_ACCESS): Define.
|
|
(NtCreateTransaction): Declare.
|
|
(NtCommitTransaction): Declare.
|
|
(NtRollbackTransaction): Declare.
|
|
(RtlGetCurrentTransaction): Declare.
|
|
(RtlSetCurrentTransaction): Declare.
|
|
* syscalls.cc (start_transaction): New static function to start TxF
|
|
transaction.
|
|
(stop_transaction): New static function to end TxF transaction.
|
|
(rename): Call start_transaction and stop_transaction where appropriate
|
|
on systems supporting transactions.
|
|
* wincap.h (wincaps::has_transactions): New element.
|
|
* wincap.cc: Implement above element throughout.
|
|
|
|
2008-05-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Drop
|
|
explicit transformation of special DOS chars.
|
|
* strfuncs.cc (sys_wcstombs): Always transform UNICODE private use area
|
|
back to ASCII.
|
|
|
|
2008-05-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/cygwin/stdlib.h (initstate): Declare.
|
|
(setstate): Declare.
|
|
|
|
2008-05-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (path_conv::set_normalized_path): Drop strip_tail argument.
|
|
Never strip trailing dots and spaces.
|
|
* (path_conv::check): Accomodate above change.
|
|
* path.h (path_conv::operator=): Ditto
|
|
* dtable.cc (build_fh_dev): Ditto.
|
|
* fhandler.h (fhandler_base::set_name): Ditto.
|
|
|
|
* path.cc (transform_chars): Disable converting trailing dots and
|
|
spaces.
|
|
|
|
* path.cc (path_conv::check): Remove two disabled code snippets.
|
|
|
|
2008-05-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* random.cc (initstate): Align to POSIX definition.
|
|
(setstate): Ditto.
|
|
|
|
2008-05-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (DLL_OFILES): Remove _def_time.o.
|
|
* libc/_def_time.c: Remove. Move definitions of _DefaultTimeLocale
|
|
and _CurrentTimeLocale ...
|
|
* libc/strptime.cc: ... here.
|
|
|
|
2008-05-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/sys/localedef.h: Remove.
|
|
* libc/strptime.cc: Define _TimeLocale and declare _CurrentTimeLocale
|
|
as well as _DefaultTimeLocale locally for Cygwin.
|
|
|
|
2008-05-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (DLL_OFILES): Add _def_time.o. Remove timelocal.o.
|
|
* include/sys/localedef.h: New file from NetBSD.
|
|
* libc/_def_time.c: Ditto.
|
|
* libc/getopt.c: Update to latest OpenBSD version 1.23.
|
|
* libc/strptime.cc: Replace FreeBSD version 1.35 with latest NetBSD
|
|
version 1.28.
|
|
* libc/timelocal.cc: Remove.
|
|
* libc/timelocal.h: Remove.
|
|
|
|
2008-04-30 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dtable.cc (dtable::release): Drop fixup_before handling.
|
|
(dtable::fixup_before_fork): Remove.
|
|
(dtable::fixup_before_exec): Remove.
|
|
* dtable.h (class dtable): Remove cnt_need_fixup_before member.
|
|
(dtable::dtable): Accommodate above change.
|
|
(dtable::dec_need_fixup_before): Remove.
|
|
(dtable::inc_need_fixup_before): Remove.
|
|
(dtable::need_fixup_before): Remove.
|
|
(dtable::fixup_before_exec): Remove declaration.
|
|
(dtable::fixup_before_fork): Ditto.
|
|
* fhandler.h (fhandler_base::fixup_before_fork_exec): Remove.
|
|
(fhandler_base::need_fixup_before): Remove.
|
|
* fork.cc (frok::parent): Drop fixup_before handling.
|
|
* spawn.cc (spawn_guts): Ditto.
|
|
|
|
2008-04-30 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mount.cc (is_unc_share): Allow \\?\ prefix as well. Enhance comment.
|
|
(mount_info::from_fstab): Remove patch from 2008-04-29.
|
|
|
|
* mount.cc (mount_info::conv_to_posix_path): Simplify test for native
|
|
UNC path.
|
|
* path.cc (normalize_win32_path): Ditto.
|
|
(symlink_worker): Ditto.
|
|
(symlink_info::posixify): Ditto.
|
|
(cygwin_conv_path): Ditto.
|
|
|
|
2008-04-29 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mount.cc (mount_info::from_fstab): Skip native path prefix in
|
|
module path.
|
|
|
|
2008-04-29 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (rename): Use volume serial numbers stored in path_conv
|
|
rather than fetching them here for the "same file" test. Change
|
|
comment to reflect this.
|
|
|
|
2008-04-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (symlink_info::check): Avoid special handling for
|
|
STATUS_BUFFER_OVERFLOW when calling NtQueryDirectoryFile.
|
|
* strace.cc (strace::vprntf): Use bigger buffer.
|
|
|
|
2008-04-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* kernel32.cc (CreateFileMappingW): Remove stray small_printf.
|
|
|
|
2008-04-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (IsWow64Process): Remove.
|
|
(Wow64DisableWow64FsRedirection): Remove.
|
|
(Wow64RevertWow64FsRedirection): Remove.
|
|
* ntdll.h (enum _PROCESSINFOCLASS): Define ProcessWow64Information.
|
|
* init.cc (respawn_wow64_process): Use NtQueryInformationProcess to
|
|
get WOW64 state.
|
|
* wincap.cc (wincapc::init): Ditto.
|
|
* wincap.h (wincapc::wow64): Change type to ULONG.
|
|
|
|
2008-04-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* wincap.h (wincapc::wow64): Change type to BOOL.
|
|
* wincap.cc: Remove explicit use of this pointer in wincapc methods.
|
|
(wincapc::init): Fix bug in IsWow64Process handling.
|
|
|
|
2008-04-26 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (dll_crt0_0): Set SEM_NOGPFAULTERRORBOX error mode, too,
|
|
to accommodate Vista/Longhorn.
|
|
* spawn.cc (spawn_guts): Move check for CREATE_SUSPENDED condition
|
|
after the call to ch.set() since it depends on it.
|
|
|
|
2008-04-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (install): Drop install rules for postinstall script.
|
|
|
|
2008-04-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* postinstall: Remove (Moved to base-cygwin package).
|
|
|
|
2008-04-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::open): Move handling FILE_ATTRIBUTE_NORMAL
|
|
back to its old place. Or it to file_attributes instead of setting it.
|
|
|
|
2008-04-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::open): *Only* handle SYSTEM and HIDDEN
|
|
attributes in FILE_OVERWRITE case.
|
|
|
|
2008-04-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::open): Handle SYSTEM and HIDDEN attributes
|
|
in FILE_OVERWRITE case as well.
|
|
|
|
2008-04-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Disable calling
|
|
pc.ndisk_links. Just use nNumberOfLinks instead.
|
|
|
|
2008-04-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_base::utimens_fs): Fix typo in
|
|
input range check.
|
|
|
|
2008-04-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din (futimens): Export.
|
|
(utimensat): Export.
|
|
* fhandler.cc (fhandler_base::utimens): Replace fhandler_base::utimes.
|
|
Call utimens_fs.
|
|
* fhandler.h (class fhandler_base): Declare utimens_fs instead of
|
|
utimes_fs, utimens instead of utimes.
|
|
(class fhandler_disk_file): Declare utimens instead of utimes.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::utimens): Replace
|
|
fhandler_disk_file::utimes.
|
|
(fhandler_base::utimens_fs): Replace fhandler_base::utimes_fs.
|
|
Implement tv_nsec handling according to SUSv4.
|
|
* syscalls.cc (utimensat): New function.
|
|
* times.cc (timespec_to_filetime): New function.
|
|
(timeval_to_timespec): New function.
|
|
(utimens_worker): Replace utimes_worker.
|
|
(utimes): Convert timeval to timespec and call utimens_worker.
|
|
(lutimes): Ditto.
|
|
(futimens): Take over implementation from futimes.
|
|
(futimes): Convert timeval to timespec and call futimens.
|
|
* winsup.h (timespec_to_filetime): Declare.
|
|
* include/cygwin/version.h: Bump API minor number.
|
|
* posix.sgml: Add SUSv4 section. Add futimens and utimensat to it.
|
|
|
|
2008-04-24 Yaakov (Cygwin Ports) <yselkowitz@users.sourceforge.net>
|
|
|
|
* include/wait.h: New file.
|
|
|
|
2008-04-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* posix.sgml: Add openat, faccessat, fchmodat, fchownat, fstatat,
|
|
futimesat, linkat, mkdirat, mkfifoat, mknodat, readlinkat, renameat,
|
|
symlinkat, unlinkat to list of implemented Solaris functions.
|
|
|
|
2008-04-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din: Sort.
|
|
(faccessat): Export.
|
|
(fchmodat): Export.
|
|
(fchownat): Export.
|
|
(fstatat): Export.
|
|
(futimesat): Export.
|
|
(linkat): Export.
|
|
(mkdirat): Export.
|
|
(mkfifoat): Export.
|
|
(mknodat): Export.
|
|
(openat): Export.
|
|
(readlinkat): Export.
|
|
(renameat): Export.
|
|
(symlinkat): Export.
|
|
(unlinkat): Export.
|
|
* path.cc (readlink): Align definition to POSIX.
|
|
* syscalls.cc (gen_full_path_at): New static function.
|
|
(faccessat): Implement.
|
|
(fchmodat): Implement.
|
|
(fchownat): Implement.
|
|
(fstatat): Implement.
|
|
(futimesat): Implement.
|
|
(linkat): Implement.
|
|
(mkdirat): Implement.
|
|
(mkfifoat): Implement.
|
|
(mknodat): Implement.
|
|
(openat): Implement.
|
|
(readlinkat): Implement.
|
|
(renameat): Implement.
|
|
(symlinkat): Implement.
|
|
(unlinkat): Implement.
|
|
* include/cygwin/version.h: Bump API minor number.
|
|
|
|
2008-04-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (dll_crt0_0): Move CWD initialization from here...
|
|
(dll_crt0_1): ...to here.
|
|
|
|
2008-04-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din (fmemopen): Export.
|
|
(open_memstream): Export.
|
|
* include/cygwin/version.h: Bump API minor number.
|
|
|
|
2008-04-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* sec_auth.cc (create_token): Add integrity level SID to token on
|
|
systems supporting that. Remove useless check for dynamically loading
|
|
NtCreateToken function.
|
|
* sec_helper.cc (mandatory_medium_integrity_sid): Define.
|
|
(mandatory_high_integrity_sid): Define.
|
|
(mandatory_system_integrity_sid): Define.
|
|
* sec_helper.h (mandatory_medium_integrity_sid): Declare.
|
|
(mandatory_high_integrity_sid): Declare.
|
|
(mandatory_system_integrity_sid): Declare.
|
|
|
|
2008-04-21 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mount.cc (mount_info::init): Remove call to from_registry. Print
|
|
message that fstab is missing.
|
|
(mount_info::from_fstab): Use CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX
|
|
instead of constant string.
|
|
(mount_info::read_mounts): Remove.
|
|
(mount_info::from_registry): Remove.
|
|
(mount_info::read_cygdrive_info_from_registry): Remove.
|
|
* postinstall: Enable code to create fstab entries from old registry
|
|
entries.
|
|
* registry.cc (reg_key::reg_key): Drop CYGWIN_INFO_CYGNUS_REGISTRY_NAME
|
|
from registry key.
|
|
* shared_info.h (mount_info::read_mounts): Remove declaration.
|
|
(mount_info::from_registry): Ditto.
|
|
(mount_info::to_registry): Ditto.
|
|
(mount_info::read_cygdrive_info_from_registry): Ditto.
|
|
* winver.rc (CYGWIN_REGISTRY_KEY): Remove.
|
|
(LegalCopyright): Fix to include 2008.
|
|
(RegistryKey): Set to CYGWIN_INFO_CYGWIN_REGISTRY_NAME.
|
|
* include/cygwin/version.h (CYGWIN_INFO_CYGNUS_REGISTRY_NAME): Remove.
|
|
|
|
2008-04-21 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* kernel32.cc (CreateFileMappingW): Fix bug in reserve/commit handling.
|
|
|
|
2008-04-21 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (DLL_OFILES): Add kernel32.o.
|
|
* autoload.cc (WSACloseEvent): Remove.
|
|
(WSACreateEvent): Remove.
|
|
* cygheap.cc (cygheap_init): Drop initializing shared_prefix.
|
|
* cygheap.h (struct init_cygheap): Drop shared_prefix and
|
|
shared_prefix_buf members.
|
|
* fhandler_socket.cc (sock_shared_name): New static function.
|
|
(search_wsa_event_slot): Convert name buffers to WCHAR. Call
|
|
NtCreateMutant/NtOpenMutant to create mutexes in session local
|
|
namespace.
|
|
(fhandler_socket::init_events): Ditto. Fix debug output.
|
|
(fhandler_socket::release_events): Close mutexes using NtClose.
|
|
(fhandler_socket::dup): Ditto.
|
|
* kernel32.cc: New file, implementing Win32 calls in a Cygwin-specific
|
|
way.
|
|
* mmap.cc (MapView): Make static.
|
|
* ntdll.h: Fix status code sorting.
|
|
(STATUS_OBJECT_NAME_EXISTS): Define.
|
|
(SEMAPHORE_QUERY_STATE): Define.
|
|
(CYG_SHARED_DIR_ACCESS): Define.
|
|
(CYG_MUTANT_ACCESS): Define.
|
|
(CYG_EVENT_ACCESS): Define.
|
|
(CYG_SEMAPHORE_ACCESS): Define.
|
|
(enum _PROCESSINFOCLASS): Define ProcessSessionInformation.
|
|
(struct _PROCESS_SESSION_INFORMATION): Define.
|
|
(NtCreateSemaphore): Declare.
|
|
(NtOpenSemaphore): Declare.
|
|
* flock.cc: Use CYG_xxx_ACCESS access masks where appropriate.
|
|
* posix_ipc.cc (ipc_mutex_init): Use native functions to create mutex.
|
|
Create in cygwin-shared subdir.
|
|
(ipc_cond_init): Ditto for event.
|
|
(ipc_mutex_close): Use NtClose.
|
|
(ipc_cond_close): Ditto.
|
|
(mq_open): Drop "cyg" prefix from mqh_uname.
|
|
* shared.cc (CYG_SHARED_DIR_ACCESS): Drop definition here.
|
|
(_cygwin_testing): Declare extern on file level.
|
|
(get_shared_parent_dir): Change name of shared directory. Add name
|
|
to api_fatal output.
|
|
(get_session_parent_dir): New function.
|
|
(shared_name): Simplify.
|
|
(shared_info::initialize): Call get_session_parent_dir.
|
|
* shared_info.h (get_session_parent_dir): Declare.
|
|
* smallprint.cc (__small_vswprintf): Fix bug in multibyte string
|
|
conversion.
|
|
* thread.cc (semaphore::semaphore): Align semaphore name to object
|
|
names in posix IPC functions.
|
|
* include/cygwin/version.h (CYGWIN_VERSION_SHARED_DATA): Bump.
|
|
|
|
2008-04-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
Revert thinko in previous patch.
|
|
* fhandler.h (struct wsa_event): Move back from wsa_event.h to here.
|
|
* fhandler_socket.cc (NUM_SOCKS): Ditto.
|
|
(wsa_events): Move back from cygwin_shared to here. Accommodate
|
|
throughout.
|
|
(socket_serial_number): Ditto.
|
|
* shared_info.h: Accommodate above changes.
|
|
* wsa_event.h: Remove.
|
|
|
|
2008-04-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (struct wsa_event): Move to wsa_event.h. Include
|
|
wsa_event.h instead.
|
|
* fhandler_socket.cc (NUM_SOCKS): Move to wsa_event.h.
|
|
(wsa_events): Move from DLL shared area to cygwin_shared shared
|
|
memory. Accommodate throughout.
|
|
(socket_serial_number): Ditto.
|
|
* fhandler_tape.cc (mt): Ditto.
|
|
(mtinfo_init): Remove.
|
|
(mt): Define as cygwin_shared->mt.
|
|
* flock.cc (FLOCK_PARENT_DIR_ACCESS): Remove.
|
|
(FLOCK_INODE_DIR_ACCESS): Move up in file.
|
|
(FLOCK_MUTANT_ACCESS): Ditto.
|
|
(FLOCK_EVENT_ACCESS): Ditto.
|
|
(get_lock_parent_dir): Remove.
|
|
(inode_t::inode_t): Call get_shared_parent_dir to get parent dir handle.
|
|
Add a "flock-" prefix to file's lock directory name for clarity.
|
|
* mtinfo.h (mtinfo_init): Drop declaration.
|
|
* net.cc (last_used_bindresvport): Move from DLL shared area to
|
|
cygwin_shared shared memory.
|
|
(cygwin_bindresvport_sa): Accommodate above change.
|
|
* sec_helper.cc (_everyone_sd): Move here from flock.cc.
|
|
* security.h (SD_MIN_SIZE): Ditto.
|
|
(everyone_sd): Ditto.
|
|
* shared.cc (cygwin_shared_area): Remove.
|
|
(cygwin_shared_h): New handle.
|
|
(get_shared_parent_dir): New static function.
|
|
(shared_name): Drop session_local argument. Call get_shared_parent_dir
|
|
here. Add cygwin-shared subdir to object name.
|
|
(offsets): Reinstantiate SH_CYGWIN_SHARED member.
|
|
(open_shared): Revert change from 2007-03-29 for systems supporting
|
|
SeCreateGlobalPrivilege.
|
|
(shared_info::initialize): Call mtinfo's initialize here.
|
|
(memory_init): Drop call to mtinfo_init.
|
|
* shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info.
|
|
(CURR_SHARED_MAGIC): Ditto.
|
|
(class shared_info): Add members for global socket and tape info
|
|
sharing.
|
|
(enum shared_locations): Reinstantiate SH_CYGWIN_SHARED.
|
|
(get_shared_parent_dir): Declare.
|
|
(shared_name): Drop session_local argument from declaration.
|
|
* wsa_event.h: New file. Move definitions of NUM_SOCKS and
|
|
struct wsa_event here.
|
|
|
|
2008-04-18 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* autoload.cc (noload): Make sure this and succeeding functions are
|
|
located in the text segment.
|
|
|
|
2008-04-16 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_socket.cc (fhandler_socket::close): Disable enforced
|
|
lingering since the original problem can no longer be reproduced.
|
|
|
|
2008-04-16 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* grp.cc (internal_getgroups): Drop local buf. Allocate groups
|
|
directly using alloca.
|
|
|
|
2008-04-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* postinstall: Fix copy/paste bug.
|
|
|
|
2008-04-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Fix
|
|
thinko in UNC path handling.
|
|
* path.cc (symlink_worker): Fix typo in comment. Fix UNC path handling.
|
|
|
|
2008-04-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Simplify
|
|
code which checks for symlinks. Fix problem with UNC paths.
|
|
|
|
* environ.cc (struct parse_thing): Remove transparent_exe option.
|
|
* syscalls.cc (transparent_exe): Remove.
|
|
(unlink): Always add stat_suffixes, drop transparent_exe check.
|
|
(open): Ditto.
|
|
(link): Ditto.
|
|
(pathconf): Ditto.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Ditto.
|
|
* fhandler_process.cc (fhandler_process::fill_filebuf): Always remove
|
|
.exe suffix.
|
|
* path.cc (realpath): Never attach known_suffix.
|
|
|
|
2008-04-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din (wprintf): Remove.
|
|
(_wprintf): Ditto.
|
|
* syscalls.cc (wprintf): Ditto.
|
|
* include/cygwin/version.h: Add FIXME comment.
|
|
|
|
2008-04-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mount.cc (mount_info::from_fstab): Read user fstab files from
|
|
/etc/fstab.d/$USER to avoid user write access to /etc.
|
|
* postinstall: Use variables for filenames. Create /etc/fstab.d dir
|
|
with 01777 permissions.
|
|
|
|
2008-04-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* postinstall: Disable adding registry mounts to /etc/fstab for now.
|
|
|
|
2008-04-07 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
Remove unneeded header files from source files throughout.
|
|
|
|
2008-04-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* postinstall: Add function print_flags and call where appropriate.
|
|
Omit system and cygdrive flag when testing cygdrive flags.
|
|
|
|
2008-04-07 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
Add miscfuncs.h to files as needed throughout.
|
|
* mount.cc: New file.
|
|
* path.cc: Move mount-specific stuff into mount.cc. Move common stuff
|
|
into miscfuncs.cc. Remove unneeded includes.
|
|
* miscfuncs.cc: Move some common path functions here.
|
|
* miscfuncs.h: New file.
|
|
* winsup.h: Move miscelleneous functions to miscfuncs.h.
|
|
* dcrt0.cc: Remove unneeded includes.
|
|
* Makefile.in (DLL_OFILES): Add mount.o.
|
|
|
|
* include/cygwin/config.h: Fix a minor typo.
|
|
|
|
2008-04-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* postinstall: Set IFS to LF only. Change while loop in subshell to
|
|
for loop in parent shell. Add code to read system mount points and
|
|
system cygdrive prefix from registry and append them to /etc/fstab.
|
|
|
|
2008-04-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (struct opt): Rename "system" to "nouser".
|
|
* postinsatll: Ditto.
|
|
|
|
2008-04-05 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* postinstall: New script.
|
|
* Makefile.in (sysconfdir): Define.
|
|
(install): Create $(sysconfdir)/postinstall dir. Install postinstall
|
|
script into it.
|
|
|
|
* path.cc: Add temorary comments to note later function removal.
|
|
(conv_fstab_spaces): New inline function to handle \040 to space
|
|
conversion.
|
|
(struct opt): Add "system" and "user" mount options.
|
|
(mount_info::from_fstab_line): Only allow # to start a comment at
|
|
the beginning of the line. Call conv_fstab_spaces on native_path and
|
|
posix_path fields. Don't enforce system mounts in /etc/fstab.
|
|
Drop last argument in call to add_item.
|
|
(mount_info::from_fstab): Create a default cygdrive entry. Load
|
|
user mount points from fstab.<username> instead of fstab.<sid>.
|
|
(mount_info::read_mounts): Drop last argument in call to add_item.
|
|
(mount_info::add_reg_mount): Remove.
|
|
(mount_info::del_reg_mount): Remove.
|
|
(mount_info::write_cygdrive_info): Rename from
|
|
mount_info::write_cygdrive_info_to_registry. Don't write to registry.
|
|
Disallow to overwrite a system cygdrive prefix.
|
|
(mount_info::remove_cygdrive_info_from_registry): Remove.
|
|
(mount_info::get_cygdrive_info): Just fetch current cygdrive prefix and
|
|
flags.
|
|
(mount_info::add_item): Drop last argument. Don't write to registry.
|
|
Disallow to overwrite a system mount point.
|
|
(mount_info::del_item): Drop last argument. Don't write to registry.
|
|
Disallow to remove a system mount point.
|
|
(mount): Enforce user mount.
|
|
(cygwin_umount): Ditto.
|
|
* shared_info.h (mount_info::add_item): Drop last argument.
|
|
(mount_info::del_item): Ditto.
|
|
(mount_info::add_reg_mount): Remove.
|
|
(mount_info::del_reg_mount): Remove.
|
|
(mount_info::write_cygdrive_info): Rename from
|
|
mount_info::write_cygdrive_info_to_registry.
|
|
(mount_info::remove_cygdrive_info_from_registry): Remove.
|
|
|
|
2008-04-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (mount_info::from_fstab_line): Simplify. Recognize special
|
|
"cygdrive" entry from FS type field.
|
|
(mount_info::from_fstab): Create a default root dir.
|
|
|
|
2008-04-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (insert_file): Fix potential buffer overflow.
|
|
|
|
2008-04-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (mount_info::from_fstab): Get module path name of the Cygwin
|
|
DLL, not the path of the application.
|
|
|
|
2008-04-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
Cleanup.
|
|
* exceptions.cc (windows_system_directory): Make static. Convert to
|
|
WCHAR.
|
|
(_cygtls::inside_kernel): Accommodate above change. Check module
|
|
path name for leading \\?\ and skip, if so.
|
|
(try_to_debug): Call GetEnvironmentStringsW and convert evaluation to
|
|
WCHAR to avoid truncated environment problem.
|
|
(has_visible_window_station): Call GetUserObjectInformationW.
|
|
(events_init): Accommodate above conversion of windows_system_directory.
|
|
* init.cc (respawn_wow64_process): Use WCHAR functions to start new
|
|
process.
|
|
* net.cc (__dup_ent): Drop Windows 9x consideration.
|
|
(load_ipv6_funcs): Use WCHAR functions to load IPv6 libs.
|
|
* syscalls.cc (syscalls.cc): Remove call to GetDiskFreeSpace.
|
|
|
|
2008-04-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (mount_info::init): First try to fetch mount points from
|
|
fstab files. Fallback to registry if none exists.
|
|
(skip_ws): New inline function.
|
|
(find_ws): Ditto.
|
|
(struct opt): New structure for mount options.
|
|
(read_flags): New static function to convert a mount flags string into
|
|
a flag value.
|
|
(mount_info::from_fstab_line): New method to create a mount table
|
|
entry from a fstab line.
|
|
(mount_info::from_fstab): New method to read fstab file.
|
|
* shared_info.h (mount_info::from_fstab_line): Declare.
|
|
(mount_info::from_fstab): Declare.
|
|
|
|
2008-04-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (enum symlink_t): Rename from shortcut_t.
|
|
|
|
2008-04-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (symlink_info::check_reparse_point): Use NtFsControlFile
|
|
to read reparse points.
|
|
(enum shortcut_t): New type.
|
|
(symlink_info::check): Convert sym_check to shortcut_t. Use shortcut_t
|
|
enum values throughout. Check reparse point before checking for
|
|
sysfile shortcut. Open reparse points with READ_CONTROL only to
|
|
accommodate special Vista reparse points. Add comments.
|
|
|
|
2008-04-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* flock.cc (get_lock_parent_dir): Drop call to NtOpenDirectoryObject
|
|
and utilize OBJ_OPENIF flag in call to NtCreateDirectoryObject.
|
|
(inode_t::inode_t): Ditto. Same for NtOpenMutant/NtCreateMutant.
|
|
|
|
2008-04-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* posix.sgml: Change lockf to being implemented.
|
|
|
|
2008-04-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (insert_file): Convert filename to WCHAR and call
|
|
CreateFileW to allow UTF-8 filenames.
|
|
|
|
2008-04-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Fix copyright dates.
|
|
|
|
2008-04-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
Throughout, call fcntl64 instead of fcntl or fcntl_worker.
|
|
* fcntl.cc (fcntl_worker): Remove.
|
|
(fcntl64): Add fault handler. Move fcntl_worker stuff here. Add case
|
|
for locking and call fhandler's lock method directly. Make sure that
|
|
F_FLOCK flag isn't set in lock call.
|
|
(_fcntl): Add fault handler.
|
|
* fhandler.cc (fhandler_base::fcntl): Drop lock cases.
|
|
* flock.cc (flock): Add fault handler. Simplify code. Call fhandlers
|
|
lock method directly instead of fcntl_worker. Add debug output.
|
|
(lockf): Add fault handler. Call fhandlers lock method directly
|
|
instead of fcntl_worker. Add debug output.
|
|
* winsup.h (fcntl_worker): Drop declaration.
|
|
(fcntl64): Declare.
|
|
|
|
2008-03-31 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* smallprint.cc (__small_vswprintf): Fix uninitialized usage of `w'.
|
|
|
|
Revamp advisory file locking to avoid cross reference pointers as well
|
|
as to allow BSD flock semantics. More agressively delete unused nodes
|
|
and sync objects.
|
|
* fhandler.h (fhandler_base::ino): Rename from namehash. Fix comment.
|
|
(fhandler_base::node): Remove.
|
|
(fhandler_base::unique_id): Add.
|
|
(fhandler_base::del_my_locks): New method.
|
|
(get_ino): Rename from get_namehash. Change usage throughout Cygwin.
|
|
(get_unique_id): New method.
|
|
* fhandler.cc (fhandler_base::close): Call own del_my_locks method.
|
|
Fix comment.
|
|
(fhandler_base::fhandler_base): Accommodate new and changed members.
|
|
(fhandler_base::fixup_after_fork): Call del_my_locks.
|
|
(fhandler_base::fixup_after_exec): Ditto for files with close-on-exec
|
|
flag set.
|
|
* fhandler_disk_file.cc (get_ino_by_handle): Rename from
|
|
readdir_get_ino_by_handle. Accommodate throughout.
|
|
(fhandler_base::open_fs): Fill ino with inode number if FS has good
|
|
inodes. Allocate a LUID and store in unique_id to recognize file
|
|
descriptors referencing the same file object.
|
|
* flock.cc: Drop flock TODO comments. Use explicit types __dev32_t
|
|
and __ino64_t instead of dev_t and ino_t.
|
|
(LOCK_OBJ_NAME_LEN): Change to reflect longer lf_id length.
|
|
(get_obj_handle_count): New method.
|
|
(lockf_t::lf_id): Change type to long long.
|
|
(inode_t::get_lock_obj_handle_count): Drop in favor of static function
|
|
get_obj_handle_count.
|
|
(inode_t::del_locks): Remove.
|
|
(inode_t::get): Add create_if_missing flag argument.
|
|
(inode_t::del_my_locks): Reimplement to handle POSIX and BSD flock
|
|
locks. Return if node can be deleted or not.
|
|
(inode_t::~inode_t): Ditto. Close handles to i_dir and i_mtx.
|
|
(fixup_lockf_after_fork): Remove.
|
|
(fhandler_base::del_my_locks): New method.
|
|
(fixup_lockf_after_exec): Check if node can be deleted.
|
|
(inode_t::get): Only create node if create_if_missing is set. Lock
|
|
the returned node here before unlocking the node list.
|
|
(inode_t::get_all_locks_list): Accommodate new lf_id length.
|
|
(inode_t::create_lock_obj): Ditto.
|
|
(lockf_t::open_lock_obj): Ditto. Change return type to bool. De-const.
|
|
Set lf_obj instead of returning a handle.
|
|
(lockf_t::del_lock_obj): Call SetEvent only if new incoming parameters
|
|
allow it. Explain how it's supposed to work.
|
|
(fhandler_disk_file::lock): Only fetch file length in SEEK_END case.
|
|
Use NtQueryInformationFile(FileStandardInformation) instead of
|
|
calling fstat_by_handle. Always unlock node before returning.
|
|
Use fhandler's unique id to create lf_id for BSD flock locks.
|
|
Rely on node lock from inode_t::get. Call del_lock_obj on removed
|
|
locks here to allow explicit unlocking. Delete node if no lock exists
|
|
on the file anymore.
|
|
(lf_setlock): Get file handle as additional parameter. Handle the fact
|
|
that lf_getblock now always opens the attached event object. Reactivate
|
|
erroneously applied patch which deactivates setting thread priority.
|
|
Additionally handle blocking on BSD flock locks.
|
|
(lf_clearlock): Get file handle as additional parameter.
|
|
(lf_getlock): Close event handle opened by lf_getblock.
|
|
(lf_getblock): Open potentially blocking event object here and check
|
|
its signal state if it's a BSD flock lock.
|
|
(lf_wakelock): Get file handle as additional parameter.
|
|
* fork.cc (frok::child): Drop call to fixup_lockf_after_fork.
|
|
* ntdll.h (struct _EVENT_BASIC_INFORMATION): Define.
|
|
(enum _EVENT_INFORMATION_CLASS): Define.
|
|
(NtQueryEvent): Declare.
|
|
|
|
* fhandler.h (fhandler_base::fs_flags): Remove.
|
|
(fhandler_base::set_fs_flags): Remove.
|
|
(fhandler_base::get_fs_flags): Remove.
|
|
* fhandler.cc (fhandler_base::write): Check for sparse file using
|
|
pc.fs_flags().
|
|
* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Ditto.
|
|
|
|
The return of the volume serial number in fs_info.
|
|
* fhandler.h (get_dev): New method.
|
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop call to
|
|
NtQueryVolumeInformationFile(FileFsVolumeInformation). Just use
|
|
get_dev() method.
|
|
* fhandler_fifo.cc (fhandler_fifo::open) Use device ID and inode number
|
|
to generate fifo name.
|
|
* path.h (fs_info::sernum): New member.
|
|
(fs_info::serial_number): New method.
|
|
(path_conv::fs_serial_number): New method.
|
|
* path.cc (fs_info::update): Fetch volume serial number and store in
|
|
sernum.
|
|
|
|
2008-03-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* flock.cc (lockf_t::operator new): Add operator taking a pointer. Call
|
|
cmalloc instead of ccalloc in the default operator. Add comments.
|
|
(inode_t::operator new): Call cmalloc instead of ccalloc.
|
|
(inode_t::get_all_locks_list): Return lockf_t pointer.
|
|
(inode_t::del_all_locks_list): Delete. Remove calls throughout.
|
|
(inode_t::get): Handle failing new gracefully.
|
|
(MAX_LOCKF_CNT): Define.
|
|
(inode_t::get_all_locks_list): Use pre-allocated buffer in i_all_lf
|
|
instead of allocating every lock. Return pointer to start of linked
|
|
list of locks.
|
|
(lockf_t::open_lock_obj): Create event object non-inheritable.
|
|
(fhandler_disk_file::lock): Handle failing new gracefully.
|
|
(lf_setlock): Allocate temporary buffer for node->i_all_lf from TLS.
|
|
Remove erroneous NtClose call.
|
|
(lf_getlock): Allocate temporary buffer for node->i_all_lf from TLS.
|
|
(lf_getblock): Set lf to return value of get_all_locks_list.
|
|
|
|
2008-03-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* flock.cc (FLOCK_PARENT_DIR_ACCESS): Define.
|
|
(FLOCK_INODE_DIR_ACCESS): Define.
|
|
(FLOCK_MUTANT_ACCESS): Define.
|
|
(FLOCK_EVENT_ACCESS): Define.
|
|
(SD_MIN_SIZE): Define.
|
|
(everyone_sd): Define to simplify calling _everyone_sd.
|
|
(_everyone_sd): Replace everyone_sync_sd. Take SECURITY_DESCRIPTOR as
|
|
argument and allow to specify access mask.
|
|
(get_lock_parent_dir): Open/Create parent dir with
|
|
FLOCK_PARENT_DIR_ACCESS. Add text to api_fatal message.
|
|
(inode_t::inode_t): Open/Create dir with FLOCK_INODE_DIR_ACCESS.
|
|
Open/Create mutant with FLOCK_MUTANT_ACCESS. Add text to api_fatal
|
|
message.
|
|
(lockf_t::create_lock_obj): Create event with FLOCK_EVENT_ACCESS.
|
|
Add text to api_fatal message.
|
|
(lockf_t::open_lock_obj): Open event with FLOCK_EVENT_ACCESS.
|
|
On failure, just return NULL pointer instead of calling api_fatal.
|
|
(lockf_t::get_lock_obj_handle_count): Replace call to small_printf
|
|
with call to debug_printf.
|
|
(lf_setlock): Handle a failure to open the lock event object as
|
|
EDEADLK. Call system_printf if opening sync objects fail.
|
|
* ntdll.h (DIRECTORY_TRAVERSE): Define.
|
|
(DIRECTORY_CREATE_OBJECT): Define.
|
|
(DIRECTORY_CREATE_SUBDIRECTORY): Define.
|
|
(EVENT_QUERY_STATE): Define.
|
|
|
|
2008-03-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (rename): Fix setting errno in case of trailing "/."
|
|
|
|
2008-03-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_socket.cc: Create shared objects session local throughout.
|
|
* shared.cc (shared_name): Add argument to allow opening session
|
|
local shared memory.
|
|
* shared_info.h (shared_name): Change declaration accordingly.
|
|
|
|
2008-03-26 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
Implement method of detecting a missing dll as suggested by Brian
|
|
Dessent.
|
|
* hookapi.cc (find_first_notloaded_dll): New function.
|
|
* pinfo.cc (status_exit): New function. Issue message when dll not
|
|
found. Use find_first_notloaded_dll to find a nonexistent dll.
|
|
(pinfo::maybe_set_exit_code_from_windows): Call status_exit when exit
|
|
code >= 0xc0000000UL.
|
|
* sigproc.cc (child_info::proc_retry): Return exit code when
|
|
STATUS_DLL_NOT_FOUND.
|
|
* spawn.cc (spawn_guts): Minor cleanup.
|
|
* syscalls.cc (close_all_files): Don't actually close stderr
|
|
filehandle. Just make it noninheritable.
|
|
* winsup.h (find_first_notloaded_dll): Declare new function.
|
|
|
|
2008-03-26 Brian Dessent <brian@dessent.net>
|
|
|
|
* ntdll.h: Add several missing NTSTATUS defines.
|
|
|
|
2008-03-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* flock.cc (inode_t::get_all_locks_list): Don't allow F_WAIT flag
|
|
in lock event object name.
|
|
(lockf_t::create_lock_obj): Ditto.
|
|
(lockf_t::open_lock_obj): Ditto.
|
|
(lf_setlock): Only check POSIX locks for deadlock condition.
|
|
(lf_findoverlap): Don't let POSIX and flock locks interact.
|
|
|
|
2008-03-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* flock.cc: Clarify a couple of comments.
|
|
(lf_setlock): Treat not being able to sync on a process as a potential
|
|
deadlock situation. Close process handle using CloseHandle.
|
|
|
|
2008-03-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* flock.cc: Fix typo in comment.
|
|
|
|
2008-03-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::dup): Drop setting flags in the parent.
|
|
|
|
Implement advisory file locking.
|
|
* cygheap.h (struct init_cygheap): Add inode_list member.
|
|
* cygwin.din (lockf): Export.
|
|
* dcrt0.cc (child_info_spawn::handle_spawn): Call
|
|
fixup_lockf_after_exec.
|
|
* dtable.h (class dtable): Add fhandler_disk_file as friend class.
|
|
* fhandler.cc (fhandler_base::close): Call del_my_locks if node is set.
|
|
(fhandler_base::fhandler_base): Initialize node to NULL.
|
|
(fhandler_base::fixup_after_fork): Ditto.
|
|
* fhandler.h (class fhandler_base): Add member node.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::lock): Delete.
|
|
* flock.cc: Implement all advisory file locking here.
|
|
(fhandler_disk_file::lock): Implement here.
|
|
(flock): Call fcntl with F_FLOCK bit set. Remove test main function.
|
|
(lockf): New function.
|
|
* fork.cc (frok::child): Call fixup_lockf_after_fork.
|
|
* ntdll.h (DIRECTORY_ALL_ACCESS): Define.
|
|
(struct _OBJECT_BASIC_INFORMATION): Define.
|
|
(enum _EVENT_TYPE): Define.
|
|
(NtCreateDirectoryObject): Declare.
|
|
(NtCreateEvent): Declare.
|
|
(NtCreateMutant): Declare.
|
|
(NtOpenEvent): Declare.
|
|
(NtOpenMutant): Declare.
|
|
* include/cygwin/version.h: Bump API minor number.
|
|
|
|
2008-03-22 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* dtable.cc (handle_to_fn): Modify to return true if handle represents
|
|
a cygwin tty.
|
|
(dtable::init_std_file_from_handle): Detect when we've seen a cygwin
|
|
pipe and use it in overlapped mode by default.
|
|
(decode_tty): Make static.
|
|
|
|
2008-03-22 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* dtable.cc: Define various device-related string constants as wide
|
|
character constants.
|
|
(dtable::init_std_file_from_handle): Reorganize pipe handling to try to
|
|
catch special tty case.
|
|
(build_fh_name_worker): Declare for common use.
|
|
(build_fh_name): Define char version.
|
|
(build_fh_name): Define (currently unused) UNICODE_STRING version.
|
|
(decode_tty): Detect if pipe is actually a cygwin tty, returning the
|
|
tty name in the buffer.
|
|
(handle_to_fn): Reorganize to use wide characters.
|
|
* dtable.h (build_fh_name): Declare (currently unused) UNICODE_STRING
|
|
version.
|
|
* fhandler_tty.cc (fhandler_pty_master::setup): Use
|
|
fhandler_pipe::create_selectable to create a pipe with a given name.
|
|
* pipe.cc (pipe_handler): Make returned handle inheritable.
|
|
(fhandler_pipe::create_selectable): Take an optional name. Use a
|
|
standard cygwin introducer for the name.
|
|
|
|
* path.cc (path_conv::check): Make first argument const.
|
|
* path.h (path_conv::check): Ditto for declaration.
|
|
(path_conv::path_conv): Ditto for UNICODE_STRING version.
|
|
|
|
2008-03-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/sys/cygwin.h: Revert erroneous move of `#ifdef WINVER' to
|
|
another location.
|
|
|
|
2008-03-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fcntl.cc (fcntl_worker): Protect with a 'myfault'.
|
|
|
|
* path.cc (normalize_posix_path): Treat X:/ as Win32 path, too.
|
|
|
|
* smallprint.cc (__wrn): New static function.
|
|
(__small_vswprintf): New function to generate WCHAR strings.
|
|
(__small_swprintf): Ditto.
|
|
* winsup.h (__small_swprintf): Declare.
|
|
(__small_vswprintf): Declare.
|
|
|
|
2008-03-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.sgml: Remove documentation for old path API. Add documentation
|
|
for new path API.
|
|
* security.sgml: New file to document cygwin_set_impersonation_token
|
|
and cygwin_logon_user with only eight years of delay.
|
|
* shared.sgml: Remove file.
|
|
* include/sys/cygwin.h (cygwin32_attach_handle_to_fd): Move declaration
|
|
into fully deprecated function block.
|
|
(cygwin_logon_user): Move declaration down to declaration of
|
|
cygwin_set_impersonation_token.
|
|
|
|
2008-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (rename): Just return with 0 if filenames are identical,
|
|
per POSIX. Drop comment added in previous patch.
|
|
|
|
2008-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (rename): Handle a special case of trying to rename a
|
|
mount point.
|
|
|
|
2008-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* environ.h: Fix comment.
|
|
* winsup.h: Ditto. Reflect the fact that CYG_MAX_PATH is deprecated.
|
|
|
|
2008-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* pipe.cc (fhandler_pipe::create_selectable): Use MAX_PATH instead of
|
|
CYG_MAX_PATH.
|
|
* tty.cc (tty_list::init_session): Ditto.
|
|
(tty::alive): Ditto.
|
|
(tty::open_mutex): Ditto.
|
|
(tty::create_inuse): Ditto.
|
|
(tty::get_event): Ditto.
|
|
|
|
2008-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Disable
|
|
munging. Convert all chars in the 0xf0xx area to it's ascii equivalent.
|
|
* path.cc (normalize_posix_path): Don't treat "X:foo" as windows path,
|
|
only "X:\foo".
|
|
(tfx_chars): New transformation table for special DOS chars.
|
|
(tfx_chars_managed): Ditto, plus transformation of uppercase ASCII
|
|
chars.
|
|
(transform_chars): New function.
|
|
(get_nt_native_path): Make static. Call transform_chars for all valid
|
|
FS paths. Get additional flag if file is managed or not. Accommodate
|
|
throughout.
|
|
(getfileattr): Get additional flag if file is managed or not.
|
|
Accommodate throughout.
|
|
(path_conv::check): Disable special handling for trailing dots and
|
|
spaces.
|
|
(mount_item::build_win32): Disable code for managed paths.
|
|
(mount_info::conv_to_posix_path): Ditto.
|
|
* path.h (get_nt_native_path): Remove declaration.
|
|
|
|
2008-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Don't
|
|
copy filename twice in the non-managed case.
|
|
|
|
2008-03-12 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* winsup.h (NT_MAX_PATH): Revert ill-advised change to 32767.
|
|
Accommodate change throughout.
|
|
|
|
* cygwin.din (cygwin_conv_path): Export.
|
|
(cygwin_conv_path_list): Export.
|
|
(cygwin_create_path): Export.
|
|
* dcrt0.cc (dll_crt0_1): Use cygwin_conv_path.
|
|
* dtable.cc (handle_to_fn): Ditto. Don't expect UNICODE_STRING being
|
|
0-terminated.
|
|
* environ.cc (env_plist_to_posix): New helper function.
|
|
(env_plist_to_win32): Ditto.
|
|
(env_path_to_posix): Ditto.
|
|
(env_path_to_win32): Ditto.
|
|
(return_MAX_PATH): Remove.
|
|
(conv_envvars): Use new helper functions. Drop removed members.
|
|
(win_env::operator =): Accommodate removal of path length functions.
|
|
(win_env::add_cache): Accommodate new env helper function API.
|
|
(posify): Ditto.
|
|
* environ.h (struct win_env): Ditto. Remove path length function
|
|
pointers since they are unused.
|
|
* path.cc (warn_msdos): Use cygwin_conv_path.
|
|
(getfileattr): Use new tmp_pathbuf::u_get method.
|
|
(fillout_mntent): Ditto.
|
|
(symlink_info::check): Ditto.
|
|
(path_conv::check): Use sizeof (WCHAR) instead of constant 2.
|
|
(symlink_info::check_reparse_point): Ditto.
|
|
(conv_path_list): Get max size of target string as argument. Call
|
|
cygwin_conv_path as helper function.
|
|
(cygwin_conv_path): New function.
|
|
(cygwin_create_path): New function.
|
|
(cygwin_conv_to_win32_path): Just call cygwin_conv_path with size set
|
|
to MAX_PATH.
|
|
(cygwin_conv_to_full_win32_path): Ditto.
|
|
(cygwin_conv_to_posix_path): Ditto.
|
|
(cygwin_conv_to_full_posix_path): Ditto.
|
|
(conv_path_list_buf_size): Add FIXME comment.
|
|
(env_PATH_to_posix): Rename from env_win32_to_posix_path_list.
|
|
Add size argument as required for env helper functions.
|
|
(cygwin_win32_to_posix_path_list): Call conv_path_list with size set to
|
|
MAX_PATH.
|
|
(cygwin_posix_to_win32_path_list): Ditto.
|
|
(cygwin_conv_path_list): New function.
|
|
(cwdstuff::get): Fix length argument in call to sys_wcstombs.
|
|
* spawn.cc (find_exec): Use cygwin_conv_path_list.
|
|
* tls_pbuf.h (tmp_pathbuf::u_get: New method.
|
|
* uinfo.cc (cygheap_user::ontherange): Allocate temporary path buffers
|
|
using tmp_pathbuf. Use cygwin_conv_path.
|
|
* winf.cc (av::unshift): Use cygwin_conv_path.
|
|
* include/cygwin/version.h: Bump API minor number.
|
|
* include/sys/cygwin.h: Comment out old cygwin32_XXX API.
|
|
Mark old path handling API as deprecated.
|
|
(cygwin_conv_path_t): Typedef. Define values.
|
|
(cygwin_conv_path): Declare.
|
|
(cygwin_create_path): Declare.
|
|
(cygwin_conv_path_list): Declare.
|
|
|
|
2008-03-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dlfcn.cc (get_full_path_of_dll): Allow paths up to PATH_MAX.
|
|
(dlopen): Call get_full_path_of_dll with path buffer allocate by
|
|
tmp_pathbuf.
|
|
|
|
2008-03-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* spawn.cc (find_exec): Use tmp_pathbuf to allocate path buffer.
|
|
|
|
2008-03-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dtable.cc (dtable::init_std_file_from_handle): Use tmp_pathbuf to
|
|
allocate path buffer.
|
|
(handle_to_fn): Ditto. Allocate fnbuf big enough to get long path
|
|
names.
|
|
|
|
2008-03-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (cwdstuff::set): Make sure drive_length is 0 for virtual
|
|
paths. Add comments.
|
|
* spawn.cc (spawn_guts): Don't allow to start a native Win32 application
|
|
from a long path or a virtual path. Print an error message to stderr.
|
|
|
|
2008-03-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* environ.cc (parse_options): Use tmp_pathbuf to allocate buffer.
|
|
(regopt): Take tmp buffer as additional argument.
|
|
(environ_init): Alllcate tmpbuf earlier. Use as temporary buffer in
|
|
call to regopt.
|
|
* tls_pbuf.cc (tmp_pathbuf::c_get): Allocate one additional char.
|
|
(tmp_pathbuf::w_get): Allocate one additional WCHAR.
|
|
* winf.cc (av::unshift): Use tmp_pathbuf to allocate buffer.
|
|
|
|
2008-03-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (sync): Use MAX_PATH rather than CYG_MAX_PATH.
|
|
|
|
2008-03-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (class fhandler_console): Add write_buf as pointer to
|
|
temporary buffer space.
|
|
* fhandler_console.cc (CONVERT_LIMIT): Define as NT_MAX_PATH. Add
|
|
comment.
|
|
(fhandler_console::write_normal): Use write_buf throughout.
|
|
(fhandler_console::write): Use tmp_pathbuf to allocate write_buf.
|
|
|
|
2008-03-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_console.cc (fhandler_console::write_normal): Don't print
|
|
chars marked as ERR chars.
|
|
|
|
2008-03-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (dev_console::con_to_str): Declare returning DWORD.
|
|
* fhandler_console.cc (dev_console::con_to_str): Return number of
|
|
multibyte char bytes.
|
|
(fhandler_console::read): Set nread to number of multibyte char bytes
|
|
returned from con_to_str.
|
|
(fhandler_console::write_normal): Reorder trunc buffer preocessing.
|
|
Return after writing valid multibyte sequence out of trunc buffer.
|
|
Change comments slightly.
|
|
|
|
2008-03-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (DIR_BUF_SIZE): Define required space for file
|
|
name in terms of sizeof(WCHAR).
|
|
(fhandler_disk_file::readdir_helper): Convert *all* of fname.
|
|
* path.cc (fillout_mntent): Use tmp_pathbuf for path buffer.
|
|
(symlink_worker): Ditto.
|
|
(SCAN_JUSTCHECKTHIS): New state for suffix_scan to define
|
|
that only the actual name gets cheked and a suffix is never attached.
|
|
(suffix_scan::has): If filename + suffix would be > NAME_MAX, start
|
|
in SCAN_JUSTCHECKTHIS state.
|
|
(suffix_scan::next): Add case for SCAN_JUSTCHECKTHIS.
|
|
(symlink_info::check): Use tmp_pathbuf for path buffer. Goto
|
|
file_not_symlink in case of invalid file name.
|
|
(realpath): Use tmp_pathbuf for path buffer.
|
|
|
|
2008-03-07 Brian Dessent <brian@dessent.net>
|
|
|
|
* dtable.cc (handle_to_fn): Null-terminate posix_fn in the case
|
|
of justslash = true.
|
|
|
|
2008-03-07 Brian Dessent <brian@dessent.net>
|
|
|
|
* fhandler.cc (fhandler_base::open): Use %S for PUNICODE_STRING.
|
|
* syscalls.cc (setmode): Ditto.
|
|
|
|
2008-03-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_socket.cc (fhandler_socket::sendto): Never send more than
|
|
64K. Add comment to explain why.
|
|
(fhandler_socket::sendmsg): Ditto.
|
|
|
|
2008-03-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (DLL_OFILES): Add tls_pbuf.o.
|
|
* autoload.cc (CreateDesktopW): Replace CreateDesktopA.
|
|
(CreateWindowStationW): Replace CreateWindowStationA.
|
|
(GetUserObjectInformationW): Replace GetUserObjectInformationA.
|
|
* cygheap.h (cwdstuff::get): Assume default buffer size NT_MAX_PATH.
|
|
* cygtls.cc (_cygtls::remove): Free temporary TLS path buffers.
|
|
* cygtls.h (TP_NUM_C_BUFS): Define.
|
|
(TP_NUM_W_BUFS): Define.
|
|
(class tls_pathbuf): New class to store pointers to thread local
|
|
temporary path buffers.
|
|
(_local_storage::pathbufs): New member.
|
|
* environ.cc (win_env::add_cache): Use temporary TLS path buffer instead
|
|
of stack based buffer.
|
|
(posify): Get temporary outenv buffer from calling function.
|
|
(environ_init): Create temporary TLS path buffer for posify.
|
|
(build_env): Create Windows environment block as WCHAR buffer.
|
|
* environ.h (build_env): Change declaration accordingly.
|
|
* external.cc (sync_winenv): Accommodate build_env change.
|
|
* fhandler_console.cc (fhandler_console::need_invisible): Use
|
|
GetUserObjectInformationW and CreateWindowStationW.
|
|
* fhandler_process.cc (format_process_maps): Use temporary TLS path
|
|
buffer instead of stack based buffer.
|
|
* fork.cc (frok::parent): Convert to use CreateProcessW.
|
|
* path.cc: Throughout use temporary TLS path buffers instead of stack
|
|
based buffer. Replace checks for CYG_MAX_PATH by checks for
|
|
NT_MAX_PATH.
|
|
(getfileattr): New function to replace GetFileAttributesA.
|
|
(normalize_win32_path): Remove Win32 and NT long path prefixes.
|
|
(getwd): Assume PATH_MAX + 1 buffer per SUSv3.
|
|
* path.h (class path_conv): Set path buffer to size NT_MAX_PATH.
|
|
(iswdrive): Define.
|
|
* pinfo.cc (commune_process): Use temporary TLS path buffer instead of
|
|
stack based buffer.
|
|
* registry.cc (get_registry_hive_path): Ditto.
|
|
(load_registry_hive): Ditto.
|
|
* spawn.cc (spawn_guts): Convert to use CreateProcessW and
|
|
CreateProcessAsUserW.
|
|
(av::fixup): Open/close file using NtOpenFile/NtClose.
|
|
* syscalls.cc (mknod_worker): Allow PATH_MAX file name.
|
|
(mknod32): Ditto.
|
|
(getusershell): Ditto.
|
|
* tls_pbuf.cc: New file implementing tls_pathbuf and tmp_pathbuf
|
|
methods.
|
|
* tls_pbuf.h: New header for files using tmp_pathbuf.
|
|
* tlsoffsets.h: Regenerate.
|
|
* winsup.h (NT_MAX_PATH): Define as 32767 to avoid USHORT overflow.
|
|
|
|
2008-03-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* child_info.h (CURR_CHILD_INFO_MAGIC): Reset.
|
|
|
|
2008-03-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::open_): Add missing test for O_CREAT.
|
|
Fix comment.
|
|
|
|
2008-03-05 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* child_info.h (~child_info_spawn): Check moreinfo->myself_pinfo for
|
|
NULL before closing.
|
|
* spawn.cc (spawn_guts): Don't close moreinfo->myself_pinfo explicitely
|
|
in case of failing CloseProcess.
|
|
|
|
* fhandler.cc (fhandler_base::open_): Return EISDIR when trying to
|
|
create a directory.
|
|
* path.cc (path_conv::check): If input path had a trailing dir
|
|
separator, tack it on to the native path if directory doesn't exist.
|
|
|
|
2008-03-02 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* cygtls.cc (_cygtls::init_exception_handler): Semi-revert to making
|
|
only ourselves the exception handler and nothing else.
|
|
* exceptions.cc (open_stackdumpfile): Use correct format specifiers for
|
|
unicode when printing the name of the stackdump file.
|
|
(stack_info::walk): Stop walking if ebp points into cygwin itself.
|
|
(_cygtls::handle_exceptions): Detect when signal is masked and treat as
|
|
if it was not caught. Reinitialize exception handler to known state to
|
|
avoid subsequent attempts to call Windows exception handlers if an
|
|
exception occurs in a signal handler. Revert to a 'return 0' rather
|
|
than using a goto.
|
|
|
|
* strfuncs.cc (sys_wcstombs_alloc): Minor formatting tweak.
|
|
* winsup.h: Fix comment typo.
|
|
|
|
2008-03-02 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* smallprint.cc (__small_vsprintf): Free allocated buffer rather than
|
|
pointer into the buffer.
|
|
|
|
2008-03-01 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* cygtls.h (_cygtls::handle_threadlist_exception): Eliminate.
|
|
(_cygtls::init_threadlist_exceptions): Ditto.
|
|
* cygtls.cc (_cygtls::handle_threadlist_exception): Eliminate.
|
|
(_cygtls::init_threadlist_exceptions): Ditto.
|
|
(_cygtls::find_tls): Use myfault handling to deal with errors caused by
|
|
nonexistent threads.
|
|
* sigproc.cc (wait_sig): Eliminate call to init_threadlist_exceptions.
|
|
|
|
2008-03-01 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* cygtls.cc (_cygtls::init_exception_handler): Just return.
|
|
|
|
2008-03-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exceptions.cc (_cygtls::handle_exceptions): Only call rtl_unwind when
|
|
exiting. Just return, don't set thread context.
|
|
* gendef (_setjmp): Store %fs:0 in jmp_buf.
|
|
(_sjfault): Ditto.
|
|
(_ljfault): Restore %fs:0 from jmp_buf.
|
|
(_longjmp): Ditto.
|
|
|
|
2008-02-29 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call close_fs
|
|
instead of close to avoid calling close from wrong class when changing
|
|
a file system based device node.
|
|
(fhandler_disk_file::fchown): Ditto.
|
|
(fhandler_disk_file::facl): Ditto.
|
|
|
|
2008-02-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exceptions.cc (_cygtls::handle_exceptions): When being debugged,
|
|
leave through SetThreadContext, too, to keep exception handler stack
|
|
intact.
|
|
|
|
2008-02-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exceptions.cc (open_stackdumpfile): Add comments.
|
|
|
|
2008-02-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exceptions.cc (open_stackdumpfile): Use NtCreateFile to create
|
|
stackdump file.
|
|
|
|
2008-02-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* exceptions.cc (stack_info::walk): Fix typo.
|
|
|
|
2008-02-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygtls.cc (_cygtls::init_exception_handler): Fix comment.
|
|
|
|
2008-02-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* (struct __DIR_cache): Switch order of members so that the buffer
|
|
given to NtQueryDirectoryFile is 8 byte aligned.
|
|
|
|
2008-02-27 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* cygtls.cc (_cygtls::handle_threadlist_exception): Make it clear that
|
|
the function never actually returns.
|
|
* exceptions.cc (_cygtls::handle_exceptions): Jump out of function
|
|
rather than returning to avoid meddling by previously installed
|
|
exception handlers.
|
|
|
|
2008-02-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (initial_env): Only use local buffer "buf" if DEBUGGING is
|
|
enabled. Replace calls to GetEnvironmentVariable by calls to
|
|
GetEnvironmentVariableA for clarity. Call GetEnvironmentVariableA
|
|
with NULL buffer.
|
|
(cygbench): Ditto, drop local buffer.
|
|
* environ.cc (getearly): Call GetEnvironmentVariableA.
|
|
(environ_init): Retrieve unicode environment and convert to current
|
|
codepage locally.
|
|
(getwinenveq): Ditto.
|
|
* exceptions.cc (try_to_debug): Accommodate new sys_mbstowcs calling
|
|
convention.
|
|
* fhandler_clipboard.cc (set_clipboard): Call sys_mbstowcs to retrieve
|
|
required buffer length.
|
|
* fork.cc (frok::child): Call GetEnvironmentVariableA.
|
|
* miscfuncs.cc: Accommodate changed arguments in calls to sys_mbstowcs.
|
|
* sec_auth.cc: Ditto.
|
|
* strfuncs.cc (sys_wcstombs_alloc): Fix formatting.
|
|
(sys_mbstowcs): Change arguments to allow specifying a source string
|
|
length.
|
|
(sys_mbstowcs_alloc): Ditto.
|
|
* uinfo.cc (cygheap_user::ontherange): Accommodate changed arguments in
|
|
calls to sys_mbstowcs.
|
|
* winsup.h (sys_mbstowcs): Adjust declaration.
|
|
(sys_mbstowcs_alloc): Ditto.
|
|
|
|
2008-02-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (cwdstuff::set): Revert error handling change in case
|
|
DuplicateHandle fails, because it breaks Vista/Longhorn workaround.
|
|
|
|
2008-02-19 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* sigproc.cc (sig_send): Use sigmask of target thread if it is
|
|
specified otherwise default to main sigmask.
|
|
|
|
2008-02-16 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::fpathconf): Fix _PC_NAME_MAX and
|
|
_PC_PATH_MAX cases.
|
|
|
|
2008-02-15 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/sys/cygwin.h (__INT_MAX_PATH): Remove.
|
|
(external_pinfo): Convert program_long to pointer.
|
|
* external.cc (fillout_pinfo): Add buffer for program_long value.
|
|
|
|
2008-02-15 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/sys/cygwin.h (__INT_MAX_PATH): Define to 32K.
|
|
(external_pinfo): Set size of program_long to __INT_MAX_PATH.
|
|
|
|
2008-02-15 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* include/sys/cygwin.h (external_pinfo): Define program_long size using
|
|
external buffer size rather than cygwin-internal buffer size.
|
|
|
|
2008-02-15 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
Perform whitespace cleanup throughout.
|
|
|
|
* dcrt0.cc (signal_shift_subtract): Eliminate ancient backwards
|
|
compatibility.
|
|
(check_sanity_and_sync): Ditto.
|
|
* winsup.h (SIGTOMASK): Ditto. Just use constant in signal
|
|
calculation.
|
|
* include/cygwin/version: Remove backwards signal mask compatibility
|
|
define.
|
|
|
|
* path.cc (symlink_info::check_sysfile): Cosmetic change.
|
|
|
|
* registry.cc (get_registry_hive_path): Remove unneeded variable.
|
|
|
|
* exceptions.cc (handle_sigsuspend): Eliminate thread signal mask and
|
|
use either main sigmask or current thread sigmask.
|
|
(set_process_mask): Ditto.
|
|
(sighold): Ditto.
|
|
(sigrelse): Ditto.
|
|
(sigset): Ditto.
|
|
(set_process_mask_delta): Ditto.
|
|
(_cygtls::call_signal_handler): Ditto.
|
|
* fhandler_process.cc (format_process_status): Ditto.
|
|
* fhandler_termios.cc (fhandler_termios::bg_check): Ditto.
|
|
* pinfo.h (class pinfo): Ditto.
|
|
* select.cc (pselect): Ditto.
|
|
* signal.cc (sigprocmask): Ditto.
|
|
(abort): Ditto.
|
|
(sigpause): Ditto.
|
|
(sigsend): Ditto.
|
|
(wait_sig): Ditto.
|
|
* thread.h (pthread::parent_tls): New member.
|
|
* thread.cc (pthread::pthread): Record parent_tls here.
|
|
(pthread::thread_init_wrapper): Initialize sigmask from parent thread.
|
|
|
|
2008-02-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygheap.cc (cwcsdup): New function.
|
|
(cwcsdup1): New function.
|
|
* cygheap.h (cygheap_user::get_windows_id): New method returning PWCHAR.
|
|
(cwcsdup): Declare.
|
|
(cwcsdup1): Declare.
|
|
* registry.cc (get_registry_hive_path): Use WCHAR instead of char
|
|
throughout.
|
|
(load_registry_hive): Ditto.
|
|
* registry.h (get_registry_hive_path): Change declaration accordingly.
|
|
(load_registry_hive): Ditto.
|
|
* sec_helper.cc (cygpsid::string): New method returning PWCHAR.
|
|
* security.h (cygpsid::string): Declare.
|
|
* syscalls.cc (seteuid32): Convert local name var to WCHAR.
|
|
* uinfo.cc (cygheap_user::env_userprofile): Convert local name buffers
|
|
to WCHAR. Call sys_wcstombs_alloc to generate puserprof buffer.
|
|
|
|
* winsup.h: Fix comment.
|
|
(NT_MAX_PATH): New definition for maximum internal path length.
|
|
Use throughout where appropriate.
|
|
* include/limits.h (PATH_MAX): Set to 4096 as on Linux.
|
|
|
|
2008-02-13 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* configure.in: Remove non-working options.
|
|
* configure: Regenerate.
|
|
|
|
2008-02-13 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* syscalls.cc (_isatty): Define as an alias to isatty to override
|
|
newlib version.
|
|
|
|
* thread.cc (pthread_kill): Deal with signal 0 as per POSIX and also
|
|
avoid manipulating an invalid thread.
|
|
|
|
2008-02-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* posix.sgml: Move llrint, llrintf, llrintl, lrintl, rintl, wcstol,
|
|
wcstoll, wcstoul, wcstoull, wcsxfrm from unimplemented to implemented
|
|
POSIX interfaces.
|
|
Change headline of "GNU extensions" to "GNU and Linux extensions".
|
|
Add fgetxattr, flistxattr, fremovexattr, fsetxattr, getxattr, lgetxattr,
|
|
listxattr, llistxattr, lremovexattr, lsetxattr, removexattr, setxattr,
|
|
wcpcpy and wcpncpy to list of implemented GNU functions.
|
|
|
|
2008-02-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygtls.cc (_cygtls::init_exception_handler): Revert patch
|
|
from 2005-12-02.
|
|
* exceptions.cc (stack_info::walk): Add workaround for NT 5.2
|
|
64 bit OSes.
|
|
* wincap.h (wincaps::has_restricted_stack_args): New element.
|
|
* wincap.cc: Implement above element throughout.
|
|
(wincapc::init): Reset has_restricted_stack_args if not running
|
|
under WOW64.
|
|
|
|
2008-02-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::fgetxattr): Remove unused
|
|
attr.
|
|
(fhandler_disk_file::fsetxattr): Ditto.
|
|
* include/attr/xattr.h: New file.
|
|
|
|
2008-02-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (dll_crt0_1): Fix typo in call to sys_wcstombs.
|
|
* miscfuncs.cc (next_char): Initialize ret to keep gcc happy.
|
|
|
|
2008-02-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (DLL_OFILES): Add ntea.o.
|
|
* cygwin.din (getxattr, listxattr, removexattr, setxattr, lgetxattr,
|
|
llistxattr, lremovexattr, lsetxattr, fgetxattr, flistxattr,
|
|
fremovexattr, fsetxattr): Export Linux extended attribute functions.
|
|
Sort.
|
|
* errno.cc (errmap): Add mappings for ERROR_EAS_DIDNT_FIT,
|
|
ERROR_EAS_NOT_SUPPORTED, ERROR_EA_LIST_INCONSISTENT,
|
|
ERROR_EA_TABLE_FULL, ERROR_FILE_CORRUPT, ERROR_INVALID_EA_NAME.
|
|
* fhandler.h (class fhandler_base): Declare new fgetxattr and
|
|
fsetxattr methods.
|
|
(class fhandler_disk_file): Ditto.
|
|
* fhandler.cc (fhandler_base::fgetxattr): New method.
|
|
(fhandler_base::fsetxattr): New method.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::fgetxattr): New method.
|
|
(fhandler_disk_file::fsetxattr): New method.
|
|
* ntdll.h (STATUS_EA_TOO_LARGE): Define.
|
|
(STATUS_NONEXISTENT_EA_ENTRY): Define.
|
|
(STATUS_NO_EAS_ON_FILE): Define.
|
|
* ntea.cc (read_ea): Rewrite for long pathnames and for using with
|
|
Linux extended attribute functions.
|
|
(write_ea): Ditto.
|
|
(getxattr_worker): New static function.
|
|
(getxattr): New function.
|
|
(lgetxattr): New function.
|
|
(fgetxattr): New function.
|
|
(listxattr): New function.
|
|
(llistxattr): New function.
|
|
(flistxattr): New function.
|
|
(setxattr_worker): New static function.
|
|
(setxattr): New function.
|
|
(lsetxattr): New function.
|
|
(fsetxattr): New function.
|
|
(removexattr): New function.
|
|
(lsetxattr): New function.
|
|
(fsetxattr): New function.
|
|
* security.h (read_ea): Change declaration according to above changes.
|
|
(write_ea): Ditto.
|
|
* include/cygwin/version.h: Bump API minor version.
|
|
|
|
2008-02-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* libc/ftw.cc (ftw): Allow nfds <= 0 for glibc compatibility.
|
|
* libc/nftw.c (nftw): Ditto.
|
|
|
|
2008-02-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dtable.cc (dtable::init_std_file_from_handle): Set access to
|
|
read/write if handle is connected to a tty or console.
|
|
* fhandler_dsp.cc (fhandler_dev_dsp::dup): Set open flags correctly
|
|
after duplicating from archetype.
|
|
* fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
|
|
(fhandler_pty_master::dup): Ditto.
|
|
|
|
2008-02-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* miscfuncs.cc (next_char): Fix typos in comment.
|
|
* strfuncs.cc: Remove cygserver guards.
|
|
|
|
2008-02-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (fhandler_console::trunc_buf): Add to use as cache for
|
|
truncated multibyte characters on input.
|
|
(fhandler_console::write_replacement_char): Declare new method.
|
|
* fhandler_console.cc (CONVERT_LIMIT): Raise to 64K.
|
|
(fhandler_console::fhandler_console): Initialize trunc_buf.
|
|
(ERR): Define as independent value again.
|
|
(fhandler_console::write_replacement_char): New method to print
|
|
replacement chars.
|
|
(fhandler_console::write_normal): Add handling for truncated multibyte
|
|
sequences. Call next_char instead of pathetic CharNextExA function.
|
|
Don't change src, rather just work with found later on.
|
|
* miscfuncs.cc (is_cp_multibyte): Move here from strfuncs.cc.
|
|
Don't call Windows function, restrict to well-known ANSI/OEM codepages
|
|
and UTF-8.
|
|
(next_char): Call CharNextExA only for doublebyte codepages.
|
|
Implement for UTF-8 here.
|
|
* strfuncs.cc (is_cp_multibyte): Move to miscfuncs.cc.
|
|
* winsup.h (next_char): Declare.
|
|
* include/limits.h (MB_LEN_MAX): Set to maximum value of MB_CUR_MAX
|
|
as defined by newlib for now.
|
|
|
|
2008-02-05 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (CharToOemA): Remove.
|
|
(CharNextExA): Define.
|
|
* environ.cc (codepage_init): Un-static. Set active_codepage to
|
|
active codepage. Default to ansi regardless of buf pointer.
|
|
* fhandler.h (dev_console::get_console_cp): New method.
|
|
(dev_console::con_to_str): Change declaration according to new
|
|
implementation.
|
|
(dev_console::str_to_con): Ditto.
|
|
* fhandler_console.cc (cp_convert): Remove.
|
|
(dev_console::con_to_str): Redefine to take WCHAR as incoming console
|
|
char.
|
|
(dev_console::get_console_cp): Return correct codepage according to
|
|
alternate_charset_active setting.
|
|
(dev_console::str_to_con): Redefine to create WCHAR buffer for console
|
|
output.
|
|
(fhandler_console::read): Read console input as WCHARs.
|
|
(base_chars): Fix typo in comment.
|
|
(fhandler_console::char_command): Save and restore console output
|
|
buffer using UNICODE functions.
|
|
(fhandler_console::write_normal): Convert to write output in UNICODE.
|
|
Use CharNextExA to recognize multibyte characters in input. Workaround
|
|
problem with UTF-8 and MultiByteToWideChar. Simplify the loop for
|
|
printing "normal" characters.
|
|
* strfuncs.cc (active_codepage): New variable to store active codepage.
|
|
(get_cp): Call codepage_init() if active_codepage is uninitialized.
|
|
Just return active_codepage.
|
|
(is_cp_multibyte): New function.
|
|
* winsup.h (active_codepage): Declare.
|
|
(codepage_init): Declare.
|
|
(is_cp_multibyte): Declare.
|
|
|
|
2008-02-03 Brian Dessent <brian@dessent.net>
|
|
|
|
* smallprint.cc (__small_vsprintf): Use HEAP_NOTHEAP for type.
|
|
* strfuncs.cc (sys_wcstombs_alloc): Guard use of ccalloc
|
|
to !__OUTSIDE_CYGWIN__ for use in cygserver.
|
|
(sys_mbstowcs_alloc): Ditto.
|
|
|
|
2008-02-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* miscfuncs.cc (cygwin_wcsncasecmp): Never access more than n
|
|
characters.
|
|
(cygwin_strncasecmp): Ditto. Fix for strings longer than n.
|
|
|
|
2008-02-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* string.h: Re-enable inline strcasematch and strncasematch
|
|
implementations and rename to ascii_strcasematch/ascii_strncasematch.
|
|
* dcrt0.cc: Replace str[n]casematch with ascii_str[n]casematch where
|
|
applicable.
|
|
* environ.cc: Ditto.
|
|
* fhandler_process.cc: Ditto.
|
|
* hookapi.cc: Ditto.
|
|
* path.cc: Ditto.
|
|
* spawn.cc: Ditto.
|
|
* strace.cc: Ditto.
|
|
* syscalls.cc: Ditto.
|
|
* uinfo.cc: Ditto.
|
|
* winf.cc: Ditto.
|
|
|
|
2008-01-31 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* dcrt0.cc (dll_crt0_1): Use GetCommandLineW and convert to current
|
|
codepage.
|
|
* environ.cc (set_file_api_mode): Always set file api to ANSI if not
|
|
using the OEM codepage.
|
|
(codepage_init): Allow "utf8" codepage.
|
|
* fhandler_clipboard.cc (set_clipboard): Convert clipbuf to void and
|
|
cast as needed. Always convert input to wide char and write
|
|
CF_UNICODETEXT to clipboard.
|
|
(fhandler_dev_clipboard::read): Read CF_UNICODETEXT from clipboard and
|
|
convert to current codepage if CYGWIN_NATIVE format is not available.
|
|
* fhandler_console.cc: Drop redundant undef.
|
|
* smallprint.cc (__small_vsprintf): Convert PWCHAR and UNICODE_STRING
|
|
to current codepage for printing.
|
|
* strfuncs.cc: Use PWCHAR throughout.
|
|
(get_cp): Return CP_UTF8 for utf8_cp codepage setting.
|
|
(sys_wcstombs): Allow NULL target buffer.
|
|
(sys_wcstombs_alloc): New function.
|
|
(sys_mbstowcs_alloc): Ditto.
|
|
* winsup.h (codepage_type): Add utf8_cp.
|
|
(HEAP_NOTHEAP): Define.
|
|
(sys_wcstombs_alloc): Declare.
|
|
(sys_mbstowcs_alloc): Declare.
|
|
|
|
2008-01-31 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygheap.h (struct cwdstuff): Add dir member to store cwd handle.
|
|
(cwdstuff::get_handle): New method.
|
|
* path.cc (cwdstuff::set): When doit is true, always try to get
|
|
directory handle. Fail if duplicating handle fails. Store handle
|
|
in dir. Fix potential SEGV when setting drive_length.
|
|
|
|
2008-01-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc: Fix Samba version in comment.
|
|
|
|
2008-01-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (fs_info::update): Fix old-style Samba test to support
|
|
recent as well as upcoming Samba releases.
|
|
|
|
2008-01-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* ntdll.h (struct _FILE_FS_OBJECTID_INFORMATION): Define.
|
|
* path.cc (struct smb_extended_info): Define.
|
|
(fs_info::update): Request object id info to get Samba information.
|
|
Set flags according to new implementation.
|
|
* path.h (struct fs_info): Add samba_version to status_flags.
|
|
Implement flags() and samba_version() using IMPLEMENT_STATUS_FLAG.
|
|
|
|
2008-01-21 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Open file with
|
|
READ_CONTROL for Vista/Longhorn's sake.
|
|
|
|
2008-01-15 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (install-libs): Overwrite newlib's libg.a with symlink
|
|
to libcygwin.a.
|
|
|
|
2008-01-15 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* Makefile.in (DLL_OFILES): Remove memmem.o.
|
|
* memmem.cc: Remove in favor of newlib implementation.
|
|
|
|
2008-01-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h: Update copyright.
|
|
* include/limits.h: Ditto.
|
|
|
|
2008-01-06 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* fhandler.h (fhandler_base::is_tty): Make bool.
|
|
(fhandler_serial::is_tty): Ditto.
|
|
(fhandler_termios::is_tty): Ditto.
|
|
(fhandler_base::is_slow): Return bool value.
|
|
(fhandler_socket::is_slow): Ditto.
|
|
(fhandler_serial::is_slow): Ditto.
|
|
(fhandler_console::is_slow): Ditto.
|
|
(fhandler_tty_common::is_slow): Ditto.
|
|
(fhandler_tty_master::is_slow): Ditto.
|
|
(fhandler_dev_null::is_slow): Ditto.
|
|
|
|
2008-01-06 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* include/limits.h (TTY_NAME_MAX): Increase size to same as linux to
|
|
allow for (at least) null terminating byte for "/dev/console".
|
|
|
|
2008-01-01 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* tty.cc: Update copyright.
|
|
* pipe.cc: Ditto.
|
|
|
|
2008-01-01 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
* newsym: First stab at understanding data as well as functions.
|
|
|
|
* pipe.cc (fhandler_pipe::init): Move more intelligence here.
|
|
(fhandler_pipe::create): Simplify based on above change.
|
|
|
|
* tty.cc (tty_list::allocate): Remove non-NT code.
|
|
|