1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-27 10:54:40 +00:00
Commit Graph

5295 Commits

Author SHA1 Message Date
Stefan Monnier
fd6fa53f88 * lisp/minibuffer.el (minibuffer-inactive-mode-map): New var.
(minibuffer-inactive-mode): New major mode.
* src/minibuf.c (get_minibuffer, read_minibuf_unwind): Call it.
* lisp/mouse.el (mouse-drag-region): Remove the "mouse-1 pops up
the *Messages* buffer" hack.
(mouse-popup-menubar): Don't burp if the event is a normal key.
2011-06-01 12:34:41 -03:00
Stefan Monnier
620c53a664 * lisp/minibuffer.el: Add metadata method to completion tables.
(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.
2011-05-31 00:03:38 -03:00
Chong Yidong
1dd3c2d9b2 Move clipboard-manager functionality out of hooks.
* 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.
2011-05-28 20:45:00 -04:00
Leo Liu
60e5652346 New major mode: Occur Edit mode.
* 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.
2011-05-28 18:56:14 -04:00
Glenn Morris
e145f1881a Make set-auto-mode respect mode: entries at the end of the file (bug#8586)
* 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.
2011-05-26 21:00:53 -04:00
Leo Liu
42d4bcc883 Mention function `sha1' and the removal of sha1.el in NEWS 2011-05-24 22:22:44 +08:00
Stefan Monnier
a2a25d2435 Add an :exit-function for completion-at-point.
* 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.
2011-05-23 23:45:50 -03:00
Glenn Morris
c136e5cdf2 Remove lib-src/fakemail.c.
* 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.
2011-05-17 20:39:45 -07:00
Glenn Morris
e565dd3789 Rationalize calendar handling of day and month abbrev-arrays.
* 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.
2011-05-17 20:20:13 -07:00
Mohsen BANAN
d0ce9f8c0c New input methods for Persian/Farsi.
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.
2011-05-16 14:27:34 +03:00
Ulf Jasper
bcfcf8a525 newsticker: Added README to etc/newsticker/images
etc/ChangeLog:

2011-05-14  Ulf Jasper  <ulf.jasper@web.de>

	* images/newsticker/README: Added.
2011-05-14 20:39:26 +02:00
Ulf Jasper
42c7e61e88 newsticker: Moved icons to etc/newsticker/images
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.
2011-05-13 21:06:36 +02:00
Glenn Morris
79b70037f6 Put ChangeLog entries in the correct files. 2011-05-12 09:30:17 -07:00
U. Ser
9b053e766d fix many doubled-word typos 2011-05-10 15:57:12 +02:00
Glenn Morris
b8f82dc15f Deprecate using "mode:" to enable minor modes (bug#8613)
* 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:".
2011-05-09 19:31:42 -07:00
Chong Yidong
f104c116dc Fix last change. 2011-05-08 21:25:35 -04:00
Chong Yidong
3a648237a4 Doc fix to compilation.txt. 2011-05-08 21:24:57 -04:00
Chong Yidong
d9c54a06a0 Perform grep-mode's buffer modifications in a process filter (Bug#7952)
* 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.
2011-05-08 01:17:17 -04:00
Michael Albinus
58f74fe408 New default value of `ange-ftp-binary-file-name-regexp'. 2011-05-07 09:45:35 +02:00
Glenn Morris
d306b4daa5 * doc/emacs/cal-xtra.texi (Sexp Diary Entries): Mention diary-hebrew-birthday. 2011-05-06 18:22:01 -07:00
Glenn Morris
5006e6344a Allow per-appointment warning times.
* 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.
2011-05-06 00:14:30 -07:00
Glenn Morris
548d0a63d6 Add diary comments feature.
* 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.
2011-05-05 21:28:53 -07:00
Glenn Morris
f7ff1b0f07 Merge from emacs-23; up to 2010-06-10T05:17:21Z!rgm@gnu.org. 2011-05-04 21:00:38 -07:00
Leo Liu
256661260d New command isearch-yank-pop and bind it to `M-y' in Isearch 2011-05-03 11:34:26 +08:00
Ted Zlatanov
e2574f2c8e Document new GnuTLS additions for general and W32 use.
* NEWS: Mention new library gnutls.el and explain GnuTLS
functionality.  Mention new configure.bat options --without-gnutls
and --lib for W32.
2011-05-02 19:48:07 -05:00
Lars Magne Ingebrigtsen
7deebf1b71 * NEWS: Mention url-retrieve-queue', (:file "file") and server-eval-at'. 2011-05-03 00:53:34 +02:00
Eli Zaretskii
9bb095f46e etc/NEWS: Separate post-23.3 entries. 2011-04-29 17:27:57 +03:00
Eli Zaretskii
fab624aa3a Allow the Windows build to use upto 2GB of heap.
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.
2011-04-29 17:23:44 +03:00
Juanma Barranquero
71edd0ec3d etc/NEWS: Document new "default HOME" warning. 2011-04-29 00:48:58 +02:00
Juanma Barranquero
638f053a0e Add delayed warnings support.
* 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.
2011-04-28 21:35:20 +02:00
Juanma Barranquero
f042970d4c etc/NEWS: Fix typos. 2011-04-28 21:07:08 +02:00
Juanma Barranquero
bd0d2ee233 Fix typos in ChangeLogs. 2011-04-26 16:07:29 +02:00
Daniel Colascione
0438ce915d Implement debug-on-event 2011-04-26 04:26:05 -07:00
Eli Zaretskii
fa6996bcd4 Delete char-direction-table and char-direction.
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.
2011-04-24 10:11:56 +03:00
Glenn Morris
3553ba549b Revert incorrect change to copyright years. 2011-04-22 19:15:03 -07:00
Noah Friedman
c243bc792c Add trailing underscores to appropriate member names, per change 2011-02-14T15:39:19Z!tromey@redhat.com of src/lisp.h. 2011-04-22 16:29:02 -07:00
Stefan Monnier
c0a193ea20 * lisp/shell.el: Use lexical-binding and std completion UI.
(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.
2011-04-20 19:31:06 -03:00
Christoph Scholtes
1c6c854ec7 * lisp/vc/vc.el (vc-diff-build-argument-list-internal)
(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'.
2011-04-20 14:33:09 -03:00
Chong Yidong
16a43933e8 Allow glyphless-char-display to distinguish between X and text terminals.
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.
2011-04-18 19:21:31 -04:00
Glenn Morris
14964899b3 * etc/CONTRIBUTE: Recommend bug-gnu-emacs for patches. 2011-04-16 19:30:56 -07:00
Glenn Morris
f5b06c3546 ImageMagick fix for bug#7955.
* configure.in: Require ImageMagick >= 6.2.8.  (Bug#7955)

* etc/NEWS: Mention ImageMagick version.
2011-04-11 20:55:07 -07:00
Chong Yidong
6b8bc57071 Merge changes from emacs-23 branch 2011-04-08 14:53:26 -04:00
Chong Yidong
a83ec3c99a * lisp/emacs-lisp/tabulated-list.el: New file. 2011-04-06 16:10:51 -04:00
Juanma Barranquero
3e214b503e New variable `revert-buffer-in-progress-p'.
* 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'.
2011-04-06 21:38:46 +02:00
Juanma Barranquero
3338398778 Update and split ChangeLogs. 2011-04-06 14:18:10 +02:00
Chong Yidong
104c2fe905 Fix missing NEWS subentry (Bug#8400). 2011-04-02 20:40:35 -04:00
Chong Yidong
da91b5f294 Merge open-protocol-stream into open-network-stream.
* 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.
2011-04-02 19:41:03 -04:00
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
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