Make --without-x compatible with --enable-gcc-warnings.
* configure.ac: If both --without-x and --enable-gcc-warnings are
specified, use -Wno-unused-variable, -Wno-unused-but-set-variable
and -Wno-unused-but-set-parameter.
* src/font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
* src/font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
members under HAVE_WINDOW_SYSTEM.
* src/keyboard.c (make_lispy_focus_out): Likewise.
(record_menu_key): Move under HAVE_MENUS.
* src/xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
(syms_of_xdisp): Adjust user.
(window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
(start_hourglass, cancel_hourglass):
* src/xfaces.c (toplevel): Likewise with PT_PER_INCH,
clear_font_table_count, CLEAR_FONT_TABLE_COUNT
and CLEAR_FONT_TABLE_NFONTS.
(set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
Declare only if HAVE_WINDOW_SYSTEM.
(lface_same_font_attributes_p, clear_face_gcs): Define only
if HAVE_WINDOW_SYSTEM.
* lisp/international/mule-cmds.el: Require CL.
(find-coding-systems-for-charsets): Avoid add-to-list.
(sanitize-coding-system-list): New function, extracted from
select-safe-coding-system-interactively.
(select-safe-coding-system-interactively): Use it.
(read-input-method-name): Accept symbols for `default'.
* lisp/progmodes/python.el (python-nav-beginning-of-block): Remove unused
var `block-regexp'.
(python-nav--forward-sexp): Remove unused var `re-search-fn'.
(python-fill-string): Remove unused var `marker'.
(python-skeleton-add-menu-items): Remove unused var `items'.
Paul Eggert [Wed, 4 Sep 2013 06:45:44 +0000 (23:45 -0700)]
Makefile improvements.
* Makefile.in (lib): Depend on am--refresh, to avoid a race.
(src): Remove duplicate dependency on FRC.
Invoke just one submake, not two. Avoid the need for 'pwd'.
* lwlib/Makefile.in (all): Put this first. Don't use double-colon
rules, as they are not portable according to POSIX. Mark as phony.
* oldXMenu/Makefile.in (all, tags): Don't use double-colon rules, as they
are not portable according to POSIX. Mark as phony.
* src/Makefile.in (config.status): Don't use double-colon rules, as
they are not portable according to POSIX. Fix shell typo with `;
I guess this rule has never been tested?
(VCSWITNESS): New macro, to override any environment var.
* xterm.h (struct x_display_info): Do not track X connection
fd separately because it is always available from Display.
* xterm.c (x_term_init, x_delete_terminal, x_delete_display):
Adjust users.
* buffer.c (drop_overlay):
* fileio.c (restore_point_unwind): Prefer unchain_marker to
Fset_marker (X, Qnil, ...) (which is the same but a bit slower).
* lisp/progmodes/ruby-mode.el (ruby-calculate-indent): Consider
two-character operators and whether the character preceding them
changes their meaning.
* xterm.c (x_last_mouse_movement_time): Revert last change.
This code should use XDisplayMotionBufferSize to check display's
motion history first, and there are few other issues as well.
(x_scroll_bar_note_movement): Pass XMotionEvent rather than XEvent.
(handle_one_xevent): Adjust user.
Use XGetMotionEvents to ask the last mouse motion time from X server.
* xterm.c (X_MOTION_HISTORY): Default to 1.
(x_last_mouse_movement_time) [X_MOTION_HISTORY]: New function.
(x_last_mouse_movement_time) [!X_MOTION_HISTORY]: Legacy version.
(note_mouse_movement, x_scroll_bar_note_movement) [!X_MOTION_HISTORY]:
Ifdef away legacy code.
(XTmouse_position, x_scroll_bar_report_motion):
Use x_last_mouse_movement_time.
* xterm.c (toplevel): Drop obsolete comment and move compose_status...
(handle_one_xevent): ...to here.
(STORE_KEYSYM_FOR_DEBUG): Move under ENABLE_CHECKING and make no-op
otherwise.
* lisp/Makefile.in (setwins, setwins_almost, setwins_for_subdirs):
* test/automated/Makefile.in (setwins):
Avoid leading space in $wins. Otherwise the sed command used by
eg compile-main ends up containing "/*.el".
Ulrich Müller [Sat, 31 Aug 2013 19:54:17 +0000 (12:54 -0700)]
* configure.ac: Allow for --with-sound=voxware that will enable
sound but otherwise disable ALSA. This will use the OSS device,
typically /dev/dsp, for sound output.
Stefan Monnier [Thu, 29 Aug 2013 21:00:18 +0000 (17:00 -0400)]
* lisp/textmodes/css-mode.el: Use SMIE.
(css-smie-grammar): New var.
(css-smie--forward-token, css-smie--backward-token)
(css-smie-rules): New functions.
(css-mode): Use them.
(css-navigation-syntax-table): Remove var.
(css-backward-sexp, css-forward-sexp, css-indent-calculate-virtual)
(css-indent-calculate, css-indent-line): Remove functions.
Stefan Monnier [Thu, 29 Aug 2013 19:55:58 +0000 (15:55 -0400)]
Misc changes to reduce use of `(lambda...); and other cleanups.
* lisp/cus-edit.el: Use lexical-binding.
(customize-push-and-save, customize-apropos)
(custom-buffer-create-internal): Use closures.
* lisp/progmodes/bat-mode.el (bat-mode-syntax-table): "..." are strings.
* lisp/progmodes/ada-xref.el: Use setq.
* lisp/net/tramp.el (with-tramp-progress-reporter): Avoid setq.
* lisp/dframe.el: Use lexical-binding.
(dframe-frame-mode): Fix calling convention for hooks. Use a closure.
* lisp/speedbar.el (speedbar-frame-mode): Adjust call accordingly.
* lisp/descr-text.el: Use lexical-binding.
(describe-text-widget, describe-text-sexp, describe-property-list):
Use closures.
* lisp/comint.el (comint-history-isearch-push-state): Use a closure.
* lisp/calculator.el: Use lexical-binding.
(calculator-number-to-string): Make it work with lexical-binding.
(calculator-funcall): Same and use cl-letf.
Stefan Monnier [Thu, 29 Aug 2013 19:18:16 +0000 (15:18 -0400)]
* lisp/emacs-lisp/lisp.el (lisp--company-doc-buffer)
(lisp--company-doc-string, lisp--company-location): New functions.
(lisp-completion-at-point): Use them to improve Company support.
Stefan Monnier [Thu, 29 Aug 2013 18:06:46 +0000 (14:06 -0400)]
* lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Add rule for formal
params of lambda expressions.
(ruby-smie--implicit-semi-p): Refine rule.
(ruby-smie--opening-pipe-p): New function.
(ruby-smie--forward-token, ruby-smie--backward-token): Handle Ruby
symbols and matched |...| for formal params.
(ruby-smie-rules): Don't let the formal params of a "do" prevent it
from being treated as hanging. Handle "rescue".
Eli Zaretskii [Thu, 29 Aug 2013 15:32:04 +0000 (18:32 +0300)]
A possible fix for bug #14333 with hanging at exit on MS-Windows.
src/w32.c (term_winsock): Call release_listen_threads before calling
WSACleanup.
(_sys_wait_accept): Wait for accept event in a loop with a finite
timeout, instead of waiting indefinitely. Will hopefully avoid
hanging during exit because WSACleanup deadlocks waiting for the
event object to be released.
src/w32proc.c (release_listen_threads): New function, signals all
the reader threads that listen for connections to stop waiting.
src/w32.h (release_listen_threads): Add prototype.
Dmitry Antipov [Thu, 29 Aug 2013 07:03:18 +0000 (11:03 +0400)]
Hook scanning and indentation functions to find_newline. This helps
to avoid duplicated code and renders more respect to newline cache.
* lisp.h (scan_newline): Prefer ptrdiff_t to EMACS_INT.
* cmds.c (Fforward_line):
* indent.c (scan_for_column, Fcurrent_indentation, indented_beyond_p):
Use find_newline and avoid unnecessary point movements.
* search.c (scan_newline): Implement on top of find_newline.