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.
Martin Rudalics [Fri, 20 Dec 2013 10:48:36 +0000 (11:48 +0100)]
Some more fixes for pixelwise resizing.
Remove scroll_bar_actual_width from frames.
* frame.h (struct frame): Remove scroll_bar_actual_width slot.
* frame.c (Fscroll_bar_width): Return scroll bar area width.
(x_figure_window_size):
* nsterm.m (x_set_window_size):
* widget.c (set_frame_size):
* w32term.c (x_set_window_size):
* xterm.c (x_set_window_size, x_set_window_size_1): Don't set
scroll_bar_actual_width.
Convert scroll_bar members to integers on Windows.
* w32term.h (struct scroll_bar): Convert top, left, width,
height, start, end and dragging to integers.
* w32fns.c (w32_createscrollbar): Remove XINT conversions for
scroll_bar members.
* w32term.c (w32_set_scroll_bar_thumb)
(w32_scroll_bar_handle_click): Remove XINT conversions for
scroll_bar members. Treat bar->dragging as integer.
(x_scroll_bar_create): Call ALLOCATE_PSEUDOVECTOR with "top" as
first element. Remove XINT conversions for scroll_bar members.
(w32_set_vertical_scroll_bar, x_scroll_bar_report_motion):
Remove XINT conversions for scroll_bar members.
Fix assignment for new window total sizes.
* window.c (Fwindow_resize_apply_total): Assign values for
minibuffer window.
* window.el (window--pixel-to-size): Remove function.
(window--pixel-to-total-1, window--pixel-to-total): Fix
calculation of new total sizes.
Dmitry Gutov [Fri, 20 Dec 2013 05:20:33 +0000 (07:20 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-align-to-stmt-keywords): New
option.
(ruby-smie--indent-to-stmt-p): Use it.
(ruby-smie-rules): Revert the logic in the handling of `when'.
Expand the `begin' clause to handle `ruby-align-to-stmt-keywords'.
(ruby-deep-arglist, ruby-deep-indent-paren)
(ruby-deep-indent-paren-style): Update docstrings to note that the
vars don't have any effect with SMIE.
* test/automated/ruby-mode-tests.el: Add tests for
`ruby-align-to-stmt-keywords'.
* test/indent/ruby.rb: Update examples to reflect the lack of change in
default indentation of `begin' blocks.
Juri Linkov [Fri, 20 Dec 2013 00:07:08 +0000 (02:07 +0200)]
* lisp/replace.el (occur-engine): Use `add-face-text-property'
to add the face property to matches and titles.
* lisp/hi-lock.el (hi-green): Use lighter color "light green" closer to
the palette of other hi-lock colors.
(hi-lock-set-pattern): Prepend hi-lock face to the existing face.
Juri Linkov [Thu, 19 Dec 2013 22:12:12 +0000 (00:12 +0200)]
* lisp/isearch.el (isearch-mode-map): Bind `M-s e' to `isearch-edit-string'.
Put :advertised-binding on `M-s c', `M-s r', `M-s e'. (Bug#16035)
(minibuffer-history-symbol): Move variable declaration closer to
its usage.
* lisp/isearchb.el (isearchb): Add `event-basic-type' on `last-command-event'.
(Bug#14785)
* lisp/gnus/gnus.el (gnus-suppress-keymap):
* lisp/gnus/gnus-art.el (gnus-article-mode-map):
* lisp/gnus/gnus-group.el (gnus-group-mode-map):
* lisp/gnus/gnus-sum.el (gnus-summary-mode-map, gnus-summary-backend-map):
Remove [backspace] key binding because it shadows DEL (bug#16035).
Juri Linkov [Thu, 19 Dec 2013 21:02:46 +0000 (23:02 +0200)]
* lisp/simple.el (eval-expression-print-format): Don't check for
command names and the last command. Always display additional
formats of the integer result in the echo area, and insert them
to the current buffer only with a zero prefix arg.
Display character when char-displayable-p is non-nil.
(eval-expression): With a zero prefix arg, set `print-length' and
`print-level' to nil, and insert the integer values from
`eval-expression-print-format' at the end. Doc fix.
* lisp/emacs-lisp/lisp-mode.el (eval-print-last-sexp): Add arg
`eval-last-sexp-arg-internal'. Doc fix.
(eval-last-sexp-1): Pass arg `eval-last-sexp-arg-internal' to
`eval-last-sexp-print-value'. Doc fix.
(eval-last-sexp-print-value): Add arg `eval-last-sexp-arg-internal'.
Set `print-length' and `print-level' to nil when arg is zero.
(eval-last-sexp): Doc fix.
(eval-defun-2): Print the integer values from
`eval-expression-print-format' at the end.
* lisp/emacs-lisp/edebug.el (edebug-eval-defun): Print the integer
values from `eval-expression-print-format' at the end.
* lisp/ielm.el (ielm-eval-input): Print the integer
values from `eval-expression-print-format' at the end.
Stefan Monnier [Thu, 19 Dec 2013 14:00:55 +0000 (09:00 -0500)]
* lisp/hl-line.el (hl-line-make-overlay): New fun. Set priority.
(hl-line-highlight, global-hl-line-highlight): Use it.
(hl-line-overlay): Use defvar-local.
* src/nsterm.m (Qfile, Qurl): New.
(EV_MODIFIERS2): New macro.
(EV_MODIFIERS): Use EV_MODIFIERS2.
(ns_term_init): Remove font and color from DND, does not work on
newer OSX, and other ports don't have them.
(performDragOperation:): Handle modifiers used during drag.
Use DRAG_N_DROP_EVENT instead of NS specific events.
Remove global Lisp variables used to communicate with ns-win.el.
Remove font and color handling.
(syms_of_nsterm): Defsym Qfile and Qurl.
Jan Djärv [Thu, 19 Dec 2013 08:40:11 +0000 (09:40 +0100)]
Redo size constraint for NS so frames can span screens.
* nsterm.h (ns_output): Remove dont_constrain.
* nsterm.m (NSTRACE_SIZE, NSTRACE_RECT): New macros.
(ns_constrain_all_frames, x_set_offset): Remove assignment to
dont_constrain.
(updateFrameSize:, windowWillResize:toSize:): Add trace.
(constrainFrameRect): Remove special case nr_screens == 1.
Don't constrain size to size of view.
Dmitry Gutov [Thu, 19 Dec 2013 04:21:44 +0000 (06:21 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p): Allow the
first arg to be a string (fixed dead code), or an operator symbol.
(ruby-smie--forward-token): Tokenize ` @ ' before strings and
operator symbols.
(ruby-smie-rules): Remove parent token check in the `.' clause, it
did nothing. Don't respond to `(:after ".")', it will be called
with :before anyway. Remove the ` @ ' rule, it didn't seem to
change anything. Only return indentation for binary operators
when they are hanging. De-dent opening paren when its parent is
`.', otherwise it looks bad when the dot is not at bol or eol.
Juri Linkov [Thu, 19 Dec 2013 00:29:41 +0000 (02:29 +0200)]
query-replace backward
* lisp/replace.el (query-replace-read-args): Split a non-negative arg
and a negative arg into separate elements.
(query-replace, query-replace-regexp, replace-string)
(replace-regexp): Add arg `backward'. Doc fix.
(replace-match-maybe-edit): When new arg `backward' is non-nil,
move point to the beginning of the match.
(replace-search, replace-highlight): Use new arg `backward'
to set the value of `isearch-forward'.
(perform-replace): Add arg `backward' and use it to perform
replacement backward.
* lisp/isearch.el (isearch-query-replace): Use a negative prefix arg
to call `perform-replace' with a non-nil arg `backward'.
Juri Linkov [Wed, 18 Dec 2013 23:51:45 +0000 (01:51 +0200)]
* lisp/vc/log-edit.el (log-edit-hook): Add `log-edit-insert-message-template'
to the default list. Move `log-edit-show-files' to the end.
Add more available functions to options.
(log-edit): Move default specific settings to
`log-edit-insert-message-template'. Don't move point.
(log-edit-insert-message-template): New function.
(log-edit-insert-changelog): Add `save-excursion' and don't move point.
Paul Eggert [Wed, 18 Dec 2013 20:36:50 +0000 (12:36 -0800)]
Minor fixes for recent openp changes.
* lisp.h (GCPRO7): New macro.
* lread.c (openp): Use bool for boolean; all callers changed.
Protect save_string from GC. Don't assume that file descriptors
are nonzero. Redo save_mtime comparison to avoid bogus GCC
warning about uninitialized variable.
Eli Zaretskii [Wed, 18 Dec 2013 16:01:43 +0000 (18:01 +0200)]
Fix bug #16179 with ls-lisp emulation of the ls -s switch.
src/ls-lisp.el (ls-lisp-insert-directory): Don't modify %d and %f
formats for displaying file sizes when the -s switch is given.
Instead, compute a separate format for displaying the size in
blocks, which is displayed in addition to the "regular" size.
When -h is given in addition to -s, produce size in blocks in
human-readable form as well.
Chong Yidong [Wed, 18 Dec 2013 08:53:22 +0000 (16:53 +0800)]
Fix loading of themes when NO-ENABLE is t.
* lisp/custom.el (custom-push-theme): If custom--inhibit-theme-enable
is non-nil, do not create a new entry in the symbol's theme-value
or theme-face property; update theme-settings only.
Glenn Morris [Wed, 18 Dec 2013 03:21:48 +0000 (19:21 -0800)]
Add load-prefer-newer option, to load .el if newer than .elc
* src/lread.c (Fload): Pass load_prefer_newer to openp.
Don't bother checking mtime if openp already did it.
(openp): Add `newer' argument, to check all suffixes
and find the newest file.
(syms_of_lread) <load_prefer_newer>: New option.
* lisp/startup.el (fancy-startup-screen, fancy-about-screen):
Set browse-url-browser-function to eww-browse-url locally.
(Bug#14751)
* lisp/net/browse-url.el (browse-url-browser-function): Move `eww'
closer to similar functions.
* lisp/net/eww.el (browse-web): Add alias to `eww'.
(eww-mode-map): Bind "r" to `eww-forward-url' like in Info.
Bind "S-SPC" to `scroll-down-command'. (Bug#16178)
Paul Eggert [Tue, 17 Dec 2013 20:43:43 +0000 (12:43 -0800)]
Merge from gnulib, incorporating:
2013-12-17 gettimeofday: port recent C++ fix to Emacs
2013-12-17 gettimeofday: fix C++ crosscompilation
2013-12-17 qacl: port to Windows better
* lib/file-has-acl.c, lib/time.in.h, m4/gettimeofday.m4, m4/time_h.m4:
Update from gnulib.
* lib/gnulib.mk: Regenerate.
Eli Zaretskii [Tue, 17 Dec 2013 17:46:31 +0000 (19:46 +0200)]
Fix some warnings in w32 specific code.
src/w32term.c (w32_initialize): Declare the argument of
set_user_model as const.
src/w32menu.c <MessageBoxW_Proc>: Fix argument declarations.
(w32_menu_show): Constify some arguments passed to MessageBox.
src/w32uniscribe.c (uniscribe_font_driver): Use LISP_INITIALLY_ZERO
to initialize Lisp objects.
src/w32font.c (w32font_driver): Use LISP_INITIALLY_ZERO to
initialize Lisp objects.
src/frame.c (x_set_frame_parameters) [HAVE_X_WINDOWS]: Declare and
use variables used only on X under that condition.
src/fileio.c (Fcopy_file) [!WINDOWSNT]: Don't declare on Windows
variables not used there.
Martin Rudalics [Tue, 17 Dec 2013 17:29:11 +0000 (18:29 +0100)]
Remove no more needed bindings of split-height-threshold.
* dired.el (dired-mark-pop-up):
* register.el (register-preview): Don't bind
split-height-threshold here since it's now done in
display-buffer-below-selected.
oblique [Tue, 17 Dec 2013 16:03:23 +0000 (00:03 +0800)]
Fix 256 color mapping in rxvt.el
* term/rxvt.el (rxvt-rgb-convert-to-16bit): Standardize with
xterm-rgb-convert-to-16bit.
(rxvt-register-default-colors): Standardize with
xterm-register-default-colors.
Dmitry Gutov [Tue, 17 Dec 2013 01:31:55 +0000 (03:31 +0200)]
Fix bug#16116
* lisp/emacs-lisp/smie.el (smie-indent--rule): Extract `smie-indent--rule-1'.
(smie-indent-close): Call `smie-indent--rule-1' with METHOD
:close-all, to see which indentation method to use.
(smie-rules-function): Document the method :close-all.
* test/indent/ruby.rb: Update examples according to the change
in `smie-indent-close'.
Paul Eggert [Mon, 16 Dec 2013 22:35:57 +0000 (14:35 -0800)]
Fix problems with CANNOT_DUMP and EMACSLOADPATH.
* leim/Makefile.in (RUN_EMACS):
* lisp/Makefile.in (emacs): Add lisp src to EMACSLOADPATH.
* lisp/loadup.el: Check for src/bootstrap-emacs only when Emacs can dump.
Expand dir too, in case it's relative.
* src/lread.c (init_lread): If CANNOT_DUMP, we can't be dumping.
Juri Linkov [Mon, 16 Dec 2013 21:48:51 +0000 (23:48 +0200)]
* lisp/desktop.el (desktop-auto-save-timeout): Change default to
`auto-save-timeout'. Doc fix.
(desktop-save): Skip the timestamp in desktop-saved-frameset
when checking for auto-save changes.
(desktop-auto-save): Don't call desktop-auto-save-set-timer since
`desktop-auto-save' is called repeatedly by the idle timer.
(desktop-auto-save-set-timer): Replace `run-with-timer' with
`run-with-idle-timer' and a non-nil arg REPEAT. Doc fix.