1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00
Commit graph

128843 commits

Author SHA1 Message Date
Glenn Morris
f981c611e2 Advertise https for homepage of gnu.org packages
* lisp/emacs-lisp/package.el (describe-package-1):
Use https, if supported, for the homepage of packages on gnu.org.
2017-04-04 19:39:57 -04:00
Glenn Morris
048133d488 Default to https for elpa.gnu.org if gnutls available
* lisp/emacs-lisp/package.el (package-archives):
Default to https for elpa.gnu.org if gnutls is available.  Ref:
http://lists.gnu.org/archive/html/emacs-devel/2015-05/msg00130.html
2017-04-04 19:04:52 -04:00
Paul Eggert
82b9efc869 Minor simplifications and doc for records
* doc/lispref/records.texi (Records): Mention size limit.
* etc/NEWS: Mention records.
* src/alloc.c (allocate_pseudovector, allocate_record):
Prefer 'PSEUDOVECTOR_SIZE_MASK' to its definiens.
(allocate_record): Check arg range here, not in callers, as this
simplifies the code.  Use allocate_vectorlike instead of
allocate_vector, to avoid duplicate runtime tests.
(Fmake_record, record): Don't mention PSEUDOVECTOR_SIZE_BITS in
the doc string, as it is not visible to the user.
(Fmake_record, record, Fcopy_record):
Prefer make_lisp_ptr to XSETVECTOR.
(record): Broaden memcpy to copy the type, too.
2017-04-04 14:07:54 -07:00
Eli Zaretskii
12317ff4fb Fix recent changes in record data type
* src/alloc.c (Fmake_record, Frecord, Fcopy_record): Avoid
compiler warnings when 'ptrdiff_t' is narrower than 'long int'.
2017-04-04 17:56:10 +03:00
Philipp Stephani
604eb02fff Make subprocess functions resolve the default directory
`call-process' doesn't respect file name handlers in
`default-directory', so `file-name-non-special' has to resolve them
for `process-file', `start-file-process', and
`shell-command' (Bug#25949).

* lisp/files.el (file-name-non-special): Also resolve default
directory for 'process-file', 'start-file-process', and
'shell-command'.
* test/lisp/files-tests.el
(files-tests--file-name-non-special--subprocess): Add unit test.
2017-04-04 14:32:01 +02:00
Philipp Stephani
f4b50dad8d Make ediff handle remote and quoted file names
Quoted file names need to be unquoted before passed to
subprocesses (Bug#25950).

* lisp/vc/ediff-diff.el (ediff-exec-process): Handle remote and quoted
file names.
* test/lisp/vc/ediff-diff-tests.el
(ediff-diff-tests--ediff-exec-process--quoted-file): Add unit test.
2017-04-04 11:37:10 +02:00
Stefan Monnier
2c68192c6b Backward compatibility with pre-existing struct instances.
* lisp/emacs-lisp/cl-lib.el (cl--old-struct-type-of): New function.
(cl-old-struct-compat-mode): New minor mode.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Pass `record' to
cl-struct-define to signal use of record objects.

* lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class,
cl-struct-define): Enable legacy defstruct compatibility.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-old-struct,
old-struct): New tests.

* doc/lispref/elisp.texi, doc/lispref/records.texi: Document
`old-struct-compat'.
2017-04-04 08:23:46 +02:00
Lars Brinkhoff
b6738682ae Make the URL library use records.
* lisp/url/url.el, lisp/url/url-cache.el, lisp/url/url-dav.el,
lisp/url/url-expand.el, lisp/url/url-file.el, lisp/url/url-imap.el,
lisp/url/url-ldap.el: Use `url-p' instead of `vectorp'.

* lisp/url/url-http.el (url-http): Check for type `url' instead of
`vector'.
2017-04-04 08:23:46 +02:00
Stefan Monnier
8e6f204f44 Make EIEIO use records.
* lisp/emacs-lisp/eieio-compat.el
(eieio--generic-static-object-generalizer): Adjust to new tags.

* lisp/emacs-lisp/eieio-core.el: Use records, and place the class object
directly as tag.
(eieio--object-class): Adjust to new tag representation.
(eieio-object-p): Rewrite, and adapt to new `type-of' behavior.
(eieio-defclass-internal): Use `make-record'.
(eieio--generic-generalizer): Adjust generalizer code accordingly.

* lisp/emacs-lisp/eieio.el (make-instance, clone): Use copy-record.

* lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
Add `recordp'.

* doc/lispref/records.texi, doc/misc/eieio.texi: Update for records.
2017-04-04 08:23:46 +02:00
Lars Brinkhoff
0565482838 Make cl-defstruct use records.
* lisp/emacs-lisp/cl-extra.el (cl--describe-class)
(cl--describe-class-slots): Use the new `type-of'.

* lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tag): Use type-of.
(cl--generic-struct-specializers): Adjust to new tag.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): When type is nil, use records.
Use the type symbol as the tag.  Use copy-record to copy structs.
(cl--defstruct-predicate): New function.
(cl--pcase-mutually-exclusive-p): Use it.
(cl-struct-sequence-type): Can now return `record'.

* lisp/emacs-lisp/cl-preloaded.el (cl--make-slot-desc): Adjust ad-hoc
code to new format.
(cl--struct-register-child): Work with records.
(cl-struct-define): Don't touch the tag's symbol-value and
symbol-function slots when we use the type as tag.

* lisp/emacs-lisp/cl-print.el (cl-print-object): Adjust to new tag.

* test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-defstruct-record):
New test.

* doc/lispref/records.texi, doc/misc/cl.texi: Update for records.
2017-04-04 08:23:46 +02:00
Lars Brinkhoff
a2c3343029 Add record objects with user-defined types.
* src/alloc.c (allocate_record): New function.
(Fmake_record, Frecord, Fcopy_record): New functions.
(syms_of_alloc): defsubr them.
(purecopy): Work with records.

* src/data.c (Ftype_of): Return slot 0 for record objects, or type
name if record's type holds class.
(Frecordp): New function.
(syms_of_data): defsubr it.  Define `Qrecordp'.
(Faref, Faset): Work with records.

* src/fns.c (Flength): Work with records.

* src/lisp.h (prec_type): Add PVEC_RECORD.
(RECORDP, CHECK_RECORD, CHECK_RECORD_TYPE): New functions.

* src/lread.c (read1): Add syntax for records.

* src/print.c (PRINT_CIRCLE_CANDIDATE_P): Add RECORDP.
(print_object): Add syntax for records.

* test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-2):
New test.

* test/src/alloc-tests.el (record-1, record-2, record-3):
New tests.

* doc/lispref/elisp.texi, doc/lispref/objects.texi,
doc/lispref/records.texi: Add documentation for records.
2017-04-04 08:23:46 +02:00
Tino Calancha
19b92cdfb0 Fix a test in python-test.el
Fix a test that breaks the test suite when it is run within a
virtual environment.
See following link for details:
https://lists.gnu.org/archive/html/emacs-devel/2017-03/msg00857.html
* test/lisp/progmodes/python-tests.el
(python-shell-calculate-process-environment-7): Bind
python-shell-virtualenv-root to VIRTUAL_ENV when this var is set; otherwise
bind it to '/env'.
2017-04-04 15:16:15 +09:00
Noam Postavsky
3887c54544 Throw a `search-failed' derived error in Info search
The original fix for Bug#6106 switched from signalling `search-failed'
to `user-error'.  However, this breaks incremental searching over
multiple nodes because the isearch code doesn't expect a `user-error'.

* src/search.c (syms_of_search): New error, `user-search-failed',
with `user-error' and `search-failed' as parents.
* doc/lispref/errors.texi (Standard Errors): Document it.
* etc/NEWS: Announce it.
* lisp/info.el (Info-search): Use it instead of `user-error' so that
isearch will handle failed searches correctly.
2017-04-03 19:36:14 -04:00
Michael Albinus
49197e6e3d Add Tramp test
* doc/misc/tramp.texi (Remote processes): Fix typo.

* lisp/shell.el (shell): Fix typo.

* lisp/net/tramp.el (tramp-set-connection-local-variables): Simplify.

* test/lisp/net/tramp-tests.el (tramp-test30-explicit-shell-file-name):
New test.
(tramp--test-special-characters, tramp--test-utf8): Adapt docstring.
(tramp-test31-vc-registered)
(tramp-test32-make-auto-save-file-name)
(tramp-test33-make-nearby-temp-file)
(tramp-test34-special-characters)
(tramp-test34-special-characters-with-stat)
(tramp-test34-special-characters-with-perl)
(tramp-test34-special-characters-with-ls, tramp-test35-utf8)
(tramp-test35-utf8-with-stat, tramp-test35-utf8-with-perl)
(tramp-test35-utf8-with-ls)
(tramp-test36-asynchronous-requests)
(tramp-test37-recursive-load, tramp-test38-unload): Rename.
2017-04-03 14:04:06 +02:00
Stefan Monnier
44ee91d82e * lisp/ses.el: Silence byte-compiler warnings.
(ses-jump, ses-recalculate-cell, ses-define-local-printer): Silence
byte-compiler warnings.
2017-04-02 23:09:53 -04:00
Paul Eggert
8e394a7f35 Fix bugs in simplified test dependencies
Problem reported by Glenn Morris in:
http://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00017.html
* test/Makefile.in (LOGFILES, TESTS): Omit leading "./".
(TESTS): Omit unnecessary patsubst.
(test_template): Redo dependency heuristic, hopefully
correctly this time.  It's the .log file that depends,
not the phony test target.  Declare the phonies to be PHONY.
Resurrect the exception for the *-tests subdirectory.
Adjust to the fact that leading "./" is omitted now.
2017-04-02 13:12:40 -07:00
Wilfred Hughes
2b18ecec5e Fix typo in docstring
* lisp/help.el: Fix typo.
2017-04-02 19:29:14 +01:00
Glenn Morris
057d27760a ; Auto-commit of loaddefs files. 2017-04-02 12:11:26 -04:00
Tino Calancha
afabe53b56 ; * lisp/replace.el (how-many, flush-lines, keep-lines): Remove empty line. 2017-04-02 21:16:37 +09:00
Michael Albinus
40a33a3cb7 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2017-04-02 11:03:14 +02:00
Michael Albinus
59191cd0cb Apply connecion-local variables for shells
* doc/misc/tramp.texi (Remote processes): Show use of connection-local
variables.  Don't mention Emacs 23 anymore.
(Frequently Asked Questions): Precise Emacs and MS Windows version.

* lisp/files-x.el (connection-local-normalize-criteria):
Suppress nil properties.
(connection-local-set-profiles, with-connection-local-profiles):
Adapt docstring.

* lisp/shell.el (shell): Apply connecion-local variables.
2017-04-02 11:02:54 +02:00
Evgeni Kolev
a184a7edc5 Propertize only perl prototype chars `][$%&*;+@\' as punctuation
This prevents variables in signatures such as `sub add ($a, $b)' from
being treated as punctuation.
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
Strictly match only prototype characters as punctuation.  (Bug#26037)

Copyright-paperwork-exempt: yes
2017-04-01 17:32:18 -04:00
Tom Tromey
f4ecb65f33 fix two js-mode syntax propertization bugs
Bug#26070:
* lisp/progmodes/js.el (js--syntax-propertize-regexp-regexp): Add
zero-or-one to regular expression.
(js-syntax-propertize-regexp): Update.  Propertize body of regexp
literal up to END.
* test/lisp/progmodes/js-tests.el (js-mode-propertize-bug-1)
(js-mode-propertize-bug-2): New tests.
2017-04-01 15:03:46 -06:00
Paul Eggert
ac2ca82eb1 Simplify test dependency generation
Generate default dependencies by using GNU extensions to ‘make’
rather than via a hacky auxiliary program and script.
* .gitignore: Remove test/make-test-deps.mk.
* test/Makefile.in (ELFILES, LOGFILES, TESTS):
Use :=, not =, to avoid multiple redundant invocations of ‘find’.
(test_template): Infer dependency directly instead of via
make-test-deps.mk.
(check-doit): Prepend ‘@’ to avoid excessively long ‘make’ output.
(clean): No need to clean make-test-deps.mk.
(make-test-deps.mk): Remove rule.
* test/make-test-deps.emacs-lisp: Remove.
2017-04-01 12:16:19 -07:00
Paul Eggert
1a55cc6094 ; Spelling fixes 2017-04-01 10:47:11 -07:00
Stefan Monnier
acce29d6c5 * test/lisp/emacs-lisp/cl-lib-tests.el: Improve symbol-macrolet tests
(cl-lib-symbol-macrolet): Fix last test so it doesn't break the whole
test suite.
(cl-lib-symbol-macrolet-2): New test.
2017-04-01 12:11:07 -04:00
Tino Calancha
9cf6a408c8 Use only posix options in a ediff-ptch test
* test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
Use just "-b" patch option.  Don't assume a particular suffix for
the backup files.
2017-04-01 17:02:49 +09:00
Jarno Malmari
5b264d8879 Initial implementation of HTTP Digest qop for url
This also refactors digest authentication functions in url-auth.el.

* lisp/url/url-auth.el (url-digest-auth, url-digest-auth-create-key):
(url-digest-auth-build-response, url-digest-auth-directory-id-assoc):
(url-digest-auth-name-value-string, url-digest-auth-source-creds):
(url-digest-cached-key, url-digest-cache-key, url-digest-find-creds):
(url-digest-find-new-key, url-digest-prompt-creds): Add new functions
to simplify code and aid in unit testing.
(url-digest-auth-build-response): Hook up new functionality, or fall
back to previous.
(url-digest-auth-make-request-digest-qop):
(url-digest-auth-make-cnonce, url-digest-auth-nonce-count):
(url-digest-auth-name-value-string): Add new helper functions.
* test/lisp/url/url-auth-tests.el (url-auth-test-colonjoin):
(url-auth-test-digest-ha1, url-auth-test-digest-ha2):
(url-auth-test-digest-request-digest): Add a few tests as now more
features are testable via intermediate functions.
(url-auth-test-challenges, url-auth-test-digest-request-digest): Test
the new implementation.  Parts of these were accidentally already
merged in the past.
2017-04-01 09:19:46 +03:00
Tino Calancha
226cafd24d Tweak ediff-ptch test in previous commit a bit more
* test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
Apply patches without requiring a shell.  Add some comments.
2017-04-01 12:28:54 +09:00
Glenn Morris
d23287a949 Tweak an ediff-ptch test
* test/lisp/vc/ediff-ptch-tests.el (ediff-ptch-test-bug26084):
Add skip conditions.  Avoid going through shell where not needed.
2017-03-31 17:30:01 -04:00
Michael Albinus
21918f4e1c * lisp/net/tramp-smb.el (tramp-smb-errors):
Add "NT_STATUS_PASSWORD_MUST_CHANGE".
2017-03-31 20:04:15 +02:00
Stefan Monnier
1f5b4ed628 * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-symbol-macrolet): New test. 2017-03-31 10:05:12 -04:00
Tino Calancha
1da9a20766 dired-mark-suffix: New command
Now dired-mark-extension prepends '.' to extension when not present.
Add command dired-mark-suffix to preserve the previous
behaviour (Bug#25942).
* lisp/dired-x.el (dired-mark-suffix): New command;
mark files ending in a given suffix.
(dired--mark-suffix-interactive-spec): New defun.
(dired-mark-extension, dired-mark-suffix): Use it.
* doc/misc/dired-x.texi (Advanced Mark Commands): Update manual.
* test/lisp/dired-x-tests.el: New test suite; add test for these features.
; * etc/NEWS (Incompatible Lisp Changes in Emacs 26.1):
; Mention these changes.
2017-03-31 17:27:08 +09:00
Paul Eggert
3a11b3e330 Use find -delete if available
This shortens the ‘make’ output and should avoid some
repetitive scanning of directories during a build.
* configure.ac (FIND_DELETE): New var.
* lisp/Makefile.in (compile-always, bootstrap-clean):
* test/Makefile.in (clean, bootstrap-clean): Use it.
* test/Makefile.in (ELCFILES, LOGSAVEFILES): Remove; no longer needed.
2017-03-30 19:51:39 -07:00
Mark Oteiza
e22d740c30 Remove gnus-boundp
* lisp/gnus/gnus-start.el (gnus-display-time-event-handler): Use
bound-and-true-p.
* lisp/gnus/gnus-util (gnus-boundp): Remove.
2017-03-30 22:22:47 -04:00
Niels Möller
d1e113ee60 Stop `fixup-whitespace' adding trailing whitespace (Bug#18783)
* lisp/simple.el (fixup-whitespace): Insert no spaces if point is at
end of line after deleting horizontal whitespace.

Copyright-paperwork-exempt: yes
2017-03-30 21:05:08 -04:00
Paul Eggert
7a8ae233d1 * src/inotify.c (add_watch): Add comment. 2017-03-30 17:48:20 -07:00
Andreas Politz
43203708d4 Minor filenotify.el fixes
* lisp/filenotify.el: Require subr-x.
(file-notify-callback): Use equal, not eq.
2017-03-30 17:48:20 -07:00
John Mastro
eeaa707eb6 Fix a small incompatibility in ibuffer
Translate nil values from column functions to the empty string, so that
subsequent calls to string-width don't signal an error (Bug#26317).
* lisp/ibuffer.el (ibuffer-compile-format): If a column function returns
nil, treat it like the empty string.
2017-03-30 20:19:50 -04:00
Alan Mackenzie
ef7df187eb Fix C++ fontification problems 500 bytes after typing a space, and other bugs
Also implement the "asymmetric space" rule for fontifying otherwise
ambiguous
declarations/expressions.

* lisp/progmodes/cc-engine.el (c-before-change-check-<>-operators): Don't set
c-new-BEG or c-new-END when there is no need.
(c-forward-decl-or-cast-1): Add "CASE 17.5" to implement the "asymmetric
space" rule.

* lisp/progmodes/cc-fonts.el (c-get-fontification-context): New function,
extracted from c-font-lock-declarations.  Add to this function processing to
make `context' 'decl for lines contained within parens when these are also
declarations.
(c-font-lock-declarations): Call the newly extracted function above in place
of inline code.

* lisp/progmodes/cc-mode.el (c-fl-decl-start): Set point before calling
c-literal-start.

* lisp/progmodes/cc-vars.el (c-asymmetry-fontification-flag): New user option.

* doc/misc/cc-mode.texi (Misc Font Locking): New node documenting the new
"asymmetric fontification" rule, including the variable
c-asymmetric-fontification-flag.
2017-03-30 20:24:39 +00:00
Paul Eggert
6ff870218d Some inotify cleanup
This catches some problems with integer overflow and races
that I noticed in inotify.c after reviewing the changes
installed to fix Bug#26126.
* src/fns.c, src/lisp.h (equal_no_quit): Now extern.
* src/inotify.c (aspect_to_inotifymask):
Check for cycles and for improper lists.
(make_lispy_mask, lispy_mask_match_p): Remove.
All callers changed to use INTEGER_TO_CONS and CONS_TO_INTEGER.
(inotifyevent_to_event, add_watch):
Don’t assume watch descriptors and cookies fit in fixnums.
(add_watch): Use assoc_no_quit, not Fassoc.
Avoid integer overflow in (very!) long-running processes where
the Emacs watch ID could overflow.  Avoid some duplicate code.
(find_descriptor): New function.
(remove_descriptor): First arg is now the returned value from
find_descriptor, rather than the descriptor.  This way, the
value can be removed without calling Fdelete, which might quit.
Wait until the end (when watch_list is consistent) before signaling
any errors.
(remove_watch, inotify_callback):
Use find_descriptor to avoid the need for Fdelete.
(inotify_callback): Use simpler tests for ioctl failure.
Free temporary buffer if signaled, and put it on the stack if small.
Use ssize_t to index through read results, to avoid a cast.
(valid_watch_descriptor): New function, with a tighter check.
(Finotify_rm_watch, Finotify_valid_p): Use it.
(Finotify_valid_p): Use assoc_no_quit and ass_no_quit instead
of Fassoc.  Do not assume the first assoc succeeds.
* test/src/inotify-tests.el (inotify-valid-p-simple):
Add inotify-valid-p tests, some of which dump core without
the fixes noted above.
2017-03-30 11:08:42 -07:00
Michael Albinus
1be3330b31 * lisp/net/tramp-sh.el (tramp-get-remote-locale): Add "C.UTF-8" as candidate. 2017-03-30 17:18:17 +02:00
Stefan Monnier
2c69236b3c * lisp/cedet/semantic/wisent/wisent.el (wisent-automaton-p): Use obarrayp. 2017-03-30 10:44:35 -04:00
Paul Eggert
080a425db5 Fix assoc_no_quit so that it does not quit
The problem was that it called Fequal, which can quit.
* src/fns.c (enum equal_kind):
New enum, to be used in place of a boolean.
(equal_no_quit): New function.
(Fmemql, Feql): Use it to compare floats, as a minor tuneup.
(assoc_no_quit): Use it to avoid quitting, the main point here.
(internal_equal): Generalize bool to enum equal_kind arg, so that
there are now 3 possibilities instead of 2.  Do not signal an
error if EQUAL_NO_QUIT.  Put the arg before the depth, since depth
should be irrelevant if the arg is EQUAL_NO_QUIT.  All callers
changed.
2017-03-29 22:43:51 -07:00
Alan Mackenzie
b7ec73f690 Amend gitmerge to recognize the injunction "don't merge".
* admin/gitmerge.el (gitmerge-skip-regexp): amend regexp to match "don't" as
well as "do not".
2017-03-29 17:58:37 +00:00
Simen Heggestøyl
7d2d954d6a Add one more CSS pseudo-class
* lisp/textmodes/css-mode.el (css-pseudo-class-ids): Add
`focus-within'.
2017-03-29 19:52:13 +02:00
Simen Heggestøyl
6967c4f067 Update list of CSS pseudo-classes
* lisp/textmodes/css-mode.el (css-pseudo-class-ids): Update list of
pseudo-classes.
2017-03-29 19:39:04 +02:00
Noam Postavsky
d707ba8469 Adjust some search failure errors in info.el
* lisp/info.el (Info-select-node): The search for beginning of node is
an internal detail, and is not normally expected to fail, so it should
not be a user error.
(Info-complete-menu-item): Failing to find a menu indicates the user
searched for a menu when there isn't one, so change to `use-error'.
2017-03-28 21:25:17 -04:00
Alan Mackenzie
d546e47632 * lisp/progmodes/cc-defs.el (c-version): Restore c-version to 5.33 2017-03-28 20:25:34 +00:00
Paul Eggert
01ffca6726 Don’t mishandle (format "%i" -1.0)
* src/editfns.c (styled_format): Treat %i like %d when converting arg.
2017-03-28 12:44:33 -07:00