2012-02-09 Corinna Vinschen * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::write): Set bytes_to_write to 0 in case it fits into the buffer, otherwise suffer early EOF in caller. 2012-02-09 Corinna Vinschen * dll_init.h (struct dll): Re-add modname. * dll_init.cc: Throughout, use modname where it was used before. (dll_list::operator[]): Use modname. Move comment from dll_list::alloc here and remove hint about GetModuleBaseNameW. (dll_list::alloc): Store full path in name, pointer to basename in modname. Search dll using modname. 2012-02-08 Christopher Faylor * dtable.cc (dtable::init_std_file_from_handle): Reinstate opening tty handles with O_RDWR permissions. 2012-02-08 Corinna Vinschen * thread.cc (__pthread_cond_wait_init): New static function replacing __pthread_cond_dowait. Only check and potentially initialize cond and mutex, drop call to (*cond)->wait. (pthread_cond_timedwait): Replace call to __pthread_cond_dowait with separate calls to __pthread_cond_wait_init and (*cond)->wait to be able to initialize cond before accessing its clock_id member. (pthread_cond_wait): Ditto (more or less). 2012-02-08 Christian Franke * include/sys/wait.h: Remove C++ inline functions for `union wait'. For C++ use `void *' as __wait_status_ptr_t instead. This is less type safe but fixes compile error on `wait(NULL)'. Remove extra `;'. 2012-02-08 Corinna Vinschen * sigproc.cc (child_info_fork::abort): Call TerminateProcess rather than ExitProcess. 2012-02-08 Corinna Vinschen * uinfo.cc (cygheap_user::env_userprofile): Simplify since network drives are not supported here. 2012-02-08 Corinna Vinschen * uinfo.cc (cygheap_user::env_userprofile): Convert native userprofile path returned from get_registry_hive_path to Win32 path. 2012-02-08 Corinna Vinschen * dll_init.cc: Throughout, drop usage of modname in favor of name. (dll_list::find_by_modname): Remove. (dll_list::alloc): Only store module basename in name. Add comment to explain why. Simplify address check. Fix formatting in comment. * dll_init.h (struct dll): Drop modname and find_by_modname. 2012-02-08 Corinna Vinschen * dll_init.cc (dll_list::alloc): Add DLL name to fabort output. Fix fabort string in case of bss start. 2012-02-08 Corinna Vinschen * include/sys/sysmacros.h: Include sys/types.h. 2012-02-07 Corinna Vinschen * mount.cc (mount_info::create_root_entry): Fix format specifier in api_fatal message. 2012-02-07 Corinna Vinschen * include/process.h: Move here from include/cygwin subdir. * exec.cc: Change include of process.h to reflect the fact that it's now back in include. * spawn.cc: Ditto. * syscalls.cc: Ditto. 2012-02-07 Christopher Faylor * cygheap.cc (init_cygheap::manage_console_count): Delete. * cygheap.h (init_cygheap::manage_console_count): Ditto. (init_cygheap::console_count): Ditto. * fhandler.h (fhandler_console::has_a): Ditto. (fhandler_console::free_console): Declare new function. * fhandler_console.cc (fhandler_console::free_console): Define new function. (fhandler_console::open_setup): Delete call to manage_console_count. (fhandler_console::close): Ditto. Replace with call to free_console(). * fhandler_tty.cc (fhandler_pty_slave::open): Delete call to manage_console_count. (fhandler_pty_slave::cleanup): Ditto. (fhandler_pty_slave::close): Call fhandler_console::free_console() if this is our controlling tty. * pinfo.cc (_pinfo::set_ctty): Skip function if tty in question == our ctty. Delete call to manage_console_count. * syscalls.cc (close_all_files): Avoid locking and avoid setting errno when iterating over fds. 2012-02-07 Christopher Faylor * include/cygwin/version.h: Bump CYGWIN_VERSION_DLL_MINOR to 11. 2012-02-03 Václav Zeman * grp.cc (pwdgrp::parse_group): Convert grp from macro to reference. * passwd.cc (pwdgrp::parse_passwd): Ditto for res. 2012-02-02 Christopher Faylor * syscalls.cc (close_all_files): Use cygheap_fdget to manipulate fhandler. Use debug_only_printf. 2012-02-02 Corinna Vinschen Fix memory and handle leaks due to fdopendir: * dir.cc (closedir): Call global close instead of just releasing the fhandler. * fhandler_disk_file.cc (fhandler_disk_file::closedir): Don't close fhandler handle here, rely on global closedir doing the right thing. * fhandler_registry.cc (fhandler_registry::readdir): Also delete d_hash when closing registry key. (fhandler_registry::rewinddir): Ditto. Avoid infinite recursion in VirtualStore under UAC: * fhandler_registry.cc (VIRT_CLASSES_KEY_PREFIX): Define. (VIRT_CLASSES_KEY_SUFFIX): Ditto. (VIRT_CLASSES_KEY): Ditto. (VIRT_CLASSES_LINKTGT): Ditto. (fhandler_registry::exists): Return virt_symlink as file type if this is a Classes key under the VirtualStore. (fhandler_registry::fstat): Handle virt_symlink. (fhandler_registry::readdir): Return DT_LNK as d_type if this is a Classes key under the VirtualStore. (fhandler_registry::fill_filebuf): Handle Classes symlink. Handle user impersonation in /proc/registry access: * autoload.cc (RegOpenUserClassesRoot): Define. (RegOpenCurrentUser): Define. * fhandler_registry.cc (RegOpenUserClassesRoot): Declare function missing in w32api. (RegOpenCurrentUser): Ditto. (fetch_hkey): New function. (fhandler_registry::open): Call fetch_hkey to get root registry key. (open_key): Ditto. 2012-02-01 Christopher Faylor * fcntl.cc (fcntl64): Add introductory debug statement. Call dup3 directly via dtable method to avoid over-incrementing refcnt. 2012-02-01 Christopher Faylor * dtable.cc (dtable::dup_worker): Add comment explaining why refcnt isn't incremented here. (dtable::dup3): Simplify slightly. Add comment. * syscalls.cc (dup3): Increment refcnt here, similarly to dup2. 2012-02-01 Christopher Faylor * fhandler.cc (fhandler_base_overlapped::has_ongoing_io): Don't block GetOverlappedResult since previous IsEventSignalled will have reset the handle. * select.cc (cygwin_select): Remove space before parentheses in syscall debugging output. (pipe_data_available): Streamline if block. 2012-01-31 Christopher Faylor * syscalls.cc (dup3): Fix debug typo. * fhandler.cc (flush_async_io): Assume only called for writer. Call GetOverlappedResult directly rather than kludging call to has_ongoing_io. (fhandler_base_overlapped::close): Only start flush thread when closing write handle. Only cancel I/O when reading. 2012-01-28 Corinna Vinschen * cygwin.din: Fix order (DATA first). 2012-01-27 Corinna Vinschen * dcrt0.cc (is_dos_path): New macro to recognize drive letter and UNC DOS paths. (globify): Call is_dos_path instead of isdrive. 2012-01-26 Christopher Faylor * sigproc.cc (child_info::retry_count): Default to 1. 2012-01-23 Corinna Vinschen * syscalls.cc (gethostid): Simplify. Just fetch MachineGuid and create hash from there. 2012-01-22 Christopher Faylor * fhandler.h (fhandler_fifo::arm): Declare new function. * fhandler_fifo.cc (fhandler_fifo::arm): Define new function. (fhandler_fifo::open): Fix handling of RDWR pipes to avoid opening a second handle. Use arm() function to set events. (fhandler_fifo::raw_read): Correctly go into "connect again logic" when we detect another writer is available. Use arm() function to set event. * pipe.cc (fhandler_pipe::create): Add more detail to debugging output. 2012-01-22 Christopher Faylor * cygheap.h (cygheap_fdmanip::release): Simplify. * dtable.cc (dtable::release): Make void again. Skip not_open check since it is guaranteed to be open. Don't bother deleting here since actual deletion will be handled in cygheap_fdget::~cygheap_fdget. * dtable.h (dtable::release): Make void again. * syscalls.cc (dup2): Bump fhandler use count on successful dup. 2012-01-22 Christopher Faylor * cygheap.h (cygheap_fdget::~cygheap_fdget): Simplify now that refcnt reports reference count changes itself. * fhandler.cc (fhandler_base::reset): Set _refcnt to 0. * fhandler.h (fhandler_base::refcnt): Report refcnt when debugging. * select.cc (cygwin_select): Set return_on_signal to indicate when select should be interrupted. (select_stuff::wait): Keep looping unless return_on_signal is set. * select.h (select_stuff::return_on_signal): New variable. (select_stuff::select_stuff): Zero return_on_signal. 2012-01-20 Corinna Vinschen * fhandler.h (fhandler_registry::opendir): Declare. * fhandler_registry.cc (fhandler_registry::opendir): New function. 2012-01-13 Yaakov Selkowitz * include/cygwin/config.h (_GLIBC_EXTENSION): Define. 2012-01-11 Christopher Faylor * spawn.cc (child_info_spawn::worker): Delete debugging. 2012-01-11 Christopher Faylor Update copyright on all files checked in so far this year. * fhandler.h: Use #pragma once rather than ifdef guards. (fhandler_console::tc_getpgid): Return our pgid if we have never opened a console. * fork.cc: Rearrange includes to accommodate fhandler.h use of pinfo.h. * sigproc.cc: Ditto. * spawn.cc: Ditto. (child_info_spawn::worker): Query myself->pgid rather than calling expensive function. * thread.h: Use #pragma once rather than ifdef guards. * pinfo.h: Use #pragma once rather than ifdef guards. (pinfo::remember): Don't define if sigproc.h has not been included. (pinfo::reattach): Ditto. * sigproc.h: Use #pragma once rather than ifdef guards. Use different test to see if pinfo.h has been included. 2012-01-09 Corinna Vinschen * include/cygwin/process.h: Move here from newlib. * exec.cc: Change include of process.h to reflect the fact that it's now in the include/cygwin subfolder. * spawn.cc: Ditto. * syscalls.cc: Ditto. 2012-01-09 Corinna Vinschen * miscfuncs.cc (thread_wrapper): Make sure stack is 16 byte aligned to make gcc-3 compiled pthread applications happy. 2012-01-08 Christopher Faylor * dtable.cc (dtable::stdio_init): Always initialize console when we have one. * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Use a better method to print tty name for debugging. (fhandler_termios::bg_check): Ditto. * pinfo.cc (_pinfo::set_ctty): Remove leftover debugging stuff. Simplify behavior when setting tty's sid and pgid to avoid overwriting previously set values. * spawn.cc (ch_spawn): Cosmetic change. 2012-01-06 Yaakov Selkowitz * cygwin.din (pthread_sigqueue): Export. * posix.sgml (std-gnu): Add pthread_sigqueue. * thread.cc (pthread_sigqueue): New function. * thread.h (pthread_sigqueue): New function. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. 2012-01-02 Christopher Faylor * path.cc (get_current_dir_name): Avoid memory leak. Don't return PWD contents if directory doesn't actually exist. 2012-01-01 Yaakov Selkowitz * cygwin.din (get_current_dir_name): Export. * path.cc (get_current_dir_name): New function. * posix.sgml (std-gnu): Add get_current_dir_name. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.