1. 10 Aug, 2011 1 commit
    • Chong Yidong's avatar
      New function `string-mark-left-to-right' for handling LRMs. · 3e26a4a2
      Chong Yidong authored
      * lisp/subr.el (string-mark-left-to-right): New function.
      
      * lisp/buff-menu.el (Buffer-menu-buffer+size): Remove LRM argument.
      Use string-mark-left-to-right.
      (list-buffers-noselect): Caller changed.
      
      * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-entry): Use
      string-mark-left-to-right.
      (tabulated-list-print): Recenter after moving point.
      3e26a4a2
  2. 03 Aug, 2011 1 commit
  3. 15 Jul, 2011 2 commits
  4. 14 Jul, 2011 1 commit
  5. 13 Jul, 2011 2 commits
  6. 12 Jul, 2011 1 commit
  7. 11 Jul, 2011 1 commit
  8. 09 Jul, 2011 1 commit
  9. 02 Jul, 2011 1 commit
    • Stefan Monnier's avatar
      Add multiple inheritance to keymaps. · 3349e122
      Stefan Monnier authored
      * src/keymap.c (Fmake_composed_keymap): New function.
      (Fset_keymap_parent): Simplify.
      (fix_submap_inheritance): Remove.
      (access_keymap_1): New function extracted from access_keymap to handle
      embedded parents and handle lists of maps.
      (access_keymap): Use it.
      (Fkeymap_prompt, map_keymap_internal, map_keymap, store_in_keymap)
      (Fcopy_keymap): Handle embedded parents.
      (Fcommand_remapping, define_as_prefix): Simplify.
      (Fkey_binding): Simplify.
      (syms_of_keymap): Move minibuffer-local-completion-map,
      minibuffer-local-filename-completion-map,
      minibuffer-local-must-match-map, and
      minibuffer-local-filename-must-match-map to Elisp.
      (syms_of_keymap): Defsubr make-composed-keymap.
      * src/keyboard.c (menu_bar_items): Use map_keymap_canonical.
      (parse_menu_item): Trivial simplification.
      * lisp/subr.el (remq): Don't allocate if it's not needed.
      (keymap--menu-item-binding, keymap--menu-item-with-binding)
      (keymap--merge-bindings): New functions.
      (keymap-canonicalize): Use them to refine the canonicalization.
      * lisp/minibuffer.el (minibuffer-local-completion-map)
      (minibuffer-local-must-match-map): Move initialization from C.
      (minibuffer-local-filename-completion-map): Move initialization from C;
      don't inherit from anything here.
      (minibuffer-local-filename-must-match-map): Make obsolete.
      (completing-read-default): Use make-composed-keymap to combine
      minibuffer-local-filename-completion-map with either
      minibuffer-local-must-match-map or
      minibuffer-local-filename-completion-map.
      3349e122
  10. 21 Jun, 2011 1 commit
  11. 15 Jun, 2011 1 commit
  12. 02 Jun, 2011 1 commit
  13. 01 Jun, 2011 1 commit
    • Stefan Monnier's avatar
      Miscellaneous tweaks. · 2462470b
      Stefan Monnier authored
      * lisp/emacs-lisp/cl-macs.el (dolist, dotimes): Use the same strategy for
      lexical scoping as in subr.el's dolist and dotimes.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-unfold-bcf):
      Silence compiler warning.
      * lisp/thingatpt.el (forward-whitespace): Trivial coding style fix.
      * lisp/subr.el (with-output-to-temp-buffer): Provide an edebug spec.
      * lisp/international/ccl.el (ccl-compile): Trivial simplification.
      * lisp/help-fns.el (help-do-arg-highlight): Silence compiler warning.
      * lisp/emacs-lisp/testcover.el (testcover-end): Remove spurious
      `printflag' argument.
      * lisp/emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable):
      Purecopy the whole obsolescence data.
      2462470b
  14. 31 May, 2011 1 commit
  15. 28 May, 2011 1 commit
  16. 28 Apr, 2011 1 commit
    • Juanma Barranquero's avatar
      Add delayed warnings support. · 638f053a
      Juanma Barranquero authored
      * etc/NEWS: Document `delayed-warnings-list' and `delayed-warnings-hook'.
      
      * lisp/subr.el (display-delayed-warnings): New function.
        (delayed-warnings-hook): New variable.
      
      * src/keyboard.c (Qdelayed_warnings_hook): Define.
        (command_loop_1): Run `delayed-warnings-hook' if Vdelayed_warnings_list
        is non-nil.
        (syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
        (syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
      638f053a
  17. 27 Apr, 2011 1 commit
  18. 26 Apr, 2011 1 commit
  19. 19 Apr, 2011 1 commit
  20. 02 Apr, 2011 1 commit
    • Chong Yidong's avatar
      Merge open-protocol-stream into open-network-stream. · da91b5f2
      Chong Yidong authored
      * lisp/subr.el (open-network-stream): Move to net/network-stream.el.
      
      * lisp/gnus/proto-stream.el: Move to net/network-stream.el.
      
      * lisp/net/network-stream.el: Move from gnus/proto-stream.el.
      Change prefix to network-stream throughout.
      (open-protocol-stream): Merge into open-network-stream, leaving
      open-protocol-stream as an alias.  Handle nil BUFFER args.
      
      * lisp/gnus/nnimap.el (nnimap-open-connection-1): Pass explicit :end-of-command
      parameter to open-protocol-stream.
      
      * lisp/emacs-lisp/package.el (package--with-work-buffer): Recognize
      https URLs.
      
      * lisp/url/url-gw.el (url-open-stream): Use new open-network-stream
      functionality to perform encryption.
      da91b5f2
  21. 30 Mar, 2011 2 commits
  22. 21 Mar, 2011 1 commit
  23. 16 Mar, 2011 1 commit
    • Stefan Monnier's avatar
      Remove bytecomp- prefix, plus misc changes. · ca105506
      Stefan Monnier authored
      * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Make it work to
      inline lexbind interpreted functions into lexbind code.
      (bytedecomp-bytes): Not a dynamic var any more.
      (disassemble-offset): Get the bytes via an argument instead.
      (byte-decompile-bytecode-1): Use push.
      * lisp/emacs-lisp/bytecomp.el: Remove the bytecomp- prefix now that we use
      lexical-binding.
      (byte-compile-outbuffer): Rename from bytecomp-outbuffer.
      * lisp/emacs-lisp/cl-macs.el (load-time-value):
      * lisp/emacs-lisp/cl.el (cl-compiling-file): Adjust to new name.
      * lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates):
      Add byte-code-function-p.
      (pcase--u1): Remove left-over code from early development.
      Fix case of variable shadowing in guards and predicates.
      (pcase--u1): Add a new `let' pattern.
      * src/image.c (parse_image_spec): Use Ffunctionp.
      * src/lisp.h: Declare Ffunctionp.
      ca105506
  24. 15 Mar, 2011 1 commit
  25. 13 Mar, 2011 1 commit
    • Stefan Monnier's avatar
      * src/eval.c (Ffunction): Use simpler format for closures. · 23aba0ea
      Stefan Monnier authored
      (Fcommandp, funcall_lambda):
      * src/doc.c (Fdocumentation, store_function_docstring):
      * src/data.c (Finteractive_form):
      * lisp/help-fns.el (help-function-arglist):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn):
      * lisp/subr.el (apply-partially): Adjust to new closure format.
      * lisp/emacs-lisp/disass.el (disassemble-internal): Catch closures.
      23aba0ea
  26. 12 Mar, 2011 1 commit
    • Stefan Monnier's avatar
      Try and fix w32 build; misc cleanup. · 2ec42da9
      Stefan Monnier authored
      * lisp/subr.el (apply-partially): Move from subr.el; don't use lexical-let.
      (eval-after-load): Obey lexical-binding.
      * lisp/simple.el (apply-partially): Move to subr.el.
      * lisp/makefile.w32-in: Match changes in Makefile.in.
      (BIG_STACK_DEPTH, BIG_STACK_OPTS, BYTE_COMPILE_FLAGS): New vars.
      (.el.elc, compile-CMD, compile-SH, compile-always-CMD)
      (compile-always-SH, compile-calc-CMD, compile-calc-SH): Use them.
      (COMPILE_FIRST): Add pcase, macroexp, and cconv.
      * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Silence warning about
      calling CL's `compiler-macroexpand'.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-preprocess): New function.
      (byte-compile-initial-macro-environment)
      (byte-compile-toplevel-file-form, byte-compile, byte-compile-sexp): Use it.
      (byte-compile-eval, byte-compile-eval-before-compile): Obey lexical-binding.
      (byte-compile--for-effect): Rename from `for-effect'.
      (display-call-tree): Use case.
      * lisp/emacs-lisp/byte-opt.el (for-effect): Don't declare as dynamic.
      (byte-optimize-form-code-walker, byte-optimize-form):
      Revert to old arg name.
      * lisp/Makefile.in (BYTE_COMPILE_FLAGS): New var.
      (compile-onefile, .el.elc, compile-calc, recompile): Use it.
      2ec42da9
  27. 11 Mar, 2011 1 commit
    • Stefan Monnier's avatar
      Misc fixes, and use lexical-binding in more files. · ba83908c
      Stefan Monnier authored
      * lisp/subr.el (letrec): New macro.
      (with-wrapper-hook): Move from lisp/simple.el and don't use CL.
      * simple.el (with-wrapper-hook): Move with-wrapper-hook to subr.el.
      * lisp/help-fns.el (help-function-arglist): Handle subroutines as well.
      (describe-variable): Use special-variable-p to filter completions.
      * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Don't expand `declare'
      in defmacros.
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form):
      Handle `declare'.
      * lisp/emacs-lisp/cl.el (pushnew): Silence unfixable warning.
      * lisp/emacs-lisp/cl-macs.el (defstruct, define-compiler-macro):
      Mark unused arg as unused.
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Use memq.
      * lisp/emacs-lisp/autoload.el (make-autoload): Don't assume the macro's
      first sexp is a list.
      (autoload-generate-file-autoloads): Improve error message.
      * lisp/emacs-lisp/advice.el (ad-arglist): Use help-function-arglist
      to understand the new byte-code arg format.
      * lisp/vc/smerge-mode.el:
      * lisp/vc/log-view.el:
      * lisp/vc/log-edit.el:
      * lisp/vc/cvs-status.el:
      * lisp/uniquify.el:
      * lisp/textmodes/css-mode.el:
      * lisp/textmodes/bibtex-style.el:
      * lisp/reveal.el:
      * lisp/newcomment.el:
      * lisp/emacs-lisp/smie.el:
      * lisp/abbrev.el: Use lexical-binding.
      * src/eval.c (Fprog1, Fprog2): Simplify and use XCDR/XCAR.
      (Fdefvar): Remove redundant SYMBOLP check.
      (Ffunctionp): Don't signal an error for undefined aliases.
      * doc/lispref/variables.texi (Converting to Lexical Binding): New node.
      ba83908c
  28. 10 Mar, 2011 1 commit
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/bytecomp.el: Use lexical-binding. · 9ace101c
      Stefan Monnier authored
      (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.
      9ace101c
  29. 21 Feb, 2011 1 commit
    • Stefan Monnier's avatar
      Use offsets relative to top rather than bottom for stack refs · 3e21b6a7
      Stefan Monnier authored
      * lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-and-error-free-ops):
      Remove interactive-p.
      (byte-optimize-lapcode): Update optimizations now that stack-refs are
      relative to the top rather than to the bottom.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode):
      Turn stack-ref-0 into dup.
      (byte-compile-form): Don't indirect-function since it can signal
      errors.
      (byte-compile-stack-ref, byte-compile-stack-set): Adjust to stack-refs
      being relative to top rather than to bottom in the byte-code.
      (with-output-to-temp-buffer): Remove.
      (byte-compile-with-output-to-temp-buffer): Remove.
      * lisp/emacs-lisp/cconv.el: Use lexical-binding.
      (cconv--lookup-let): Rename from cconv-lookup-let.
      (cconv-closure-convert-rec): Fix handling of captured+mutated
      arguments in defun/defmacro.
      * lisp/emacs-lisp/eieio-comp.el (eieio-byte-compile-file-form-defmethod):
      Rename from byte-compile-file-form-defmethod.
      Don't byte-compile-lambda.
      (eieio-byte-compile-defmethod-param-convert): Rename from
      byte-compile-defmethod-param-convert.
      * lisp/emacs-lisp/eieio.el (eieio-defgeneric-form-primary-only-one):
      Call byte-compile rather than byte-compile-lambda.
      * src/alloc.c (Fgarbage_collect): Don't mark the byte-stack redundantly.
      * src/bytecode.c (exec_byte_code): Change stack_ref and stack_set to use
      offsets relative to top rather than to bottom.
      * lisp/subr.el (with-output-to-temp-buffer): New macro.
      * lisp/simple.el (count-words-region): Don't use interactive-p.
      3e21b6a7
  30. 19 Feb, 2011 1 commit
    • Stefan Monnier's avatar
      * lisp/subr.el (save-window-excursion): New macro, moved from C. · e0f57e65
      Stefan Monnier authored
      * lisp/emacs-lisp/lisp-mode.el (save-window-excursion): Don't touch.
      * lisp/emacs-lisp/cconv.el (cconv-closure-convert-rec, cconv-analyse-form):
      Don't handle save-window-excursion any more.
      * lisp/emacs-lisp/bytecomp.el (interactive-p, save-window-excursion):
      Don't use the byte-code any more.
      (byte-compile-form): Check macro expansion was done.
      (byte-compile-save-window-excursion): Remove.
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
      Ignore save-window-excursion.  Don't macroepand any more.
      
      * src/window.c (Fsave_window_excursion): Remove.  Moved to Lisp.
      (syms_of_window): Don't defsubr it.
      * src/window.h (Fsave_window_excursion): Don't declare it.
      * src/bytecode.c (exec_byte_code): Inline Fsave_window_excursion.
      e0f57e65
  31. 01 Feb, 2011 3 commits
  32. 25 Jan, 2011 1 commit
  33. 21 Jan, 2011 1 commit
  34. 20 Jan, 2011 1 commit
  35. 15 Jan, 2011 1 commit
    • Mark Diekhans's avatar
      Make last-resort backup file in .emacs.d (Bug#6953). · b024d9f0
      Mark Diekhans authored
      * lisp/files.el (backup-buffer): Make last-resort backup file in
      .emacs.d.
      
      * lisp/subr.el (locate-user-emacs-file): If .emacs.d does not exist,
      make it with permission 700.
      
      * doc/emacs/files.texi (Backup Names): Document the new location of the
      last-resort backup file.
      b024d9f0