Eli Zaretskii [Mon, 9 Feb 2015 16:24:46 +0000 (18:24 +0200)]
Speed up vertical-motion when screen coordinates are known
src/indent.c (Fvertical_motion): Accept an additional argument
CUR-COL and use it as the starting screen coordinate.
src/window.c (window_scroll_line_based, Fmove_to_window_line): All
callers of vertical-motion changed.
doc/lispref/positions.texi (Screen Lines): Update the documentation of
vertical-motion to document the new additional argument.
Dima Kogan [Mon, 9 Feb 2015 14:52:48 +0000 (15:52 +0100)]
Try non-scaled xld fonts first, and scaled if that failed.
Fixes: debbugs:19117
* xfaces.c (realize_basic_faces): Don't set Qscalable_fonts_allowed to
t.
* font.c (font_score): Try to find a font without scaling first,
and only accept scalable fonts if we did not get a match.
Paul Eggert [Mon, 9 Feb 2015 07:12:04 +0000 (23:12 -0800)]
Use C99's INFINITY and NAN macros
* lread.c: Include <math.h>.
(string_to_number): Use INFINITY and NAN rather than rolling our own.
This avoids some runtime diagnostics when building with
gcc -fsanitize=undefined.
Paul Eggert [Mon, 9 Feb 2015 00:21:11 +0000 (16:21 -0800)]
Better distinguish infinite from invalid times
* editfns.c (check_time_validity): New function.
(decode_time_components): Return int, not bool.
Return -1 (not 0) if the time is out of range.
All callers changed.
(lisp_time_struct, lisp_seconds_argument): Distinguish better
between time overflow and invalid time values.
Ulrich Müller [Sun, 8 Feb 2015 20:00:49 +0000 (21:00 +0100)]
configure --with-gameuser now defaults to games group.
* configure.ac (--with-gameuser): Default to 'games' group instead
of 'games' user.
* lisp/play/gamegrid.el: Update comment to reflect that the
'update-game-score' helper program is now setgid by default.
Paul Eggert [Sun, 8 Feb 2015 18:52:05 +0000 (10:52 -0800)]
Minor tweaks to frame_size_history_add
* frame.c (frame_size_history_add): Don't assume length fits in 'int'.
Prefer XCAR and XCDR to Fcar and Fcdr when the arg is a cons.
(Fframe_after_make_frame): Simplify.
* gtkutil.c: Remove commented-out code.
* xfns.c (Fx_create_frame): Fix indenting.
Oleh Krehel [Sat, 7 Feb 2015 17:54:07 +0000 (18:54 +0100)]
lisp/outline.el (outline-show-entry): Fix one invisible char
* lisp/outline.el (outline-show-entry): Previously, when called for
the last outline in a file, a single invisible char was left.
Add a check for this condition.
Stefan Monnier [Sun, 8 Feb 2015 13:51:10 +0000 (08:51 -0500)]
* src/data.c (Findirect_function): Don't signal an error
* src/data.c (Findirect_function): Like `symbol-function', don't signal an
error for void functions any more.
* lisp/subr.el (indirect-function): Change advertised calling convention.
Fixes: debbugs:19667
* lisp/progmodes/python.el
(python-shell-completion-native-get-completions): Force process
buffer.
(python-shell-completion-at-point): Handle case where call is not
in a shell buffer.
Fixes: debbugs:19637
* lisp/progmodes/python.el (python-eldoc--get-symbol-at-point): New
function.
(python-eldoc--get-doc-at-point, python-eldoc-at-point): Use it.
* test/automated/python-tests.el
(python-eldoc--get-symbol-at-point-1)
(python-eldoc--get-symbol-at-point-2)
(python-eldoc--get-symbol-at-point-3)
(python-eldoc--get-symbol-at-point-4): New tests.
Fixes: debbugs:19761
* lisp/progmodes/python.el
(python-hideshow-forward-sexp-function): New function based on
Carlos Pita <carlosjosepita@gmail.com> patch.
(python-mode): Make `hs-special-modes-alist` use it and initialize
the end regexp with the empty string to avoid skipping parens.
* test/automated/python-tests.el
(python-tests-visible-string): New function.
(python-parens-electric-indent-1)
(python-triple-quote-pairing): Fix indentation, move require calls.
(python-hideshow-hide-levels-1)
(python-hideshow-hide-levels-2): New tests.
Martin Rudalics [Sat, 7 Feb 2015 10:51:03 +0000 (11:51 +0100)]
Try to improve handling of fullwidth/-height frames.
* frame.el (frame-notice-user-settings): Update
`frame-size-history'.
(make-frame): Update `frame-size-history'. Call
`frame-after-make-frame'.
* faces.el (face-set-after-frame-default): Remove call to
frame-can-run-window-configuration-change-hook.
* frame.c (frame_size_history_add): New function.
(frame_inhibit_resize): Consider frame_inhibit_implied_resize
only after frame's after_make_frame slot is true. Inhibit
resizing fullwidth-/height frames in one direction only. Update
frame_size_history.
(adjust_frame_size): Call frame_size_history_add.
(make_frame): Initalize after_make_frame slot.
(Fmake_terminal_frame): Adjust adjust_frame_size call.
(Fcan_run_window_configuration_change_hook): Rename to
Fframe_after_make_frame. Set after_make_frame slot. Return
second argument.
(x_set_frame_parameters): Postpone handling fullscreen parameter
until after width and height parameters have been set. Apply
width and height changes only if can_x_set_window_size is true.
Update frame_size_history.
(Qadjust_frame_size_1, Qadjust_frame_size_2)
(Qadjust_frame_size_3, QEmacsFrameResize, Qframe_inhibit_resize)
(Qx_set_fullscreen, Qx_check_fullscreen, Qx_set_window_size_1)
(Qxg_frame_resized, Qxg_frame_set_char_size_1)
(Qxg_frame_set_char_size_2, Qxg_frame_set_char_size_3)
(Qxg_change_toolbar_position, Qx_net_wm_state)
(Qx_handle_net_wm_state, Qtb_size_cb, Qupdate_frame_tool_bar)
(Qfree_frame_tool_bar): New symbol for updating
frame_size_history.
(Qtip_frame, Qterminal_frame): New symbols.
(Vframe_adjust_size_history): Rename to frame_size_history.
* frame.h (struct frame): Rename
can_run_window_configuration_change_hook slot to
after_make_frame.
(frame_size_history_add): Extern.
* gtkutil.c (xg_frame_resized): Call frame_size_history_add.
Don't set FRAME_PIXEL_WIDTH and FRAME_PIXEL_HEIGHT here.
(xg_frame_set_char_size): Try to preserve the status of
fullwidth/-height frames. Call frame_size_history_add.
(tb_size_cb, update_frame_tool_bar, free_frame_tool_bar)
(xg_change_toolbar_position): Call frame_size_history_add.
* w32fns.c (x_change_tool_bar_height): Handle frame's fullscreen
status.
(Fx_create_frame): Process fullscreen parameter after frame has
been resized.
(x_create_tip_frame): Pass Qtip_frame to adjust_frame_size.
(Fx_frame_geometry): Don't pollute pure storage.
* w32term.c (w32_read_socket): For WM_WINDOWPOSCHANGED,
WM_ACTIVATE and WM_ACTIVATEAPP set frame's visibility before
calling w32fullscreen_hook. For WM_DISPLAYCHANGE call
w32fullscreen_hook immediately.
(x_fullscreen_adjust, x_check_fullscreen): Remove.
(w32fullscreen_hook): Call change_frame_size just as with a
"normal" frame resize operation. Call do_pending_window_change.
(x_set_window_size): Try to handle fullwidth and fullheight more
accurately. Don't rely on w32_enable_frame_resize_hack.
(w32_enable_frame_resize_hack): Remove variable.
* widget.c (EmacsFrameResize): Remove dead code. Call
frame_size_history_add
* window.c (run_window_configuration_change_hook): Check
f->after_make_frame instead of
f->can_run_window_configuration_change_hook.
* xfns.c (x_change_tool_bar_height): Handle frame's fullscreen status.
(Fx_create_frame): Process fullscreen parameter after frame has
been resized.
(Fx_frame_geometry): Don't pollute pure storage.
* xterm.c (x_net_wm_state, x_handle_net_wm_state): Call
frame_size_history_add.
(do_ewmh_fullscreen): Handle x_frame_normalize_before_maximize.
(x_check_fullscreen): Count in menubar when calling
XResizeWindow. Wait for ConfigureNotify event. Call
frame_size_history_add.
(x_set_window_size_1): Remove PIXELWISE argument. Try to handle
changing a fullheight frame's width or a fullwidth frame's
height. Call frame_size_history_add.
(x_set_window_size): Simplify xg_frame_set_char_size and
x_set_window_size_1 calls.
(x_frame_normalize_before_maximize): New variable.
Paul Eggert [Sat, 7 Feb 2015 03:28:09 +0000 (19:28 -0800)]
Remove no-longer-used cursor_in_echo_area code
* dispnew.c (set_window_cursor_after_update, update_frame_1):
Remove checks for negative cursor_in_echo_area, since this var is
a boolean, and has been a boolean for some time. Simplify.
* dispnew.c (init_display):
* xdisp.c (message3_nolog, vmessage): Use bool for boolean.
Dmitry Gutov [Sat, 7 Feb 2015 01:18:24 +0000 (04:18 +0300)]
Make vc-test-svn03-working-revision pass
* test/automated/vc-tests.el (vc-test--working-revision): Fix
`vc-working-revision' checks to be compared against nil, which is
what is should return for unregistered files.
Stefan Monnier [Thu, 5 Feb 2015 19:28:16 +0000 (14:28 -0500)]
Add (:documentation <form>) for dynamically-generated docstrings
* lisp/emacs-lisp/bytecomp.el:
(byte-compile-initial-macro-environment): Use macroexp-progn.
(byte-compile-cl-warn): Don't silence use of cl-macroexpand-all.
(byte-compile-file-form-defvar-function): Rename from
byte-compile-file-form-define-abbrev-table.
(defvaralias, byte-compile-file-form-custom-declare-variable): Use it.
(byte-compile): Use byte-compile-top-level rather than
byte-compile-lambda so we can compile non-values.
(byte-compile-form): Add warnings for failed uses of lexical vars via
quoted symbols.
(byte-compile-unfold-bcf): Improve message for failed inlining.
(byte-compile-make-closure): Handle new format of internal-make-closure
for dynamically-generated docstrings.
* lisp/emacs-lisp/cconv.el (cconv--convert-function):
Add `docstring' argument.
(cconv-convert): Use it to handle the new (:documentation ...) form.
(cconv-analyze-form): Handle the new (:documentation ...) form.
* src/eval.c (Ffunction): Handle the new (:documentation ...) form.
(syms_of_eval): Declare `:documentation'.
Michael Albinus [Tue, 3 Feb 2015 08:24:57 +0000 (09:24 +0100)]
Further work on suppressing shell history in Tramp
Fixes: debbugs:19731
* net/tramp-sh.el (tramp-histfile-override): Fix docstring.
(tramp-open-shell, tramp-maybe-open-connection): Set also
HISTFILESIZE and HISTSIZE when needed.