2008-04-10 11:27:58 +02:00
|
|
|
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 18:12:24 +02:00
|
|
|
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 09:58:12 +02:00
|
|
|
2008-04-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* postinstall: Disable adding registry mounts to /etc/fstab for now.
|
|
|
|
|
2008-04-07 20:45:59 +02:00
|
|
|
2008-04-07 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
|
|
|
|
Remove unneeded header files from source files throughout.
|
|
|
|
|
2008-04-07 18:37:20 +02:00
|
|
|
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 18:15:45 +02:00
|
|
|
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 16:09:22 +02:00
|
|
|
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 11:56:42 +02:00
|
|
|
2008-04-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* path.cc (struct opt): Rename "system" to "nouser".
|
|
|
|
* postinsatll: Ditto.
|
|
|
|
|
2008-04-05 11:30:06 +02:00
|
|
|
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 20:20:54 +02:00
|
|
|
2008-04-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
2008-04-03 20:23:59 +02:00
|
|
|
* path.cc (mount_info::from_fstab_line): Simplify. Recognize special
|
|
|
|
"cygdrive" entry from FS type field.
|
2008-04-03 20:20:54 +02:00
|
|
|
(mount_info::from_fstab): Create a default root dir.
|
|
|
|
|
2008-04-03 18:00:14 +02:00
|
|
|
2008-04-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* dcrt0.cc (insert_file): Fix potential buffer overflow.
|
|
|
|
|
2008-04-03 17:44:18 +02:00
|
|
|
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 17:28:03 +02:00
|
|
|
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 19:45:32 +02:00
|
|
|
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 13:45:14 +02:00
|
|
|
2008-04-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* path.cc (enum symlink_t): Rename from shortcut_t.
|
|
|
|
|
2008-04-02 13:35:10 +02:00
|
|
|
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 12:53:55 +02:00
|
|
|
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 12:48:08 +02:00
|
|
|
2008-04-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* posix.sgml: Change lockf to being implemented.
|
|
|
|
|
2008-04-02 12:34:17 +02:00
|
|
|
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 15:22:47 +02:00
|
|
|
2008-04-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* Fix copyright dates.
|
|
|
|
|
2008-04-01 12:22:33 +02:00
|
|
|
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 20:03:25 +02:00
|
|
|
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 13:36:19 +01:00
|
|
|
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 21:03:32 +01:00
|
|
|
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 14:02:07 +01:00
|
|
|
2008-03-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* syscalls.cc (rename): Fix setting errno in case of trailing "/."
|
|
|
|
|
2008-03-27 11:43:14 +01:00
|
|
|
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-27 02:50:40 +01:00
|
|
|
2008-03-26 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
|
2008-03-27 18:00:54 +01:00
|
|
|
Implement method of detecting a missing dll as suggested by Brian
|
|
|
|
Dessent.
|
2008-03-27 02:50:40 +01:00
|
|
|
* 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 21:11:55 +01:00
|
|
|
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 16:36:17 +01:00
|
|
|
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 16:12:24 +01:00
|
|
|
2008-03-24 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* flock.cc: Fix typo in comment.
|
|
|
|
|
2008-03-24 15:48:58 +01:00
|
|
|
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 22:27:05 +01:00
|
|
|
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 22:04:16 +01:00
|
|
|
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 10:57:33 +01:00
|
|
|
2008-03-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* include/sys/cygwin.h: Revert erroneous move of `#ifdef WINVER' to
|
|
|
|
another location.
|
|
|
|
|
2008-03-14 21:43:28 +01:00
|
|
|
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 16:18:10 +01:00
|
|
|
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 19:54:24 +01:00
|
|
|
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 19:46:10 +01:00
|
|
|
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 18:04:10 +01:00
|
|
|
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 17:55:42 +01:00
|
|
|
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 17:07:04 +01:00
|
|
|
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,
|
2008-03-12 17:16:31 +01:00
|
|
|
only "X:\foo".
|
2008-03-12 17:07:04 +01:00
|
|
|
(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 16:04:06 +01:00
|
|
|
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 13:41:50 +01:00
|
|
|
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 14:35:55 +01:00
|
|
|
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 14:26:40 +01:00
|
|
|
2008-03-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* spawn.cc (find_exec): Use tmp_pathbuf to allocate path buffer.
|
|
|
|
|
2008-03-11 14:17:52 +01:00
|
|
|
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 13:34:08 +01:00
|
|
|
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 12:42:00 +01:00
|
|
|
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 12:12:09 +01:00
|
|
|
2008-03-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* syscalls.cc (sync): Use MAX_PATH rather than CYG_MAX_PATH.
|
|
|
|
|
2008-03-10 18:23:50 +01:00
|
|
|
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 17:48:56 +01:00
|
|
|
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 17:22:38 +01:00
|
|
|
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 18:28:40 +01:00
|
|
|
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-08 04:28:34 +01:00
|
|
|
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-08 02:33:22 +01:00
|
|
|
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 15:47:48 +01:00
|
|
|
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 12:24:51 +01:00
|
|
|
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.
|
2008-03-22 22:04:16 +01:00
|
|
|
(class tls_pathbuf): New class to store pointers to thread local
|
2008-03-07 12:24:51 +01:00
|
|
|
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 11:30:50 +01:00
|
|
|
2008-03-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* child_info.h (CURR_CHILD_INFO_MAGIC): Reset.
|
|
|
|
|
2008-03-06 11:16:07 +01:00
|
|
|
2008-03-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* fhandler.cc (fhandler_base::open_): Add missing test for O_CREAT.
|
|
|
|
Fix comment.
|
|
|
|
|
2008-03-05 19:31:09 +01:00
|
|
|
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 23:51:19 +01:00
|
|
|
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
|
2008-03-03 00:11:00 +01:00
|
|
|
unicode when printing the name of the stackdump file.
|
2008-03-02 23:51:19 +01:00
|
|
|
(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 23:25:07 +01:00
|
|
|
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 15:53:44 +01:00
|
|
|
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.
|
2008-03-01 15:55:07 +01:00
|
|
|
* sigproc.cc (wait_sig): Eliminate call to init_threadlist_exceptions.
|
2008-03-01 15:53:44 +01:00
|
|
|
|
2008-03-01 14:19:08 +01:00
|
|
|
2008-03-01 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
|
|
|
|
* cygtls.cc (_cygtls::init_exception_handler): Just return.
|
|
|
|
|
2008-03-01 14:18:22 +01:00
|
|
|
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 17:38:51 +01:00
|
|
|
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 18:57:42 +01:00
|
|
|
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 18:09:34 +01:00
|
|
|
2008-02-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* exceptions.cc (open_stackdumpfile): Add comments.
|
|
|
|
|
2008-02-28 16:50:51 +01:00
|
|
|
2008-02-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* exceptions.cc (open_stackdumpfile): Use NtCreateFile to create
|
|
|
|
stackdump file.
|
|
|
|
|
2008-02-27 19:08:52 +01:00
|
|
|
2008-02-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* exceptions.cc (stack_info::walk): Fix typo.
|
|
|
|
|
2008-02-27 18:57:14 +01:00
|
|
|
2008-02-27 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* cygtls.cc (_cygtls::init_exception_handler): Fix comment.
|
|
|
|
|
2008-02-27 18:53:39 +01:00
|
|
|
2008-02-27 Corinna Vinschen <corinna@vinschen.de>
|
2008-02-27 18:52:33 +01:00
|
|
|
|
|
|
|
* (struct __DIR_cache): Switch order of members so that the buffer
|
|
|
|
given to NtQueryDirectoryFile is 8 byte aligned.
|
|
|
|
|
2008-02-27 18:16:46 +01:00
|
|
|
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 19:32:23 +01:00
|
|
|
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 15:42:29 +01:00
|
|
|
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 22:42:48 +01:00
|
|
|
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 10:43:19 +01:00
|
|
|
2008-02-16 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* fhandler.cc (fhandler_base::fpathconf): Fix _PC_NAME_MAX and
|
|
|
|
_PC_PATH_MAX cases.
|
|
|
|
|
2008-02-16 10:37:58 +01:00
|
|
|
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 21:11:06 +01:00
|
|
|
2008-02-15 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* include/sys/cygwin.h (__INT_MAX_PATH): Define to 32K.
|
2008-02-16 10:37:58 +01:00
|
|
|
(external_pinfo): Set size of program_long to __INT_MAX_PATH.
|
2008-02-15 21:11:06 +01:00
|
|
|
|
2008-02-15 19:07:07 +01:00
|
|
|
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 18:53:11 +01:00
|
|
|
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 17:47:11 +01:00
|
|
|
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-14 01:49:47 +01:00
|
|
|
2008-02-13 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
|
|
|
|
* configure.in: Remove non-working options.
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
2008-02-13 18:21:05 +01:00
|
|
|
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.
|
|
|
|
|
* 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 15:50:39 +01:00
|
|
|
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 10:42:22 +01:00
|
|
|
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 20:03:36 +01:00
|
|
|
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 17:39:06 +01:00
|
|
|
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.
|
|
|
|
|
* 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 16:43:04 +01:00
|
|
|
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 16:19:08 +01:00
|
|
|
2008-02-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
2008-02-10 16:44:12 +01:00
|
|
|
* libc/ftw.cc (ftw): Allow nfds <= 0 for glibc compatibility.
|
2008-02-10 16:19:08 +01:00
|
|
|
* libc/nftw.c (nftw): Ditto.
|
|
|
|
|
2008-02-07 19:59:40 +01:00
|
|
|
2008-02-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* dtable.cc (dtable::init_std_file_from_handle): Set access to
|
2008-02-07 21:38:39 +01:00
|
|
|
read/write if handle is connected to a tty or console.
|
2008-02-07 19:59:40 +01:00
|
|
|
* 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 23:04:16 +01:00
|
|
|
2008-02-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* miscfuncs.cc (next_char): Fix typos in comment.
|
|
|
|
* strfuncs.cc: Remove cygserver guards.
|
|
|
|
|
2008-02-06 19:24:50 +01:00
|
|
|
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 18:37:10 +01:00
|
|
|
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-04 13:00:19 +01:00
|
|
|
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 14:11:57 +01:00
|
|
|
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 13:37:51 +01:00
|
|
|
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 21:26:01 +01:00
|
|
|
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 15:18:49 +01:00
|
|
|
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
|
2008-02-15 18:53:11 +01:00
|
|
|
in dir. Fix potential SEGV when setting drive_length.
|
2008-01-31 15:18:49 +01:00
|
|
|
|
2008-01-28 13:19:30 +01:00
|
|
|
2008-01-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* path.cc: Fix Samba version in comment.
|
|
|
|
|
2008-01-24 18:29:29 +01:00
|
|
|
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 18:43:22 +01:00
|
|
|
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 15:51:55 +01:00
|
|
|
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 18:42:10 +01:00
|
|
|
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 14:45:42 +01:00
|
|
|
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 17:51:54 +01:00
|
|
|
2008-01-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
|
|
|
|
* fhandler.h: Update copyright.
|
|
|
|
* include/limits.h: Ditto.
|
|
|
|
|
2008-01-06 19:37:20 +01:00
|
|
|
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 19:31:35 +01:00
|
|
|
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 20:07:36 +01:00
|
|
|
2008-01-01 Christopher Faylor <me+cygwin@cgf.cx>
|
|
|
|
|
|
|
|
* tty.cc: Update copyright.
|
|
|
|
* pipe.cc: Ditto.
|
|
|
|
|
2008-01-01 19:51:23 +01:00
|
|
|
2008-01-01 Christopher Faylor <me+cygwin@cgf.cx>
|
* cygwin.din (_f_llrint, _f_llrintf, _f_llrintl, _f_lrint, _f_lrintf,
_f_lrintl, _f_rint, _f_rintf, _f_rintl): Export fast *rint* functions.
(lrint, lrintf, rint, rintf): Redirect exports to alias _f_ versions.
(llrint, llrintf, llrintl, lrintl, rintl): Add exports aliasing _f_*
versions likewise.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2007-12-30 22:12:08 +01:00
|
|
|
|
2008-01-01 19:51:23 +01:00
|
|
|
* newsym: First stab at understanding data as well as functions.
|
* cygwin.din (_f_llrint, _f_llrintf, _f_llrintl, _f_lrint, _f_lrintf,
_f_lrintl, _f_rint, _f_rintf, _f_rintl): Export fast *rint* functions.
(lrint, lrintf, rint, rintf): Redirect exports to alias _f_ versions.
(llrint, llrintf, llrintl, lrintl, rintl): Add exports aliasing _f_*
versions likewise.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2007-12-30 22:12:08 +01:00
|
|
|
|
2008-01-01 19:51:23 +01:00
|
|
|
* pipe.cc (fhandler_pipe::init): Move more intelligence here.
|
|
|
|
(fhandler_pipe::create): Simplify based on above change.
|
2007-12-22 14:26:47 +01:00
|
|
|
|
2008-01-01 19:51:23 +01:00
|
|
|
* tty.cc (tty_list::allocate): Remove non-NT code.
|
2007-12-22 14:26:47 +01:00
|
|
|
|