1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-29 07:58:28 +00:00
Commit Graph

1412 Commits

Author SHA1 Message Date
Paul Eggert
dd1404cca3 Rename ChangeLogs for gitlog-to-changelog
This patch was implemented via the following shell commands:
find * -name ChangeLog |
sed 's,.*,git mv & &.1,
s, lisp/ChangeLog\.1$, lisp/ChangeLog.17,
s, lisp/erc/ChangeLog\.1$, lisp/erc/ChangeLog.09,
s, lisp/gnus/ChangeLog\.1$, lisp/gnus/ChangeLog.3,
s, lisp/mh-e/ChangeLog\.1$, lisp/mh-e/ChangeLog.2,
s, src/ChangeLog\.1$, src/ChangeLog.13,' |
sh
git commit -am"[this commit message]"
2015-04-07 00:00:06 -07:00
Eli Zaretskii
5ba79b03f3 Fix the bug number of previous commit: should be bug #20159. 2015-03-27 12:47:04 +03:00
Eli Zaretskii
d133cf8394 Support non-blocking connect on MS-Windows (Bug#20207)
Based on ideas from Kim F. Storm <storm@cua.dk>, see
 http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg00873.html.

 src/w32proc.c (reader_thread): If the FILE_CONNECT flag is set, call
 '_sys_wait_connect'.  If it returns STATUS_CONNECT_FAILED, exit
 the thread with code 2.
 (sys_select): Support 'wfds' in addition to 'rfds'.  If a
 descriptor in 'wfds' has its bit set, but the corresponding
 fd_info member doesn't have its FILE_CONNECT flag set, ignore the
 descriptor.  Otherwise, acknowledge a successful non-blocking
 connect by resetting the FILE_CONNECT flag and setting cp->status
 to STATUS_READ_ACKNOWLEDGED.
 src/w32.h (STATUS_CONNECT_FAILED): New enumeration value.
 (struct _child_process): New member 'errcode'.
 (FILE_CONNECT): New flag.
 (_sys_wait_connect): Add prototype.
 src/w32.c (pfn_WSAEnumNetworkEvents): New function pointer.
 (init_winsock): Load WSAEnumNetworkEvents from winsock DLL.
 (set_errno): Map WSAEWOULDBLOCK and WSAENOTCONN.
 (sys_connect): Support non-blocking 'connect' calls by setting the
 FILE_CONNECT flag in the fd_info member and returning EINPROGRESS.
 (_sys_read_ahead): Add debug message if this function is called
 for a descriptor that waits for a non-blocking connect to complete.
 (_sys_wait_connect): New function.
 (sys_read): Support STATUS_CONNECT_FAILED.  Return the error code
 recorded by _sys_wait_connect when the non-blocking connect
 failed.  Don't call WSAGetLastError before a call to set_errno had
 a chance to use its value, since WSAGetLastError clears the last
 error.

 nt/inc/ms-w32.h (BROKEN_NON_BLOCKING_CONNECT): Don't define.
2015-03-27 12:44:31 +03:00
Eli Zaretskii
cd0ad72129 nt/ChangeLog: Fix typos. 2015-03-09 18:41:31 +02:00
Paul Eggert
0c1dd712f7 Fix ChangeLog typos 2015-03-08 18:54:18 -07:00
Paul Eggert
8e07ea1a05 Merge from origin/emacs-24
344c6ad Improve MS-Windows build instructions  (Bug#19989)
eb62887 lisp/dired.el (dired-delete-file): Doc fix.  (Bug#20021)

Conflicts:
	lisp/ChangeLog
	nt/ChangeLog
2015-03-08 18:48:35 -07:00
Eli Zaretskii
344c6adab9 Improve MS-Windows build instructions (Bug#19989)
nt/INSTALL: Add some more installation instructions for mingw-get
 users.
2015-03-07 15:12:57 +02:00
Paul Eggert
37ad855a38 Merge from origin/emacs-24
f160106 Avoid assertion violations in Rmail due to newline cache
1b0ebbd browse-url-firefox: update for firefox 36's removal of -remote
1817892 Avoid erratic behavior of menu-bar tooltips on w32  (Bug#19925)
0260932 Bump python.el version
b0adfc7 Spelling fixes
35f047c * src/fileio.c (Fmake_temp_name): Doc tweaks.
6f2971a * lisp/comint.el (comint-line-beginning-position): Revert searching
65d8ac7 Mention in admin/notes/repo how to mark commits not to be merged.
86fe750 # Remove NEWS temporary markup
4fa778b erc.el: Add old version header for package.el compatibilty
9366f05 Tramp: Disable paging with PAGER=cat

Conflicts:
	admin/notes/repo
	etc/NEWS
	lisp/ChangeLog
	lisp/erc/ChangeLog
	src/ChangeLog
2015-03-03 14:41:30 -08:00
Paul Eggert
e2ae1c5a40 Merge from origin/emacs-24
4b0b27d Fix invocation of commands whose file name includes extension
87fc99f Better support for the case of typing RET on the prompt in comint.
a7b1c2f Don't lose frame's background color when setting foreground
20c817d Fix handling of frame color parameters in TTY sessions
eca7da1 Complete the remaining documentation updates for 24.5

Conflicts:
	doc/lispref/ChangeLog
	etc/NEWS
	lisp/ChangeLog
	nt/ChangeLog
	src/ChangeLog
2015-03-03 14:37:43 -08:00
Mark Laws
805fe50708 Support daemon mode on MS-Windows (bug#19688)
src/emacs.c <w32_daemon_event> [WINDOWSNT]: New global var.
 (main) [WINDOWSNT]: Initialize it to NULL.  Create the event to
 signal clients we are ready for connections.
 (Fdaemon_initialized): Use DAEMON_RUNNING.
 [WINDOWSNT]: MS-Windows specific code to signal clients we are
 ready for connections.
 src/lisp.h (DAEMON_RUNNING): New macro, encapsulates Posix and
 MS-Windows conditions for running in daemon mode.
 src/minibuf.c (read_minibuf): Use DAEMON_RUNNING.
 src/keyboard.c (kbd_buffer_get_event): Use DAEMON_RUNNING.
 src/dispnew.c (init_display) [WINDOWSNT]: Initialize frames/terminal
 even in daemon mode.

 nt/inc/ms-w32.h (W32_DAEMON_EVENT): New macro.

 lib-src/emacsclient.c (decode_options) [WINDOWSNT]: Don't reject empty
 arguments for --alternate-editor.
 (print_help_and_exit) [WINDOWSNT]: Don't refrain from advertising
 empty arguments for --alternate-editor.
 (start_daemon_and_retry_set_socket) [WINDOWSNT]: MS-Windows
 specific code to start Emacs in daemon mode and wait for it to be
 ready for client connections.

 lisp/server.el (server-process-filter): Force GUI frames on
 MS-Windows in daemon mode, even if a TTY frame was requested.
 lisp/frameset.el (frameset-keep-original-display-p): Don't assume
 windows-nt cannot be in daemon mode.
 lisp/frame.el (window-system-for-display): Don't assume windows-nt
 cannot be in daemon mode.
2015-02-27 12:43:30 +02:00
Paul Eggert
b0adfc721f Spelling fixes 2015-02-21 12:34:46 -08:00
Noam Postavsky
680ee61d04 Backport fix for bug#18745 from master.
nt/cmdproxy.c (batch_file_p): New function.
 (spawn): If calling a quoted batch file pass NULL for progname.
2015-02-10 18:51:14 +02:00
Eli Zaretskii
4b0b27d001 Fix invocation of commands whose file name includes extension (Bug#19817)
nt/cmdproxy.c (get_next_token): Don't make backslashes disappear
 without a trace when they are not followed by a quote.
 (search_dir): Support searching programs whose file name already
 has an arbitrary extension.
 (main): When passing a command line to the shell, use cmd.exe
 rules for quoting command-line tail.
2015-02-10 18:26:23 +02:00
Nicolas Petton
4779a4bbcc Bump version to 24.4.90 2015-02-04 02:07:13 +01:00
Eli Zaretskii
5d244fec3e Support Make verbosity levels in w32 targets previously left out
nt/Makefile.in (AM_V_CC, am__v_CC_, am__v_CC_0, am__v_CC_1)
 (AM_V_CCLD, am__v_CCLD_, am__v_CCLD_0, am__v_CCLD_1, AM_V_RC)
 (am__v_RC_, am__v_RC_0, am__v_RC_1): New macros.
 (addpm${EXEEXT}, ddeclient${EXEEXT}, cmdproxy${EXEEXT})
 (runemacs${EXEEXT}): Use $(AM_V_CCLD).
 (emacs.res, ../src/emacs.res): Use $(AM_V_RC).

 lib-src/Makefile.in (AM_V_RC, am__v_RC_, am__v_RC_0, am__v_RC_1): New
 macros.
 (emacsclient.res): Use $(AM_V_RC).
2015-01-16 11:33:08 +02:00
Paul Eggert
52a4e87c63 Fix copyright years by hand
These are dates that admin/update-copyright did not update, or
updated incorrectly.  Also, back out the copyright-date change to
doc/misc/texinfo.tex, as upstream hasn't updated that date yet.
2015-01-01 14:27:34 -08:00
Paul Eggert
7e09ef09a4 Update copyright year to 2015
Run admin/update-copyright.
2015-01-01 14:26:41 -08:00
Paul Eggert
6ddd819467 Merge from origin/emacs-24
a5f90a3 * .gitattributes: New file.
5a9710f Make sure tool-bar changes are reflected on display.
93796ba * autogen.sh: Port better to non-GNU 'cp'.
9758516 Fix a typo in a comment in the previous commit.
aa472a3 Fix the pixel coordinates returned by pos-visible-in-window-p.  (Bug#19473)
d261229 * automated/tramp-tests.el (tramp--test-smb-or-windows-nt-p): New defun. (tramp-test30-special-characters): Use it. (tramp--test-check-files): Filter nil file names out.
9278f05 Omit trailing white space
1c93fd3 Sync with Tramp 2.2.11.
96ebe18 Sync with Tramp 2.2.11.
e792450 Sync with Tramp 2.2.11.
2d17e12 Fix ChangeLog entry.
6444482 Fix auto-revert-tail-mode for remote files
b5c9c13 Spelling fixes
c5504d1 src/w32proc.c (Fw32_get_codepage_charset): Doc fix.  (Bug#19458)

Conflicts:
	ChangeLog
	doc/misc/ChangeLog
	lisp/ChangeLog
	src/ChangeLog
	test/ChangeLog
2015-01-01 10:47:17 -08:00
Paul Eggert
a012c7bbca Fix copyright years by hand
These are dates that admin/update-copyright did not update,
or updated incorrectly.
2015-01-01 09:18:59 -08:00
Paul Eggert
732fd4c7e1 Update copyright year to 2015
Run admin/update-copyright.
2015-01-01 09:18:06 -08:00
Paul Eggert
b5c9c131ca Spelling fixes 2014-12-28 15:06:16 -08:00
Eli Zaretskii
d65526283d MS-Windows followup to stpcpy changes.
src/w32proc.c (sys_spawnve, get_lcid_callback): Use strcpy instead
 of strcat.
 src/w32menu.c (add_menu_item): Use stpcpy instead of strcat.
 src/w32.c (sys_readdir, stat_worker, symlink): Use strcpy instead of
 strcat.

 nt/gnulib.mk (stpcpy, string): Sync with the latest change in
 lib/gnulib.mk.
2014-12-26 11:52:24 +02:00
Eli Zaretskii
7c9eb96534 gnulib.mk (stddef.h): Sync with the latest change in lib/gnulib.mk. 2014-12-13 16:26:12 +02:00
Glenn Morris
aa1459ae2a Fix up merged ChangeLog entries (dates, duplication, etc) 2014-11-29 13:25:50 -08:00
Paul Eggert
0cce3623b1 Merge branch 'emacs-24'. 2014-11-28 23:07:16 -08:00
Ted Zlatanov
ba4502fe14 Merge branch 'emacs-24'
Conflicts:
	nt/addsection.c
	nt/inc/ms-w32.h
	src/w32.c
2014-11-26 21:31:11 -05:00
Paul Eggert
f24c8f98ec Fix white-space problems in ChangeLogs. 2014-11-24 17:16:27 -08:00
Glenn Morris
825351bcce Reduce nt and src Makefile duplication wrt emacs.res
* nt/Makefile.in (../src/emacs.res): New target.

* src/Makefile.in (emacs.res): Use ../nt rule, rather than duplicating it.
(ntsource, WINDRES, EMACS_MANIFEST): Remove, now unused.
2014-11-23 16:16:57 -08:00
Glenn Morris
8662e9d448 * nt/emacs.rc, nt/emacsclient.rc: Remove files.
Accidentally left out of previous commit.
Apparently "git mv" doesn't do what I thought it did...
2014-11-22 14:24:36 -08:00
Glenn Morris
84e2f13cd5 Further reduce number of versioned files storing Emacs version number.
* configure.ac (comma_version, comma_space_version) [mingw32]:
New output variables.
(nt/emacs.rc, nt/emacsclient.rc) [mingw32]: New output files.

* make-dist: Update nt/ for *.rc -> *.rc.in changes.

* nt/emacs.rc.in, nt/emacsclient.rc.in: Rename from nt/emacs.rc, emacsclient.rc.
Let configure generate the real files, and set the version numbers.

* lib-src/Makefile.in (emacsclient.res): Update deps for nt/emacsclient.rc
now being in the build directory, not the source directory.

* nt/Makefile.in (distclean): Delete *.rc.
(emacs.res): Update deps for nt/emacsclient.rc now being in the
build directory, not the source directory.

* admin/admin.el (set-version): No more need to update nt/*.rc.

* admin/authors.el (authors-renamed-files-alist): Add .rc.in files.
2014-11-22 14:07:48 -08:00
Glenn Morris
cc252fc141 Add some .ico dependencies to Makefile .res rules
* lib-src/Makefile.in (emacsclient.res): Add dependency on icons/emacs.ico.

* nt/Makefile.in (emacs.res): Add dependency on icons/hand.cur.
2014-11-22 13:32:34 -08:00
Glenn Morris
b59998eb5b Use automatic variables in nt/Makefile.in
* nt/Makefile.in (addpm${EXEEXT}, ddeclient${EXEEXT})
(cmdproxy${EXEEXT}, runemacs${EXEEXT}, emacs.res):
Use automatic variables.
2014-11-17 23:59:44 -08:00
Paul Eggert
342bc0e04b .gitignore cleanup.
* .gitignore: Merge contents of subsidiary files and organize the
result so as to avoid duplication.  Remove no-longer needed entries.
* admin/charsets/.gitignore, admin/unidata/.gitignore:
* doc/lispintro/.gitignore, etc/.gitignore, leim/.gitignore:
* leim/ja-dic/.gitignore, lib-src/.gitignore, lisp/.gitignore:
* lisp/calc/.gitignore, lisp/calendar/.gitignore:
* lisp/cedet/.gitignore, lisp/emulation/.gitignore:
* lisp/erc/.gitignore, lisp/eshell/.gitignore, lisp/gnus/.gitignore:
* lisp/international/.gitignore, lisp/language/.gitignore:
* lisp/leim/.gitignore, lisp/leim/quail/.gitignore:
* lisp/mail/.gitignore, lisp/mh-e/.gitignore, lisp/net/.gitignore:
* lisp/nxml/.gitignore, lisp/obsolete/.gitignore:
* lisp/play/.gitignore, lisp/progmodes/.gitignore:
* lisp/term/.gitignore, lisp/textmodes/.gitignore:
* lisp/url/.gitignore, nt/.gitignore, src/.gitignore:
Remove; no longer needed.
2014-11-17 17:58:28 -08:00
Oscar Fuentes
81e0cca7bb Define MINGW_W64 and use it instead of _W64
... for detecting MinGW-w64. _W64 is not specific of MinGW-w64, it is
defined for compatibility with MS VC++.

	* nt/inc/ms-w32.h: Define MINGW_W64.

	* admin/CPP-DEFINES: Mention MINGW_W64.

	* nt/addpm.c: Use it.

	* nt/addsection.c: Use it.

	* nt/preprep.c: Use it.

	* src/w32.c: Use MINGW_W64 instead of _W64

	* src/w32term.c: Likewise.
2014-11-17 23:10:00 +01:00
Eric S. Raymond
cac77f92e3 Backport changes in preparation for git migration from trunk.
admin: Changes in several documents.
 autogen.sh: Neutralize language specific to a repository type.

 doc/misc/efaq-w32.texi: Neutralized language specific to a repository type.

 doc/misc/gnus-coding.txt: Neutralized language specific to a repository type.

 lisp/Makefile.in: Change some production names so they're neutral
 about the repository type.
2014-10-31 11:03:23 +02:00
Dani Moncayo
f399929938 * README.W32 (Preliminaries): Don't assume that this file is at
the top level.
(Setting up Emacs): Minor rewording to be more accurate.

Backported from trunk.
2014-10-26 19:37:16 +01:00
Dani Moncayo
94004affda * README.W32 (Preliminaries): Don't assume that this file is at
the top level.
(Setting up Emacs): Minor rewording to be more accurate.
2014-10-26 18:47:32 +01:00
Eric S. Raymond
ed81dc6d90 Next binary distribution will not contain .bzrignore files.
Removing this now to unclitter the grwp listings when I hunt for
obsolete references to bzr.
2014-10-25 15:24:12 -04:00
Eric S. Raymond
64d9c3f6c3 Neutralize language specific to a repository type. 2014-10-25 15:01:09 -04:00
Noam Postavsky
a91ff4f4b1 Fix bug #18745 with invoking Windows batch files with embedded whitespace.
src/w32proc.c (create_child): If calling a quoted batch file,
 pass NULL for exe.

 nt/cmdproxy.c (batch_file_p): New function.
 (spawn): If calling a quoted batch file pass NULL for progname.

 test/automated/process-tests.el (process-test-quoted-batfile): New test.
2014-10-25 12:12:01 +03:00
Stefan Monnier
bdc9a8b5ac * configure.ac: Bump version to 24.4.51 to avoid ambiguity with the old
trunk's 24.4.50.
2014-10-22 09:10:41 -04:00
Eli Zaretskii
acb965c2ad Bump Emacs version to 24.4.50. 2014-10-21 18:36:23 +03:00
Glenn Morris
8a85c254de Merge from emacs-24; up to 2014-07-28T06:28:15Z!dmantipov@yandex.ru 2014-10-20 20:59:41 +01:00
Glenn Morris
83bad90efe Add 24.4 release ChangeLog entries 2014-10-20 20:21:15 +01:00
Glenn Morris
6743c1928e Bump version to 24.4
Regenerate ldefs-boot and AUTHORS
2014-10-16 21:56:41 -07:00
Glenn Morris
32ade3f01a Merge from emacs-24; up to 2014-07-22T06:37:31Z!yamaoka@jpl.org 2014-10-08 21:23:09 -07:00
Glenn Morris
01058f734a Doc tweaks
* doc/lispref/frames.texi (Multiple Terminals): Copyedits.

* lisp/frame.el (display-monitor-attributes-list): Doc tweaks.

* nt/README.W32, src/ChangeLog.10, src/w32term.c:
Standardize on "taskbar" rather than "task bar", since that is what
most references seem to use; e.g.
http://en.wikipedia.org/wiki/Taskbar
http://windows.microsoft.com/en-us/windows7/products/features/windows-taskbar
2014-10-08 20:47:30 -04:00
Glenn Morris
ef9bcf3b40 Bump version to 24.3.94; regenerate ldefs-boot and AUTHORS 2014-10-01 17:49:14 -07:00
Eli Zaretskii
2b3d968a02 Follow-up to renaming v24.5 to 25.1.
README: Bump version to 25.0.50.
 configure.ac (AC_INIT): Bump version to 25.0.50.

 nt/makefile.w32-in (VERSION): Bump version to 25.0.50.
 nt/emacsclient.rc: Bump version to 25.0.50.
 nt/emacs.rc: Bump version to 25.0.50.
 nt/config.nt (VERSION): Bump version to 25.0.50.

 msdos/sed2v2.inp: Bump version to 25.0.50.

 etc/refcards/ru-refcard.tex: Bump version to 25.0.50.
 etc/refcards/emacsver.tex: Bump version to 25.0.50.

 src/msdos.c (internal_terminal_init): Bump version to 25.

 doc/man/emacs.1: Bump version to 25.0.50.

 doc/emacs/emacsver.texi (EMACSVER): Bump to 20.0.50.
2014-09-29 22:49:44 +03:00
Eli Zaretskii
203fb3639a nt/gnulib.mk: Synchronize with lib/gnulib.mk. 2014-09-01 18:11:25 +03:00
Glenn Morris
93d56561c8 ChangeLog fixes 2014-08-26 13:55:07 -04:00
Glenn Morris
64a6f1f30e Bump version number to 24.3.93 2014-08-14 15:56:31 -04:00
Glenn Morris
f387f87052 Bump version to 24.3.92 2014-06-25 23:48:25 -07:00
Glenn Morris
8c39c6685e Makefile comments 2014-06-15 15:42:31 -07:00
Glenn Morris
b24ffa815c Explicitly set LDFLAGS in some sub-Makefiles
* lib-src/Makefile.in (LDFLAGS): Explicitly set via configure.

* nt/Makefile.in (LDFLAGS): Explicitly set via configure.
2014-06-15 10:45:38 -07:00
Eli Zaretskii
9fae211dbf Fix MS-Windows build broken by latest Makefile.in changes.
nt/Makefile.in (CPPFLAGS): Define.

 lib-src/Makefile.in (CPPFLAGS): Define.
2014-06-15 20:36:04 +03:00
Glenn Morris
0e6929ecab Parallelize clean rules using GNU make features
* Makefile.in: (submake_template): New definition.
(mostlyclean_dirs, clean_dirs, distclean_dirs, maintainer_clean_dirs):
New variables.
(mostlyclean, clean, distclean, bootstrap-clean, maintainer-clean)
(extraclean): Define using each subdirectory as a prequisite.

* lib/Makefile.am (bootstrap-clean):
* doc/emacs/Makefile.in (bootstrap-clean):
* doc/lispintro/Makefile.in (bootstrap-clean):
* doc/lispref/Makefile.in (bootstrap-clean):
* doc/misc/Makefile.in (bootstrap-clean):
* lib-src/Makefile.in (bootstrap-clean):
* lwlib/Makefile.in (bootstrap-clean):
* nextstep/Makefile.in (bootstrap-clean):
* nt/Makefile.in (bootstrap-clean):
* oldXMenu/Makefile.in (bootstrap-clean):
New rules, for symmetry/simplicity.

* lwlib/Makefile.in (mostlyclean, clean, distclean, maintainer-clean):
* oldXMenu/Makefile.in (mostlyclean, clean, distclean, maintainer-clean, tags):
Declare as PHONY.
2014-06-14 17:17:21 -07:00
Glenn Morris
36cf8493af Merge from emacs-24; up to 2014-06-01T23:37:59Z!eggert@cs.ucla.edu 2014-06-07 17:35:27 -07:00
Dmitry Antipov
ea633fff4c * configure.ac (POLL_FOR_INPUT): Define with HAVE_WINDOW_SYSTEM.
* nt/inc/ms-w32.h (POLL_FOR_INPUT): Likewise.
* src/keyboard.c, src/process.c: Do not define POLL_FOR_INPUT here
because it will be defined in generated config.h if needed.
2014-06-05 10:24:54 +04:00
Eli Zaretskii
a56ae34d22 nt/INSTALL: Instructions how to start Bash. 2014-06-04 19:44:04 +03:00
Eli Zaretskii
1bb596eece nt/ChangeLog: Fix last entry. 2014-05-29 22:19:18 +03:00
Eli Zaretskii
7479dd3e8a Remove nt/addsection.c and don't build addsection.exe.
configure.ac (ADDSECTION, TEMACS_POST_LINK): Don't compute,
 unused.

 nt/Makefile.in (DONT_INSTALL): Now empty.
 (addsection${EXEEXT}): Remove target.
 nt/addsection.c: File removed.

 src/Makefile.in (TEMACS_POST_LINK): Remove target.
 (emacs$(EXEEXT)): Remove $(ADDSECTION) from prerequisites.
 (temacs$(EXEEXT)): Remove $(TEMACS_POST_LINK) from the recipe.
2014-05-29 22:16:32 +03:00
Fabrice Popineau
587fd086a0 Use mmap(2) emulation for buffer text on MS-Windows.
src/Makefile.in (C_HEAP_SWITCH): Get the predefined heap size from
 configure.
 (ADDSECTION, MINGW_TEMACS_POST_LINK): Remove, no longer used.
 src/lisp.h (NONPOINTER_BITS): Modify the condition to define to zero
 for MinGW, since it no longer uses gmalloc.
 src/buffer.c: Do not define mmap allocations functions for Windows.
 Remove mmap_find which is unused. Remove mmap_set_vars which does
 nothing useful.
 [WINDOWSNT]: Include w32heap.h.
 (init_buffer): Always allocate new memory for buffers.
 src/emacs.c: Remove mmap_set_vars calls.
 src/image.c (free_image): Undef free for Windows because it is
 redirected to our private version.
 src/unexw32.c (COPY_PROC_CHUNK): Use %p format for 64bits
 compatibility.
 (copy_executable_and_dump_data): Remove dumping the heap section.
 (unexec): Restore using_dynamic_heap after dumping.
 src/w32heap.c (dumped_data_commit, malloc_after_dump)
 (malloc_before_dump, realloc_after_dump, realloc_before_dump)
 (free_after_dump, free_before_dump, mmap_alloc, mmap_realloc)
 (mmap_free): New functions.
 src/w32heap.h: Declare dumped_data and mmap_* function prototypes.

 nt/inc/ms-w32.h: Switch to the system heap allocation scheme
 instead of GNU malloc and ralloc.
 nt/inc/sys/mman.h: New file.
 nt/INSTALL: Update for the new build requirements.

 etc/NEWS: Mention build changes on MS-Windows.

 configure.ac (C_HEAP_SWITCH) define for different values of
 dumped heap size depending on 32/64bits arch on Windows.
 Don't check for pthreads.h on MinGW32/64, it gets in the way.
 Use mmap(2) for buffers and system malloc for MinGW32/64.
2014-05-27 20:31:17 +03:00
Paul Eggert
8208d2bf95 Assume C99 or later.
* lib/stdarg.in.h, lib/stdbool.in.h, m4/stdarg.m4, m4/stdbool.m4:
Remove.
* configure.ac (_AC_PROG_CC_C89): Define a dummy, to keep 'configure'
smaller.
(gl_PROG_CC_C99): Use this to get C99 or later.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* admin/merge-gnulib (GNULIB_MODULES): Remove stdarg, stdbool.
(GNULIB_TOOL_FLAGS): Avoid stdarg, stdbool.
* doc/lispref/internals.texi (C Dialect): Document this.
* etc/NEWS: Document this.
* nt/gnulib.mk: Remove stdarg and stdbool modules.
* src/bytecode.c (B__dummy__): Remove.
* src/conf_post.h (bool_bf) [!NS_IMPL_GNUSTEP]: Use bool.
(FLEXIBLE_ARRAY_MEMBER): Now always empty.
* src/dbusbind.c (XD_DEBUG_MESSAGE) [!DBUS_DEBUG]:
* src/regex.c (DEBUG_PRINT): Assume varargs macros.
* src/lisp.h (DEFUN_FUNCTION_INIT): Remove.  All uses now assume C99.

Fixes: debbugs:17487
2014-05-17 01:11:31 -07:00
Paul Eggert
c56327b55d Don't require pkg-config when building from repository.
* INSTALL: Prefer './configure FOO=BAR' to 'FOO=BAR ./configure'.
* INSTALL.REPO: pkg-config is no longer required to build from
the repository.
* autogen.sh: Don't check for pkg-config.
(progs): Remove pkg-config.
(pkg_config_min, AUTORECONF_ENV, env_space, ACLOCAL_PATH):
Remove.  All uses removed.
* m4/pkg.m4: New file, built by admin/merge-pkg-config.
* configure.ac: Remove unnecessary m4_pattern_forbid of ^PKG_ and
an AC_ARG_VAR of PKG_CONFIG_PATH.  pkg.m4 does that for us.
(EMACS_CHECK_MODULES): Remove workaround for old pkg-config bug,
as we use pkg.m4 from a newer pkg-config.
* admin/merge-pkg-config: New script.
* admin/notes/copyright: Update for m4/*.m4, in particular m4/pkg.m4.
* etc/NEWS: Prefer './configure FOO=BAR' to 'FOO=BAR ./configure'.
* etc/PROBLEMS (Build-time-problems): Remove pkg-config problem
that is no longer an issue.
* nt/INSTALL: Remove no-longer-needed notes about pkg-config.
2014-05-16 08:49:13 -07:00
Glenn Morris
5c06e5e758 Bump version to 24.3.91 2014-05-11 23:11:08 -07:00
Eli Zaretskii
fa8e9c09f3 nt/INSTALL: Minor rearrangement of text for clarity. 2014-05-08 19:22:35 +03:00
Eli Zaretskii
1e125ee226 nt/INSTALL: More details about creating the build environment. 2014-05-08 18:38:02 +03:00
Eli Zaretskii
9db5046c10 Update nt/INSTALL for the latest changes in configury.
nt/INSTALL: Update to the effect that pkg-config is now required
 for building from the repository.
2014-05-05 13:06:04 +03:00
Juanma Barranquero
09b911adf4 Merge from emacs-24; up to 2014-05-01T10:21:17Z!rgm@gnu.org 2014-04-30 21:54:52 +02:00
Eli Zaretskii
7ece6d4014 Fix bug #17334 with overrunning string bounds when PATH is broken.
nt/cmdproxy.c (make_absolute): Don't copy more characters from PATH
 than a single directory name can hold.
2014-04-26 10:06:33 +03:00
Paul Eggert
42e910349d Merge from emacs-24; up to 2014-04-22T20:19:17Z!eggert@cs.ucla.edu 2014-04-22 14:32:51 -07:00
Eli Zaretskii
e3188b2df1 Fix redefinition warning in MinGW64 build.
nt/inc/ms-w32.h (lseek): Define only if not already a macro.
 Suggested by Fabrice Popineau <fabrice.popineau@gmail.com>.
2014-04-21 09:37:21 +03:00
Glenn Morris
536aa46681 Merge from emacs-24; up to 2014-04-04T23:31:02Z!joaotavora@gmail.com 2014-04-10 23:43:20 -07:00
Glenn Morris
b6e870b336 Bump version to 24.3.90; regenerate AUTHORS 2014-04-10 22:53:02 -07:00
Ken Brown
0cccc183d7 Revert most of the recent change involving manifests on Cygwin. (Bug#17176)
* configure.ac (EMACS_MANIFEST): Revert last change (but leave
UPDATE_MANIFEST empty).
* nt/emacs.rc: Revert last change.
* src/Makefile.in (EMACS_MANIFEST): Revert last change.
2014-04-09 17:16:37 -04:00
Glenn Morris
6f287c898a ChangeLog fixes
Merged entries get today's date.
May as well combine consecutive separate entries by same author into one.
Backported entries should not appear twice.
2014-04-07 17:19:31 -04:00
Daniel Colascione
7e31acf6b8 Merge from emacs-24; up to 2014-04-01T20:18:12Z!eggert@cs.ucla.edu 2014-04-07 13:54:16 -07:00
Ken Brown
ebe8e0765c Don't use manifest on Cygwin. (Bug#17176)
* nt/emacs.rc: Don't use manifest on Cygwin.
* configure.ac (EMACS_MANIFEST, UPDATE_MANIFEST): Leave these
variables empty on Cygwin. 
* src/Makefile.in (EMACS_MANIFEST): Update comment.
2014-04-03 15:10:35 -04:00
Juanma Barranquero
09aba8153a Merge from emacs-24; up to 2014-03-28T01:39:30Z!rgm@gnu.org 2014-04-02 17:14:50 +02:00
Eli Zaretskii
34cad8271d nt/INSTALL: Minor fixes. 2014-03-30 21:55:19 +03:00
Eli Zaretskii
a502d89381 Bump trunk version to 24.4.50.
modified files:
   ChangeLog
   README
   configure.ac
   doc/emacs/emacsver.texi
   doc/man/emacs.1
   msdos/sed2v2.inp
   nt/config.nt
   nt/emacs.rc
   nt/emacsclient.rc
   nt/makefile.w32-in
2014-03-21 12:12:53 +02:00
Juanma Barranquero
35e951cd4b */ChangeLog: Trivial fixes. 2014-03-03 05:57:26 +01:00
Glenn Morris
d7265107d2 * nt/INSTALL: Prefix must be absolute. 2014-02-17 16:45:43 -08:00
Juanma Barranquero
f260162808 nt/Makefile.in: Follow up to previous change.
nt/Makefile.in (install): Create destination directory before copying
README.W32, and use ${datadir} to refer to the file.

Fixes: debbugs:16772
2014-02-17 20:04:51 +01:00
Juanma Barranquero
1bba94f235 nt/Makefile.in: Fix bug#16772.
* nt/Makefile.in (install): Create destination directory before
copying README.W32.
2014-02-17 20:01:14 +01:00
Juanma Barranquero
1a4c95f664 Copy README.W32 when installing Windows build (bug#14757).
* Makefile.in (install-nt): Also pass datadir.

* nt/Makefile.in (datarootdir, datadir, INSTALL_DATA): Declare.
(install): Copy README.W32 to $(datadir)/emacs/$(version).
(uninstall): Remove README.W32.
2014-02-13 04:19:57 +01:00
Eli Zaretskii
c8740fa21b Fix bug #14762 with insufficient and outdated w32 installation documentation.
nt/INSTALL: Update for Emacs 24.4.
 nt/README: Update for Emacs 24.4.
 nt/README.W32: Update and improve instructions.
2014-02-08 12:25:33 +02:00
Lars Ingebrigtsen
fdb510756f * README.W32: Say what GnuTLS and libxml2 does. 2014-02-07 22:36:11 -08:00
Eli Zaretskii
5197f0c2fe Fix file name handling on MS-Windows 9X.
src/w32.c (maybe_load_unicows_dll): New function.
 src/emacs.c (main) [WINDOWSNT]: Call maybe_load_unicows_dll early
 on, to make sure we can convert file names to and from UTF-8 on
 Windows 9X.  This fixes a failure to start up because Emacs cannot
 find term/w32-win.el.  Reported by oslsachem <oslsachem@gmail.com>.
 src/w32font.c [WINDOWSNT]: Include w32.h.
 (w32_load_unicows_or_gdi32): Call maybe_load_unicows_dll, instead
 of implementing the same stuff.
 Remove now unused g_b_init_is_windows_9x.
 src/w32.h (maybe_load_unicows_dll): Add prototype.

 nt/runemacs.c (ensure_unicows_dll): Don't tell in the message box
 that "emacs -nw" can do without UNICOWS.DLL on Windows 9X.  See
 w32.c:maybe_load_unicows_dll and its callers for the reason.
2014-01-18 13:46:22 +02:00
Glenn Morris
d967cd184c ChangeLog fixes 2014-01-16 00:34:43 -08:00
Paul Eggert
c91c771dbe Spelling fixes. 2014-01-15 22:24:06 -08:00
Glenn Morris
c6c863df8d ChangeLog fixes 2014-01-15 00:49:38 -08:00
Claudio Bley
f0b5cd897f Fix MS-Windows build with MinGW runtime 4.x.
nt/inc/sys/stat.h (_WSTAT_DEFINED): Define, to avoid compilation
 failures when wchar.h is included.
2014-01-11 16:48:51 +02:00
Fabrice Popineau
e05d3a05bf Fix minor build problems related to MinGW64.
configure.ac: Read $srcdir/nt/mingw-cfg.site when $MSYSTEM is
 "MINGW64" as well.

 nt/inc/ms-w32.h (pthread_sigmask): Undefine if defined, for MinGW64.

 src/unexw32.c (_start) [__MINGW64__]: Define to __start.
2014-01-11 15:36:06 +02:00
Glenn Morris
a12bf61ed4 ChangeLog fixes 2014-01-10 19:55:50 -08:00
Paul Eggert
06827ec842 Spelling fixes.
* mail/unrmail.el (unrmail-mbox-format): Choice is mboxo, not mboxro.
* woman.el (woman-mark-horizontal-position):
Rename from woman-mark-horizonal-position.  Use changed.
2014-01-09 23:10:37 -08:00
Eric S. Raymond
314668368c Clean up unnecessary references to Bazaar. Documentation changes only. 2014-01-08 19:10:07 -05:00
Eric S. Raymond
ac4c50ad33 Rename INSTALL.BZR to UNSTALL.REPOm and carry that through in other files. 2014-01-08 18:24:54 -05:00
Paul Eggert
6bc383b1a4 Fix copyright years by hand.
These are dates that admin/update-copyright did not update,
or updated incorrectly.
2014-01-01 00:31:29 -08:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Fabrice Popineau
bd717ca4f4 Minor fixes for MinGW64 build.
configure.ac (canonical, C_SWITCH_SYSTEM): Support a 64-bit
 MinGW64 build on MS-Windows.

 nt/inc/ms-w32.h (sys_kill): Fix prototype.

 src/w32term.c (w32_initialize): Use LCID and LOWORD.
 src/w32proc.c (create_child): Use pid_t for 5th argument.
 (IsValidLocale): Don't provide prototype for MinGW64.
 (Fw32_get_valid_keyboard_layouts, Fw32_get_keyboard_layout)
 (Fw32_set_keyboard_layout): Use HKL and HIWORD/LOWORD.
 src/w32heap.c (allocate_heap) [_WIN64]: Use "ull", not "i64", which
 MinGW64 doesn't support.
 src/lisp.h (EMACS_INT) [_WIN64]: Define for the MinGW64 build.
2013-12-31 18:01:34 +02:00
Eli Zaretskii
1b7259fce2 Fix bug #16299 with assertion violation in set-default-file-modes on Windows.
src/w32.c (sys_umask): New function.

 nt/inc/ms-w32.h (umask) [emacs]: Redirect to sys_umask.
2013-12-30 19:51:28 +02:00
Eli Zaretskii
6313576256 Update MS-Windows installation instructions for librsvg. 2013-12-23 20:32:58 +02:00
Eli Zaretskii
2f43a3ee6a Update Emacs's Windows manifests to support Windows 8.1.
nt/emacs-x64.manifest:
 nt/emacs-x86.manifest: Declare that we target Windows 8.1 as well
 as earlier versions.  This is so GetVersion and GetVersionEx APIs
 used for bug reporting and other purposes return accurate version
 number on Windows 8.1.  See the discussion on MSDN
 http://msdn.microsoft.com/en-us/library/windows/desktop/dn302074.aspx
 for more details.
2013-12-16 20:18:44 +02:00
Eli Zaretskii
01633a17e7 Support MS-Windows file names that use characters outside of ANSI codepage.
src/w32.c (get_file_security, set_file_security)
 (create_symbolic_link): Separate pointers and boolean flags for
 ANSI and Unicode APIs.  Use the latter if w32_unicode_filenames is
 non-zero, else the former.
 (codepage_for_filenames, filename_to_utf16, )
 (filename_from_utf16, filename_to_ansi, filename_from_ansi): New
 functions.
 (init_user_info): Allow $HOME and $SHELL to include non-ANSI
 characters.
 (normalize_filename): Lose the DBCS code, now works on UTF-8.
 Accept only one argument; all callers changed.
 (dostounix_filename): Remove the second argument, now works in
 UTF-8.  All callers changed.
 (parse_root): Lose DBCS code.
 (get_long_basename, w32_get_short_filename, init_environment)
 (GetCachedVolumeInformation, sys_readdir, open_unc_volume)
 (read_unc_volume, logon_network_drive, faccessat, sys_chdir)
 (sys_chmod, sys_creat, sys_fopen, sys_link, sys_mkdir, sys_open)
 (sys_rename_replace, sys_rmdir, sys_unlink, stat_worker, utime)
 (is_symlink, readlink, chase_symlinks, w32_delayed_load): Work in
 Unicode mode if w32_unicode_filenames is non-zero, in ANSI mode
 otherwise.
 (ansi_encode_filename): New function.
 (get_emacs_configuration, get_emacs_configuration_options):
 Functions deleted.
 (add_volume_info, GetCachedVolumeInformation): Run the input file
 name through unixtodos_filename, to ensure it is stored and
 referenced in canonical form.
 (get_volume_info): Lose the DBCS code, now works in UTF-8.
 (logon_network_drive, sys_link, utime): Improve error handling.
 (sys_access): New function.
 (hashval, generate_inode_val): Unused functions deleted.
 (symlink, readlink, readlinkat): Lose DBCS code, now works in UTF-8.
 (check_windows_init_file): Convert error message from UTF-8 to
 ANSI codepage, for display in the message box.
 (globals_of_w32): Set w32_unicode_filenames according to the OS
 version.
 src/w32term.c (construct_drag_n_drop): Work in Unicode mode when
 w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (syms_of_w32term): Declare w32-unicode-filenames.
 src/w32proc.c (new_child, delete_child): Remove code that handled
 unused pending_deletion and input_file members of the child struct.
 (create_child, sys_spawnve): Convert all file names to ANSI
 codepage.  Use ANSI APIs explicitly; forcibly fail if any file
 name cannot be encoded in ANSI codepage.  Don't use
 unixtodos_filename, mirror slashes by hand.
 (record_infile, record_pending_deletion): Functions deleted.
 (Fw32_short_file_name): Call w32_get_short_filename instead of
 GetShortPathName.
 src/w32notify.c (add_watch): Work in Unicode mode when
 w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (Fw32notify_add_watch): Rewrite to avoid using GetFullPathName;
 instead, do the same with Lisp primitives.
 src/w32fns.c (file_dialog_callback, Fx_file_dialog)
 (Fsystem_move_file_to_trash, Fw32_shell_execute)
 (Ffile_system_info, Fdefault_printer_name): Work in Unicode mode
 when w32_unicode_filenames is non-zero, ANSI mode otherwise.
 (Fw32_shell_execute): Improve error reporting.
 (Fdefault_printer_name): Ifdef away for Cygwin.
 src/w32.h (struct _child_process): Remove input_file and
 pending_deletion members that are no longer used.
 (dostounix_filename, w32_get_short_filename, filename_from_ansi)
 (filename_to_ansi, filename_from_utf16, filename_to_utf16)
 (ansi_encode_filename): New and updated prototypes.
 src/unexw32.c (open_input_file, open_output_file, unexec): Use ANSI
 APIs explicitly.
 (unexec): Don't use dostounix_filename, it expects a file name in
 UTF-8.  Instead, mirror backslashes by hand.  Convert NEW_NAME to
 ANSI encoding.
 src/fileio.c (Ffile_name_directory, file_name_as_directory)
 (directory_file_name, Fexpand_file_name)
 (Fsubstitute_in_file_name) [WINDOWSNT]: Adapt to the change in
 arguments of dostounix_filename.
 (Fexpand_file_name) [WINDOWSNT]: Convert value of $HOME to UTF-8.
 use MAX_UTF8_PATH for size of file-name strings.
 (emacs_readlinkat): Build an explicitly unibyte string for file
 names.
 (syms_of_fileio) <file-name-coding-system>
 default-file-name-coding-system>: Mention MS-Windows peculiarities.
 src/emacs.c (init_cmdargs) [WINDOWSNT]: Convert argv[0] to UTF-8.
 (main) [WINDOWSNT]: Convert the argv[] elements that are files or
 directories to UTF-8.
 (decode_env_path) [WINDOWSNT]: Convert file names taken from the
 environment, and each element of the input PATH, to UTF-8.
 src/dired.c (file_attributes): Use build_unibyte_string explicitly
 to make Lisp strings from user and group names.
 src/coding.h (ENCODE_FILE, DECODE_FILE): Just call encode_file and
 decode_file.
 src/coding.c (decode_file_name, encode_file_name): New functions.
 src/termcap.c (tgetent): Adapt to the change in arguments of
 dostounix_filename.
 src/sysdep.c (sys_subshell) [WINDOWSNT]: Use MAX_UTF8_PATH for file
 names.
 src/msdos.c (dostounix_filename, init_environment): Adapt to the
 change in arguments of dostounix_filename.
 src/image.c (xpm_load, tiff_load, gif_load, imagemagick_load)
 [WINDOWSNT]: Encode file names passed to the image libraries in
 ANSI codepage.
 src/gnutls.c (Fgnutls_boot): Encode all file names passed to GnuTLS.
 [WINDOWSNT]: Convert file names to the current ANSI codepage.
 src/filelock.c (lock_file) [WINDOWSNT]: Adapt to the change in
 arguments of dostounix_filename.

 nt/inc/ms-w32.h (MAX_UTF8_PATH): New macro.
 (opendir, closedir, readdir, seekdir): Redirect to replacement
 functions.
 nt/inc/dirent.h: Make d_name[] be MAXNAMELEN*4 characters long.

 lisp/term/w32-win.el (w32-handle-dropped-file):
 lisp/startup.el (normal-top-level):
 lisp/net/browse-url.el (browse-url-file-url):
 lisp/dnd.el (dnd-get-local-file-name): On MS-Windows, encode and
 decode file names using 'utf-8' rather than
 file-name-coding-system.

 doc/emacs/mule.texi (File Name Coding): Document file-name encoding
 peculiarities on MS-Windows.

 doc/lispref/nonascii.texi (Encoding and I/O): Document file-name encoding
 peculiarities on MS-Windows.

 etc/NEWS: Mention support on MS-Windows of file names outside of the
 current locale.

Fixes: debbugs:7100
2013-12-12 20:19:10 +02:00
Eli Zaretskii
ce1d7b61f1 Merge from trunk. 2013-12-07 19:21:57 +02:00
Stefan Monnier
7cdf484be3 * configure.ac (HAVE_MENUS): Remove.
* src/xmenu.c (Fmenu_or_popup_active_p):
* src/window.c (Fset_window_configuration):
* src/menu.c (Fx_popup_menu, Fx_popup_dialog):
* src/keyboard.c (record_menu_key, read_char_x_menu_prompt):
* src/fns.c (Fyes_or_no_p):
* src/editfns.c (Fmessage_box, Fmessage_or_box):
* src/alloc.c (make_save_ptr_ptr):
* src/xdisp.c, src/w32menu.c, src/term.c, src/xterm.h, src/xterm.c:
Remove HAVE_MENUS.
2013-11-28 20:22:40 -05:00
Glenn Morris
cb6c95a394 Move runtime leim lisp files to lisp/leim directory
This allows us to reuse much of the lisp build and installation machinery,
rather than duplicating it.

* Makefile.in (abs_builddir, leimdir): Remove.
(buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory.
(epaths-force-w32): No longer set BLD.
(leim): Remove.
(install-arch-indep): No longer run or install leim.
(mostlyclean, clean): No longer run leim rule.
(bootstrap-clean): Change leim target.
(maintainer-clean): Add leim.
(check-declare): Remove leim.

* README: Update for leim changes.

* configure.ac (leimdir): Remove.
(standardlisppath): No more leimdir.

* make-dist: Update for files from leim/ now being in lisp/leim/.

* doc/lispref/loading.texi (Library Search):
* doc/lispref/os.texi (Startup Summary): No more leim directory.

* leim/Makefile.in (leimdir): New variable.
(TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc)
(${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el):
Generate in $leimdir.
(all): Remove compilation, add ja-dic.
(leim-list.el): Now PHONY.
(setwins, compile-targets, compile-main, clean, mostlyclean)
(extraclean): Remove.
(bootstrap-clean): Delete all generated files.

* leim/README: Update for moved leim/ directory.

* leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate):
Remove manual autoloads; now in loaddefs.el.
Disable byte-compile, version-control, autoloads in the output.

* lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory.
(compile-main): Depend on lisp/leim rule.
(leim): New rule.

* lisp/loadup.el: Move leim-list.el to leim/ subdirectory.

* lisp/startup.el (normal-top-level): No more leim directory.

* lisp/international/ja-dic-cnv.el (skkdic-convert):
Disable version-control and autoloads in output files.
* lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert):
Disable version-control and autoloads in output files.

* lisp/leim/quail: Move here from ../leim.

* lisp/leim/quail/hangul.el (hangul-input-method-activate):
Add autoload cookie.
(generated-autoload-load-name): Set file-local value.

* lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie.
(generated-autoload-load-name): Set file-local value.

* nt/README.W32:
* nt/addpm.c (env_vars):
* nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH):
* nt/paths.h (PATH_LOADSEARCH): No more leim directory.

* src/Makefile.in (leimdir): Now in lisp source directory.
($(leimdir)/leim-list.el): Just use ../leim .

* src/epaths.in (PATH_DUMPLOADSEARCH):

* src/lread.c (load_path_default):

* src/nsterm.m (ns_load_path): No more leim directory.

* .bzrignore: Update for relocated leim files.
2013-11-26 22:15:06 -08:00
Glenn Morris
624780f09d Preload leim-list.el
* Makefile.in (abs_builddir): New, set by configure.
(buildlisppath): Add leim/.
(epaths-force-w32): Set BLD.

* lisp/loadup.el: Load leim-list.el when found.

* lisp/startup.el (normal-top-level): Skip re-loading leim/leim-list.el.

* nt/epaths.nt (PATH_DUMPLOADSEARCH): Add leim/.

* src/callproc.c (init_callproc): Don't assume PATH_DUMPLOADSEARCH
is a single directory.

* src/epaths.in (PATH_DUMPLOADSEARCH): Add leim/.

Fixes: debbugs:4789
2013-11-25 20:06:23 -05:00
Eli Zaretskii
18b35e2c7a Merge from mainline. 2013-11-18 18:45:48 +02:00
Dani Moncayo
f4f38fad9a Remove nt/msysconfig.sh
* configure.ac [MINGW32]: Source nt/mingw-cfg.site.

* make-dist: Don't distribute nt/msysconfig.sh.

* nt/msysconfig.sh: Remove.

* nt/INSTALL: Update for this.

* nt/mingw-cfg.site: Comment.
2013-11-11 18:50:28 -08:00
Eli Zaretskii
0b9de7cd60 Dirent functions and directory-files are converted and work. 2013-11-09 14:49:02 +02:00
Glenn Morris
62e010af33 * nt/mingw-cfg.site: No need for this to be executable. 2013-11-08 19:33:41 -05:00
Glenn Morris
4dde498bce Remove the autogen/ directory
Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00806.html

* autogen: Remove directory.  Move update_autogen to admin/.
* autogen.sh: Remove reference to copy_autogen.
* GNUmakefile (configure):
* Makefile.in (bootstrap): Do not try to run copy_autogen.
* config.bat: Use msdos/autogen rather than autogen.

* admin/update_autogen: Move here from ../autogen.
(usage): Update.  Remove -l, add -A.
(autogendir): New variable.
(ldefs_flag): Default to set.
(genfiles): Reduce to only ms-dos relevant files.
(main): Make checking autogen sources optional.
Make copying of autogen files optional.

* msdos/autogen/config.in:
* msdos/autogen/Makefile.in: Move here from ../autogen.

* nt/INSTALL: Remove reference to copy_autogen.

* nt/config.nt: Comment.
2013-11-04 23:54:03 -08:00
Glenn Morris
357a508109 Avoid non-portable " ... \"...\" ... " nesting
* configure.ac:
* Makefile.in (install-arch-indep, install-etcdoc, install-info):
* lib-src/Makefile.in ($(DESTDIR)${archlibdir}):
* nt/Makefile.in ($(DESTDIR)${archlibdir}):
Avoid non-portable "`\" nesting.
2013-10-24 19:04:33 -04:00
Glenn Morris
11e5e2eba1 Fix whitespace in previous Makefile.in changes 2013-10-23 21:05:54 -07:00
Glenn Morris
eb9a36619e Attempt at a fix for mingw CPPFLAGS
* configure.ac (CPPFLAGS) [mingw32]: Use abs_top_srcdir.

* Makefile.in (abs_top_srcdir):
* lib-src/Makefile.in (abs_top_srcdir):
* lwlib/Makefile.in (abs_top_srcdir):
* nt/Makefile.in (abs_top_srcdir):
* oldXMenu/Makefile.in (abs_top_srcdir):
* src/Makefile.in (abs_top_srcdir):
New, set by configure.
2013-10-23 19:15:16 -07:00
Glenn Morris
48f73cfbf3 Progress towards allowing installation in directories with whitespace
* Makefile.in (COPYDESTS, write_subdir, install-arch-dep)
(install-arch-indep, install-etcdoc, install-info, install-man)
(install-etc, uninstall): Quote entities that might contain whitespace.

* build-aux/update-subdirs: Handle whitespace in argument.
Check cd return value.

* doc/emacs/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/lispintro/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/lispref/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* doc/misc/Makefile.in (install-dvi, install-html, install-pdf)
(install-ps, uninstall-dvi, uninstall-html, uninstall-ps)
(uninstall-pdf): Quote entities that might contain whitespace.

* lib-src/Makefile.in ($(DESTDIR)${archlibdir}, need-blessmail, install)
(uninstall): Quote entities that might contain whitespace.

* nt/Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall):
Quote entities that might contain whitespace.
2013-10-23 00:20:57 -07:00
Glenn Morris
b8e3b0a9ec Make building in directories with whitespace possible
Make has trouble with targets containing whitespace, 
http://savannah.gnu.org/bugs/?712, so the general approach is
to use relative paths where possible.  It's generally only Emacs
itself that needs absolute paths, eg in src/epaths.h.

* configure.ac (srcdir): Don't make it absolute - abs_srcdir exists.

* Makefile.in (abs_srcdir): New, set by configure.
(buildlisppath): Use abs_srcdir.
(install-arch-indep, install-etcdoc, install-info, install-man)
(install-etc): Quote entities that might contain whitespace.

* admin/unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el):
Quote entities that might contain whitespace.

* leim/Makefile.in (abs_srcdir): New, set by configure.
(buildlisppath): Use abs_srcdir.
(RUN_EMACS, .el.elc, changed.tit, changed.misc, leim-list.el)
($(srcdir)/ja-dic/ja-dic.el, setwins, distclean, check-declare):
Quote entities that might contain whitespace.

* lib-src/Makefile.in ($(DESTDIR)${archlibdir}):
Quote entities that might contain whitespace.

* lisp/Makefile.in (abs_srcdir, abs_lisp): New, set by configure.
(emacs, compile, compile-always):
Quote entities that might contain whitespace.
(custom-deps, finder-data, autoloads): Use abs_lisp.
($(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): Manually expand target file name.

* nextstep/Makefile.in (${ns_check_file} ${ns_appdir}):
Quote entities that might contain whitespace.

* nt/Makefile.in ($(DESTDIR)${archlibdir}):
Quote entities that might contain whitespace.

* src/Makefile.in (RUN_TEMACS): Make relative (again).
($(leimdir)/leim-list.el, .el.elc, $(lispsource)/loaddefs.el)
(bootstrap-emacs$(EXEEXT)):
Quote entities that might contain whitespace.

* test/automated/Makefile.in (abs_top_srcdir, top_builddir):
New, set by configure.
(top_srcdir): Remove.
(abs_test, abs_lispsrc): New.
(lisp): No longer absolute.
(emacs, lisp-compile, compile, compile-always):
Quote entities that might contain whitespace.

Fixes: debbugs:15675
2013-10-22 23:22:54 -07:00
Eli Zaretskii
03d58cca81 Start; wrote conversion from UTF-8 to UTF-16 and ANSI. 2013-10-19 21:17:01 +03:00
Eli Zaretskii
279066b2b3 Attempt to fix time_t related problems with MinGW 4.0 runtime.
nt/inc/mingw_time.h: New file.
 nt/inc/ms-w32.h: Include mingw_time.h instead of doing its job.

 src/w32proc.c: Include mingw_time.h.
 src/w32.c: Include mingw_time.h.
2013-10-14 19:23:10 +03:00
Eli Zaretskii
2f4586ad04 Make the MinGW32 build compatible with MinGW runtime 4.x.
nt/inc/dirent.h (struct dirent) [__MINGW_MAJOR_VERSION >= 4]: Make
 the layout of 'struct dirent' be compatible with MinGW32 runtime
 versions 4.0 and later.
 nt/inc/ms-w32.h (__MINGW_MAJOR_VERSION, __MINGW_MINOR_VERSION)
 (__MINGW_PATCHLEVEL) [!__MINGW64_VERSION_MAJOR]: Define, if not
 defined, but not for MinGW64.
 (_USE_32BIT_TIME_T) [__MINGW64_VERSION_MAJOR]: Define, to force
 use of 32-bit time_t type.
2013-10-12 16:11:14 +03:00
Eli Zaretskii
7135884547 Update nt/INSTALL with respect to giflib. 2013-10-12 12:00:21 +03:00
Paul Eggert
595e113b15 Improve support for popcount and counting trailing zeros.
Do this by using the Gnulib modules for this.
This should generate faster code on non-GCC, non-MSC platforms,
and make the code a bit more portable, at least in theory.
* admin/merge-gnulib (GNULIB_MODULES): Add count-one-bits
and count-trailing-zeros.
* lib/count-one-bits.c, lib/count-one-bits.h:
* lib/count-trailing-zeros.c, lib/count-trailing-zeros.h:
* m4/count-one-bits.m4, m4/count-trailing-zeros.m4:
New files, copied from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* nt/gnulib.mk: Merge changes from lib/gnulib.mk.
* src/data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>.
(USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE)
(NEED_GENERIC_POPCOUNT, popcount_size_t_generic)
(popcount_size_t_msc, popcount_size_t_gcc):
Remove; now done by Gnulib.
(popcount_size_t): Now a macro that defers to Gnulib.
(count_trailing_zero_bits): Return int, for consistency with
Gnulib and because Emacs prefers signed to unsigned int.
Don't assume that size_t is either unsigned int or unsigned long
or unsigned long long.
(size_t_to_host_endian): Do not assume that size_t is either
exactly 32 or exactly 64 bits wide.
* src/lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG
etc., so that it's now an enum constant, not a macro.
No need to assume that it's either 32 or 64.

Fixes: debbugs:15550
2013-10-07 14:37:19 -07:00
Paul Eggert
cd30a8e09c In nt/gnulib.mk create <byteswap.h> from <byteswap.in.h>.
* gnulib.mk: Create <byteswap.h> from <byteswap.in.h>.
2013-10-04 16:27:11 +02:00
Eli Zaretskii
673558beaa Avoid replacing 'struct timeval' and compiling lib/gettimeofday.c on MinGW.
nt/mingw-cfg.site (gl_cv_sys_struct_timeval_tv_sec): Set to "yes"
 to avoid gnulib replacement of 'struct timeval' and the resulting
 compilation of lib/gettimeofday.c with incompatible version of
 gettimeofday.  Related discussions on emacs-devel:
 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00286.html
 http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00361.html
2013-09-20 10:21:20 +03:00
Glenn Morris
7605d081ba Update nt installation instructions to point to supported method
* nt/INSTALL: Rename from INSTALL.MSYS.

* nt/INSTALL.OLD: Rename from INSTALL.

* nt/configure.bat: Update for INSTALL name changes.

* make-dist: Update for nt/INSTALL* changes.
2013-08-31 11:26:59 -07:00
Glenn Morris
63e984f8fd Update location of Emacs on MS Windows FAQ 2013-08-27 15:40:24 -04:00
Eli Zaretskii
6e9fb70cdf Fix MS-Windows build.
src/callproc.c: 
 src/emacs.c: 
 src/filelock.c: 
 src/process.c: 
 src/sysdep.c: 
 src/w32.c: Reshuffle Windows-specific headers to avoid errors with
 redefinition of fd_set etc.
 src/process.c: Don't use num_pending_connects when
 NON_BLOCKING_CONNECT is not defined.
 src/sysselect.h: Move definitions of FD_* macros and of SELECT_TYPE
 here from w32.h.
 src/w32proc.c (sys_select): Adjust the argument types to what
 thread.h expects.

 nt/inc/sys/socket.h: Include stdint.h.  Include sysselect.h instead
 of w32.h.
2013-08-26 21:42:11 +03:00
Vincent Belaïche
e687aa335a Add a question into configure.bat whether the user want to continue at
his/her own risks.
2013-08-25 22:11:56 +02:00
Glenn Morris
67aeda8d2f * INSTALL: Refer to INSTALL.MSYS. 2013-08-25 12:46:41 -07:00
Glenn Morris
b1dc190562 * nt/configure.bat: Disable it.
Ref http://lists.gnu.org/archive/html/emacs-devel/2013-08/msg00705.html
2013-08-25 12:44:59 -07:00
Eli Zaretskii
484ab23924 Minor fix of the last commit. 2013-08-04 18:43:10 +03:00
Eli Zaretskii
63f5c6c20d Implement mkostemp for MS-Windows.
nt/mingw-cfg.site (ac_cv_func_mkostemp): New var with value of "yes".
 nt/inc/ms-w32.h (mkostemp): Declare prototype.
 nt/config.nt (HAVE_MKOSTEMP): Define to 1.

 src/w32.c (mkostemp): New function.
 (mktemp): Remove, no longer used.  Most of the code reused in mkostemp.

Fixes: debbugs:15015
2013-08-04 18:32:12 +03:00
Glenn Morris
bbece175c9 Use a @configure_input@ comment at the start of generated Makefiles 2013-07-23 18:57:17 -04:00
Eli Zaretskii
1d44267275 MS-Windows followup for 2013-07-07T18:00:14Z!eggert@cs.ucla.edu.
nt/inc/sys/socket.h (F_SETFD, O_CLOEXEC, F_DUPFD_CLOEXEC)
 (FD_CLOEXEC): New macros.

 src/w32.c (sys_dup): Declare prototype.

 src/filelock.c:
 src/emacs.c:
 src/callproc.c [WINDOWSNT]: Include sys/socket.h.
2013-07-07 21:48:16 +03:00
Paul Eggert
067428c171 Make file descriptors close-on-exec when possible.
This simplifies Emacs a bit, since it no longer needs to worry
about closing file descriptors by hand in some cases.
It also fixes some unlikely races.  Not all such races, as
libraries often open files internally without setting
close-on-exec, but it's an improvement.
* admin/merge-gnulib (GNULIB_MODULES): Add fcntl, pipe2.
(GNULIB_TOOL_FLAGS): Avoid binary-io, close.  Do not avoid fcntl.
* configure.ac (mkostemp): New function to check for.
(PTY_OPEN): Pass O_CLOEXEC to posix_openpt.
* lib/fcntl.c, lib/getdtablesize.c, lib/pipe2.c, m4/fcntl.m4:
* m4/getdtablesize.m4, m4/pipe2.m4: New files, taken from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* nt/gnulib.mk: Remove empty gl_GNULIB_ENABLED_verify section;
otherwise, gnulib-tool complains given close-on-exec changes.
* nt/inc/ms-w32.h (pipe): Remove.
* nt/mingw-cfg.site (ac_cv_func_fcntl, gl_cv_func_fcntl_f_dupfd_cloexec)
(gl_cv_func_fcntl_f_dupfd_works, ac_cv_func_pipe2): New vars.
* src/alloc.c (valid_pointer_p) [!WINDOWSNT]:
* src/callproc.c (Fcall_process) [!MSDOS]:
* src/emacs.c (main) [!DOS_NT]:
* src/nsterm.m (ns_term_init):
* src/process.c (create_process):
Use 'pipe2' with O_CLOEXEC instead of 'pipe'.
* src/emacs.c (Fcall_process_region) [HAVE_MKOSTEMP]:
* src/filelock.c (create_lock_file) [HAVE_MKOSTEMP]:
Prefer mkostemp with O_CLOEXEC to mkstemp.
* src/callproc.c (relocate_fd) [!WINDOWSNT]:
* src/emacs.c (main): Use F_DUPFD_CLOEXEC, not plain F_DUPFD.
No need to use fcntl (..., F_SETFD, FD_CLOEXEC), since we're
now using pipe2.
* src/filelock.c (create_lock_file) [! HAVE_MKOSTEMP]:
Make the resulting file descriptor close-on-exec.
* src/lisp.h, src/lread.c, src/process.c (close_load_descs, close_process_descs):
* src/lread.c (load_descriptor_list, load_descriptor_unwind):
Remove; no longer needed.  All uses removed.
* src/process.c (SOCK_CLOEXEC): Define to 0 if not supplied by system.
(close_on_exec, accept4, process_socket) [!SOCK_CLOEXEC]:
New functions.
(socket) [!SOCK_CLOEXEC]: Supply a substitute.
(Fmake_network_process, Fnetwork_interface_list):
(Fnetwork_interface_info, server_accept_connection):
Make newly-created socket close-on-exec.
* src/sysdep.c (emacs_open, emacs_fopen):
Make new-created descriptor close-on-exec.
* src/w32.c (fcntl): Support F_DUPFD_CLOEXEC well enough for Emacs.
* src/w32.c, src/w32.h (pipe2): Rename from 'pipe', with new flags arg.

Fixes: debbugs:14803
2013-07-07 11:00:14 -07:00
Juanma Barranquero
341881c044 nt/configure.bat: Warn about deprecation status. 2013-06-25 17:08:47 +02:00
Juanma Barranquero
e7b41c4c9a Fix ChangeLog typos and whitespace. 2013-06-10 16:58:52 +02:00
Eli Zaretskii
1698f87abd Don't advertise unsupported features in nt/INSTALL.MSYS. 2013-06-08 18:01:45 +03:00
Eli Zaretskii
1a312bf403 Minor tweak of nt/INSTALL.MSYS. 2013-06-08 06:38:46 +03:00
Eli Zaretskii
3649ba053b Minor improvements in nt/INSTALL.MSYS instructions.
nt/INSTALL.MSYS: mingw-get is not a GUI program (yet).
 msys-automake is not suitable for MinGW builds.  Mention the
 --enable-locallisppath switch to msysconfig.sh.  Suggested by
 ׃scar Fuentes <ofv@wanadoo.es>.
2013-06-07 11:31:53 +03:00
Richard Copley
6c0a9ed1b1 Fix bug #14513 with --enable-locallisppath not working on MS-Windows.
Makefile.in (msys_to_w32): Modify to support d:\foo file names.
 (msys_lisppath_to_w32, msys_prefix_subst, msys_sed_sh_escape): New
 variables.
 (epaths-force-w32): Use them.

 epaths.nt (PATH_SITELOADSEARCH): Fix commentary.

 epaths.in: Fix commentary to PATH_SITELOADSEARCH.
2013-06-07 11:08:29 +03:00
Eli Zaretskii
7f203aa1fd * configure.ac (HAVE_GFILENOTIFY): Do not change $LIBS.
(GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): Substitute.

* nt/config.nt: Add HAVE_GFILENOTIFY, HAVE_W32NOTIFY and USE_FILE_NOTIFY.

* src/Makefile.in (GFILENOTIFY_CFLAGS, GFILENOTIFY_LIBS): New variables.
(ALL_CFLAGS): Add $(GFILENOTIFY_CFLAGS).
(LIBES): Add $(GFILENOTIFY_LIBS).

* src/w32inevt.c (handle_file_notifications): Add dummy implementation
for !HAVE_W32NOTIFY.

* src/w32term.c: Wrap code with HAVE_W32NOTIFY.
2013-06-03 21:06:09 +02:00
Eli Zaretskii
e2d8a6f0a2 Attempt to resolve gettimeofday compilation errors with MinGW64.
src/w32.c (gettimeofday): Make the signature identical to prototype
 in nt/inc/sys/time.h.

 nt/inc/sys/time.h (struct timeval): Remove the _W64 guards.
2013-06-03 20:15:44 +03:00
Eli Zaretskii
22bcd514bc Update instructions in nt/INSTALL.MSYS. 2013-06-03 19:55:37 +03:00
Eli Zaretskii
32e2d7287f Fix compilation error on MinGW64 due to nt/inc/sys/time.h.
nt/inc/sys/time.h [!_TIMEZONE_DEFINED]: Define _TIMEZONE_DEFINED to
 avoid multiple definition errors on MinGW64.
2013-06-01 10:07:22 +03:00
Paul Eggert
f5d430271e Spelling fixes. 2013-05-31 10:10:10 -07:00
Eli Zaretskii
2a157a5d33 Fix compile errors in nt/inc/sys/time.h when using nt/configure.bat.
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.
2013-05-31 11:47:18 +03:00
Eli Zaretskii
38b787fa72 Remove *.res files in mostlyclean, to avoid problems with out-of-tree builds.
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.
2013-05-29 19:48:42 +03:00
Eli Zaretskii
c80de4562d Fix a typo in the last commit. 2013-05-25 12:26:53 +03:00
Eli Zaretskii
9e34b514e7 Explain in nt/INSTALL.MSYS why --prefix should be used with Windows builds. 2013-05-25 10:34:34 +03:00
Paul Eggert
8a9f4fb4d6 Spelling fixes. 2013-05-18 00:17:03 -07:00
Eli Zaretskii
3e2af3481e Support invocation of un-installed runemacs.exe. 2013-05-17 12:35:23 +03:00
Eli Zaretskii
721c9e8a68 Define SIZE_MAX for MSVC, part of bug #14409.
nt/inc/stdint.h (SIZE_MAX) [!__GNUC__]: Define.
2013-05-16 20:31:25 +03:00
Eli Zaretskii
49b45d5c7c Give recipe in nt/INSTALL.MSYS to uninstall msys-texinfo. 2013-05-16 20:14:21 +03:00
Eli Zaretskii
b54b47cd07 Fix a typo in nt/INSTALL.MSYS. 2013-05-16 18:35:59 +03:00
Eli Zaretskii
df065a0b9a Support building Emacs on MS-Windows using the Posix configury.
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.
2013-05-16 15:48:54 +03:00
Eli Zaretskii
a9519e2685 Merge from trunk. 2013-05-16 12:58:56 +03:00
Eli Zaretskii
3946d31b7b Minor tweaks in comments to scripts and INSTALL.MSYS. 2013-05-16 12:44:44 +03:00
Eli Zaretskii
ffa615b790 Restore qacl module in nt/gnulib.mk except qset-acl.c. 2013-05-16 08:51:39 +03:00
Stefan Monnier
6e911150d0 Use just DOC instead of DOC-nn.mm.
* 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".
2013-05-15 16:12:53 -04:00
Eli Zaretskii
8ec48524fb Fixed nt/gnulib.mk to compile lib/acl-errno-valid.c. 2013-05-15 20:41:12 +03:00
Eli Zaretskii
9e5b5c7934 Fixed nt/mingw-cfg.site to pass the configure step. 2013-05-15 20:06:26 +03:00
Eli Zaretskii
d14365f941 Merge from trunk, configury not fixed yet. 2013-05-15 19:15:07 +03:00
Eli Zaretskii
f94b5742a3 Recommend to use MinGW Texinfo. 2013-05-14 21:14:23 +03:00
Juanma Barranquero
01e147a678 nt/config.nt: Sync with autogen/config.in. 2013-05-08 17:04:20 +02:00
Paul Eggert
ffdc270a76 Use Gnulib ACL implementation, for benefit of Solaris etc.
* 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
2013-05-07 14:34:03 -07:00
Eli Zaretskii
10f81f3ac9 Improve INSTALL.MSYS instructions given feedback from Dani Moncayo. 2013-05-01 20:35:46 +03:00
Eli Zaretskii
b0c6361699 Fix problem with linking runemacs reported by Dani Moncayo. 2013-04-21 18:13:24 +03:00
Eli Zaretskii
373b3ea633 Fixed another bug in nt/Makefile.in reported by Dani Moncayo. 2013-04-20 10:59:36 +03:00
Eli Zaretskii
106e99113b Fix a bug in nt/Makefile.in with out-of-tree builds, reported by Dani Moncayo. 2013-04-20 10:05:17 +03:00
Eli Zaretskii
f60f289656 Minor wording improvement in INSTALL.MSYS. 2013-04-19 09:45:05 +03:00
Eli Zaretskii
79869f9a48 Fix typos in INSTALL instructions. 2013-04-17 19:37:57 +03:00
Eli Zaretskii
895591043f Added install instructions using MSYS. 2013-04-16 16:20:33 +03:00
Eli Zaretskii
d87d500fd6 Added nt/msysconfig.sh. 2013-04-15 17:58:58 +03:00
Eli Zaretskii
7d9fb4de78 Fixed problems with default paths and with shell-file-name. 2013-04-15 16:39:41 +03:00
Eli Zaretskii
eb7a410c14 Merge from trunk, resolve conflicts. 2013-04-14 20:27:45 +03:00
Ken Brown
ba3b2d88d8 Fix icon for the cygw32 build on 64-bit Cygwin. (Bug#12993)
* 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.
2013-04-08 22:38:56 -04:00
Eli Zaretskii
d6db9fd60a Fixed src/epaths.h generation and lib-src dependencies and libraries. 2013-04-06 16:25:17 +03:00
Eli Zaretskii
c83cf9cfbc Added nt/epaths.nt, Makefile.in and configure.ac for that still not done. 2013-04-05 16:56:12 +03:00
Eli Zaretskii
eb1dd42a72 Merge from trunk. 2013-04-05 16:10:57 +03:00
Eli Zaretskii
86e9346005 Fixed misc compilation warnings and errors. Dumping errors out. 2013-04-01 19:28:53 +03:00
Eli Zaretskii
030a1c5ea6 Fixed nt/Makefile.in and top-level Makefile.in.
Programs in nt/ and lib-src/ compile and link.
Warnings and errors in src/.
2013-04-01 17:35:26 +03:00
Eli Zaretskii
095bf25383 Added nt/Makefile.in and appropriate tweaks to configure.ac.
Added emacsclient.res support to lib-src/.
Fixed temacs and dumping commands in src/Makefile.in.
Miscellaneous fixes all over the place.

Not tried to build yet.
2013-04-01 16:18:20 +03:00
Eli Zaretskii
1e1d41ff15 Minor fixes in the nt/ subdirectory.
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.
2013-04-01 10:28:56 +03:00
Eli Zaretskii
a74b0e1bdf Added nt/gnulib.mk and removed kludges from ms-w32.h and ntlib.h. 2013-03-31 17:04:49 +03:00
Eli Zaretskii
7c4026b6ad Finished with lib-src compilation, except emacsclientw and emacsclient.res.
Next -- compilation in nt/, and then problems in src/.
2013-03-30 20:00:51 +03:00
Eli Zaretskii
fff1aa4e84 Fixed compilation problems in lib/. 2013-03-30 15:25:48 +03:00
Eli Zaretskii
8934438ad1 Fixed redefinition of EMACS_CONFIGURATION. 2013-03-30 14:10:41 +03:00
Eli Zaretskii
6cd0eaeb6b Fixed mingw-cfg.site to avoid some gnulib replacements. 2013-03-30 12:42:50 +03:00
Eli Zaretskii
dc4cb8d518 Merge from trunk. 2013-03-30 10:24:44 +03:00
Eli Zaretskii
98f3b8c6be Move MS-Windows definition of TERM_HEADER from ms-w32.h to config.nt.
nt/inc/ms-w32.h (TERM_HEADER): Remove definition.
 nt/config.nt (TERM_HEADER): Move the definition to "w32term.h" from
 ms-w32.h.
2013-03-30 10:10:58 +03:00
Eli Zaretskii
627d532608 Merge from trunk. 2013-03-30 09:34:05 +03:00
Eli Zaretskii
668284362c Enable the 'copysign' primitive on MS-Windows.
nt/inc/ms-w32.h (copysign) [_MSC_VER]: Redirect to _copysign.
 nt/config.nt (HAVE_COPYSIGN): Define.
2013-03-30 09:12:49 +03:00
Eli Zaretskii
cb11bd957d Finished with config.nt diffs. Problem with mmsystem.h remains. 2013-03-29 22:53:25 +03:00
Eli Zaretskii
da6c96247a Finished first cut of mingw-cfg.site. 2013-03-29 18:25:48 +03:00
Eli Zaretskii
ef90474243 Handled fstatat and fsync, fixed fdopendir. 2013-03-29 15:36:43 +03:00
Eli Zaretskii
52aa6b170b Fix CLASH_DETECTION and 'not needed' result for fdopendir. 2013-03-29 14:38:13 +03:00
Eli Zaretskii
c38ad11c2a Added nt/mingw-cfg.site, first few vars defined on it. 2013-03-29 14:29:23 +03:00
Juanma Barranquero
a0c0aab26b nt/config.nt: Sync with autogen/config.in.
(HAVE_XKBGETKEYBOARD): Remove.
(HAVE_XKB): New macro.
2013-03-29 04:02:22 +01:00
Eli Zaretskii
5d611e0450 Use 'restrict' in gettimeofday arguments, and make ms-w32.h compatible. 2013-03-28 22:51:26 +02:00
Eli Zaretskii
97dababa47 Fix the gettimeofday_timezone test. 2013-03-28 22:20:40 +02:00
Eli Zaretskii
d76bf86f43 Merge from trunk and resolve conflicts. 2013-03-28 20:13:59 +02:00
Eli Zaretskii
42663650ba Fix last commit in nt/makefile.w32-in, which broke bootstrap.
nt/makefile.w32-in (all-other-dirs-nmake, all-other-dirs-gmake)
 (bootstrap, bootstrap-nmake, bootstrap-gmake, install-addpm):
 Depend on .exe files.
2013-03-27 12:09:44 +02:00
Eli Zaretskii
e0c3eb8913 Avoid MinGW64 compiler warnings.
nt/inc/ms-w32.h (sys_localtime) [_W64]: Provide a prototype, to
 avoid MinGW64 compiler warnings in editfns.c.
2013-03-27 10:40:24 +02:00
Eli Zaretskii
849e8b0160 Fix rules in nt/makefile.w32-in for parallel builds on MS-Windows.
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.
2013-03-27 10:31:16 +02:00
Eli Zaretskii
c8e9d2b4ed Fix compilation of addpm with MinGW64.
nt/addpm.c (_WIN32_IE) [_W64]: Move after inclusion of standard
 headers, since that's where _W64 is declared by MinGW64.
2013-03-27 09:21:43 +02:00
Eli Zaretskii
ee0fb40e7c Fix _setjmp calls for MinGW64.
nt/config.nt: Don't undefine HAVE__SETJMP here.
 nt/inc/ms-w32.h (HAVE__SETJMP) [_W64]: Undefine for MinGW64 here..
2013-03-26 22:30:43 +02:00
Eli Zaretskii
be3a31b22b Fix problem with _setjmp in MinGW64-compiled Emacs.
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.
2013-03-26 19:32:52 +02:00
Eli Zaretskii
9536ec028c More MinGW64 related fixes.
nt/addsection.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Do not
 define for MinGW64.
 nt/preprep.c (_ANONYMOUS_UNION, _ANONYMOUS_STRUCT): Do not define
 for MinGW64.
2013-03-26 16:26:24 +02:00
Eli Zaretskii
a18d7de614 Fix more MinGW64 incompatibilities.
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.
2013-03-26 15:45:01 +02:00
Eli Zaretskii
b88b62dec9 Fix more incompatibilities between MinGW.org and MinGW64 headers
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.
2013-03-26 10:21:27 +02:00
Eli Zaretskii
553fabe73a Fix incompatibilities between MinGW.org and MinGW64 headers
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.
2013-03-25 15:48:37 +02:00
Eli Zaretskii
53761081f7 Fix problems with MSVC build reported in bug #13939.
nt/inc/stdint.h (UINTPTR_MAX): Define.
 nt/nmake.defs (libc): Fix syntax of !if conditional.
2013-03-16 10:55:38 +02:00
Juanma Barranquero
5a96718d79 nt/config.nt: Sync with autogen/config.in.
(BSD_SYSTEM, BSD_SYSTEM_AHB, HAVE_ALARM, HAVE__PUTENV): Remove.
(HAVE_DECL_ALARM, HAVE_DECL_FDATASYNC, HAVE_DECL__PUTENV)
(HAVE_FDATASYNC): New macros.
2013-03-15 18:12:03 +01:00
Paul Eggert
47d7532e09 File synchronization fixes.
* 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
2013-03-13 11:42:22 -07:00
Paul Eggert
707431575a FILE's lock is now always .#FILE and may be a regular file.
* 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
2013-03-05 14:35:41 -08:00
Juanma Barranquero
8bd104b35b nt/config.nt: Sync with autogen/config.in.
(DATA_START, ORDINARY_LINK): Remove.
(HAVE_DATA_START, HAVE__PUTENV): New macros.
2013-03-04 18:14:08 +01:00
Eli Zaretskii
343a2aefb5 Implement CLASH_DETECTION for MS-Windows.
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.
2013-02-25 19:36:03 +02:00
Eli Zaretskii
c793958519 Remove functions and macros unused on MS-Windows.
src/w32.c (sys_chown): Remove unused function.

 nt/inc/ms-w32.h (chown, logb): Remove, unused.
2013-02-16 16:16:07 +02:00
Eli Zaretskii
cd91fb4b0a Don't use __STDC__ on MS-Windows unless necessary (Bug #9066).
nt/inc/ms-w32.h (__STDC__): Fiddle with value only for MSVC.

 src/w32term.c <input_signal_count>: Declare 'volatile' unconditionally.
2013-02-16 15:59:37 +02:00
Juanma Barranquero
ae18dc22e4 nt/config.nt: Sync with autogen/config.in.
(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.
2013-02-13 01:52:04 +01:00
Eli Zaretskii
8c0905acd1 MS-Windows followup for 2013-02-11T23:37:18Z!eggert@cs.ucla.edu.
lib/makefile.w32-in (GNULIBOBJS): Add $(BLD)/memrchr.$(O).
 ($(BLD)/memrchr.$(O)): New dependency.

 nt/inc/ms-w32.h: Add prototype for memrchr.
2013-02-12 05:52:04 +02:00
Glenn Morris
8c4b24b2ab Merge from emacs-24; up to 2012-12-14T15:22:24Z!monnier@iro.umontreal.ca 2013-02-06 22:23:54 -08:00
Glenn Morris
4e0b84797f Bump version number to 24.2.93 2013-02-06 22:15:20 -08:00
Eli Zaretskii
970b321fd0 Update nt/INSTALL. 2013-02-02 10:23:52 +02:00
Paul Eggert
8654f9d7d6 Use fdopendir, fstatat and readlinkat, for efficiency.
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
2013-01-31 22:30:51 -08:00
Eli Zaretskii
cf01a35981 Make opendir on MS-Windows accept a 'const char *'.
src/w32.c (opendir): Now accepts a 'const char *'.

 nt/inc/dirent.h (opendir): Update prototype.
2013-01-28 16:41:08 +02:00
Eli Zaretskii
99a7a59166 MS-Windows followup to bugfix #13387.
nt/inc/unistd.h (O_IGNORE_CTTY): Define, as it is unconditionally
 used in term.c.
2013-01-11 11:33:54 +02:00
Glenn Morris
c4dd9efc9e Bump version to 24.2.92
Regenerate etc/AUTHORS and lisp/ldefs-boot.el
2013-01-09 18:45:32 -08:00
Juanma Barranquero
401d44c9a8 nt/config.nt: Sync with autogen/config.in.
(HAVE_GTK_HANDLE_BOX_NEW, HAVE_GTK_TEAROFF_MENU_ITEM_NEW): New macros.
2013-01-09 16:07:44 +01:00
Glenn Morris
0a8bf3afca Merge from emacs-24; up to 2012-12-06T07:33:20Z!rgm@gnu.org 2013-01-02 18:37:57 -08:00
Glenn Morris
b8573968d8 Add 2013 to yet more FSF copyright years 2013-01-02 17:46:47 -08:00
Glenn Morris
f0ddbf7b7f Add 2013 to more copyright years 2013-01-02 17:35:49 -08:00
Paul Eggert
09b8afb6c8 Update copyright dates to 2013. 2013-01-02 08:30:50 -08:00
Paul Eggert
0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Eli Zaretskii
c1860cdc02 Fix the MS-Windows build.
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>.
2012-12-24 17:56:17 +02:00
Juanma Barranquero
ab1ce02438 nt/config.nt: Sync with autogen/config.in.
(BSD4_2): Remove.
2012-12-17 21:58:12 +01:00
Eli Zaretskii
66447e07c1 Support Posix ACL APIs on MS-Windows.
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.
2012-12-17 21:14:34 +02:00
Chong Yidong
c0c3924918 Bump version to 24.2.91.
Regenerate ldefs-boot.el and AUTHORS.
2012-12-15 22:16:02 +08:00
Eli Zaretskii
07c40d4eaa Commit nt/ChangeLog from the changeset of last commit. 2012-12-15 15:42:33 +02:00
Eli Zaretskii
b07286179e Fix bug #13079 on MS-Windows with temp files not being deleted.
src/w32.h (_child_process): New members input_file and
 pending_deletion.
 (register_child): First argument is now pid_t.
 (record_infile, record_pending_deletion): New prototypes.
 src/w32proc.c (new_child): Initialize input_file and
 pending_deletion members of the child.
 (delete_child): Delete the child's temporary input file, if any,
 that is pending deletion.
 (register_child): First argument is now pid_t.
 (record_infile, record_pending_deletion): New functions.
 (reap_subprocess): Fix a typo in DebPrint string.
 (sys_spawnve, sys_kill): Use pid_t for PID arguments.
 src/fileio.c (internal_delete_file): Return an int again: non-zero
 if delete-file succeeds, zero otherwise.
 src/lisp.h (internal_delete_file): Adjust prototype.
 src/callproc.c (Fcall_process): Don't overwrite infile with result
 of DECODE_FILE.
 [WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
 asynchronous subprocess, record the name of the input file name,
 if any.
 (delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
 delete the file, record it as pending deletion when the subprocess
 exits.

 nt/inc/ms-w32.h (sys_unlink): Provide prototype.
2012-12-15 15:38:21 +02:00
Eli Zaretskii
5c207910c4 Speed up most calls to 'stat' and 'lstat' on MS-Windows.
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.
2012-12-14 16:05:01 +02:00
Juanma Barranquero
de8cbebe11 nt/config.nt: Sync with autogen/config.in.
(HAVE_INOTIFY, HAVE_SYS_INOTIFY_H): New macros.
2012-12-13 02:18:28 +01:00
Juanma Barranquero
abf8abe58f nt/config.nt: Sync with autogen/config.in.
(HAVE_DECL_UNSETENV, HAVE_SIG2STR, VOID_UNSETENV): New macros.
(ULIMIT_BREAK_VALUE): Remove.
2012-12-11 02:35:28 +01:00
Daniel Colascione
78f9ea875a Move fix for bug#12993 to trunk 2012-12-10 09:55:03 -08:00
Daniel Colascione
743fa5cbdd Move fix for cygw32 icon issue from emacs-24 branch to trunk as Stefan Monnier requests 2012-12-10 09:52:35 -08:00