* src/xfaces.c: Declare color_distance.
(QCdistant_foreground): New variable.
(NEAR_SAME_COLOR_THRESHOLD): New define.
(load_color2): New function.
(load_color): Call load_color2.
(load_face_colors): Call load_color2 and if distant-color is specified
calculate distant and use distant-color if colors are near.
(LFACE_DISTANT_FOREGROUND): New define.
(merge_face_ref, Finternal_set_lisp_face_attribute)
(Finternal_get_lisp_face_attribute)
(x_supports_face_attributes_p): Handle distant-foreground similar to
foreground.
(syms_of_xfaces): DEFSYM QCdistant_foreground.
Tassilo Horn [Fri, 1 Nov 2013 10:27:21 +0000 (11:27 +0100)]
Allow multiple bibliographies when BibLaTeX is used rathen than
BibTeX.
* textmodes/reftex-parse.el (reftex-using-biblatex-p): New function.
(reftex-locate-bibliography-files): Us it.
Claudio Bley [Fri, 1 Nov 2013 08:52:22 +0000 (10:52 +0200)]
Support newer versions of libjpeg on MS-Windows.
src/image.c (Qlibjpeg_version): New variable.
(syms_of_image): DEFSYM and initialize it.
lisp/term/w32-win.el (dynamic-library-alist): Support newer versions
of libjpeg starting with v7: look only for the DLL from the
version against which Emacs was built.
Glenn Morris [Thu, 31 Oct 2013 07:18:42 +0000 (00:18 -0700)]
Fix setting of invocation-directory with --chdir and relative argv[0]
* src/emacs.c (original_pwd): New char.
(main): If using --chdir, store original_pwd.
(init_cmdargs): When setting Vinvocation_directory based on a
relative argv[0], use original_pwd if set.
Barry O'Reilly [Thu, 31 Oct 2013 01:50:24 +0000 (21:50 -0400)]
* semantic/idle.el (semantic-idle-symbol-highlight)
(semantic-idle-symbol-highlight-face): Define face with defface
and obsolete the replaced one defined with defvar. (Bug#15745)
* pulse.el (pulse-momentary-highlight-overlay)
(pulse-momentary-highlight-region): Fix typo in doc
Alp Aker [Wed, 30 Oct 2013 18:35:19 +0000 (14:35 -0400)]
Ensure unmarking in buffer menu clears 'S' marks. (Bug#15761)
* buff-menu.el (Buffer-menu--unmark): New function.
(Buffer-menu-unmark, Buffer-menu-backup-unmark): Use it.
Glenn Morris [Wed, 30 Oct 2013 07:15:23 +0000 (00:15 -0700)]
Simplify admin/unidata Makefile rules
* admin/unidata/unidata-gen.el (unidata-gen-files): Use pop.
Also take the output directory as an argument.
* admin/unidata/Makefile.in: Simplify now that unidata-gen-files takes
the output directory as an argument (no need to cd, etc).
(abs_srcdir, abs_builddir): Remove.
(abs_top_builddir): Replace by top_builddir.
(${DSTDIR}/charprop.el): No need to cd. Pass dest as argument.
(${DSTDIR}/charprop.el, charprop.el):
No need to pass unidata.txt as argument.
Glenn Morris [Wed, 30 Oct 2013 06:25:44 +0000 (23:25 -0700)]
* admin/unidata/unidata-gen.el (unidata--ensure-compiled): New function.
(unidata-gen-table-name, unidata-gen-table-decomposition)
(unidata-gen-files): Use unidata--ensure-compiled.
Add FSF copyright years based on when this file first appeared in
Emacs trunk.
Glenn Morris [Wed, 30 Oct 2013 06:24:16 +0000 (23:24 -0700)]
* admin/unidata/Makefile.in (abs_srcdir): New, set by configure.
(${DSTDIR}/charprop.el, charprop.el): Update for srcdir not absolute.
(clean): Delete all .elc files.
Stefan Monnier [Wed, 30 Oct 2013 01:28:36 +0000 (21:28 -0400)]
* lisp/progmodes/python.el (python-shell-get-buffer): New function.
(python-shell-get-process): Use it.
(python-shell-send-string): Always use utf-8 and add a cookie to tell
Python which encoding was used. Don't split-string since we only care
about the first line. Return the temp-file, if applicable.
(python-shell-send-region): Tell compile.el how to turn locations in
the temp-file into locations in the source buffer.
Stefan Monnier [Tue, 29 Oct 2013 21:05:35 +0000 (17:05 -0400)]
* src/keyboard.c (command_loop_1): If command is nil, call `undefined'.
* lisp/subr.el (undefined): Add missing behavior from the C code for
unbound keys.
Stefan Monnier [Tue, 29 Oct 2013 16:11:50 +0000 (12:11 -0400)]
Add pre-redisplay-function and rectangular region
* lisp/rect.el: Use lexical-binding. Add new rectangular region support.
(rectangle-mark): New command.
(rectangle--region): New var.
(deactivate-mark-hook): Reset rectangle--region.
(rectangle--extract-region, rectangle--insert-for-yank)
(rectangle--highlight-for-redisplay)
(rectangle--unhighlight-for-redisplay): New functions.
(region-extract-function, redisplay-unhighlight-region-function)
(redisplay-highlight-region-function): Use them to handle
rectangular region.
* lisp/simple.el (region-extract-function): New var.
(delete-backward-char, delete-forward-char, deactivate-mark): Use it.
(kill-new, kill-append): Remove obsolete `yank-handler' argument.
(kill-region): Replace obsolete `yank-handler' arg with `region'.
(copy-region-as-kill, kill-ring-save): Add `region' argument.
(redisplay-unhighlight-region-function)
(redisplay-highlight-region-function): New vars.
(redisplay--update-region-highlight): New function.
(pre-redisplay-function): Use it.
(exchange-point-and-mark): Don't deactivate the mark before
reactivate-it anyway.
* lisp/comint.el (comint-kill-region): Remove yank-handler argument.
* lisp/delsel.el (delete-backward-char, backward-delete-char-untabify)
(delete-char): Remove property, since it's now part of their
default behavior.
(self-insert-iso): Remove property since this command doesn't exist.
* src/xdisp.c (prepare_menu_bars): Call Vpre_redisplay_function.
(syms_of_xdisp): Declare pre-redisplay-function.
(markpos_of_region): Remove function.
(init_iterator, compute_stop_pos, handle_face_prop)
(face_before_or_after_it_pos, reseat_to_string)
(get_next_display_element, window_buffer_changed)
(redisplay_internal, try_cursor_movement, redisplay_window)
(try_window_reusing_current_matrix, try_window_id, display_line)
(note_mode_line_or_margin_highlight, note_mouse_highlight)
(display_string, mouse_face_from_buffer_pos): Remove region handling.
* src/window.h (struct window): Remove field `region_showing'.
* src/dispextern.h (struct it): Remove region_beg/end_charpos.
(face_at_buffer_position, face_for_overlay_string)
(face_at_string_position): Update prototypes.
* src/xfaces.c (face_at_buffer_position, face_for_overlay_string)
(face_at_string_position): Remove `region_beg' and `region_end' args.
* src/fontset.c (Finternal_char_font):
* src/font.c (font_at, font_range): Adjust calls accordingly.
* src/insdel.c (Qregion_extract_function): New var.
(syms_of_insdel): Initialize it.
(prepare_to_modify_buffer_1): Use it.
Stefan Monnier [Tue, 29 Oct 2013 14:46:23 +0000 (10:46 -0400)]
* src/eval.c (run_hook_with_args): Use FUNCTIONP.
* test/indent/css-mode.css (.x2): Test alignement inside braces.
* test/indent/prolog.prolog: Test alignment of ->; with operator at bol.
Dmitry Antipov [Tue, 29 Oct 2013 05:55:25 +0000 (09:55 +0400)]
* xterm.h (struct x_output): For 'black_relief' and 'white_relief'
fields, drop 'allocated_p' member and use -1 for uninitialized value.
* w32term.h (struct w32_output): Similarly but do not use -1 because...
* xfaces.c (unload_color) [HAVE_X_WINDOWS]: ...this function is a no-op
on MS-Windows anyway.
(free_face_colors): Define only if HAVE_X_WINDOWS and...
(free_realized_face): ...adjust user.
* xfns.c (Fx_create_frame, x_create_tip_frame): Initialize black and
white relief pixels to -1.
* xterm.c (x_setup_relief_color, x_free_frame_resources): Adjust users.
* w32term.c (w32_setup_relief_color, x_free_frame_resources): Likewise.
* dispextern.h (unload_color): Move prototype under HAVE_X_WINDOWS.
Dmitry Antipov [Mon, 28 Oct 2013 10:58:01 +0000 (14:58 +0400)]
* dispextern.h (struct face): Use bitfields for 'underline_type'
and 'box' members. Remove set-but-unused members 'pixmap_w' and
'pixmap_h'. If not HAVE_WINDOW_SYSTEM, also remove dummy
'stipple' member. Move 'lface' member up to help...
* xfaces.c (make_realized_face): ...this function to find and
clear just the members that need clearing.
(load_face_colors, realize_x_face):
* xdisp.c (extend_face_to_end_of_line): Adjust user.
Alan Mackenzie [Sun, 27 Oct 2013 21:24:17 +0000 (21:24 +0000)]
Indent statements in macros following "##" correctly.
* progmodes/cc-engine.el (c-crosses-statement-barrier-p): Modify
the "#" arm of a cond form to handle "#" and "##" operators.
Dmitry Gutov [Sat, 26 Oct 2013 01:16:37 +0000 (05:16 +0400)]
* lisp/progmodes/ruby-mode.el (ruby-smie--args-separator-p): Be more
specific in what the first arg can be: a non-keyword word,
string/regexp/percent literal opener, opening paren, or unary
operator followed directly by word.
* test/automated/ruby-mode-tests.el (ruby-toggle-block-to-brace): Fix
the test, in respect to adding the space after the curly.
Stefan Monnier [Fri, 25 Oct 2013 15:23:45 +0000 (11:23 -0400)]
* lisp/progmodes/prolog.el: Remove old indent; use post-self-insert-hook.
(prolog-align-comments-flag, prolog-indent-mline-comments-flag)
(prolog-object-end-to-0-flag, prolog-electric-newline-flag)
(prolog-electric-tab-flag, prolog-use-prolog-tokenizer-flag):
Remove vars, they do not apply any more.
(prolog-mode-abbrev-table): Remove redundant declaration.
(prolog-upper-case-string, prolog-lower-case-string): Remove.
(prolog-use-smie): Remove.
(prolog-smie-rules): Add indentation rule for the if-then-else layout
supported by prolog-electric-if-then-else-flag.
(prolog-mode-variables, prolog-menu): Use setq-local.
(prolog-mode-keybindings-edit): Don't rebind M-C-p and M-C-n.
Remove binding to `Backspace' since this key doesn't exist anyway.
Remove bindings for electric self-inserting keys.
(prog-mode): Assume it's defined.
(prolog-post-self-insert): New function.
(prolog-mode): Use it.
(prolog-indent-line, prolog-indent-level)
(prolog-find-indent-of-matching-paren)
(prolog-indentation-level-of-line, prolog-goto-comment-column)
(prolog-paren-is-the-first-on-line-p, prolog-region-paren-balance)
(prolog-goto-next-paren, prolog-in-string-or-comment)
(prolog-tokenize, prolog-inside-mline-comment)
(prolog-find-start-of-mline-comment): Remove functions.
(prolog-find-unmatched-paren, prolog-clause-end)
(prolog-guess-fill-prefix, prolog-get-predspec): Use syntax-ppss.
(prolog-electric--if-then-else): Rename from
prolog-insert-spaces-after-paren; use prolog-electric-if-then-else-flag.
(prolog-tokenize-searchkey): Remove const.
(prolog-clause-info): Use forward-sexp.
(prolog-forward-list, prolog-backward-list, prolog-electric-delete)
(prolog-electric-if-then-else): Remove commands.
(prolog-electric--colon): Rename from prolog-electric-colon; adapt it
for use in post-self-insert-hook.
(prolog-electric--dash): Rename from prolog-electric-dash; adapt it
for use in post-self-insert-hook.
(prolog-electric--dot): Rename from prolog-electric-dot; adapt it
for use in post-self-insert-hook.
(prolog-electric--underscore): Rename from prolog-electric--underscore;
adapt it for use in post-self-insert-hook.
Eli Zaretskii [Fri, 25 Oct 2013 09:45:51 +0000 (12:45 +0300)]
Fix bug #15712 with vertical motion when the goal column needs to hscroll.
lisp/simple.el (line-move): Call line-move-1 instead of
line-move-visual when the current window hscroll is zero, but
temporary-goal-column indicates we will need to hscroll as result
of the movement.
Eli Zaretskii [Fri, 25 Oct 2013 09:42:41 +0000 (12:42 +0300)]
Fix the MS-Windows build broken 2013-10-25T04:35:56Z!dgutov@yandex.ru.
src/w32font.h (w32font_close): Adjust the prototype to the change in
function definition.
src/w32font.c (w32font_close): Reintroduce deleted declaration of i.
src/w32uniscribe.c (uniscribe_close): Adapt the call to
w32font_close to its new prototype.