+2003-02-08 Christopher Faylor <cgf@redhat.com>
+
+ * include/cygwin/version.h: Bump DLL minor number.
+
+2003-02-07 Christopher Faylor <cgf@redhat.com>
+
+ * malloc.cc (DEFAULT_MMAP_THRESHOLD): Bump down to 16MB thanks to below
+ changes.
+
+2003-02-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * mmap.cc (mmap_record::alloc_map): De-inline. Add offset and length
+ parameter. Only protect pages actually unused currently. Do job
+ of map_map() when initializing a map.
+ (mmap_record::map_map): Reduce functionality for the reuse case
+ of private anonymous mapping.
+ (mmap_record::fixup_map): Format change.
+ (list::add_record): Add offset and length parameter to call
+ mmap_record::alloc_map() correctly.
+ (mmap64): Rename `l' variable to `map_list'. Accomodate above changes.
+ (munmap): Rename `l' variable to `map_list'.
+ (msync): Ditto.
+ (fhandler_disk_file::mmap): Streamline code.
+ (mprotect): Ditto.
+ (fixup_mmaps_after_fork): Rename `l' variable to `map_list'.
+
+2003-02-07 Vaclav Haisman <V.Haisman@sh.cvut.cz>
+ Christopher Faylor <cgf@redhat.com>
+
+ * exceptions.cc (try_to_debug): Set priority of current thread rather
+ than the main thread. Make busy waiting loop less busy. Restore
+ priority when function returns.
+
+2003-02-07 Christopher Faylor <cgf@redhat.com>
+
+ * malloc.cc (DEFAULT_MMAP_THRESHOLD): Set high to avoid mmaps.
+
+2003-02-07 Christopher Faylor <cgf@redhat.com>
+
+ * pipe.cc (fhandler_pipe::close): Avoid extraneous this->.
+
+2003-02-06 Christopher Faylor <cgf@redhat.com>
+
+ * heap.cc (heap_init): Remove debugging code.
+
+2003-02-06 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * security.h: Introduce names UNKNOWN_UID and UNKNOWN_GID and delete
+ declaration of is_grp_member.
+ * uinfo.cc (internal_getlogin): Use UNKNOWN_GID.
+ * passwd.cc (pwdgrp::read_passwd): Use UNKNOWN_UID.
+ * grp.cc (pwdgrp::read_group): Change group name to provide better
+ feedback.
+ (getgrgid): Use gid16togid32.
+ * sec_helper.cc (is_grp_member): Delete.
+
+2003-02-05 Christopher Faylor <cgf@redhat.com>
+
+ * path.cc: Change 'to_posix_p' to 'to_posix' throughout.
+ (conv_path_list_buf_size): Accommodate relative paths.
+
+2003-02-05 Christopher Faylor <cgf@redhat.com>
+
+ * path.cc (etc::dir_changed): Fix debug printf.
+
+2003-02-05 Corinna Vinschen <corinna@vinschen.de>
+
+ * sec_acl.cc (setacl): Move all permission settings to beginning of
+ loop. Set default rights to same values as in alloc_sd(). Set DELETE
+ for owner and default owner only if S_IWOTH is given.
+
+2003-02-05 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * sec_acl.cc: Change all __aclent16_t to __aclent32_t except in
+ wrapper function definitions. Replace call to the aclXYZ functions by
+ calls aclXYZ32.
+ (searchace): Change type of third argument to __uid32_t and use
+ ILLEGAL_UID instead of -1;
+ (setacl): Remove some initializations. Only give STANDARD_RIGHTS_WRITE
+ for S_IWOTH. Replace -1 by ILLEGAL_UID.
+ (getacl): Change type of owner_sid, group_sid and ace_sid to cygpsid.
+ In last else clause, suppress second call to ace_sid.get_id and use
+ TRUE in first call. Replace EqualSid by ==.
+ (acl_access): Call internal_getgroups in USER and GROUP cases.
+ (acecmp: Define static.
+ (acl32): Create from 16 bit type.
+ (facl32): Ditto.
+ (lacl32): Ditto.
+ (aclcheck32): Ditto.
+ (aclsort32): Ditto.
+ (acltomode32): Ditto.
+ (aclfrommode32): Ditto.
+ (acltopbits32): Ditto.
+ (aclfrompbits32): Ditto.
+ (acltotext32): Ditto.
+ (aclfromtext32): Ditto, and use strechr.
+ (acl16to32): Create.
+ (acl): Make it a wrapper function.
+ (facl): Ditto.
+ (lacl): Ditto.
+ (aclcheck): Ditto.
+ (aclsort): Ditto.
+ (acltomode): Ditto.
+ (aclfrommode): Ditto.
+ (acltopbits): Ditto.
+ (aclfrompbits): Ditto.
+ (acltotext): Ditto.
+ (aclfromtext): Ditto.
+ * security.cc (write_sd): Call set_process_privilege and check
+ ownership.
+ (alloc_sd): Remove call to set_process_privilege and the owner check.
+
+2003-02-05 Christopher Faylor <cgf@redhat.com>
+
+ * include/sys/cygwin.h: Use C-style comments.
+
+2003-02-05 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * sec_helper.cc (get_sids_info): New function.
+ * security.cc (extract_nt_dom_user): Simplify with strechr.
+ (get_user_groups): Initialize glen to MAX_SID_LEN.
+ (get_user_local_groups): Ditto.
+ (get_attribute_from_acl): Define ace_sid as cygpsid.
+ (get_nt_attribute): Define owner_sid and group_sid as cygpsid.
+ Call get_sids_info instead of cygsid.get_{u,g}id and is_grp_member.
+ (get_nt_object_attribute): Ditto.
+ (alloc_sd): Define ace_sid as cygpsid.
+
+2003-02-04 Thomas Pfaff <tpfaff@gmx.net>
+
+ * syscalls.cc (struct system_cleanup_args): New struct.
+ (system_cleanup): New function.
+ (system): Use pthread_cleanup_push and _pop to save and restore
+ signal handlers and sigprocmask.
+
+2003-02-04 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (symlink): Create security attributes so that only the
+ user can modify the symlink.
+ * security.cc (set_security_attribute): Remove symlink special
+ handling.
+
+2003-02-04 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * grp.cc (internal_getgroups): Do not return without closing
+ the process handle.
+
+2003-02-04 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * security.h (class cygpsid): New class.
+ (class cygsid): Use cygpsid as base. Remove members psid, get_id,
+ get_uid, get_gid, string, debug_printf and the == and != operators.
+ (cygsidlist::clear_supp): Only do work if setgroups has been called.
+ * sec_helper.cc: Define sid_auth NO_COPY.
+ (cygpsid::operator==): New operator.
+ (cygpsid::get_id): New function.
+ (cygpsid::string): New function.
+ (cygsid::string): Delete.
+ (cygsid::get_id): Delete.
+ * pwdgrp.h: Change arguments of internal_getpwsid,
+ internal_getgrsid and internal_getgroups to cygpsid.
+ * passwd.cc (internal_getpwsid): Change argument from cygsid to cygpsid.
+ * grp.cc (internal_getgrsid): Ditto.
+ (internal_getgroups): Ditto.
+
+2003-02-03 Christopher Faylor <cgf@redhat.com>
+
+ Eliminate most unneeded this-> pointers throughout.
+
+2003-02-03 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * security.h: Add third argument to set_process_privilege.
+ * autoload.cc: Add OpenThreadToken.
+ * sec_helper.cc (set_process_privilege): Add and use use_thread
+ argument.
+ * security.cc (alloc_sd): Modify call to set_process_privilege.
+ Remember the result in each process. If failed and file owner is not
+ the user, fail.
+
+2003-02-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::recvfrom): Return buffer
+ length and don't set errno in case of WSAEMSGSIZE error.
+ (fhandler_socket::recvmsg): Ditto.
+
+2003-02-01 Christopher Faylor <cgf@redhat.com>
+
+ * grp.cc (getgrent32): Only refresh group entries when at beginning.
+ (internal_getgrsid): Only refresh if uninitialized.
+ (internal_getgrent): Ditto.
+ * passwd.cc (getpwent): Only refresh passwd entries when at beginning.
+ (pwdgrp::read_passwd): linebuf *cannot* be NO_COPY.
+ (internal_getpwsid): Only refresh if uninitialized.
+ (getpass): No need to refresh passwd data here.
+ * pwdgrp.h (refresh): Eliminate default.
+
+2003-01-31 Christopher Faylor <cgf@redhat.com>
+
+ * dlfcn.cc (dlerror): Only report load errors once per error.
+
+2003-01-31 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler_serial.cc (fhandler_serial::open): Avoid extraneous setting
+ of res.
+
+ * termios.cc (tcsetattr): Correctly record errno after tcsetattr call.
+
+2003-01-31 Troy Curtiss <troyc@usa.net>
+
+ * fhandler_serial.cc (fhandler_serial::tcsetattr): Add error-checking
+ so that if any Win32 SetComm*() calls fail, errno gets set to EINVAL
+ and tcsetattr() returns -1. Catch invalid bitrates, mostly. If baud
+ rate setting is B0, just drop DTR and leave Win32 DCB bitrate as-is
+ since 0 is not a valid Win32 setting.
+ (fhandler_serial::tcgetattr): If DTR is low, populate the bitrate as
+ B0, otherwise get it from the DCB.
+
+2003-01-31 Christopher Faylor <cgf@redhat.com>
+
+ * passwd.cc (pwdgrp::read_passwd): linebuf *must* be static (from
+ Pierre Humblet).
+ * pwdgrp.h (pwdgrp::refresh): Avoid calling read function if we already
+ have lock since that means we are in the process of reading the file.
+
+2003-01-31 Jason Tishler <jason@tishler.net>
+
+ * shared.cc (shared_info::heap_chunk_size): Use correct variable when
+ reading HKLM.
+
+2003-01-30 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler_registry.cc (fhandler_registry::exists): Fix off-by-one
+ error when inspecting path.
+
+2003-01-29 Christopher Faylor <cgf@redhat.com>
+
+ * lib/getopt.c: Allow environment variable control of POSIXLY_INCORRECT
+ behavior.
+
+2003-01-28 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::accept): On successful execution
+ set connection state of returned socket to CONNECTED.
+
+2003-01-27 Christopher Faylor <cgf@redhat.com>
+
+ * passwd.cc (pwdgrp::parse_passwd): Be more unforgiving about
+ non-numeric fields.
+
+2003-01-26 Christopher Faylor <cgf@redhat.com>
+
+ * uinfo.cc (pwdgrp::next_num): Remove check for NULL since it is no
+ longer a valid return from next_str.
+ (pwdgrp::add_line): Duh. Revert to use strchr.
+
+2003-01-26 Christopher Faylor <cgf@redhat.com>
+
+ * string.h (strechr): New function.
+ * uinfo.cc (pwdgrp::next_str): Search only for input char in string.
+ Return EOS on failure. Don't check for NULL since it shouldn't be
+ possible.
+ (pwdgrp::add_line): Revert to replacing '\n' in input line with '\0'.
+ (pwdgrp::next_num): Pass explicit separator character to next_str.
+ * grp.cc (pwdgrp::parse_group): Ditto.
+ * passwd.cc (pwdgrp::parse_passwd): Ditto. Revamp test for garbage
+ input.
+ * pwdgrp.h (pwdgrp::next_str): Don't use default parameter.
+
+2003-01-26 Christopher Faylor <cgf@redhat.com>
+
+ * uinfo.cc (pwdgrp::load): Regularize strace output. Add warning for
+ CreateFile failure.
+
+2003-01-26 Christopher Faylor <cgf@redhat.com>
+
+ * passwd.cc (pwdgrp::parse_passwd): Eliminate use of memset. The
+ structure should always be completely filled out.
+ * grp.cc (pwdgrp::parse_group): Ditto.
+
+2003-01-26 Christopher Faylor <cgf@redhat.com>
+
+ * grp.cc (pwdgrp::parse_group): Fix off-by-one problem in allocating
+ gr_mem.
+
+2003-01-26 Christopher Faylor <cgf@redhat.com>
+
+ * include/sys/strace.h (paranoid_printf): Define as not being part of
+ "all" output.
+
+2003-01-25 Christopher Faylor <cgf@redhat.com>
+
+ * pwdgrp.h (pwdgrp::next_num): Rename from next_int. Returns
+ true/false if parse operation succeeded.
+ (pwdgrp::reparse): Remove.
+ (pwdgrp::raw_ptr): New function. Returns pointer in line.
+ (pwdgrp::next_num): New functions for parsing other than unsigned long.
+ * grp.cc (pwdgrp::parse_group): Reinstate previous parsing behavior.
+ Don't fill in fields with NULL and assign empty gr_mem to known pointer
+ rather than doing a pointless calloc. Streamline gr_mem parsing.
+ Don't increment curr_lines here.
+ * passwd.cc (pwdgrp::parse_passwd): Use new behavior of next_num.
+ Don't increment curr_lines here.
+ * uinfo.cc (pwdgrp::next_str): Keep returning EOL if out of data.
+ (pwdgrp::reparse): Remove.
+ (pwdgrp::next_num): Rename from next_int. Return bool indicating
+ success of parse, argument returns value parsed.
+ (pwdgrp::add_line): Increment curr_lines here on successful parse.
+ (pwdgrp::load): (from Pierre Humblet) Don't return status. Just report
+ it here.
+
+2003-01-25 Christopher Faylor <cgf@redhat.com>
+
+ * pwdgrp.cc (pwdgrp::reparse): Declare.
+ * uinfo.cc (pwdgrp::reparse): Define.
+ * grp.cc (pwdgrp::parse_group): Use reparse.
+
+2003-01-25 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * syscalls.cc (seteuid32): On Win95 get the pw entry. If it exists
+ update the euid and call cygheap->user.set_name. Remove special
+ handling of ILLEGAL_UID.
+ (setgid32): Add a debug_printf. On Win95, always set the egid.
+ Remove special handling of ILLEGAL_GID. Do not compare gid and gr_gid.
+ * child_info.h (class cygheap_exec_info): Remove uid.
+ * spawn.cc (spawn_guts): Do not set ciresrv.moreinfo->uid.
+ * dcrto.cc (dll_crt0_1): Always call uinfo_init.
+ * uinfo.cc (uinfo_init): Reorganize and close handle if needed.
+ (cygheap_user::ontherange): Do not call internal_getpwnam if pw is NULL.
+
+2003-01-24 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler_console.cc (fhandler_console::send_winch_maybe): Reset
+ scroll region if size changes.
+
+2003-01-24 Pierre Humblet <pierre.humblet@ieee.org>
+ Jason Tishler <jason@tishler.net>
+
+ * cygwin.din: Export setreuid32, setreuid, setregid32, setregid.
+ * syscalls.cc (setreuid32): New function.
+ (setreuid): Ditto.
+ (setregid32): Ditto.
+ (setregid): Ditto.
+ * include/cygwin/version.h: Bump API minor number.
+
+2003-01-23 Christopher Faylor <cgf@redhat.com>
+
+ * pwdrp.h (pwdgrp::refresh): Lock entire test prior to reading.
+
+2003-01-23 Christopher Faylor <cgf@redhat.com>
+
+ * grp.cc (pwdgrp::parse_group): Eliminate arg and use class member
+ instead. Use next_str and next_int to parse arguments.
+ * passwd.cc (pwdgrp::parse_passwd): Ditto.
+ (grab_string): Eliminate.
+ (grab_int): Ditto.
+ * pwdgrp.h (pwdgrp::parse): Eliminate input arg.
+ (pwdgrp::parse_passwd): Reflect above change.
+ (pwdgrp::parse_group): Reflect above change.
+ (pwdgrp::next_str): New function.
+ (pwdgrp::next_int): Ditto.
+ (pwdgrp::gets): Eliminate.
+ * uinfo.cc (pwdgrp::next_str): New function.
+ (pwdgrp::next_int): Ditto.
+ (pwdgrp::add_line): Subsume gets.
+ (pwdgrp::gets): Eliminate.
+ (pwdgrp::load): Just call add_line to parse input buffer.
+
+2003-01-22 Thomas Pfaff <tpfaff@gmx.net>
+
+ * include/pthread.h (PTHREAD_MUTEX_RECURSIVE): Revert changes from
+ 2003-01-09 mutex patch.
+ (PTHREAD_MUTEX_ERRORCHECK): Ditto.
+
+2003-01-22 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygrun.c: Move from here to ../testsuite.
+ * Makefile.in: Remove cygrun.exe dependencies.
+
+2003-01-21 Jason Tishler <jason@tishler.net>
+
+ * cygwin.din: Export nanosleep().
+ * signal.cc (nanosleep): New function.
+ (sleep): Move old functionality to nanosleep(). Call nanosleep().
+ (usleep): Remove old functionality. Call nanosleep().
+ * include/cygwin/version.h: Bump API minor number.
+
+2003-01-21 Christopher Faylor <cgf@redhat.com>
+
+ * grp.cc: Call gr.refresh() rather than doing isunitialized tests
+ throughout.
+ (gr): Use constructor (sigh).
+ (pwdgrp::parse_group): Rename from parse_grp.
+ (pwdgrp::read_group): Rename from read_etc_group. Just call gr.load
+ with a single argument.
+ * passwd.cc: Call pr.refresh() rather than doing isunitialized tests
+ throughout.
+ (pr): Use constructor (sigh).
+ (pwdgrp::parse_passwd): Rename from "parse_pwd".
+ (pwdgrp::read_passwd): Rename from read_etc_passwd. Just call pr.load
+ with a single argument.
+ * pwdgrp.h (pwdgrp_state): Eliminate.
+ (pwdgrp): Reflect above renamings.
+ (pwdgrp::etc_ix): Rename from pwd_ix.
+ (pwdgrp::read): New element.
+ (pwdgrp::lock): New element.
+ (pwdgrp::refresh): New function.
+ (pwdgrp::load): Eliminate variations which take buffer arguments.
+ (pwdgrp::pwdgrp): New constructors. Initialize mutex here.
+ * uinfo.cc (pwdgrp::load): Accommodate pwd_ix -> etc_ix renaming.
+ (pwdgrp::load): Set initialized state to true rather than setting state
+ to loaded.
+
+2003-01-21 Christopher Faylor <cgf@redhat.com>
+
+ * include/cygwin/version.h: Bump DLL minor number.
+
+2003-01-21 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * path.h (etc::change_possible): Revert the type to bool.
+ (etc::set_last_modified): Remove obsolete function.
+ * path.cc (etc::change_possible): Revert type to bool.
+ (etc::test_file_change): Do not test for negative values of
+ change_possible and do not set it to -res.
+ (etc::dir_changed): When the handle is NULL, call memset instead of
+ test_file_changed. When the handle is invalid, return true. Detect
+ filename change in /etc.
+ (etc::file_changed): Remove unneeded check for !fn[n].
+ * uinfo.cc (pwdgrp::load): Eliminate spurious setting of fh to NULL.
+ * pwdgrp.h (pwdgrp::operator =): Eliminate.
+
+2003-01-19 Christopher Faylor <cgf@redhat.com>
+
+ * pwdgrp.h (etc): Move to path.h.
+ (pwdgrp::max_lines): New field.
+ (pwdgrp::curr_lines): New field.
+ (pwdgrp::pwdgrp_buf): Ditto.
+ (pwdgrp_buf_elem_size): Ditto.
+ (pwdgrp_parse): Ditto.
+ (pwdgrp::gets): Just declare here.
+ (pwdgrp::load): Ditto. Just take one argument.
+ (pwdgrp::load): Define overloaded function accepting passwd buf.
+ (pwdgrp::load): Define overloaded function accepting group buf.
+ * grp.cc: Use pwdgrp elements rather than standalone static variables
+ throughout.
+ (curr_lines): Eliminate.
+ (max_lines): Ditto.
+ (add_grp_line): Ditto.
+ (parse_grp): Define as returning boolean. Accept void * arg and line
+ count. Coerce first argument into __group32 buf reference. Increment
+ curr_line as appropriate.
+ (read_etc_group): Pass pwdgrp buffer to gr.load.
+ * passwd.cc: Use pwdgrp elements rather than standalone static variables
+ throughout.
+ (curr_lines): Eliminate.
+ (max_lines): Ditto.
+ (add_grp_line): Ditto.
+ (parse_passwd): Define as returning boolean. Accept void * arg and line
+ count. Coerce first argument into passwd buf reference. Increment
+ curr_line as appropriate.
+ (read_etc_group): Pass pwdgrp buffer to pr.load.
+ * path.cc (etc::fn): Extend buffer size to allow index by 1 rather than
+ zero.
+ (etc::last_modified): Ditto.
+ (etc::change_possible): Ditto. Renamed from sawchange. Change to
+ signed char since elements are now tri-state.
+ (etc::init): Assume "handle" is 1 based rather than 0.
+ (etc::test_file_change): New function. Sets change_possible based on
+ file date comparison.
+ (etc::dir_changed): Check file states immediately after changed_h is
+ initialized to avoid a race.
+ (etc::file_changed): Use test_file_change to detect if file needs to be
+ updated.
+ * path.h (etc): Move class here from pwdgrp.h.
+ * uinfo.cc: Move etc:: functions to path.cc. Move pwdgrp functions
+ here.
+ (pwdgrp::gets): Eliminate buf checks. Just check eptr and set lptr.
+ (pwdgrp::add_line): New function.
+ (pwdgrp::load): Call generic add_line function which will call correct
+ parser.
+
+2003-01-17 Christopher Faylor <cgf@redhat.com>
+
+ * cygheap.cc: Change most 'int's to 'unsigned's.
+ (_cmalloc): Only check for size of malloced region when calculating
+ bucket. Add overhead when performing the sbrk. Previous change broke
+ _crealloc.
+
+2003-01-17 Christopher Faylor <cgf@redhat.com>
+
+ * dcrt0.cc (initialize_env): Use colon for CYGWIN_DEBUG separator.
+ * grp.cc: Change most statics to NO_COPY throughout.
+ * passwd.cc: Ditto.
+
+2003-01-17 Christopher Faylor <cgf@redhat.com>
+
+ * pwdgrp.h: Change some BOOLs to bools.
+ (pwdgrp::pwdgrp): Remove unneeded constructor.
+ * passwd.cc: Change BOOL to bool throughout.
+
+2003-01-17 Corinna Vinschen <corinna@vinschen.de>
+
+ * cygwin.din: Add strerror_r.
+ * include/cygwin/version.h: Bump API minor number.
+
+2003-01-17 Christopher Faylor <cgf@redhat.com>
+
+ * uinfo.cc (etc::dir_changed): Don't print a warning if can't open
+ /etc, unless debugging.
+
+2003-01-17 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * grp.cc (read_etc_group): On NT, add a line for gid = -1. Change name
+ "unknown" to "mkgroup".
+ (internal_getgrgid): Do not return default in nontsec case.
+ (internal_getgroups): Add argument srchsid and look for it in groups if
+ not NULL.
+ * passwd.cc (read_etc_passwd): On NT, add a line for uid = -1. Use
+ same default uid for Win95 and NT. Call cygheap_user::ontherange to
+ initialize HOME.
+
+2003-01-16 Christopher Faylor <cgf@redhat.com>
+
+ * cygheap.cc (init_cygheap::etc_changed): Move to uinfo.cc.
+ * cygheap.h (init_cygheap::etc_changed_h): Remove.
+ (init_cygheap::etc_changed): Ditto.
+ * grp.cc (group_state): Remove. Use gr instead throughout.
+ (gr): Define as class pwdgrp.
+ (read_etc_group): Remove gr definition. Remove calls to
+ set_last_modified and close. Pass add_grp to gr.load to load file.
+ * passwd.cc (passwd_state): Remove. Use pr instead, throughout.
+ (pr): Define as class pwdgrp.
+ (read_etc_passwd): Remove pr definition. Remove calls to
+ set_last_modified and close. Pass add_pwd_line to pr.load to load
+ file.
+ * pwdgrp.h (etc): New helper class for pwdgrp.
+ (pwdgrp): Combine pwdgrp_check and pwdgrp_read into one class. Remove
+ file_w32 and last_modified fields.
+ (pwdgrp::set_last_modified): Remove.
+ (pwdgrp::isinitializing): Remove FindFirstFile stuff. Move to
+ etc::file_changed.
+ (pwdgrp::load): Rename from 'open'. Call etc::init to initialize etc
+ scanning. Close file handle after reading buffer into memory. Parse
+ buffer by calling second argument.
+ (pwdgrp::gets): Reorganize slightly to rely on eptr starting at
+ beginning of buffer.
+ (pwdgrp::close): Remove.
+ * uinfo.cc (etc::dir_changed): New function.
+ (etc::init): Ditto.
+ (etc::file_changed): Ditto.
+ (etc::set_last_modified): Ditto.
+
+2003-01-16 Jason Tishler <jason@tishler.net>
+
+ * mmap.cc (fixup_mmaps_after_fork): Add ERROR_NOACCESS to the list of
+ ReadProcessMemory() error codes that trigger a retry with temporary
+ PAGE_READONLY access. Note that this can occur on NT 4.0.
+
+2003-01-15 Christopher Faylor <cgf@redhat.com>
+
+ * path.cc (normalize_posix_path): Convert win32 path separators to
+ slashes when full path is specified.
+
2003-01-15 Pierre Humblet <pierre.humblet@ieee.org>
* cmalloc.cc (_cmalloc): Fix memory leak.