(transform_chars): New function, copied from Cygwin.
(simple_nt_stat): New function to check file existance using native
NT function. Explain why.
(directory_exists): Call simple_nt_stat.
(file_exists): Ditto.
* include/winnt.h (HEAP_MAKE_TAG_FLAGS, VALID_INHERIT_FLAGS): Correct
definition.
* include/rpcndr.h (NdrUnMarshConfStringHdr, NdrUnMarshCCtxtHdl,
NdrMarshSCtxtHdl): Ditto.
* include/basetyps.h (REFGUID, REFIID, REFCLSID, REFFMTID): Remove macro
definition in favour of typedef definition.
Thank you to Yuta Tomino for reporting the issues.
* textbinary.sgml (textbin-devel): Document temp file behavior.
(textbin-issue): Use sed rather than cat as an example of a
default-mode application.
* new-features.sgml (ov-new1.7.6): Document mkostemp[s].
an interrupt.
(setup_handler): Remove unneeded DEBUGGING handling. Ensure that stack is
locked when we are about to do push/pop to it. Fix debugging output.
* include/gdiplus.h: New file.
* include/gdiplus/gdiplus.h: New file.
* include/gdiplus/gdiplusbase.h: New file.
* include/gdiplus/gdiplusbrush.h: New file.
* include/gdiplus/gdipluscolor.h: New file.
* include/gdiplus/gdipluscolormatrix.h: New file.
* include/gdiplus/gdipluseffects.h: New file.
* include/gdiplus/gdiplusenums.h: New file.
* include/gdiplus/gdiplusflat.h: New file.
* include/gdiplus/gdiplusgpstubs.h: New file.
* include/gdiplus/gdiplusgraphics.h: New file.
* include/gdiplus/gdiplusheaders.h: New file.
* include/gdiplus/gdiplusimageattributes.h: New file.
* include/gdiplus/gdiplusimagecodec.h: New file.
* include/gdiplus/gdiplusimaging.h: New file.
* include/gdiplus/gdiplusimpl.h: New file.
* include/gdiplus/gdiplusinit.h: New file.
* include/gdiplus/gdipluslinecaps.h: New file.
* include/gdiplus/gdiplusmatrix.h: New file.
* include/gdiplus/gdiplusmem.h: New file.
* include/gdiplus/gdiplusmetafile.h: New file.
* include/gdiplus/gdiplusmetaheader.h: New file.
* include/gdiplus/gdipluspath.h: New file.
* include/gdiplus/gdipluspen.h: New file.
* include/gdiplus/gdipluspixelformats.h: New file.
* include/gdiplus/gdiplusstringformat.h: New file.
* include/gdiplus/gdiplustypes.h: New file.
* lib/gdiplus.c: New file containing GDI+ variable definitions
and GUIDs.
* lib/gdiplus.def: New file.
* lib/Makefile.in: Add gdiplus.o to EXTRA_OBJS,
add gdiplus.c to SOURCES.
* lib/test.c: Include gdiplus.h.
* Makefile.in (NEW_FUNCTIONS): Remove seekdir and telldir mappings.
* dir.cc (telldir): Move functionality from telldir64 here. Use
long, rather than _off_t.
(telldir64): Just call telldir. Only keep for backward compatibility.
(seekdir): Move functionality from seekdir64 here. Use long, rather
than _off_t.
(seekdir64): Just call seekdir. Only keep for backward compatibility.
* fhandler.h: Throughout, change prototypes of seekdir and telldir
methods to use long, rather than _off64_t.
* fhandler_disk_file.cc: Change aforementioned methods accordingly.
* fhandler_netdrive.cc: Ditto.
* fhandler_registry.cc: Ditto.
* fhandler_virtual.cc: Ditto.
* include/sys/dirent.h (struct __DIR): Change __d_position from
_off_t to long to reflect API change.
(telldir): Change prototype to use long, rather than off_t.
(seekdir): Ditto.
(head): Move earlier.
(saw_file): Ditto.
(print_dlls): Reset head here. Record seen dll names so they will not
potentially be printed later.
(process_file): Remove clearing of head here.
know that we have filled out the filesystem information.
* path.h (path_conv::path_conv): Use consistent initialization for
constructors.
* include/sys/cygwin.h: Define CW_STRERROR.
* include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 228.
* include/external.h: Implement CW_STRERROR.
progname.
* fork.cc (frok::parent): Fix typos in debug output.
* spawn.cc (spawn_guts): Copy wide Win32 filename into _pinfo::progname,
rather than native NT name.
Force the dblatex backend, as the default passivetex does not work.
* README: Replace docbook-utils dependency with dblatex.
Update required docbook-xml version.
* faq-programming.xml: Ditto.
* flock.cc: Include tmpbuf.h for new tmpbuf functionality.
(allow_others_to_sync): Use tmpbuf rather than tmp_pathbuf. Explain why.
(lf_setlock): For consistency, use tmpbuf rather than tmp_pathbuf.
(lf_getlock): Ditto.
returned by get_stat_handle.
(fhandler_base::fstat_helper): Reinstatiate code to re-open the file
when checking for executability if called via fstat. Explain why.
fhandler.
* fhandler.cc (fhandler_base::fstatvfs): Keep handle in created
path_conv.
* fhandler.h (fhandler_base::get_stat_access): New method.
(fhandler_base::get_stat_handle): New method.
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use handle
returned by get_stat_handle. Only request inode from system if it
isn't already set in the fhandler, and only for filesystems supporting
them.
(fhandler_base::fstat_fs): Use handle returned by get_stat_handle.
Change the way open_fs is called. Explain why.
(fhandler_base::fstat_helper): Use handle returned by get_stat_handle.
Never use 0 inode number. Simplify executable recognition by re-using
get_stat_handle if file could be opened with sufficient rights.
(fhandler_disk_file::fstatvfs): Use handle returned by get_stat_handle.
(fhandler_disk_file::facl): Use handle returned by get_stat_handle in
GETACL and GETACLCNT cases.
(fhandler_disk_file::link): Use handle returned by get_stat_handle
instead of opening file here again. Add comment.
(readdir_get_ino): Keep handle in created path_conv and drop
opening file.
* ntdll.h (wait_pending): New helper function.
* path.cc (symlink_info::check): Drop unused 'opt' parameter from
declaration. Add path_conv_handle argument.
(path_conv::check): Make sure conv_handle is closed. Keep
PC_KEEP_HANDLE flag in pflags_or. Accommodate call to sym.check to
new args.
(path_conv::~path_conv): Close conv_handle.
(symlink_info::check_shortcut): Don't re-open file here, just use
incoming handle. Drop goto's and label out.
(symlink_info::check_sysfile): Don't re-open file here, just use
incoming handle. Keep track of file position to accommodate the fact
that file has been opened asynchronously in calling function.
(symlink_info::check_nfs_symlink): Don't re-open file here, just use
incoming handle.
(symlink_info::check): Drop unused 'opt' parameter. Add
path_conv_handle argument. Always try to open file with GENERIC_READ
rights first to allow reading file content w/o having to re-open the
file. Drop back to READ_CONTROL | FILE_READ_ATTRIBUTES otherwise.
Call symlink test functions (except for check_reparse_point) only if
file could be opened with GENERIC_READ. Keep file handle open if
PC_KEEP_HANDLE is set in pflags.
* path.h (enum pathconv_arg): Add PC_KEEP_HANDLE flag.
(class path_conv_handle): New class.
(class path_conv): Add conv_handle member.
(path_conv::operator =): Duplicate conv_handle.
(path_conv::handle): New method.
(path_conv::access): New method.
(path_conv::reset_conv_handle): New method.
(path_conv::close_conv_handle): New method.
local UNICODE_STRING object.
(symlink_info::check_sysfile): Ditto. Return immediately if NtOpenFile
failed to avoid closing random handle. Improve debug output in case
NtReadFile failed.
in udf check. Remove overagressive bracketing. Don't set h to NULL
without closing the handle. Fix using wrong handle in checking
file system when using parent directory handle.
(STATUS_BAD_NETWORK_NAME): Define.
* path.cc (symlink_info::check): Convert STATUS_BAD_NETWORK_PATH and
STATUS_BAD_NETWORK_NAME into an immediate ENOENT.
suffix.
* nlsfuncs.cc (rebase_locale_buf): Reorder arguments. Accommodate
throughout. Add pointer to end of buffer and avoid changing pointers
not pointing into the buffer.