Commit graph

32802 commits

Author SHA1 Message Date
Paul Eggert
e93864f943 .gdbinit: Update to match recent lisp.h changes. 2012-06-13 21:02:35 -07:00
Paul Eggert
2b57012478 Simplify lisp.h in minor ways that should not affect code.
* lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
(LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
(LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
(INTTYPEBITS): New macro, for clarity.
(INTMASK, MOST_POSITIVE_FIXNUM): Use it.
(LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P): Simplify
now that USE_LSB_TAG is always defined.
(TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
(make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
2012-06-13 19:27:39 -07:00
Juanma Barranquero
81755f695c src/makefile.w32-in ($(BLD)/data.$(O)): Update dependencies. 2012-06-13 23:37:23 +02:00
Glenn Morris
16192a5711 Remove some unused definitions from src/s
* src/s/bsd-common.h (BSD4_3):
* src/s/usg5-4-common.h (USG5_4): No longer define; unused.

* admin/CPP-DEFINES, src/s/template.h: Related edits.
2012-06-13 14:11:05 -04:00
Andreas Schwab
646b5f55df Use a simple struct to implement compile time checks for the Lisp_Object type
* configure.in: Rename --enable-use-lisp-union-type to
--enable-check-lisp-object-type and define CHECK_LISP_OBJECT_TYPE
instead of USE_LISP_UNION_TYPE.

* admin/make-emacs: Rename --union-type to --check-lisp-type.  Define
CHECK_LISP_OBJECT_TYPE insted of USE_LISP_UNION_TYPE.
* admin/CPP-DEFINES (DEBUG_LISP_OBJECT_TYPE): Renamed from
USE_LISP_UNION_TYPE.

* src/lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
instead of union.
(XLI, XIL): Define.
(XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG): Use
them.
* src/emacs.c (gdb_use_struct): Renamed from gdb_use_union.
* src/.gdbinit: Check gdb_use_struct instead of gdb_use_union.
* src/alloc.c (widen_to_Lisp_Object): Removed.
(mark_memory): Use XIL instead of widen_to_Lisp_Object.
* src/frame.c (delete_frame): Remove outdated comment.
* src/w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
USE_LISP_UNION_TYPE.
(Fw32_unregister_hot_key): Likewise.
(Fw32_toggle_lock_key): Likewise.
* src/w32menu.c (add_menu_item): Likewise.
(w32_menu_display_help): Use XIL instead of checking
USE_LISP_UNION_TYPE.
* src/w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
(init_heap): Likewise.
* src/w32term.c (w32_read_socket): Update comment.
2012-06-13 15:40:48 +02:00
Glenn Morris
c62ff70691 Remove HAVE_SYSV_SIGPAUSE unused remnants
* src/s/usg5-4-common.h, src/s/unixware.h:
Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).

* admin/CPP-DEFINES: Remove HAVE_SYSV_SIGPAUSE.
2012-06-12 22:39:20 -04:00
Glenn Morris
1d3823c985 * src/s/gnu.h (POSIX_SIGNALS): Remove (again).
This was added in 2012-01 in response to http://debbugs.gnu.org/10552 .
However, this issue had already been fixed in the trunk two years
earlier, by removing POSIX_SIGNALS altogether. Ref:

http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00002.html
2012-06-12 22:32:49 -04:00
Paul Eggert
bfe3e0a23e USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
* alloc.c (make_number) [!defined make_number]:
Remove, as lisp.h always defines this now.
(mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
(roundup_size): Verify that it is a power of 2.
* data.c (Fmake_variable_buffer_local, Fmake_local_variable):
* ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
* lisp.h (USE_LSB_TAG): Allow the builder to compile with
-DUSE_LSB_TAG=0, to override the automatically-selected default.
USE_LSB_TAG now is always defined to be either 0 or 1.
All uses changed.
(union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
code works fine either way, and efficiency is not a concern here,
as the union type is for debugging, not for production.
(LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
Use an inline function on all platforms when using the union type,
since this is simpler and 'static inline' can be used portably
within Emacs now.
(LISP_INITIALLY_ZERO): New macro.
(XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
(XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
2012-06-12 17:26:40 -07:00
Glenn Morris
b4492cba7a Remove src/s/sol2-10.h
* configure.in (HAVE_PROCFS, _STRUCTURED_PROC): New AC_DEFINEs.
(opsysfile): Set specially for sol2-10.

* src/s/gnu-linux.h (HAVE_PROCFS): Move to configure.

* src/s/sol2-10.h: Remove file.
2012-06-12 15:03:32 -04:00
Glenn Morris
8a07a8c6fe Remove src/s/hpux11.h
* configure.in (BROKEN_SA_RESTART, USG_SUBTTY_WORKS): New AC_DEFINEs.
(opsysfile): Set specially for hpux11.

* src/s/hpux11.h: Remove file.
2012-06-12 14:44:31 -04:00
Glenn Morris
0d3697298d Remove a couple of src/s files
* configure.in (opsysfile): Set specially for gnu-kfreebsd, openbsd.

* src/s/gnu-kfreebsd.h, src/s/openbsd.h: Remove files.
2012-06-12 13:53:25 -04:00
Glenn Morris
45fa9c0fbf Move NO_TERMIO, BROKEN_SIGIO from src/s to configure
* configure.in (NO_TERMIO, BROKEN_SIGIO): New AC_DEFINEs.

* src/s/bsd-common.h, src/s/darwin.h, src/s/gnu-kfreebsd.h, src/s/hpux10-20.h:
Remove NO_TERMIO.

* src/s/hpux10-20.h, src/s/openbsd.h, src/s/usg5-4-common.h:
Remove BROKEN_SIGIO.
2012-06-12 13:43:09 -04:00
Chong Yidong
0e25d3345f Handle availability of MagickMergeImageLayers and MagickExportImagePixels
* configure.in: Check for MagickMergeImageLayers.

* src/image.c (imagemagick_load_image): Use MagickFlattenImage if
MagickMergeImageLayers is undefined.  Use pixel pusher loop if
MagickExportImagePixels is undefined.

Fixes: debbugs:11678
2012-06-12 18:08:39 +08:00
Paul Eggert
43682bb61e * image.c (imagemagick_load_image): Remove unused label. 2012-06-11 17:30:18 -07:00
Glenn Morris
a9be7d2b19 Move SYSTEM_TYPE from src/s to configure
* configure.in (SYSTEM_TYPE): New AC_DEFINE.

* msdos/sed2v2.inp (SYSTEM_TYPE): Set it.

* nt/config.nt (SYSTEM_TYPE): Define it.

* src/s/aix4-2.h, src/s/bsd-common.h, src/s/cygwin.h, src/s/darwin.h:
* src/s/gnu-kfreebsd.h, src/s/gnu-linux.h, src/s/gnu.h, src/s/hpux10-20.h:
* src/s/irix6-5.h, src/s/ms-w32.h, src/s/msdos.h, src/s/template.h:
* src/s/usg5-4-common.h: Remove SYSTEM_TYPE.
2012-06-11 19:17:11 -04:00
Stefan Monnier
3017f87fbd Don't purify in Fmake_byte_code.
* src/alloc.c (make_byte_code): New function.
(Fmake_byte_code): Use it.  Don't purify here.
* src/lread.c (read1): Use it as well to avoid extra allocation.
2012-06-11 11:13:27 -04:00
Chong Yidong
1b9b4cf4c1 Support transparency for ImageMagick images.
* src/image.c (imagemagick_load_image): Implement transparency.

* doc/lispref/display.texi (ImageMagick Images): ImageMagick now supports the
:background property.
2012-06-11 22:42:55 +08:00
Chong Yidong
31ca4639ad Merge from emacs-24; up to 2012-04-25T15:23:19Z!sdl.web@gmail.com 2012-06-10 21:20:58 +08:00
Andreas Schwab
95988fcfa8 * regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
account for preceding backslashes.  (Bug#11663)
2012-06-10 10:39:19 +02:00
Chong Yidong
cd4eb164a9 Add support for italic text on ttys.
* src/dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
(struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
tty_alt_charset_p.  Add tty_italic_p.

* src/term.c: Support italics in capable terminals.
(no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
(turn_on_face): Output using TS_enter_italic_mode if available.
Don't handle unused blinking and alt-charset cases.
(turn_off_face): Handle italic case; discard unused tty_blinking_p
and tty_alt_charset_p cases.
(tty_capable_p, init_tty): Support italics.

* src/termchar.h (struct tty_display_info): Add field for italics.
Remove unused blink field.

* src/xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
Handle slant.

Fixes: debbugs:9652
2012-06-10 00:44:44 +08:00
Michael Albinus
ff88beb855 * dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
dbus_type_is_basic if available.
(xd_extract_signed, xd_extract_unsigned): Rename from
extract_signed and extract_unsigned, respectively.  Adapt callers.
2012-06-09 13:13:30 +02:00
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
Chong Yidong
94f0aa3464 Bump version to 24.1.
Add release logs.
Regenerate AUTHORS and ldefs-boot.el.
2012-06-01 17:51:00 +08:00
Eli Zaretskii
2517bc14d3 Improve commentary to 'struct it' in src/dispextern.h. 2012-06-01 12:14:07 +03: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