1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-18 08:51:45 -08:00
Commit graph

35029 commits

Author SHA1 Message Date
Jan Djärv
a3e9050cbb Don't force auto hide dock when hide menu changes.
(ns_update_auto_hide_menu_bar): Remove runtime check.
Don't auto hide dock unless menubar is also auto hidden.
2013-10-06 17:59:11 +02:00
Jan Djärv
28c760996e * nsterm.m (ns_update_begin): If native fullscreen and no toolbar,
hide toolbar.
(windowDidEnterFullScreen:): If presentation options are zero,
set them here (Bug#15388).
2013-10-06 17:53:30 +02:00
Xue Fuqiao
544a2a8049 Minor doc fixes. 2013-10-05 23:06:17 +08:00
Jan Djärv
a27fd309a1 * nsterm.m (check_native_fs): Remove erroneous comment. 2013-10-05 16:41:10 +02:00
Dmitry Antipov
942f6f82c9 * xdisp.c (redisplay_internal): Simplify because scan_for_column now
uses find_newline instead of scan_newline and so doesn't move point.
2013-10-04 17:41:10 +04:00
Paul Eggert
4eed315732 Use hardware support for byteswapping on glibc x86 etc.
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.
2013-10-04 00:36:22 -07:00
Paul Eggert
157fec2e19 * bytecode.c (exec_byte_code): Use some more volatile variables
to work around local variables getting clobbered by longjmp.
Port to pre-C99, which doesn't allow decls after stmts.
2013-10-03 23:51:50 -07:00
Paul Eggert
75273afb0d * lisp.h (eassert): Assume that COND is true when optimizing.
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.
2013-10-03 09:16:31 -07:00
Paul Eggert
ead45345b1 * xdisp.c (Qglyphless_char): Now static. 2013-10-03 06:55:28 -07:00
Paul Eggert
0a858ebfc5 Merge from gnulib.
* 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
2013-10-03 00:06:52 -07:00
Paul Eggert
b52f569dcf * eval.c (clobbered_eassert): New macro.
(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.
2013-10-02 23:31:06 -07:00
Stefan Monnier
adf2aa6140 Introduce new bytecodes for efficient catch/condition-case in lexbind.
* 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.
2013-10-03 00:58:56 -04:00
Stefan Monnier
328a8179fe * lisp/subr.el (decode-char, encode-char): Use advertised-calling-convention
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.
2013-10-03 00:41:23 -04:00
Jan Djärv
c348360a2b * macfont.m (macfont_draw): Use s->ybase for correct y position. 2013-10-02 20:52:34 +02:00
Dmitry Antipov
1a23cd48f5 * frame.h (struct frame): Drop has_minibuffer member because...
(FRAME_HAS_MINIBUF_P): ...this macro can be implemented without it.
* frame.c (make_frame, make_minibuffer_frame): Adjust users.
2013-10-02 19:38:12 +04:00
Dmitry Antipov
29bf4de474 * window.h (struct window): Prefer enum text_cursor_kinds to int
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.
2013-10-02 16:08:27 +04:00
Dmitry Antipov
a30ddace90 * fringe.c (toplevel): Do not use HAVE_WINDOW_SYSTEM because
this module is never compiled otherwise.
2013-10-02 15:49:24 +04:00
Alp Aker
45435f0857 * macfont.m (macfont_draw): Use CGRectMake rather than NSMakeRect
(Bug#15500).
2013-10-01 23:26:29 -04:00
Eli Zaretskii
92e5298bad Fix bug #15484 with link error in the --without-x configuration.
src/xdisp.c (get_next_display_element): Don't call face_for_font in
 a build configured --without-x.
2013-09-29 19:27:09 +03:00
Jan Djärv
66d13b2080 * window.c (calc_absolute_offset): #elif should be #elif defined. 2013-09-29 18:18:55 +02:00
Jan Djärv
caa50be230 * frame.c (delete_frame): Block/unblock input to overcome race
condition.

Fixes: debbugs:15475
2013-09-29 12:21:58 +02:00
Andreas Politz
d3e2acb659 In delete_frame record selected frame only after calling Qdelete_frame_functions (Bug#15477).
* frame.c (delete_frame): Record selected frame only after
calling Qdelete_frame_functions (Bug#15477).
2013-09-29 10:33:23 +02:00
Jan Djärv
1610938f74 Pick up default selection color on OSX when user defaults are not set.
* lisp/faces.el (region): Change ns_selection_color to
ns_selection_fg_color, add ns_selection_bg_color.

* src/nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Renamed from
NS_SELECTION_COLOR_DEFAULT.
(NS_SELECTION_FG_COLOR_DEFAULT): New.

* src/nsterm.m (ns_selection_color): Remove.
(ns_get_color): Check for ns_selection_(fg|bg)_color using
NSColor selectedText(Background)Color.  Only for COCOA.
(ns_term_init): Remove assignment of ns_selection_color, logic
moved to ns_get_color.
2013-09-28 12:01:50 +02:00
Eli Zaretskii
0d2647e645 Fix compilation under GLYPH_DEBUG, broken by conditional tool_bar_window.
src/xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
 frame' does not have the tool_bar_window member.
2013-09-28 11:19:33 +03:00
Barry O'Reilly
ba355de014 Signal error when reading an empty byte-code object (Bug#15405)
* lread.c (read1): signal error
* alloc.c (make_byte_code): eassert header size
(sweep_vectors): change an int to size_t
2013-09-25 23:46:47 -04:00
Paul Eggert
cf647d9300 * dispnew.c (clear_glyph_row, copy_row_except_pointers): Use enums
instead of ints, as it's the usual style for offsetof constants.  See:
http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00478.html
2013-09-24 08:29:27 -07:00
Paul Eggert
4710d6f406 * data.c (POPCOUNT_STATIC_INLINE): New macro, as a hack for popcount.
This is ugly, but it should fix the performance problem for older
GCC versions in the short run.  I'll look into integrating the
Gnulib module for popcount, as a better fix.
See the thread starting in:
http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00474.html
(popcount_size_t_generic) [NEED_GENERIC_POPCOUNT]:
(popcount_size_t_msc) [USE_MSC_POPCOUNT]:
(popcount_size_t_gcc) [USE_GCC_POPCOUNT]:
(popcount_size_t): Use it.
2013-09-24 07:53:49 -07:00
Daniel Colascione
10ebac9d6a Fix build break due to vector changes 2013-09-24 03:48:53 -08:00
Paul Eggert
9da0f50e5a * dispnew.c (clear_glyph_row, copy_row_except_pointers):
Prefer signed to unsigned integers where either will do.
No need for 'const' on locals that do not escape.
Omit easserts with unnecessary and unportable assumptions about
alignment.  Avoid unnecessary casts to char *.
2013-09-24 00:16:38 -07:00
Dmitry Antipov
d6d9cbc15c Use union for the payload of struct Lisp_Vector.
This helps to avoid a few glitches dictated by C's aliasing rules.
* lisp.h (struct Lisp_Vector): Use union for next and
contents member.  Adjust comment.  Change related users.
* alloc.c (next_in_free_list, set_next_in_free_list): Remove.
Related users changed.
* buffer.c, bytecode.c, ccl.c, character.h, chartab.c, composite.c:
* composite.h, disptab.h, fns.c, fontset.c, indent.c, keyboard.c:
* lread.c, msdos.c, process.c, w32menu.c, window.c, xdisp.c:
* xfaces.c, xfont.c, xmenu.c: Related users changed.
2013-09-24 10:43:20 +04:00
Dmitry Antipov
ec7bc82f9c Optimize glyph row clearing and copying routines.
* dispextern.h (struct glyph_row): Change layout of struct
glyph_row to help copy_row_except_pointers.  Adjust comment.
* dispnew.c (null_row): Remove.
(clear_glyph_row): Use offsetof and memset to find and clear
just the members that need clearing.  Adjust comment.
(copy_row_except_pointers): Likewise for copying.
2013-09-24 09:42:30 +04:00
Paul Eggert
7be68de5d2 Some minor cleanups of recently-added bool vector code.
* conf_post.h (assume): Always return void.  Use lint version
only if GCC and MSC versions don't apply.
* conf_post.h (assume):
* data.c (USC_MSC_POPCOUNT, count_trailing_zero_bits):
Depend on _MSC_VER, not __MSC_VER, for consistency with
the rest of Emacs.
* data.c (bool_vector_spare_mask, popcount_size_t_generic)
(popcount_size_t_msc, popcount_size_t_gcc, popcount_size_t)
(bool_vector_binop_driver, count_trailing_zero_bits)
(size_t_to_host_endian): Now static, not static inline;
the latter isn't needed with modern compilers and doesn't
work with older compilers anyway.
2013-09-23 21:28:06 -07:00
Paul Eggert
d160dd0c71 * alloc.c (valgrind_p): Use bool for boolean. 2013-09-23 20:44:58 -07:00
Dmitry Antipov
3a6a78fd25 * dispextern.h (cancel_line, init_desired_glyphs):
Remove ancient leftover.
2013-09-23 17:46:20 +04:00
Dmitry Antipov
e08813d023 * xdisp.c (noninteractive_need_newline, message_log_need_newline)
(overlay_arrow_seen, message_enable_multibyte, line_number_displayed)
(display_last_displayed_message_p, message_buf_print)
(message_cleared_p, help_echo_showing_p, hourglass_shown_p):
Use bool for boolean.
* dispextern.h (help_echo_showing_p, hourglass_shown_p):
* lisp.h (noninteractive_need_newline): Adjust declaration.
2013-09-23 17:25:19 +04:00
Dmitry Antipov
5492865b79 * dispnew.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
Move to...
* frame.c (frame_garbaged, selected_frame, last_nonminibuf_frame):
...this file and convert the latter to static.  Adjust comment.
(make_initial_frame):
* window.c (init_window_once): Adjust user.
* frame.h (last_nonminibuf_frame): Remove declaration.
* lisp.h (selected_frame): Likewise.
* msdos.c (the_only_display_info): Adjust comment.
2013-09-23 13:50:47 +04:00
Eli Zaretskii
b519df2390 Fix last commit.
src/xdisp.c (note_mouse_highlight): Adapt calculation of last argument to
 mouse_face_from_string_pos to the previous change.

Fixes: debbugs:15437
2013-09-23 12:28:57 +03:00
Eli Zaretskii
f03eddbff6 Fix bug #15437 with mouse highlight on overlay strings.
src/xdisp.c (mouse_face_from_string_pos): Fix off-by-one error in
 computing the end column of mouse-highlight that comes from
 display or overlay strings.
2013-09-23 12:18:38 +03:00
Eli Zaretskii
cd548fa41b Fix the definition of 'assume' for GCC older than 4.5.
src/conf_post.h (__has_builtin): Define to zero, if undefined, on
 all platforms, not just for clang.
2013-09-23 11:25:48 +03:00
Jan Djärv
8762e52438 Suppress some unhelpful warnings when using clang.
* configure.ac: With clang, check for and use -Wno-switch,
-Wno-tautological-constant-out-of-range-compare and -Wno-pointer-sign.

* conf_post.h(assume): Use __builtin_unreachable for clang.

* src/filelock.c (lock_file_1): Rearrange to remove compiler warning
about excess arguments to snprintf.
2013-09-23 09:12:01 +02:00
Juanma Barranquero
d4a9284f20 src/w32console.c, src/w32term.c: Remove unused variables.
src/w32console.c (initialize_w32_display): Remove unused variable hlinfo.
src/w32term.c (w32_scroll_bar_handle_click): Remove unused variable f.
2013-09-23 05:30:55 +02:00
Daniel Colascione
a84683fdd5 Tell valgrind about conservative GC regions and suppress spurious
warings.

* alloc.c (USE_VALGRIND): New macro; on by default
when ENABLE_CHECKING.
(mark_maybe_object,mark_maybe_pointer)
[USE_VALGRIND]: Mark conservatively-scanned regions valid for
valgrind purposes.
(valgrind_p) [USE_VALGRIND]: New variable.
(init_alloc) [USE_VALGRIND]: Initialize valgrind_p.
2013-09-22 18:34:52 -08:00
Jan Djärv
fb83ea63a5 Fix compiler warnings from XCode 5.0 on OSX.
* nsterm.m (setMarkedText:selectedRange:):
(deleteWorkingText):
* nsmenu.m (addDisplayItemWithImage:idx:tag:helpText:enabled:):
* nsfont.m (ns_get_covering_families, ns_findfonts): Cast NSLog
argument to unsigned long to avoid warning.
(nsfont_draw): Use 0.25 instead of  Fix2X (kATSItalicQDSkew).

* process.c (wait_reading_process_output): Change int pnamelen to
socklen_t.
2013-09-22 16:26:10 +02:00
Jan Djärv
8fef36c6ff * conf_post.h (assume): Fix compiler error: x shall be cond. 2013-09-22 13:07:17 +02:00
Daniel Colascione
cd9356f211 Suppress unused variable warning when compiling without a window system. 2013-09-22 01:48:21 -08:00
Daniel Colascione
3e0b94e7ff Add set operations for bool-vector.
http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00404.html

* data.c (Qbool_vector_p): New symbol.
(bool_vector_spare_mask,popcount_size_t_generic)
(popcount_size_t_msc,popcount_size_t_gcc)
(popcount_size_t)
(bool_vector_binop_driver)
(count_trailing_zero_bits,size_t_to_host_endian)
(Fbool_vector_exclusive_or)
(Fbool_vector_union)
(Fbool_vector_intersection,Fbool_vector_set_difference)
(Fbool_vector_subsetp,Fbool_vector_not)
(Fbool_vector_count_matches)
(Fbool_vector_count_matches_at): New functions.
(syms_of_data): Intern new symbol, functions.
* alloc.c (bool_vector_payload_bytes): New function.
(Fmake_bool_vector): Instead of calling Fmake_vector,
which performs redundant initialization and argument checking,
just call allocate_vector ourselves.  Make sure we clear any
terminating padding to zero.
(vector_nbytes,sweep_vectors): Use bool_vector_payload_bytes
instead of open-coding the size calculation.
(vroundup_ct): New macro.
(vroundup): Assume argument >= 0; invoke vroundup_ct.
* casetab.c (shuffle,set_identity): Change lint_assume to assume.
* composite.c (composition_gstring_put_cache): Change
lint_assume to assume.
* conf_post.h (assume): New macro.
(lint_assume): Remove.
* dispnew.c (update_frame_1): Change lint_assume to assume.
* ftfont.c (ftfont_shape_by_flt): Change lint_assume
to assume.
* image.c (gif_load): Change lint_assume to assume.
* lisp.h (eassert_and_assume): New macro.
(Qbool_vector_p): Declare.
(CHECK_BOOL_VECTOR,ROUNDUP,BITS_PER_SIZE_T): New macros.
(swap16,swap32,swap64): New inline functions.
* macfont.c (macfont_shape): Change lint_assume to assume.
* ralloc.c: Rename ROUNDUP to PAGE_ROUNDUP throughout.
* xsettings.c (parse_settings): Use new swap16 and
swap32 from lisp.h instead of file-specific macros.
2013-09-22 01:31:55 -08:00
Eli Zaretskii
76880d884d Fix bug #15365 with aborts in try_window_id.
src/xdisp.c (try_window_id): Don't abort if cursor row could not be
 found (which can legitimately happen when the glyph row at the
 window start is disabled in the current_matrix.
2013-09-22 10:13:14 +03:00
Paul Eggert
c6cfd9101e Fix syntax.h bug introduced by recent INLINE change.
syntax.h defined an extern inline function SYNTAX_ENTRY that was
conditionally compiled one way in some modules, and a different
way in others.  This doesn't work with extern inline functions,
which must have the same definition in all modules, because the
defining code might be shared across modules, depending on the
implementation.  Symptoms reported by Martin Rudalics in:
http://lists.gnu.org/archive/html/emacs-devel/2013-09/msg00414.html
* regex.c, syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Remove.
(SYNTAX, SYNTAX_ENTRY, SYNTAX_WITH_FLAGS): New macros,
overriding the corresponding functions in syntax.h.
* syntax.h (syntax_property_entry, syntax_property_with_flags)
(syntax_property): New inline functions.
(SYNTAX_ENTRY, SYNTAX_WITH_FLAGS, SYNTAX):
Rewrite in terms of these new functions.
2013-09-21 23:22:05 -07:00
Eli Zaretskii
b3f1d1198a Fix bug #15426 with directory-files invoked from a unibyte buffer.
src/dired.c (directory_files_internal): Use multibyte_chars_in_text,
 not chars_in_text, whose result depends on the multibyteness of
 the current buffer.
2013-09-21 14:48:19 +03:00
Paul Eggert
e3b29769a8 Port recent change to hosts where pointers aren't 'long'.
* xterm.c (x_send_scroll_bar_event, x_scroll_bar_to_input_event):
Don't assume that pointers are the same width as 'long'.
Add a compile-time check that a pointer fits into two X slots.
2013-09-20 13:23:20 -07:00