Jürgen Hötzel [Fri, 14 Aug 2015 19:11:51 +0000 (21:11 +0200)]
Flush file properties in Tramp.
* lisp/net/tramp-sh.el (tramp-sh-handle-set-file-modes)
(tramp-sh-handle-set-file-times):
* lisp/net/tramp-adb.el (tramp-adb-handle-set-file-modes)
(tramp-adb-handle-set-file-times): Flush the file properties of
the directory.
Paul Eggert [Thu, 13 Aug 2015 20:48:28 +0000 (13:48 -0700)]
Make add_to_log varargs
* src/alloc.c (run_finalizer_handler):
* src/charset.c (load_charset_map_from_vector):
* src/nsimage.m (ns_load_image):
* src/xfaces.c (load_pixmap, load_color2):
Simplify, now that add_to_log has a variable number of args.
* src/image.c (image_error): Take a variable number of args.
Callers simplified.
* src/lisp.h (add_to_log, vadd_to_log): Adjust to new APIs.
* src/xdisp.c (format_nargs, vadd_to_log): New functions.
(add_to_log): Make varargs, and reimplement in terms of vadd_to_log.
* src/xfaces.c (merge_face_ref): Fix typo that omitted color name.
Paul Eggert [Thu, 13 Aug 2015 19:16:25 +0000 (12:16 -0700)]
Optional args for holiday-greek-orthodox-easter
* etc/NEWS: Document this.
* lisp/calendar/holidays.el (holiday-greek-orthodox-easter):
Add optional args N and STRING, mimicking the API and code of
‘holiday-easter-etc’. From suggestion by Foivos S. Zakkak (Bug#21256).
Jürgen Hötzel [Thu, 13 Aug 2015 18:59:16 +0000 (20:59 +0200)]
; Fix caching problem in tramp-adb.el
* lisp/net/tramp-adb.el
(tramp-adb-handle-directory-files-and-attributes): Make a copy of
result to prevent modification of the tramp-cache by side effects.
Use the correct cache key.
* lisp/emacs-lisp/find-func.el (find-feature-regexp): Move here from
elisp-mode.el, change to search for ";;; Code:"
(find-alias-regexp): Move here from elisp-mode.el, cleaned up.
(find-function-regexp-alist): Add them.
* lisp/progmodes/elisp-mode.el:
(elisp--xref-format, elisp--xref-format-extra): Change back to defvar due
to bug#21237.
(elisp--xref-find-definitions): Exclude co-located default methods for
generic functions. Also exclude implicitly declared defgeneric.
(elisp--xref-find-definitions): Handle C source properly. Exclude minor
mode variables defined by 'define-minor-mode'.
* test/automated/elisp-mode-tests.el: Declare generic functions, add
tests for them.
(xref-elisp-test-run): Fix bug.
(emacs-test-dir): Improve initial value.
(find-defs-defun-defvar-el): Don't expect defvar.
(find-defs-feature-el): Match change to find-feature-regexp.
Alan Mackenzie [Wed, 12 Aug 2015 21:28:55 +0000 (21:28 +0000)]
Introduce new macros to cover Emacs's new names in cl-lib.el.
This also eliminates `mapcan' warnings in XEmacs.
progmodes/cc-defs.el (c--mapcan-status): new variable to characterise
[X]Emacs versions.
(top-level): Require either 'cl or 'cl-lib, depending on
c--mapcan-status.
Change this back to cc-external-require from an eval-when-compile
require.
(c--mapcan, c--set-difference, c--intersection, c--macroexpand-all)
(c--delete-duplicates): New macros which expand into either old or new
names.
(c-make-keywords-re, c-lang-defconst, c-lang-const) Use the new macros
rather than the old names.
progmodes/cc-engine.el (c-declare-lang-variables): Use c--mapcan rather
than mapcan.
progmodes/cc-fonts.el (c-compose-keywords-list): Use c--mapcan.
progmodes/cc-langs.el (top-level): Require either 'cl or 'cl-lib,
depending on c--mapcan-status.
(c-filter-ops, c-all-op-syntax-tokens, c-assignment-op-regexp)
(c-type-start-kwds, c-prefix-spec-kwds, c-specifier-key)
(c-not-decl-init-keywords, c-not-primitive-type-keywords)
(c-paren-any-kwds, c-<>-sexp-kwds, c-block-stmt-kwds, c-expr-kwds)
(c-decl-block-key, c-keywords, c-keywords-obarray)
(c-regular-keywords-regexp, c-primary-expr-regexp,
c-primary-expr-regexp)
(c-block-prefix-disallowed-chars, c-known-type-key,
c-nonlabel-token-key)
(c-make-init-lang-vars-fun): Use the new macros rather than the old
names.
Oleh Krehel [Wed, 12 Aug 2015 18:12:14 +0000 (20:12 +0200)]
loadhist.el (read-feature): Conform to completing-read
* lisp/loadhist.el (read-feature): According to `completing-read'
documentation, if collection is a list, then it must be a list of
strings. And not a list of symbols like before.
David Kastrup [Wed, 28 Jan 2015 10:53:54 +0000 (11:53 +0100)]
Deal gracefully with up-events (Bug#19746)
* keyboard.c (apply_modifiers_uncached, parse_solitary_modifier)
(parse_modifiers_uncached): React gracefully to "up-" modifiers:
those may easily be injected by user-level Lisp code.
(read_key_sequence): Discard unbound up-events like unbound
down-events: they are even more likely only relevant for special
purposes.
While Emacs will not produce up-events on its own currently (those are
converted to drag or click events before being converted to
Lisp-readable structures), the input queue can be made to contain them
by synthesizing events to `unread-command-events'. Emacs should deal
consistently with such events.
Eli Zaretskii [Wed, 12 Aug 2015 15:55:38 +0000 (18:55 +0300)]
Fix display of thin lines whose newline has line-height property of t
* src/xdisp.c (append_space_for_newline): Don't try to fix ascent
and descent values of non-empty glyph rows, since they could have
forced low values deliberately. (Bug#21243)
Richard Stallman [Wed, 12 Aug 2015 15:21:49 +0000 (11:21 -0400)]
Re-enable mime processing after decryption. Add 'decrypt' keyword.
* rmail.el (rmail-epa-decrypt-1): New subroutine.
(rmail-epa-decrypt): rmail-epa-decrypt-1 broken out.
In a mime message, reenable Mime and show the parts that
were shown before.
Add keyword "decrypt" if anything decrypted.
* test/automated/elisp-mode-tests.el (xref-elisp-test-run): Split out
from xref-elisp-test for ease of debugging.
(xref-elisp-deftest): Rename from xref-elisp-test.
(find-defs-constructor): New test.
(find-defs-defgeneric-el): Match batch test config.
(compile): Required for find-defs compilation-minor-mode test.
(find-defs-defvar-el): Match code change.
(find-defs-face-el): Match code change.
Jürgen Hötzel [Tue, 11 Aug 2015 06:57:45 +0000 (08:57 +0200)]
; Fix prompt in tramp-adb.el
* lisp/net/tramp-adb.el (tramp-adb-prompt): Match leading escape
sequence. Recent adb version send initial escape sequences, even
when terminal type is set to TERM=dumb.
Stephen Leake [Tue, 11 Aug 2015 02:53:19 +0000 (21:53 -0500)]
Rewrite elisp--xref-find-definitions to handle many more cases; add tests.
* lisp/progmodes/elisp-mode.el (elisp--xref-identifier-location): deleted
(elisp--xref-format-cl-defmethod): new
(find-feature-regexp): new
(find-alias-regexp): new
(elisp--xref-make-xref): new
(elisp--xref-find-definitions): Rewrite using the above, handle many more
cases. Always output all available definitions.
(xref-location-marker): No need for special cases.
* test/automated/elisp-mode-tests.el: Add more tests of
elisp--xref-find-definitions, improve current tests.
Eli Zaretskii [Mon, 10 Aug 2015 18:15:03 +0000 (21:15 +0300)]
Fix recording of events pushed onto unread-command-events
* src/keyboard.c (read_char): Make sure events read from
unread-command-events and unread-post-input-method-events are
always recorded by record_char. Reported by David Kastrup
<dak@gnu.org>, see
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00193.html.
Eli Zaretskii [Mon, 10 Aug 2015 17:01:31 +0000 (20:01 +0300)]
Avoid setting LC_NUMERIC on MS-Windows to anything but "C"
* src/emacs.c (synchronize_locale) [WINDOWSNT]: Call fixup_locale
after setting LC_ALL to the desired locale, to avoid affecting how
numbers are read and printed. (Bug#21223)
Paul Eggert [Mon, 10 Aug 2015 06:23:14 +0000 (23:23 -0700)]
Fix DPI calculation when Xft/DPI is default
* src/xsettings.c (parse_settings): Don't use Xft/DPI default
value of -1, which evaluates to 2**32 - 1 (Bug#21152).
Remove unnecessary cast while we're in the neighborhood.
Paul Eggert [Sun, 9 Aug 2015 23:21:05 +0000 (16:21 -0700)]
Fix some minor quoting issues with grave accent
* src/dispnew.c (add_window_display_history) [GLYPH_DEBUG]:
Remove redundant quotes.
* src/doc.c (uLSQM, uRSQM): New macros.
* src/doc.c (Fsubstitute_command_keys):
* src/syntax.c (Finternal_describe_syntax_value): Follow the user
preference for quotes rather than hardcoding the ‘grave’ style.
* src/regex.c (PUSH_FAILURE_POINT, POP_FAILURE_POINT)
(re_match_2_internal) [DEBUG]: In debugging output, quote C
strings with "...", not `...'.
Paul Eggert [Sun, 9 Aug 2015 14:48:00 +0000 (07:48 -0700)]
Remove no-op calls to substitute-command-keys
* lisp/org/org-src.el (org-edit-src-code)
(org-edit-fixed-width-region):
* lisp/simple.el (completion-setup-function):
Remove calls to substitute-command-keys that always just return
their argument.
Ivan Kanis [Sun, 9 Aug 2015 09:27:38 +0000 (10:27 +0100)]
fix link to source code in help window
* lisp/help-fns.el (find-lisp-object-file-name): remove code that
will never work due to Glenn Morris change a6d63d9 on Apr 20 2013
'No longer include timestamp in header of .elc files'. Add code
that will return .el source file in load-path.
Stefan Monnier [Sat, 8 Aug 2015 23:41:57 +0000 (19:41 -0400)]
* org.el: Fix up some lexical scoping warnings, and use dolist
* lisp/org/org.el (org-set-regexps-and-options-for-tags, org-goto-map)
(org-set-regexps-and-options, org-assign-fast-keys)
(org-contextualize-keys, org-contextualize-validate-key)
(org-notes-order-reversed-p, org-local-logging, org-map-entries)
(org-find-olp, org-find-exact-heading-in-directory)
(org-cycle-agenda-files, org-release-buffers, org-fill-template)
(org-agenda-prepare-buffers, org-occur-in-agenda-files)
(org-replace-escapes): Use dolist.
(org-mode): Optimize away XEmacs-only code.
(org-refile-get-targets): Remove unused var `f'.
(org-fast-todo-selection): Remove unused var `e'.
(org-make-tags-matcher): Use dolist. Remove unused var `term'.
(org-fast-tag-selection): Use dolist. Remove unused var `e'.
(org-format-latex): Use dolist. Remove unused var `e'.
(org-toggle-heading): Access vars lexically rather than dynamically.
(org-backward-sentence, org-forward-sentence, org-meta-return)
(org-kill-line): Mark arg as unused.
(org-submit-bug-report): Silence compiler warning.
(org-occur-in-agenda-files): Don't use add-to-list on local vars.
(org-get-cursor-date): Remove unused var `tm'.
(org-comment-or-uncomment-region): Use standard name `_'.
(reftex-docstruct-symbol, reftex-cite-format): Declare to
silence byte-compiler.
(org-reftex-citation): Add `org--' prefix to dynamically scoped
`rds' var.
Paul Eggert [Sat, 8 Aug 2015 16:47:37 +0000 (09:47 -0700)]
Electric quote if coding is undecided or no conv
* lisp/electric.el (electric--insertable-p): Also say that a
string is insertable if the buffer file coding system is undecided
or uses no conversion, as curved quotes will work in either case.
Eli Zaretskii [Sat, 8 Aug 2015 13:55:26 +0000 (16:55 +0300)]
Fix overlay string display regressions introduced in Emacs 24.5
* src/xdisp.c (pop_it): Reset the flag to ignore overlays at this
buffer position, if we move the iterator to a new position as
result of jumping over text covered by a "replacing" display
property.
* test/redisplay-testsuite.el (test-redisplay-4): Add 2 new tests.
Eli Zaretskii [Sat, 8 Aug 2015 08:12:06 +0000 (11:12 +0300)]
Support recovery from C stack overflow on MS-Windows
* src/w32fns.c (w32_reset_stack_overflow_guard)
(stack_overflow_handler): New functions for handling C stack
overflow exceptions.
(my_exception_handler): Handle EXCEPTION_STACK_OVERFLOW exceptions
specially, and zero out except_addr if we do.
(globals_of_w32fns): Initialize dwMainThreadId in non-interactive
mode.
* src/sysdep.c [HAVE_STACK_OVERFLOW_HANDLING]: Add !WINDOWSNT to
the condition, as HAVE_STACK_OVERFLOW_HANDLING is now defined for
the MinGW build, but the code guarded by that is for Posix hosts.
* src/keyboard.c (command_loop) [WINDOWSNT]: Call
w32_reset_stack_overflow_guard.
* nt/inc/ms-w32.h (sigjmp_buf): New typedef.
(sigsetjmp): New macro.
(w32_reset_stack_overflow_guard): Declare the prototype.
* configure.ac (HAVE_STACK_OVERFLOW_HANDLING): Set to 1 for MinGW.
Phillip Lord [Fri, 7 Aug 2015 21:12:59 +0000 (22:12 +0100)]
Improve error signalling for seq-subseq.
The existing behaviour for seq-subseq is to error when indexes are too
large, but to silently ignore numbers which are too negative for lists.
String and vector handling errors in both cases. This has been
regularlised.
Error signalling behaviour has been explicitly added to the docstring of
seq-subseq, and also to cl-subseq which largely defers to
seq-subseq (and is therefore also impacted by this change).
Tests have been added for these exceptional cases, as well as one non
exceptional base case.
Eli Zaretskii [Fri, 7 Aug 2015 13:42:24 +0000 (16:42 +0300)]
Avoid infinite loop in display of invisible text in strings
* src/xdisp.c (handle_invisible_prop): If the next change of
invisibility spec does not mean the beginning of a visible text,
update the string position from which to start the search for the
next invisibility change. This avoids an infinite loop when we
have more than one invisibility spec that are made inactive by
buffer-invisibility-spec. Simplify code. (Bug#21200)
* test/redisplay-testsuite.el (test-redisplay-4): Add a test case
for the situation that caused bug #21200.
Dmitry Gutov [Wed, 5 Aug 2015 12:18:25 +0000 (15:18 +0300)]
Preserve window point in xref-find-definitions-other-window
Fix the problem reported by Ingo Logmar in
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00152.html
* lisp/progmodes/xref.el (xref--goto-char): Extract from
xref--goto-location.
(xref--pop-to-location): Use it. Replace xref--goto-location with
a direct xref-location-marker call.
(xref--show-location): Likewise.
(xref--display-position): Use xref--goto-char.
Ingo Lohmar [Mon, 3 Aug 2015 16:49:55 +0000 (18:49 +0200)]
Add new 'calendar-weekend-days' option
Make the days receiving the `calendar-weekend-header' face freely
customizable, as they differ by region/culture.
* doc/emacs/calendar.texi: Document the new variable.
* lisp/calendar/calendar.el (calendar-generate-month): New variable
calendar-weekend-days to customize day header fontification.
Paul Eggert [Sun, 2 Aug 2015 22:58:02 +0000 (15:58 -0700)]
Redo text-quoting-style variable
Rename help-quote-translation to text-quoting-style,
and use symbols rather than characters as values.
This follows suggestions along these lines by Alan Mackenzie in:
http://lists.gnu.org/archive/html/emacs-devel/2015-06/msg00343.html
and by Drew Adams in:
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00048.html
* doc/lispref/help.texi (Keys in Documentation)
* etc/NEWS:
* lisp/cus-start.el (standard):
* src/doc.c (Fsubstitute_command_keys, syms_of_doc):
Document and/or implement the new behavior instead of the old.
(syms_of_doc): New symbols 'grave' and 'straight'.
Paul Eggert [Sun, 2 Aug 2015 21:55:15 +0000 (14:55 -0700)]
Treat help strings like other doc strings
* doc/lispref/text.texi (Special Properties), etc/NEWS: Document this.
* lisp/epa.el (epa--select-keys): Remove no-longer-needed calls to
substitute-command-keys.
* src/keyboard.c (show_help_echo, parse_menu_item): Call
substitute-command-keys on the help string before displaying it.
Paul Eggert [Sun, 2 Aug 2015 19:43:20 +0000 (12:43 -0700)]
Also mention "curly quotes"
See Drew Adams's email in:
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00040.html
* doc/lispref/help.texi (Keys in Documentation):
Add index entry "curly quotes".
* etc/NEWS: Use the phrase "curly quotes" too.
Ingo Lohmar [Sun, 2 Aug 2015 15:20:53 +0000 (17:20 +0200)]
Add option `calendar-weekend-days'
Previously, the face `calendar-weekend-header' was invariably applied to
Sundays and Saturdays, although weekend days differ by region/culture.
Making the days freely customizable, independent of
`calendar-week-start-day', should cover all possible scenarios.
Paul Eggert [Sun, 2 Aug 2015 15:27:13 +0000 (08:27 -0700)]
ede-proj-target-makefile docstring tweaks
* lisp/cedet/ede/proj.el (ede-proj-target-makefile):
Consistently use "all:" to describe the all: target,
replacing three different and confusingly-quoted usages.
Eli Zaretskii [Sun, 2 Aug 2015 14:40:19 +0000 (17:40 +0300)]
Fix handling of 1st keystroke on MS-Windows
* src/w32fns.c (globals_of_w32fns): Initialize after_deadkey to -1.
This is needed to correctly handle the session's first keystroke,
if it has any modifiers. (Bug#19994)
Paul Eggert [Sun, 2 Aug 2015 07:04:51 +0000 (00:04 -0700)]
Substitute some customization etc. doc strings
These changes apply substitute-command-keys to some
doc strings that were going through untranslated
when creating customization or other widgets.
* lisp/cus-edit.el (custom-group-value-create):
* lisp/wid-edit.el (widget-default-create):
(widget-push-button-value-create):
Treat the widget tag as a doc string.
* lisp/emacs-lisp/cl-extra.el (cl--describe-class-slot):
Treat the :documentation value as a doc string.
* lisp/wid-edit.el (widget-choose):
Treat the choice names as doc strings.
(widget-default-create): Treat the :doc value as a doc string.
(widget-toggle-value-create): Treat the :on and :off values
as doc strings.
(widget-documentation-string-value-create):
Substitute the doc string.