aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Simplify stack-allocated Lisp objects, and make them more portable.Paul Eggert2014-09-2924-203/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The build_local_string macro was used in two ways: (1) string literals for which scoped allocation suffices, and (2) file name components, where it's not safe in general to assume bounded-size ASCII data. Simplify by defining a new macro SCOPED_STRING that allocates a block-scope string, and by using SCOPED_STRING for (1) and build_string for (2). Furthermore, actually use stack allocation only for objects known to have sufficient alignment. This simpler implementation means Emacs can make USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS. * lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS, for fewer differences among implementations. (struct Lisp_String): Now GCALIGNED. (USE_STACK_LISP_OBJECTS): Default to true, since the implementation no longer insists on a nonempty GCALIGNED. But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS. (SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed separately. Move definiens to scoped_cons. The old definition was incorrect when GCALIGNED was defined to be empty. (union Aligned_String): New type. (USE_STACK_CONS, USE_STACK_STRING): New constants, so that the implementation ports to compilers that don't align strictly enough. Don't worry about the union sizes; it's not worth bothering about. (scoped_cons, scoped_list1, scoped_list3, scoped_list4): Rewrite using USE_STACK_CONS. (scoped_cons): Assume the use of union Aligned_Cons. (lisp_string_size, make_local_string, build_local_string): Remove. Unless otherwise specified, all callers of build_local_string changed to use SCOPED_STRING. (SCOPED_STRING): New macro. * data.c (wrong_choice): * menu.c (single_menu_item): * process.c (Fformat_network_address): Hoist use of SCOPED_STRING out of a scope, so that its returned object lives long enough. * fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING, as the string might be long or might not be ASCII.
* Follow-up to renaming v24.5 to 25.1.Eli Zaretskii2014-09-292-1/+5
| | | | | | | | | | | | | | | | | | | | | README: Bump version to 25.0.50. configure.ac (AC_INIT): Bump version to 25.0.50. nt/makefile.w32-in (VERSION): Bump version to 25.0.50. nt/emacsclient.rc: Bump version to 25.0.50. nt/emacs.rc: Bump version to 25.0.50. nt/config.nt (VERSION): Bump version to 25.0.50. msdos/sed2v2.inp: Bump version to 25.0.50. etc/refcards/ru-refcard.tex: Bump version to 25.0.50. etc/refcards/emacsver.tex: Bump version to 25.0.50. src/msdos.c (internal_terminal_init): Bump version to 25. doc/man/emacs.1: Bump version to 25.0.50. doc/emacs/emacsver.texi (EMACSVER): Bump to 20.0.50.
* Rename 24.5 to 25.1Stefan Monnier2014-09-291-2/+1
| | | | Except where we expect to backport the corresponding change.
* Keep stack-allocated Lisp objects fast rather than versatile.Dmitry Antipov2014-09-2926-231/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (HAVE_STATEMENT_EXPRESSIONS): Remove. For USE_STACK_LISP_OBJECTS, we always assume __GNUC__. * lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such. (SCOPED_CONS_INITIALIZER): New macro. (scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it. (USE_LOCAL_ALLOCA): Remove. (local_cons, local_list1, local_list2, local_list3, local_list4): Remove. Stack overflow checking makes them too slow. (make_local_vector): Likewise. Also we just don't have enough users for it. (enum LISP_STRING_OVERHEAD): Remove. (local_string_init, local_vector_init): Remove prototypes. (make_local_string, build_local_string): Redesign to target short compile-time string constants, fall back to regular string allocation where appropriate. (lisp_string_size): New function. (verify_ascii) [ENABLE_CHECKING]: Add prototype. * alloc.c (local_string_init, local_vector_init): Remove. (verify_ascii) [ENABLE_CHECKING]: New function. * buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c: * fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c: * menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c: * xselect.c, xterm.c: All related users changed.
* * src/sheap.c (bss_sbrk_buffer_beg): Remove redundant variable.Ken Brown2014-09-283-4/+8
| | | | * src/gmalloc.c [CYGWIN]: Adapt to change in sheap.c.
* Fix implementation of HYBRID_MALLOC on Cygwin.Ken Brown2014-09-273-4/+14
| | | | | | | * src/sheap.c (bss_sbrk_buffer_end): Cast to void *. (bss_sbrk_buffer_beg): New variable. Use it... * src/gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix incorrect definition.
* * lisp/subr.el (track-mouse): New macro.Stefan Monnier2014-09-272-8/+7
| | | | | | | | * lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): Remove track-mouse case. * lisp/emacs-lisp/bytecomp.el (byte-compile-track-mouse): Remove. * src/keyboard.c (track-mouse): Rename to internal--track-mouse. Make it into a function and change arg to be a function.
* Introduce global-eldoc-mode. Move Elisp-specific code to elisp-mode.el.Stefan Monnier2014-09-262-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/eldoc.el (global-eldoc-mode): New minor mode. (eldoc-schedule-timer): Obey it. (eldoc-documentation-function): Default to nil. (eldoc-mode): Don't enable if eldoc-documentation-function is not set. (eldoc-documentation-function-default, eldoc-get-fnsym-args-string) (eldoc-highlight-function-argument, eldoc-get-var-docstring) (eldoc-last-data-store, eldoc-docstring-first-line) (eldoc-docstring-format-sym-doc, eldoc-fnsym-in-current-sexp) (eldoc-beginning-of-sexp, eldoc-current-symbol) (eldoc-function-argstring): Move to elisp-mode.el. (eldoc-symbol-function): Remove, unused. * lisp/progmodes/elisp-mode.el: New file. Rename all "eldoc-*" to "elisp--*". (elisp-completion-at-point): Rename from lisp-completion-at-point. (elisp--preceding-sexp): Rename from preceding-sexp. * lisp/loadup.el: Load new file progmodes/elisp-mode. * lisp/ielm.el (inferior-emacs-lisp-mode): Set eldoc-documentation-function. * lisp/emacs-lisp/lisp.el (lisp--local-variables-1, lisp--local-variables) (lisp--local-variables-completion-table, lisp--expect-function-p) (lisp--form-quoted-p, lisp--company-doc-buffer) (lisp--company-doc-string, lisp--company-location) (lisp-completion-at-point): Move to elisp-mode.el. * lisp/emacs-lisp/lisp-mode.el (lisp--mode-syntax-table): New syntax-table, extracted from emacs-lisp-mode-syntax-table. (emacs-lisp-mode-abbrev-table, emacs-lisp-mode-syntax-table): Move to elisp-mode.el. (lisp-imenu-generic-expression): Add comments to document what comes from which Lisp dialect. (emacs-lisp-mode-map, emacs-lisp-byte-compile) (emacs-lisp-byte-compile-and-load, emacs-lisp-mode-hook) (emacs-lisp-mode, emacs-list-byte-code-comment-re) (emacs-lisp-byte-code-comment) (emacs-lisp-byte-code-syntax-propertize, emacs-lisp-byte-code-mode) (lisp-interaction-mode-map, lisp-interaction-mode) (eval-print-last-sexp, last-sexp-setup-props) (last-sexp-toggle-display, prin1-char, preceding-sexp) (eval-last-sexp-1, eval-last-sexp-print-value) (eval-last-sexp-fake-value, eval-sexp-add-defvars, eval-last-sexp) (eval-defun-1, eval-defun-2, eval-defun): Move to elisp-mode.el. * src/lisp.mk (lisp): Add elisp-mode.elc.
* * xfns.c (x_default_scroll_bar_color_parameter):Paul Eggert2014-09-262-0/+8
| | | | | Use USE_LOCAL_ALLOCA only if USE_TOOLKIT_SCROLL_BARS, to pacify --enable-gcc-warnings in non-scrollbar builds.
* src/w32term.h (ALIGN_STACK): Fix the cpp condition.Ken Brown2014-09-262-1/+5
|
* Don't use USE_STACK_LISP_OBJECTS on Windows with GCC older than 4.2.Eli Zaretskii2014-09-252-1/+10
| | | | | | | src/lisp.h (USE_STACK_LISP_OBJECTS): Default to false for 32-bit MinGW builds that use GCC before 4.2. Fixes: debbugs:18559
* src/w32term.h (ALIGN_STACK): Fix a typo in last commit.Eli Zaretskii2014-09-251-1/+1
| | | | Fixes: debbugs:18559
* * xterm.c (x_new_font): Fix typo introduced by the recent dead code removal.Dmitry Antipov2014-09-251-1/+1
|
* * lisp.h (toplevel): Adjust comment around USE_STACK_LISP_OBJECTS.Dmitry Antipov2014-09-251-12/+11
|
* Default to stack objects on DOS_NT platforms as well.Eli Zaretskii2014-09-257-24/+57
| | | | | | | | | | | | | src/w32term.h (ALIGN_STACK) [__GNUC__]: Define to __attribute__((force_align_arg_pointer)) for GCC 4.2 and later. src/lisp.h (USE_STACK_LISP_OBJECTS): Remove the !DOS_NT condition. src/w32proc.c (enum_locale_fn, enum_codepage_fn): Add the ALIGN_STACK attribute. src/w32fns.c (w32_monitor_enum): Add the ALIGN_STACK attribute. src/w32uniscribe.c (add_opentype_font_name_to_list): Add the ALIGN_STACK attribute. src/w32font.c (add_font_name_to_list, add_font_entity_to_list) (add_one_font_entity_to_list): Add the ALIGN_STACK attribute.
* Remove code left dead after 2014-07-27 changes.Martin Rudalics2014-09-258-477/+12
| | | | | | | | | | | * frame.c (frame_inhibit_resize): * widget.c (EmacsFrameResize): * window.c (resize_frame_windows, Fset_window_configuration): * xdisp.c (expose_frame): * xfns.c (x_change_tool_bar_height): * xmenu.c (update_frame_menubar): * xterm.c (handle_one_xevent, x_new_font, x_set_window_size_1): Remove code left dead after 2014-07-27 changes.
* Fix local_cons etc. to not exhaust the stack when in a loop.Paul Eggert2014-09-2425-30/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem reported in: http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00696.html * buffer.c (Fother_buffer, other_buffer_safely, init_buffer): * charset.c (load_charset_map_from_file, Ffind_charset_region) (Ffind_charset_string): * chartab.c (uniprop_encode_value_numeric, uniprop_table): * data.c (wrong_range): * editfns.c (Fpropertize, format2): * emacs.c (init_cmdargs, decode_env_path): * fileio.c (auto_save_error): * fns.c (Fyes_or_no_p): * font.c (font_style_to_value, font_parse_xlfd) (font_parse_family_registry, font_delete_unmatched) (font_add_log): * fontset.c (Fset_fontset_font): * frame.c (x_get_arg): * keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item) (read_char_minibuf_menu_prompt): * keymap.c (silly_event_symbol_error, describe_vector): * lread.c (load_warn_old_style_backquotes): * menu.c (single_menu_item): * minibuf.c (Fread_buffer): * process.c (status_message, Fformat_network_address) (server_accept_connection): * textprop.c (copy_text_properties): * xdisp.c (Fcurrent_bidi_paragraph_direction): * xfns.c (x_default_scroll_bar_color_parameter): * xfont.c (xfont_open): * xselect.c (x_clipboard_manager_error_1): * xterm.c (x_term_init): Put USE_LOCAL_ALLOCA at the start of the function. * fns.c (maybe_resize_hash_table): Use build_string instead of build_local_string, since we'd otherwise need a conditional USE_LOCAL_ALLOCA here, but this is just debugging output and is not worth the bother of optimization. * font.c (font_delete_unmatched): Remove by-hand code that observed MAX_ALLOCA limit, since it's now done automatically. * keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top, since build_local_string needs its sa_alloc. * lisp.h (lisp_word_count): New function. (SAFE_ALLOCA_LISP): Use it. (USE_LOCAL_ALLOCA): New macro. (local_cons, make_local_vector, make_local_string): Observe the MAX_ALLOCA limit. (LISP_STRING_OVERHEAD): New constant. (make_local_string): Use it.
* Default to stack objects on non-GNU/Linux, non-DOS_NT platforms.Paul Eggert2014-09-242-5/+9
| | | | | | * lisp.h (USE_STACK_LISP_OBJECTS): Also default to true if !defined DOS_NT && !defined GNU_LINUX. I've tested this on AIX and Solaris and it's likely to work on similar platforms.
* Avoid signed integer overflow when converting Time to ptrdiff_t.Paul Eggert2014-09-244-7/+42
| | | | | | | | | | | | * keyboard.c (INPUT_EVENT_POS_MAX, INPUT_EVENT_POS_MIN): New macros. (position_to_Time, Time_to_position): New functions. (gen_help_event, kbd_buffer_get_event): Use them. * systime.h (Time) [emacs && !HAVE_X_WINDOWS]: Go back to plain 'unsigned long', so that 'Time' is the same for both X and non-X builds; this is less likely to cause surprise. * termhooks.h: Remove compile-time check that Time and ptrdiff_t are the same size; this is no longer required.
* * keyboard.c (make_lispy_event): Avoid unnecessary testsPaul Eggert2014-09-242-23/+26
| | | | | of bit 28 and of whether an unsigned value is negative. This simplifies the code a bit, and pacifies clang 3.4.
* * lisp.h (toplevel) [!USE_STACK_LISP_OBJECTS]: Fix poorly nestedKen Brown2014-09-241-3/+3
| | | | conditions (Bug#18544).
* * lisp.h (USE_STACK_LISP_OBJECTS): Enable by default if GNU_LINUXDmitry Antipov2014-09-242-2/+16
| | | | && __GNUC__ && !__clang__. Mention known problems. Adjust comment.
* * chartab.c (uniprop_encode_value_numeric):Dmitry Antipov2014-09-244-19/+17
| | | | | | * font.c (font_style_to_value): Use make_local_vector. (font_delete_unmatched): Use local_cons but respect MAX_ALLOCA. * keymap.c (append_key): Use scoped_list1.
* Fix fallout on MinGW64 from the previous commit.Eli Zaretskii2014-09-244-7/+21
| | | | | | | | | | | src/systime.h (Time): Define as size_t, to be consistent with 64-bit Windows builds, where 'long' is a 32-bit type. src/w32inevt.h (w32_console_mouse_position): Update the argument types to use 'Time'. src/w32term.c (w32_mouse_position) (x_horizontal_scroll_bar_report_motion) (x_scroll_bar_report_motion): Update the argument types to use 'Time'.
* * termhooks.h (enum scroll_bar_part): Begin from 0 to allow...Dmitry Antipov2014-09-249-60/+81
| | | | | | | | | | | | | | | | | | | (struct input_event): ...unsigned bitfields. Likewise for `event_kind' member. Prefer unsigned for `code' and 'modifiers'. Use `timestamp' for HELP_EVENT position. Add compile-time assert. * keyboard.c (gen_help_event, kbd_buffer_store_help_event) (kbd_buffer_get_event): Adjust users. (scroll_bar_parts): Add Qnil to match scroll_bar_nowhere. (make_scroll_bar_position): New function, refactored out of... (make_lispy_event): ...adjusted user. * nsterm.h (EmacsScroller): Use enum for `last_hit_part' member. * nsterm.m (ns_mouse_position, mouseUp): * term.c (term_mouse_position): * w32inevt.c (w32_console_mouse_position): * w32term.c (w32_mouse_position): * xterm.c (XTmouse_position): Use scroll_bar_above_handle. (x_send_scroll_bar_event, xm_scroll_callback, xg_scroll_callback): Prefer enum and explicit enum members to integers and numeric values.
* Fix some slow uses and misuses of strcat.Paul Eggert2014-09-236-13/+25
| | | | | | | | | | * doc.c (get_doc_string): * gtkutil.c (get_utf8_string): * xsmfns.c (x_session_initialize): Avoid recomputation of string length. * ftfont.c (ftfont_spec_pattern): * xfns.c (xic_create_fontsetname): Don't assume output buffer is initially zero.
* * lisp.h (lispstpcpy): Rename from lispstrcpy, and act like stpcpy.Paul Eggert2014-09-2314-18/+27
| | | | | | All callers changed. * xterm.c (x_term_init): Use new functionality to avoid two needs to compute a string length.
* * dispextern.h, xdisp.c (window_box_right_offset): Now static.Paul Eggert2014-09-233-2/+5
|
* Use known length of a Lisp string to copy it faster.Dmitry Antipov2014-09-2314-15/+41
| | | | | | | | | | | | | | | | * lisp.h (lispstrcpy): New function. Add comment. * callproc.c (child_setup): * dbusbind.c (xd_append_arg): * doc.c (get_doc_string): * font.c (Ffont_xlfd_name): * frame.c (xrdb_get_resource): * process.c (Fmake_network_process, network_interface_info): * w32fns.c (Fx_open_connection): * w32proc.c (sys_spawnve): * xfns.c (select_visual): * xfont.c (xfont_list): * xsmfns.c (x_session_initialize): * xterm.c (x_term_init): Use it.
* Fix SAFE_ALLOCA to not exhaust the stack when in a loop.Paul Eggert2014-09-223-6/+25
| | | | | | | | | | | | | Problem reported by Dmietry Antipov in thread leading to: http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00713.html This patch fixes only SAFE_ALLOCA, SAFE_NALLOCA, and SAFE_ALLOCA_LISP; the experimental local_* macros enabled by USE_LOCAL_ALLOCATORS remain unfixed. * callproc.c (call_process): Save and restore sa_avail. * lisp.h (USE_SAFE_ALLOCA): Define sa_avail. (AVAIL_ALLOCA): New macro. (SAFE_ALLOCA, SAFE_NALLOCA, SAFE_ALLOCA_LISP): Use it, and check against sa_avail rather than MAX_ALLOCA.
* Merge from emacs-24Stefan Monnier2014-09-2211-153/+293
|\
| * On OSX, do not free font-specific data more than once (Bug#18501).Dmitry Antipov2014-09-222-13/+24
| | | | | | | | | | * macfont.m (macfont_close): Release and free font-specific data only if it wasn't previously freed.
| * * configure.ac: Increase headerpad_extra to 1000, update the commentDavid Caldwell2014-09-212-1/+7
| | | | | | | | | | | | | | | | about load commands. * src/unexmacosx.c (dump_it): Improve error message. Fixes: debbugs:18505
| * * src/image.c (imagemagick_load_image): Add delay to imagemagick metadata.Juri Linkov2014-09-182-0/+11
| | | | | | | | (Bug#10747, bug#18334)
| * Clarify the doc strings of mouse-position and set-mouse-position.Eli Zaretskii2014-09-182-6/+10
| | | | | | | | | | src/frame.c (Fmouse_position, Fset_mouse_position): Clarify the units in which the position is measured. (Bug#18493)
| * Fix bug #18490 with redisplay of other windows showing a narrowed buffer.Eli Zaretskii2014-09-182-0/+11
| | | | | | | | | | src/xdisp.c (redisplay_internal): Force redisplay of all windows that show a buffer whose narrowing has changed.
| * Fix display of hollow-box and hbar cursors on r2L lines.Eli Zaretskii2014-09-163-4/+31
| | | | | | | | | | | | | | | | src/xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor): src/w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor): In R2L lines, draw the hollow-box and hbar cursors on the right side of cursor-glyph. Thanks to Martin Rudalics <rudalics@gmx.at> for testing on X.
| * Fix block cursor display in R2L lines.Eli Zaretskii2014-09-163-2/+10
| | | | | | | | | | | | | | | | src/xterm.c (x_draw_stretch_glyph_string): src/w32term.c (x_draw_stretch_glyph_string): Fix a thinko that caused the block cursor to disappear on a TAB in R2L lines in every window except the leftmost one. Reported by Martin Rudalics <rudalics@gmx.at>.
| * Prefer ptrdiff_t to int and avoid integer overflows.Dmitry Antipov2014-09-164-3/+9
| | | | | | | | | | | | | | * fileio.c (make_temp_name): * font.c (font_parse_family_registry): Avoid integer overflow on string size calculation. * data.c (Faset): Likewise for byte index.
| * Always use matched specpdl entry to record call arguments (Bug#18473).Dmitry Antipov2014-09-163-34/+40
| | | | | | | | | | | | | | | | | | | | * lisp.h (record_in_backtrace): Adjust prototype. * eval.c (record_in_backtrace): Return current specpdl level. (set_backtrace_args, set_backtrace_nargs): Merge. Adjust all users. (eval_sub, Ffuncall): Record call arguments in matched specpdl entry and use that entry in call to backtrace_debug_on_exit. (apply_lambda): Likewise. Get current specpdl level as 3rd arg. (do_debug_on_call): Get current specpdl level as 2nd arg.
| * src/dispextern.h: Commentary fix.Eli Zaretskii2014-09-151-1/+3
| |
| * Fix display of R2L lines in partial-width windows.Eli Zaretskii2014-09-152-13/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | src/xdisp.c (init_iterator): Don't use it->bidi_p before it is assigned the correct value. (extend_face_to_end_of_line): Account for truncation and continuation glyphs in R2L rows when one of the fringes is not displayed. (display_line): Don't assign negative X offset to a row if we are going to produce a truncation glyph for it. When handling truncated R2L rows, consider the width of the left fringe instead of the right one. (produce_special_glyphs): Fix bogus assignments.
* | Fix bug #18516 with SIGSEGV in expand-file-name.Eli Zaretskii2014-09-222-0/+9
| | | | | | | | | | | | src/fileio.c (Fexpand_file_name) [DOS_NT]: Make sure newdirlim is always set to a valid value. Make sure the size passed to alloca is always positive.
* | Avoid extra call to oblookup when interning symbols.Dmitry Antipov2014-09-225-54/+57
| | | | | | | | | | | | | | | | * lisp.h (intern_driver): Add prototype. * lread.c (intern_driver): New function. (intern1, intern_c_string_1, Fintern): * font.c (font_intern_prop): * w32font.c (intern_font_name): Use it.
* | Minor improvements to new stack-allocated Lisp objects.Paul Eggert2014-09-214-26/+79
| | | | | | | | | | | | | | | | | | | | | | * frame.h (FRAME_PARAMETER): Prefer scoped_list1 to local_list1 where either would do. * lisp.h (scoped_list4): New macro. (local_cons, local_list1, local_list2, local_list3, local_list4) (make_local_vector, make_local_string, build_local_string): Prefer functions to macros where either would do. * xdisp.c (build_desired_tool_bar_string): Prefer scoped_list4 to local_list4 where either would do.
* | More and more stack-allocated Lisp objects if USE_LOCAL_ALLOCATORS.Dmitry Antipov2014-09-1812-25/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp.h (local_list4) [USE_LOCAL_ALLOCATORS]: New macro. [!USE_LOCAL_ALLOCATORS]: Fall back to regular list4. * frame.h (FRAME_PARAMETER): New macro. * dispnew.c (init_display): * fontset.c (Fset_fontset_font): * frame.c (x_default_parameter): * xfaces.c (set_font_frame_param, Finternal_merge_in_global_face): * xfns.c (x_default_scroll_bar_color_parameter) (x_default_font_parameter, x_create_tip_frame): Use it. * editfns.c (Fpropertize): Use local_cons. * process.c (status_message): Use build_local_string. * xfont.c (xfont_open): Use make_local_string. * xdisp.c (build_desired_tool_bar_string): Use local_list4.
* | Port USE_LOCAL_ALLOCATORS code to clang 3.4 x86-64.Paul Eggert2014-09-172-25/+17
| | | | | | | | | | | | | | Revert previous lisp.h change, and install the following instead. * lisp.h (USE_LOCAL_ALLOCATORS): Define only if __GNUC__ && !__clang__. This works with GCC and with clang and is safer for compilers we don't know about.
* | Port USE_LOCAL_ALLOCATORS code to clang 3.4 x86-64.Paul Eggert2014-09-172-9/+32
| | | | | | | | | | | | | | * lisp.h (ALLOCA_FIXUP): New constant. (LOCAL_ALLOCA): New macro. (local_cons, make_local_vector, make_local_string): Use them. (local_cons): Rename parameter to make capture less likely.
* | * unexmacosx.c (copy_data_segment): Port to GCC 4.6+.Samuel Bronson2014-09-172-0/+26
| | | | | | | | Fixes: debbugs:9927
* | Fix minor problems found by static checking.Paul Eggert2014-09-175-16/+13
| | | | | | | | | | | | | | * alloc.c, lisp.h (SAVE_TYPE_INT_OBJ, make_save_int_obj): Remove; now unused. * buffer.h (decode_buffer): Doc and indentation fixes. * fns.c (Qstring_collate_lessp, Qstring_collate_equalp): Now static.