aboutsummaryrefslogtreecommitdiffstats
path: root/src/ChangeLog (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | * src/fileio.c (Fsubstitute_in_file_name): Use substitute-env-in-file-name.Stefan Monnier2013-10-101-0/+6
| | | | | | | | | | | | | | (Qsubstitute_env_in_file_name): New var. (syms_of_fileio): Define it. * lisp/env.el (substitute-env-in-file-name): New function. (substitute-env-vars): Extend the meaning of the optional arg.
* | Attempt to fix crashes per bug #15575.Eli Zaretskii2013-10-101-0/+11
| | | | | | | | | | | | | | | | | | src/xdisp.c (deep_copy_glyph_row): Assert that the 'used' counts of FROM and TO are identical. Copy only the glyphs of TEXT_AREA. src/term.c (save_and_enable_current_matrix): Don't allocate and don't save margin areas. (restore_desired_matrix): Don't restore margin areas. (free_saved_screen): Don't free margin areas.
* | * image.c: Pacify --enable-gcc-warnings.Paul Eggert2013-10-101-0/+6
| | | | | | | | | | (GIFLIB_MAJOR, GIFLIB_MINOR, GIFLIB_RELEASE, fn_GifErrorString): #define only if used.
* | MS-Windows follow-up to 2013-10-10T01:03:11Z!rgm@gnu.org: support giflib 5.x.Eli Zaretskii2013-10-101-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | src/image.c (GIFLIB_MAJOR): Define to 4 if undefined. (GIFLIB_MINOR, GIFLIB_RELEASE): Define to zero if undefined. (GifErrorString) [GIFLIB_MAJOR >= 5]: Define a function pointer. (gif_load): For giflib v5.x and later, display the error message produced by giflib when its functions fail. (syms_of_image) <Qlibgif_version> [HAVE_NTGUI]: New DEFSYM. lisp/term/w32-win.el (dynamic-library-alist): Define separate lists of GIF DLLs for versions before and after 5.0.0 of giflib. Fixes: debbugs:15531
* | * keyboard.c (last_event_timestamp): Remove. For X selection andDmitry Antipov2013-10-101-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | GTK popup menus, it may be obtained from per-frame X display info. (kbd_buffer_store_event_hold, kbd_buffer_get_event) (process_special_events): Adjust users. * keyboard.h (last_event_timestamp): Remove declaration. * xmenu.c (xmenu_show, create_and_show_popup_menu): Lost last arg. Use FRAME_DISPLAY_INFO (f)->last_user_time for gtk_menu_popup. * menu.h (xmenu_show): Adjust prototype. * menu.c (Fx_popup_menu): Adjust user. * xselect.c (x_own_selection, x_get_foreign_selection) (Fx_disown_selection_internal): Use dpyinfo->last_user_time.
* | * keyboard.c (init_kboard): Now static. Add argDmitry Antipov2013-10-101-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | to denote window system. Adjust comment. (init_keyboard): Adjust user. (allocate_kboard): New function. (syms_of_keyboard): * nsterm.m (ns_term_init): * term.c (init_tty): * w32term.c (w32_create_terminal): * xterm.c (x_term_init): Use it. * keyboard.h (init_kboard): Remove prototype. (allocate_kboard): Add prototype.
* | Handle giflib 5 changes (tiny change)Barry Fishman2013-10-091-0/+5
| | | | | | | | | | | | | | * configure.ac: Update for giflib 5. * src/image.c (GIFLIB_MAJOR): Ensure it's defined. (DGifOpen, DGifOpenFileName): Handle giflib 5 syntax. (Bug#15531)
* | * fns.c (sxhash_bool_vector): Fix buffer read overrun.Paul Eggert2013-10-091-0/+4
| |
* | Fix minor problems in text-mode menu display.Eli Zaretskii2013-10-091-0/+7
| | | | | | | | | | | | | | src/term.c (tty_menu_activate): Flush the output stream after showing the cursor, and don't mark the frame garbaged at exit from the function. Fixes redisplay glitches when moving from one menu to another.
* | * nsfns.m (Fns_convert_utf8_nfd_to_nfc): Check input for valid UTF-8Jan Djärv2013-10-091-0/+5
| | | | | | | | | | | | or throw error. Fixes: debbugs:15570
* | * intervals.c (temp_set_point_both): Move test into 'eassert',Paul Eggert2013-10-091-0/+3
| | | | | | | | for speed.
* | * lisp.h (eassert): Don't use 'assume'.Paul Eggert2013-10-091-0/+11
| | | | | | | | | | | | | | | | | | | | Sometimes 'assume' wins in performance, and sometimes it loses, so it shouldn't be used all the time. Perhaps we need two flavors of 'eassert', one for where 'assume' is far more likely to help or to hurt; but that can be done later. Problem reported by Dmitry Andipov in <http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00276.html>. Also, don't include <verify.h>; no longer needed.
* | Doc tweaks for condGlenn Morris2013-10-091-0/+4
| | | | | | | | | | | | * doc/lispref/control.texi (Conditionals): Copyedits. * src/eval.c (Fcond): Doc tweak.
* | Fix bug #15565 with assertion violations in x_free_gc.Eli Zaretskii2013-10-091-0/+5
| | | | | | | | | | src/xfaces.c (x_free_gc) [HAVE_X_WINDOWS, HAVE_NTGUI]: Don't pass expressions with side effects to eassert.
* | * lisp/profiler.el: Create a more coherent calltree from partial backtraces.Stefan Monnier2013-10-081-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (profiler-format): Hide the tail with `invisible' so that C-s can still find the hidden elements. (profiler-calltree-depth): Don't recurse so enthusiastically. (profiler-function-equal): New hash-table-test. (profiler-calltree-build-unified): New function. (profiler-calltree-build): Use it. (profiler-report-make-name-part): Indent the calltree less. (profiler-report-mode): Add visibility specs for profiler-format. (profiler-report-expand-entry, profiler-report-toggle-entry): Expand the whole subtree when provided with a prefix arg. * src/fns.c (hashfn_user_defined): Allow hash functions to return any Lisp_Object.
* | Fix minor problems found by static checking.Paul Eggert2013-10-081-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * dispnew.c (save_current_matrix): Omit unnecessary casts. * dispnew.c (update_frame_with_menu): Mark debug local as used. * keyboard.c, keyboard.h (Qmouse_movement): Now static. * keyboard.c (read_menu_command): Remove unused local. * lisp.h (read_menu_command): New decl. * menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for benefit of STRING_CHAR_AND_LENGTH. All uses changed. Return ptrdiff_t, not int. * term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t, not int, for benefit of xpalloc. (tty_menu_create, tty_menu_make_room): Simplify by using xzalloc and xpalloc. (have_menus_p): Remove; unused. (tty_menu_add_pane, tty_menu_add_selection): Change signedness of local char * pointer to pacify STRING_CHAR_AND_LENGTH. (tty_menu_add_selection, tty_menu_locate, tty_meny_destroy): Now static. (save_and_enable_current_matrix): Omit unnecessary casts. (read_menu_input): Omit local extern decl (now in lisp.h). Don't access uninitialized storage if mouse_get_xy fails. (tty_menu_activate): Mark local as initialized, for lint. (tty_menu_activate, tty_meny_show): Remove unused locals.
* | Support menus on text-mode terminals.Eli Zaretskii2013-10-081-0/+113
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/xterm.h (xw_popup_dialog): Add prototype. src/xmenu.c (Fx_popup_dialog): Function moved to menu.c. (xmenu_show): Block input here, instead in Fx_popup_menu. (xw_popup_dialog): New function, with X-specific bits of popup dialogs. src/xdisp.c (deep_copy_glyph_row, display_tty_menu_item): New functions. src/window.c (Fset_window_configuration): Use run-time tests of the frame type instead of compile-time conditionals, when menu-bar lines are considered. src/w32term.h (w32con_hide_cursor, w32con_show_cursor) (w32_popup_dialog): New prototypes. src/w32menu.c (Fx_popup_dialog): Function deleted. (w32_popup_dialog): New function, with w32 specific bits of popup dialogs. Block input here. src/w32inevt.c (w32_console_read_socket): Minor change to add debugging TTY events. src/w32fns.c (show_hourglass): If returning early because the frame is not a GUI frame, unblock input. src/w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX) (cursorY): New functions. src/termhooks.h (cursorX, cursorY): Prototypes of functions on WINDOWSNT, macros that call curX and curY elsewhere. src/termchar.h (struct tty_display_info) <showing_menu>: New flag. src/term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32 specific function to hide and show cursor on a text-mode terminal. (tty_menu_struct, struct tty_menu_state): New structures. (tty_menu_create, tty_menu_make_room, tty_menu_search_pane) (tty_menu_calc_size, mouse_get_xy, tty_menu_display) (have_menus_p, tty_menu_add_pane, tty_menu_add_selection) (tty_menu_locate, save_and_enable_current_matrix) (restore_desired_matrix, screen_update, read_menu_input) (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback) (tty_pop_down_menu, tty_menu_last_menubar_item) (tty_menu_new_item_coords, tty_menu_show): New functions. (syms_of_term): New DEFSYMs for tty-menu-* symbols. src/nsterm.h (ns_popup_dialog): Adjust prototype. src/nsmenu.m (ns_menu_show): Block and unblock input here, instead of in x-popup-menu. (ns_popup_dialog): Adapt order of arguments to the other *_menu_show implementations. (Fx_popup_dialog): Function deleted. src/msdos.c (x_set_menu_bar_lines): Delete unused function. src/menu.h (tty_menu_show, menu_item_width): provide prototypes. src/menu.c (have_boxes): New function. (single_keymap_panes): Use it instead of a compile-time conditional. (single_menu_item): Use run-time tests of the frame type instead of compile-time conditionals. (encode_menu_string): New function. (list_of_items, list_of_panes): Use it instead of ENCODE_STRING the macro, since different types of frame need different encoding of menu items. (digest_single_submenu): Use run-time tests of frame type instead of, or in addition to, compile-time conditionals. (menu_item_width, Fmenu_bar_menu_at_x_y): New functions. (Fx_popup_menu): Detect when the function is called from keyboard on a TTY. Don't barf when invoked on a text-mode frame. Check frame type at run time, instead of compile-time conditionals for invoking terminal-specific menu-show functions. Call tty_menu_show on text-mode frames. (Fx_popup_dialog): Moved here from xmenu.c. Test frame types at run time to determine which alternative to invoke; support dialogs on TTYs. src/keyboard.h <Qmouse_movement>: Declare. src/keyboard.c <Qmouse_movement>: Now extern. <Qecho_keystrokes>: New static variable. (read_key_sequence): Accept an additional argument, a flag to prevent redisplay during reading of the key sequence. All callers changed. (read_menu_command): New function. (read_char): When COMMANDFLAG is -2, do not redisplay and do not autosave. (toolkit_menubar_in_use): New function. (make_lispy_event): Use it instead of a compile-time test. src/fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on window-system being available. src/editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call to x-popup-dialog on the frame type, they all now support popup dialogs. src/dispnew.c (save_current_matrix): Save the margin areas. (restore_current_matrix): Restore margin areas. (update_frame_with_menu): New function. src/dispextern.h (display_tty_menu_item, update_frame_with_menu): Add prototypes. src/alloc.c (make_save_ptr): Now compiled unconditionally. lisp/tmm.el (tmm-menubar): Adapt doc string to TTY menus functionality. lisp/tooltip.el (tooltip-mode): Don't error out on TTYs. lisp/menu-bar.el (popup-menu, popup-menu-normalize-position): Moved here from mouse.el. (popup-menu): Support menu-bar navigation on TTYs using C-f/C-b and arrow keys. (tty-menu-navigation-map): New map for TTY menu navigation. lisp/loadup.el ("tooltip"): Load even if x-show-tip is not available. lisp/frame.el (display-mouse-p): Report text-mode mouse as available on w32. (display-popup-menus-p): Report availability if mouse is available; don't condition on window-system. lisp/faces.el (tty-menu-enabled-face, tty-menu-disabled-face) (tty-menu-selected-face): New faces. configure.ac (HAVE_MENUS): Define unconditionally. doc/emacs/screen.texi (Menu Bar): Adapt to TTY menus. doc/emacs/frames.texi (Frames): Mention menu support on text terminals. doc/emacs/files.texi (Visiting): Mention the "File" menu-bar menu. doc/emacs/display.texi (Standard Faces): Mention TTY faces for menus. doc/lispref/keymaps.texi (Defining Menus, Mouse Menus, Menu Bar): Modify wording to the effect that menus are supported on TTYs. doc/lisprefframes.texi (Pop-Up Menus, Dialog Boxes) (Display Feature Testing): Update for menu support on TTYs. etc/NEWS: Mention the new features.
* | | * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment.Dmitry Antipov2013-10-081-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | (redraw_frame, update_frame): Adjust users. * dispextern.h (set_window_update_flags): Adjust prototype. * xdisp.c (redisplay_internal): When updating all frames with zero windows_or_buffers_changed, assume that only the windows that shows current buffer should be really updated.
* | | Do not allocate huge temporary memory areas and objects while encodingDmitry Antipov2013-10-081-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for file I/O, thus reducing an enormous memory usage for large buffers. See http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00180.html. * coding.h (struct coding_system): New member raw_destination. * coding.c (setup_coding_system): Initialize it to zero. (encode_coding_object): If raw_destination is set, do not create dst_object. Add comment. * fileio.c (toplevel): New constant E_WRITE_MAX. (e_write): Do not encode more than E_WRITE_MAX characters per one loop iteration. Use raw_destination if E_WRITE_MAX characters is encoded.
* | | * nsterm.m (windowDidExitFullScreen:):Jan Djärv2013-10-081-0/+5
| | | | | | | | | | | | (toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS.
* | | Complete ChangeLog entry that was inadvertently truncated.Paul Eggert2013-10-071-0/+3
| | |
* | | Fix race where emacs aborts when sent SIGTERM.Paul Eggert2013-10-071-0/+4
| | | | | | | | | | | | | | | | | | | | | * keyboard.c (unblock_input_to): Don't process pending signals if a fatal error is in progress. Fixes: debbugs:15534
* | | * lisp.h (bits_word, BITS_WORD_MAX): New type and macro.Paul Eggert2013-10-071-0/+7
| | | | | | | | | | | | | | | | | | All uses of 'size_t' and 'SIZE_MAX' changed to use them, when they're talking about words in Lisp bool vectors. (BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T. All uses changed.
* | | Improve support for popcount and counting trailing zeros.Paul Eggert2013-10-071-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do this by using the Gnulib modules for this. This should generate faster code on non-GCC, non-MSC platforms, and make the code a bit more portable, at least in theory. * admin/merge-gnulib (GNULIB_MODULES): Add count-one-bits and count-trailing-zeros. * lib/count-one-bits.c, lib/count-one-bits.h: * lib/count-trailing-zeros.c, lib/count-trailing-zeros.h: * m4/count-one-bits.m4, m4/count-trailing-zeros.m4: New files, copied from gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * nt/gnulib.mk: Merge changes from lib/gnulib.mk. * src/data.c: Include <count-one-bits.h>, <count-trailing-zeros.h>. (USE_MSC_POPCOUNT, POPCOUNT_STATIC_INLINE) (NEED_GENERIC_POPCOUNT, popcount_size_t_generic) (popcount_size_t_msc, popcount_size_t_gcc): Remove; now done by Gnulib. (popcount_size_t): Now a macro that defers to Gnulib. (count_trailing_zero_bits): Return int, for consistency with Gnulib and because Emacs prefers signed to unsigned int. Don't assume that size_t is either unsigned int or unsigned long or unsigned long long. (size_t_to_host_endian): Do not assume that size_t is either exactly 32 or exactly 64 bits wide. * src/lisp.h (BITS_PER_SIZE_T): Define consistently with BITS_PER_LONG etc., so that it's now an enum constant, not a macro. No need to assume that it's either 32 or 64. Fixes: debbugs:15550
* | | * nsterm.m (windowDidEnterFullScreen:): setPresentationOptions onlyJan Djärv2013-10-071-0/+5
| | | | | | | | | | | | on >= 10.7.
* | | * xdisp.c (handle_fontified_prop): Prefer ptrdiff_t to int where needed.Dmitry Antipov2013-10-071-0/+1
| | | | | | | | | | | | Use bool for boolean.
* | | * insdel.c (insert_from_gap): Prefer ptrdiff_t to int where needed.Dmitry Antipov2013-10-071-0/+4
| | |
* | | emacs_read and emacs_write now use void *, not char *.Paul Eggert2013-10-071-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | * alloc.c (valid_pointer_p) [!WINDOWSNT]: Remove now-unnecessary cast. * sysdep.c (emacs_read, emacs_write, emacs_write_sig): Buffer arg is now void *, not char *. This matches plain 'read' and 'write' better, and avoids a constraint violation on Solaris 9 with Oracle Studio.
* | | * alloc.c (Fmake_string): For ASCII char initializer, preferDmitry Antipov2013-10-071-0/+7
| | | | | | | | | | | | | | | | | | memset to explicit loop. Otherwise copy largest possible chunk from initialized to uninitialized part, thus allowing the longer memcpy runs and reducing the number of loop iterations.
* | | Don't force auto hide dock when hide menu changes.Jan Djärv2013-10-061-0/+2
| | | | | | | | | | | | | | | (ns_update_auto_hide_menu_bar): Remove runtime check. Don't auto hide dock unless menubar is also auto hidden.
* | | * nsterm.m (ns_update_begin): If native fullscreen and no toolbar,Jan Djärv2013-10-061-0/+7
| | | | | | | | | | | | | | | | | | hide toolbar. (windowDidEnterFullScreen:): If presentation options are zero, set them here (Bug#15388).
* | | Minor doc fixes.Xue Fuqiao2013-10-051-0/+4
| | |
* | | * nsterm.m (check_native_fs): Remove erroneous comment.Jan Djärv2013-10-051-0/+4
| | |
* | | * xdisp.c (redisplay_internal): Simplify because scan_for_column nowDmitry Antipov2013-10-041-0/+5
| | | | | | | | | | | | uses find_newline instead of scan_newline and so doesn't move point.
* | | Use hardware support for byteswapping on glibc x86 etc.Paul Eggert2013-10-041-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Fedora 19 x86-64, the new bswap_64 needs 1 instruction, whereas the old swap64 needed 30. * admin/merge-gnulib (GNULIB_MODULES): Add byteswap. * lib/byteswap.in.h, m4/byteswap.m4: New files, copied from Gnulib. * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate. * src/fringe.c (init_fringe_bitmap) [WORDS_BIGENDIAN]: * src/sound.c (le2hl, le2hs, be2hl) [!WINDOWSNT]: Use byteswap.h's macros to swap bytes. * src/lisp.h (swap16, swap32, swap64): Remove. All uses replaced by bswap_16, bswap_32, bswap_64.
* | | * bytecode.c (exec_byte_code): Use some more volatile variablesPaul Eggert2013-10-031-0/+6
| | | | | | | | | | | | | | | to work around local variables getting clobbered by longjmp. Port to pre-C99, which doesn't allow decls after stmts.
* | | * lisp.h (eassert): Assume that COND is true when optimizing.Paul Eggert2013-10-031-0/+5
| | | | | | | | | | | | | | | | | | In other words, take on the behavior of eassert_and_assume. This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64). (eassert_and_assume): Remove. All uses replaced by eassert.
* | | * xdisp.c (Qglyphless_char): Now static.Paul Eggert2013-10-031-0/+2
| | |
* | | Merge from gnulib.Paul Eggert2013-10-031-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/conf_post.h (__has_builtin, assume): Remove; gnulib now does these. * src/lisp.h: Include <verify.h>, for 'assume'. This also incorpoprates: 2013-10-02 verify: new macro 'assume' 2013-09-26 dup2, dup3: work around another cygwin crasher 2013-09-26 getdtablesize: work around cygwin issue
* | | * eval.c (clobbered_eassert): New macro.Paul Eggert2013-10-021-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (internal_catch, internal_condition_case) (internal_condition_case_1, internal_condition_case_2) (internal_condition_case_n): Use it instead of eassert when the argument contains locals clobbered by longjmp. Don't use clobbered locals outside of clobbered_eassert. (internal_lisp_condition_case): Use a volatile variable to work around a local variable's getting clobbered.
* | | Introduce new bytecodes for efficient catch/condition-case in lexbind.Stefan Monnier2013-10-031-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Optimize under `condition-case' and `catch' if byte-compile--use-old-handlers is nil. (disassemble-offset): Handle new bytecodes. * lisp/emacs-lisp/bytecomp.el (byte-pushcatch, byte-pushconditioncase) (byte-pophandler): New byte codes. (byte-goto-ops): Adjust accordingly. (byte-compile--use-old-handlers): New var. (byte-compile-catch): Use new byte codes depending on byte-compile--use-old-handlers. (byte-compile-condition-case--old): Rename from byte-compile-condition-case. (byte-compile-condition-case--new): New function. (byte-compile-condition-case): New function that dispatches depending on byte-compile--use-old-handlers. (byte-compile-unwind-protect): Pass a function to byte-unwind-protect when we can. * lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): Adjust for the new compilation scheme using the new byte-codes. * src/alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist, and make them unconditional now that they're heap-allocated. * src/bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase and Bpophandler. (bcall0): New function. (exec_byte_code): Add corresponding cases. Improve error message when encountering an invalid byte-code. Let Bunwind_protect accept a function (rather than a list of expressions) as argument. * src/eval.c (catchlist): Remove (merge with handlerlist). (handlerlist, lisp_eval_depth): Not static any more. (internal_catch, internal_condition_case, internal_condition_case_1) (internal_condition_case_2, internal_condition_case_n): Use PUSH_HANDLER. (unwind_to_catch, Fthrow, Fsignal): Adjust to merged handlerlist/catchlist. (internal_lisp_condition_case): Use PUSH_HANDLER. Adjust to new handlerlist which can only handle a single condition-case handler at a time. (find_handler_clause): Simplify since we only a single branch here any more. * src/lisp.h (struct handler): Merge struct handler and struct catchtag. (PUSH_HANDLER): New macro. (catchlist): Remove. (handlerlist): Always declare.
* | | * lisp/subr.el (decode-char, encode-char): Use advertised-calling-conventionStefan Monnier2013-10-031-5/+10
| | | | | | | | | | | | | | | | | | | | | instead of the docstring to discourage use of the `restriction' arg. (error): Use `declare'. * src/charset.c (Fdecode_char, Fencode_char): Remove description of `restriction' arg. now that it's hidden by advertised-calling-convention.
* | | * macfont.m (macfont_draw): Use s->ybase for correct y position.Jan Djärv2013-10-021-0/+6
| | |
* | | * frame.h (struct frame): Drop has_minibuffer member because...Dmitry Antipov2013-10-021-0/+6
| | | | | | | | | | | | | | | (FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it. * frame.c (make_frame, make_minibuffer_frame): Adjust users.
* | | * window.h (struct window): Prefer enum text_cursor_kinds to intDmitry Antipov2013-10-021-0/+7
| | | | | | | | | | | | | | | | | | for phys_cursor_type member. Move the latter, phys_cursor_width, phys_cursor_ascent and phys_cursor_height under HAVE_WINDOW_SYSTEM. * window.c (replace_window, make_window): Adjust users.
* | | * fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM becauseDmitry Antipov2013-10-021-0/+5
| | | | | | | | | | | | this module is never compiled otherwise.
* | | * macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRectAlp Aker2013-10-011-0/+5
| | | | | | | | | | | | (Bug#15500).
* | | Fix bug #15484 with link error in the --without-x configuration.Eli Zaretskii2013-09-291-0/+5
| | | | | | | | | | | | | | | src/xdisp.c (get_next_display_element): Don't call face_for_font in a build configured --without-x.
* | | * window.c (calc_absolute_offset): #elif should be #elif defined.Jan Djärv2013-09-291-0/+2
| | |
* | | * frame.c (delete_frame): Block/unblock input to overcome raceJan Djärv2013-09-291-0/+5
| | | | | | | | | | | | | | | | | | condition. Fixes: debbugs:15475