1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-03 18:41:25 -08:00
Commit graph

53136 commits

Author SHA1 Message Date
Stefan Monnier
034086489c Merge from lexical-binding branch.
* doc/lispref/eval.texi (Eval): Discourage the use of `eval'.
Document its new `lexical' argument.

* doc/lispref/variables.texi (Defining Variables): Mention the new meaning of `defvar'.
(Lexical Binding): New sub-section.

* lisp/Makefile.in (BIG_STACK_DEPTH, BIG_STACK_OPTS, BYTE_COMPILE_FLAGS):
New variables.
(compile-onefile, .el.elc, compile-calc, recompile): Use them.
(COMPILE_FIRST): Add macroexp and cconv.
* lisp/makefile.w32-in: Mirror changes in Makefile.in.

* lisp/vc/cvs-status.el:
* lisp/vc/diff-mode.el:
* lisp/vc/log-edit.el:
* lisp/vc/log-view.el:
* lisp/vc/smerge-mode.el:
* lisp/textmodes/bibtex-style.el:
* textmodes/css.el:
* lisp/startup.el:
* lisp/uniquify.el:
* lisp/minibuffer.el: 
* lisp/newcomment.el: 
* lisp/reveal.el: 
* lisp/server.el: 
* lisp/mpc.el: 
* lisp/emacs-lisp/smie.el: 
* lisp/doc-view.el: 
* lisp/dired.el: 
* lisp/abbrev.el: Use lexical binding.

* lisp/custom.el (custom-initialize-default, custom-declare-variable):
Use `defvar'.

* lisp/files.el (lexical-binding): Declare safe.

* lisp/help-fns.el (help-split-fundoc): Return nil if there's nothing else
than the arglist.
(help-add-fundoc-usage): Don't add `Not documented'.
(help-function-arglist): Handle closures, subroutines, and new
byte-code-functions.
(help-make-usage): Remove leading underscores.
(describe-function-1): Handle closures.
(describe-variable): Use special-variable-p for completion.

* lisp/simple.el (with-wrapper-hook, apply-partially): Move to subr.el.

* lisp/subr.el (apply-partially): Use new closures rather than CL.
(--dolist-tail--, --dotimes-limit--): Don't declare dynamic.
(dolist, dotimes): Use slightly different expansion for lexical code.
(functionp): Move to C.
(letrec): New macro.
(with-wrapper-hook): Use it and apply-partially instead of CL.
(eval-after-load): Preserve lexical-binding.
(save-window-excursion, with-output-to-temp-buffer): Turn them
into macros.

* lisp/emacs-lisp/advice.el (ad-arglist): Use help-function-arglist.

* lisp/emacs-lisp/autoload.el (make-autoload): Don't burp on trivial macros.

* lisp/emacs-lisp/byte-opt.el: Use lexical binding.
(byte-inline-lapcode): Remove (to bytecomp).
(byte-compile-inline-expand): Pay attention to inlining to/from
lexically bound code.
(byte-compile-unfold-lambda): Don't handle byte-code-functions
any more.
(byte-optimize-form-code-walker): Don't handle save-window-excursion
any more and don't call compiler-macros.
(byte-compile-splice-in-already-compiled-code): Remove.
(byte-code): Don't inline any more.
(disassemble-offset): Receive `bytes' as argument rather than via
dynamic scoping.
(byte-compile-tag-number): Declare before first use.
(byte-decompile-bytecode-1): Handle new byte-codes, don't change
`return' even if make-spliceable.
(byte-compile-side-effect-and-error-free-ops): Add stack-ref, remove
obsolete interactive-p.
(byte-optimize-lapcode): Optimize new lap-codes.
Don't trip up on new form of `byte-constant' lap code.

* lisp/emacs-lisp/byte-run.el (make-obsolete): Don't set the `byte-compile'
handler any more.

* lisp/emacs-lisp/bytecomp.el: Use lexical binding instead of
a "bytecomp-" prefix.  Macroexpand everything as a separate phase.
(byte-compile-initial-macro-environment):
Handle declare-function here.
(byte-compile--lexical-environment): New var.
(byte-stack-ref, byte-stack-set, byte-discardN)
(byte-discardN-preserve-tos): New lap codes.
(byte-interactive-p): Don't use any more.
(byte-compile-push-bytecodes, byte-compile-push-bytecode-const2):
New macros.
(byte-compile-lapcode): Use them and handle new lap codes.
(byte-compile-obsolete): Remove.
(byte-compile-arglist-signature): Handle new byte-code arg"lists".
(byte-compile-arglist-warn): Check late def of inlinable funs.
(byte-compile-cl-warn): Don't silence warnings for compiler-macros
since they should have been expanded by now.
(byte-compile--outbuffer): Rename from bytecomp-outbuffer.
(byte-compile-from-buffer): Remove unused second arg.
(byte-compile-preprocess): New function.
(byte-compile-toplevel-file-form): New function to distinguish
file-form calls from outside from file-form calls from hunk-handlers.
(byte-compile-file-form): Simplify.
(byte-compile-file-form-defsubst): Remove.
(byte-compile-file-form-defmumble): Simplify now that
byte-compile-lambda always returns a byte-code-function.
(byte-compile): Preprocess.
(byte-compile-byte-code-maker, byte-compile-byte-code-unmake):
Remove, not used any more.
(byte-compile-arglist-vars, byte-compile-make-lambda-lexenv)
(byte-compile-make-args-desc): New funs.
(byte-compile-lambda): Handle lexical functions.  Always return
a byte-code-function.
(byte-compile-reserved-constants): New var, to make up room for
closed-over variables.
(byte-compile-constants-vector): Obey it.
(byte-compile-top-level): New args `lexenv' and `reserved-csts'.
(byte-compile-macroexpand-declare-function): New function.
(byte-compile-form): Call byte-compile-unfold-bcf to inline immediate
byte-code-functions.
(byte-compile-form): Check obsolescence here.
(byte-compile-inline-lapcode, byte-compile-unfold-bcf): New functions.
(byte-compile-variable-ref): Remove.
(byte-compile-dynamic-variable-op): New fun.
(byte-compile-dynamic-variable-bind, byte-compile-variable-ref)
(byte-compile-variable-set): New funs.
(byte-compile-discard): Add 2 args.
(byte-compile-stack-ref, byte-compile-stack-set)
(byte-compile-make-closure, byte-compile-get-closed-var): New funs.
(byte-compile-funarg, byte-compile-funarg-2): Remove, handled in
macroexpand-all instead.
(byte-compile-quote-form): Remove.
(byte-compile-push-binding-init, byte-compile-not-lexical-var-p)
(byte-compile-bind, byte-compile-unbind): New funs.
(byte-compile-let): Handle let* and lexical binding.
(byte-compile-let*): Remove.
(byte-compile-catch, byte-compile-unwind-protect)
(byte-compile-track-mouse, byte-compile-condition-case):
Handle a new :fun-body form, used for lexical scoping.
(byte-compile-save-window-excursion)
(byte-compile-with-output-to-temp-buffer): Remove.
(byte-compile-defun): Simplify.
(byte-compile-stack-adjustment): New fun.
(byte-compile-out): Use it.
(byte-compile-refresh-preloaded): Don't reload byte-compiler files.

* lisp/emacs-lisp/cconv.el: New file.

* lisp/emacs-lisp/cl-extra.el (cl-macroexpand-all): Properly quote CL
closures.

* lisp/emacs-lisp/cl-macs.el (cl-byte-compile-block)
(cl-byte-compile-throw): Remove.
(cl-block-wrapper, cl-block-throw): Use compiler-macros instead.

* lisp/emacs-lisp/cl.el (pushnew): Silence warning.

* lisp/emacs-lisp/disass.el (disassemble-internal): Handle new
`closure' objects.
(disassemble-1): Handle new byte codes.

* lisp/emacs-lisp/edebug.el (edebug-eval-defun)
(edebug-eval-top-level-form): Use eval-sexp-add-defvars.
(edebug-toggle): Avoid `eval'.

* lisp/emacs-lisp/eieio-comp.el: Remove.

* lisp/emacs-lisp/eieio.el (byte-compile-file-form-defmethod):
Don't autoload.
(eieio-defgeneric-form-primary-only-one): Use `byte-compile' rather
than the internal `byte-compile-lambda'.
(defmethod): Don't hide code under quotes.
(eieio-defmethod): New `code' argument.

* lisp/emacs-lisp/float-sup.el (pi): Don't declare as dynamically bound.

* lisp/emacs-lisp/lisp-mode.el (eval-last-sexp-1):
Use eval-sexp-add-defvars.
(eval-sexp-add-defvars): New fun.

* lisp/emacs-lisp/macroexp.el: Use lexical binding.
(macroexpand-all-1): Check obsolete macros.  Expand compiler-macros.
Don't convert ' to #' without checking that it's indeed quoting
a lambda.

* lisp/emacs-lisp/pcase.el: Don't use destructuring-bind.
(pcase--memoize): Rename from pcase-memoize.  Change weakness.
(pcase): Add `let' pattern.
Change memoization so it actually works.
(pcase-mutually-exclusive-predicates): Add byte-code-function-p.
(pcase--u1) <guard, pred>: Fix possible shadowing problem.
<let>: New case.

* src/alloc.c (Fmake_symbol): Init new `declared_special' field.

* src/buffer.c (defvar_per_buffer): Set new `declared_special' field.

* src/bytecode.c (Bstack_ref, Bstack_set, Bstack_set2, BdiscardN):
New byte-codes.
(exec_byte_code): New function extracted from Fbyte_code to handle new
calling convention for byte-code-functions.  Add new byte-codes.

* src/callint.c (Fcall_interactively): Preserve lexical-binding mode for
interactive spec.

* src/doc.c (Fdocumentation, store_function_docstring):
* src/data.c (Finteractive_form): Handle closures.

* src/eval.c (Fsetq): Handle lexical vars.
(Fdefun, Fdefmacro, Ffunction): Make closures when needed.
(Fdefconst, Fdefvaralias, Fdefvar): Mark as dynamic.
(FletX, Flet): Obey lexical binding.
(Fcommandp): Handle closures.
(Feval): New `lexical' arg.
(eval_sub): New function extracted from Feval.  Use it almost
everywhere where Feval was used.  Look up vars in lexical env.
Handle closures.
(Ffunctionp): Move from subr.el.
(Ffuncall): Handle closures.
(apply_lambda): Remove `eval_flags'.
(funcall_lambda): Handle closures and new byte-code-functions.
(Fspecial_variable_p): New function.
(syms_of_eval): Initialize the Vinternal_interpreter_environment var,
but without exporting it to Lisp.

* src/fns.c (concat, mapcar1): Accept byte-code-functions.

* src/image.c (parse_image_spec): Use Ffunctionp.

* src/keyboard.c (eval_dyn): New fun.
(menu_item_eval_property): Use it.

* src/lisp.h (struct Lisp_Symbol): New field `declared_special'.

* src/lread.c (lisp_file_lexically_bound_p): New function.
(Fload): Bind Qlexical_binding.
(readevalloop): Remove `evalfun' arg.
Bind Qinternal_interpreter_environment.
(Feval_buffer): Bind Qlexical_binding.
(defvar_int, defvar_bool, defvar_lisp_nopro, defvar_kboard):
Mark as dynamic.
(syms_of_lread): Declare `lexical-binding'.

* src/window.c (Ftemp_output_buffer_show): New fun.
(Fsave_window_excursion):
* src/print.c (Fwith_output_to_temp_buffer): Move to subr.el.
2011-04-01 13:19:52 -04:00
Stefan Monnier
7200d79c65 Miscellanous cleanups in preparation for the merge.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Remove debug statement.
* lisp/emacs-lisp/bytecomp.el (byte-compile-single-version)
(byte-compile-version-cond, byte-compile-delay-out)
(byte-compile-delayed-out): Remove, unused.
* src/bytecode.c (Fbyte_code): Revert to old calling convention.
* src/lisp.h (COMPILED_PUSH_ARGS): Remove, unused.
2011-04-01 11:16:50 -04:00
Julien Danjou
1c412c000a mm-view.el (mm-display-inline-fontify): Do not fontify with fundamental-mode. 2011-04-01 14:24:22 +00:00
Eli Zaretskii
0f0c1f27a9 Add a new command `info-display-manual'.
lisp/info.el (info-display-manual): New function.
2011-04-01 13:10:47 +03:00
Stefan Monnier
c82b2579f0 * lisp/loadup.el: Load minibuffer after loaddefs, to use define-minor-mode. 2011-03-31 11:17:06 -04:00
Lars Magne Ingebrigtsen
d5b686dc30 gnus-sum.el (gnus-update-marks): Revert intersection change, which made marks not propagate, again. 2011-03-31 13:31:56 +00:00
Tassilo Horn
221ddf68cb * net/rcirc.el (rcirc-handler-001): Only authenticate, if there's
an entry for that server in rcirc-authinfo. (Bug#8385)
2011-03-31 14:19:17 +02:00
Glenn Morris
e040639fd9 * lisp/progmodes/f90.el (f90-find-tag-default): Handle multiple `%'. 2011-03-31 00:20:38 -07:00
Stefan Monnier
40d83b412f Merge from trunk 2011-03-31 00:24:03 -04:00
Glenn Morris
cba6e77ef3 * lisp/generic-x.el (etc-fstab-generic-mode): Add ext4, sysfs keywords. 2011-03-30 19:11:34 -07:00
Christoph Scholtes
6d0f1c9e55 * progmodes/python.el (python-default-interpreter)
(python-python-command-args, python-jython-command-args)
(python-which-shell, python-which-args, python-which-bufname)
(python-file-queue, python-comint-output-filter-function)
(python-toggle-shells, python-shell): Remove obsolete defcustoms,
variables and functions.
2011-03-30 16:44:07 -06:00
Stefan Monnier
3e2d70fd42 (completion-in-region): Pop down *Completions* automatically.
* lisp/minibuffer.el (completion-table-dynamic): Optimize `boundaries'.
(completion-in-region-mode): New minor mode.
(completion-in-region): Use it.
(completion-in-region--data, completion-in-region-mode-map): New vars.
(completion-in-region--postch): New function.
(completion--capf-misbehave-funs, completion--capf-safe-funs): New vars.
(completion--capf-wrapper): New function.
(completion-at-point): Use it to track well-behavedness of hook functions.
(completion-help-at-point): New command.
2011-03-30 18:25:57 -04:00
Jason Merrill
f3e4086c9d * lisp/vc/add-log.el (add-change-log-entry): Don't use whitespace
syntax class to search for whitespace on a single line
(Message-ID: <4D938140.4030905@redhat.com>).
2011-03-30 17:56:04 -04:00
Stefan Monnier
f488fb6528 * lisp/subr.el (apply-partially): Use a non-nil static environment.
(--dolist-tail--, --dotimes-limit--): Don't declare dynamically bound.
(dolist): Use a more efficient form for lexical-binding.
(dotimes): Use a cleaner semantics for lexical-binding.
* lisp/emacs-lisp/edebug.el (edebug-eval-top-level-form):
Use eval-sexp-add-defvars.
2011-03-30 14:40:00 -04:00
Gnus developers
a5954fa5c8 Merge Gnus' changes.
gnus.texi (Listing Groups): Document gnus-group-list-ticked.
gssapi.el (open-gssapi-stream): Remove the last mentions of the IMAP stuff.
gnus-score.el (gnus-score-string): Fix calling convention of `gnus-simplify-buffer-fuzzy' after last patches.
gnus-sum.el (gnus-update-marks): Don't send any marks updates to the server for articles we didn't get any headers for.  This is a sanity check.
nnimap.el (nnimap-open-connection-1): Is the login responds with a new CAPABILITY, use it.
gnus-agent.el (gnus-agent-fetch-headers): Don't message if we're not downloading anything.
gnus.el (gnus-splash-svg-color-symbols): Removed superfluous `and'.
gnus.el (gnus-group-startup-message): Prefer svg file and replace colors.
 (gnus-splash-svg-color-symbols): New function.
gnus-sum.el (gnus-simplify-buffer-fuzzy): Take the regexp explicitly instead of using the global gnus-simplify-subject-fuzzy-regexp.
 (gnus-simplify-subject-fuzzy): Use the local gnus-simplify-subject-fuzzy-regex instead of the global one.  This makes using this variable in group parameters work.
gnus-registry.el (gnus-registry-unfollowed-groups): Add "archive:sent" to the unfollowed group regex (for the recent Gnus archive:sent-YYYY-MM-DD groups).
 (gnus-registry-split-fancy-with-parent): Bail out early in sender tracking if there are more than `gnus-registry-max-track-groups' matches.
message.el (message--yank-original-internal): New function to do the insertion cleanly inside eval in `message-yank-original'.
 (message-yank-original): Use it.
2011-03-30 14:59:42 +00:00
Juanma Barranquero
ebe0c9b6b0 lisp/makefile.w32-in (COMPILE_FIRST): Remove pcase. 2011-03-30 16:01:28 +02:00
Stefan Monnier
9dba2c6449 * lisp/subr.el (with-output-to-temp-buffer): Don't change current-buffer to
standard-output while running the body.
* lisp/Makefile.in (COMPILE_FIRST): Remove pcase; it's not so important.
* lisp/startup.el: Fix up warnings, move lambda expressions
outside of quote.
2011-03-29 23:27:56 -04:00
Chong Yidong
e742e11707 Change default type of open-protocol-stream.
* nnimap.el (nnimap-stream, nnimap-open-connection-1): Accept `network'
value.

* nntp.el (nntp-open-connection-function): Document the fact that some
values are not functions but are instead handled specially.  Recognize
nntp-open-plain-stream value.
(nntp-open-connection): Recognize that value.

* proto-stream.el (open-protocol-stream): Bring back `network' type.
Make this the default type.
(proto-stream-open-plain): Rename from proto-stream-open-default.
(open-protocol-stream, proto-stream-open-starttls)
(proto-stream-open-tls, proto-stream-open-shell): Replace `default'
with `plain'.
2011-03-29 22:21:28 -04:00
Leo Liu
eb7ffc147d Improve key bindings in edit-abbrevs-mode
C-x C-s and C-x C-w in edit-abbrevs-mode now do something similar to
their corresponding global bindings.
2011-03-30 09:06:00 +08:00
Ken Manheimer
d806ab682a * allout.el (allout-hide-by-annotation, allout-flag-region): Reduce
possibility of overlay leakage by making them volatile.

* allout-widgets.el (allout-widgets-tally): Define as nil so the hash is
not shared between buffers.  Mode initialization is responsible for giving
it a useful starting value.
(allout-item-span): Reduce possibility of overlay leakage by making them
volatile.
(allout-widgets-count-buttons-in-region): Add diagnostic function for
tracking down overlay leaks.
2011-03-29 14:26:01 -04:00
Gnus developers
b62f8267c3 Merge changes made in Gnus trunk.
mm-view.el (mm-display-inline-fontify): Use `set-normal-mode' with local variables disabled rather than `normal-mode'.
imap.el (imap-shell-open, imap-process-connection-type): Use imap-process-connection-type for 'shell' streams as well as Kerberos, SSL, other subprocesses.
2011-03-29 13:23:38 +00:00
Leo Liu
ea62283460 Add to minibuffer-history if HISOTRY is nil in ido.el
It is broken by the change on 2011-03-21.
2011-03-29 16:25:31 +08:00
Leo Liu
947b656632 Place empty abbrev tables after nonempty ones when editing 2011-03-28 22:34:32 +08:00
Jan Djärv
5ffb62aa7e Format doc and add customize for ns-auto-hide-menu-bar.
* lisp/cus-start.el (all): Add boolean ns-auto-hide-menu-bar.

* src/nsterm.m (syms_of_nsterm): Use doc: for ns-auto-hide-menu-bar.
2011-03-27 12:55:07 +02:00
Leo Liu
7a097943f7 Support separate fg and bg colors in ansi-color.el
A color suitable for foreground text can make unreadable text if used
as background color, and vice versa.
2011-03-27 09:56:35 +08:00
Chong Yidong
f2eefd2477 Changes to open-protocol-stream, preparing for merging it with open-network-stream.
* lisp/gnus/proto-stream.el: Changes preparatory to merging open-protocol-stream
with open-network-stream.
(proto-stream-always-use-starttls): Option removed.
(open-protocol-stream): Return a process object by default.  Provide a
new parameter :return-list specifying a list-type return value, which
now has the form (PROP . PLIST) instead of a fixed-length list.  Change
:type `network' to `try-starttls', and `network-only' to `default'.
Make `default' the default, for compatibility with open-network-stream.
Handle the no-parameter case exactly as open-network-stream, with no
additional stream processing.  Search plists using plist-get.
Explicitly add :end-of-commend parameter if it is missing.
(proto-stream-open-default): Renamed from
proto-stream-open-network-only.  Return 'default as the type.
(proto-stream-open-starttls): Rename from proto-stream-open-network.
Use plist-get.  Don't return `tls' as the type if STARTTLS negotiation
failed.  Always return a list with a (possibly dead) process as the
first element, for compatibility with open-network-stream.
(proto-stream-open-tls): Use plist-get.  Always return a list.
(proto-stream-open-shell): Return `default' as connection type.
(proto-stream-capability-open): Use plist-get.
(proto-stream-eoc): Function deleted.

* lisp/gnus/nnimap.el (nnimap-stream, nnimap-open-connection)
(nnimap-open-connection-1): Handle renaming of :type parameter for
open-protocol-stream.
(nnimap-open-connection-1): Pass a :return-list parameter
open-protocol-stream to obtain a list return value.  Parse this list
using plist-get.

* lisp/gnus/nntp.el (nntp-open-connection): Handle renaming of :type parameter
for open-protocol-stream.  Accept open-protocol-stream return value
that is a subprocess object instead of a list.  Handle the case of a
dead returned process.
2011-03-26 19:18:42 -04:00
Teodor Zlatanov
dc8026879e mm-util.el (mm-handle-filename): Move to mm-decode.el (bug#8330).
mm-decode.el (mm-handle-filename): Move from mm-util.el (bug#8330).
2011-03-25 23:27:18 +00:00
Leo Liu
625897eca3 Remove redundant (require 'timer) in midnight.el 2011-03-26 06:26:30 +08:00
Leo Liu
1f48f7d236 Remove unused and erroneous midnight-time-float 2011-03-26 06:11:15 +08:00
Leo Liu
c5b40130ec Some ido cleanups
* ido.el (ido-read-internal): Simplify with read-from-minibuffer.
(ido-completions): Remove unused arguments.  (Bug#8329)
2011-03-25 08:42:26 +08:00
Stefan Monnier
d86d2721aa First step towards using standard completion in comint.
* lisp/minibuffer.el (completion--flush-all-sorted-completions):
Remove itself from hook.
(completion-at-point): Let the functions perform the completion
immediately and return nil or t.
* lisp/comint.el (comint-dynamic-complete-functions): Now identical to
completion-at-point-functions.
(comint-dynamic-list-input-ring): Remove unused var `index'.
(comint--match-partial-filename, comint--unquote&expand-filename):
New funs, split from comint-match-partial-filename.
(comint-dynamic-complete): Use completion-at-point.
(comint-dynamic-complete-filename): Use comint--match-partial-filename.
2011-03-24 18:05:01 -04:00
Drew Adams
e8974c48ae Add support for defun in thingatpt.el 2011-03-25 00:38:12 +08:00
Stefan Monnier
06788a5530 Fix C-M-x in lexbind mode. Misc tweaks.
* lisp/startup.el: Convert to lexical-binding.  Mark unused arguments.
(command-line-1): Get rid of the "cl1-" prefix now that we use lexical
scoping instead.
* lisp/emacs-lisp/float-sup.el (pi): Leave it lexically scoped.
* lisp/emacs-lisp/lisp-mode.el (eval-sexp-add-defvars): New fun.
(eval-last-sexp-1): Use eval-sexp-add-defvars.
* lisp/emacs-lisp/edebug.el (edebug-eval-defun): Use eval-sexp-add-defvars.
* lisp/emacs-lisp/cconv.el (cconv--analyse-function):
Fix `report-error/log-warning' mixup.
2011-03-24 11:31:56 -04:00
Leo Liu
cb5af48e50 Move abbrevlist.el to obsolete/abbrevlist.el 2011-03-24 02:11:15 +08:00
Leo Liu
def71b5e5b Tweak regexp in help-mode-finish
Without this fix, "This special-form is advised." won't be correctly
fontified.
2011-03-23 19:56:34 +08:00
Glenn Morris
18d05bed65 esh-opt trivia.
* lisp/eshell/esh-opt.el (eshell-eval-using-options):
Do not bind unused local variable `eshell-option-stub'.
2011-03-22 19:52:52 -07:00
Glenn Morris
927c53e762 * lisp/progmodes/gdb-mi.el (gdb): Fix typo in previous change. 2011-03-22 19:50:28 -07:00
Stefan Monnier
29a4dcb06d Clean up left over Emacs-18/19 code, inline byte-code-functions.
* lisp/emacs-lisp/byte-opt.el (byte-inline-lapcode): Move to bytecomp.el.
(byte-compile-inline-expand): Inline all bytecompiled functions.
Unify the inlining code of the lexbind and dynbind interpreted functions.
(byte-compile-unfold-lambda): Don't handle byte-compiled functions at all.
(byte-optimize-form-code-walker): Don't optimize byte-compiled inlined
functions here.
(byte-compile-splice-in-already-compiled-code): Remove.
(byte-code): Don't optimize it any more.
(byte-decompile-bytecode-1): Remove unused bytedecomp-bytes.
Leave `byte-return's even for `make-spliceable'.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble):
byte-compile-lambda now always returns a byte-code-function.
(byte-compile-byte-code-maker, byte-compile-byte-code-unmake)
(byte-compile-closure): Remove.
(byte-compile-lambda): Always return a byte-code-function.
(byte-compile-top-level): Don't handle `byte-code' forms specially.
(byte-compile-inline-lapcode): New function, taken from byte-opt.el.
(byte-compile-unfold-bcf): New function.
(byte-compile-form): Use it to optimize inline byte-code-functions.
(byte-compile-function-form, byte-compile-defun): Simplify.
(byte-compile-defmacro): Don't bother calling
byte-compile-byte-code-maker.
2011-03-22 20:53:36 -04:00
Juanma Barranquero
9d0da923eb lisp/emacs-lisp/derived.el: Don't warn about keymaps already `defconst'ed. 2011-03-22 21:58:27 +01:00
Leo Liu
4b978a677c Use utf-8 if safe for writing to abbrev file
and fall back on emacs-mule or utf-8-emacs.
2011-03-22 23:38:40 +08:00
Juanma Barranquero
0b1596c6ad lisp/simple.el: Avoid warning about `delete-backward-char'. 2011-03-22 16:15:21 +01:00
Julien Danjou
247c22e185 mm-view.el (mm-display-inline-fontify): Make mode optional, and call normal-mode if not set. Set temp buffer unmodified to avoid kill-buffer query.
(mm-inline-text): Render normal text with fontification whenever possible.
gnus-sum.el (gnus-summary-save-parts-1):
gnus-art.el (gnus-article-browse-html-save-cid-content)
 (gnus-article-browse-html-parts, gnus-mime-delete-part)
 (gnus-mime-copy-part, gnus-mime-inline-part, gnus-insert-mime-button):
 Use `mm-handle-filename'.
mm-util.el (mm-handle-filename): New function, return the filename of an handle.
2011-03-22 13:40:41 +00:00
Juanma Barranquero
5fd6245244 lisp/image.el: Avoid some warnings.
* image.el (image-type-file-name-regexps): Make it variable.
  `imagemagick-register-types' modifies it, and the user may want
  to add new extensions for known image types.
  (imagemagick-register-types): Throw error if not using ImageMagick.
2011-03-22 14:10:43 +01:00
Leo Liu
9882e21494 New variable rcirc-user-authenticated to pacify compiler 2011-03-22 19:51:48 +08:00
Leo Liu
0b4e93f177 Handle the case when re-search-backward errs
because point is not located after rcirc-prompt-end-marker.
2011-03-22 19:30:05 +08:00
Chong Yidong
fccee4ab72 Special handling of the `custom-enabled-themes' custom variable.
* lisp/custom.el (custom--inhibit-theme-enable): Make it affect only
custom-theme-set-variables and custom-theme-set-faces.
(provide-theme): Ignore custom--inhibit-theme-enable.
(load-theme): Enable the theme explicitly if NO-ENABLE is non-nil.
(custom-enabling-themes): Delete variable.
(enable-theme): Accept only loaded themes as arguments.  Ignore
the special custom-enabled-themes variable.
(custom-enabled-themes): Forbid themes from setting this.
Eliminate use of custom-enabling-themes.
(custom-push-theme): Quote "changed" custom var entry.
2011-03-21 20:30:23 -04:00
Chong Yidong
0357c7ae9c * lisp/custom.el (custom-push-theme): Quote "changed" custom var entry. 2011-03-21 18:09:52 -04:00
Leo Liu
af896da66a Fix history adding in ido-read-internal
Assume, for example, the head of matches is "RSS" and user input is
"rs". If the user hit RET, "RSS" is selected but "rs" is added to the
history. This commit fixes this inconsistency.
2011-03-22 01:48:36 +08:00
Stefan Monnier
cafdcef32d Merge from trunk 2011-03-21 12:42:16 -04:00
Stefan Monnier
78f64af0ae * subr.el (deferred-action-list, deferred-action-function): Mark obsolete. 2011-03-21 12:34:16 -04:00