Tino Calancha [Wed, 7 Dec 2016 11:47:34 +0000 (20:47 +0900)]
ibuffer-decompose-filter: Avoid side effects on error
* lisp/ibuf-ext.el (ibuffer-decompose-filter):
Update 'ibuffer-filtering-qualifiers' only if there is no error (Bug#24997).
* test/lisp/ibuffer-tests.el (ibuffer-test-Bug24997):
Update test result as pass.
Tino Calancha [Wed, 7 Dec 2016 11:37:01 +0000 (20:37 +0900)]
ibuffer: compare marks with EQ
* lisp/ibuffer (ibuffer-update-title-and-summary, ibuffer-redisplay-current)
(ibuffer-buffer-name-face, ibuffer-unmark-all)
(ibuffer-count-deletion-lines, ibuffer-buffer-names-with-mark):
Use 'eq' instead of 'char-equal' when comparing mark characters (Bug#25000).
* test/lisp/ibuffer-tests.el (ibuffer-test-Bug25000):
Update test result as pass.
Christopher Genovese [Wed, 7 Dec 2016 10:51:33 +0000 (19:51 +0900)]
ibuffer-saved-filters: Remove extra nesting level
Fix Bug#25049.
* lisp/ibuf-ext.el (ibuffer-saved-filters): Remove extra
nesting level; add transparent setter to adjust old-format values;
update doc string.
(ibuffer-save-filters): Remove extra level of nesting
in ibuffer-saved-filters values when saving new filters.
(ibuffer-old-saved-filters-warning): New variable with
clickable message with repair options to be displayed
as a warning if 'ibuffer-repair-saved-filters' detects
a format mismatch.
(ibuffer-repair-saved-filters): Add new command to check and
repair saved filters format.
(ibuffer-included-in-filter-p, ibuffer-decompose-filter):
Change access of saved filter data (cadr->cdr) to account
for reduced nesting.
* test/lisp/ibuffer-tests.el (ibuffer-save-filters):
New test; check that filters are saved in the proper format.
Paul Eggert [Wed, 7 Dec 2016 07:41:45 +0000 (23:41 -0800)]
Clean out some IRIX cruft
* etc/MACHINES: Remove obsolete discussion of IRIX.
* src/process.c (allocate_pty) [__sgi]: Remove SGI-specific code.
(create_process) [HAVE_PTYS]: Don't worry about IRIX.
* src/syntax.c (scan_sexps_forward): Remove obsolete comment.
* src/unexelf.c [__sgi]: Don't include <syms.h>.
(unexec) [__sgi]: Remove SGI-specific code.
Paul Eggert [Wed, 7 Dec 2016 05:38:32 +0000 (21:38 -0800)]
Simplify FUNCTIONP implementation
* src/bytecode.c (exec_byte_code):
* src/image.c (parse_image_spec):
Prefer FUNCTIONP (x) to !NILP (Ffunctionp (x)).
* src/eval.c (FUNCTIONP): Move here ...
* src/lisp.h: ... from here. No longer inline, as that
bloats the text and does not help speed (at least on my platform).
(functionp): Remove this name, since callers use FUNCTIONP.
Noam Postavsky [Sun, 27 Nov 2016 19:41:02 +0000 (14:41 -0500)]
Give test-completion's PREDICATE the hashtable key
For hashtable entries with symbol keys, `test-completion' would convert
the key to a string before calling PREDICATE, unlike `try-completion'
and `all-completions'.
* src/minibuf.c (Ftest_completion): Pass original key from hashtable.
Noam Postavsky [Sun, 27 Nov 2016 15:04:48 +0000 (10:04 -0500)]
Give test-completion's PREDICATE full alist entry
Since 2016-06-26 "Fix test-completion with completion-regexp-list", when
calling test-completion with an alist collection, the predicate was
recieving the string value instead of the alist entry (Bug#24966).
* src/minibuf.c (Ftest_completion): Don't modify the found element, just
test STRING against `completion-regexp-list'.
* test/src/minibuf-tests.el: New tests for `try-completion',
`all-completions', and `test-completion'.
Noam Postavsky [Mon, 22 Aug 2016 02:58:37 +0000 (22:58 -0400)]
Fix ert-tests when running compiled
* test/lisp/emacs-lisp/ert-tests.el (ert-test-deftest): Don't test for
specific macroexpansion, just check result of evaluation.
(ert-test-record-backtrace): Don't hardcode representation of closure in
expected backtrace, this lets the test succeed even when the test code
is compiled.
* lisp/emacs-lisp/ert.el (ert--expand-should-1): Also pass
`byte-compile-macro-environment' to `macroexpand', this allows the
`should' macro to properly handle macroexpansion of macros that were
defined in the same file when it's being compiled (Bug #17851).
Glenn Morris [Wed, 7 Dec 2016 01:31:54 +0000 (20:31 -0500)]
Make "g" in vc push/pull buffers re-push/pull
* lisp/vc/vc-bzr.el (vc-bzr--pushpull):
* lisp/vc/vc-git.el (vc-git--pushpull):
* lisp/vc/vc-hg.el (vc-hg--pushpull):
Set compile-command so that "g" works. (Bug#11446)
Paul Eggert [Tue, 6 Dec 2016 23:25:54 +0000 (15:25 -0800)]
Change two _Noreturn functions to return void
This is a bit clearer than _Noreturn functions that (do not)
return a non-void type.
* src/callproc.c (call_process) [MSDOS]:
Use 'status' local to record status.
(child_setup): Return CHILD_SETUP_TYPE.
* src/data.c, src/lisp.h (wrong_type_argument): Return void.
All callers changed.
* src/lisp.h (CHILD_SETUP_TYPE): New macro.
Paul Eggert [Tue, 6 Dec 2016 06:40:36 +0000 (22:40 -0800)]
Fix GPG bug introduced by Oct file-missing change
Problem with visiting nonexistent .gpg file
reported by Herbert J Skuhra.
* lisp/epa-file.el (epa-file--find-file-not-found-function):
(epa-file-insert-file-contents, epa-file-write-region):
Signal file-missing or file-error instead of epa-error.
Glenn Morris [Tue, 6 Dec 2016 01:11:01 +0000 (20:11 -0500)]
Tweak recent flymake change
* lisp/progmodes/flymake.el (flymake-report-fatal-status):
Avoid double message when flymake-log-level >= 0.
* doc/misc/flymake.texi (Customizable variables):
No longer mention flymake-gui-warnings-enabled.
Katsumi Yamaoka [Mon, 5 Dec 2016 23:32:36 +0000 (23:32 +0000)]
Make TAB and M-TAB run widget-forward and widget-backward (bug#25091)
* lisp/gnus/mm-decode (mm-convert-shr-links): Avoid `shr-next-link'
and `shr-previous-link' so TAB and M-TAB run `widget-forward' and
`widget-backward' instead (bug#25091).
Michael Albinus [Mon, 5 Dec 2016 15:06:04 +0000 (16:06 +0100)]
Remove compat code in Tramp
* lisp/net/tramp.el (tramp-parse-time-months): Remove.
* lisp/net/tramp-compat.el (top): Require parse-time.
* lisp/net/tramp-smb.el (tramp-smb-read-file-entry):
Use `parse-time-months'.
Martin Rudalics [Mon, 5 Dec 2016 10:06:55 +0000 (11:06 +0100)]
Don't try to split side windows in ibuffer (Bug#25115)
* lisp/ibuffer.el (ibuffer-confirm-operation-on): Don't try to
split a side window (Bug#25115).
Paul Eggert [Mon, 5 Dec 2016 02:19:01 +0000 (18:19 -0800)]
* src/lisp.h: Update comment to kick -Og down the road.
Mark Oteiza [Sun, 4 Dec 2016 18:43:03 +0000 (13:43 -0500)]
More image-dired refactoring
* lisp/image-dired.el: Remove TODO comment. This appears to have been
implemented in
5d7433a "image-dired: Signal an error before calling a
missing executable".
(image-dired-cmd-create-standard-thumbnail-command): Use %p specifier.
Add :version.
(image-dired-display-thumbs, image-dired-create-thumbs): Use dolist and
when. Remove superfluous call to image-dired-thumb-name. Move single nil
binding and setq into dolist form.
Michael Albinus [Sun, 4 Dec 2016 11:12:06 +0000 (12:12 +0100)]
Implement quoting the local part of a remote file name
* doc/emacs/files.texi (Quoted File Names):
* etc/NEWS: Mention quoting the local part of a remote file name.
* lisp/net/tramp.el (tramp-dissect-file-name): Check with
`tramp-tramp-file-p'.
(tramp-quoted-name-p, tramp-quote-name, tramp-unquote-name):
New defsubst.
(tramp-handle-substitute-in-file-name)
(tramp-handle-make-auto-save-file-name): Handle quoted files.
(tramp-shell-quote-argument): Unquote argument.
* lisp/net/tramp-sh.el (tramp-sh-handle-file-truename):
Handle quoted files.
* test/lisp/net/tramp-tests.el (tramp--test-expensive-test): New defvar.
(tramp--test-make-temp-name): New argument QUOTED.
(tramp-test01-file-name-syntax)
(tramp-test02-file-name-dissect)
(tramp-test04-substitute-in-file-name)
(tramp-test05-expand-file-name, tramp-test07-file-exists-p)
(tramp-test08-file-local-copy)
(tramp-test09-insert-file-contents)
(tramp-test10-write-region, tramp-test11-copy-file)
(tramp-test12-rename-file, tramp-test13-make-directory)
(tramp-test14-delete-directory, tramp-test15-copy-directory)
(tramp-test16-directory-files)
(tramp-test17-insert-directory)
(tramp-test18-file-attributes)
(tramp-test19-directory-files-and-attributes)
(tramp-test20-file-modes, tramp-test21-file-links)
(tramp-test22-file-times, tramp-test23-visited-file-modtime)
(tramp-test24-file-name-completion, tramp-test25-load)
(tramp-test26-process-file, tramp-test27-start-file-process)
(tramp-test28-shell-command, tramp-test30-vc-registered)
(tramp-test31-make-auto-save-file-name)
(tramp--test-check-files)
(tramp-test35-asynchronous-requests): Test also quoted file names.
(tramp--test-shell-command-to-string-asynchronously): Rename.
(tramp-test29-environment-variables): Use it.
Tino Calancha [Sun, 4 Dec 2016 09:12:59 +0000 (18:12 +0900)]
Fix typo in dired-omit-case-fold-p
* lisp/dired-x.el (dired-omit-case-fold-p):
Write 'file-name-case-insensitive-p' instead of
'file-name-case-sensitive-p'.
Add declaration of 'file-name-case-insensitive-p'.
Simen Heggestøyl [Sun, 4 Dec 2016 08:34:19 +0000 (09:34 +0100)]
Add HTML5 attributes for the input element
* lisp/textmodes/sgml-mode.el (html-tag-alist): Add HTML5 attributes
for the input element.
Glenn Morris [Sun, 4 Dec 2016 03:27:41 +0000 (19:27 -0800)]
Obsolete sc-load-hook in favor of eval-after-load
* lisp/mail/supercite.el (sc-load-hook): Make obsolete.
* doc/misc/sc.texi (Getting Connected, Filling Cited Text):
No longer mention sc-load-hook.
Glenn Morris [Sun, 4 Dec 2016 03:22:37 +0000 (19:22 -0800)]
Obsolete calendar-load-hook in favor of eval-after-load
* lisp/calendar/calendar.el (calendar-load-hook): Make obsolete.
(calendar): Doc fix - no longer mention calendar-load-hook.
* doc/emacs/cal-xtra.texi (Calendar Customizing):
No longer mention calendar-load-hook.
* doc/lispintro/emacs-lisp-intro.texi (X11 Colors):
Replace calendar-load-hook in example with with-eval-after-load.
Glenn Morris [Sun, 4 Dec 2016 02:14:53 +0000 (18:14 -0800)]
Fix markup in read-multiple-choice doc (Bug#25102)
* lisp/emacs-lisp/subr-x.el (read-multiple-choice): Doc fix.
Glenn Morris [Sun, 4 Dec 2016 01:59:36 +0000 (17:59 -0800)]
Stop flymake using dialog boxes for errors (Bug#16622)
* lisp/progmodes/flymake.el (flymake-gui-warnings-enabled):
Mark as obsolete.
(flymake-display-warning): Turn into an obsolete alias.
(flymake-report-fatal-status): Just use message for a warning that
was formerly displayed by default.
Mark Oteiza [Sat, 3 Dec 2016 21:18:48 +0000 (16:18 -0500)]
Clean up keymap and menu code in image-dired
A function to populate these maps is not necessary, just define the maps
once and for all.
* lisp/image-dired.el (image-dired-show-all-from-dir): Make prompt
clearer and in the spirit of dired's.
(image-dired-define-display-image-mode-keymap):
(image-dired-define-thumbnail-mode-keymap): Remove.
(image-dired-thumbnail-mode-map):
(image-dired-thumbnail-mode-line-up-map):
(image-dired-thumbnail-mode-tag-map): Assimilate all define-key and mode
menu code from the aforementioned removed functions. Reorder so that
the definitions are inherited properly.
(image-dired-display-current-image-sized): Fix erroneous message.
(image-dired-thumbnail-mode):
(image-dired-display-image-mode): Remove defunct call.
Michael Albinus [Sat, 3 Dec 2016 18:54:24 +0000 (19:54 +0100)]
Mention `file-name-case-insensitive-p' as magic file name
* doc/lispref/files.texi (Magic File Names):
Mention `file-name-case-insensitive-p'.
* doc/lispref/variables.texi (Connection Local Variables):
Fix typo.
Mark Oteiza [Sat, 3 Dec 2016 18:05:39 +0000 (13:05 -0500)]
Clean up uses of cl-foo in image-dired
Both instances here are just emulating cl-find-if.
* lisp/image-dired.el: Use cl-lib at compile time.
(image-dired-dired-toggle-marked-thumbs): Don't need let* at the top.
Replace the cl-foo instances with equivalent cl-loops.
Eli Zaretskii [Sat, 3 Dec 2016 09:54:24 +0000 (11:54 +0200)]
Avoid compilation warnings in nt/*.c files
* nt/cmdproxy.c (fail, vfprintf, fprintf, printf, warn)
(console_event_handler): Add prototypes.
(canon_filename, skip_space, skip_nonspace, get_next_token)
(batch_file_p, search_dir, make_absolute, try_dequote_cmdline)
(spawn, get_env_size): Now static.
* nt/ddeclient.c (DdeCallback): Provide prototype.
* nt/addpm.c (DdeCallback): Provide prototype.
(add_registry): Now static.
Mark Oteiza [Fri, 2 Dec 2016 21:53:02 +0000 (16:53 -0500)]
Display window before calculating width
* lisp/image-dired.el (image-dired-display-thumbs): Display the buffer
before calling image-dired-line-up and friends, which in turn calculate
the window width. Otherwise, the thumbnail layout will be wrong in
a side-by-side split.
Mark Oteiza [Fri, 2 Dec 2016 21:50:25 +0000 (16:50 -0500)]
Use pop-to-buffer-same-window
* lisp/image-dired.el (image-dired-dired-with-window-configuration):
(image-dired-dired-edit-comment-and-tags): Instead of switch-to-buffer,
use pop-to-buffer-same-window cf. Bug#22244.
(image-dired-forward-image, image-dired-backward-image): Ignore unused.
Noam Postavsky [Sat, 3 Dec 2016 01:39:10 +0000 (20:39 -0500)]
; Merge: Lisp watchpoints (Bug#24923)
Noam Postavsky [Sun, 13 Dec 2015 19:47:58 +0000 (14:47 -0500)]
Document watchpoints
* doc/lispref/debugging.texi (Variable Debugging):
* doc/lispref/variables.texi (Watching Variables): New section.
* etc/NEWS: Add entry for watchpoints
Noam Postavsky [Sun, 13 Dec 2015 04:10:15 +0000 (23:10 -0500)]
Add tests for watchpoints
* test/src/data-tests.el (data-tests-variable-watchers):
(data-tests-local-variable-watchers): New tests.
Noam Postavsky [Sat, 21 Nov 2015 22:02:42 +0000 (17:02 -0500)]
Ensure redisplay using variable watcher
This replaces looking up the variable name in redisplay--variables when
setting it.
* lisp/frame.el: Replace redisplay--variables with add-variable-watcher
calls.
* src/xdisp.c (Fset_buffer_redisplay): Rename from maybe_set_redisplay,
set the redisplay flag unconditionally.
(Vredisplay__variables): Remove it.
* src/data.c (set_internal): Remove maybe_set_redisplay call.
Noam Postavsky [Sat, 21 Nov 2015 21:03:06 +0000 (16:03 -0500)]
Add function to trigger debugger on variable write
* lisp/emacs-lisp/debug.el (debug-on-variable-change):
(debug--variable-list):
(cancel-debug-on-variable-change): New functions.
(debugger-setup-buffer): Add watchpoint clause.
Noam Postavsky [Sat, 19 Nov 2016 21:50:34 +0000 (16:50 -0500)]
Show watchpoints when describing variables
* src/data.c (Fget_variable_watchers): New function.
* lisp/help-fns.el (describe-variable): Use it to detect watching
functions.
Noam Postavsky [Fri, 20 Nov 2015 00:50:06 +0000 (19:50 -0500)]
Add lisp watchpoints
This allows calling a function whenever a symbol-value is changed.
* src/lisp.h (lisp_h_SYMBOL_TRAPPED_WRITE_P):
(SYMBOL_TRAPPED_WRITE_P): New function/macro.
(lisp_h_SYMBOL_CONSTANT_P): Check for SYMBOL_NOWRITE specifically.
(enum symbol_trapped_write): New enumeration.
(struct Lisp_Symbol): Rename field constant to trapped_write.
(make_symbol_constant): New function.
* src/data.c (Fadd_variable_watcher, Fremove_variable_watcher):
(set_symbol_trapped_write, restore_symbol_trapped_write):
(harmonize_variable_watchers, notify_variable_watchers): New functions.
* src/data.c (Fset_default): Call `notify_variable_watchers' for trapped
symbols.
(set_internal): Change bool argument BIND to 3-value enum and call
`notify_variable_watchers' for trapped symbols.
* src/data.c (syms_of_data):
* src/data.c (syms_of_data):
* src/font.c (syms_of_font):
* src/lread.c (intern_sym, init_obarray):
* src/buffer.c (syms_of_buffer): Use make_symbol_constant.
* src/alloc.c (init_symbol):
* src/bytecode.c (exec_byte_code): Use SYMBOL_TRAPPED_WRITE_P.
* src/data.c (Fmake_variable_buffer_local, Fmake_local_variable):
(Fmake_variable_frame_local):
* src/eval.c (Fdefvaralias, specbind): Refer to Lisp_Symbol's
trapped_write instead of constant.
(Ffuncall): Move subr calling code into separate function.
(funcall_subr): New function.
Eli Zaretskii [Fri, 2 Dec 2016 18:37:44 +0000 (20:37 +0200)]
; * lisp/dired-x.el (dired-omit-case-fold): Fix last change.
Glenn Morris [Fri, 2 Dec 2016 18:11:53 +0000 (13:11 -0500)]
Starting doc of user options with "*" is long obsolete
* lisp/battery.el (battery-upower-device): Doc fix.
Reuben Thomas [Fri, 2 Dec 2016 16:36:43 +0000 (16:36 +0000)]
Fix docstrings to have a complete sentence in first line
* lisp/dired-x.el (dired-omit-case-fold, dired-omit-case-fold-p): Fix
docstrings.
Reuben Thomas [Tue, 8 Nov 2016 22:04:52 +0000 (22:04 +0000)]
Remove obsolete comments and commented code from dired-x.el
* lisp/dired-x.el (dired-mark-sexp): Remove a query from 1993 and its
1997 answer about whether dired-mark-sexp is used.
* lisp/dired-x.el (dired-buffers-for-dir-exact): Remove this function
commented out since before dired-x.el was added to RCS in 1994.
Reuben Thomas [Tue, 8 Nov 2016 22:01:59 +0000 (22:01 +0000)]
Remove pre-customize dired-x.el documentation
* lisp/dired-x.el (Commentary): Remove USAGE section explaining how to
use dired-x from .emacs. It is now fully customizable.
* lisp/dired-x.el (dired-guess-shell-alist-user): Remove explanation of
how to set this custom variable in .emacs. It should be customized.
Reuben Thomas [Tue, 8 Nov 2016 17:42:24 +0000 (17:42 +0000)]
Allow files to be matched case-sensitively in dired-x
* lisp/dired-x.el (dired-mark-unmarked-files): Add an argument which
controls case folding for matching the regex (Bug#18716).
(dired-omit-case-fold): New variable. Defaults to `t' on case-sensitive
systems, `nil' otherwise.
(dired-mark-omitted, dired-omit-expunge): Use dired-omit-case-fold.
* doc/misc/dired-x.texi, etc/NEWS: Document dired-omit-case-fold.
Reuben Thomas [Tue, 8 Nov 2016 11:53:20 +0000 (11:53 +0000)]
Add support for curly quotation marks to electric-pair-mode
* lisp/elec-pair.el (electric-pair-pairs, electric-pair-text-pairs): Add
entries for left/right single/double quotation marks, from
electric-quote-chars. Note that this is safe for single quotation marks,
unlike with the ASCII apostrophe, since, although the right quotation
mark can be used as an apostrophe, it is the left quotation mark that is
typed to get a pair (Bug#24901).
Nicolas Petton [Fri, 2 Dec 2016 13:07:41 +0000 (14:07 +0100)]
Fix bug#25087
* etc/themes/manoj-dark-theme.el: Fix two typos.
Michael Albinus [Fri, 2 Dec 2016 10:38:19 +0000 (11:38 +0100)]
Handle quoted file names in Tramp
* lisp/net/tramp.el (tramp-file-name-handler): Handle also the
case the file name is quoted. This is not trapped by the
reassigned `tramp-file-name-regexp' anymore.
Evgeny Zajcev [Fri, 2 Dec 2016 10:17:38 +0000 (12:17 +0200)]
* lisp/battery.el: Add 'battery-upower' -- very fast battery status.
Evgeny Zajcev [Fri, 2 Dec 2016 10:09:31 +0000 (12:09 +0200)]
Support for rawrgb images using imagemagick
* src/image.c (imagemagick_load_image): Set wand size before loading
blob when ':width' and ':height' are provided.
* lisp/image.el (image-format-suffixes): Add 'image/x-rgb'.
Nikolay Kudryavtsev [Fri, 2 Dec 2016 09:53:33 +0000 (11:53 +0200)]
Fix 'sql-connect' on first invocation
* lisp/progmodes/sql.el (sql-connect): Reorder code which sets
param-var. (Bug#19452)
Paul Eggert [Fri, 2 Dec 2016 06:45:07 +0000 (22:45 -0800)]
Fix type typo on Solaris
* src/sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
Fix type mismatch, caught by --enable-check-lisp-object-type.
Paul Eggert [Fri, 2 Dec 2016 05:56:49 +0000 (21:56 -0800)]
Merge from gnulib
This incorporates:
2016-11-27 md4,md5,sha*: tune for recent glibc _STRING_INLINE_unaligned
2016-11-21 snippet/c++defs: Simplify _GL_CXXALIAS_* macros.
* build-aux/snippet/c++defs.h:
* lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c:
Copy from gnulib.
Paul Eggert [Fri, 2 Dec 2016 05:47:12 +0000 (21:47 -0800)]
Make struct font_drivers read-only
This simplifies the code a bit, and makes the structs more
shareable and less likely to become corrupt.
* src/alloc.c (cleanup_vector):
* src/font.c (valid_font_driver, font_prepare_cache)
(font_finish_cache, font_get_cache, font_clear_cache)
(register_font_driver, font_update_drivers):
* src/font.h (struct font, struct font_driver_list)
(valid_font_driver):
struct font_drivers are now const.
* src/font.c, src/ftcrfont.c, src/ftfont.c, src/nsfont.m, src/xfont.c:
Omit no-longer-necessary decls.
* src/ftcrfont.c (syms_of_ftcrfont):
* src/ftxfont.c (syms_of_ftxfont):
* src/xftfont.c (syms_of_xftfont):
Omit no-longer-necessary initialization code.
* src/ftcrfont.c (ftcrfont_driver):
* src/ftfont.c (ftfont_driver):
* src/ftxfont.c (ftxfont_driver):
* src/macfont.m (macfont_driver):
* src/nsfont.m (nsfont_driver):
* src/xfont.c (xfont_driver):
* src/xftfont.c (xftfont_driver):
Use C99-style initializer for ease of maintenance, and make it const.
* src/ftcrfont.c, src/ftxfont.c, src/xftfont.c:
Refer to functions like ftfont_text_extents directly.
* src/ftfont.c (ftfont_get_cache, ftfont_list, ftfont_list_family)
(ftfont_has_char, ftfont_encode_char, ftfont_text_extents)
(ftfont_get_bitmap, ftfont_anchor_point, ftfont_otf_capability)
(ftfont_variation_glyphs, ftfont_filter_properties)
(ftfont_combining_capability):
* src/xfont.c (xfont_get_cache):
Now extern, so that other modules’ struct font_drivers can use
them directly.
* src/macfont.m (macfont_descriptor_entity):
* src/nsfont.m (nsfont_open):
Use constant directly; this is clearer.
Eli Zaretskii [Thu, 1 Dec 2016 18:26:54 +0000 (20:26 +0200)]
; * test/lisp/progmodes/compile-tests.el: Fix a typo in a comment.
Helmut Eller [Thu, 1 Dec 2016 16:58:08 +0000 (18:58 +0200)]
Forth related improvements for etags
Generate correct tags names for things like "(foo)".
Previously "(foo" created.
Fix a bug where a tag for "-bar" was created when encountering things
like "create-bar".
Recognize more words from the Forth-2012 Standard.
* lib-src/etags.c (Forth_words): Check for whitespace after defining
words. Create tag with make_tag instead of get_tag to avoid notiname
which isn't appropriate for Forth.
* test/manual/etags/forth-src/test-forth.fth: Add some test cases.
* test/manual/etags/ETAGS.good_1:
* test/manual/etags/ETAGS.good_2:
* test/manual/etags/ETAGS.good_3:
* test/manual/etags/ETAGS.good_4:
* test/manual/etags/ETAGS.good_5:
* test/manual/etags/ETAGS.good_6:
* test/manual/etags/CTAGS.good: Adapt to the changes in etags.c and
new test cases.
Eli Zaretskii [Thu, 1 Dec 2016 16:49:51 +0000 (18:49 +0200)]
Fix bugs with buffer-local tags tables
* lisp/progmodes/etags.el (visit-tags-table): After
'visit-tags-table-buffer' returns, retrieve the value of
'tags-file-name' from the buffer we started in. Force
recomputation of 'tags-completion-table' next time it is used,
since the list of tags table has changed.
(visit-tags-table-buffer): Accept an additional optional argument
CBUF, the buffer in which to start processing, and switch to that
buffer if CBUF is non-nil. All callers changed to supply a
non-nil CBUF when they call 'visit-tags-table-buffer' in a loop.
Doc fix.
(tags-completion-table): Accept an optional argument, the buffer
for which to build 'tags-completion-table', and build that
buffer's completion table.
(tags-lazy-completion-table): Pass the current buffer to
'tags-completion-table'.
(tags-file-name): Don't say in the doc string that setting this
variable directly is enough; say that 'visit-tags-table' should be
used for that. (Bug#158) (Bug#17326) (Bug#23164)
* doc/emacs/maintaining.texi (Select Tags Table): Delete the
advice to set 'tags-file-name' directly.
* test/lisp/progmodes/etags-tests.el: New tests.
Glenn Morris [Thu, 1 Dec 2016 11:20:43 +0000 (06:20 -0500)]
; Auto-commit of loaddefs files.
Paul Eggert [Thu, 1 Dec 2016 08:32:54 +0000 (00:32 -0800)]
* src/lisp.h (LISP_INITIALLY_ZERO): Remove.
All uses replaced by LISPSYM_INITIALLY.
Paul Eggert [Thu, 1 Dec 2016 08:17:20 +0000 (00:17 -0800)]
Make Cairo safer for --enable-gcc-warnings
* src/image.c (xcolor_to_argb32, pbm_load, jpeg_load_body, gif_load):
Avoid overflow warnings about ‘0xff << 24’.
(xpm_load, gif_load): Avoid unnecessary casts.
(gif_load): Fewer ifdefs.
Thierry Volpiatto [Wed, 30 Nov 2016 20:22:04 +0000 (21:22 +0100)]
Fix Condition in kbd_buffer_store_buffered_event (bug#19547).
* src/keyboard.c (kbd_buffer_store_buffered_event): Should be NILP and not
!NILP.
Noam Postavsky [Tue, 29 Nov 2016 23:56:08 +0000 (18:56 -0500)]
Fix previous commit
* lisp/vc/diff-mode.el (diff-refine-hunk): Make sure to go to beginning
of hunk before calling `diff-hunk-style'.
Noam Postavsky [Tue, 29 Nov 2016 23:52:41 +0000 (18:52 -0500)]
* lisp/vc/diff-mode.el (diff-refine-hunk): Remove redundant variable.
Glenn Morris [Tue, 29 Nov 2016 21:57:05 +0000 (16:57 -0500)]
Use archive-mode for .cbr files
* lisp/files.el (auto-mode-alist): Add cbr. (Bug#24994)
Paul Eggert [Tue, 29 Nov 2016 21:12:24 +0000 (13:12 -0800)]
Pacify Sun C 5.14
* src/lisp.h (enum Lisp_Save_Type): Put SAVE_UNUSED,
SAVED_INTEGER, SAVE_FUNCPOINTER, SAVE_POINTER, and SAVE_OBJECT
into this enum rather than into an anonymous enum. This avoids
diagnostics from Sun C 5.14 and is a bit clearer anyway.
Paul Eggert [Tue, 29 Nov 2016 17:19:42 +0000 (09:19 -0800)]
Adjust lwlib to recent config.h change
* lwlib/lwlib-Xaw.c: Include <stdlib.h> for 'abort' (Bug#24506).
Paul Eggert [Tue, 29 Nov 2016 16:38:17 +0000 (08:38 -0800)]
* src/eval.c (clobbered_eassert): Check E's syntax.
Michael Albinus [Tue, 29 Nov 2016 14:51:38 +0000 (15:51 +0100)]
Improve user retrieval from auth-source in Tramp
* lisp/net/tramp.el (tramp-read-passwd, tramp-clear-passwd):
Use user for auth-source request only in case it exists.
Katsumi Yamaoka [Tue, 29 Nov 2016 10:20:51 +0000 (10:20 +0000)]
shr.el: Don't render a normal table twice
* lisp/net/shr.el (shr-collect-extra-strings-in-table):
Don't render a table if it is called for the first time,
IOW, recognize it to never be invalid (bug#25051).
Dima Kogan [Wed, 14 Sep 2016 22:25:06 +0000 (15:25 -0700)]
Improve diff-mode navigation/manipulation
This is Bug #17544.
Navigation and use of diff buffers had several annoying corner cases
that this patch fixes. These corner cases were largely due to
inconsistent treatment of file headers. Say you have a diff such as
this:
--- aaa
+++ bbb
@@ -52,7 +52,7 @@
hunk1
@@ -74,7 +74,7 @@
hunk2
--- ccc
+++ ddd
@@ -608,6 +608,6 @@
hunk3
@@ -654,7 +654,7 @@
hunk4
The file headers here are the '---' and '+++' lines. With the point on
such a line, hunk operations would sometimes refer to the next hunk and
sometimes to the previous hunk. Most of the time it would be the
previous hunk, which is not what the user would expect. This patch
consistently treats such headers as the next hunk. So with this patch,
if the point is on the '--- ccc' line, the point is seen as referring to
hunk3.
Specific behaviors this fixes are:
1. It should be possible to place the point in the middle of a diff
buffer, and press M-k repeatedly to kill hunks in the order they appear
in the buffer. With the point on hunk1, M-k M-k would kill hunk1 then
hunk2. With the point on hunk3, it would kill hunk3 then hunk4; this is
fine. However, with the point on hunk2, it'd kill hunk2 then hunk1.
This is fixed by this patch.
2. Similarly, it should be possible to apply hunks in order. Previously
with the point at the start, C-c C-a would apply the hunk1, then move
the point to the first @@ header, and thus C-c C-a would try to apply
the same hunk again.
* lisp/vc/diff-mode.el (diff--wrap-navigation): New function to add better
navigation logic to diff-{hunk,file}-{next,prev}.
(diff-hunk-next, diff-hunk-prev):
(diff-file-next, diff-file-prev): Better navigation logic if
skip-hunk-start is true, which happens when called interactively.
(diff-bounds-of-hunk, diff-find-source-location):
(diff-apply-hunk, diff-current-defun, diff-refine-hunk): Small tweaks to
improve hunk navigation.
Noam Postavsky [Fri, 18 Nov 2016 21:26:53 +0000 (16:26 -0500)]
Upcase Path and ComSpec in process-environment
Since 2016-07-18 "Keep w32 environment settings internal only", the
upcasing of environment variables "Path" and "ComSpec" occured after
initializing process-environment. This meant that Lisp code trying to
override "PATH" environment had no effect (Bug #24956).
* src/w32.c (init_environment): Upcase the "Path" and "ComSpec" entries
in Vprocess_environment.
Philipp Stephani [Tue, 22 Nov 2016 20:32:11 +0000 (21:32 +0100)]
Guard terminal parameter in XTerm mouse mode
It has been observed (in the HTerm terminal emulator) that the
event stored in the 'xterm-mouse-last-down' terminal parameter gets
overwritten during a mouse drag operation, causing Emacs to attempt to
synthesize the non-existing <drag-mouse-0> event. Copy the event into
the terminal parameter to protect against such modifications.
* lisp/xt-mouse.el (xterm-mouse-translate-1): Guard against modification
of input event list.
Paul Eggert [Mon, 28 Nov 2016 15:48:50 +0000 (07:48 -0800)]
Fix template for module functions
Reported by Syohei YOSHIDA (Bug#24932).
* modules/modhelp.py (TEMPLATES):
c_func’s 2nd arg is ptrdiff_t, not int.
Paul Eggert [Mon, 28 Nov 2016 07:15:12 +0000 (23:15 -0800)]
Pacify gcc -Wswitch.
* src/keyboard.c (kbd_buffer_store_buffered_event):
Move initialization into default case.
Thierry Volpiatto [Mon, 28 Nov 2016 05:55:14 +0000 (06:55 +0100)]
Reuse already existing lisp symbols for ignore_event (bug#19547).
* lisp/subr.el (while-no-input-ignore-events): Use them instead.
* src/keyboard.c (kbd_buffer_store_buffered_event):
Use help-echo for HELP_EVENT, iconify-frame for ICONIFY_EVENT,
and make-frame-visible for DEICONIFY_EVENT.
(syms_of_keyboard): Remove unneeded symbols.
Thierry Volpiatto [Sun, 27 Nov 2016 08:31:58 +0000 (09:31 +0100)]
Allow configuring which event throw-on-input should ignore (bug#19547).
* src/keyboard.c (kbd_buffer_store_buffered_event):
Translate event to corresponding symbol from `while-no-input-ignore-events`
and check them with Fmemq.
(syms_of_keyboard): Declare new lisp variable `while-no-input-ignore-events`
and its symbols.
* lisp/subr.el (while-no-input-ignore-events): Add default values.
* doc/lispref/commands.texi (Event Input Misc):
Document while-no-input-ignore-events.
* etc/NEWS: Same.
Tino Calancha [Sun, 27 Nov 2016 03:22:25 +0000 (12:22 +0900)]
ash, lsh avoid code duplication
See discussion in:
https://lists.gnu.org/archive/html/emacs-devel/2016-11/msg00469.html
* src/data.c (ash_lsh_impl): New function.
(ash, lsh): Use it.
Simen Heggestøyl [Tue, 15 Nov 2016 19:54:55 +0000 (20:54 +0100)]
Add will change module to CSS property list
* lisp/textmodes/css-mode.el (css-property-alist)
(css-value-class-alist): Add new property and value class from CSS
Will Change Module.
Paul Eggert [Sat, 26 Nov 2016 08:19:08 +0000 (00:19 -0800)]
Don't access pointers to freed storage in regex.c
Remove __BOUNDED_POINTERS__ code, which does not work with
-fcheck-pointer-bound and which has undefined behavior anyway.
Problem found when trying to port to gcc -fcheck-pointer-bounds.
(This code was removed from glibc and gnulib regex.c many years ago.)
* src/regex.c (ELSE_EXTEND_BUFFER_HIGH_BOUND): Remove.
(EXTEND_BUFFER): Use a more-portable approach that avoids
undefined behavior due to inspecting pointers to freed storage.
Eli Zaretskii [Sat, 26 Nov 2016 07:30:59 +0000 (09:30 +0200)]
; Fix last change in cpp.el
* lisp/progmodes/cpp.el (cpp-message-min-time-interval): Fix the
':type' attribute.
Paul Eggert [Sat, 26 Nov 2016 05:24:28 +0000 (21:24 -0800)]
Port build to gcc -fcheck-pointer-bounds
This does not let Emacs run, just build.
* lib-src/etags.c (main):
* lib-src/profile.c (main):
Use return, not exit.
* src/bytecode.c (BYTE_CODE_THREADED) [__CHKP__]:
Do not define, as -fcheck-pointer-bounds is incompatible with taking
addresses of labels.
* src/menu.c (Fx_popup_dialog): Use eassume, not eassert,
to pacify gcc -fcheck-pointer-bounds -Wnull-dereference.
Tino Calancha [Sat, 26 Nov 2016 03:03:25 +0000 (12:03 +0900)]
* lisp/emacs-lisp/subr-x.el (hash-table-keys, hash-table-values): Use cl-loop.
Simen Heggestøyl [Fri, 25 Nov 2016 20:08:32 +0000 (21:08 +0100)]
* lisp/rot13.el: Use lexical-binding
Mark Oteiza [Fri, 25 Nov 2016 19:14:41 +0000 (14:14 -0500)]
Add "using" to cl-loop debug spec (Bug#24750)
* lisp/emacs-lisp/cl-macs.el (cl-loop): Add element to account for
"using" hash table clause.
Hong Xu [Fri, 25 Nov 2016 10:51:22 +0000 (12:51 +0200)]
Allow user control of progress messages in cpp.el
* progmodes/cpp.el (cpp-message-min-time-interval): New defcustom.
(cpp-progress-time): Use 'cpp-message-min-time-interval'. Improve
the doc string.
(cpp-highlight-buffer): Use 'cpp-progress-message' instead of
'message' to print messages. (Bug#24861)
Copyright-paperwork-exempt: yes
Wojciech Gac [Fri, 25 Nov 2016 10:41:20 +0000 (12:41 +0200)]
New input method 'polish-prefix'
* lisp/leim/quail/latin-pre.el ("polish-prefix"): New input
method. (Bug#24967)
* etc/NEWS: Mention the new input method.
Copyright-paperwork-exempt: yes
Damien Cassou [Fri, 25 Nov 2016 10:29:44 +0000 (12:29 +0200)]
* lisp/isearch.el: Add 'provide'. (Bug#25026)
Philippe Vaucher [Fri, 25 Nov 2016 10:24:22 +0000 (12:24 +0200)]
Add missing 'provide's in preloaded packages
* lisp/composite.el:
* lisp/replace.el:
* lisp/textmodes/text-mode.el: Add provide statement. (Bug#24985)
Alan Mackenzie [Thu, 24 Nov 2016 20:34:42 +0000 (20:34 +0000)]
Handle correctly an (undocumented) bare mode in hack-local-variables.
lisp/files.el (hack-local-variables-prop-line): When a file's first line
contains only a mode specification without the string "mode:", return the mode
symbol only when `handle-mode' is t.
Dima Kogan [Thu, 24 Nov 2016 02:04:21 +0000 (18:04 -0800)]
Clarify ediff-directories prompt
* lisp/vc/ediff-mult.el (ediff-filegroup-action):
* lisp/vc/ediff.el (ediff-directories,ediff-directory-revisions,
ediff-directories3, ediff-merge-directories,
ediff-merge-directories-with-ancestor, ediff-merge-directory-revisions,
ediff-merge-directory-revisions-with-ancestor): Clarify prompt message for
filename filter in interactive ediff. The new message makes it clear what is
being filtered
Tino Calancha [Thu, 24 Nov 2016 01:39:33 +0000 (10:39 +0900)]
* test/lisp/ibuffer-tests.el (ibuffer-test-Bug24997): Add test for Bug#24997.
Ulf Jasper [Wed, 23 Nov 2016 17:09:34 +0000 (18:09 +0100)]
Fix Bug#24199.
* lisp/calendar/icalendar.el (icalendar--do-create-ical-alarm): Quote
bracket in doc string (make checkdoc happy).
(icalendar-import-buffer),
(icalendar-import-buffer),
(icalendar--convert-ical-to-diary),
(icalendar--add-diary-entry): Rename argument diary-file to
diary-filename (make checkdoc happy).
(icalendar--convert-recurring-to-diary): Take care of byday-clause
in monthly recurring events. Actually fix Bug#24199.
* test/lisp/calendar/icalendar-tests.el (icalendar-import-bug-24199): New.
Tino Calancha [Wed, 23 Nov 2016 12:19:16 +0000 (21:19 +0900)]
* test/lisp/ibuffer-tests.el (ibuffer-test-Bug25000): Add test for Bug25000.
Mark Oteiza [Tue, 22 Nov 2016 16:09:15 +0000 (11:09 -0500)]
; Fix previous change
strlen is already computed, just use the symbol.
* lisp/ibuffer.el (ibuffer-compile-make-eliding-form): Use strlen.
Philipp Stephani [Wed, 26 Oct 2016 22:28:34 +0000 (00:28 +0200)]
Comint: new user option for C-c M-r and C-c M-s
This option allows the user to specify where to place point after these
commands.
* comint.el (comint-move-point-for-matching-input): New user option.
(comint-previous-matching-input-from-input): Use user option.
Michael Albinus [Tue, 22 Nov 2016 09:16:54 +0000 (10:16 +0100)]
Add tramp-eshell-directory-change to eshell-first-time-mode-hook
* lisp/net/tramp.el (tramp-eshell-directory-change): Add it also to
`eshell-first-time-mode-hook'.
Michael Albinus [Tue, 22 Nov 2016 08:21:03 +0000 (09:21 +0100)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Tue, 22 Nov 2016 08:20:21 +0000 (09:20 +0100)]
Dump also connection local variables in Tramp bug reports
* lisp/net/tramp-cmds.el (tramp-bug, tramp-append-tramp-buffers):
Dump also connection local variables.
Mark Oteiza [Tue, 22 Nov 2016 07:42:47 +0000 (02:42 -0500)]
Make sure elided long buffer names have ellipses added (Bug#24972)
* lisp/ibuffer.el (ibuffer-compile-make-eliding-form): Restore the
string concat, and chop "strvar" less the width of the ellipsis.
(ibuffer-compile-make-substring-form): Add space as padding, to fix
off-by-one in alignment.
Tino Calancha [Tue, 22 Nov 2016 06:51:57 +0000 (15:51 +0900)]
Buffer-menu-no-header: Detect a fake header
* lisp/buff-menu.el (Buffer-menu-no-header): Use
'tabulated-list-header-overlay-p' (Bug#24855).
Tino Calancha [Tue, 22 Nov 2016 06:23:50 +0000 (15:23 +0900)]
buff-menu: Add command to unmark all buffers
Bind 'U' in buff-menu, bs and electric-buff-menu to commands
to unmark all buffers (Bug#24880).
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-header-overlay-p):
New predicate; return non-nil if tabulated-list has a fake header.
* lisp/buff-menu.el (Buffer-menu-unmark-all-buffers):
New command; remove all flags that use a particular mark from all the lines.
Bind it to 'M-DEL'.
(Buffer-menu-unmark-all):
New command; remove all flags from all the lines. Bind it to 'U'.
(Buffer-menu-marker-char, Buffer-menu-del-char): New variables.
(Buffer-menu-delete, Buffer-menu-mark): Use them.
(Buffer-menu-mode-map): Update menus.
(Buffer-menu-mode): Update mode doc.
* lisp/bs.el (bs-unmark-all, bs-unmark-previous): New commands.
(bs-mode-map): Bind them to 'U' and '<backspace>' respectively.
(bs-mode): Update mode doc.
* lisp/ebuff-menu.el (electric-buffer-menu-mode-map):
Bind Buffer-menu-unmark-all to 'U' and Buffer-menu-unmark-all-buffers
to 'M-DEL'.
(bs--down, bs-down, bs--up, bs-up, bs-unmark-current, bs-mark-current):
Use point instead of cursor in doc string.
(electric-buffer-list): Update mode doc.
* doc/emacs/buffers.texi (Several Buffers): Mention Buffer-menu-unmark-all
and Buffer-menu-unmark-all-buffers.
; * etc/NEWS: Add an entry per each new feature.
Mark Oteiza [Tue, 22 Nov 2016 04:05:47 +0000 (23:05 -0500)]
Revert "* lisp/htmlfontify.el (hfy-force-fontification): Use font-lock-ensure."
This reverts commit
10efaf718c5258af0ba62077cf4e2aaf9fb90227.