Commit graph

5505 commits

Author SHA1 Message Date
Noam Postavsky
cc8ae51e6f ; lisp/emacs-lisp/eieio.el (eieio-object-set-name-string): Fix quote. 2018-03-01 22:08:42 -05:00
Paul Eggert
a206ea124c Arrange for loaddefs files to be greppable
Without this change, ldefs-boot.el contains a couple of stray NUL
bytes, which cause it to be considered to be a non-text file by
tools like GNU grep.
* lisp/emacs-lisp/autoload.el (autoload-print-form):
Set print-escape-control-characters to t.
2018-03-01 18:16:43 -08:00
Glenn Morris
650febcd3e Merge from origin/emacs-26
226aca3 (origin/emacs-26) Fix documentation of 'flyspell-auto-correct...
a8c8434 * doc/emacs/misc.texi (Saving Emacs Sessions): Fix markup.
275e735 More changes in the Emacs manuals
d962be5 More fixes in the Emacs manual
6dc2846 * src/data.c (Faref): Fix a typo in the doc string.  (Bug#30510)
36e729f Minor edit in tramp.texi
6537f99 ; Fix oversight from last commit
eb94588 ; * doc/emacs/maintaining.texi: Fix two typos.
258135f More improvements in the Emacs manual
f138bca Improve documentation of 'electric-pair-mode'
f74ab96 ; Spelling and grammar fixes.
42f9dc4 ; * lisp/textmodes/flyspell.el (flyspell-auto-correct-word): ...
2018-02-20 07:50:29 -08:00
Paul Eggert
f74ab96483 ; Spelling and grammar fixes. 2018-02-17 09:17:28 -08:00
Glenn Morris
4fa90ff8f5 Merge from origin/emacs-26
e5a2933 (origin/emacs-26) lisp/vc/: documentation fixes
f21f8e6 Document 'desktop-files-not-to-save'
d8917eb Improve documentation of Profiling features
b228839 Improve indexing of "performance" in ELisp manual
ab67b3e Minor change in Emacs manual's VC chapter
c352434 Avoid memory corruption with specpdl overflow + edebug (Bug#3...
593bbda Document comment-fill-column in the manual (Bug#11636)
bd4cc8d * doc/emacs/dired.texi (Marks vs Flags): Copyedits.
69107f3 ; Fix doc typos related to indefinite articles
aaad1e6 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
5906418 More fixes for the Emacs manual
9ab3df1 ; Fix doc typos related to indefinite articles
66a4e65 ; Fix doc typos related to indefinite articles
35e5c57 ; Fix doc typos related to indefinite articles
2018-02-17 07:50:28 -08:00
Radon Rosborough
24acb31c04 Add early init file, stop package-initialize insertion
Discussion on emacs-devel leading up to this change (approximately 150
messages):

- https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00154.html
- https://lists.gnu.org/archive/html/emacs-devel/2017-08/msg00433.html
- https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00023.html
- https://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00599.html
- https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00332.html

* lisp/startup.el (early-init-file): New variable.
(load-user-init-file): New function.
(command-line): Load the early init file using `load-user-init-file'.
Move the check for an invalid username to just before that, and move
the initialization of the package system to just after.  Load the
regular init file using `load-user-init-file'.
* lisp/emacs-lisp/package.el (package--ensure-init-file): Remove
definition, usage, and documentation.
(package--init-file-ensured): Remove definition and usage.

* src/lread.c (Vuser_init_file): Note change in semantics due to its
usage while loading the early init file.

* doc/emacs/custom.texi: Document early init file.
* doc/emacs/package.texi: Document changes to when package-initialize
is called.  Change terminology for package 'loading'.
* doc/lispref/os.texi: Document early init file.  Update startup
summary.
* doc/lispref/package.texi: Document changes to when
package-initialize is called, and advise against calling it in the
init file.  Change terminology for package 'loading'.
* doc/misc/org.texi: Don't recommend to call package-initialize in the
init file.
2018-02-17 13:36:16 +02:00
Eli Zaretskii
d8917eba1c Improve documentation of Profiling features
* doc/lispref/debugging.texi (Profiling): Improve the description
of elp.el.  Improve wording of the rest of the section.  (Bug#30491)

* lisp/emacs-lisp/elp.el (elp-instrument-list): Make the
interactive invocation work.  Doc fix.
2018-02-17 11:59:36 +02:00
Glenn Morris
69107f347b ; Fix doc typos related to indefinite articles 2018-02-16 17:33:57 -05:00
Glenn Morris
66a4e651f3 ; Fix doc typos related to indefinite articles 2018-02-16 15:16:15 -05:00
Glenn Morris
47106da23a Merge from origin/emacs-26
a06a8ed (origin/emacs-26) ; * lisp/vc/vc-git.el (vc-git--program-vers...
edc06ad Make 'byte-compile-error-on-warn' a safe file variable
9f5d8da ; * lisp/textmodes/flyspell.el (flyspell-auto-correct-word): ...
f73905a Fix the doc string of flyspell-auto-correct-word
e9c7ddc Improve the MS-Windows appendix of the Emacs manual
6ddb4bd Fix 'vc-git--program-version'
63c93f7 Fix typos and wording in the Emacs manual
42f15b0 * doc/emacs/programs.texi (Semantic): Order programming langu...
b46be29 More improvements for the Emacs manual
874c0ed Minor wording change in Emacs manual
53511f9 Another set of changes for the manual
78426b8 Improvements on tramp.texi
0dca618 Tramp minor doc fixes

Conflicts:
	doc/misc/tramp.texi
2018-02-16 09:44:04 -08:00
Robert Cochran
edc06adf96 Make 'byte-compile-error-on-warn' a safe file variable
* lisp/emacs-lisp/bytecomp.el (byte-compile-error-on-warn): Mark
as a safe local variable for boolean values.
2018-02-16 17:51:06 +02:00
Stefan Monnier
6b183f85e0 * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Handle lambda!
(cl--old-macroexpand): Remove.
(cl--sm-macroexpand): Change its calling convention, so it can use
advice-add.  Extend re-binding treatment of vars so it applies to all
var-introducing forms rather than only to 'let'.
(cl-symbol-macrolet): Use advice-add rather than fset.
2018-02-08 21:41:21 -05:00
Stefan Monnier
6ff8b7749f * lisp/emacs-lisp/cconv.el (cconv-convert): Fix compiling compiled code
Don't conv-convert the docstring arg of defvar/defconst.
2018-02-02 10:28:34 -05:00
Glenn Morris
4dbc1ef5e6 Merge from origin/emacs-26
22922c7 (origin/emacs-26) * doc/emacs/entering.texi (Entering Emacs):...
59657c4 Document 'window-at-side-p' in the Elisp manual
2b35ed0 Document external-debugging-output in the Elisp Manual (Bug#2...
db6564c Fix scroll-margin docstring (Bug#13791)
732d1b9 Clarify that `ansi-term' is almost the same as `term' (Bug#18...
f706c59 Update manual description of locate-file (Bug#23650)
1602262 Clarify effect of print-gensym (Bug#27776)
53e9fa2 * lisp/custom.el (defcustom): Fix docstring (Bug#27891).
607cc4e Define cl-type-definition button type as needed (Bug#28899)
9e6889c Emphasize that GPG passphrase caching is temporary (Bug#29907)
4b5711b Fix @examples in cc-mode.info, where lines were getting glued...
71961f1 Minor change in "Mode Line" section of Emacs manual
55a2b76 More fixes in the Emacs manual
2018-01-31 07:50:23 -08:00
Noam Postavsky
607cc4e24a Define cl-type-definition button type as needed (Bug#28899)
* lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): Require
`cl-extra' before using the `cl-type-definition' button type.
2018-01-30 22:14:02 -05:00
Glenn Morris
084cfae0e6 Merge from origin/emacs-26
bc8dc37 (origin/emacs-26) Minor copyedits in "Distribution" chapter o...
1c7a936 Minor copyedits in "Entering" chapter of Emacs manual.
1d4498b Minor wording change in the Emacs manual
2bf49e7 Fix a typo in the Emacs manual
f3546a2 Improve the "Basic" chapter of the Emacs manual
691431e Resurrect lost text in lispref
956807b * lisp/emacs-lisp/rx.el (rx): Fix the definition of 'blank'.
7d90d2e Proofread os.texi and files.texi
490c736 Minor improvements in the "International" chapter of Emacs ma...
79252d3 Minor improvement in "Text" chapter of Emacs manual
2018-01-30 07:50:25 -08:00
Philipp Stephani
956807bd1f * lisp/emacs-lisp/rx.el (rx): Fix the definition of 'blank'. 2018-01-30 00:05:58 +01:00
Philipp Stephani
614e9b322e Add missing module types to cl--typeof-types.
* lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add module
types.

* test/src/emacs-module-tests.el (emacs-module-tests--generic): New
helper function.
(module-function-object, mod-test-userptr-fun-test): Test that type
dispatching works with module types.
2018-01-28 20:39:58 +01:00
Philipp Stephani
9a747b3554 Prevent name clashes between CL structures and builtin types
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Don't allow
structures with the same names as builtin types.
(cl--typeof-types, cl--all-builtin-types): Move from cl-generic.el and
rename.
(cl--struct-name-p): New helper function.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't allow structures
with the same names as builtin types.

* lisp/emacs-lisp/cl-generic.el (cl--generic-typeof-generalizer)
(cl-generic-generalizers): Adapt to name change.

* test/lisp/emacs-lisp/cl-macs-tests.el (cl-defstruct/builtin-type):
* test/lisp/emacs-lisp/cl-preloaded-tests.el
(cl-struct-define/builtin-type): New unit tests.

* etc/NEWS: Document changed behavior.
2018-01-28 19:21:47 +01:00
Stefan Monnier
c9a268552c * lisp/emacs-lisp/cl-preloaded.el: Update cl-slot-descriptor name. 2018-01-26 16:37:29 -05:00
Stefan Monnier
62e4148a39 * lisp/emacs-lisp/gv.el (char-table-range): Add gv-setter. 2018-01-25 19:20:49 -05:00
Stefan Monnier
0a75af9156 * lisp/emacs-lisp/ert.el (describe-symbol-backends): Add ourselves
(ert-describe-test): Return the description text as well.
Remove left over version check.
* lisp/help-mode.el (describe-symbol-backends): Add docstring.
2018-01-22 22:00:55 -05:00
Paul Eggert
4aabb425db ; Spelling fix 2018-01-22 08:50:06 -08:00
Juri Linkov
afba4ccb8b New function read-answer (bug#30073)
* lisp/emacs-lisp/map-ynp.el (read-answer): New function.
(read-answer-short): New defcustom.

* lisp/dired.el (dired-delete-file): Use read-answer.
(dired--yes-no-all-quit-help): Remove function.
(dired-delete-help): Remove defconst.

* lisp/subr.el (assoc-delete-all): New function.
2018-01-21 23:45:43 +02:00
Paul Eggert
64c8467386 Fix tempfile creation when byte compiling
This improves on the recent fix for master failing to build
on FreeBSD.  Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-01/msg00600.html
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
2018-01-20 19:18:49 -08:00
Glenn Morris
60d5a13d28 Merge from origin/emacs-26
cfc94fd (origin/emacs-26) Don't mention 'vc-stay-local' in the user m...
8ce430b Fix a typo in calendar.texi
bb748b3 Minor improvement in wording of the Emacs manual
b603aff Revert "Fix tempfile creation when byte compiling"
4fd446e Fix tempfile creation when byte compiling
7f48a11 Improve the Emacs manual as suggested in emacs-manual-bugs
728ded0 * lisp/emacs-lisp/bytecomp.el: Tweak last change
c6c05e2 Unbreak building Emacs on FreeBSD
a41ad3d Don't unnecessarily use non-ASCII characters in C sources
c28d4b6 Portability fixes in emacs-module-tests
1d50c18 Add tests for term.el
2018-01-20 08:23:30 -08:00
Basil L. Contovounesios
b54a86000c Improve and simplify 'map-y-or-n-p'
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Do not follow a
definite article with an action verb in C-h help text.  Use
'with-help-window' instead of 'with-output-to-temp-buffer'.
Simplify string concatenation.  (Bug#30064)
2018-01-20 14:23:08 +02:00
Eli Zaretskii
b603affa1f Revert "Fix tempfile creation when byte compiling"
This reverts commit 4fd446e9f6:
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
2018-01-20 09:48:22 +02:00
Paul Eggert
4fd446e9f6 Fix tempfile creation when byte compiling
This improves on the recent fix for master failing to build
on FreeBSD.  Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-01/msg00600.html
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
2018-01-19 14:40:56 -08:00
Stefan Monnier
728ded05f6 * lisp/emacs-lisp/bytecomp.el: Tweak last change
(byte-compile-file): Move comment closer to the code it describes.
2018-01-19 11:29:13 -05:00
Eli Zaretskii
c6c05e2aa9 Unbreak building Emacs on FreeBSD
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't create
the temporary file under temporary-file-directory if the file
being compiled is specified by an absolute file name.  This avoids
problems with ACL copying from temporary-file-directory on
FreeBSD.  For the details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00513.html.
2018-01-19 17:31:54 +02:00
Glenn Morris
6213ce5544 Merge from origin/emacs-26
76040d1 (origin/emacs-26) Handle case-insensitive filenames for load-...
0c9b050 ; * test/file-organization.org: Fix typo.
2018-01-18 17:17:06 -08:00
Noam Postavsky
76040d1eae Handle case-insensitive filenames for load-path shadows (Bug#5845)
* lisp/emacs-lisp/shadow.el (load-path-shadows-find): Check for
shadowing with case-insensitive matching for files of case-insensitive
directories (as determined by `file-name-case-insensitive-p').
* test/lisp/emacs-lisp/shadow-tests.el: New test.
* test/lisp/emacs-lisp/shadow-resources/p1/foo.el:
* test/lisp/emacs-lisp/shadow-resources/p2/FOO.el: New test files.
2018-01-18 16:26:52 -05:00
Glenn Morris
9bd8f01cd6 Merge from origin/emacs-26
2c0cfa6455 * ChangeLog.3: Update
4387bb44ae Update authors
bce51bd6f7 * lisp/gnus/message.el (message-do-auto-fill): Prevent do-...
bd2a2a1e84 Improve documentation of etags
7ba75b9637 Teach etags new interpreters for some languages
1f7f03742d * lisp/emacs-lisp/generator.el (iter-defun): Add 'doc-stri...
dbb4aac212 * lisp/emacs-lisp/syntax.el (syntax-propertize): Fix bug#2...
80463a43da Improve documentation of fill-separate-heterogeneous-words...
4bd2416d55 Fix documentation of some x-* functions
9c2b11484f Inherit query-on-exit flag to stderr process (Bug#30031)
3efb1e7def Fix Bug#30057
a9b884c60f Tag some unstable tests, and skip by default (bug#24503)

# Conflicts:
#	test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
2018-01-15 13:53:40 -08:00
Stefan Monnier
1f7f03742d * lisp/emacs-lisp/generator.el (iter-defun): Add 'doc-string' prop. 2018-01-11 11:24:38 -05:00
Stefan Monnier
dbb4aac212 * lisp/emacs-lisp/syntax.el (syntax-propertize): Fix bug#29767 2018-01-11 10:11:39 -05:00
Paul Eggert
ddb26f79b2 Merge from origin/emacs-26
7668717d6f Merge from Gnulib
9e4d523427 * lisp/epg.el (epg-start-sign): Replace obsolete functions.
26c58f31a8 Small fix for erc-logging-enabled
34b41e3bc6 Quieten semantic normal usage
e25f961e37 Avoid irrelevant hyperlink in doc string of 'epa-pinentry-...
ec2636513c * doc/misc/tramp.texi (Remote processes): Mention gdb rest...
918a052a42 Query background for gnome terminal version 3.22 (Bug#29716)
1dfc27576a Make pixel-wise scrolling less laggy
f92264fc2a Fix child frame placement issues (bug#29953)
a5f718c4c5 ; * doc/lispref/text.texi (Change Hooks): Fix last change.
e876f5f9fb Describe the precise interaction of complex primitives wit...
3a22097cf6 Fix valgrind report in call-interactively
d5f1c87bfe * src/editfns.c (Fsave_excursion): Doc fix.  (Bug#30001)
b8d74c4578 Fix mark-defun when there's no spaces between successive d...
a377c652b5 Fix Dired display and operations on file names with raw bytes
d9d6e8a04c ; Comments related to src/termcap.c
f8a07fa6b1 Improve documentation of 'gdb-many-windows'
f82400798e Fix failures in smerge-mode on MS-Windows
2018-01-09 15:29:25 -08:00
Tino Calancha
a0365437c9 cl-loop: Add missing guard condition
Consider the expansion of `cl-loop' with a `for' clause and more
than one internal variables, X, Y, processed in parallel.
Each step updates X and Y right after update the loop variable, K; if
either X or Y depend on K, then some forms of the body are
evaluated with the wrong K (Bug#29799).

For instance, consider the following code:
(cl-loop for k below 2
         for x = (progn (message "k = %d" k) 1)
         and y = 1)

This code should show in *Messages*:
k = 0
k = 1

Instead, the code shows:
k = 0
k = 1
k = 2

To prevent this we must ensure that the loop condition is still
satisfied right after update the loop variable.
In the macro expansion of the example above, right after:
(setq k (+ k 1))

evaluate the rest of the body forms iif the condition
(< k 2)
is still valid.

* lisp/emacs-lisp/cl-macs.el (cl--loop-guard-cond): New variable.
(cl--parse-loop-clause): Set it non-nil if the loop contains
a for/as clause.
(cl-loop): After update the loop variable, evaluate the remaining of
the body forms just if the loop condition is still valid (Bug#29799).

* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-for-as-equals-and):
New test.
2018-01-08 19:15:28 +09:00
Tino Calancha
bfca19e475 cl-loop: Calculate the array length just once
* lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause):
Dont calculate the array length on each iteration (Bug#29866).
2018-01-08 00:33:15 +09:00
Philipp Stephani
610dad1102 Revert "Prevent name clashes between CL structures and builtin types"
This reverts commit 151496a4b9.
That commit breaks bootstrap builds due to a cyclic dependency.
2018-01-07 14:14:38 +01:00
Philipp Stephani
151496a4b9 Prevent name clashes between CL structures and builtin types
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Don't allow
structures with the same names as builtin types.
(cl--struct-name-p): New helper function.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't allow structures
with the same names as builtin types.

* test/lisp/emacs-lisp/cl-macs-tests.el (cl-defstruct/builtin-type):
* test/lisp/emacs-lisp/cl-preloaded-tests.el
(cl-struct-define/builtin-type): New unit tests.

* etc/NEWS: Document changed behavior.
2018-01-07 12:33:53 +01:00
Noam Postavsky
5f72004678 Revert "Fix command repetition with lexical-binding (Bug#29334)"
It does not work with more complicated interactive forms, because
byte-compile-lambda actually receives an intermediate form of code
rather than valid lisp source (Bug#29988).
* src/callint.c (Fcall_interactively):
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Revert previous
change, and update commentary.
2018-01-06 21:22:24 -05:00
Alan Mackenzie
b8d74c4578 Fix mark-defun when there's no spaces between successive defuns.
The problem was a parse-partial-sexp call which tried to use the STOPBEFORE
argument to detect non-syntactic WS.  This fails on a "}", which does not
begin a sexp.

* lisp/emacs-lisp/lisp.h (beginning-of-defun--in-emptyish-line-p): Enhance to
handle BOL being in a string.
(beginning-of-defun-comments): Call the above function in place of the call
to parse-partial-sexp.
2018-01-06 11:48:32 +00:00
Noam Postavsky
ce48658191 Fix command repetition with lexical-binding (Bug#29334)
`call-interactively' relies on analyzing the source of `interactive'
forms in order to preserve arguments like (region-end) in the command
history, rather than just storing the resulting position.  However,
the byte-compiler does not preserve the source of the interactive form
when lexical-binding is in effect, because `call-interactively' would
evaluate the form with dynamic binding in that case.

To fix this, change `call-interactively' so that it checks compiled
functions for lexical-binding as well.  Then the byte-compiler can
preserve the source of interactive forms regardless of the value of
lexical-binding.

* src/callint.c (Fcall_interactively): Functions compiled with
lexical-binding have their arglist encoded as an integer, use this to
choose the right kind of binding for compiled functions too.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Preserve the
uncompiled form of the interactive form when lexical-binding is
enabled too.
2018-01-03 20:51:28 -05:00
Paul Eggert
d263ce25cd Update copyright year to 2018
Run admin/update-copyright.
2018-01-01 01:25:56 -08:00
Paul Eggert
bb267f17f9 Merge from origin/emacs-26
63b04c11d5 Fix copyright years by hand
5c7dd8a783 Update copyright year to 2018
220a9ecba1 Merge from Gnulib
312c565566 Don't add empty keyboard macro to macro ring (Bug#24992)
39ca289a7a Allow customization of decoding of "man" command
f8240815ea * etc/NEWS: Add security consideration note on passphrase ...
0c78822c70 Fix subtle problem with scroll-down when scroll-margin is ...
acd289c5a4 Fix problems with indexing in User manual
b240c7846b * lisp/help.el (describe-key): Only (copy-sequence elt) wh...
e879a5444a * src/buffer.c (Frestore_buffer_modified_p): Fix bug#29846
81b1028b63 Improve documentation of 'inhibit-modification-hooks' and ...
7175496d7a Fix doc string of 'enable-recursive-minibuffers'
5b38406491 Fix documentation of delsel and of killing text

# Conflicts:
#	etc/NEWS
#	etc/refcards/ru-refcard.tex
2018-01-01 01:13:04 -08:00
Paul Eggert
63b04c11d5 Fix copyright years by hand
These are dates that admin/update-copyright did not update, or
updated incorrectly.
2018-01-01 01:02:09 -08:00
Paul Eggert
5c7dd8a783 Update copyright year to 2018
Run admin/update-copyright.
2018-01-01 00:57:59 -08:00
Stefan Monnier
fb619c1c22 (delayed-after-hook-functions): Tighten the code a bit
* lisp/subr.el (delayed-mode-hooks, delayed-after-hook-functions):
Use defvar-local.
(run-mode-hooks): Reset delayed-after-hook-functions before running
those functions, in case an error is signaled.

* lisp/emacs-lisp/derived.el (define-derived-mode): Don't duplicate code.
2017-12-27 17:49:39 -05:00
Stefan Monnier
cd1d9e79f7 * lisp/register.el: Use cl-generic
(registerv): Make it a "normal"struct.
(registerv-make): Declare obsolete.
(register-val-jump-to, register-val-describe, register-val-insert):
New generic functions.
(jump-to-register, describe-register-1, insert-register): Use them.

* lisp/emacs-lisp/cl-generic.el: Prefill a combination of struct+typeof.
(cl--generic-prefill-dispatchers): Allow a list of specializers.
2017-12-25 22:51:23 -05:00