Dmitry Antipov [Mon, 14 Jan 2013 11:07:50 +0000 (15:07 +0400)]
Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
* eval.c (eval_sub): Protect `form' from being GCed before its
car and cdr becomes protected with the backtrace entry.
Dmitry Antipov [Mon, 14 Jan 2013 09:55:21 +0000 (13:55 +0400)]
Make Lisp_Save_Value more versatile storage for up to four objects.
* lisp.h (toplevel): Enumeration to describe types of saved objects.
(struct Lisp_Save_Value): New layout. Adjust comments.
(XSAVE_POINTER): New macro.
(XSAVE_INTEGER): Likewise.
(allocate_misc): Add prototype.
(free_misc): Likewise.
* alloc.c (allocate_misc): Now global.
(free_misc): Likewise. Adjust comment.
(make_save_value): Use new Lisp_Save_Value layout. Adjust comment.
(free_save_value): Likewise.
(mark_object): Likewise.
* editfns.c (save_excursion_save): Pack everything within
Lisp_Save_Value and so avoid xmalloc.
(save_excursion_restore): Adjust to match new layout. Use free_misc
because we do not allocate extra memory any more. Add eassert.
* print.c (print_object): New code to print Lisp_Save_Value. Do not
rely on valid_lisp_object_p if !GC_MARK_STACK. Adjust comments.
* dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
* lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
Jan Djärv [Sun, 13 Jan 2013 14:29:22 +0000 (15:29 +0100)]
* nsfont.m (LCD_SMOOTHING_MARGIN): New define.
(nsfont_draw): Remove disabling of LCD smoothing.
(ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix
Bug#11484 with LCD smooting on.
Jan Djärv [Fri, 11 Jan 2013 04:57:45 +0000 (05:57 +0100)]
Introduce scroll-bar-adjust-thumb-portion.
* xterm.c (scroll-bar-adjust-thumb-portion): New variable to
determine whether scroll bar thumb size should be adjusted or
not. Use variable for MOTIF.
* gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for
GTK.
Stefan Monnier [Sun, 13 Jan 2013 01:23:48 +0000 (20:23 -0500)]
* lisp/jit-lock.el (jit-lock-debug-mode): New minor mode.
(jit-lock--debug-fontifying): New var.
(jit-lock--debug-fontify): New function.
* lisp/subr.el (condition-case-unless-debug): Don't prevent catching the
error, just let the debbugger run.
* lisp/emacs-lisp/timer.el (timer-event-handler): Don't prevent debugging
timer code and don't drop errors silently.
Eli Zaretskii [Sat, 12 Jan 2013 11:25:39 +0000 (13:25 +0200)]
Fix filtering of file notification events in autorevert.el.
lisp/autorevert.el (auto-revert-notify-handler): Fix filtering of
file notification by ACTION. For filtering by file name, compare
only the non-directory part of the file name.
Stefan Monnier [Sat, 12 Jan 2013 03:15:14 +0000 (22:15 -0500)]
* lisp/vc/vc-bzr.el (vc-bzr--sanitize-header): New function.
(vc-bzr-checkin): Use it.
* lisp/vc/log-edit.el (log-edit-extract-headers): Don't presume FUNCTION
will preserve match-data.
Paul Eggert [Sat, 12 Jan 2013 01:15:06 +0000 (17:15 -0800)]
Fix bug with set-time-zone-rule and LOCALTIME_CACHE.
* editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
Clear tzvalbuf_in_environ if this workaround is in effect.
Problem and fix reported by Kazuhiro Ito.
Felix H. Dahlke [Fri, 11 Jan 2013 23:24:52 +0000 (18:24 -0500)]
* lisp/progmodes/js.el: Fix multiline declarations's indentation.
(js--declaration-keyword-re): New var.
(js--multi-line-declaration-indentation): New function.
(js--proper-indentation): Use it.
Aaron S. Hawley [Fri, 11 Jan 2013 23:08:55 +0000 (18:08 -0500)]
Disambiguate function and variable references in docstrings.
* lisp/comint.el (comint-history-isearch-message): Fix ambiguous doc
string cross-reference(s).
Michael Albinus [Fri, 11 Jan 2013 22:36:32 +0000 (23:36 +0100)]
* autorevert.el (top): Require 'cl in order to pacify byte compiler.
(auto-revert-notify-rm-watch): Ignore errors.
(auto-revert-notify-add-watch): Ignore errors. Use '(modify) for
inotify, and '(size last-write-time) for w32notify. Set
buffer-local `auto-revert-use-notify' to nil when adding a file
watch fails - this is a fallback to the file modification check.
(auto-revert-notify-event-p, auto-revert-notify-event-descriptor)
(auto-revert-notify-event-action)
(auto-revert-notify-event-file-name): New defuns.
(auto-revert-notify-handler): Use them. Implement first
plausibility checks.
(auto-revert-handler): Handle also `auto-revert-tail-mode'.
Dmitry Antipov [Fri, 11 Jan 2013 13:25:10 +0000 (17:25 +0400)]
Avoid unnecessary byte position calculation for the gap movement.
Since all users of move_gap do CHAR_TO_BYTE for other purposes
anyway, all of them should use move_gap_both instead.
* lisp.h (move_gap): Remove prototype.
* insdel.c (move_gap): Remove.
(move_gap_both): Add eassert.
* editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
* xml.c (parse_region): Likewise.
Dmitry Antipov [Fri, 11 Jan 2013 10:40:54 +0000 (14:40 +0400)]
Use point-max-marker and point-min-marker here and there.
* lisp/emacs-lisp/ert.el (ert-run-test): Use point-max-marker.
* lisp/erc/erc-dcc.el (erc-dcc-chat-setup): Likewise.
* lisp/gnus/gnus-async.el (gnus-async-article-callback): Likewise.
* lisp/erc/erc-dcc.el (erc-dcc-send-file): Use point-min-marker.
* lisp/gnus/gnus-art.el (gnus-mime-display-security): Use point-min-marker
and point-max-marker.
* mml-smime.el (mml-smime-encrypt-to-self): New user option analogous
to mml2015-encrypt-to-self.
(mml-smime-epg-encrypt): Respect mml-smime-encrypt-to-self.
Paul Eggert [Fri, 11 Jan 2013 02:40:58 +0000 (18:40 -0800)]
emacsclient -t should not suspend Emacs server
* lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
New functions.
* term.c (init_tty): Use them instead of rolling our own code.
* sysdep.c (tcsetpgrp_without_stopping): Likewise. Here, this
switches from 'signal' to 'pthread_sigmask', which is safer in
multithreaded applications.
* term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
which has already arranged for that.
(dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
This is the main part of the bug fix.
Paul Eggert [Fri, 11 Jan 2013 07:51:25 +0000 (23:51 -0800)]
Backport typo fix from trunk, for AIX.
* eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
This follows up on the 2012-09-29 patch that removed indirection
for the 'function' field. Reported by Sergey Vinokurov in
<http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
Elias Pipping [Thu, 10 Jan 2013 15:50:04 +0000 (10:50 -0500)]
* lisp/files.el (auto-mode-alist): Use doc-view for djvu files.
* lisp/doc-view.el (doc-view-document->bitmap):
Use doc-view-single-page-converter-function instead of
single-page-converter arg; adjust callers.
Wolfgang Jenkner [Thu, 10 Jan 2013 15:01:35 +0000 (10:01 -0500)]
* lisp/man.el: Handle different "man -k" behaviors. Use utf-8.
(Man-man-k-use-anchor): New var.
(Man-parse-man-k): New function.
(Man-completion-table): Use it.
(man): Flush the completion cache between uses.
* test/automated/man-tests.el: New file.
Michael Albinus [Thu, 10 Jan 2013 14:27:48 +0000 (15:27 +0100)]
* autorevert.el: Add file watch support.
(auto-revert-notify-enabled): New defconst.
(auto-revert-notify-watch-descriptor-hash-list)
(auto-revert-notify-watch-descriptor)
(auto-revert-notify-modified-p): New defvars.
(auto-revert-notify-rm-watch, auto-revert-notify-add-watch)
(auto-revert-notify-handler): New defuns.
(auto-revert-mode, global-auto-revert-mode): Remove file watches
when mode is disabled.
(auto-revert-handler): Check for `auto-revert-notify-modified-p'.
(auto-revert-buffers): Add file watches for active buffers.
Dmitry Antipov [Thu, 10 Jan 2013 10:30:16 +0000 (14:30 +0400)]
Omit buffer_slot_type_mismatch and use generic predicates to enforce
the type of per-buffer values where appropriate.
* src/lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
predicate, which is how it's really used now. Adjust comment.
* src/buffer.h (buffer_slot_type_mismatch): Remove prototype.
* src/buffer.c (buffer_slot_type_mismatch): Remove.
(DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
predicate. Adjust comment.
(syms_of_buffer): Use Qsymbolp for major-mode. Use Qintegerp for
fill-column, left-margin, tab-width, buffer-saved-size,
left-margin-width, right-margin-width, left-fringe-width,
right-fringe-width, scroll-bar-width and buffer-display-count.
Use Qstringp for default-directory, buffer-file-name,
buffer-file-truename and buffer-auto-save-file-name. Use Qfloatp for
scroll-up-aggressively and scroll-down-aggressively. Use Qnumberp for
line-spacing.
* src/data.c (store_symval_forwarding): Adjust to call the predicate.
* lisp/cus-start.el (toplevel): Only allow float values for
scroll-up-aggressively and scroll-down-aggressively.
Allow any number for line-spacing.
Roland Winkler [Thu, 10 Jan 2013 02:45:31 +0000 (21:45 -0500)]
* lisp/emacs-lisp/crm.el: Allow any regexp for separators.
(crm-default-separator): All spaces around the default comma separator.
(crm--completion-command): New macro.
(crm-completion-help, crm-complete, crm-complete-word): Use it.
(crm-complete-and-exit): Handle non-single-char separators.
Alan Mackenzie [Wed, 9 Jan 2013 21:33:00 +0000 (21:33 +0000)]
Fix bugs in the c-parse-state mechanism. Reuse some markers instead of
continually generating new ones.
cc-engine.el (c-state-old-cpp-beg-marker, c-state-old-cpp-end-marker):
New variables.
(c-append-lower-brace-pair-to-state-cache): Start a backward search for
"}" definitively outside CPP constructs.
(c-remove-stale-state-cache): Inform the caller of a need to search back
for a brace pair in certain circumstances.
(c-state-maybe-marker): New macro.
(c-parse-state): Reuse markers when appropriate.
Elias Pipping [Wed, 9 Jan 2013 21:24:42 +0000 (16:24 -0500)]
* lisp/doc-view.el: Add support for DjVu.
(doc-view-djvu->png-converter-function): New config var.
(doc-view-single-page-converter-function, doc-view--image-type)
(doc-view--image-file-extension): New vars.
(doc-view-mode): Initialize them.
(doc-view-goto-page): Use them.
(doc-view-mode-p): Add support for ddjvu.
(doc-view-djvu->png-converter-ddjvu, doc-view-djvu->png-1)
(doc-view-set-up-single-converter): New funs.
(doc-view-pdf/ps->png): Extend for djvu.
(doc-view-document->png): Rename from doc-view-pdf->png.
(doc-view-convert-current-doc): Handle djvu.
(doc-view-insert-image, doc-view-display)
(doc-view-already-converted-p): Don't hardcode png.
(doc-view-set-doc-type): Recognize djvu docs.
Elias Pipping [Wed, 9 Jan 2013 19:48:42 +0000 (14:48 -0500)]
* lisp/doc-view.el: Add support for mupdf converter.
(doc-view-pdfdraw-program, doc-view-pdf->png-converter-function)
(doc-view-ps->png-converter-function): New config vars.
(doc-view-pdf->png-converter-ghostscript)
(doc-view-ps->png-converter-ghostscript)
(doc-view-pdf->png-converter-mupdf): New functions.
(doc-view-pdf/ps->png, doc-view-pdf->png-1): Use them.
Dmitry Antipov [Wed, 9 Jan 2013 13:50:22 +0000 (17:50 +0400)]
* lisp.h (make_gap_1): New prototype.
* buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
gap size values.
* editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
naming convention.
(syms_of_editfns): Adjust defsubr. Drop commented-out obsolete code.
* insdel.c (make_gap_larger): Use GAP_BYTES_DFL.
(make_gap_smaller): Use GAP_BYTES_MIN. Adjust comment.
(make_gap_1): New function to adjust the gap of any buffer.
* coding.c (coding_alloc_by_making_gap): Use it.
* buffer.c (compact_buffer): Likewise. Use BUF_Z_BYTE, BUF_GAP_SIZE,
GAP_BYTES_DFL and GAP_BYTES_MIN. Adjust comment.
Michael Albinus [Wed, 9 Jan 2013 09:49:27 +0000 (10:49 +0100)]
* net/tramp.el (tramp-eshell-directory-change): Check remote-path
first in session cache: When `tramp-own-remote-path' is in
`tramp-remote-path', the remote path is only set in the session
cache.
Juri Linkov [Wed, 9 Jan 2013 00:20:02 +0000 (02:20 +0200)]
* lisp/international/mule-cmds.el (read-char-by-name): Move let-binding
of completion-ignore-case around completing-read to fix regression
exhibited by the test case `C-x 8 RET *acc TAB' and caused by
`string-match-p' using the nil value of `case-fold-search' and
`completion-ignore-case' in `completion-pcm--all-completions'..
Juri Linkov [Tue, 8 Jan 2013 23:50:40 +0000 (01:50 +0200)]
* lisp/textmodes/flyspell.el (flyspell-incorrect, flyspell-duplicate):
* lisp/progmodes/flymake.el (flymake-errline, flymake-warnline):
Use underline style wave on terminals that support it.
* src/xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
of (supports :underline (:style wave)).