Commit graph

36037 commits

Author SHA1 Message Date
Dmitry Antipov
9242810cd3 * configure.ac: Check whether sys/sysinfo.h provides
Linux 'sysinfo' function and 'struct sysinfo' type.
* src/alloc.c (Fmemory_info): New function.
* lisp/files.el (warn-maybe-out-of-memory): New function.
(find-file-noselect): Use it.
2014-07-10 16:33:35 +04:00
Dmitry Antipov
80fb41cd90 * coding.h (struct coding_system): Remove 'error_positions' (unused)
and 'errors' (set but unused) fields.  Use bitfields for 'eol_seen',
'mode', 'common_flags' and 'result' fields, adjust layout to avoid
extra padding and shrink struct coding_system by 56 bytes (x86_64).
* coding.c (decode_coding_utf_8, decode_coding_utf_16)
(decode_coding_emacs_mule, decode_coding_iso_2022, decode_coding_sjis)
(decode_coding_big5, decode_coding_charset, decode_coding)
(encode_coding): Adjust users.
2014-07-10 08:35:55 +04:00
Paul Eggert
09880d8533 * syntax.c (back_comment): Use more-natural location for label. 2014-07-09 16:39:58 -07:00
Paul Eggert
f507537736 * font.c, font.h (font_unparse_fcname): Now static.
Define only if HAVE_XFT || HAVE_FREETYPE || HAVE_NS.
2014-07-09 16:35:31 -07:00
Dmitry Antipov
205ededbb2 * coding.c (ALLOC_CONVERSION_WORK_AREA): Prefer ptrdiff_t to int and
so avoid integer overflow if decoded gap size exceeds INT_MAX bytes.
2014-07-09 14:36:35 +04:00
Dmitry Antipov
876d043fad Next minor cleanup of font subsystem.
* font.h (enum font_property_index): Remove FONT_ENTITY_INDEX (no
users) and FONT_FORMAT_INDEX (set by a few font drivers but never
really used).
(FONT_ENTITY_NOT_LOADABLE, FONT_ENTITY_SET_NOT_LOADABLE): Remove;
unused.
* ftfont.h (ftfont_font_format): Remove prototype.
* ftfont.c (ftfont_font_format): Remove; now unused.
(ftfont_open):
* nsfont.m (nsfont_open):
* w32font.c (w32font_open_internal):
* w32uniscribe.c (uniscribe_open):
* xfont.c (xfont_open):
* xftfont.c (xftfont_open): All users changed.
2014-07-09 10:25:35 +04:00
Glenn Morris
5613a6f6d5 Merge from emacs-24; up to 2014-06-19T14:03:45Z!monnier@iro.umontreal.ca 2014-07-08 19:04:12 -07:00
Paul Eggert
ef0cc37f85 * process.c (read_and_dispose_of_process_output): Fix typo
in previous patch: we want nonnegative fds, not nonzero fds.
2014-07-08 10:13:32 -07:00
Eli Zaretskii
9aac592d88 Fix bug #17969 with vertical-motion through continuation lines with TABs.
src/xdisp.c (move_it_to): Adjust calculation of line_start_x to what
 x_produce_glyphs does when it generates a stretch glyph that
 represents a TAB.
2014-07-08 18:12:39 +03:00
Dmitry Antipov
96f17a2f73 * font.c (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
New function, with an intention to avoid code duplication between
a few font drivers.
* font.h (font_build_object) [HAVE_XFT || HAVE_FREETYPE || HAVE_NS]:
Add prototype.
* ftfont.c (ftfont_open):
* macfont.m (macfont_open):
* xftfont.c (xftfont_open): Use it.
2014-07-08 18:50:45 +04:00
Dmitry Antipov
d64a4984c1 * nsfont.m (nsfont_close): Free glyphs and metrics arrays as well. 2014-07-08 18:19:34 +04:00
Dmitry Antipov
f298de5264 * chartab.c (char_table_translate): Move to...
* character.h (char_table_translate): ... inline function here.
Avoid Faref and assume that args are always valid.  This helps to
speedup search, which is especially important for a huge buffers.
* lisp.h (char_table_translate): Remove prototype.
2014-07-08 11:17:04 +04:00
Paul Eggert
12dc542935 * process.c: Add sanity checks for file descriptors.
(wait_reading_process_output, Fprocess_filter_multibyte_p):
Check that infd is nonnegative before using it as an fd.
(read_and_dispose_of_process_output, Fprocess_send_eof):
Likewise, for outfd.
(wait_reading_process_output): Omit unnecessary check of infd.

Fixes: debbugs:17844
2014-07-07 23:24:07 -07:00
Paul Eggert
cae17e36bc Minor fixups related to usage of the 'long' type.
* gnutls.c (emacs_gnutls_handshake):
* xfaces.c (dump_realized_face):
Work even if 'long' is narrower than 'void *'.
* termcap.c (scan_file):
* xselect.c (x_decline_selection_request)
(x_reply_selection_request, x_get_window_property):
* xterm.c (x_set_frame_alpha):
Remove unnecessary 'L' suffixes of integer constants.
* xfns.c (hack_wm_protocols):
* xselect.c (x_fill_property_data):
* xterm.c (x_set_offset, x_set_window_size_1, x_make_frame_invisible):
Remove unnecessary casts to 'long'.
(set_machine_and_pid_properties): Don't assume pid_t fits in 32 bits.
2014-07-07 16:33:05 -07:00
Paul Eggert
0e14232948 Minor ImageMagick safety fixes.
* image.c (imagemagick_compute_animated_image):
Remove useless assignment to local.  Avoid problems if dest_width is 0.
(imagemagick_load_image): Use int for pixel counts that can't
exceed INT_MAX.  Avoid problem if PixelGetNextIteratorRow returns
a row width greater than the image width (or greater than LONG_MAX!).
2014-07-07 16:25:13 -07:00
Kenichi Handa
aeb894a9a0 merge trunk 2014-07-05 23:07:57 +09:00
Eli Zaretskii
bff2d1ffc4 src/xdisp.c (pos_visible_p): Fix inaccurate comment. 2014-07-05 13:24:11 +03:00
Eli Zaretskii
546c26b394 Fix bug #17944 with pos-visible-in-window-p when there's image at window start.
src/xdisp.c (pos_visible_p): 	Fix condition for finding CHARPOS by the
 first call to move_it_to.
2014-07-05 12:53:50 +03:00
Eli Zaretskii
f2c74bf383 A better fix for bug #17942.
src/xdisp.c (pos_visible_p): If CHARPOS is at beginning of window,
 and there is a display property at that position, don't call
 move_it_to to move to a position before window start.
2014-07-05 11:24:07 +03:00
Eli Zaretskii
bf97132f83 Fix bug #17942 with pos-visible-in-window-p and image and BOB.
src/xdisp.c (pos_visible_p): If CHARPOS is at BEGV, and there is a
 display property at BEGV, don't call move_it_to to move to a
 position before BEGV.
2014-07-05 10:38:13 +03:00
Stefan Monnier
6246df666b * src/syntax.c (find_defun_start): Try the cache even
if !open_paren_in_column_0_is_defun_start.
(back_comment): If find_defun_start was pessimistic, use the
scan_sexps_forward result to improve the cache.

Fixes: debbugs:16526
2014-07-04 22:17:14 -04:00
Jan Djärv
8069993ef7 Backport from trunk.
* xfns.c (create_frame_xic): Pass XNStatusAttributes to XCreateIC
only if xic_style calls for it.  This change allows Emacs to work
with ibus.  Also, don't leak resources if create_frame_xic fails,
and stop caching xic_style across different displays.
(supported_xim_styles): Make const.
(best_xim_style): Remove first parameter: it's always just
supported_xim_styles.  Change to look at supported_xim_styles
directly.

Fixes: debbugs:17928
2014-07-04 17:15:02 +02:00
Eli Zaretskii
5b5953c070 Fix bug #17905 with display of point in partially visible line at end of window.
src/xdisp.c (redisplay_window): If redisplay of a window ends up
 with point in a partially visible line at end of the window, make
 sure the amended position of point actually has smaller Y
 coordinate; if not, give up and scroll the display.
 src/window.c (window_scroll_pixel_based): When point ends up at the
 last fully visible line, don't let move_it_to stop at the left
 edge of the line and dupe us into thinking point is inside the
 scroll margin.
2014-07-04 16:22:04 +03:00
Eli Zaretskii
f0f34bc8b9 src/w32.c (network_interface_info): Make sure the argument is a Lisp string. 2014-07-04 10:40:08 +03:00
Dmitry Antipov
9d7b0167fd * font.h (struct font_driver): Remove get_outline and free_outline;
not used by any font driver.
* ftfont.c (ftfont_driver):
* macfont.m (macfont_driver):
* nsfont.m (nsfont_driver):
* w32font.c (w32font_driver):
* w32uniscribe.c (uniscribe_font_driver):
* xfont.c (xfont_driver): Related users changed.
* xselect.c (x_get_window_property): Use convenient xmalloc.
Call to xfree only if some data was really allocated.
2014-07-04 06:28:54 +04:00
Dmitry Antipov
af8ee9ca88 On MS-Windows, display busy cursor on all GUI frames.
This is similar to what we have on X.  Quickly tested by Dani Moncayo.
* w32fns.c (toplevel): Remove hourglass_hwnd; no longer used.
(w32_show_hourglass, w32_hide_hourglass, w32_note_current_window):
Likewise.
(hide_hourglass, show_hourglass): Redesign to match X counterparts.
* xdisp.c (start_hourglass): Remove Windows-specific bits.
2014-07-03 22:12:41 +04:00
Dmitry Antipov
60ab579771 Use convenient alists to manage per-frame font driver-specific data.
* frame.h (struct frame): Rename font_data_list to...
[HAVE_XFT || HAVE_FREETYPE]: ... font_data, which is a Lisp_Object now.
* font.h (struct font_data_list): Remove; no longer need a special
data type.
(font_put_frame_data, font_get_frame_data) [HAVE_XFT || HAVE_FREETYPE]:
Adjust prototypes.
* font.c (font_put_frame_data, font_get_frame_data)
[HAVE_XFT || HAVE_FREETYPE]: Prefer alist functions to ad-hoc list
management.
* xftfont.c (xftfont_get_xft_draw, xftfont_end_for_frame):
Related users changed.
* ftxfont.c (ftxfont_get_gcs, ftxfont_end_for_frame): Likewise.
Prefer convenient xmalloc and xfree.
2014-07-03 16:20:00 +04:00
Glenn Morris
2d3c9015c7 Merge from emacs-24; up to 2014-06-15T04:52:34Z!eli@barzilay.org 2014-07-02 23:00:53 -07:00
Dmitry Antipov
e993f8d5d3 * lisp.h (toplevel): Add compile-time assert to verify suitable member layout
in Lisp_Sub_Char_Table.
2014-07-02 19:22:49 +04:00
Dmitry Antipov
15c1107a30 * print.c (print_object): Adjust to match new layout of sub char-table
(Bug#17898).
2014-07-02 18:00:41 +04:00
Dmitry Antipov
477daa5b53 Shrink Lisp_Sub_Char_Table by preferring C integers to Lisp_Objects.
* lisp.h (struct Lisp_Sub_Char_Table): Use C integers for depth and
min_char slots.  Adjust comment.
(enum char_table_specials): Rename from CHAR_TABLE_STANDARD_SLOTS.
Add SUB_CHAR_TABLE_OFFSET member.
(make_uninit_sub_char_table): New function.
* alloc.c (mark_char_table): Add extra argument to denote char table
subtype.  Adjust to match new layout of sub char-table.
(mark_object): Always mark sub char-tables with mark_char_table.
* chartab.c (make_sub_char_table, copy_sub_char_table)
(sub_char_table_ref, sub_char_table_ref_and_range, sub_char_table_set)
(sub_char_table_set_range, optimize_sub_char_table, map_sub_char_table)
(map_sub_char_table_for_charset, uniprop_table_uncompress):
All related users changed.
* lread.c (read1): Adjust to match new layout of sub char-table.
2014-07-02 07:26:19 +04:00
Stefan Monnier
1dc6f7e738 * doc/lispref/keymaps.texi (Key Lookup): Remove mention of indirect entries.
(Scanning Keymaps): Reword the `noindirect' argument.
* src/keymap.c (get_keyelt): Simplify.
(copy_keymap_item): Remove left-over code for when we had
key-shortcut caches.
2014-07-01 21:49:31 -04:00
Eli Zaretskii
cdadeecf05 src/dispnew.c: Fix a typo in a comment. 2014-07-01 21:00:29 +03:00
Eli Zaretskii
ff6e6a42fc Fix bug #17892 with mode/header line and display margins.
src/dispnew.c (prepare_desired_row): Accept 2 additional arguments:
 the window whose glyph row is being prepared and a flag whether it
 is for mode/header line.  Make sure the glyph row's marginal areas
 are in sync with what the window wants.
 src/xdisp.c (display_line, display_mode_line): Call
 prepare_desired_row with additional arguments, as appropriate.
 src/dispextern.h (prepare_desired_row): Adjust prototype.
 src/window.h: Improve commentary of the marginal columns.
2014-07-01 20:07:24 +03:00
Kenichi Handa
763a11d0d0 merge trunk 2014-07-02 00:34:58 +09:00
Kenichi Handa
0782685d43 * coding.c (MIN_CHARBUF_SIZE): Delete it.
(MAX_CHARBUF_EXTRA_SIZE): New macro.
(ALLOC_CONVERSION_WORK_AREA): Use MAX_CHARBUF_EXTRA_SIZE.
2014-07-02 00:31:59 +09:00
Dmitry Antipov
39a61a22ed Fix ChangeLog entry 2014-07-01 18:51:26 +04:00
Dmitry Antipov
9714dfd285 * menu.c (Fx_popup_dialog): Set Vmenu_updating_frame to avoid crash
caused by xw_popup_dialog in daemon mode (Bug#17891).
2014-07-01 12:07:32 +04:00
Dmitry Antipov
34ac10a87b * xfaces.c (init_frame_faces): Always realize basic faces (#Bug17889). 2014-07-01 11:30:33 +04:00
Jan Djärv
98bfa4f1e6 Fix use of deallocated memory.
* nsterm.h (EmacsScroller): Remove dealloc.

* nsterm.m (judge): EmacsScroller: Move dealloc code here.
(dealloc): Remove for EmacsScroller.
2014-06-30 20:44:56 +02:00
Eli Zaretskii
1e23f9f308 Fix bug #17875 with changing TTY frame size, then selecting new frame.
src/frame.c (do_switch_frame): When switching to another TTY frame,
 make sure FrameCols and FrameRows are in sync with the new frame's
 data.
2014-06-30 19:45:38 +03:00
Eli Zaretskii
c6ecf7f23d Fix bug #17881 with infloop in decoding emacs-mule encoded text.
src/coding.c (MIN_CHARBUF_SIZE): Enlarge to 32.
2014-06-30 18:39:29 +03:00
Jan Djärv
9c660a187c Remove unnecessary redisplays in NS port.
* nsmenu.m (update_frame_tool_bar): Set wait_for_tool_bar to NO
when setNeedsDisplay is called so we don't trigger redisplay for every
tool bar update.

* nsterm.m (any_help_event_p): New variable.
(mouseMoved:): Set any_help_event_p to YES if help event is
generated.  Remove else with empty help event that triggered redisplay
for every mouse move.
(windowDidResignKey:): If any_help_event_p, generate empty help
event.
2014-06-30 14:38:09 +02:00
Dmitry Antipov
8d56de7901 * xfns.c (Qsuppress_icon): Remove; no real users.
(syms_of_xfns): Don't DEFSYM it.  Remove ancient comments.
* w32fns.c (Qsuppress_icon): Remove, for the same reason.
(syms_of_w32fns): Don't DEFSYM it.
2014-06-29 20:12:08 +04:00
Glenn Morris
a1212016db * src/Makefile.in (ns-app): Mark as PHONY. 2014-06-28 17:49:59 -07:00
Glenn Morris
78cc32a191 * src/Makefile.in ($(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a):
Fully revert earlier dumbness.
2014-06-28 16:35:17 -07:00
Glenn Morris
ef990bfd1f * src/Makefile.in: Fix thinko in previous. 2014-06-28 16:29:06 -07:00
Glenn Morris
8aa079fb75 Small cleanup for src/Makefile liblw.a, libXMenu11.a rules
* src/Makefile.in ($(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a):
Remove prerequisites, sub-makes will figure it out.
(FORCE): Remove.
(mostlyclean): There are no libXMenu11.a, liblw.a in this directory.

* oldXMenu/deps.mk (${OBJS}): Depend on ../src/config.h.
2014-06-28 16:19:04 -07:00
Glenn Morris
93160ec392 Use gcc auto-dependency information for lwlib and oldXMenu
* configure.ac (lwlib_deps_frag, oldxmenu_deps_frag): New output files.

* make-dist (lwlib, oldXMenu): Distribute *.mk.

* lwlib/Makefile.in: Move old dependency information to new file deps.mk.
(MKDIR_P, DEPFLAGS, MKDEPDIR, lwlib_deps_frag):
New, set by configure.
(DEPDIR): New variable.
(ALL_CFLAGS): Add DEPFLAGS.
(.c.o): Add MKDEPDIR.
(clean, mostlyclean): Delete DEPDIR.

* lwlib/deps.mk, lwlib/autodeps.mk: New files.

* oldXMenu/Makefile.in: Move old dependency information to new file deps.mk.
(MKDIR_P, DEPFLAGS, MKDEPDIR, oldxmenu_deps_frag):
New, set by configure.
(DEPDIR): New variable.
(ALL_CFLAGS): Add DEPFLAGS.
(.c.o): Add MKDEPDIR.
(clean, mostlyclean): Delete DEPDIR.

* oldXMenu/deps.mk, oldXMenu/autodeps.mk: New files.

* src/deps.mk: Comment update.

* .bzrignore: Ignore lwlib/deps, oldXMenu/deps.
2014-06-28 15:57:23 -07:00
Glenn Morris
e0d9c3c9a2 Merge from emacs-24; up to 2014-06-12T14:55:48Z!monnier@iro.umontreal.ca 2014-06-28 10:27:29 -07:00