aboutsummaryrefslogtreecommitdiffstats
path: root/nt/ChangeLog (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix compilation error on MinGW64 due to nt/inc/sys/time.h.Eli Zaretskii2013-06-011-0/+5
| | | | | nt/inc/sys/time.h [!_TIMEZONE_DEFINED]: Define _TIMEZONE_DEFINED to avoid multiple definition errors on MinGW64.
* Fix compile errors in nt/inc/sys/time.h when using nt/configure.bat.Eli Zaretskii2013-05-311-0/+8
| | | | | | | | nt/inc/sys/time.h (gettimeofday): Use '__restrict' instead of 'restrict', which is a C99 extension. See http://lists.gnu.org/archive/html/emacs-devel/2013-05/msg00588.html and the following discussion for the problem this caused in the old nt/configure.bat build.
* Remove *.res files in mostlyclean, to avoid problems with out-of-tree builds.Eli Zaretskii2013-05-291-0/+6
| | | | | | | | | | src/Makefile.in (mostlyclean): Remove *.res files. lib-src/Makefile.in (mostlyclean): Remove *.res files. nt/Makefile.in (emacs.res): Include srcdir when preprocessing resources, for out-of-tree builds. (mostlyclean): Remove *.res files.
* Support invocation of un-installed runemacs.exe.Eli Zaretskii2013-05-171-0/+5
|
* Define SIZE_MAX for MSVC, part of bug #14409.Eli Zaretskii2013-05-161-0/+2
| | | | nt/inc/stdint.h (SIZE_MAX) [!__GNUC__]: Define.
* Support building Emacs on MS-Windows using the Posix configury.Eli Zaretskii2013-05-161-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lib/Makefile.am: If building for MS-Windows, include nt/gnulib.mk instead of lib/gnulib.mk. configure.ac: Adapt to MSYS build on MS-Windows. Makefile.in (NTDIR): New variable, for the MSYS build on MS-Windows. (SUBDIR): Add $(NTDIR). (.PHONY): Add epaths-force-w32. (msys_to_w32): New variable. (epaths-force-w32, install-nt, uninstall-nt): New targets. (lib-src src): Add $(NTLIB) to prerequisites. (lib lib-src lisp leim nt): Add 'nt'. (config.status): Use $(CFG). (.PHONY): Add install-$(NTDIR) and uninstall-$(NTDIR). (install, install-arch-dep): Add install-$(NTDIR). (uninstall): Depend on uninstall-$(NTDIR). (mostlyclean, clean, distclean, bootstrap-clean): Add 'nt'. * GNUmakefile (CFG): New variable, uses mingw-cfg.site as CONFIG_SITE for the MSYS build on MS-Windows. (Makefile): Use $(CFG). .bzrignore: Ignore *.res, *.tmp, and *.map. Remove src/emacs.res. etc/NEWS: Advertise the MSYS build on MS-Windows. leim/Makefile.in (leim-list.el, check-declare): Use reveal-filename. lib-src/update-game-score.c [WINDOWSNT]: Include "ntlib.h". lib-src/ntlib.h (sleep): Update prototype. (geteuid): Add prototype. lib-src/ntlib.c (sleep): Now returns an unsigned value. (getgid): New function. lib-src/Makefile.in (CLIENTW, LIB_WSOCK32, LIBS_ECLIENT, NTLIB) (CLIENTRES, WINDRES, NTINC, NTDEPS): New variables. (INSTALLABLES): Add $(CLIENTW). (LIBS_MOVE): Use $(LIB_WSOCK32). ($(DESTDIR)${archlibdir}): Use $(EXEEXT) on update-game-score. (test-distrib${EXEEXT}): Use $(EXEEXT) on test-distrib. (etags${EXEEXT}, ebrowse${EXEEXT}, ctags${EXEEXT}) (profile${EXEEXT}, make-docfile${EXEEXT}, movemail${EXEEXT}) (emacsclient${EXEEXT}, hexl${EXEEXT}, update-game-score${EXEEXT}): Add $(NTLIB) to prerequisites. Use $(EXEEXT). (pop.o): Add pop.h to prerequisites. (emacsclientw${EXEEXT}, ntlib.o): New targets. (emacsclient.res): New target. lisp/subr.el (reveal-filename): New function. lisp/loadup.el: Compute Emacs executable versions on MS-Windows, where executables have the .exe extension. Add a hard link emacs-XX.YY.ZZ.exe on MS-Windows. lisp/Makefile.in (XARGS_LIMIT): New variable. (custom-deps, finder-data, autoloads) ($(MH_E_DIR)/mh-loaddefs.el, $(TRAMP_DIR)/tramp-loaddefs.el) ($(CAL_DIR)/cal-loaddefs.el, $(CAL_DIR)/diary-loaddefs.el) ($(CAL_DIR)/hol-loaddefs.el): Use reveal-filename. (compile-main): Limit xargs according to $(XARGS_LIMIT). nt/msysconfig.sh: New file. nt/mingw-cfg.site: New file. nt/makefile.w32-in (LOCAL_FLAGS): Add -DOLD_PATHS=1. nt/inc/unistd.h: Include pwd.h and sys/types.h. nt/inc/sys/time.h (_TIMEVAL_DEFINED, timerisset, timercmp) (timerclear): Define. (gettimeofday): Adjust signature to be Posix compatible, by using the 'restrict' keyword. nt/inc/sys/stat.h (UTIME_NOW, UTIME_OMIT): Define. (struct _stat, struct _stati64): Define. nt/inc/sys/socket.h (timeval): Define only for MSVC. (FD_SET, FD_CLR, FD_ISSET, fd_set): Redefine only if EMACS_CONFIG_H is defined. (timeval): Undefine only for MSVC. nt/inc/ms-w32.h (HAVE___BUILTIN_UNWIND_INIT, restrict) (HAVE_WINDOW_SYSTEM, HAVE_MENUS, EMACS_CONFIGURATION) (EMACS_CONFIG_OPTIONS, HAVE_LONG_LONG_INT) (HAVE_UNSIGNED_LONG_LONG_INT): Define only if not already defined. (fileno): Move definition after including stdio.h. (sigset_t): Guard typedef by _W64. nt/gnulib.mk: New file. nt/epaths.nt: New file. nt/addpm.c [!OLD_PATHS]: Include src/epaths.h, instead of having a copy of the file names there. <env_vars> [!OLD_PATHS]: Use macros from epaths.h instead of literal strings. nt/Makefile.in: New file. nt/INSTALL.MSYS: New file. nt/INSTALL: Mention INSTALL.MSYS. src/w32.c: Include epaths.h. (init_environment): Use cmdproxy.exe without leading directories. Support emacs.exe in src; point SHELL to cmdproxy in ../nt in that case. (gettimeofday): Adjust signature and return value to Posix expectations. src/unexw32.c (open_output_file): Delete the existing emacs.exe before creating it, to break the hard link to the versioned executable. src/Makefile.in (EMACS_MANIFEST, CM_OBJ, TEMACS_POST_LINK) (ADDSECTION, EMACS_HEAPSIZE, MINGW_TEMACS_POST_LINK) (FIRSTFILE_OBJ): New variables. (W32_RES): Rename to EMACSRES. All users changed. (base_obj): Use $(CM_OBJ). (ALLOBJS): Use $(FIRSTFILE_OBJ). (emacs$(EXEEXT)): Depend on $(ADDSECTION). (temacs$(EXEEXT)): Use $(TEMACS_POST_LINK), and move $(W32_RES_LINK) before $(LIBES). (emacs.res): Depend on $(EMACS_MANIFEST). Put emacs.rc in nt.
* Use just DOC instead of DOC-nn.mm.Stefan Monnier2013-05-151-0/+4
| | | | | | | | | | | | | | | | * lisp/loadup.el: Just use unversioned DOC. * Makefile.in (install-doc): DOC file is not version specific any more. * .bzrignore: Don't ignore DOC-* any more. * admin/quick-install-emacs: Don't prune DOC-* files a any more. * doc/lispref/loading.texi (Autoload): * doc/lispref/help.texi (Documentation Basics, Accessing Documentation) (Accessing Documentation, Accessing Documentation): DOC-* is now DOC. * etc/.gitignore: Don't ignore DOC-* any more. * lib-src/makefile.w32-in ($(DOC)): Use DOC rather than DOC-X. * msdos/sed1x.inp: Don't rewrite DOC any more. * nt/makefile.w32-in (clean, top-distclean): DOC-X doesn't exist any more. * src/Makefile.in (bootstrap-clean): DOC-* doesn't exist any more. * src/makefile.w32-in (DOC): Use just "DOC".
* nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2013-05-081-0/+14
|
* Use Gnulib ACL implementation, for benefit of Solaris etc.Paul Eggert2013-05-071-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Remove -with-acl option, since Gnulib does that for us now. (LIBACL_LIBS): Remove; no longer needed. * lib/Makefile.am (CLEANFILES, SUFFIXES): New (empty) macros, for the benefit of the new ACL implementation. * lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/acl-errno-valid.$(O). ($(BLD)/acl-errno-valid.$(O)): New rule. * lib/acl-errno-valid.c, lib/acl-internal.h, lib/acl.h: * lib/acl_entries.c, lib/errno.in.h, lib/file-has-acl.c: * lib/qcopy-acl.c, lib/qset-acl.c, m4/acl.m4, m4/errno_h.m4: New files, taken from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * admin/merge-gnulib (GNULIB_MODULES): Add qacl. (GNULIB_TOOL_FLAGS): Do not avoid errno. * etc/NEWS: Emacs is no longer limited to POSIX ACLs. --disable-acl, not --without-acl, since we're now using Gnulib's implementation. * nt/config.nt (HAVE_ACL_SET_FILE): Rename from HAVE_POSIX_ACL. * nt/inc/ms-w32.h (EOPNOTSUPP): New macro. * src/Makefile.in (LIB_ACL): New macro. (LIBACL_LIBS): Remove. (LIBES): Use LIB_ACL, not LIBACL_LIBS. * src/fileio.c: Include <acl.h>. Use HAVE_ACL_SET_FILE rather than HAVE_POSIX_ACL. (ACL_NOT_WELL_SUPPORTED): Remove. All uses replaced by !acl_errno_valid. (Fcopy_file) [!WINDOWSNT]: Use qcopy_acl instead of rolling it ourselves. Fixes: debbugs:14295
* Fix icon for the cygw32 build on 64-bit Cygwin. (Bug#12993)Ken Brown2013-04-081-0/+5
| | | | | | | * nt/emacs.rc: Use 64-bit manifest for 64-bit Cygwin build. * configure.ac (W32_RES_LINK): Remove unnecessary linker directive `-Wl,-bpe-i386', which is confusing in the 64-bit case.
* Minor fixes in the nt/ subdirectory.Eli Zaretskii2013-04-011-0/+9
| | | | | | | nt/README: A better documentation of ddeclient.exe. nt/README.W32: A better documentation of ddeclient.exe. nt/paths.h (PATH_EXEC): Add nt/oo-spd/i386 and nt/oo/i386 subdirectories.
* Move MS-Windows definition of TERM_HEADER from ms-w32.h to config.nt.Eli Zaretskii2013-03-301-0/+7
| | | | | | nt/inc/ms-w32.h (TERM_HEADER): Remove definition. nt/config.nt (TERM_HEADER): Move the definition to "w32term.h" from ms-w32.h.
* Enable the 'copysign' primitive on MS-Windows.Eli Zaretskii2013-03-301-0/+6
| | | | | nt/inc/ms-w32.h (copysign) [_MSC_VER]: Redirect to _copysign. nt/config.nt (HAVE_COPYSIGN): Define.
* nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2013-03-291-0/+6
| | | | | (HAVE_XKBGETKEYBOARD): Remove. (HAVE_XKB): New macro.
* Fix last commit in nt/makefile.w32-in, which broke bootstrap.Eli Zaretskii2013-03-271-0/+4
| | | | | | nt/makefile.w32-in (all-other-dirs-nmake, all-other-dirs-gmake) (bootstrap, bootstrap-nmake, bootstrap-gmake, install-addpm): Depend on .exe files.
* Avoid MinGW64 compiler warnings.Eli Zaretskii2013-03-271-0/+3
| | | | | nt/inc/ms-w32.h (sys_localtime) [_W64]: Provide a prototype, to avoid MinGW64 compiler warnings in editfns.c.
* Fix rules in nt/makefile.w32-in for parallel builds on MS-Windows.Eli Zaretskii2013-03-271-0/+7
| | | | | | | | nt/makefile.w32-in (ALL): Depend on *.exe files, not on phony names without the .exe suffix. (addpm, ddeclient, cmdproxy, addsection, preprep): Remove phony targets. (.PHONY): Remove.
* Fix compilation of addpm with MinGW64.Eli Zaretskii2013-03-271-0/+5
| | | | | nt/addpm.c (_WIN32_IE) [_W64]: Move after inclusion of standard headers, since that's where _W64 is declared by MinGW64.
* Fix _setjmp calls for MinGW64.Eli Zaretskii2013-03-261-3/+1
| | | | | nt/config.nt: Don't undefine HAVE__SETJMP here. nt/inc/ms-w32.h (HAVE__SETJMP) [_W64]: Undefine for MinGW64 here..
* Fix problem with _setjmp in MinGW64-compiled Emacs.Eli Zaretskii2013-03-261-0/+5
| | | | | | nt/inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS): Don't define. nt/config.nt (HAVE__SETJMP) [!_W64]: Don't define for MinGW64, as its _setjmp accepts 2 arguments.
* More MinGW64 related fixes.Eli Zaretskii2013-03-261-0/+6
| | | | | | | nt/addsection.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Do not define for MinGW64. nt/preprep.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Do not define for MinGW64.
* Fix more MinGW64 incompatibilities.Eli Zaretskii2013-03-261-0/+4
| | | | | | | | | | | | Reported by ׃scar Fuentes in http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00733.html nt/inc/ms-w32.h (_WIN32_WINNT) [!_W64]: Don't define for MinGW64. nt/inc/sys/stat.h (chmod): Remove _CRTIMP from prototype. src/w32.c (_PROCESS_MEMORY_COUNTERS_EX) [_WIN32_WINNT < 0x0500]: Define only for _WIN32_WINNT less than 0x0500.
* Fix more incompatibilities between MinGW.org and MinGW64 headersEli Zaretskii2013-03-261-0/+20
| | | | | | | | | | | | | | | | | | | | | | | Reported by ׃scar Fuentes in http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00699.html and in http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00707.html. nt/inc/ms-w32.h (USE_NO_MINGW_SETJMP_TWO_ARGS) [_W64]: Define to 1. For MinGW64, include sys/types.h and time.h. nt/inc/sys/time.h (struct timeval) [!_W64]: Guard definition with _W64. (struct timezone) [!_TIMEZONE_DEFINED]: Guard definition with _TIMEZONE_DEFINED. nt/addpm.c (_WIN32_IE) [_W64]: For MinGW64, don't define to 0x400. nt/inc/sys/stat.h: Remove _CRTIMP from prototypes of fstat, stat, lstat, and fstatat. lib-src/ntlib.c (struct timespec) [!_TIMEZONE_DEFINED]: Define the struct only if _TIMEZONE_DEFINED is not defined. src/w32term.c (WCRANGE, GLYPHSET): Don't define if _W64 is defined. src/w32.c (REPARSE_DATA_BUFFER): Guard with MAXIMUM_REPARSE_DATA_BUFFER_SIZE being defined.
* Fix incompatibilities between MinGW.org and MinGW64 headersEli Zaretskii2013-03-251-0/+15
| | | | | | | | | | | | | | | Problems were reported by ׃scar Fuentes in http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00611.html. nt/inc/ms-w32.h (struct timespec): Don't define if _TIMESPEC_DEFINED is already defined. (sigset_t) [!_POSIX]: Typedef for MinGW64. (_WIN32_WINNT, WIN32_LEAN_AND_MEAN): Move definitions before including the first system header, to avoid redefinition if some system header defines a default value. nt/inc/sys/time.h (struct itimerval): Don't define if _TIMESPEC_DEFINED is already defined.
* Fix problems with MSVC build reported in bug #13939.Eli Zaretskii2013-03-161-0/+7
| | | | | nt/inc/stdint.h (UINTPTR_MAX): Define. nt/nmake.defs (libc): Fix syntax of !if conditional.
* nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2013-03-151-0/+7
| | | | | | (BSD_SYSTEM, BSD_SYSTEM_AHB, HAVE_ALARM, HAVE__PUTENV): Remove. (HAVE_DECL_ALARM, HAVE_DECL_FDATASYNC, HAVE_DECL__PUTENV) (HAVE_FDATASYNC): New macros.
* File synchronization fixes.Paul Eggert2013-03-131-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | * admin/CPP-DEFINES (BSD_SYSTEM, HAVE_FSYNC): Remove. * admin/merge-gnulib (GNULIB_MODULES): Add fsync, fdatasync. * configure.ac (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed. (fsync): Remove check; now done by gnulib. * lib/fdatasync.c, lib/fsync.c, m4/fdatasync.m4, m4/fsync.m4: New files, from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * lib-src/Makefile.in (LIB_FDATASYNC): New macro. (emacsclient${EXEEXT}): Use it. * lib-src/emacsclient.c (main): Use fdatasync, not fsync, since we don't care about metadata. Keep trying if interrupted. * lib-src/movemail.c (main, popmail): Don't worry about BSD_SYSTEM, since fsync is available everywhere (or there is a substitute). Don't report an error if fsync returns EINVAL. * nt/inc/ms-w32.h (fdatasync): New macro, suggested by Eli Zaretskii. * src/Makefile.in (LIB_FDATASYNC): New macro. (LIBES): Use it. * src/conf_post.h (BSD_SYSTEM, BSD_SYSTEM_AHB): Remove; no longer needed. * src/fileio.c (Fwrite_region, write_region_inhibit_fsync): Don't worry about HAVE_FSYNC, since a substitute fsync is available if the system lacks one. (Fwrite_regin): Retry fsync if interrupted. Fixes: debbugs:13944
* FILE's lock is now always .#FILE and may be a regular file.Paul Eggert2013-03-051-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * etc/NEWS: Document this. * nt/inc/unistd.h (O_NOFOLLOW): New macro. * src/filelock.c: Include <c-ctype.h>. (MAX_LFINFO): New top-level constant. (lock_info_type): Remove members pid, boot_time. Add members at, dot, colon. Change user member to be the entire buffer, not a pointer. This allows us to handle the case where a foreign pid or boot time exceeds the local range. All uses changed. (LINKS_MIGHT_NOT_WORK): New constant. (FREE_LOCK_INFO): Remove, as the pieces no longer need freeing. (defined_WINDOWSNT): Remove. (MAKE_LOCK_NAME, file_in_lock_file_name): Always use .#FILE (not .#-FILE) for the file lock, even if it is a regular file. (rename_lock_file): New function. (create_lock_file): Use it. (create_lock_file, read_lock_data): Prefer a symbolic link for the lock file, falling back on a regular file if symlinks don't work. Do not try to create symlinks on MS-Windows, due to security hassles. Stick with POSIXish functions (open, read, write, close, fchmod, readlink, symlink, link, rename, unlink, mkstemp) when creating locks, as a GNUish host may be using a Windowsish file system, and cannot use MS-Windows-only system calls. Fall back on mktemp if mkstemp doesn't work. Don't fail merely because of a symlink-contents length limit in the current file system; fall back on regular files. Increase the symlink contents length limit to 8 KiB, this should be big enough for any real use and doesn't crunch the stack. (create_lock_file, lock_file_1, read_lock_data): Simplify allocation of lock file buffers now that they fit in 8 KiB. (lock_file_1): Return error number, not bool. All callers changed. (ELOOP): New macro, if not already defined. (read_lock_data): Return size of lock file contents, not Lisp object. All callers changed. Handle a race condition if some other process replaces a regular-file lock with a symlink lock or vice versa, while we're trying to read the lock. (current_lock_owner): Parse contents more carefully, to help avoid confusing a regular-file lock with some other application's use of the file. Check for lock file contents being too long, or not parsing correctly. (current_lock_owner, lock_file): Allow foreign pid and boot times that exceed the local range. (current_lock_owner, lock_if_free, lock_file): Simplify allocation of lock file contents. * src/w32.c (sys_rename_replace): New function, containing most of the contents of the old sys_rename. (sys_rename): Use it. (fchmod): New dummy function. * src/w32.h (sys_rename_replace, fchmod): New decls. Fixes: debbugs:13807
* nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2013-03-041-0/+6
| | | | | (DATA_START, ORDINARY_LINK): Remove. (HAVE_DATA_START, HAVE__PUTENV): New macros.
* Implement CLASH_DETECTION for MS-Windows.Eli Zaretskii2013-02-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/filelock.c [WINDOWSNT]: Include w32.h. (MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime function of that name. Up-case the macro arguments. (IS_LOCK_FILE): New macro. (fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK. (create_lock_file): New function, with body extracted from lock_file_1. [WINDOWSNT]: Implement lock files by writing a regular file with the lock information as its contents. (read_lock_data): New function, on Posix platforms just calls emacs_readlinkat. [WINDOWSNT]: Read the lock info from the file. (current_lock_owner): Call read_lock_data instead of calling emacs_readlinkat directly. (lock_file) [WINDOWSNT]: Run the file name through dostounix_filename. src/w32proc.c (sys_kill): Support the case of SIG = 0, in which case just check if the process by that PID exists. src/w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is also present, as doing so will fail to error out if the file already exists. src/makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h. nt/inc/ms-w32.h (BOOT_TIME_FILE): Define. nt/config.nt (CLASH_DETECTION): Define to 1. lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Reject files that match "\`\.#", to avoid compiling lock files, even if they are readable (as they are on MS-Windows). doc/emacs/files.texi (Interlocking): Don't refer to symlinks as the exclusive means of locking files. etc/NEWS: Mention support for lock files on MS-Windows.
* Remove functions and macros unused on MS-Windows.Eli Zaretskii2013-02-161-0/+1
| | | | | | src/w32.c (sys_chown): Remove unused function. nt/inc/ms-w32.h (chown, logb): Remove, unused.
* Don't use __STDC__ on MS-Windows unless necessary (Bug #9066).Eli Zaretskii2013-02-161-0/+5
| | | | | | nt/inc/ms-w32.h (__STDC__): Fiddle with value only for MSVC. src/w32term.c <input_signal_count>: Declare 'volatile' unconditionally.
* nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2013-02-131-0/+8
| | | | | | | (GC_MARK_STACK): Remove. (GNULIB_FDOPENDIR, HAVE_DECL_FDOPENDIR, HAVE_DECL_MEMRCHR) (HAVE_DIRENT_H, HAVE_FDOPENDIR, HAVE_FSTATAT, HAVE_MEMRCHR) (HAVE_WORKING_FSTATAT_ZERO_FLAG, _NETBSD_SOURCE): New macros.
* MS-Windows followup for 2013-02-11T23:37:18Z!eggert@cs.ucla.edu.Eli Zaretskii2013-02-121-0/+4
| | | | | | | lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/memrchr.$(O). ($(BLD)/memrchr.$(O)): New dependency. nt/inc/ms-w32.h: Add prototype for memrchr.
* Use fdopendir, fstatat and readlinkat, for efficiency.Paul Eggert2013-01-311-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On my host, this speeds up directory-files-and-attributes by a factor of 3, when applied to Emacs's src directory. These functions are standardized by POSIX and are common these days; fall back on a (slower) gnulib implementation if the host is too old to supply them. * .bzrignore: Add lib/dirent.h. * lib/Makefile.am (libgnu_a_SOURCES): Add openat-die.c, save-cwd.c. * lib/careadlinkat.c, lib/careadlinkat.h: Merge from gnulib, incorporating: 2013-01-29 careadlinkat: do not provide careadlinkatcwd. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * lib/dirent.in.h, lib/fdopendir.c, lib/fstatat.c, lib/openat-priv.h: * lib/openat-proc.c, lib/openat.h, m4/dirent_h.m4, m4/fdopendir.m4: * m4/fstatat.m4: New files, from gnulib. * lib/openat-die.c, lib/save-cwd.c, lib/save-cwd.h: New files. These last three are specific to Emacs and are not copied from gnulib. They are simpler than the gnulib versions and are tuned for Emacs. * admin/merge-gnulib (GNULIB_MODULES): Add fdopendir, fstatat, readlinkat. (GNULIB_TOOL_FLAGS): Do not avoid at-internal, openat-h. Avoid dup, open, opendir. * nt/inc/sys/stat.h (fstatat): * nt/inc/unistd.h (readlinkat): New decls. * src/conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove. * src/dired.c: Include <fcntl.h>. (open_directory): New function, which uses open and fdopendir rather than opendir. DOS_NT platforms still use opendir, though. (directory_files_internal, file_name_completion): Use it. (file_attributes): New function, with most of the old Ffile_attributes. (directory_files_internal, Ffile_attributes): Use it. (file_attributes, file_name_completion_stat): First arg is now fd, not dir name. All uses changed. Use fstatat rather than lstat + stat. (file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p. * src/fileio.c: Include <allocator.h>, <careadlinkat.h>. (emacs_readlinkat): New function, with much of the old Ffile_symlink_p, but with an fd argument for speed. It uses readlinkat rather than careadlinkatcwd, so that it need not assume the working directory. (Ffile_symlink_p): Use it. * src/filelock.c (current_lock_owner): Use emacs_readlinkat rather than emacs_readlink. * src/lisp.h (emacs_readlinkat): New decl. (READLINK_BUFSIZE, emacs_readlink): Remove. * src/sysdep.c: Do not include <allocator.h>, <careadlinkat.h>. (emacs_norealloc_allocator, emacs_readlink): Remove. This stuff is moved to fileio.c. * src/w32.c (fstatat, readlinkat): New functions. (careadlinkat): Don't check that fd == AT_FDCWD. (careadlinkatcwd): Remove; no longer needed. Fixes: debbugs:13539
* Make opendir on MS-Windows accept a 'const char *'.Eli Zaretskii2013-01-281-0/+4
| | | | | | src/w32.c (opendir): Now accepts a 'const char *'. nt/inc/dirent.h (opendir): Update prototype.
* MS-Windows followup to bugfix #13387.Eli Zaretskii2013-01-111-0/+5
| | | | | nt/inc/unistd.h (O_IGNORE_CTTY): Define, as it is unconditionally used in term.c.
* nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2013-01-091-0/+5
| | | | (HAVE_GTK_HANDLE_BOX_NEW, HAVE_GTK_TEAROFF_MENU_ITEM_NEW): New macros.
* Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.caPaul Eggert2013-01-021-1/+1
|\
| * Update copyright notices for 2013.Paul Eggert2013-01-011-1/+1
| |
| * Move fix for bug#12993 to trunkDaniel Colascione2012-12-101-6/+0
| |
* | Fix the MS-Windows build.Eli Zaretskii2012-12-241-0/+6
| | | | | | | | | | | | nt/inc/sys/stat.h (S_ISMPX): Define to zero, to accommodate changes in lib/filemode.c that broke the MS-Windows build. Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
* | nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2012-12-171-0/+5
| | | | | | | | (BSD4_2): Remove.
* | Support Posix ACL APIs on MS-Windows.Eli Zaretskii2012-12-171-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/w32.c: Include sddl.h and sys/acl.h. (SDDL_REVISION_1): Define if not already defined. (g_b_init_get_security_descriptor_dacl) (g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd) (g_b_init_is_valid_security_descriptor) (g_b_init_set_file_security): New static flags. (globals_of_w32): Initialize them to zero. (SetFileSecurity_Name): New string constant. (SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc) (ConvertStringSecurityDescriptorToSecurityDescriptor_Proc) (ConvertSecurityDescriptorToStringSecurityDescriptor_Proc) (IsValidSecurityDescriptor_Proc): New typedefs. (get_file_security, get_security_descriptor_owner) (get_security_descriptor_group): Set errno to ENOTSUP. (set_file_security, get_security_descriptor_dacl) (is_valid_security_descriptor, convert_sd_to_sddl) (convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text) (acl_free, acl_get_file, acl_set_file): New functions. src/fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs. nt/inc/sys/acl.h: New file. nt/inc/ms-w32.h (ENOTSUP): Define if undefined. nt/config.nt (HAVE_POSIX_ACL): Define. doc/lispref/files.texi (File Attributes, Changing Files): Update to include MS-Windows support for ACLs.
* | Commit nt/ChangeLog from the changeset of last commit.Eli Zaretskii2012-12-151-0/+4
| |
* | Speed up most calls to 'stat' and 'lstat' on MS-Windows.Eli Zaretskii2012-12-141-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | src/w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not try to get accurate owner and group information from NT file security APIs. This is to make most callers of 'stat' and 'lstat', which don't need that information, much faster. src/dired.c (Ffile_attributes) [WINDOWSNT]: Set w32_stat_get_owner_group to a non-zero value, to request accurate owner and group information from 'lstat'. nt/inc/sys/stat.h: Declare w32_stat_get_owner_group.
* | nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2012-12-131-0/+5
| | | | | | | | (HAVE_INOTIFY, HAVE_SYS_INOTIFY_H): New macros.
* | nt/config.nt: Sync with autogen/config.in.Juanma Barranquero2012-12-111-0/+6
| | | | | | | | | | (HAVE_DECL_UNSETENV, HAVE_SIG2STR, VOID_UNSETENV): New macros. (ULIMIT_BREAK_VALUE): Remove.
* | Move fix for cygw32 icon issue from emacs-24 branch to trunk as Stefan ↵Daniel Colascione2012-12-101-0/+6
|\ \ | |/ | | | | Monnier requests
| * Compile Windows resources into cygw32 EmacsDaniel Colascione2012-12-091-0/+6
| |