Stefan Monnier [Thu, 10 Mar 2011 19:40:48 +0000 (14:40 -0500)]
* lisp/emacs-lisp/bytecomp.el: Use lexical-binding.
(byte-recompile-directory): Remove unused var `bytecomp-dest'.
(byte-recompile-file): Use derived-mode-p.
(byte-compile-from-buffer): Remove arg `bytecomp-filename'.
Use byte-compile-current-file instead.
(byte-compile-file): Adjust call accordingly.
(bytecomp-outbuffer): Move declaration before first use.
(for-effect): Declare dynamic.
(byte-compile-file-form-defmumble): Use byte-compile-current-file.
(byte-compile-top-level, byte-compile-out-toplevel, byte-compile-form):
Move dyn-binding of for-effect from function argument to let binding.
(byte-compile-out-toplevel): Don't both passing for-effect to
byte-optimize-lapcode.
(byte-compile-top-level-body, byte-compile-body):
Rename for-effect -> for-effect-arg so it's lexical.
* lisp/subr.el (functionp): Remove, now that it's in src/eval.c.
Stefan Monnier [Thu, 10 Mar 2011 14:52:33 +0000 (09:52 -0500)]
* lisp/emacs-lisp/byte-opt.el: Use lexical binding.
(for-effectm byte-compile-tag-number): Declare dynamic.
(byte-optimize-form-code-walker, byte-optimize-form): Move dynamic
binding of for-effect from function argument to let binding.
(byte-decompile-bytecode-1): Move dynamic binding of bytedecomp-bytes
from function argument to let binding.
Stefan Monnier [Thu, 10 Mar 2011 03:48:44 +0000 (22:48 -0500)]
Rewrite the cconv conversion algorithm, for clarity.
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Adjust check for
new byte-code representation.
* lisp/emacs-lisp/cconv.el (cconv--convert-function): Rename from
cconv-closure-convert-function.
(cconv-convert): Rename from cconv-closure-convert-rec.
(cconv--analyse-use): Rename from cconv-analyse-use.
(cconv--analyse-function): Rename from cconv-analyse-function.
(cconv--analyse-use): Change some patterns to silence compiler.
(cconv-convert, cconv--convert-function): Rewrite.
* test/automated/lexbind-tests.el: New file.
Paul Eggert [Sun, 6 Mar 2011 10:53:51 +0000 (02:53 -0800)]
Merge: current_column: Now returns EMACS_INT, fixing some iftc
that was introduced in the 2002-06-02 change "temporarily"; see
<http://lists.gnu.org/archive/html/emacs-devel/2002-06/msg00039.html>.
* bytecode.c (Fbyte_code): Don't cast current_column () to int.
* cmds.c (internal_self_insert): Likewise.
* indent.c (Fcurrent_column): Likewise.
* keymap.c (describe_command): Likewise.
* minibuf.c (read_minibuf): Likewise.
* indent.c (Fcurrent_indentation): Don't cast position_indentation ()
to int.
* xdisp.c (redisplay_internal, redisplay_window, decode_mode_spec):
Likewise.
* cmds.c (internal_self_insert): Declare locals to be EMACS_INT,
not int or double, if they might contain a column number.
* indent.c (current_column, Findent_to, indented_beyond_p):
(compute_motion, vmotion): Likewise.
* keymap.c (describe_command): Likewise.
* xdisp.c (pint2str): Likewise.
* indent.c (last_known_column): Now EMACS_INT, not int.
* minibuf.c (minibuf_prompt_width): Likewise.
* indent.c (current_column, current_column_1, position_indentation):
Return EMACS_INT, not double.
* lisp.h (current_column): Likewise.
* indent.c (indented_beyond_p): Last arg is now EMACS_INT, not double.
All callers changed.
* lisp.h (indented_beyond_p): Likewise.
* minibuf.c (minibuf_prompt, minibuf_prompt_width): Move here
from xdisp.c, and make static, since these are used only here.
* window.h, xdisp.c (minibuf_prompt, minibuf_prompt_width):
Remove decls.
* xdisp.c (redisplay_window): Reindent to match Emacs style.
Stefan Monnier [Sun, 6 Mar 2011 04:48:17 +0000 (23:48 -0500)]
Fix pcase memoizing; change lexbound byte-code marker.
* src/bytecode.c (exec_byte_code): Remove old lexical binding slot handling
and replace it with the a integer args-desc handling.
* eval.c (funcall_lambda): Adjust arglist test accordingly.
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-signature):
Handle integer arglist descriptor.
(byte-compile-make-args-desc): Make integer arglist descriptor.
(byte-compile-lambda): Use integer arglist descriptor to mark lexical
byte-coded functions instead of an extra slot.
* lisp/help-fns.el (help-add-fundoc-usage): Don't add a dummy doc.
(help-split-fundoc): Return a nil doc if there was no actual doc.
(help-function-arglist): Generate an arglist from an integer arg-desc.
* lisp/emacs-lisp/pcase.el (pcase--memoize): Rename from pcase-memoize;
Make only the key weak.
(pcase): Change the key used in the memoization table, so it does not
always get GC'd away.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Slight change to the
pcase pattern to generate slightly better code.
Chong Yidong [Sun, 6 Mar 2011 03:22:06 +0000 (22:22 -0500)]
Allow specifying local ELPA mirrors in package-archives.
* emacs-lisp/package.el (package-archives): Accept either ordinary
directory names, in addition to HTTP URLs.
(package--with-work-buffer): New macro. Handle normal directories.
(package-handle-response): Don't display the failing buffer.
(package-download-single, package-download-tar)
(package--download-one-archive): Use package--with-work-buffer.
(package-archive-base): Rename from package-archive-url.
Glenn Morris [Sun, 6 Mar 2011 01:42:13 +0000 (17:42 -0800)]
* configure.in (FREETYPE_LIBS): Actually set it to something.
This was needed for linking a lucid toolkit build on a recent
Debian testing system. Without this, it failed with:
ftfont.o: undefined reference to symbol 'FT_New_Face'
Deniz Dogan [Sat, 5 Mar 2011 13:34:55 +0000 (14:34 +0100)]
* lisp/net/rcirc.el: Add functionality to authenticate before autojoining channels.
(rcirc-authenticate-before-join): New option.
(rcirc-authenticated-hook): New variable.
(rcirc-connect): Make local variable rcirc-user-authenticated.
(rcirc-handler-001): Respect rcirc-authenticate-before-join.
(rcirc-check-auth-status, rcirc-join-channels-post-auth): New
functions.
(rcirc-handler-PRIVMSG, rcirc-handler-NOTICE): Call
rcirc-check-auth-status.
Gnus developers [Sat, 5 Mar 2011 13:01:56 +0000 (13:01 +0000)]
Merge changes made in Gnus trunk.
gnus-sum.el (gnus-update-read-articles): Fix typo.
gnus.el (gnus-valid-select-methods): Mark nnimap as a backend that really have server-side marks.
gnus-sum.el (gnus-propagate-marks): Change default back to nil again, since most backends do not usefully have server-side marks.
(gnus-update-read-articles): Propagate marks to all backends that really have server-side marks.
message.el (message-cite-reply-position, message-cite-style): New variables.
(message-yank-original): Use the new citation styles.
Michael Albinus [Sat, 5 Mar 2011 10:32:10 +0000 (11:32 +0100)]
Add package name. Fix author email address.
* net/soap-client.el (soap-namespace-put-link): Check if the target
name is fully qualified -- use only the name part.
(soap-parse-complex-type, soap-parse-sequence): Recognize xsd:all
types, treated the same as xsd:sequence. (Bug#8166)
Glenn Morris [Fri, 4 Mar 2011 08:40:00 +0000 (00:40 -0800)]
outline.el fix for bug#7619.
It turns out the use of nil in the :type of outline regexp was for
very hysterical raisons. Prior to 2001-09-12T20:42:08Z!rms@gnu.org, the
default value was nil, then it was initialized afterwards.
Everywhere in the code assumes it cannot be nil, so no need to allow
that any more.
Gnus developers [Thu, 3 Mar 2011 13:21:50 +0000 (13:21 +0000)]
Merge changes made in Gnus trunk.
nnimap.el (nnimap-parse-flags): Add a workaround for FETCH lines with numbers too big to be `read'.
password-cache.el (password-in-cache-p): Add autoload.
message.el (message-options): Make buffer-local two ways to attempt to fix a XEmacs bug.
Christian Ohler [Thu, 3 Mar 2011 09:01:51 +0000 (02:01 -0700)]
Added fast path to ERT explanation of `equal'.
* emacs-lisp/ert.el (ert--explain-equal): New function.
(ert--explain-equal-rec): Renamed from `ert--explain-not-equal'.
All callers changed.
(ert--explain-equal-including-properties): Renamed from
`ert--explain-not-equal-including-properties'. All callers
changed.
* automated/ert-tests.el (ert-test-explain-not-equal-keymaps):
New test.