newlib/winsup/cygwin/include
Corinna Vinschen c1023ee353 Cygwin: path_conv: decouple path_types from mount types
- Remove another unfortunate amalgamation: Mount flags (MOUNT_xxx)
  are converted to path_types (PATH_xxx) and mixed with non-mount
  path_types flags in the same storage, leading to a tangled,
  pell-mell usage of mount flags and path flags in path_conv and
  symlink_info.

- There's also the case of PC_NONULLEMPTY.  It's used in exactly
  one place with a path_conv constructor only used in this single
  place, just to override the automatic PC_NULLEMPTY addition
  when calling the other path_conv constructors.  Crazily,
  PC_NONULLEMPTY is a define, no path_types flag, despite its
  name.

- It doesn't help that the binary flag exists as mount and path
  flag, while the text flag only exists as path flag.  This leads
  to mount code using path flags to set text/binary.  Very confusing
  is the fact that a text mount/path flag is not actually required;
  the mount code sets the text flag on non binary mounts anyway, so
  there are only two states.  However, to puzzle people a bit more,
  path_conv::binary wrongly implies there's a third, non-binary/non-text
  state.

Clean up this mess:

- Store path flags separately from mount flags in path_conv and
  symlink_info classes and change all checks and testing inline
  methods accordingly.

- Make PC_NONULLEMPTY a simple path_types flag and drop the
  redundant path_check constructor.

- Clean up the definition of pathconv_arg, path_types, and mount flags.
  Use _BIT expression, newly define in cygwin/bits.h.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2019-01-06 20:30:14 +01:00
..
acl
arpa
asm Cygwin: Define SO_PASSCRED and SCM_CREDENTIALS 2018-02-23 21:00:43 +01:00
attr ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
bits Cygwin: create separate bits/byteswap.h 2017-02-08 17:01:34 -06:00
cygwin Cygwin: path_conv: decouple path_types from mount types 2019-01-06 20:30:14 +01:00
machine Add elf.h to newlib 2017-08-02 01:18:55 -05:00
net
netinet Cygwin: bindresvport: Guard prototypes with __MISC_VISIBLE 2018-02-05 21:06:29 +01:00
ssp cygwin: add Object Size Checking to sys/socket.h 2017-11-30 04:06:48 -06:00
sys Cygwin: path_conv: decouple path_types from mount types 2019-01-06 20:30:14 +01:00
a.out.h cygwin: convert most #ifndef __x86_64__ to #ifdef __i386__ 2017-11-27 14:36:06 +01:00
aio.h POSIX Asynchronous I/O support: aio files 2018-07-25 09:36:22 +02:00
byteswap.h Cygwin: create separate bits/byteswap.h 2017-02-08 17:01:34 -06:00
dlfcn.h Implement dladdr() (partially) 2017-03-08 17:49:08 +00:00
endian.h Cygwin: create separate bits/byteswap.h 2017-02-08 17:01:34 -06:00
err.h
error.h
fcntl.h ansification: remove _PARAMS 2018-01-17 11:47:13 -06:00
features.h
fenv.h Keep the denormal-operand exception masked; modify FE_ALL_EXCEPT accordingly. 2018-08-15 18:02:22 +02:00
fnmatch.h
fts.h
ftw.h
getopt.h
glob.h
icmp.h
ifaddrs.h
io.h
lastlog.h
limits.h POSIX Asynchronous I/O support: other files 2018-07-25 09:36:24 +02:00
mapi.h
mntent.h
monetary.h Rename <sys/_locale.h> to <xlocale.h> 2017-03-22 10:03:45 +01:00
mqueue.h
netdb.h cygwin: fix gethostbyaddr argument types 2017-10-10 13:51:23 -05:00
nl_types.h Add __nl_item to <sys/_types.h> and use it 2018-08-24 15:00:01 +02:00
paths.h
poll.h
process.h
pthread.h Cygwin: define pthread_tryjoin_np/pthread_timedjoin_np _GNU_VISIBLE 2018-06-27 18:20:47 +02:00
pty.h ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
regex.h
resolv.h
search.h
semaphore.h
sysexits.h
syslog.h
termio.h
tzfile.h
ucontext.h
utmpx.h
wait.h