Stefan Monnier [Fri, 8 Jun 2012 02:54:35 +0000 (22:54 -0400)]
Get rid of cl-lexical-let, keeping only lexical-let for compatibility.
* lisp/emacs-lisp/cl-macs.el: Provide itself.
(cl--labels-convert-cache): New var.
(cl--labels-convert): New function.
(cl-flet, cl-labels): New implementation with new semantics, relying on
lexical-binding.
* lisp/emacs-lisp/cl.el: Mark compatibility aliases as obsolete.
(cl-closure-vars, cl--function-convert-cache)
(cl--function-convert): Move from cl-macs.el.
(lexical-let, lexical-let*, flet, labels): Move from cl-macs.el and
rename by removing the "cl-" prefix.
* lisp/emacs-lisp/macroexp.el (macroexp-unprogn): New function.
Stefan Monnier [Thu, 7 Jun 2012 19:48:22 +0000 (15:48 -0400)]
Move old compatiblity to cl.el. Remove cl-macroexpand-all.
* emacs-lisp/cl-extra.el (cl-map-keymap, cl-copy-tree)
(cl-not-hash-table, cl-builtin-gethash, cl-builtin-remhash)
(cl-builtin-clrhash, cl-builtin-maphash, cl-gethash, cl-puthash)
(cl-remhash, cl-clrhash, cl-maphash, cl-make-hash-table)
(cl-hash-table-p, cl-hash-table-count): Move to cl.el.
(cl-macroexpand-cmacs): Remove var.
(cl-macroexpand-all, cl-macroexpand-body): Remove funs.
Use macroexpand-all instead.
* emacs-lisp/cl-lib.el (cl-macro-environment): Remove decl.
(cl-macroexpand): Move to cl-macs.el and rename to cl--sm-macroexpand.
(cl-member): Remove old alias.
* emacs-lisp/cl-macs.el (cl-macro-environment): Remove var.
Use macroexpand-all-environment instead.
(cl--old-macroexpand): New var.
(cl--sm-macroexpand): New function.
(cl-symbol-macrolet): Use it during macro expansion.
(cl--function-convert-cache): New var.
(cl--function-convert): New function, extracted from
cl-macroexpand-all.
(cl-lexical-let): Use it.
Stefan Monnier [Thu, 7 Jun 2012 19:25:48 +0000 (15:25 -0400)]
Cleanup cl-macs namespace. Add macro helpers in macroexp.el.
* emacs-lisp/macroexp.el (macroexp-progn, macroexp-let*, macroexp-if)
(macroexp-let², macroexp--const-symbol-p, macroexp-const-p)
(macroexp-copyable-p): New functions and macros.
* emacs-lisp/edebug.el (edebug-unwrap):
* emacs-lisp/disass.el (disassemble-internal): Use macroexp-progn.
* emacs-lisp/pcase.el: Use macroexp-let*, macroexp-if, ...
(pcase--let*): Remove.
* emacs-lisp/bytecomp.el (byte-compile-const-symbol-p)
(byte-compile-constp): Remove. Use macroexp--const-symbol-p and
macroexp-const-p instead.
* emacs-lisp/byte-opt.el: Use macroexp-const-p and macroexp-progn.
* emacs-lisp/cl-macs.el: Clean up the name space by using "cl--"
instead of "cl-" for internal definitions. Use macroexp-const-p.
(cl-old-bc-file-form): Remove var.
(cl-const-exprs-p): Remove fun.
(cl-labels, cl-macrolet): Use backquote.
(cl-lexical-let): Use cl-symbol-macrolet. Don't use cl-defun-expander.
(cl-defun-expander, cl-byte-compile-compiler-macro): Remove fun.
(cl-define-setf-expander): Rename from cl-define-setf-method.
* emacs-lisp/cl.el: Adjust alias for define-setf-method.
* international/mule-cmds.el: Don't require CL.
(view-hello-file): Don't use `letf'.
Stefan Merten [Thu, 7 Jun 2012 09:20:41 +0000 (11:20 +0200)]
* rst.el: Use `eval-when-compile' for requiring
`cl.el'. Silence compiler warnings. Fix versions.
(rst-position-if, rst-position, rst-some, rst-signum): New
functions.
(rst-shift-region, rst-adornment-level, rst-compute-tabs)
(rst-indent-line, rst-shift-region, rst-forward-line): Use new
functions.
(rst-package-emacs-version-alist): Correct Emacs version to
represent major merge with upstream.
(rst-transition, rst-adornment, rst-compile-toolsets): Fix
versions.
Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
would mishandle a string argument "Xc" if X was a multibyte
character of length 2: it would truncate after X's first byte
rather than including all of X.
Stefan Monnier [Wed, 6 Jun 2012 18:08:00 +0000 (14:08 -0400)]
* lisp/emacs-lisp/macroexp.el: Don't require CL since we don't use it.
(macroexp--cons): Rename from maybe-cons.
(macroexp--accumulate): Rename from macroexp-accumulate.
(macroexp--all-forms): Rename from macroexpand-all-forms.
(macroexp--all-clauses): Rename from macroexpand-all-clauses.
(macroexp--expand-all): Rename from macroexpand-all-1.
Glenn Morris [Wed, 6 Jun 2012 01:38:04 +0000 (21:38 -0400)]
Remove script stamping in lib-src/
rcs2log no longer needs it, and grep-changelog never really has
(nothing in Emacs runs that, I don't know why Emacs includes it, if you
are using an uninstalled out-of-tree build you can just as easily run
it from the source directory).
Glenn Morris [Wed, 6 Jun 2012 00:29:10 +0000 (20:29 -0400)]
Replace the last use of the external vcdiff script
* lisp/vc/vc-sccs.el (vc-sccs-write-revision): New function.
(vc-sccs-workfile-unchanged-p): Use vc-sccs-write-revision.
(vc-sccs-diff): Replace use of the external vcdiff script.
Martin Rudalics [Tue, 5 Jun 2012 09:11:06 +0000 (11:11 +0200)]
Clean up and simplify buffer display routines.
* window.el (get-lru-window, get-mru-window, get-largest-window):
New argument NOT-SELECTED to avoid picking the selected window.
(window--display-buffer-1, window--display-buffer-2): Replace by
new function window--display-buffer
(display-buffer-same-window, display-buffer-reuse-window)
(display-buffer-pop-up-frame, display-buffer-pop-up-window): Use
window--display-buffer.
(display-buffer-use-some-window): Remove temporary dedication
hack by calling get-lru-window and get-largest-window with
NOT-SELECTED argument non-nil. Call window--display-buffer.
Stefan Monnier [Mon, 4 Jun 2012 01:05:17 +0000 (21:05 -0400)]
* lisp/emacs-lisp/cl-lib.el: Rename from cl.el.
* lisp/emacs-lisp/cl.el: New compatibility file.
* emacs-lisp/cl-lib.el, lisp/emacs-lisp/cl-seq.el, lisp/emacs-lisp/cl-macs.el:
* lisp/emacs-lisp/cl-extra.el: Rename all top-level functions and variables
to obey the "cl-" prefix.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Adjust to new name.
Glenn Morris [Sun, 3 Jun 2012 23:49:12 +0000 (16:49 -0700)]
Remove lib-src/rcs-checkin
This script isn't used by Emacs, and I can't imagine anyone else is
using it any more either... From the commentary:
"This script is intended to be used to convert files with an
old-Emacs-style version history for use with VC (the Emacs 19
version-control interface), which likes to use RCS as its back end."
Ulrich Müller [Sun, 3 Jun 2012 23:14:22 +0000 (16:14 -0700)]
Workaround dumping problem on PaX-enabled Linux kernels
* configure.in (PAXCTL): Check for paxctl.
* src/Makefile.in (PAXCTL): Define.
(temacs$(EXEEXT)): Disable memory randomization for the temacs
binary via PaX flags if the paxctl utility is available.
(emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
Restore PaX flags to their default.
Chong Yidong [Sun, 3 Jun 2012 10:54:22 +0000 (18:54 +0800)]
Allow clicking mouse-3 on mode line to change coding system.
* lisp/bindings.el (mode-line-coding-system-map): Allow using mouse-3
to invoke set-buffer-file-coding-system.
(mode-line-mule-info-help-echo): Update help text.
Chong Yidong [Sun, 3 Jun 2012 10:23:49 +0000 (18:23 +0800)]
Make mode line help-echo visible for unibyte buffers.
* src/xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
buffer.
* lisp/bindings.el (mode-line-mule-info-help-echo)
(mode-line-read-only-help-echo, mode-line-modified-help-echo):
New functions.
(mode-line-mule-info, mode-line-modified): Use them.
(mode-line-eol-desc, propertized-buffer-identification):
Consistency fixes for help text.
Chong Yidong [Sun, 3 Jun 2012 09:03:23 +0000 (17:03 +0800)]
Implement default help-echo for mode line.
* lisp/bindings.el: Remove explicit help-echo from format-mode-line.
(mode-line-front-space, mode-line-end-spaces)
(mode-line-misc-info): New variables.
(mode-line-modes, mode-line-position): Move the default value to
the variable definition.
(mode-line-default-help-echo): New defcustom.
* src/buffer.c (buffer_local_value_1): New function, split from
Fbuffer_local_value; can return Qunbound.
(Fbuffer_local_value): Use it.
(Vmode_line_format): Docstring tweaks.
* src/xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
(note_mode_line_or_margin_highlight): If there is no help echo,
use mode-line-default-help-echo. Handle the case where the mouse
position is past the end of the mode line string.
* doc/lispref/modes.texi (Mode Line Data): Use "mode line construct"
terminology for consistency.
Stefan Monnier [Sat, 2 Jun 2012 19:21:34 +0000 (15:21 -0400)]
* lisp/simple.el (execute-extended-command): Set real-this-command.
* src/keyboard.c: Export real-this-command to Elisp.
(syms_of_keyboard): Rename real_this_command to Vreal_this_command
and DEFVAR it. Update all users.
* dired.el (dired-sort-set-mode-line): Rename from
dired-sort-set-modeline. All callers changed.
* foldout.el (foldout-mode-line-string): Rename from
foldout-modeline-string. All callers changed.
(foldout-update-mode-line): Rename from foldout-update-modeline.
* strokes.el (strokes-lighter): Rename from
strokes-modeline-string.
* subr.el (redraw-modeline): Make into obsolete alias.
* calendar/timeclock.el (timeclock-mode-line-display): Rename from
timeclock-modeline-display. Make old name an alias.
(timeclock-update-mode-line): Likewise. All callers changed.
(timeclock-mode-line-display): No need to check before using
add-hook.
(timeclock-relative, timeclock-day-over-hook)
(timeclock-use-elapsed, timeclock-mode-string)
(timeclock-mode-line-display): Doc fix, "modeline" -> "mode line".
* emulation/crisp.el (crisp-mode-mode-line-string): Rename from
crisp-mode-modeline-string.
* erc-track.el (erc-track, erc-track-faces-priority-list)
(erc-track-faces-normal-list, erc-track-find-face)
(erc-track-modified-channels): Fix modeline -> mode line in docs.
* eshell/esh-mode.el (eshell-status-in-mode-line): Rename from
eshell-status-in-modeline.
Chong Yidong [Sat, 2 Jun 2012 07:30:07 +0000 (15:30 +0800)]
Add more enabled ImageMagick types.
* lisp/image.el (imagemagick-enabled-types): Rename from
imagemagick-types-enable. Add many more types.
(imagemagick-types-inhibit): Change default to nil.
(imagemagick-filter-types): Caller changed.
Stefan Monnier [Fri, 1 Jun 2012 20:36:00 +0000 (16:36 -0400)]
* lisp/emacs-lisp/cl-macs.el: Use backquotes.
(cl-transform-function-property): Use eval-and-compile rather than
abusing `require'.
(defstruct): Use declare-function instead of with-no-warnings.
Stefan Monnier [Fri, 1 Jun 2012 20:24:17 +0000 (16:24 -0400)]
* lisp/gnus/nntp.el: Stop the `letf' madness.
(nntp--report-1): New var.
(nntp-report): Merge nntp-report-1 into it.
(nntp-with-open-group-function): Set nntp--report-1 instead of modifying
the nntp-report function.
Stefan Monnier [Fri, 1 Jun 2012 19:47:54 +0000 (15:47 -0400)]
* lisp/emacs-lisp/bytecomp.el: Fix last change.
(byte-compile-output-docform): Re-add the print-circle bindings.
(byte-compile-fix-header): Use #$ just because it's shorter.
(byte-compile-output-file-form): Remove defun/defmacro.
Paul Eggert [Fri, 1 Jun 2012 18:26:21 +0000 (11:26 -0700)]
Remove --disable-maintainer-mode option from 'configure'. (Bug#11555)
It is confusingly named and rarely useful. See, for example,
<http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00089.html>.
* INSTALL.BZR: Don't mention --disable-maintainer-mode.
* Makefile.in (MAINTAINER_MODE_FLAG): Remove; all uses removed.
* configure.in: Remove --disable-maintainer-mode.
(USE_MAINTAINER_MODE, MAINT): Remove.
* admin/make-tarball.txt: Don't worry about maintainer mode.
* etc/NEWS: Mention this.
Dmitry Antipov [Fri, 1 Jun 2012 03:41:03 +0000 (07:41 +0400)]
For a 'struct window', replace some Lisp_Object fields to
bitfields where appropriate, remove unused fields.
* window.h (struct window): Remove unused 'last_mark_x' and
'last_mark_y' fields. Rename 'mini_p' field to 'mini',
change it's type from Lisp_Object to bitfield.
Change type of 'force_start', 'optional_new_start',
'last_had_star', 'update_mode_line' and 'start_at_line_beg'
fields from Lisp_Object to bitfield. Adjust users accordingly.
Glenn Morris [Thu, 31 May 2012 07:22:33 +0000 (00:22 -0700)]
Add option imagemagick-types-enable
* lisp/image.el: For clarity, call imagemagick-register-types at
top-level, rather than relying on a custom :initialize.
(imagemagick-types-enable): New option.
(imagemagick-register-types): Respect imagemagick-types-inhibit.
If disabling support, remove elements altogether rather
than using an impossible regexp.
(imagemagick-types-inhibit): Give it the default init function.
Paul Eggert [Thu, 31 May 2012 06:51:43 +0000 (23:51 -0700)]
Pacify gcc -Wdouble-precision when using Xaw.
* xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
[HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
Use 'float' consistently, rather than 'float' in most places
and 'double' in a couple of places.
Paul Eggert [Thu, 31 May 2012 05:08:37 +0000 (22:08 -0700)]
Remove obsolete '#define static' cruft.
* etc/PROBLEMS: Remove obsolete '#define static' cruft.
* lwlib/xlwmenu.c [emacs]: Include "bitmaps/gray.xbm".
(gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits) [!emacs]:
Remove; all uses replaced with definiens.
* src/s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
This #undef was "temporary" in 2000; it is no longer needed
now that '#define static' has gone away.
* src/xfns.c, src/xterm.h (gray_bitmap_width, gray_bitmap_height)
(gray_bitmap_bits): Remove; no longer needed.
All uses replaced with definiens.
* src/xterm.c: Include "bitmaps/gray.xbm".
Stefan Monnier [Thu, 31 May 2012 01:41:17 +0000 (21:41 -0400)]
Add `declare' for `defun'. Align `defmacro's with it.
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
(define-globalized-minor-mode): Don't autoload the var definitions.
* lisp/emacs-lisp/byte-run.el: Use lexical-binding.
(defun-declarations-alist, macro-declarations-alist): New vars.
(defmacro, defun): Use them.
(make-obsolete, define-obsolete-function-alias)
(make-obsolete-variable, define-obsolete-variable-alias):
Use `declare'.
(macro-declaration-function): Mark obsolete.
* lisp/emacs-lisp/autoload.el: Use lexical-binding.
(make-autoload): Add `expansion' arg. Rely more on macro expansion.
Paul Eggert [Wed, 30 May 2012 19:23:37 +0000 (12:23 -0700)]
Clean up __executable_start, monstartup when --enable-profiling.
The following changes affect the code only when profiling.
* dispnew.c (__executable_start): Rename from safe_bcopy.
Define only on platforms that need it.
* emacs.c: Include <sys/gmon.h> when profiling.
(_mcleanup): Remove decl, since <sys/gmon.h> does it now.
(__executable_start): Remove decl, since lisp.h does it now.
(safe_bcopy): Remove decl; no longer has that name.
(main): Coalesce #if into single bit of code, for simplicity.
Cast pointers to uintptr_t, since standard libraries want integers
and not pointers.
* lisp.h (__executable_start): New decl.
Eli Zaretskii [Wed, 30 May 2012 18:09:17 +0000 (21:09 +0300)]
Fix bug #11587 with a crash in an Info buffer under linum-mode.
src/xdisp.c (handle_stop): Detect whether we have overlay strings
loaded by testing it->current.overlay_string_index to be
non-negative, instead of checking whether n_overlay_strings is
positive.
Eli Zaretskii [Tue, 29 May 2012 16:15:12 +0000 (19:15 +0300)]
Fix bug #11405 with MSVC build of emacsclientw.
lib-src/makefile.w32-in ($(BLD)/emacsclientw.exe): Use $(MWINDOWS)
instead of a literal -mwindows, which is not supported by MSVC.
nt/nmake.defs (MWINDOWS): Define as "-subsystem:windows -entry:mainCRTStartup".
Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
nt/gmake.defs (MWINDOWS): Define as "-mwindows".
Troels Nielsen [Tue, 29 May 2012 16:13:38 +0000 (09:13 -0700)]
Do not avoid creating empty evaporating overlays (Bug#9642).
* buffer.c (Fmove_overlay): Reinstate the earlier fix for
Bug#9642, but explicitly check that the buffer the overlay would
be moved to is live and rearrange lines to make sure that errors
will not put the overlay in an inconsistent state.
(Fdelete_overlay): Cosmetics.
Eli Zaretskii [Tue, 29 May 2012 16:01:05 +0000 (19:01 +0300)]
Don't call r_alloc_inhibit_buffer_relocation from search.c.
src/search.c (search_buffer): Remove calls to
r_alloc_inhibit_buffer_relocation, as it is now called by
maybe_unify_char, which was the cause of relocation of buffer text
in bug#11519.