1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-09 13:10:57 -08:00
Commit graph

32779 commits

Author SHA1 Message Date
Chong Yidong
1682701f25 * xfaces.c (face_for_overlay_string): Handle face remapping.
Fixes: debbugs:2066
2012-06-09 17:37:47 +08:00
Chong Yidong
4428609619 * fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive case.
Fixes: debbugs:9752
2012-06-09 15:27:15 +08:00
Paul Eggert
d86feb1764 * xdisp.c (vmessage): Treat frame message as multibyte.
Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
would generate the diagnostic "Making \302\247 buffer-local while
let-bound!".
2012-06-08 10:50:17 -07:00
Eli Zaretskii
d5c20fe8ca Revert inadvertent commit in dispnew.c as part of 2012-06-08T08:44:45Z!eliz@gnu.org.
src/dispnew.c (showing_window_margins_p): Undo last change, which
 was done due to an inadvertent commit.
 (adjust_frame_glyphs_for_frame_redisplay): Do call
 showing_window_margins_p.
2012-06-08 16:59:28 +03:00
Stefan Monnier
513749ee18 Clean up scoping rule of predefined single-word vars.
* lisp/startup.el (argv, argi): Make lexically scoped.
* lisp/emacs-lisp/float-sup.el (pi): Use internal-make-var-non-special.
* lisp/emacs-lisp/cl-macs.el: Use lexical-binding.
Rename cl-bind-* to cl--bind-*.
* lisp/files.el: Don't require `cl' since it doesn't use it.
* lisp/emacs-lisp/pcase.el, lisp/emacs-lisp/macroexp.el: Add coding cookie.
* src/eval.c (Fmake_var_non_special): New primitive.
(syms_of_eval): Defsubr it.
* src/lread.c (syms_of_lread): Mark `values' as lexically scoped.
2012-06-08 09:18:26 -04:00
Juanma Barranquero
d4a8f5c1bd src/dispnew.c (showing_window_margins_p): Wrap in #if 0. 2012-06-08 14:19:28 +02:00
Eli Zaretskii
8bbbc977a7 Fix BLOCK_INPUT/UNBLOCK_INPUT mismatch in 2012-06-08T08:44:30Z!dmantipov@yandex.ru.
src/alloc.c (allocate_vectorlike): Fix last change.
2012-06-08 12:58:43 +03:00
Eli Zaretskii
e9f66fcb51 Mention in "C-u C-x =" display how to insert the character w/o input methods.
lisp/descr-text.el (describe-char): Mention how to insert the
 character, if the current input method doesn't support it.
 See the discussion in this thread for the details:
 http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00533.html.
2012-06-08 11:44:45 +03:00
Dmitry Antipov
f3372c8789 Block-based vector allocation of small vectors.
* src/lisp.h (struct vectorlike_header): New field `nbytes',
adjust comment accordingly.
* src/alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
to denote vector blocks. Adjust users (live_vector_p,
mark_maybe_pointer, valid_lisp_object_p) accordingly.
(COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
(VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES),
(VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX),
(VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST),
(VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
(roundup_size): New constant.
(struct vector_block): New data type.
(vector_blocks, vector_free_lists, zero_vector): New variables.
(all_vectors): Renamed to `large_vectors'.
(allocate_vector_from_block, init_vectors, allocate_vector_from_block)
(sweep_vectors): New functions.
(allocate_vectorlike): Return `zero_vector' as the only vector of
0 items. Allocate new vector from block if vector size is less than
or equal to VBLOCK_BYTES_MAX.
(Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
(init_alloc_once): Add call to init_vectors.
* doc/lispref/internals.text (Garbage Collection): Document new
vector management code and vectorlike_header structure.
2012-06-08 12:44:30 +04:00
Stefan Monnier
4f18a4ed84 * src/eval.c (Fmacroexpand): Stop if the macro returns the same form. 2012-06-07 22:47:26 -04:00
Paul Eggert
86f158bc15 * doprnt.c (doprnt): Truncate multibyte char correctly.
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.
2012-06-06 22:11:51 -07:00
Chong Yidong
c5cfcbe076 * buffer.c (word_wrap): Doc fix. 2012-06-06 14:39:24 +08:00
Paul Eggert
c05cf3902a * xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall. 2012-06-03 23:03:19 -07:00
Glenn Morris
0c3461de86 tool-bar-style doc fixes
* lisp/cus-start.el (tool-bar-style, tool-bar-max-label-size): Fix :version.

* src/xdisp.c (tool-bar-style): Doc fix.
2012-06-03 16:28:17 -07:00
Ulrich Müller
c71232db6e 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.

Fixes: debbugs:11398
2012-06-03 16:14:22 -07:00
Chong Yidong
383f7350f3 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.

Fixes: debbugs:11226
2012-06-03 18:23:49 +08:00
Chong Yidong
1c476a0a7f * xdisp.c (note_mode_line_or_margin_highlight): Fix last change. 2012-06-03 17:59:00 +08:00
Chong Yidong
5f2c76c6ce 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.
2012-06-03 17:03:23 +08:00
Paul Eggert
773d47f6b2 * sysdep.c (system_process_attributes): Improve comment. 2012-06-02 14:01:07 -07:00
Stefan Monnier
f2d6a3df6a * 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.

Fixes: debbugs:11506
2012-06-02 15:21:34 -04:00
Paul Eggert
7bd5c1f4a4 * minibuf.c (Fassoc_string): Remove duplicate declaration. 2012-06-02 10:03:49 -07:00
Paul Eggert
63810350ec * sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
Convert pctcpu and pctmem to Lisp float properly.
Let the compiler fold better, as 100.0/0x8000 is exact.
2012-06-02 09:37:54 -07:00
Andreas Schwab
a282161184 * alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
cons_block.
2012-06-02 10:52:27 +02:00
Paul Eggert
5fceba1d6a * xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change. 2012-06-01 13:49:03 -07:00
Dmitry Antipov
c98ff5dd43 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.
2012-06-01 07:41:03 +04:00
Glenn Morris
32d72c2f5d 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.

* src/image.c (Fimagemagick_types): Doc fix.

* etc/NEWS: Mention this.

Fixes: debbugs:11557
2012-05-31 00:22:33 -07:00
Paul Eggert
ca34e0be92 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.
2012-05-30 23:51:43 -07:00
Chong Yidong
efc00ab16e Merge from emacs-24; up to 2012-04-24T21:47:24Z!michael.albinus@gmx.de 2012-05-31 14:08:06 +08:00
Paul Eggert
ba93a18774 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".
2012-05-30 22:08:37 -07:00
Paul Eggert
9e4bf381b7 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.
2012-05-30 12:23:37 -07:00
Eli Zaretskii
d5fd2c5421 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.
2012-05-30 21:09:17 +03:00
Jim Meyering
baac5bc76d Improve call-process-region error message.
* src/callproc.c (Fcall_process_region): Include directory component
in mkstemp error message.

Fixes: debbugs:11586
2012-05-30 22:20:45 +08:00
Chong Yidong
353c87f6ff * keymap.c (describe_map_tree): Revert 2011-07-07 change.
* doc.c (Fsubstitute_command_keys): Doc fix.

Fixes: debbugs:1169
2012-05-30 22:08:58 +08:00
Paul Eggert
72cb32cf2f * alloc.c, lisp.h (make_pure_vector): Now static. 2012-05-30 00:59:44 -07:00
Stefan Monnier
61b108cc62 * lisp/emacs-lisp/byte-run.el (defmacro, defun): Move from C.
(macro-declaration-function): Move var from C code.
(macro-declaration-function): Define function with defalias.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1):
* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't handle
defun/defmacro any more.
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-signature):
Provide fallback for unknown arglist.
(byte-compile-arglist-warn): Change calling convention.
(byte-compile-output-file-form): Move print-vars binding.
(byte-compile-output-docform): Simplify accordingly.
(byte-compile-file-form-defun, byte-compile-file-form-defmacro)
(byte-compile-defmacro-declaration): Remove.
(byte-compile-file-form-defmumble): Generalize to defalias.
(byte-compile-output-as-comment): Return byte-positions.
Simplify callers accordingly.
(byte-compile-lambda): Use `assert'.
(byte-compile-defun, byte-compile-defmacro): Remove.
(byte-compile-file-form-defalias):
Use byte-compile-file-form-defmumble.
(byte-compile-defalias-warn): Remove.
* src/eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
Move to byte-run.el.
(Fautoload): Do the hash-doc more carefully.
* src/data.c (Fdefalias): Purify definition, except for keymaps.
(Qdefun): Move from eval.c.
* src/lisp.h (Qdefun): Remove.
* src/lread.c (read1): Tiny simplification.
* lib-src/make-docfile.c: Improve comment style.
(search_lisp_doc_at_eol): New function.
(scan_lisp_file): Use it.
2012-05-29 23:59:42 -04:00
Paul Eggert
934f3f582d Fix ChangeLog entry by negating its 1st sentence. 2012-05-29 14:33:38 -07:00
Troels Nielsen
471fe23dc5 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.
2012-05-29 09:13:38 -07:00
Eli Zaretskii
a02ae4e5bf 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.
2012-05-29 19:01:05 +03:00
Eli Zaretskii
85d0efd175 Fix bug #11513 with raise-frame on MS-Windows.
src/w32term.c (my_bring_window_to_top): New function.
 (x_raise_frame): Use handle returned by DeferWindowPos, which
 could be different from the original one.  Call
 my_bring_window_to_top instead of my_set_foreground_window.
 src/w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
 by calling BringWindowToTop.
 src/w32term.h (WM_EMACS_BRINGTOTOP): New message.
 (WM_EMACS_END): Increase by one.
2012-05-28 20:22:40 +03:00
Eli Zaretskii
291d430f5f Avoid buffer text relocations in calls to STRING_CHAR_* macros.
src/charset.c (maybe_unify_char): Inhibit relocation of buffer text
 for the duration of call to load_charset, to avoid problems with
 callers of maybe_unify_char that access buffer text through C
 pointers.
 src/ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
 decrement the inhibition flag, instead of just setting or
 resetting it.

Fixes: debbugs:11519
2012-05-28 19:50:10 +03:00
Paul Eggert
da92a98c3d * bidi.c (bidi_mirror_char): Put eassert before conversion to int.
This avoids undefined behavior that might cause the eassert
to not catch an out-of-range value.
2012-05-28 00:13:45 -07:00
Juanma Barranquero
74d1f848fa src/makefile.w32-in: Update dependencies. 2012-05-28 03:58:42 +02:00
Eli Zaretskii
9e1a06fcf8 Fix last change in bidi_mirror_char. 2012-05-27 15:27:07 +03:00
Andreas Schwab
f3dd73121c * unexmacosx.c (copy_data_segment): Truncate after 16 characters
when referring to sectname field in printf format.
2012-05-27 14:18:35 +02:00
Paul Eggert
57b81a9f51 * lisp.h [REL_ALLOC]: Omit duplicate prototypes.
Only r_alloc_inhibit_buffer_relocation needed to be added;
the others were already declared.
2012-05-27 00:51:09 -07:00
Paul Eggert
81899c9138 * bidi.c (bidi_mirror_char): Don't possibly truncate the integer
before checking whether it's out of range.  Put the check inside
eassert.  See
<http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00485.html>.
2012-05-27 00:32:46 -07:00
Glenn Morris
33017fafd1 Merge from emacs-24; up to 2012-04-24T08:35:02Z!lekktu@gmail.com 2012-05-26 18:06:44 -07:00
Paul Eggert
c1892f1145 Fix coding-related core dumps with gcc -ftrapv.
The code was computing A - B, where A and B are pointers, and B is
random garbage.  This can lead to core dumps on platforms that
have special pointer registers, and it also leads to core dumps on
x86-64 when compiled with gcc -ftrapv.  The fix is to compute
A - B only when B is initialized properly.
* coding.c (coding_set_source, coding_set_destination): Return void.
(coding_change_source, coding_change_destinations): New functions,
with the old behaviors of coding_set_source and coding_set_destination.
All callers that need an offset changed to use these new functions.
2012-05-26 15:27:21 -07:00
Glenn Morris
eb7afdaddc Don't mess with INFOPATH in ns builds
It's not necessary, and would break if INFOPATH was already set (bug#2791).
Ref also
http://lists.gnu.org/archive/html/emacs-devel/2009-05/msg00035.html
http://lists.gnu.org/archive/html/emacs-devel/2005-06/msg00064.html

* lisp/paths.el (Info-default-directory-list):
* lisp/info.el (info-initialize): For self-contained NS builds, put the
included info/ directory at the front. 

* src/nsterm.m (ns_init_paths): Don't mess with INFOPATH.
2012-05-26 14:23:28 -07:00
Stefan Monnier
a179e3f7b4 Use declare' in lambda' and mis minor changes.
* lisp/subr.el (lambda): Use declare.
* lisp/emacs-lisp/lisp-mode.el (lambda):
* lisp/emacs-lisp/edebug.el (lambda): Move properties to its definition.
* lisp/gnus/legacy-gnus-agent.el (gnus-agent-unhook-expire-days):
* lisp/gnus/gnus-demon.el (gnus-demon-init): Don't bother with type-of.
2012-05-26 11:52:27 -04:00