Commit Graph

113 Commits

Author SHA1 Message Date
Corinna Vinschen
2971f07610 * cygcheck.cc (dump_sysinfo): Fix compiler warning in printf.
* strace.cc (proc_child): Ditto.
	* ldd.cc: Remove now useless undef wcscasecmp.
2009-03-24 13:35:08 +00:00
Corinna Vinschen
26fb7ef5e4 * wide_path.h (class wide_path): New class to convert Windows path
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.
2009-03-14 14:56:20 +00:00
Christopher Faylor
9caeaa61c0 * cygcheck.cc (usage): Fix typo. 2009-03-08 21:13:26 +00:00
Corinna Vinschen
bacd5877ba * cygcheck.cc (dump_sysinfo): Evaluate and print state of
obcaseinsensitive kernel flag.
2009-01-29 19:31:04 +00:00
Corinna Vinschen
2ac273a946 * Makefile.in: Fix copyright date.
* cygcheck.cc (scan_registry): Take additional parameter and add code
	to avoid recursion in Wow6432Node subkey.  Rename variable cygnus to
	cygwin.  Scan for "Cygwin" instead of for "cygnus" substring.
	(dump_sysinfo): Drop unused calls to scan_registry.  Drop scanning
	HKEY_CURRENT_CONFIG.
2009-01-17 11:59:16 +00:00
Corinna Vinschen
ab30b9e352 * cygcheck.cc (dump_sysinfo): Raise size of osname. Add Windows 7
and Windows 2008 R2 as recognized OSes.  Update products array to
	the latest documented list.
2009-01-16 12:10:02 +00:00
Pierre Humblet
952801c27e * cygcheck.cc (dump_sysinfo_services): Quote the path for popen. 2009-01-06 04:11:23 +00:00
Pierre Humblet
0b451bb524 * cygcheck.cc (pretty_id): Quote the path for popen.
(dump_sysinfo_services): Ditto.
2008-12-31 01:44:36 +00:00
Christopher Faylor
a35d9f1a67 * cygcheck.cc (pathlike::check_existence): Remove class name from declaration.
(display_internet_error): Use proper format specifier for DWORD.
(environ): Remove unneeded declaration.
(main): Use brace around nested if to avoid an overly-helpful compiler warning.
* dump_setup.cc (parse_filename): Reorganize nested if to avoid an
overly-helpful compiler warning.
* path.cc (GUID_shortcut): Use braces around part of initializer which needs
them.
(conv_fstab_spaces): Parenthesize assignment in while loop to avoid a compiler
warning.
(struct opt): Make static.
* ps.cc (main): Reorganize nested if to avoid an overly-helpful compiler
warning.
* regtool.cc: Make some anonymous structs static to avoid a compiler warning.
* ssp.c (lookup_thread_id): Initialize *tix to zero to avoid potential
uninitialized use.
* strace.cc (add_child): Use proper format specifier for DWORD.
(remove_child): Ditto.
(proc_child): Ditto.
2008-09-12 22:43:10 +00:00
Christopher Faylor
25687b0f76 * cygcheck.cc (nuke): Use malloc rather than alloca for environment variables.
(load_cygwin): Ditto.
* dump_setup.cc (parse_filename): Cosmetic changes.
(get_packages): Ditto.
2008-08-27 20:11:11 +00:00
Christopher Faylor
c7aa4aec42 * cygcheck.cc (print_version): Update copyright dates. 2008-08-17 17:15:41 +00:00
Christopher Faylor
ea8432dfb1 * cygcheck.cc (load_cygwin): Duplicate argv list since it disappears when
cygwin1.dll is unloaded.
2008-08-04 15:30:06 +00:00
Christopher Faylor
34aa62035b * cygcheck.cc (load_cygwin): Free the cygwin dll after we're done with it. 2008-07-27 14:53:42 +00:00
Corinna Vinschen
b677a99b34 * cygcheck.cc (dump_sysinfo): Fix multiple Cygwin DLL test.
* path.cc: Fetch mount points from fstab files instead of from
	registry.  Use adapted functions copied from Cygwin DLL.
	(mnt_t): Drop issys member.  Define as "mnt_t" instead of "struct mnt_t"
	subsequently.
	(max_mount_entry): New variable.
	(unconvert_slashes): Move to earlier location in file.  Make inline.
	(find2): Remove.
	(get_cygdrive0): Remove.
	(get_cygdrive): Remove.
	(skip_ws): New function.
	(find_ws): Ditto.
	(conv_fstab_spaces): Ditto.
	(read_flags): Ditto.
	(from_fstab_line): Ditto.
	(get_user): Ditto.
	(from_fstab): Ditto.
	(mnt_sort): Ditto.
	(read_mounts): Drop old registry code.  Fetch
	"Software\Cygwin\Setup\rootdir" value from HKCU or HKLM key.  Use
	rootdir extracted from module path as fallback.  Call from_fstab for
	nouser and user mount points.
	(setmntent): Check max_mount_entry to test if read_mounts must be
	called.
	(getmntent): Use MOUNT_SYSTEM flag instead of mnt_t's issys member.
2008-04-22 14:42:05 +00:00
Brian Dessent
5b7296f637 * cygcheck.cc (find_app_on_path): Make buffer SYMLINK_MAX + 1
chars.
2008-03-11 18:43:11 +00:00
Brian Dessent
60efa4e546 * cygcheck.cc (dirname): New static function.
(find_app_on_path): Use SYMLINK_MAX.  Resolve symlink relative
	to link's location.  Adjust to the fact that cygpath already
	normalizes its return value.
	* path.cc (rel_vconcat): Add cwd parameter, and use it instead
	of calling GetCurrentDirectory() if possible.  Rename throughout.
	(vcygpath): Rename from cygpath and accept cwd and va_list.  Pass
	cwd on to rel_vconcat().
	(cygpath_rel): New front end for vcygpath.
	(cygpath): Ditto.
	* path.h (cygpath_rel): Declare.
	(SYMLINK_MAX): Define to 4095.
2008-03-11 17:20:02 +00:00
Corinna Vinschen
2652ae1036 * cygcheck.cc (dump_sysinfo): Always try to get a OSVERSIONINFOEX
first.  Load kernel32.dll earlier.  Make osname a buffer.  Simplify
	Non-NT code.  Use GetProductInfo in Vista/2008 case.  Clean up
	non-Vista version info.  Exit early if not on NT.
2008-01-13 13:41:45 +00:00
Dave Korn
64b94981dc * Makefile.in (cygcheck.exe): Add bloda.o as prerequisite, adjusting
dependency-filtering $(wordlist ...) call appropriately.  Link ntdll.
	(bloda.o):  New rule to build bloda.o
	* cygcheck.cc (dump_sysinfo):  Call bloda function dump_dodgy_apps().
	* bloda.cc:  New file implements detection of applications from the
	Big List Of Dodgy Apps.
2007-08-03 19:41:48 +00:00
Christopher Faylor
f0136ac908 * cygcheck.cc (pathlike): New class.
(paths): Redefine as type pathlike.
(display_error): Declare a few different ways to allow more flexible usage
throughout.
(display_error_fmt): New function for those cases where C++ just isn't enough.
(add_path): Rewrite to allocate pathlike paths.  Always tack on a trailing
slash since that's what everyone who uses it wants.  NULL terminate the path
list.  Register "it's a system path" field.
(init_path): Call add_path with info regarding whether path is a system path or
not.
(pathlike::check_existence): Move into pathlike class.  Accept file and
extension arguments to build up path on the fly.  Modify other arguments.
(find_on_path): Constify return value and appropriate arguments.  Eliminate
short-circuit for fully-qualified paths.  Simplify loop which iterates over
path.
(already_did): Constify argument.
(track_down): Ditto.  Regularize some error messages.
(find_app_on_path): Ditto.
(cygcheck): Constify argument.  Use 20th century string handling functions.
(dump_sysinfo): Remove odd inclusion of '\\bin' "Just in case".  Accommodate
change of paths to pathlike.
* path.cc (isslash): Rename from SLASH_P and use throughout.
(rel_vconcat): Front-end to vconcat which prepends cwd to path before passing
along for conversion to native windows.
(cygpath): Remove "./" test.  Call rel_vconcat if filename appears to be
relative.
2007-06-04 01:57:16 +00:00
Corinna Vinschen
7db9fabc83 * cygcheck.cc (dump_sysinfo): Add "not supported" to osname on 9x
machines.  Drop "not supported" for Vista.  Drop "Longhorn" text
	for now.
2007-02-20 16:41:54 +00:00
Corinna Vinschen
cea9b62102 * cygcheck.cc (get_word, get_dword): Move to path.cc.
(LINK_EXTENSION): New macro.
	(check_existence): New static function.
	(find_on_path): Check for symbolic links if asked.
	(dll_info): New error handling.
	(track_down): Only call dll_info() for executables, display
	an error for symlinks, and print magic number for others.
	(find_app_on_path): New static function.
	(cygcheck, dump_sysinfo): Call find_app_on_path() instead of
	find_on_path().
	* path.cc (cmp_shortcut_header): New static function.
	(get_word, get_dword): Moved from cygcheck.cc.
	(EXE_MAGIC, SHORTCUT_MAGIC, SYMLINK_COOKIE, SYMLINK_MAGIC): New
	macros.
	(is_exe, is_symlink, readlink): New functions.
	* path.h (is_exe, is_symlink, readlink): Declare.
	(get_word, get_dword): Ditto.
2006-10-05 17:24:13 +00:00
Christopher Faylor
8552e20ec4 white space 2006-09-13 15:33:37 +00:00
Christopher Faylor
aa45b3b73d Check in previously mentioned change to cygcheck.cc 2006-09-13 15:32:04 +00:00
Corinna Vinschen
9d1c0a6053 * cygcheck.cc (find_on_path): Update copyright text. 2006-02-08 14:19:40 +00:00
Corinna Vinschen
e699adfce5 * cygcheck.cc (find_on_path): Create copy of rv on successful access
check, since rv can be reused in subsequent calls.
2006-02-08 14:13:28 +00:00
Christopher Faylor
3c09c0fb25 * cygcheck.cc (common_paths): Add "patch". 2006-01-19 21:16:38 +00:00
Christopher Faylor
101b3cb01a * cygcheck.cc (init_paths): Record first_nonsys_path.
(find_on_path): Start on first nonsys path when !search_sysdirs.
2006-01-19 20:17:11 +00:00
Christopher Faylor
4d7c0b51bf copyright 2006-01-17 15:37:13 +00:00
Corinna Vinschen
8581551218 * Makefile.in (cygcheck.exe): Do not link against libwininet.a.
* cygcheck.cc (pInternetCloseHandle): Define global function pointer.
	(display_internet_error): Use it.
	(package_grep): Attempt to load wininet.dll at runtime.  Call WinInet
	API through function pointers throughout.
2006-01-15 09:29:02 +00:00
Corinna Vinschen
053d5eed93 * cygcheck.cc (dump_sysinfo): Convert k32 to HMODULE. 2006-01-13 15:36:29 +00:00
Corinna Vinschen
67066cabad * cygcheck.cc (dump_sysinfo): Convert osname to const and remove casts
in subsequent assignments.  Recognize Longhorn/Vista and report as not
	yet supported.  Recognize when running under WOW64 and report native
	CPU type.  Slightly rearrange \n printing.
2006-01-13 13:39:05 +00:00
Christopher Faylor
951bd8e9f1 * cygcheck.cc: Replace ` with ' throughout. 2006-01-12 17:43:53 +00:00
Christopher Faylor
2ea1dced21 * cygcheck.cc (dump_sysinfo): Report the failing drive to prevent having to
guess.
2006-01-05 18:31:26 +00:00
Christopher Faylor
10e4168d84 * cygcheck.cc (common_apps): Add crontab, vi, vim. 2005-12-29 19:23:46 +00:00
Christopher Faylor
bc0d578d39 * cygcheck.cc (common_apps): Add a few more binaries to look for. 2005-12-15 03:36:14 +00:00
Christopher Faylor
a39cfda7ba * Makefile.in: Link cygcheck with libwininet.a.
* cygcheck.cc: Add includes.
(grep_packages): New global variable.
(display_internet_error): New function.
(safe_chars): New global variable.
(base_url): Ditto.
(package_grep): New function.
(usage): Reword --help output for clarity.  Document new argument.
(longopts): Add 'package-query' option.
(opts): Add 'p' option, reorder to be consistent with 'longopts'.
(main): Accommodate new option.
* utils.sgml (cygcheck): Update --help output.  Document new -p option.
2005-11-22 17:19:17 +00:00
Brian Dessent
9a99dcd39c * cygcheck.cc (dump_sysinfo_services): Properly null-terminate 'buf'.
Avoid extraneous cygrunsrv invocation if 'verbose' is true.
2005-08-17 00:52:43 +00:00
Christopher Faylor
0eccec28cc * cygcheck.cc (find_on_path): Perform .exe magic on non-PATH search. 2005-07-19 21:00:34 +00:00
Christopher Faylor
27eb5dbc70 * cygcheck.cc (track_down, cygcheck): Return true on success.
(main): Reflect cygcheck failures in exit status.
2005-07-05 21:41:37 +00:00
Corinna Vinschen
26797de314 * cygcheck.cc (dump_sysinfo): Recognize XP Media Center and Tablet PC
Editions. Change .NET to 2003 throughout.  Recognize 2003 Web Server
	and Datacenter Server. Report when running in terminal server session.
2005-05-30 15:49:31 +00:00
Christopher Faylor
cba3b11fc5 * cygcheck.cc (load_cygwin): Make half-hearted attempt to work with older DLLs.
* strace.cc (load_cygwin): Ditto.
2005-05-27 15:45:53 +00:00
Corinna Vinschen
827cff7fe2 * cygcheck.cc (dump_sysinfo_services): Add new function that uses
new cygrunsrv options to dump service info.
	(dump_sysinfo): Call dump_sysinfo_services if running under NT.
	Change 'Cygnus' to 'Cygwin' in output.
2005-05-23 09:54:44 +00:00
Christopher Faylor
f609f58d32 * cygcheck.cc (load_cygwin): Remove debugging statement. 2005-05-20 16:50:39 +00:00
Christopher Faylor
ceb7fa1c4a * cygcheck.cc (dump_sysinfo): Don't attempt to use path if it is not set.
(nuke): Fix off by one error in allocation of environment variable.
(load_cygwin): Always set PATH even if cygwin environment is empty.
2005-05-20 16:38:42 +00:00
Christopher Faylor
ac674bc896 * cygcheck.cc (cygwin_internal): Define as a "C" function.
* strace.cc (cygwin_internal): Ditto.
* cygpath.cc (print_version): Update copyright.
2005-05-17 01:26:16 +00:00
Christopher Faylor
41dcb6199c * cygcheck.cc (load_cygwin): Avoid calling putenv with a NULL path. 2005-05-16 03:18:29 +00:00
Corinna Vinschen
90253b8276 * cygcheck.cc (load_cygwin): Don't touch $PATH for now.
(print_version): Fix copyright.
	* strace.cc (print_version): Ditto.
2005-05-15 12:29:47 +00:00
Christopher Faylor
f991d0e53e * cygcheck.cc (nuke): New function.
(load_cygwin): New function.
(main): Use load_cygwin to load argv/envp from cygwin environment, if
appropriate.
2005-05-09 01:56:34 +00:00
Corinna Vinschen
0f0595abd9 * cygcheck.cc (init_paths): Use full path instead of "." for the
current directory.  Do not add "." if present in $PATH.
	(dump_sysinfo): Skip placeholder first value of paths[].
2005-03-24 14:48:15 +00:00
Bas van Gompel
d26eb2a13b * cygcheck.cc (eprintf): New function. 2004-11-18 05:20:23 +00:00