summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* setvbuf: Drop setting reent->__cleanupCorinna Vinschen2016-03-131-1/+0
| | | | | | | | The __sinit call added with 1eb6db6 already sets reent->__cleanup. * libc/stdio/setvbuf.c (setvbuf): Drop setting reent->__cleanup. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Update Cygwin release message text with latest bugfixes.Corinna Vinschen2016-03-131-1/+12
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Update setvbuf to latest OpenBSD implementationCorinna Vinschen2016-03-121-42/+75
| | | | | | | | | | | | | | | | | | Newlib's setvbuf function is very old and has two bugs: - It sets the SRD/SWR flags incorrectly in case of files opened for reading and writing. See https://cygwin.com/ml/cygwin/2016-03/msg00180.html for a desription of the effect. - It always sets the buffer size to BUFSIZ if it's not provided by the application, independent of the optimal blocksize for the underlying IO device. Update setvbuf to latest code from OpenBSD to fix both problems. * libc/stdio/setvbuf.c (setvbuf): Import latest OpenBSD implementation. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add __swhatbuf function from OpenBSDCorinna Vinschen2016-03-122-49/+60
| | | | | | | | | | | To fix a long-standing setvbuf bug, import __swhatbuf function from OpenBSD and only slightly rearrange for newlib. * libc/stdio/local.h (__swhatbuf_r): Declare. * libc/stdio/makebuf (__smakebuf_r): New function. (__smakebuf_r): Drop file handling code and call __smakebuf_r. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use __sputc_r inline code when building with gccCorinna Vinschen2016-03-121-3/+5
| | | | | | | | | | | | Per the preceeding comment this inline code is disabled since 1993(!) because of a bug in GCC at the time. This is long gone and the equivalent inline code is used in the BSDs for quite some time. Enable this code for newlib as well. * libc/include/stdio.h (__sputc_r): Enable GCC inline code. Add handling for targets defining __SCLE. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix typo which might break permission evaluationCorinna Vinschen2016-03-121-1/+1
| | | | | | | * sec_acl.cc (get_posix_access): Fix a typo checking for a_id rather than a_type. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix reading/writing Samba ACLs using RFC2307 mappingCorinna Vinschen2016-03-123-18/+82
| | | | | | | | | | | | | | | | | | | | When using RFC2307 uid/gid-mapping on Samba shares, the POSIX ACL contains the Windows SIDs. When writing back such an ACL we have to map the Windows SIDs back to the corresponding Samba SIDs representing the UNIX uid/gid value. When reading Samba SIDs, make sure never to evaluate a UNIX user account as group. * sec_acl.cc (set_posix_access): Convert Windows SIDs to RFC2307-mapped Sambe UNIX SIDs. * sec_helper.cc (cygpsid::get_id): Skip UNIX user accounts when trying to evaluate a SID as group. Skip UNIX group accounts when trying to evaluate a SID as user. * cygheap.h (cygheap_ugid_cache::reverse_get): New method to get nfs id from cygwin id. (cygheap_ugid_cache::reverse_get_uid): Wrapper for uids. (cygheap_ugid_cache::reverse_get_gid): Wrapper for gids. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add cygsid methods to create SIDs from scratchCorinna Vinschen2016-03-123-23/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | So far creating cygsids requires to generate an "S-1-..." string which is then converted to a SID by cygsid::getfromstr. Add two new methods: - cygsid::create (DWORD auth, DWORD subauth_count, ...) ... is a variable length list of subauth_count DWORD values being the actual subauths. - cygsid::append (DWORD rid) allows to append a single RID to an alreaday constituted SID. * security.h (cygsid::create): Declare public. (cygsid::append): Ditto. * sec_helper.cc (cygsid::create): Implement. (cygsid::append): Implement. * uinfo.cc (pwdgrp::fetch_account_from_windows): Use both new methods as appropriate. Drop setting csid from string. Create SID strings for printing SIDs only. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* gmon.h: Fix type of gmonparam state memberCorinna Vinschen2016-03-111-1/+4
| | | | | | | | gmonparam::state is used in calls to Win32 Interlocked functions. Having this defined as int breaks the build on i686. Redefine as LONG (same size and correct type on all platforms) to make gcc happy. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Spinlock spin with pause instructionVáclav Haisman2016-03-111-1/+19
| | | | | | | | | | | | Hi. I have noticed that Cygwin's spinlock goes into heavy sleeping code for each spin. It seems it would be a good idea to actually try to spin a bit first. There is this 'pause' instruction which let's the CPU make such busy loops be less busy. Here is a patch to do this. -- VH
* Documentation covering profiling Cygwin programs.Mark Geisert2016-03-113-1/+259
|
* Add release message for commit 8b1ede3ce11d53292036aadfcfb6043df0235f9cCorinna Vinschen2016-03-101-0/+2
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add commit 5807ba83e release message to documentationCorinna Vinschen2016-03-101-1/+8
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add release message for commit 5807ba83e498d87b52675376a81d2edfe6de098dCorinna Vinschen2016-03-101-0/+5
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Support profiling of multi-threaded apps.Mark Geisert2016-03-107-73/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch set modifies Cygwin's profiling support to sample PC values of all an app's threads, not just the main thread. There is no change to how profiling is requested: just compile and link the app with "-pg" as usual. The profiling info is dumped into file gmon.out as always. A new facility enabled via the environment variable GMON_OUT_PREFIX. This facility is intended to match an undocumented Linux glibc feature. Exporting the variable with a non-empty value such as "foo" causes the profiling info to go to a file named foo.$pid instead of the default. With that, both resulting processes of a fork() can have their profiling data captured in separate files. gprof already knows how to accumulate data from multiple files if they all pertain to the same app. There is no change to the normal Cygwin execution paths if profiling is not enabled. And when it is enabled, only the one profiling thread per profiled app is doing more work than it used to. * include/sys/cygwin.h: Add CW_CYGHEAP_PROFTHR_ALL. * cygheap.cc (cygheap_profthr_all): New C-callable function that runs cygheap's threadlist handing each pthread's thread handle in turn to profthr_byhandle(). * external.cc (cygwin_internal): Add case CW_CYGHEAP_PROFTHR_ALL. * gmon.c (_mcleanup): Add support for multiple simultaneous gmon.out* files named via environment variable GMON_OUT_PREFIX. * gmon.h (struct gmonparam): Make state decl volatile. * mcount.c (_MCOUNT_DECL): Change stores into gmonparam.state to use Interlocked operations. Add #include "winsup.h", update commentary. * profil.c (profthr_byhandle): New function abstracting out the updating of profile counters based on a thread handle. (profthr_func): Update to call profthr_byhandle() to sample the main thread then call cygheap_profthr_all() indirectly through cygwin_internal(CW_CYGHEAP_PROFTHR_ALL) to sample all other threads. (profile_off): Zero targthr to indicate profiling was turned off. (profile_on): Fix handle leak on failure path. (profile_child): New callback func to restart profiling in child process after a fork if the parent was being profiled. (profile_ctl): Call pthread_atfork() to set profile_child callback. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* getifaddrs: Return pointer to extended interface info in ifa_data memberCorinna Vinschen2016-03-102-22/+36
| | | | | | | | | | | | | | | | According to https://cygwin.com/ml/cygwin/2016-03/msg00124.html it's a problem to collect friendlyname info using AF_INET6 sockets. Fix problem by exposing additional hardware info for all collected interfaces via the pointer in the ifaddrs::ifa_data member. * include/ifaddrs.h (struct ifaddrs_hwdata): Define as struct of not yet exposed members of struct ifall, defined in net.cc. * net.cc (struct ifall): Replace hardware dta members with struct ifaddrs_hwdata. Accommodate throughout. (get_ifs): Let ifaddrs ifa_data member point to ifall::ifa_hwdata member. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove bogus LONG(0) directives from MSP430 linker scripts.Nick Clifton2016-03-102-2/+0
|
* Revamp acl_extended_fd/acl_extended_file to avoid open(2) callCorinna Vinschen2016-03-101-14/+44
| | | | | | | | | | | | | | | | | | Calling open from acl_extended_file{_nofollow} indiscriminately may hang if the file is a FIFO. Ultimately the FIFO implementation needs a thorough rewrite, but for the time being we better do what stat(2) and friends do: Just create an fhandler directly. * sec_posixacl.cc (__acl_extended_fh): New static function calling fhandler::facl. (acl_extended_fd): Just call __acl_extended_fh. (__acl_extended_file): Take just a path_conv as parameter and create temporary fhandler to call __acl_extended_fh. (acl_extended_file): Create path_conv from incoming path and call __acl_extended_file on it. (acl_extended_file_nofollow): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Overwite potentially faked kernel version with correct valuesCorinna Vinschen2016-03-092-0/+6
| | | | | | | | | | | | | | | | | | | | | | * ntdll.h (RtlGetNtVersionNumbers): Declare. * wincap.cc (wincapc::init): Overwrite kernel version info returned by RtlGetVersion with correct info returnd by RtlGetNtVersionNumbers. Add comment. Originally, using RtlGetVersion instead of GetVersionEx was supposed to fix the fact that GetVersionInfo returns the wrong kernel version if the executable has been built with an old manifest (or none at all), starting with Windows 8.1. Either this never really worked as desired and our testing was flawed, or this has been changed again with Windows 10, so that RtlGetVersion does the kernel faking twist as well. Since we're only reading the value in the first process in a process tree. the entire process tree is running with a wrong OS version information in that case. Fortunately, the (undocumented) RtlGetNtVersionNumbers function is not affected by this nonsense, so we simply override the OS version info fields with the correct values now. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Move definition of wsadata into wsock_initCorinna Vinschen2016-03-091-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem this patch fixes showed up after updating to gcc-5.3.0. The cuplrit is a change in gcc when emitting section attributes. It only shows up when building without optimization. Effect in Cygwin: ws2_32 functions failed to load. In the original code the definition of "NO_COPY wsadata" was preceeding an __asm__ block (the definition of the _wsock_init wrapper), while the definition of "NO_COPY here" immediately follows the same assembler block. When gcc-5.3.0 emits assembler code for the wsadata definition, it emits the .data_cygwin_nocopy section attribute. Next it emits the assembler output for the __asm_ block, entirely ignoring its content. The __asm__ block adds a .text section definition. Eventually gcc emits assembler code for the here definition. However, apparently gcc still "knows" that it just emitted the .data_cygwin_nocopy section attribute and so doesn't redefine it. Remember the __asm__? It changed the section to .text. So with gcc-4.9.3 we got: .section .data_cygwin_nocopy,"w" wsadata: __asm__ block: .text .section .data_cygwin_nocopy,"w" here: With gcc 5.3.0 we now get: .section .data_cygwin_nocopy,"w" wsadata: __asm__ block: .text here: So "here" is now in the .text segment which is read-only. Hilarity ensues. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Cygwin: Document new POSIX ACL APICorinna Vinschen2016-03-082-0/+38
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* faq: Sort BLODA list and update advice on fixing fork failuresJon Turney2016-03-081-32/+56
| | | | | | | | | | * faq-using.xml (bloda): Alphabetically sort BLODA list for ease of finding things in it. (fixing-fork-failures): Update to suggest rebase-trigger rather than running rebaseall via dash yourself. Mention detect_bloda CYGWIN token. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* acl_create_entry: Don't invalidate existing entry_d and permset_d.Corinna Vinschen2016-03-081-16/+11
| | | | | | | | | * sec_posixacl .cc (__acl_dup): Remove. (acl_dup): Fold __acl_dup functionality into this function. (acl_create_entry): Don't create new acl_t. Just realloc acl->entry to make room for new aclent_t. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* __acltotext: Always append NULCorinna Vinschen2016-03-081-1/+1
| | | | | | * sec_acl.cc (__acltotext): Append NUL unconditionally. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implement POSIX.1e ACL functionsCorinna Vinschen2016-03-0818-276/+1825
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (DLL_OFILES): Add sec_posixacl.o. (SUBLIBS): Add libacl.a (libacl.a): New rule to create libacl.a. * common.din: Export POSIX ACL functions as well as most libacl.a extensions. * fhandler.h (fhander_base::acl_get): New prototype. (fhander_base::acl_set): Ditto. (fhandler_disk_file::acl_get): Ditto. (fhandler_disk_file::acl_set): Ditto. * include/acl/libacl.h: New file. * include/cygwin/version.h: Bump API minor version. * include/sys/acl.h: Drop including cygwin/acl.h. Accommodate throughout Cygwin. Add POSIX ACL definitions. * sec_acl.cc: Include sec_posixacl.h. Replace ILLEGAL_UID and ILLEGAL_GID with ACL_UNDEFINED_ID where sensible. (__aclcheck): New internal acl check function to be used for Solaris and POSIX ACLs. (aclcheck32): Call __aclcheck. (__aclcalcmask): New function to compute ACL_MASK value. (__aclsort): New internal acl sort function to be used for Solaris and POSIX ACLs. (aclsort32): Call __aclsort. (permtostr): Work directly on provided buffer. (__acltotext): New internal acltotext function to be used for Solaris and POSIX ACLs. (acltotext32): Call __acltotext. (__aclfromtext): New internal aclfromtext function to be used for Solaris and POSIX ACLs. (aclfromtext32): Call __aclfromtext. * sec_posixacl.cc: New file implemeting POSIX ACL functions. * sec_posixacl.h: New internal header. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin/acl.h: Don't clutter namespaceCorinna Vinschen2016-03-081-32/+38
| | | | | | | include/cygwin/acl.h: Change comments to /**/ style. Reformat declarations. Use underscores in argument names. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Mention 64-bit Cygwin as another remedy for fork() failures.Alexey Sokolov2016-03-041-1/+3
|
* ccwrap: fix build with non-english locale set (v2)Patrick Bendorf2016-02-291-5/+1
| | | | | | | | after some discussion on irc and the list i'm resubmitting a simpler version of the patch. setting the locale on cygwin to 'C.UTF-8' is not needed, so i'm always setting it to 'C' which is sufficient for the build process and the most simple fix.
* ccwrap: fix build with non-english locale setPatrick Bendorf2016-02-291-0/+5
| | | | | | | | | | | | | | short explanation: after setting up cygwin on my systems the default locale is set to "de_DE.UTF-8". this leads to ccwrap not picking up certain "-isystem" arguments, which in turn leads to "stddef.h: no such file or directory". this breaks the build process for systems having non english locale. ccwrap scans the output of the first compiler invocation (line 21) for some specific english output on and around line 43. i changed the patch to check uname -o for cygwin string and set the locale to either C or C.UTF-8
* Enable HW interrupt setup on x86/x86_64 systems by defaultnewlib-snapshot-20160226Corinna Vinschen2016-02-265-7/+5
| | | | | | | | | | | | | * configure.host: Define _I386MACH_DISABLE_HW_INTERRUPTS on rdos. Remove setting _I386MACH_ALLOW_HW_INTERRUPTS anywhere else. * libc/machine/i386/i386mach.h: Replace test for _I386MACH_ALLOW_HW_INTERRUPTS with test for !_I386MACH_DISABLE_HW_INTERRUPTS. * libc/machine/x86_64/x86_64mach.h: Ditto. * libc/sys/linux/machine/i386/i386mach.h: Ditto. * libm/machine/i386/i386mach.h: Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* newlib/configure.host: Turn off sti/cli for i386 setjmp for i386-rtems*Joel Sherrill2016-02-251-0/+2
|
* Fix _newlib_version.h logic to support building gcc with newlib.Jeff Johnston2016-02-254-4/+11
|
* cygwin: Export clog10, clog10fYaakov Selkowitz2016-02-224-1/+10
| | | | | | | | | | | | winsup/cygwin/ * common.din: Add clog10, clog10f. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. winsup/doc/ * new-features.xml (ov-new2.5): Mention clog10, clog10f. * posix.xml (std-gnu): Add clog10, clog10f. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* libm/complex: add clog10, clog10fYaakov Selkowitz2016-02-226-24/+105
| | | | | | | | | | | | | | newlib/ * libc/include/complex.h (clog10, clog10f): Declare. * libm/complex/Makefile.am (src): Add clog10.c. (fsrc): Add clog10f.c. (CHEWOUT_FILES): Add clog10.def. * libm/complex/Makefile.in: Regenerate. * libm/complex/clog10.c: New file. * libm/complex/clog10f.c: New file. * libm/complex/complex.tex: Add references to clog10 docs. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* pthread.h, sys/types.h Add missing pthread methodsJoel Sherrill2016-02-222-8/+24
| | | | | | | | | * pthread.h: Add prototypes for pthread_condattr_getclock(), pthread_condattr_setclock(), pthread_setschedpri(), pthread_getcpuclockid(), pthread_getconcurrency(), and pthread_setconcurrency(). Also cleaned up file header to remove CVS Id string. * sys/types.h: Add clock ID to pthread_condattr_t.
* Fix comments in sec_acl.ccCorinna Vinschen2016-02-221-7/+7
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* ssp: Fixes for 64-bitJon Turney2016-02-201-105/+119
| | | | | | | | | | | | | | | Fix various 32/64-bit portability issues in ssp, the single-step profiler, and also build it for 64-bit. This didn't turn out to actually be very useful for what I wanted to use it for, so it's only been lightly tested. It appears that on x86_64, single-step exceptions occur for much more of the code in system DLLs, unlike x86, so ssp may take much, much longer to profile some programs. There is existing code to use breakpoints to mitigate this, but that is currently disabled. Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
* Update Cygwin release notes.Corinna Vinschen2016-02-182-0/+17
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin: accept SIGIOT as alias of SIGABRTYaakov Selkowitz2016-02-183-1/+4
| | | | | | | | | | | winsup/cygwin/ * include/cygwin/signal.h (SIGIOT): Define SIGIOT in terms of SIGABRT. * strsig.cc (struct sigdesc): Ditto. winsup/doc/ * utils.xml (kill): Document SIGIOT. Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
* sys/features.h: Update Cygwin POSIX option macrosCorinna Vinschen2016-02-181-34/+34
| | | | | | | | * libc/include/sys/features.h: Set POSIX option macros from 200112L to 200809L for Cygwin. (_POSIX_SPAWN): Set to 200809L for Cygwin. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Drop temporary declaration of GetSystemTimePreciseAsFileTime.Corinna Vinschen2016-02-181-3/+0
| | | | | | | * times.cc (GetSystemTimePreciseAsFileTime): Remove declaration and accompanying comment. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* setuid: Create token from scratch without credentials of callerCorinna Vinschen2016-02-183-35/+29
| | | | | | | | | | | | | | | | * sec_auth.cc (get_token_group_sidlist): Drop auth_luid and auth_pos parameter. Remove code adding a logon SID. (get_initgroups_sidlist): Drop auth_luid and auth_pos parameter. Drop in call to get_token_group_sidlist. Accommodate in callers. (get_setgroups_sidlist): Ditto. (create_token): Explicitely set auth_luid to ANONYMOUS_LOGON_LUID or LOCALSERVICE_LUID depending on OS. Explain why. Remove handling of logon SID since we don't generate one anymore. (lsaauth): Drop now unused local variable auth_luid and auth_pos. * wincap.h (wincaps::has_broken_whoami): New element. * wincap.cc: Implement above element throughout. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Also fix libm/machine generated files.Jeff Johnston2016-02-172-19/+12139
|
* Fix libm regenerated files again.Jeff Johnston2016-02-172-134/+2920
|
* Fix regeneration of libm autotool files.Jeff Johnston2016-02-172-7/+9337
|
* Define the newlib version macros in one place: _newlib_version.h.Pieter du Preez2016-02-1714-33640/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the newlib version information needs to be updated in two places: - newlib/acinclude.m4 - newlib/libc/include/sys/features.h The goal of this patch is to: - supply a single location for defining the newlib version information: newlib/acinclude.m4 - define __NEWLIB__, __NEWLIB_MINOR__ and __NEWLIB_PATCHLEVEL__ This is in line with what gcc does for its version macros. See: https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html This patch moves the definition of the _NEWLIB_VERSION, __NEWLIB__ and __NEWLIB_MINOR__ macros from newlib/libc/include/sys/features.h, to the newly generated newlib/_newlib_version.h file. Additionally, the __NEWLIB_PATCHLEVEL__ macro was created, for completeness. In order to stay backwards compatible, newlib/_newlib_version.h gets included by newlib/newlib.h and newlib/libc/include/sys/features.h. Note: This patch does _not_ include the modifications to the following files, as these should all be generated any way. *Makefile.in, *aclocal.m4, *configure stamp-* files Signed-off-by: Pieter du Preez <pdupreez@gmail.com>
* cyglsa: Drop code handling Windows 2000 and earlierCorinna Vinschen2016-02-171-35/+2
| | | | | | | | | | * cyglsa.c (must_create_logon_sid): Remove. (LsaApInitializePackage): Drop checking version and setting must_create_logon_sid accordingly. (LsaApLogonUserEx): Drop code setting login SID only required on Windows 2000 and earlier. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Silent relocation truncations considered harmfulMark Geisert2016-02-171-1/+1
| | | | | | | | | | | | This follows up from my msg re GMP-ECM failing its 'make check' on the main list https://cygwin.com/ml/cygwin/2016-02/msg00147.html . There's an error that ought to be reported during dynamic linking if the linked-to address is too far from the relocation site. However the error is not reported if __OPTIMIZE__ was #defined when building the Cygwin DLL. I can't see why optimization settings should affect this. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* cygwin_conv_path: Really always preserve trailing slash in conversion to ↵Corinna Vinschen2016-02-151-1/+1
| | | | | | | | | | POSIX path * mount.cc (mount_info::conv_to_posix_path): Account for scenarios where the path is identical to a mount point in terms of preserving the trailing slash in the output. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Make buffered console characters visible to select().John Hood2016-02-151-1/+1
|