summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/path.cc
Commit message (Collapse)AuthorAgeFilesLines
* * path.h (cwdstuff): Move class.Christopher Faylor2001-04-171-33/+9
| | | | | | | | | | | | | | * cygheap.h (cwdstuff): To here. (init_cygheap): Add cwd field. * child_info.h (cygheap_exec_info): Eliminate cwd stuff. (child_info_spawn): Ditto. * dcrt0.cc (dll_crt0_1): Remove cygcwd.fixup_after_exec call. Convert cygcwd reference to cygheap->cwd. * path.cc: Ditto, throughout. (cwdstuff::copy): Eliminate. (cwdstuff::fixup_after_exec): Ditto. * spawn.cc (spawn_guts): Eliminate call to cygcwd.copy. * fhandler.h (FH_OSS_DSP): Move into "fast" device category.
* * autoload.cc: Add winmm functions needed by fhandler_dsp.cc.Christopher Faylor2001-04-161-2/+5
| | | | | | | | | * fhandler_dsp.cc: New file. Implements OSS like /dev/dsp. * include/sys/soundcard.h: New file. User land includes for OSS /dev/dsp. * fhandler.h: Add new class fhandler_dev_dsp and a FH_OSS_DSP definition. * dtable.cc (dtable::build_fhandler): Allow creation of the /dev/dsp device. * path.cc (windows_device_names): Add /dev/dsp into list of device names. * Makefile.in (DLL_OFILES): Add fhandler_dsp.o.
* * path.cc (add_ext_from_sym): Redefine to call `add_ext_from_sym_'.Corinna Vinschen2001-04-151-4/+13
| | | | (add_ext_from_sym_): New inline function.
* * path.cc (add_ext_from_sym): New define evaluating `known'suffix'.Corinna Vinschen2001-04-131-18/+9
| | | | (path_conv::check): Use add_ext_from_sym throughout.
* * dir.cc (mkdir): Check for case clash.Corinna Vinschen2001-04-121-40/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | * environ.cc: Add extern declaration for `pcheck_case'. (check_case_init): New function. (struct parse_thing): Add "check_case" option. * errno.cc (_sys_nerrlist): Add text for ECASECLASH. (strerror): Add case branch for ECASECLASH. * fhandler.cc (fhandler_disk_file::open): Check for case clash. * path.cc: Add global variable `pcheck_case'. (struct symlink_info): Add member `case_clash' and method `case_check'. (path_prefix_p_): Call `pathnmatch' instead of `strncasematch'. (pathnmatch): New funtion. (pathmatch): Ditto. (path_conv::check): Add handling for case checking. (symlink): Check for case clash. (symlink_info::check): Add parameter for case checking. Handle case checking. (symlink_info::case_check): New method. (chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT. * path.h: Add extern declarations for `pathmatch' and `pathnmatch'. (enum case_checking): New enumeration type describing the case checking behaviour of path conversion routines. (class path_conv): Add member `case_clash'. * syscalls.cc (_link): Check for case clash.
* * path.cc (struct symlink_info): Add extn and ext_tacked_on fields.Christopher Faylor2001-04-111-7/+17
| | | | | | (path_conv::check): Only tack on extension if a known one didn't already exist. (suffix_scan::has): Return pointer to known extension. (symlink_info::check): Record location of extension, if any.
* * shared_info.h (mount_info): Remove mnt_ elements.Christopher Faylor2001-04-021-15/+14
| | | | | * thread.h (struct _winsup_t): Add mnt_ elements. * path.cc (fillout_mntent): Use mnt_ elements from reent_winsup ().
* * path.cc (fillout_mntent): Always remove drive root directories from futureChristopher Faylor2001-04-011-14/+31
| | | | | | consideration by "/cygdrive" reporting. (cygdrive_getmnt): Avoid reporting removable drives or drives with no media mounted.
* * thread.h (struct _winsup_t): Remove obsolete elements. Add available_drivesChristopher Faylor2001-04-011-19/+49
| | | | | | | | | | | | element. * path.cc (mount_info::getmntent): Report "/cygdrive" drives when mounted drives are exhausted. (fillout_mntent): New function. (mount_item::getmntent): Use fillout_mntent. (cygdrives_mntent): New function. Returns next available "/cygdrive". (setmntent): Initialize available "/cygdrives". * syscalls.cc: Remove some if 0'ed code. * times.cc (timezone): Use more descriptive variable name.
* * path.cc (chdir): Eat trailing whitespace on input path.Christopher Faylor2001-03-291-0/+8
|
* * path.cc (suffix_scan::next): Avoid searching for foo.lnk twice when input isChristopher Faylor2001-03-171-3/+7
| | | | "foo".
* * dir.cc (readdir): Use strcasematch for consistency.Christopher Faylor2001-03-171-48/+53
| | | | | | | | | | | * path.cc (symlink_info): Eliminate known_suffix. (path_conv::check): Always copy ext_here to end of buffer, if found. (suffix_scan): Eliminate ext_here, add suffixes_start. (suffix_scan::has): Eliminate an argument. Reorganize. Always return pointer to end of input path. (suffix_scan::next): Take a second pass through the suffix list looking for .lnk. (symlink_info::check): Eliminate known_suffix usage.
* * path.cc: Translate scan states from defines to enums.Christopher Faylor2001-03-171-18/+28
| | | | | | | | | | (suffix_scan): Rename state to nextstate for clarity. (lnk_match): Change to allow multiple states to indicate that a .lnk has been matched. (suffix_scan::has): Eliminate a goto. Handle .lnk as a special case, since a .lnk may also need to be tacked on the end of a .lnk. (suffix_scan::next): Don't increment next state. Set it specifically. Recognize new .lnk states.
* * path.cc (lnk_suffixes): Remove.Corinna Vinschen2001-03-141-16/+9
| | | | | | | | | | | | (class suffix_scan): Add `lnk_state' flag. (suffix_scan::lnk_match): Return state of `lnk_state' now. (suffix_scan::has): Changed behaviour if file has `.lnk' suffix. (suffix_scan::next): Set `lnk_state' where appropriate. (symlink_info::check): Fix a wrong `break'. * syscalls.cc (chown_worker): Change debug statement to reflect lchown fix. (lchown): Call chown_worker with `PC_SYM_NOFOLLOW' instead of `PC_SYM_IGNORE'.
* * path.cc (suffix_scan::has): Change order of conditionalsCorinna Vinschen2001-03-061-9/+9
| | | | to allow checking for .lnk suffixes even if in_suffixes is empty.
* * dlopen.c (dlopen): Return NULL when name is NULL (suggested byChristopher Faylor2001-03-051-82/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | chrisiasci@aol.com). * cygwin.din: Add a new, internally used export - _check_for_executable. * dcrt0.cc (dll_crt0_1): Set _check_for_executable for older binaries. Pass user_data to premain functions. * fhandler.cc (fhandler_disk_file::open): Only check for executable if the linked program is intereested in the executable bit. (fhandler_disk_file::check_execable_p): Delete. * fhandler.h (executable_states): New enumeration of various states of executable bit caring. (fhandler_base::set_execable_p): New method. * fhandler_termios.cc (fhandler_termios::line_edit): Flag when a signal has been sent to the tty. Return -1 when this is so. * fhandler_console.cc (fhandler_console::read): Return -1 when signal sending character encountered. * path.cc (path_conv::check): Record when path refers to a disk device. Move executable extension check here. (check_sysfile): Accomodate new EXEC path states. (has_suffix): Remove. (next_suffix): Remove. (class suffix_scan): New clas. (suffix_scan::has): New method. (suffix_scan:next): New method. (symlink_info::check): Use suffix_scan method to control for scanning for suffixes. * path.h (path_conv::exec_state): New method. * perprocess.h: Make "C" friendly. * include/cygwin/version.h: Define CYGWIN_VERSION_CHECK_FOR_S_IEXEC. Bump CYGWIN_VERSION_API_MINOR. * include/sys/cygwin.h: Change premain declarations. * winsup.h: Move __cplusplus test to after builtin defines.
* * dir.cc (readdir): Fix shortcut==symlink condition.Corinna Vinschen2001-03-021-74/+77
| | | | | | | | | | | | | * environ.cc: Add extern decl for `allow_winsymlinks'. (struct parse_thing): Add entry for `[no]winsymlinks'. * path.cc (symlink): Change to be able to create both, symlink==shortcut and symlink==systemfile, dependent of the setting of `allow_winsymlinks'. * security.cc (cygwin_logon_user): Add debug output. * shortcut.c: Add defines from path.h. (has_exec_chars): Copy from path.h. (check_shortcut): Check for executable file condition if not a shortcut.
* * path.cc (symlink): Add a ".lnk" suffix regardless. Add a comment.Corinna Vinschen2001-02-251-5/+5
|
* * path.cc (symlink): Keep relative paths relative in the DOSCorinna Vinschen2001-02-221-9/+12
| | | | | path inside of a shortcut. If that's impossible or the target path is already absolute save an absolute path.
* * path.cc (symlink): Keep relative paths relative in the DOSCorinna Vinschen2001-02-221-4/+33
| | | | | path inside of a shortcut. If that's impossible for some reason, save an absolute path.
* * cygerrno.h: Revert previous patch.Corinna Vinschen2001-02-221-7/+20
| | | | | | | | | | | | | | | | | | | | | | * errno.cc: Ditto. * dir.cc: Eliminate `dir_suffixes'. (opendir): Remove usage of `dir_suffixes'. (rmdir): Ditto. * fhandler.cc (fhandler_disk_file::open): Remove usage of `inner_suffixes'. * path.cc: Rename `inner_suffixes' to `lnk_suffixes'. (path_conv::check): Remove usage of `inner_suffixes'. (symlink): Ditto. (symlink_info::check): Handle checking for `.lnk' in path_conv exclusively here. (chdir): Remove usage of `dir_suffixes'. * shortcut.c: Eliminate debug_printf lines. (check_shortcut): Don't set error except on failing ReadFile. * spawn.cc: Remove ".lnk" from `std_suffixes'. * syscalls.cc (_unlink): Remove usage of `inner_suffixes'. Remove ".lnk" from `stat_suffixes'. (_rename): Add check for renaming a symlink to keep the ".lnk" suffix after renaming.
* * shortcut.c: New file. Provides a C interface to reading ofCorinna Vinschen2001-02-221-165/+16
| | | | | | | | | | | | | | | | | | | | Windows shortcuts to avoid compiler flag `-fvtable-thunks'. * shortcut.h: Ditto. * Makefile.in: Add shortcut.o to DLL_OFILES. * cygerrno.h: Provide a C interface to `geterrno_from_win_error' for using in shortcut.c. * errno.cc (geterrno_from_win_error): Define as extern "C". * path.cc (struct symlink_info): Remove methods `check_shortcut' and `check_sysfile'. (shortcut_header): Move to shortcut.c. (shortcut_initalized): Ditto. (create_shortcut_header): Ditto. (cmp_shortcut_header): Ditto. (symlink_info::check_shortcut): Ditto. Reorganize as a plain C function. (symlink_info::check_sysfile): Redefine as a global function using the same parameter list as `check_shortcut' for clearness. (symlink_info::check): Change parameter list for calls to `check_shortcut' and `check_sysfile'.
* * fhandler.cc (fhandler_disk_file::open): Use `inner_suffixes' whenCorinna Vinschen2001-02-221-1/+1
| | | | | resolving real_path. * path.cc (symlink): Ditto for win32_topath.
* Add copyright year 2001Corinna Vinschen2001-02-211-1/+1
|
* * Makefile.in: Add `-lshell32 -luuid' to link pass for new-cygwin1.dll.Corinna Vinschen2001-02-211-62/+287
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * autoload.cc: Add LoadDLLinitfunc for ole32.dll. Add LoadDLLfuncEx statements for CoInitialize@4, CoUninitialize@0 and CoCreateInstance@20. * dir.cc (dir_suffixes): New datastructure. (readdir): Check for R/O *.lnk files to hide the suffix. (opendir): Use `dir_suffixes' in path conversion. (rmdir): Ditto. * fhandler.cc (fhandler_disk_file::fstat): Add S_IFLNK flag before calling `get_file_attribute'. Take FILE_ATTRIBUTE_READONLY into account only if the file is no symlink. * path.cc (inner_suffixes): New datastructure. (SYMLINKATTR): Eliminated. (path_conv::check): Use `inner_suffixes' on inner path components. (shortcut_header): New global static variable. (shortcut_initalized): Ditto. (create_shortcut_header): New function. (cmp_shortcut_header): Ditto. (symlink): Create symlinks by creating windows shortcuts. Preserve the old code. (symlink_info::check_shortcut): New method. (symlink_info::check_sysfile): Ditto. (symlink_info::check): Check for shortcuts. Move code reading old system attribute symlinks into symlink_info::check_sysfile(). (chdir): Use `dir_suffixes' in path conversion. * security.cc (get_file_attribute): Check for S_IFLNK flag. Force 0777 permissions then. * spawn.cc (std_suffixes): Add ".lnk" suffix. * syscalls.cc (_unlink): Use `inner_suffixes' in path conversion. Check for shortcut symlinks to eliminate R/O attribute before calling DeleteFile(). (stat_suffixes): Add ".lnk" suffix. (stat_worker): Force 0777 permissions if file is a symlink.
* * cygheap.cc (init_cheap): Move username initialization.Christopher Faylor2001-01-281-5/+26
| | | | | | | | | | | | | (cygheap_init): Here. * shared_info.h (mount_info): Add a sys_mount_table_counter field. (shared_info): Ditto. * path.cc (mount_info::conv_to_win32_path): Check that our mount table is in sync with the system mount table and reinitialize it if not. (mount_info::add_reg_mount): Bump sys_mount_table counters if the system mount table changes. (mount_info::del_reg_mount): Ditto. (mount_info::write_cygdrive_info_to_registry): Ditto. (mount_info::remove_cygdrive_info_from_registry): Ditto.
* Throughout, change 'cygwin_shared.mount' to 'mount_table'.Christopher Faylor2001-01-281-43/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * child_info.h (child_info): Move shared_h, console_h to cygheap. Add mount_h. * cygheap.h (init_cygheap): Add shared_h, console_h. * cygheap.cc (init_cheap): Initialize heap at a fixed location after the shared memory regions. Initialize cygheap->user name here. * dcrt0.cc (dll_crt0_1): Call getpagesize () to initialize constants. Remove cygheap_init since it is done in shared_init now. (_dll_crt0): Initialize mount_h, remove shared_h and console_h initialization. * fhandler_console.cc (console_shared_h): Eliminate. (get_tty_stuff): Use cygheap->console_h rather than console_shared_h. * heap.cc (heap_init): Use page size constant calculated earlier in initialization. * shared.cc: Eliminate cygwin_shared_h. Add cygwin_mount_h. (mount_table_init): New function for initializing a user mount table. (open_shared_file_map): Use constant for shared memory region. Initialize cygheap and mount table here. (open_shared): Improve debugging output. (shared_info::initialize): Eliminate call to mount.init. (shared_terminate): Use cygheap->shared_h. Close cygwin_mount_h. (open_shared_file_map): Eliminate. * shared_info.h (mount_info): Add a version field. (shared_align_past): New macro for calculating location for shared memory regions. * sigproc.cc (init_child_info): Eliminate shared_h, console_h. * spawn.cc (spawn_guts): Pass on cygwin_mount_h iff not a different user. * syscalls.cc (system_info): New global holding system memory defaults. (getpagesize): Use system_info. * uinfo.cc (internal_getlogin): Only fill in user name if nonexistent. * winsup.h: Declare system_info. * passwd.cc (read_etc_passwd): Use cygheap->user.name () rather than retrieving the name again.
* * path.cc (path_conv::check): Detect when path has symlinks.Christopher Faylor2001-01-271-5/+20
| | | | | (symlink_info::check): Remove debugging stuff. (chdir): Use posix'ized win32 path if cd'ed to a path using symlinks.
* * path.h: Add a new constant.Christopher Faylor2001-01-221-34/+5
| | | | * syscalls.cc (_read): Oscillate errno check.
* * include/cygwin/version.h: Bump API to reflect setlogmask.Christopher Faylor2001-01-221-5/+34
|
* * environ.cc (struct parse_thing): Add entry for new CYGWIN optionCorinna Vinschen2000-12-191-1/+6
| | | | | | | | | | | `smbntsec'. * path.cc (path_conv::check): Check path for being a remote path. If so and `allow_smbntsec' is set to FALSE, set has_acls to FALSE. * security.cc: Add global definition for `allow_smbntsec'. * security.h: Add extern declaration for `allow_smbntsec'. * fhandler.cc (fhandler_disk_file::open): Eliminate extern declaration of `allow_ntsec'. * syscalls.cc: Ditto.
* * path.cc (normalize_posix_path): Calculate path name length overruns moreChristopher Faylor2000-12-151-8/+10
| | | | | | dynamically. (normalize_win32_path): Ditto. * Makefile.in: Avoid scanning the directory twice for *.d files.
* * path.cc (normalize_win32_path): Check for explicit use of two slashes at theChristopher Faylor2000-12-091-4/+4
| | | | | | beginning of a path. These should be treated specially regardless of whether they are UNC paths or old-style //a paths. Avoid adding cwd to a path if the path already begins with '/'.
* * path.cc (normalize_win32_path): Reorganize logic to accomodate chroot.Christopher Faylor2000-12-091-26/+27
| | | | | | Always check for MAX_PATH overrun. Avoid adding one too many backslashes when src path begins with a slash. From Corinna Vinschen. * winsup.h: Force demangling for dll_crt0 for newer compilers.
* * path.cc (normalize_win32_path): Handle UNC paths better.Christopher Faylor2000-12-031-3/+11
| | | | (slash_unc_prefix_p): Allow backslash UNC paths.
* * Makefile.in: Use CXX to build the DLL.Christopher Faylor2000-12-031-3/+5
| | | | | | | | * configure.in: Find correct c++ compiler. * configure: Regenerate. * path.cc (normalize_posix_path): Put correct drive at beginning of \foo style paths. (chdir): Don't send non-posix path to cygcwd.set.
* * fhandler.cc (fhandler_disk_file::open): Check for buggy CreateFileCorinna Vinschen2000-11-281-1/+7
| | | | | | | | | condition. * path.cc (path_conv::check): Get file system type in call to GetVolumeInformation to check for file systems with buggy CreateFile. * path.h (enum path_types): Add PATH_HASBUGGYOPEN. (class path_conv): Add methods `has_buggy_open' and `set_has_buggy_open'.
* * path.cc (mount_info::read_cygdrive_info_from_registry): Read system cygdriveChristopher Faylor2000-11-241-14/+14
| | | | | prefix with KEY_READ. (mount_info::get_cygdrive_info): Ditto.
* * path.cc (normalize_posix_path): Special care for root directoryCorinna Vinschen2000-11-171-1/+5
| | | | in case of files beginning with a dot.
* * cygheap.cc (cygheap_root::cygheap_root): New function.Corinna Vinschen2000-11-151-16/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cygheap_root::~cygheap_root): Ditto. (cygheap_root::operator=): Ditto. (cygheap_user::~cygheap_user): Ditto. (cygheap_user::set_name): Ditto. (cygheap_user::set_logsrv): Ditto. (cygheap_user::set_domain): Ditto. (cygheap_user::set_sid): Ditto. * cygheap.h (cygheap_root): New class. (cygheap_user): Ditto. (init_cygheap): Change type of `root' member to cygheap_root. Add `user' member. * dir.cc (opendir): Use new `cygheap_root' class. * dcrt0.cc (dll_crt0_1): Use new `cygheap_user' class. * fork.cc (fork_parent): Ditto. * grp.cc (getgroups): Ditto. * passwd.cc (search_for): Ditto. * path.cc: Use new `cygheap_root' class throughout. * pinfo.h (_pinfo): Remove `use_psid'. Move `username', `psid', `logsrv', `domain', `orig_{uid,gid}' and `real_{uid,gid}' to cygheap_user class. * security.cc: Use new `cygheap_user' class throughout. * shared.cc (sec_user): Ditto. * sigproc.cc (proc_subproc): Remove copy statements for user related information moved to `cygheap_user' class. * spawn.cc (spawn_guts): Invalidate current chroot settings when creating Windows environment. Use new `cygheap_user' class. * syscalls.cc: Use new `cygheap_user' class throughout. * uinfo.cc: Ditto. * uinfo.cc (internal_getlogin): Change parameters to reflect the move of user information to cygheap.
* * cygheap.h (init_cygheap): New struct holding values that live in the CygwinChristopher Faylor2000-11-141-15/+15
| | | | | | | | | | | | | | | | | | | | | heap. * child_info.h (child_info): Change pointer type of cygheap to init_cygheap. * cygheap.cc (init_cheap): Point cygheap_max after contents of cygheap. Move some stuff into cygheap.h. * dir.cc (opendir): Change to use root and rootlen in cygheap rather than in myself. (mkdir): Change to use umask in cygheap rather than in myself. * path.cc: Ditto, throughout. * syscalls.cc (_open): Ditto. Change to use umask in cygheap rather than in myself. (chroot): Change to allocate root dir on the cygwin heap. (umask): Change to use umask in cygheap rather than in myself. (cygwin_bind): Ditto. * sigproc.cc (proc_subproc): Don't copy umask or root stuff as this happens automatically now. * pinfo.h (_pinfo): Migrate stuff out of here and into init_cheap. * dcrt0.cc (dll_crt0_1): Call cygheap_init later in startup for first cygwin process.
* * path.cc (get_device_number): Allow /dev/ttySn to designate a com port.Christopher Faylor2000-11-131-0/+4
|
* * environ.cc (_addenv): malloc space for setenv if cygwin1.dll is used inChristopher Faylor2000-11-081-1/+16
| | | | | | | | | | | | | | | | | | conjunction with older binaries. (environ_init): Ditto. * external.cc (get_cygdrive_info): New function. * external.cc (get_cygdrive_prefixes): Change to use get_cygdrive_info but toss the user and system flags. * external.cc (cygwin_internal): Add new CW_GET_CYGDRIVE_INFO case. * path.cc (mount_info::get_cygdrive_prefixes): Remove method. * path.cc (mount_info::get_cygdrive_info): New method. Actually, get_cygdrive_info is really an enhanced version of get_cygdrive_prefixes renamed to get_cygdrive_info that also gets the user and system flags. * shared_info.h (get_cygdrive_prefixes): Remove method. * shared_info.h (get_cygdrive_info): New method. * include/cygwin/version.h: Bump minor API version due to adding CW_GET_CYGDRIVE_INFO to cygwin_internal. * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GET_CYGDRIVE_INFO.
* * path.cc (mount_info::read_cygdrive_info_from_registry): UseChristopher Faylor2000-11-061-11/+14
| | | | | | | | | | | CYGWIN_INFO_CYGDRIVE_PREFIX, CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX, and CYGWIN_INFO_CYGDRIVE_FLAGS. * path.cc (mount_info::write_cygdrive_info_to_registry): Use CYGWIN_INFO_CYGDRIVE_PREFIX and CYGWIN_INFO_CYGDRIVE_FLAGS. * path.cc (mount_info::remove_cygdrive_info_from_registry): Ditto. * path.cc (mount_info::get_cygdrive_prefixes): Use CYGWIN_INFO_CYGDRIVE_PREFIX. * include/cygwin/version.h: Add CYGWIN_INFO_CYGDRIVE_FLAGS, CYGWIN_INFO_CYGDRIVE_PREFIX, and CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX.
* * exceptions.cc (interruptible): Remove obsolete tests.Christopher Faylor2000-11-021-1/+5
| | | | | | (sigreturn): Construct pseudo-frame-pointer so that signal handler can figure out where to put return address when signals are coming in quickly. * path.cc (cwdstuff::get): Allow length 0 buffer length when buffer when NULL.
* * path.h (has_exec_chars): Standard function for checking for executable magicChristopher Faylor2000-10-311-4/+5
| | | | | | numbers. * path.cc (symlink_info::check): Use the above function. * fhandler.cc (fhandler_disk_file::open): Ditto.
* * path.cc (_readlink): Return ENOENT when file does not exist.Christopher Faylor2000-10-311-0/+6
|
* * fork.cc (fork): Set sigframe here, since it can pause for a considerableChristopher Faylor2000-10-231-0/+19
| | | | | | | amount of time. * environ.cc (_addenv): Add debugging. * fhandler.cc: Eliminate unneeded include. * smallprint.c: Ditto.
* * Makefile.in: add miscfuncs.ccDJ Delorie2000-10-191-99/+7
| | | | | | | | | | * miscfuncs.cc: new, miscellaneous functions * winsup.h: define table-driven tolower/toupper * environ.cc: use them * fhandler_console.cc: ditto * fhandler_termios: ditto * path.cc: ditto (strncasematch, strcasematch, strcasestr): move to miscfuncs.cc
* * dcrt0.cc (dll_crt0_1): init cygcwd before forkee branchDJ Delorie2000-10-191-1/+24
| | | | | | | | | | * environ.cc (conv_start_chars): Cache a table of "first characters" for environment variables needing conversion. (getwinenv): Use it. (environ_init): Create it, also check first chars for TERM and CYGWIN. * path.cc: Use lookup table for case insensitive comparisons.