(load_cygwin): Fetch cygwin DLL path and store in cygwin_dll_path.
* strace.cc: Full ditto.
* path.cc (read_mounts): First use the path stored in cygwin_dll_path,
if available. Then fall back to fetching own path. Add comment.
Drop printing warnings since they look funny in strace output.
using my_wcstombs.
(get_user_folder): Remove.
(do_sysfolders): Use get_special_folder instead of get_user_folder.
Fetch system paths as WCHAR and convert using my_wcstombs.
name isn't found and return 0 to allow searching to proceed. Always
return 0 or 1, not -1.
(enum_groups): Avoid error message if given group name isn't found.
* mkpasswd.c (enum_users): Ditto.
of path.cc for usage in mount.
(mount.exe): Add dependency to path-mount.o.
* mount.cc (force): Convert to bool value. Accommodate throughout.
(from_fstab): New function.
(do_mount_from_fstab): New function.
(longopts): Add --all option.
(opts): Add -a option.
(usage): Document -a/--all option.
(main): Handle -a option as well as single parameter.
* path.cc: Add FSTAB_ONLY conditional to allow building path-mount.o.
(mount_table): Remove static storage class.
(max_mount_entry): Ditto.
(root_here): Unused. Remove.
(from_fstab_line): Remove static.
* path.h (struct mnt_t): Define here rather than in path.cc.
(from_fstab_line): Declare.
(mount_table): Declare.
(max_mount_entry): Declare.
* utils.sgml (mount): Document -a/--all option and mounting of single
path from fstab files.
"override" entries.
(from_fstab_line): Handle mount points same as Cygwin itself. Use
"cygdrive prefix" as posix name of cygdrive prefix.
(from_fstab): Add auto entries for /usr/bin and /usr/lib. Add
MOUNT_AUTOMATIC and MOUNT_IMMUTABLE flags to default root dir entry.
Use "cygdrive prefix" as posix name of default cygdrive prefix.
(getmntent): Allocate smaller buffers. Align output closer to output
of mount(1).
2009-05-13 Corinna Vinschen <corinna@vinschen.de>
Christopher Faylor <me+cygwin@cgf.cx>
* mount.cc (mount_info::got_usr_bin): Define.
(mount_info::got_usr_lib): Ditto.
(mount_info::root_idx): Ditto.
(mount_info::create_root_entry): Create root entry as immutable and
flag as automatic.
(mount_info::init): Remove "Huh? No /etc/fstab..." warning.
Unconditionally call from_fstab for user and system tables. Fill in
/usr/bin and /usr/lib if they have not been specified in /etc/fstab.
(oopts): Alphabetize. Add "override" option to allow overriding
immutable mount points.
(mount_info::add_item): Accommodate new MOUNT_IMMUTABLE flag intended
for root mount.
(mount_info::add_item): Detect "/usr/bin", "/usr/lib", and "/" and set
appropriate global state.
(fillout_mntent): Add ,auto to mount points added by Cygwin DLL.
(mount): Remove masking of MOUNT_SYSTEM. Allow user to shoot
themselves. Add comment.
* mount.h (mount_info::got_usr_bin): Declare.
(mount_info::got_usr_lib): Ditto.
(mount_info::root_idx): Ditto.
* include/sys/mount.h: Reformat enum.
Add MOUNT_{OVERRIDE,IMMUTABLE,AUTOMATIC}.
doc ChangeLog
2009-05-13 Corinna Vinschen <corinna@vinschen.de>
Christopher Faylor <me+cygwin@cgf.cx>
* pathnames.sgml (mount-table): Sort mount options and add override
option. Add description of root mount handling.
utils ChangeLog
2009-05-13 Corinna Vinschen <corinna@vinschen.de>
Christopher Faylor <me+cygwin@cgf.cx>
* mount.cc (oopts): Sort. Add override option. Add dummy "auto"
option for consistency.
(mount_entries): Avoid adding auto-mounted entries to -m output.
* utils.sgml: Sort mount options. Add description of override option.
* ps.cc (main): Enable SE_DEBUG_NAME privilege if Windows processes
have to be enumerated. Workaround EnumProcessModules problem when
running under WOW64 and use NtQueryInformationProcess to fetch
process image name.
is an administrator by inspecting user token.
(main): Drop fetching caller info from logonserver. Only fetch
server from environment when trying to change password for own
account. Drop admin check entirely in case of doing account
maintainance. Otherwise replace check for admin by result of
caller_is_admin call.
* passwd.c: Use mbstowcs instead of MultiByteToWideChar throughout.
(main): Call setlocale. Fix a bug in fetching the logon server from
the environment.
(set_entry_point_break): Rename from get_entry_point.
(print_dlls): Rename from print_dlls_and_kill_inferior. Avoid printing
specific dll name if we're looking at a dll.
(report): Always dump dlls on process exit. Don't allow thread creation.
Accommodate get_entry_point rename.
(start_process): Start process with DEBUG_ONLY_THIS_PROCESS.
(longopts): Eliminate "dll" option.
(main): Ditto.
* ldd.cc: Use wide character Win32 paths throughout.
(load_dll): Fix size expression (add fn) in realloc.
(get_module_filename): Generalized wrapper function which avoid path length
restrictions.
(load_dll): Handle special-case of inspecting a DLL.
(start_process): Accept an output parameter "isdll". Detect when file to start
is a DLL and start a wrapper instead.
(print_dlls_and_kill_inferior): When dealing with a DLL, avoid printing
everything before the DLL itself first appears. (This is not strictly correct
and should be fixed eventually)
(report): Deal with DLLs. Don't set a breakpoint for DLLs, just let captive
ldd process terminate normally. Pass dll info to print_dlls_and_kill_inferior.
(main): Handle special-case "--dll" option by loading the DLL and exiting.
to WCHAR win32 path, including long path conversion if necessary.
* cygcheck.cc: Use class wide_path throughout to call Win32 functions
taking potentially long filenames.
(display_error): Use snprintf rather than sprintf.
(display_error_fmt): Ditto.
(dump_sysinfo): Use FindFirstFileW/FindNextFileW.
* cygpath.cc: Use class wide_path throughout to call Win32 functions
taking potentially long filenames.
(get_device_name): Raise buffer size to take long pathnames.
(get_short_paths): Convert to using GetShortPathNameW.
(get_short_name): Ditto.
(get_long_path_name_w32impl): Convert to equivalent of GetLongPathNameW.
(get_long_name): Convert to using GetLongPathNameW.
(do_sysfolders): Raise buffer size for POSIX pathname to PATH_MAX.
(do_pathconv): In case of POSIX->Win32 conversion, convert to wchar_t
Win32 path name and drop long pathname prefix if possible.
(main): Call setlocale to accommodate wide char/multibyte conversions.
(start_process): Change to expect windows filename as input.
(tocyg): New function - convert cygwin fn to windows fn.
(print_dlls_and_kill_inferior): Accept extra argument denoting whether to open
input and look for nonexistent DLLs. Use tocyg to convert filename and pass it
to start_process.
(report): Flag when an DLL-not-found exception occurs and pass this information
to print_dlls_and_kill_inferior.
(filelist): New structure.
(saw_file): New function.
(dump_import_directory): Ditto.
(map_file): Ditto.
(skip_dos_stub): Ditto.
(get_directory_index): Ditto.
(process_file): Ditto.