aboutsummaryrefslogtreecommitdiffstats
path: root/etc (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | | * lisp/minibuffer.el: Add metadata method to completion tables.Stefan Monnier2011-05-311-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (completion-category-overrides): New defcustom. (completion-metadata, completion--field-metadata) (completion-metadata-get, completion--styles) (completion--cycle-threshold): New functions. (completion-try-completion, completion-all-completions): Add `metadata' argument to choose completion-styles. (completion--do-completion): Use metadata to choose cycling. (completion-all-sorted-completions): Use metadata for sorting. Remove :completion-cycle-penalty which is not needed any more. (completion--try-word-completion): Add `metadata' argument. (minibuffer-completion-help): Check metadata for annotation function and sorting. (completion-file-name-table): Return `category' metadata. (minibuffer-completing-file-name): Make obsolete. * lisp/simple.el (minibuffer-completing-symbol): Make obsolete. * lisp/icomplete.el (icomplete-completions): Pass new `metadata' param to completion-try-completion. * src/minibuf.c (Finternal_complete_buffer): Return `category' metadata. (read_minibuf): Use get_minibuffer. (syms_of_minibuf): Use DEFSYM. (Qmetadata): New var. * src/data.c (Qbuffer): Don't make it static. (syms_of_data): Use DEFSYM.
* | | Move clipboard-manager functionality out of hooks.Chong Yidong2011-05-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/select.el: Don't perform clipboard-manager saving in hooks; leave the hooks empty. * src/emacs.c (Fkill_emacs): Call x_clipboard_manager_save_all. * src/frame.c (delete_frame): Call x_clipboard_manager_save_frame. * src/xselect.c (x_clipboard_manager_save_frame) (x_clipboard_manager_save_all): New functions. (Fx_clipboard_manager_save): Lisp function deleted. * src/xterm.h: Update prototype.
* | | New major mode: Occur Edit mode.Leo Liu2011-05-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/replace.el (occur-menu-map, occur-edit-mode-map): New vars. (occur-mode-map): Bind occur-edit-mode. Use occur-menu-map. (occur-edit-mode): New major mode (Bug#8463). (occur-after-change-function): New function. (occur-engine): Give Occur tags a read-only property.
* | | Make set-auto-mode respect mode: entries at the end of the file (bug#8586)Glenn Morris2011-05-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/files.el (set-auto-mode): Also respect mode: entries at the end of the file. * doc/lispref/modes.texi (Auto Major Mode): Update for set-auto-mode changes. * doc/emacs/custom.texi (Specifying File Variables): Major modes no longer need come first. * etc/NEWS: Mention this.
* | | Mention function `sha1' and the removal of sha1.el in NEWSLeo Liu2011-05-242-0/+8
| | |
* | | Add an :exit-function for completion-at-point.Stefan Monnier2011-05-231-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/minibuffer.el (completion--done): New fun. (completion--do-completion): Use it. New arg `expect-exact'. (minibuffer-complete, minibuffer-complete-word): Don't output message, since completion--do-completion does it for us now. (minibuffer-force-complete): Use completion--done and completion--replace. Handle sole-completion case with more care. (minibuffer-complete-and-exit): Use new `expect-exact' arg. (completion-extra-properties): New var. (completion-annotate-function): Make obsolete. (minibuffer-completion-help): Adjust accordingly. Use completion-list-insert-choice-function. (completion-at-point, completion-help-at-point): Bind completion-extra-properties. (completion-pcm-word-delimiters): Add | (for uniquify, for example). * lisp/simple.el (completion-list-insert-choice-function): New var. (completion-setup-function): Preserve it. (choose-completion): Pay attention to it, shuffle the code a bit. (choose-completion-string): New arg `insert-function'. * lisp/textmodes/bibtex.el: Convert to lexical binding. (bibtex-mode-map): Use completion-at-point. (bibtex-mode): Use define-derived-mode&completion-at-point-functions. (bibtex-completion-at-point-function): New fun, from bibtex-complete. (bibtex-complete): Define as obsolete alias. (bibtex-complete-internal): Remove. (bibtex-format-entry): Remove unused sub-group in regexp. * lisp/shell.el (shell--command-completion-data) (shell-environment-variable-completion): * lisp/pcomplete.el (pcomplete-completions-at-point): * lisp/comint.el (comint--complete-file-name-data): Use :exit-function instead of completion-table-with-terminator so it also works for choose-completion.
* | | Remove lib-src/fakemail.c.Glenn Morris2011-05-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lib-src/fakemail.c: Remove file. * lib-src/Makefile.in (UTILITIES): Remove fakemail${EXEEXT}. (fakemail${EXEEXT}): Remove rule. * lib-src/makefile.w32-in ($(BLD)/fakemail.exe, fakemail) ($(BLD)/fakemail.$(O)): Remove. * lisp/mail/sendmail.el (sendmail-program): Fall back to just "sendmail". * lisp/mail/feedmail.el: Update commentary. * doc/emacs/ack.texi (Acknowledgments): Remove fakemail.c. * etc/NEWS: Mention this. * INSTALL: Remove fakemail.
* | | Rationalize calendar handling of day and month abbrev-arrays.Glenn Morris2011-05-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/calendar/calendar.el (calendar-customized-p): New function. (calendar-abbrev-construct, calendar-make-alist): Change what it does. (calendar-day-name-array, calendar-month-name-array): Doc fix. Add :set function. (calendar-abbrev-length, calendar-day-abbrev-array) (calendar-month-abbrev-array): Make defcustoms, with appropriate :set. (calendar-day-abbrev-array, calendar-month-abbrev-array): Elements may no longer be nil. (calendar-day-name, calendar-month-name): Update for changed nature of abbrev arrays. * calendar/diary-lib.el (diary-name-pattern): Update for changed nature of abbrev arrays. (diary-mark-entries-1): Update calendar-make-alist calls. (diary-font-lock-date-forms): Doc fix for changed abbrev arrays. * calendar/cal-html.el (cal-html-day-abbrev-array): Simply inherit from calendar-day-abbrev-array. * etc/NEWS: Mention this.
* | | New input methods for Persian/Farsi.Mohsen BANAN2011-05-161-13/+17
| | | | | | | | | | | | | | | | | | | | | leim/quail/persian.el: New file. leim/Makefile.in (OTHERS): Add $(srcdir)/quail/georgian.elc. leim/makefile.w32-in (MISC): Add $(srcdir)/quail/georgian.elc. etc/NEWS: Mention the new input methods.
* | | newsticker: Added README to etc/newsticker/imagesUlf Jasper2011-05-142-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | etc/ChangeLog: 2011-05-14 Ulf Jasper <ulf.jasper@web.de> * images/newsticker/README: Added.
* | | newsticker: Moved icons to etc/newsticker/imagesUlf Jasper2011-05-1311-0/+805
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lisp/ChangeLog: 2011-05-13 Ulf Jasper <ulf.jasper@web.de> * net/newst-treeview.el (newsticker-treeview-face): Changed default family from helvetica to sans. (newsticker-treeview-tool-bar-map): Moved tool-bar icons to etc/images/newsticker. * net/newst-reader.el (newsticker-feed-face): Changed default family from helvetica to sans. * net/newst-plainview.el (newsticker-new-item-face) (newsticker-old-item-face, newsticker-immortal-item-face) (newsticker-obsolete-item-face, newsticker-date-face) (newsticker-statistics-face): Changed default family from helvetica to sans. (newsticker--plainview-tool-bar-map): Moved tool-bar icons to etc/images/newsticker. * net/newst-backend.el (newsticker--do-run-auto-mark-filter), (newsticker--process-auto-mark-filter-match): : Tell user about auto-marking. etc/ChangeLog: 2011-05-13 Ulf Jasper <ulf.jasper@web.de> * images/newsticker: Added. * images/newsticker/browse-url.xpm: Added. * images/newsticker/get-all.xpm: Added. * images/newsticker/mark-immortal.xpm: Added. * images/newsticker/mark-read.xpm: Added. * images/newsticker/narrow.xpm: Added. * images/newsticker/next-feed.xpm: Added. * images/newsticker/next-item.xpm: Added. * images/newsticker/prev-feed.xpm: Added. * images/newsticker/prev-item.xpm: Added. * images/newsticker/update.xpm: Added.
* | | Put ChangeLog entries in the correct files.Glenn Morris2011-05-121-0/+4
| | |
* | | fix many doubled-word typosU. Ser2011-05-102-2/+2
|/ /
* | Deprecate using "mode:" to enable minor modes (bug#8613)Glenn Morris2011-05-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/files.el (hack-one-local-variable-eval-safep): Consider "eval: (foo-mode)" to be safe. * doc/emacs/custom.texi (Specifying File Variables): Deprecate using mode: for minor modes. * etc/NEWS: Mention this. * lisp/doc-view.el, lisp/net/soap-client.el: Change "mode:" minor-mode file local variables to use "eval:".
* | Fix last change.Chong Yidong2011-05-081-1/+1
| |
* | Doc fix to compilation.txt.Chong Yidong2011-05-081-3/+3
| |
* | Perform grep-mode's buffer modifications in a process filter (Bug#7952)Chong Yidong2011-05-081-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | * progmodes/grep.el (grep-mode-font-lock-keywords): Remove buffer-changing entries. (grep-filter): New function. (grep-mode): Add it to compilation-filter-hook. * progmodes/compile.el (compilation-filter-hook) (compilation-filter-start): New defvars. (compilation-filter): Call compilation-filter-hook prior to updating the process mark.
* | New default value of `ange-ftp-binary-file-name-regexp'.Michael Albinus2011-05-071-0/+3
| |
* | * doc/emacs/cal-xtra.texi (Sexp Diary Entries): Mention diary-hebrew-birthday.Glenn Morris2011-05-061-0/+1
| |
* | Allow per-appointment warning times.Glenn Morris2011-05-061-0/+4
| | | | | | | | | | | | | | | | | | | | * lisp/calendar/appt.el (appt-message-warning-time): Doc fix. (appt-warning-time-regexp): New option. (appt-make-list): Respect appt-message-warning-time. * doc/emacs/calendar.texi (Appointments): Mention appt-warning-time-regexp. * etc/NEWS: Mention this.
* | Add diary comments feature.Glenn Morris2011-05-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | * lisp/calendar/diary-lib.el (diary-comment-start, diary-comment-end): New options. (diary-add-to-list): Strip comments from the displayed string. (diary-mode): Set comment-start and comment-end. * doc/emacs/cal-xtra.texi (Fancy Diary Display): Mention diary comments. * etc/NEWS: Mention this.
* | Merge from emacs-23; up to 2010-06-10T05:17:21Z!rgm@gnu.org.Glenn Morris2011-05-041-5/+16
|\ \ | |/
| * etc/NEWS: Separate post-23.3 entries.Eli Zaretskii2011-04-291-10/+16
| |
| * Allow the Windows build to use upto 2GB of heap.Eli Zaretskii2011-04-291-0/+5
| | | | | | | | | | | | src/w32heap.c (allocate_heap) [USE_LISP_UNION_TYPE || USE_LSB_TAG]: New version that can reserve upto 2GB of heap space. etc/NEWS: Mention the new feature.
* | New command isearch-yank-pop and bind it to `M-y' in IsearchLeo Liu2011-05-032-0/+8
| |
* | Document new GnuTLS additions for general and W32 use.Ted Zlatanov2011-05-022-1/+27
| | | | | | | | | | | | * NEWS: Mention new library gnutls.el and explain GnuTLS functionality. Mention new configure.bat options --without-gnutls and --lib for W32.
* | * NEWS: Mention `url-retrieve-queue', (:file "file") and `server-eval-at'.Lars Magne Ingebrigtsen2011-05-032-0/+14
| |
* | etc/NEWS: Document new "default HOME" warning.Juanma Barranquero2011-04-292-1/+3
| |
* | Add delayed warnings support.Juanma Barranquero2011-04-282-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | etc/NEWS: Fix typos.Juanma Barranquero2011-04-281-5/+5
| |
* | Fix typos in ChangeLogs.Juanma Barranquero2011-04-261-1/+1
| |
* | Implement debug-on-eventDaniel Colascione2011-04-262-0/+10
| |
* | Delete char-direction-table and char-direction.Eli Zaretskii2011-04-241-1/+8
| | | | | | | | | | | | | | | | | | | | See http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00675.html for the reasons. src/character.c (Fchar_direction): Function deleted. (syms_of_character): Don't defsubr it. <char-direction-table>: Deleted. etc/NEWS: Document the removal.
* | Revert incorrect change to copyright years.Glenn Morris2011-04-221-1/+1
| |
* | Add trailing underscores to appropriate member names, per change ↵Noah Friedman2011-04-222-12/+17
| | | | | | | | 2011-02-14T15:39:19Z!tromey@redhat.com of src/lisp.h.
* | * lisp/shell.el: Use lexical-binding and std completion UI.Stefan Monnier2011-04-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (shell-filter-ctrl-a-ctrl-b): Work as a preoutput filter. (shell-mode): Put shell-filter-ctrl-a-ctrl-b on comint-preoutput-filter-functions rather than on comint-output-filter-functions. (shell-command-completion, shell--command-completion-data) (shell-filename-completion, shell-environment-variable-completion) (shell-c-a-p-replace-by-expanded-directory): New functions. (shell-dynamic-complete-functions, shell-dynamic-complete-command) (shell-dynamic-complete-filename, shell-replace-by-expanded-directory) (shell-dynamic-complete-environment-variable): Use them. (shell-dynamic-complete-as-environment-variable) (shell-dynamic-complete-as-command): Remove. (shell-match-partial-variable): Match past point. * lisp/comint.el: Clean up use of completion-at-point-functions. (comint-completion-at-point): New function. (comint-mode): Use it completion-at-point-functions. (comint-dynamic-complete): Make it obsolete. (comint-replace-by-expanded-history-before-point): Add dry-run arg. (comint-c-a-p-replace-by-expanded-history): New function. (comint-dynamic-complete-functions) (comint-replace-by-expanded-history): Use it. * lisp/minibuffer.el (completion-table-with-terminator): Allow dynamic termination strings. Try harder to avoid second try-completion. (completion-in-region-mode-map): Disable bindings that don't work yet.
* | * lisp/vc/vc.el (vc-diff-build-argument-list-internal)Christoph Scholtes2011-04-202-0/+7
| | | | | | | | | | | | | | | | (vc-version-ediff, vc-ediff): New functions. (vc-version-diff): Use vc-diff-build-argument-list-internal. * doc/emacs/maintaining.texi (Old Revisions): Add paragraph on new function vc-ediff. * etc/NEWS: Document new function `vc-ediff'.
* | Allow glyphless-char-display to distinguish between X and text terminals.Chong Yidong2011-04-181-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use this for Tabulated List mode. * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Use a custom glyphless-char-display table. (tabulated-list-glyphless-char-display): New var. * src/term.c (produce_glyphless_glyph): Handle cons cell entry in glyphless-char-display. * src/xdisp.c (lookup_glyphless_char_display) (produce_glyphless_glyph): Handle cons cell entry in glyphless-char-display. (Vglyphless_char_display): Document it.
* | * etc/CONTRIBUTE: Recommend bug-gnu-emacs for patches.Glenn Morris2011-04-161-8/+11
| |
* | ImageMagick fix for bug#7955.Glenn Morris2011-04-111-2/+4
| | | | | | | | | | | | * configure.in: Require ImageMagick >= 6.2.8. (Bug#7955) * etc/NEWS: Mention ImageMagick version.
* | Merge changes from emacs-23 branchChong Yidong2011-04-081-0/+7
|\ \ | |/
| * etc/NEWS: libpng 1.14+ is now preferred for MS-Windows. (Bug#8324)Eli Zaretskii2011-03-231-0/+7
| |
| * Revert 2010-05-25T15:54:53Z!juri@jurta.org; regenerate release logs.Chong Yidong2011-03-071-1/+1
| | | | | | | | | | * lisp/progmodes/cc-cmds.el (c-beginning-of-statement): Revert 2011-01-31 change.
| * Release logs for 23.3 release.Chong Yidong2011-02-282-7/+11
| | | | | | | | Regenerate configure and other release files.
* | * lisp/emacs-lisp/tabulated-list.el: New file.Chong Yidong2011-04-061-0/+3
| |
* | New variable `revert-buffer-in-progress-p'.Juanma Barranquero2011-04-062-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/files.el (after-find-file-from-revert-buffer): Remove variable. (after-find-file): Dont' bind it. (revert-buffer-in-progress-p): New variable. (revert-buffer): Bind it. Pass nil for `after-find-file-from-revert-buffer'. * lisp/saveplace.el (save-place-find-file-hook): Use new variable `rever-buffer-in-progress-p', not `after-find-file-from-revert-buffer'. * etc/NEWS: New variable `revert-buffer-in-progress-p'.
* | Update and split ChangeLogs.Juanma Barranquero2011-04-061-0/+4
| |
* | Fix missing NEWS subentry (Bug#8400).Chong Yidong2011-04-021-0/+1
| |
* | Merge open-protocol-stream into open-network-stream.Chong Yidong2011-04-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | Merge from lexical-binding branch.Stefan Monnier2011-04-011-0/+16
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.