Commit graph

3910 commits

Author SHA1 Message Date
Ted Zlatanov
86fd16b6b4 * emacs-lisp/package.el (describe-package-1): Add package archive. 2013-11-20 16:01:00 -05:00
Stefan Monnier
986545b57f * lisp/emacs-lisp/nadvice.el (remove-function): Align with
add-function's behavior.
2013-11-17 18:11:27 -05:00
Nathan Trapuzzano
608c2085c4 * lisp/emacs-lisp/cconv.el (cconv-convert): Print warning instead of
throwing error over malformed let/let*.

Fixes: debbugs:15814
2013-11-10 23:55:39 -05:00
Stefan Monnier
3220d5279d * lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet): Use macroexp-progn.
(cl--block-wrapper): Fix last accidental change.
2013-11-07 14:30:43 -05:00
Nathan Trapuzzano
e6e4db3cac * lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet): Print warning for
malformed bindings form.

Fixes: debbugs:15814
2013-11-06 23:38:00 -05:00
Stefan Monnier
a35287ea23 * lisp/electric.el (electric-indent-local-mode): New minor mode.
(electric-indent-functions-without-reindent): New var.
(electric-indent-post-self-insert-function): Use it.
* lisp/emacs-lisp/gv.el (buffer-local-value): Add setter.
2013-11-05 21:10:18 -05:00
Bozhidar Batsov
ae1f1ce1e2 * lisp/progmodes/python.el (python-mode): Remove incorrect text from docstring.
* lisp/progmodes/scheme.el (scheme-mode): Remove incorrect text from docstring.
* lisp/progmodes/prolog.el (prolog-mode): Remove incorrect text from docstring.
* lisp/emacs-lisp/lisp-mode.el (lisp-mode, lisp-interaction-mode, emacs-lisp-mode):
Remove incorrect text from docstring.
2013-11-05 11:47:47 +02:00
Paul Eggert
a67c4ae059 Spelling fixes. 2013-11-04 23:44:14 -08:00
Stefan Monnier
a0d5f7a4a3 * lisp/rect.el (rectangle--highlight-for-redisplay):
* lisp/emacs-lisp/smie.el (smie--next-indent-change):
Use buffer-chars-modified-tick.
2013-11-04 15:45:36 -05:00
Stefan Monnier
c93f3f5c5c * lisp/emacs-lisp/byte-run.el (defmacro, defun): Set their `indent' property. 2013-11-04 15:06:02 -05:00
Helmut Eller
ef9dd188af * lisp/emacs-lisp/cl-indent.el (with-compilation-unit): Add rule.
Fixes: debbugs:15782
2013-11-04 14:50:56 -05:00
Nathan Trapuzzano
306e7308ba * lisp/emacs-lisp/cconv.el (cconv-convert): Check form of let binding.
Fixes: debbugs:15786
2013-11-04 14:48:07 -05:00
Stefan Monnier
1d01ad41c9 * lisp/emacs-lisp/helpers.el: Move from helpers.el. Use lexical-binding. 2013-11-04 14:25:09 -05:00
Ted Zlatanov
7397c58760 Add Archive column to package list.
* emacs-lisp/package.el (package-menu-mode)
(package-menu--print-info, package-menu--archive-predicate): Add
Archive column to package list.
2013-11-04 11:04:09 -05:00
Stefan Monnier
e61845c1db * lisp/emacs-lisp/smie.el (smie-rule-parent): Always call
smie-indent-virtual rather than only for hanging tokens.
(smie--next-indent-change): New helper command.
* lisp/progmodes/ruby-mode.el (ruby-smie--rule-parent-skip-assign): Remove.
(ruby-smie-rules): Use smie-rule-parent instead.
2013-11-03 17:56:03 -05:00
Bozhidar Batsov
d1c0ea6a18 * lisp/emacs-lisp/package.el (package-version-join): Recognize snapshot versions. 2013-11-02 12:55:22 +02:00
Glenn Morris
ca7dd4cd17 * lisp/Makefile.in (autoloads): Do not use abs_lisp.
This should stop recent weirdness, eg:
http://lists.gnu.org/archive/html/emacs-diffs/2013-10/msg00381.html

* lisp/emacs-lisp/autoload.el: Comment.
2013-10-30 16:27:35 -04:00
Glenn Morris
4f85b47922 * lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
`newline' does not respect `standard-output', so use `princ'.

Otherwise you can get \n inserted in the wrong buffer, eg
http://lists.gnu.org/archive/html/emacs-diffs/2013-10/msg00379.html
2013-10-30 16:03:07 -04:00
Glenn Morris
f53d3815ae * lisp/emacs-lisp/package.el (lm-homepage): Declare. 2013-10-29 23:29:51 -07:00
Stefan Monnier
ae4002ce29 Cleanup namespace of dos-w32.el.
* lisp/dos-w32.el (minibuffer-history-case-insensitive-variables)
(path-separator, null-device, buffer-file-coding-system)
(lpr-headers-switches): Check system-type before modifying them.
(find-buffer-file-type-coding-system): Mark obsolete.
(w32-find-file-not-found-set-buffer-file-coding-system): Rename from
find-file-not-found-set-buffer-file-coding-system.
(w32-untranslated-filesystem-list, w32-untranslated-canonical-name):
(w32-add-untranslated-filesystem, w32-remove-untranslated-filesystem)
(w32-direct-print-region-use-command-dot-com, w32-untranslated-file-p):
(w32-direct-print-region-helper, w32-direct-print-region-function)
(w32-direct-ps-print-region-function): Rename by adding a "w32-" prefix.
* lisp/startup.el (normal-top-level-add-subdirs-to-load-path):
* lisp/ps-print.el (ps-print-region-function):
* lisp/lpr.el (print-region-function): Use new name.

* lisp/simple.el (copy-region-as-kill): Fix call to region-extract-function.

* lisp/emacs-lisp/bytecomp.el (byte-defop-compiler): Add new `2-and' handler.
(byte-compile-and-folded): New function.
(=, <, >, <=, >=): Use it.
2013-10-29 22:45:53 -04:00
Stefan Monnier
7e3561eec6 * lisp/emacs-lisp/package.el (package--download-one-archive)
(describe-package-1): Don't query the user about final newline.
2013-10-29 10:48:08 -04:00
Michael Albinus
3dab0a832c * emacs-lisp/ert.el (ert-run-tests-interactively):
Use `completing-read'.  (Bug#9756)
2013-10-25 14:07:34 +02:00
Stefan Monnier
71e3276bc5 * lisp/emacs-lisp/smie.el: New smie-config system.
(smie-config): New defcustom.
(smie-edebug, smie-config-show-indent, smie-config-set-indent)
(smie-config-guess, smie-config-save): New commands.
(smie-config--mode-local, smie-config--buffer-local)
(smie-config--trace, smie-config--modefuns): New vars.
(smie-config--advice, smie-config--mode-hook)
(smie-config--setter, smie-config-local, smie-config--get-trace)
(smie-config--guess-value, smie-config--guess): New functions.
(smie-indent-forward-token, smie-indent-backward-token): Don't copy
text properties.  Treat "string fence" syntax like string syntax.

* lisp/progmodes/sh-script.el (sh-use-smie): Change default.
(sh-smie-sh-rules, sh-smie-rc-rules): Obey legacy sh-indent-* vars.
(sh-var-value): Simplify by CSE.
(sh-show-indent, sh-set-indent, sh-learn-line-indent)
(sh-learn-buffer-indent): Redirect to their SMIE equivalent when SMIE
is used.
(sh-guess-basic-offset): Use cl-incf.
(sh-guess-basic-offset): Use push+nreverse to avoid O(n^2).
2013-10-24 17:16:20 -04:00
Helmut Eller
60db713e4d * lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2): Fix cut&paste.
Fixes: debbugs:15699
2013-10-24 13:49:12 -04:00
Michael Albinus
50b5b85741 * emacs-lisp/ert.el (ert-deftest): Bind macro `skip-unless'.
(ert-test-skipped): New error.
(ert-skip, ert-stats-skipped): New defuns.
(ert--skip-unless): New macro.
(ert-test-skipped): New struct.
(ert--run-test-debugger, ert-test-result-type-p)
(ert-test-result-expected-p, ert--stats, ert-stats-completed)
(ert--stats-set-test-and-result, ert-char-for-test-result)
(ert-string-for-test-result, ert-run-tests-batch)
(ert--results-update-ewoc-hf, ert-run-tests-interactively): Handle
skipped tests.
2013-10-24 09:34:41 +02:00
Stefan Monnier
7790a27058 * lisp/emacs-lisp/smie.el (smie-rule-parent): Fix opener-test.
* lisp/progmodes/ruby-mode.el (ruby-smie-rules):
Remove corresponding workaround.  Fix indentation rule of ";" so it
also applies when ";" is the parent.
2013-10-22 11:45:56 -04:00
Stefan Monnier
e333fb100b * lisp/emacs-lisp/lisp.el (lisp-completion-at-point): Complete var names for
let-bindings.
2013-10-17 00:49:42 -04:00
Glenn Morris
9148ee920e * configure.ac [alpha]: Explicit error in non-ELF case.
* doc/emacs/ack.texi (Acknowledgments): Comment out old alpha stuff.

* lisp/emacs-lisp/authors.el (authors-fixed-entries):
Comment out old alpha stuff.

Fixes: debbugs:15601
2013-10-13 16:01:20 -07:00
Glenn Morris
8c106d177f Use accented form of some names
* doc/emacs/ack.texi (Acknowledgments):
* doc/emacs/emacs.texi (Acknowledgments):
* doc/lispref/intro.texi (Acknowledgments): Use accented form of some names.

* lisp/emacs-lisp/authors.el (authors-aliases, authors-ignored-files):
Add some entries.
(authors-fixed-entries): Use accented form of name.
2013-10-12 17:31:19 -07:00
Dmitry Gutov
0922b8260a * lisp/emacs-lisp/smie.el (smie--matching-block-data): Invalidate the
cache also after commands that modify the buffer but don't move
point.
2013-10-11 03:45:03 +03:00
Glenn Morris
574411d08a authors.el trivia
* lisp/emacs-lisp/authors.el (authors-aliases, authors-fixed-case):
Add some entries.
(authors): Remove unused local variables.
2013-10-09 13:10:08 -04:00
Stefan Monnier
0628651373 * lisp/emacs-lisp/lisp-mode.el: Font-lock cl-lib constructs.
(lisp-el-font-lock-keywords, lisp-el-font-lock-keywords-1)
(lisp-el-font-lock-keywords-2, lisp-cl-font-lock-keywords)
(lisp-cl-font-lock-keywords-1, lisp-cl-font-lock-keywords-2): New constants.
(lisp-mode-variables): New `elisp' argument.
(emacs-lisp-mode): Use it.
* lisp/font-lock.el (lisp-font-lock-keywords, lisp-font-lock-keywords-1)
(lisp-font-lock-keywords-2): Move to lisp-mode.el.
2013-10-08 10:57:18 -04:00
Stefan Monnier
f2223371ed * lisp/emacs-lisp/backquote.el (backquote-process): Catch uses of , and ,@
with more than one argument.

Fixes: debbugs:15538
2013-10-08 00:30:31 -04:00
Stefan Monnier
d2e0e79548 * lisp/emacs-lisp/smie.el (smie-next-sexp): Refine last fix.
* lisp/progmodes/ruby-mode.el (ruby-smie-rules): Tweak handling of
open braces.
2013-10-07 12:56:51 -04:00
Stefan Monnier
731fc3aec8 * lisp/emacs-lisp/easymenu.el (easy-menu-create-menu): Use closures. 2013-10-07 01:13:51 -04:00
Stefan Monnier
a58332802b * lisp/emacs-lisp/lisp-mode.el (eval-defun-2): Simplify, using lexical-binding. 2013-10-07 01:11:50 -04:00
Stefan Monnier
2e7ba2c231 * lisp/emacs-lisp/tq.el (tq-create): Use a closure instead of `(lambda...). 2013-10-07 01:10:06 -04:00
Stefan Monnier
34d1a1337d Get Ruby's SMIE code to pass the test suite.
* lisp/progmodes/ruby-mode.el (ruby-use-smie): Change default.
(ruby-comment-column): Follow the global default, by default.
(ruby-smie-grammar): Add assignment syntax.
(ruby-smie--implicit-semi-p): No implicit semi-colon after an
open-paren, a comma, or a \.
(ruby-smie--forward-token, ruby-smie--backward-token): Handle heredocs,
and line continuations.
(ruby-smie-rules): Adjust handling of open-paren, now that it's never
followed by implicit semi-colons.  Add rule for string concatenation
and for indentation at BOB.
(ruby-forward-sexp, ruby-backward-sexp): Adjust for when smie is in use.

* lisp/emacs-lisp/smie.el (smie-next-sexp): Don't go back to pos before
calling next-sexp, since next-token may have skipped chars which
next-sexp doesn't know should be skipped!

* test/indent/ruby.rb: Port a few cases from automated/ruby-mode-tests.el.
Adjust indentation of continued line to the new SMIE behavior.
2013-10-05 14:37:08 -04:00
Xue Fuqiao
63bd7f352f * lisp/emacs-lisp/syntax.el (syntax-ppss): Doc fix. 2013-10-04 22:46:31 +08:00
Daiki Ueno
acbadd0046 Add support for package signature checking.
* lisp/emacs-lisp/package.el (url-http-file-exists-p)
(epg-make-context, epg-context-set-home-directory)
(epg-verify-string, epg-context-result-for)
(epg-signature-status, epg-signature-to-string)
(epg-check-configuration, epg-configuration)
(epg-import-keys-from-file): Declare.
(package-check-signature): New user option.
(package-unsigned-archives): New user option.
(package-desc): Add `signed' field.
(package-load-descriptor): Set `signed' field if .signed file exists.
(package--archive-file-exists-p): New function.
(package--check-signature): New function.
(package-install-from-archive): Check package signature.
(package--download-one-archive): Check archive signature.
(package-delete): Remove .signed file.
(package-import-keyring): New command.
(package-refresh-contents): Import default keyring.
(package-desc-status): Add "unsigned" status.
(describe-package-1, package-menu--print-info)
(package-menu-mark-delete, package-menu--find-upgrades)
(package-menu--status-predicate): Support "unsigned" status.

* test/automated/data/package/signed/archive-contents:
* test/automated/data/package/signed/archive-contents.sig:
* test/automated/data/package/signed/signed-good-1.0.el:
* test/automated/data/package/signed/signed-good-1.0.el.sig:
* test/automated/data/package/signed/signed-bad-1.0.el:
* test/automated/data/package/signed/signed-bad-1.0.el.sig:
* test/automated/data/package/key.pub:
* test/automated/data/package/key.sec: New files.

* test/automated/package-test.el (package-test-update-listing)
(package-test-update-archives, package-test-describe-package):
Adjust to package.el change.
(package-test-signed): New test.
2013-10-03 16:11:27 +09:00
Stefan Monnier
adf2aa6140 Introduce new bytecodes for efficient catch/condition-case in lexbind.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Optimize under `condition-case' and `catch' if
byte-compile--use-old-handlers is nil.
(disassemble-offset): Handle new bytecodes.

* lisp/emacs-lisp/bytecomp.el (byte-pushcatch, byte-pushconditioncase)
(byte-pophandler): New byte codes.
(byte-goto-ops): Adjust accordingly.
(byte-compile--use-old-handlers): New var.
(byte-compile-catch): Use new byte codes depending on
byte-compile--use-old-handlers.
(byte-compile-condition-case--old): Rename from
byte-compile-condition-case.
(byte-compile-condition-case--new): New function.
(byte-compile-condition-case): New function that dispatches depending
on byte-compile--use-old-handlers.
(byte-compile-unwind-protect): Pass a function to byte-unwind-protect
when we can.

* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): Adjust for
the new compilation scheme using the new byte-codes.

* src/alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist,
and make them unconditional now that they're heap-allocated.

* src/bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase
and Bpophandler.
(bcall0): New function.
(exec_byte_code): Add corresponding cases.  Improve error message when
encountering an invalid byte-code.  Let Bunwind_protect accept
a function (rather than a list of expressions) as argument.

* src/eval.c (catchlist): Remove (merge with handlerlist).
(handlerlist, lisp_eval_depth): Not static any more.
(internal_catch, internal_condition_case, internal_condition_case_1)
(internal_condition_case_2, internal_condition_case_n):
Use PUSH_HANDLER.
(unwind_to_catch, Fthrow, Fsignal): Adjust to merged
handlerlist/catchlist.
(internal_lisp_condition_case): Use PUSH_HANDLER.  Adjust to new
handlerlist which can only handle a single condition-case handler at
a time.
(find_handler_clause): Simplify since we only a single branch here
any more.

* src/lisp.h (struct handler): Merge struct handler and struct catchtag.
(PUSH_HANDLER): New macro.
(catchlist): Remove.
(handlerlist): Always declare.
2013-10-03 00:58:56 -04:00
Stefan Monnier
abd1ae34a6 * lisp/emacs-lisp/package.el (package-desc): Simplify.
Fixes: debbugs:15495
2013-10-01 11:52:53 -04:00
Dmitry Gutov
494e898bc7 * lisp/emacs-lisp/package.el (package-buffer-info, describe-package-1):
Use :url instead of :homepage, as per
http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00622.html

* test/automated/package-test.el: Update all cases to use :url instead
of :homepage.

* test/automated/package-x-test.el
(package-x-test--single-archive-entry-1-3): Same.
2013-10-01 04:38:37 +03:00
Dmitry Gutov
056453c62e * lisp/emacs-lisp/package-x.el (package-upload-buffer-internal): Pass
`extras' slot from `package-desc' to `package-make-ac-desc'.

* lisp/emacs-lisp/package.el (package-desc-from-define): Accept
additional arguments as plist, convert it to an alist and store it
in the `extras' slot.
(package-generate-description-file): Convert extras alist back to
plist and append to the `define-package' form arguments.
(package--alist-to-plist): New function.
(package--ac-desc): Add `extras' slot.
(package--add-to-archive-contents): Check if the archive-contents
vector is long enough, and if it is, pass its `extras' slot value
to `package-desc-create'.
(package-buffer-info): Call `lm-homepage', pass the returned value
to `package-desc-from-define'.
(describe-package-1): Render the homepage button.

* test/automated/package-test.el (simple-single-desc-1-4): Remove, it
was unused.
(simple-single-desc): Expect :homepage property.
(multi-file-desc): Same.
(with-package-test): Do not save previous `default-directory'
value, let-bind the var instead.
(package-test-install-single): Expect :homepage property in the
generated pkg file.
(package-test-describe-package): Expect Homepage button.
(package-test-describe-non-installed-package)
(package-test-describe-non-installed-multi-file-package): Same.
(package-test-describe-not-installed-package): Remove, it was a
duplicate.

* test/automated/package-x-test.el
(package-x-test--single-archive-entry-1-3): Expect :homepage
property.
(package-x-test--single-archive-entry-1-4): Expect nil extras slot.

* test/automated/data/package/archive-contents: Add :homepage
properties to `simple-single' and `multi-file'.

* test/automated/data/package/simple-single-1.3.el: Add URL header.

Fixes: debbugs:13291
2013-09-29 22:41:00 +03:00
Stefan Monnier
3b7b269256 * lisp/emacs-lisp/cl-macs.el:
(cl--loop-destr-temps): Remove.
(cl--loop-iterator-function): Rename from cl--loop-map-form and change
its convention.
(cl--loop-set-iterator-function): New function.
(cl-loop): Adjust accordingly, so as not to use cl-subst.
(cl--parse-loop-clause): Adjust all uses of cl--loop-map-form.
Bind `it' with `let' instead of substituting it with `cl-subst'.
(cl--unused-var-p): New function.
(cl--loop-let): Don't use the cl--loop-destr-temps hack any more.
Eliminate some unused variable warnings.

Fixes: debbugs:15326
2013-09-27 21:07:18 -04:00
Daniel Colascione
0057865926 * emacs-lisp/cl-macs.el (cl-type-spec): Tell edebug what type
specs are and that they're not evaluated.
2013-09-25 14:39:53 -08:00
Glenn Morris
a2c501b84e * lisp/emacs-lisp/cl-macs.el (cl-defsubst): Remove unused local `pbody'. 2013-09-19 16:31:54 -04:00
Glenn Morris
9a0289a2e9 * lisp/emacs-lisp/eieio.el (class-parent): Undo previous change.
Ref: http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00354.html
2013-09-19 16:11:48 -04:00
Glenn Morris
f754477379 * emacs-lisp/eieio.el (class-parent): Don't use defalias with macros. 2013-09-19 00:14:53 -07:00
Glenn Morris
7bb3e76899 * emacs-lisp/chart.el (x-display-color-cells): Declare.
(chart-face-list): Drop Emacsen without display-color-p.
2013-09-17 22:04:41 -07:00