* src/nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
(EmacsView): Add variables for fullscreen.
(handleFS, setFSValue, toggleFullScreen): New in EmacsView.
(EmacsFSWindow): New interface for fullscreen.
* src/nsterm.m (NEW_STYLE_FS): New define.
(ns_fullscreen_hook, windowWillEnterFullScreen)
(windowDidEnterFullScreen, windowWillExitFullScreen)
(windowDidExitFullScreen, toggleFullScreen, handleFS)
(setFSValue): New functions.
(EmacsFSWindow): New implementation.
(canBecomeKeyWindow): New function for EmacsFSWindow.
(ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
(dealloc): Release nonfs_window if in fullscreen.
(updateFrameSize:): Call windowDidMove to update top/left.
(windowWillResize:toSize:): Check if frame is still maximized.
(initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
next_maximized, maximized_width, maximized_height and nonfs_window.
Call setCollectionBehavior if NEW_STYLE_FS. Initialize bwidth and
tbar_height.
(windowWillUseStandardFrame:defaultFrame:): Update frame parameter
fullscreen. Set maximized_width/height. Act on next_maximized.
lisp/ido.el (ido-max-directory-size): Default to nil.
The current default is small for POSIX systems, and impractical
on Windows 7 now that lstat returns directory sizes for NTFS.
* doc/emacs/search.texi (Special Isearch): Document the lax space search
feature and M-s SPC.
(Regexp Search): Move main search-whitespace-regexp description to
Special Isearch.
(Replace): Document replace-lax-whitespace.
* doc/emacs/misc.texi (emacsclient Options): Document the effect of
initial-buffer-choice on client frames. Document server-auth-dir.
Do not document server-host, which is bad security practice.
* doc/lispref/commands.texi (Click Events): Define "mouse position list".
Remove mention of unimplemented horizontal scroll bars.
(Drag Events, Motion Events): Refer to "mouse position list".
(Accessing Mouse): Document posnp.
* doc/lispref/errors.texi (Standard Errors): Tweak arith-error description.
Tweak markup. Remove domain-error and friends, which seem to be
unused after the floating-point code revamp.
* doc/lispref/functions.texi (Obsolete Functions): Obsolescence also affects
documentation commands. Various clarifications.
(Declare Form): New node.
* doc/lispref/loading.texi (Autoload):
* doc/lispref/help.texi (Documentation Basics): The special sequences can
trigger autoloading.
* doc/lispref/macros.texi (Defining Macros): Move description of `declare' to
Declare Form node.
* doc/lispref/numbers.texi (Integer Basics): Copyedits.
(Float Basics): Consider IEEE floating point always available.
(Random Numbers): Document actual limits.
(Arithmetic Operations): Clarify division by zero. Don't mention
the machine-independence of negative division since it does not
happen in practice.
* doc/lispref/os.texi (Idle Timers): Minor clarifications.
(User Identification): Add system-users and system-groups.
Martin Rudalics [Sun, 30 Sep 2012 09:10:59 +0000 (11:10 +0200)]
Handle window-height and window-width alist entries in `display-buffer'.
In buffer display functions handle window-height/window-width
alist entries. Suggested by Juri Linkov as fix for Bug#1806.
* window.el (window--display-buffer): New argument ALIST. Obey
window-height and window-width alist entries.
(window--try-to-split-window): New argument ALIST. Bind
window-combination-limit to t when the window's size shall be
changed and window-combination-limit equals `window-size'.
(display-buffer-in-atom-window)
(display-buffer-in-major-side-window)
(display-buffer-in-side-window, display-buffer-same-window)
(display-buffer-reuse-window, display-buffer-pop-up-frame)
(display-buffer-pop-up-window, display-buffer-below-selected)
(display-buffer-at-bottom, display-buffer-in-previous-window)
(display-buffer-use-some-window): Adjust all callers of
window--display-buffer and window--try-to-split-window.
(fit-frame-to-buffer): New option.
(fit-window-to-buffer): Can resize frames if fit-frame-to-buffer
is non-nil.
(display-buffer-in-major-side-window): Evaluate window-height /
window-width alist entries.
* help.el (temp-buffer-resize-frames)
(temp-buffer-resize-regexps): Remove options.
(temp-buffer-resize-mode): Adjust doc-string.
(resize-temp-buffer-window): Don't consult
temp-buffer-resize-regexps. Use fit-frame-to-buffer instead of
temp-buffer-resize-frames.
* dired.el (dired-mark-pop-up): Call
display-buffer-below-selected with a fit-window-to-buffer alist
entry.
* window.c (Vwindow_combination_limit): New default value.
(Qwindow_size): New symbol replacing Qtemp_buffer_resize.
* profiler.c: Don't include stdio.h, limits.h, sys/time.h,
signal.h, setjmp.h. Include systime.h instead.
(saturated_add): New function.
(record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
(record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
(profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
New static vars.
(enum profiler_cpu_running): New enumn.
(profiler_cpu_running): Now of that enum type, not bool.
All uses changed to store the new value.
(handle_profiler_signal): Rename from sigprof_handler_1,
for consistency with other handlers. Do not check whether
cpu_log is a hash-table if garbage collecting, since it
doesn't matter in that case.
(deliver_profiler_signal): Rename from sigprof_handler,
for consistency with other handlers.
(setup_cpu_timer): New function, with much of what used to be in
Fprofiler_cpu_start. Check for out-of-range argument.
Prefer timer_settime if available, and prefer
thread cputime clocks, then process cputime clocks, then
monotonic clocks, to the old realtime clock. Use make_timeval
to round more-correctly when falling back to setitimer.
(Fprofiler_cpu_start): Use it.
(Fprofiler_cpu_stop): Prefer timer_settime if available.
Don't assume that passing NULL as the 2nd argument of setitimer
is the same as passing a pointer to all-zero storage.
Ignore SIGPROF afterwards.
(malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
* sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
non-fatal signal handlers. Ignore SIGPROF on startup.
* syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
in profiler.c, since sysdep.c now uses it.
Stefan Monnier [Sun, 30 Sep 2012 03:44:35 +0000 (23:44 -0400)]
* lisp/vc/pcvs.el (cvs-cleanup-collection): Keep entries that are currently
visited in a buffer.
(cvs-insert-visited-file): New function.
(find-file-hook): Use it.
* lisp/vc/pcvs-info.el (cvs-fileinfo-pp): Don't use non-existent faces.
Stefan Monnier [Sun, 30 Sep 2012 03:26:52 +0000 (23:26 -0400)]
* lisp/url/url-handlers.el (url-file-handler): Don't assume any url-FOO
function is a good handler for FOO.
(url-copy-file, url-file-local-copy, url-insert-file-contents)
(url-file-name-completion, url-file-name-all-completions)
(url-handlers-create-wrapper): Explicitly register as handler.
Remove duplication of vc-sccs-registered definition
* lisp/vc/vc-sccs.el (vc-sccs-registered): Use the progn trick to get
the full definition in loaddefs, rather than duplicating it.
Cf vc-rcs-registered.
* lisp/hippie-exp.el (hippie-expand-try-functions-list)
(hippie-expand-verbose, hippie-expand-dabbrev-skip-space)
(hippie-expand-dabbrev-as-symbol, hippie-expand-no-restriction)
(hippie-expand-max-buffers, hippie-expand-ignore-buffers)
(hippie-expand-only-buffers): Do not autoload defcustoms.
* lisp/progmodes/vhdl-mode.el (vhdl-line-expand):
Explicitly load hippie-exp, so it does not get autoloaded
while hippie-expand-try-functions-list is let-bound.
Juri Linkov [Fri, 28 Sep 2012 16:38:07 +0000 (19:38 +0300)]
Display archive errors in the echo area instead of inserting to the file buffer.
* lisp/arc-mode.el (archive-extract-by-stdout): Change arg STDERR-FILE
to STDERR-TEST that can be a regexp matching a successful output.
Create a temporary file and redirect stderr to it. Search for
STDERR-TEST in the stderr output and display it in the echo area
if no match is found.
(archive-extract-by-file): New function like
`archive-extract-by-stdout' but extracting archives to files
and looking for successful matches in stdout. Function body is
mostly copied from `archive-rar-extract'.
(archive-rar-extract): Use `archive-extract-by-file'.
(archive-7z-extract): Use `archive-extract-by-stdout'.
Stefan Monnier [Fri, 28 Sep 2012 12:18:38 +0000 (08:18 -0400)]
* lisp/emacs-lisp/pcase.el (pcase--mark-used): New.
(pcase--u1): Use it.
* lisp/custom.el (load-theme): Set buffer-file-name so the load is recorded
in load-history with the right file name.
* doc-view.el (doc-view-current-cache-doc-pdf): New function.
(doc-view-doc->txt, doc-view-convert-current-doc): Use it.
(doc-view-get-bounding-box): Make bounding box slicing work for
ODF and DVI documents.
* type-break.el (type-break-mode, type-break-interval)
(type-break-good-rest-interval, type-break-keystroke-threshold):
No need to autoload.
(type-break-good-rest-interval, type-break-keystroke-threshold):
Add :set-after.
Stefan Monnier [Thu, 27 Sep 2012 03:16:35 +0000 (23:16 -0400)]
* lisp/image-mode.el: Use lexical-binding.
(image-mode-winprops): Use t to stand for the window of a buffer that's
not displayed.
* lisp/doc-view.el (doc-view-new-window-function): Handle t in winprops.
(doc-view-enlarge): Make it a real nop if the size is not changed.
(doc-view-display): Handle the case where the buffer is not (yet?)
displayed in any window.
(doc-view-saved-settings): New var.
(doc-view-mode): Use it.
(doc-view-fallback-mode): Set it.
Stefan Monnier [Thu, 27 Sep 2012 02:10:54 +0000 (22:10 -0400)]
* lisp/minibuf-eldef.el: Make it possible to replace (default ...) with [...].
Set lexical-binding.
(minibuffer-eldef-shorten-default): New var.
(minibuffer-default-in-prompt-regexps): Use it for new default.
(minibuf-eldef-setup-minibuffer): Add replacement functionality.
Paul Eggert [Thu, 27 Sep 2012 01:06:23 +0000 (18:06 -0700)]
Check more robustly for timer_settime.
This should fix an OS X build problem reported by Ivan Andrus in
<http://lists.gnu.org/archive/html/emacs-devel/2012-09/msg00671.html>.
* admin/merge-gnulib (GNULIB_MODULES): Add timer-time.
* configure.ac (gl_THREADLIB): Define to empty, since Emacs
does threads its own way.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* m4/timer_time.m4: New file, from gnulib.
* src/atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
call timer_settime.
Paul Eggert [Wed, 26 Sep 2012 20:00:29 +0000 (13:00 -0700)]
* character.h (MAYBE_UNIFY_CHAR): Remove.
* charset.c, charset.h (maybe_unify_char): Now static.
* charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
Since this stuff is now private to charset.c, there's no need for
a public macro and no need to inline by hand.
Stefan Monnier [Wed, 26 Sep 2012 04:02:21 +0000 (00:02 -0400)]
* lisp/profiler.el (profiler-start): Don't prompt for choice when there
isn't any.
(profiler-stop): Use new semantics of profiler-*-stop.
(profiler-reset, profiler--report-cpu): Don't signal an error if the
cpu profiler is not available.
* src/profiler.c (Fprofiler_cpu_stop, Fprofiler_memory_stop):
Return whether the profiler was running, instead of signaling an error
if it wasn't.
Wilson Snyder [Wed, 26 Sep 2012 03:32:51 +0000 (11:32 +0800)]
Synch verilog-mode.el to latest upstream version.
* verilog-mode.el (verilog-auto-ascii-enum, verilog-auto-inout)
(verilog-auto-input, verilog-auto-insert-lisp)
(verilog-auto-output, verilog-auto-output-every, verilog-auto-reg)
(verilog-auto-reg-input, verilog-auto-tieoff, verilog-auto-undef)
(verilog-auto-unused, verilog-auto-wire)
(verilog-forward-or-insert-line): Fix AUTOs with no trailing
newline. Reported by Andrew Jones.
(verilog-auto-inst) Support expanding $clog2 in AUTOINST.
Reported by Brad Dobbie.
(verilog-batch-delete-trailing-whitespace): Create
verilog-batch-delete-trailing-whitespace. Reported by Brad
Dobbie.
(verilog-auto-inout-param): Support AUTOINOUTPARAM for copying
parameters from another module. Reported by Dan Katz.
(verilog-auto, verilog-auto-assign-modport)
(verilog-auto-inout-modport): Add AUTOASSIGNMODPORT and
AUTOINOUTMODPORT for UVM interface module shell generation.
Reported by Brad Dobbie.
(verilog-auto-inst-interfaced-ports): Make default nil, as more
standard behavior.
(verilog-auto): Fix AUTO parameters with parenthesis arguments.
Reported by Matt Martin.
Paul Eggert [Tue, 25 Sep 2012 19:18:05 +0000 (12:18 -0700)]
Prefer POSIX timers if available.
They avoid a race if the timer is too close to the current time.
* atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
(set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
(init_atimer) [SIGEV_SIGAL]: Initialize them.
Eli Zaretskii [Tue, 25 Sep 2012 12:44:13 +0000 (14:44 +0200)]
Followup to not using maybe_unify_char in processing buffers and strings.
src/coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
CHAR_STRING_ADVANCE.
(STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
STRING_CHAR_ADVANCE.
Eli Zaretskii [Tue, 25 Sep 2012 11:50:01 +0000 (13:50 +0200)]
Fix handling of fatal signals and exceptions on MS-Windows.
src/w32proc.c (sys_signal): Handle all signals defined by the
MS-Windows runtime, not just SIGCHLD. Actually install the signal
handlers for signals supported by Windows. Don't override
term_ntproc as the handler for SIGABRT.
(sigaction): Rewrite to call sys_signal instead of duplicating its
code.
(sys_kill): Improve commentary.
src/w32.c (term_ntproc): Accept (and ignore) one argument, for
consistency with a signature of a signal handler. All callers
changed.
(init_ntproc): Accept an argument DUMPING. If dumping, don't
install term_ntproc as a signal handler for SIGABRT, as that
should be done by the dumped Emacs.
src/w32.h (init_ntproc, term_ntproc): Adjust prototypes.
src/w32select.c (term_w32select): Protect against repeated
invocation by setting clipboard_owner to NULL after calling
DestroyWindow.
src/emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
and term_ntproc to their modified signatures.
Martin Rudalics [Tue, 25 Sep 2012 08:20:05 +0000 (10:20 +0200)]
Improve resizing of minibuffer windows (Bug#12419).
* window.el (window--resize-child-windows): When resizing child
windows proportionally, process them in reverse order to
preserve the "when splitting a window the new one gets the odd
line" behavior.
(window--resize-root-window-vertically): When resizing the
minibuffer window try to affect only windows at the bottom of the
frame. (Bug#12419)