Chong Yidong [Wed, 25 Dec 2013 03:05:11 +0000 (11:05 +0800)]
Document `eval' changes.
* doc/lispref/eval.texi (Eval): Document the LEXICAL arg to eval.
* doc/lispref/variables.texi (Variables, Void Variables): Use "scoping rule"
terminology consistently.
(Variable Scoping): Add index entries, and use "dynamic scope"
terminology in place of "indefinite scope" to reduce confusion.
(Lexical Binding): Document lexical environment format.
(Using Lexical Binding): Add index entries for error messages.
Eli Zaretskii [Tue, 24 Dec 2013 17:21:06 +0000 (19:21 +0200)]
Minor fixes in w32-shell-execute.
src/w32fns.c (Fw32_shell_execute): Ensure DOCUMENT is an absolute
file name when it is submitted to ShellExecute. Simplify code.
Don't test DOCUMENT for being a string, as that is enforced by
CHECK_STRING. Doc fix.
Tassilo Horn [Tue, 24 Dec 2013 15:30:59 +0000 (16:30 +0100)]
Fix missing arg in pcase example.
* doc/lispref/control.texi (Pattern matching case statement): Fix missing
argument in simple expression language sample. Add
some sample programs written in that language. Mention that
`pcase' requires lexical binding.
Eli Zaretskii [Mon, 23 Dec 2013 19:24:25 +0000 (21:24 +0200)]
Last portion of fix for bug #16051 with redisplay loops.
src/xdisp.c (redisplay_tool_bar): Modify the tool-bar-lines frame parameter
only when the new size is different from the old one, and the new
size can be achieved given the frame height.
Eli Zaretskii [Mon, 23 Dec 2013 16:36:34 +0000 (18:36 +0200)]
Fix most of bug #16051 with redisplay loops when resizing tool-bar.
src/xdisp.c (tool_bar_height): Use WINDOW_PIXEL_WIDTH to set up the
iterator X limits, not FRAME_TOTAL_COLS, for consistency with what
redisplay_tool_bar does. Improve and fix commentary.
(hscroll_window_tree): Don't assume w->cursor.vpos is within the
limits of the glyph matrices.
Martin Rudalics [Sun, 22 Dec 2013 15:19:09 +0000 (16:19 +0100)]
Handle Bug#16207 by being more restrictive when running hooks.
* window.c (unwind_change_frame): New function.
(Fset_window_configuration): Don't run configuration change hook
while the frame configuration is unsafe. Call select_window
twice.
Dmitry Gutov [Sun, 22 Dec 2013 06:04:40 +0000 (08:04 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-smie--implicit-semi-p): Return t
after `{'. We need it after block openers, and it doesn't seem
to hurt after hash openers.
Dmitry Gutov [Sun, 22 Dec 2013 04:57:00 +0000 (06:57 +0200)]
Integrate ruby-mode with electric-indent-mode better
* lisp/progmodes/ruby-mode.el (ruby--at-indentation-p): New function,
extracted from `ruby-smie-rules'.
(ruby--electric-indent-chars): New variable.
(ruby--electric-indent-p): New function.
(ruby-mode): Use `electric-indent-functions' instead of
`electric-indent-chars'.
Ted Zlatanov [Sat, 21 Dec 2013 20:33:44 +0000 (15:33 -0500)]
eww: machinery to list browser history
* net/eww.el (eww-list-histories, eww-list-histories)
(eww-history-browse, eww-history-quit, eww-history-kill)
(eww-history-mode-map, eww-history-mode): New command and
functions to list browser histories.
Chong Yidong [Sat, 21 Dec 2013 15:31:09 +0000 (23:31 +0800)]
Don't make faces when loading Custom themes.
* custom.el (custom-theme-recalc-face): Do nothing if the face is
undefined. Thus, theme settings for undefined faces do not take
effect until the faces are defined with defface, the same as with
theme variables.
* faces.el (face-spec-set): Use face-spec-recalc in all cases.
(face-spec-reset-face): Don't assign extra properties in temacs.
(face-spec-recalc): Apply X resources too.
Chong Yidong [Sat, 21 Dec 2013 08:37:08 +0000 (16:37 +0800)]
Tweak C-x TAB behavior changes, and update docs.
* lisp/indent.el (indent-rigidly-map): Add docstring, and move commands
into named functions.
(indent-rigidly-left, indent-rigidly-right)
(indent-rigidly-left-to-tab-stop)
(indent-rigidly-right-to-tab-stop): New functions. Decide on
indentation direction based on bidi direction, and accumulate
sequential commands in a single undo boundary.
(indent-rigidly--pop-undo): New utility function.
* w32term.h (struct scroll_bar): Remove member `fringe_extended_p'.
* w32term.c (w32_draw_fringe_bitmap, x_scroll_run): Remove code for
fringe background extension.
(x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
because they are now always the same as `left' and `width',
respectively. Remove code for the case that `width' and
`sb_width' are different.
Juri Linkov [Fri, 20 Dec 2013 20:20:39 +0000 (22:20 +0200)]
* lisp/saveplace.el (save-place-to-alist): Add `dired-filename' as
a position when `dired-directory' is non-nil. Check integer
positions with `integerp'.
(toggle-save-place, save-places-to-alist): Add check for
`dired-directory'.
(save-place-find-file-hook): Check integer positions with
`integerp'.
(save-place-dired-hook): Use `dired-goto-file' when
`dired-filename' is found in the assoc list. Check integer
positions with `integerp'.
(dired-initial-position-hook): Rename from `dired-initial-point-hook'.
* lisp/dired.el (dired-initial-position-hook): Rename back from
`dired-initial-point-hook'.
(dired-initial-position): Rename `dired-initial-point-hook' to
`dired-initial-position-hook'.
(dired-file-name-at-point): Doc fix.
Juri Linkov [Fri, 20 Dec 2013 19:55:56 +0000 (21:55 +0200)]
* lisp/replace.el (read-regexp-defaults-function): New defcustom.
(read-regexp-suggestions): New function.
(read-regexp): Use `read-regexp-defaults-function' to get default values.
Use `read-regexp-suggestions'. Add non-empty default to history
for empty input.
(occur-read-regexp-defaults-function): Remove function.
(occur-read-primary-args): Use `regexp-history-last' instead of
`occur-read-regexp-defaults-function'.
* lisp/hi-lock.el (hi-lock-read-regexp-defaults-function): Remove function.
(hi-lock-line-face-buffer, hi-lock-face-buffer)
(hi-lock-face-phrase-buffer): Use `regexp-history-last' instead of
`hi-lock-read-regexp-defaults-function'. Doc fix.
(hi-lock-face-symbol-at-point): Replace `find-tag-default-as-regexp'
with `find-tag-default-as-symbol-regexp'. Doc fix.
(hi-lock-read-regexp-defaults): Remove function.
(hi-lock-regexp-okay): Add check for null.
* lisp/progmodes/grep.el (grep-read-regexp): Use `grep-tag-default' for
the arg DEFAULTS. Move formatting of the prompt to `read-regexp'.
* lisp/subr.el (find-tag-default-as-symbol-regexp): New function.
(find-tag-default-as-regexp): Move symbol regexp formatting to
`find-tag-default-as-symbol-regexp'.
Stephen Berman [Fri, 20 Dec 2013 17:21:12 +0000 (18:21 +0100)]
New implementation of Todo item insertion commands and key bindings.
* calendar/todo-mode.el: New implementation of item insertion
commands and key bindings.
(todo-key-prompt): New face.
(todo-insert-item): New command.
(todo-insert-item--parameters): New defconst, replacing defvar
todo-insertion-commands-args-genlist.
(todo-insert-item--param-key-alist): New defconst, replacing
defvar todo-insertion-commands-arg-key-list.
(todo-insert-item--keyof, todo-insert-item--this-key): New defsubsts.
(todo-insert-item--argsleft, todo-insert-item--apply-args)
(todo-insert-item--next-param): New functions.
(todo-insert-item--args, todo-insert-item--argleft)
(todo-insert-item--argsleft, todo-insert-item--newargsleft):
New variables.
(todo-key-bindings-t): Change binding of "i" from
todo-insertion-map to todo-insert-item.
(todo-powerset, todo-gen-arglists, todo-insertion-commands-args)
(todo-insertion-command-name, todo-insertion-commands-names)
(todo-define-insertion-command, todo-insertion-commands)
(todo-insertion-key-bindings, todo-insertion-map): Remove.
Stephen Berman [Fri, 20 Dec 2013 17:16:47 +0000 (18:16 +0100)]
Todo mode bug fixes and new features.
* calendar/todo-mode.el: Bug fixes and new features.
(todo-toggle-item-highlighting): Use eval-and-compile instead of
eval-when-compile.
(todo-move-category): Allow choosing a non-existing todo file to
move the category to, and create that file.
(todo-default-priority): New user option.
(todo-set-item-priority): Use it.
(todo-desktop-save-buffer, todo-restore-desktop-buffer): New functions.
(desktop-restore-file-buffer): Declare.
(desktop-buffer-mode-handlers): Add todo-restore-desktop-buffer.
(todo-modes-set-2): Locally set desktop-save-buffer to
todo-desktop-save-buffer.
(todo-mode, todo-archive-mode, todo-filtered-items-mode)
(auto-mode-alist): Add autoload cookie.