Commit graph

38326 commits

Author SHA1 Message Date
Paul Eggert
ae712666bb Port to GCC 5.3.1 20160406 (Red Hat 5.3.1-6)
* src/indent.c (Fvertical_motion): Pacify --enable-gcc-warnings
when using the April 6 Fedora patch to GCC.
2016-04-16 19:49:31 -07:00
Eli Zaretskii
ab849b7fac Fix w32 memory-management problem when extending buffer text
* src/w32heap.c (mmap_realloc): Only attempt extending a region if
the following region has the same allocation base.  Also, use the
original allocation base and enlarged size to commit reserved
memory, to ensure that the allocation base stays at its original
value.  This fixes several hard-to-debug problems whereby part of
buffer text was overwritten with binary nulls, because
mmap_realloc copied only part of buffer text when extending it.
See
http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00325.html
and http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23223#55 for two
examples of the related problems.
2016-04-15 17:26:37 +03:00
Paul Eggert
32364bbbaa substitute-command-keys keeps quotes’ text props
Problem reported by Clément Pit--Claudel (Bug#23254).
* src/doc.c: Include intervals.h.
(Fsubstitute_command_keys): If the only substitutions are for
quotes, copy the source string’s text properties too, since no
substring lengths have changed.
2016-04-14 08:23:00 -07:00
YAMAMOTO Mitsuharu
567ab529f3 * src/xwidget.c (x_draw_xwidget_glyph_string): More clipping fixes. 2016-04-14 07:47:55 +09:00
Paul Eggert
ca50981001 Improve time zone documentation
* doc/lispref/os.texi (Time Zone Rules):
New section, mostly with material moved here from other sections.
* doc/emacs/cmdargs.texi (General Variables):
* doc/lispref/os.texi (Time Conversion, Time Parsing):
Xref new section.
* etc/NEWS, etc/PROBLEMS:
* lisp/org/org.el (org-timestamp-format):
* src/editfns.c (Fformat_time_string, Fdecode_time)
(Fencode_time, Fcurrent_time_string, Fcurrent_time_zone)
(Fset_time_zone_rule):
When documenting time zone rule strings, mention the TZ
environment variable in preference to mentioning the
sort-of-internal function set-time-zone-rule.
2016-04-12 08:49:19 -07:00
YAMAMOTO Mitsuharu
9344612d3c Disable multicolor fonts on OS X since they are not supported on free systems
* src/macfont.m (macfont_list): Don't use color bitmap fonts.
2016-04-12 08:27:24 +09:00
Paul Eggert
488a72f8e3 ; Spelling fixes 2016-04-10 23:55:05 -07:00
Philipp Stephani
b57076929f Remove undefined behavior in OS X dumper.
Found by Address Sanitizer.

* src/unexmacosx.c (unexec_write): Use Mach virtual memory API to
avoid undefined behavior when reading arbitrary memory.
2016-04-09 12:54:45 -07:00
Joakim Verona
97211f3630 Fix clipping of xwidgets
* src/xwidget.c (x_draw_xwidget_glyph_string): Use window_box
instead of calculating the clipping borders manually.  Suggested
by YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>.
2016-04-09 15:04:54 +03:00
Paul Eggert
3283271253 * src/xsmfns.c (syms_of_xsmfns): Remove stray "s in doc strings. 2016-04-08 16:30:23 -07:00
Alan Third
f6497c6e76 Set locale encoding to UTF-8 when run from OS X GUI.
* src/nsterm.m (ns_init_locale): Append .UTF-8 when setting LANG.
2016-04-08 15:52:55 +02:00
Eli Zaretskii
787df9dd05 ; * src/keyboard.c (read_char): Fix typos in a comment. 2016-04-03 20:06:51 +03:00
Paul Eggert
13c8f29ce3 make-xwidget unused arg cleanup
* doc/lispref/display.texi (Xwidgets): Remove stray refs.
* src/xwidget.c (syms_of_xwidget): Qwebkit, not Qwebkit_osr.
2016-04-02 18:32:13 -07:00
Joakim Verona
36e05f0bf7 Remove unused arguments from make-xwidget
The arguments BEG and END were unused, and are now removed.

* display.texi (Xwidgets): Document the change
* xwidget.el (make-xwidget, xwidget-insert)
(xwidget-webkit-new-session): Reflect changed arguments
* xwidget.c (Fmake_xwidget, syms_of_xwidget): Reflect changed arguments
2016-04-02 18:32:13 -07:00
Eli Zaretskii
b3b523cdd6 Avoid crashes due to insanely large columns in tabulated-list-format
* src/xdisp.c (append_stretch_glyph, produce_xwidget_glyph)
(produce_image_glyph): Limit the pixel width of the produced glyph
to SHRT_MAX.  (Bug#23178)
(append_composite_glyph, append_glyph, append_glyphless_glyph):
Add assertions to verify that the pixel width of the glyph will
never overflow a 'short'.
* src/term.c (append_composite_glyph): Add assertion to verify
that the pixel width of the glyph will never overflow a 'short'.
2016-04-01 12:47:29 +03:00
Eli Zaretskii
06495c96ae Fix rare problems with echo-area display and multiple frames
* src/xdisp.c (redisplay_window): Bind inhibit-redisplay non-nil
around the call to x_consider_frame_title, to prevent
resize_mini_window from undoing echo-area display.  (Bug#23124)
2016-03-29 20:38:54 +03:00
Paul Eggert
e65c3079c6 * src/font.c (QCuser_spec): Add missing colon to :user-spec. 2016-03-27 15:03:12 -07:00
YAMAMOTO Mitsuharu
278c8a7ef7 * src/xwidget.c (Fxwidget_resize): Fix inappropriate use of XFASTINT. 2016-03-27 18:00:08 +09:00
Eli Zaretskii
cf40f389cf Ignore non-nil. non-cons values of unread-command-events
* src/keyboard.c (requeued_events_pending_p, read_char)
(Finput_pending_p): Use CONSP instead of !NILP to see if there are
unread command events to be processed.  (Bug#22976)
2016-03-26 11:52:12 +03:00
Eli Zaretskii
8ee4c52abc Improve documentatuon of 'truncate-partial-width-windows'
* src/xdisp.c (syms_of_xdisp) <truncate-partial-width-windows>:
Clarify in the doc string how the width of partial-width windows
is computed for the purposes of truncation decision.  (Bug#4338)

* doc/emacs/windows.texi (Split Window): Clarify how the width of
windows is calculated for the purposes of truncation decision.
* doc/emacs/display.texi (Line Truncation): Remove a redundant
index entry.
2016-03-26 10:17:12 +03:00
Paul Eggert
fb9a62c9c4 * src/ftfont.c (ftfont_shape_by_flt): Parenthesize as per GNU style. 2016-03-25 11:00:23 -07:00
Eli Zaretskii
e70ee9d680 Fix scrolling upwards with 'xwidget-webkit-browse-url'
* src/xwidget.c (Fxwidget_set_adjustment): Use CHECK_NUMBER instead
of CHECK_NATNUM.  Suggested by Shayan Pirani <shayanpirani@gmail.com>.
(Bug#22918)
2016-03-25 12:51:57 +03:00
K. Handa
44782dea43 Fix display of Indic scripts
* ftfont.c (ftfont_shape_by_flt): For combining characters out
of the range U+300...U+36F, use the "combining" FLT only with
non-OTF fonts.
2016-03-25 12:40:25 +03:00
Eli Zaretskii
326c64fcc3 Fix splash screen display at startup
* src/frame.c (DEFAULT_ROWS): Enlarge to 36, so that the initial
window displayed by "emacs -q" has enough space to show the whole
text even if it includes 2 lines talking about recovering crashes
sessions.  (Bug#23074)

* lisp/startup.el (use-fancy-splash-screens-p): Fix off-by-one
error when computing the window-height from frame-height.

* etc/NEWS: Mention the change.
2016-03-25 10:45:39 +03:00
Paul Eggert
45577d548d Avoid GTK 3 crash with icons and masks
Problem reported by Mosè Giordano (Bug#18997).
* src/gtkutil.c (xg_get_pixbuf_from_pixmap): Remove.
(xg_get_pixbuf_from_pix_and_mask): Do not use
xg_get_pixbuf_from_pixmap, as it is poorly documented.  Instead,
invoke XGetPixel directly.  This is slow but speed is not
important here.  Also, fail for unusual situations (not TrueColor,
or images that are not 8 bits per sample) instead of displaying
junk or crashing.
2016-03-24 16:53:23 -07:00
Eli Zaretskii
077b78cffc Define make_save_ptr_ptr unconditionally
* src/alloc.c (make_save_ptr_ptr): Remove the !(defined
USE_X_TOOLKIT || defined USE_GTK) conditional.  Reported by
Philipp Stephani <phst@google.com>.  (Bug#23101)
2016-03-24 20:52:45 +02:00
Eli Zaretskii
20a1003f6d Preserve current buffer when popping up TTY menus
* src/term.c (tty_menu_show): Be sure to save and restore the
current buffer around TTY menu pop-ups.  (Bug#23101)
2016-03-24 20:05:49 +02:00
Eli Zaretskii
7eba90c122 Improve font selection by family on MS-Windows
* src/w32font.c (w32font_list_internal): Allow 'ascii-0' charset,
in addition to 'iso10646-1', 'unicode-bmp', and 'unicode-sip'.
This avoids rejecting many font families whose members are shown
by 'font-family-list', in particular 'courier' requested by
info.el.  Without this change, many values of ':family' attribute
of a face have no effect on MS-Windows, because they are rejected
due to bogus mismatch of the charset.
2016-03-24 18:30:41 +02:00
Anders Lindgren
e643977b6b Make `toggle-frame-maximized' respect the dock on OS X (bug#22988).
* src/nsterm.m (ns_screen_margins): New function.
(ns_screen_margins_ignoring_hidden_dock): New function.
(ns_menu_bar_height): Reimplement in terms of `ns_screen_margins'.
([EmacsWindow zoom:]): Take all screen margins (except those
originating from a hidden dock) into account.
2016-03-22 20:18:33 +01:00
Eli Zaretskii
38a43f1a8f Fix bug in displaying header line with a box face
* src/xdisp.c (get_next_display_element): Handle the case when a
display string acquires the box face from an underlying string,
not from the buffer.  (Bug#23091)
2016-03-22 20:16:42 +02:00
Paul Eggert
ed909c049e ; Spelling fixes 2016-03-18 08:55:26 -07:00
Paul Eggert
6da3a6dc9e Port to strict C99 offsetof
* src/bidi.c (bidi_copy_it):
* src/lisp.h (CHAR_TABLE_EXTRA_SLOTS):
Use only a single identifier as the second argument of offsetof.
Found by using clang -pedantic.
2016-03-18 08:43:32 -07:00
Paul Eggert
de7601f149 Port to GTK with strict C11 compiler
* src/gtkutil.c (xg_create_frame_widgets, xg_toggle_notify_cb):
Cast from function type to void * where the C standard requires this.
This works around a problem in the prototypes for
g_signal_handler_find and g_signal_handlers_block_by_func, which
use gpointer instead of GCallback.  Found by using gcc -pedantic.
2016-03-18 08:43:32 -07:00
Paul Eggert
658aa2dae8 Port to GTK with strict C99 compiler
* src/emacsgtkfixed.c: Use workaround for GNOME bug 683906 only
in glib 2.35.6 and earlier, since the bug is fixed in 2.35.7.
* src/emacsgtkfixed.c (EmacsFixedPrivate):
* src/emacsgtkfixed.h (EmacsFixedClass):
Remove duplicate typedef, which strict C99 does not allow (Bug#23003).
2016-03-17 23:45:23 -07:00
Anders Lindgren
1df7173eb2 Avoid screen artifacts with new OS X visible bell after scrolling
* src/nsterm.m (EmacsBell): Save NSView when displaying the
visible bell and set `needsDisplay' when removed.
(hide_bell): Trace.
(ns_copy_bits): Trace.
2016-03-17 21:07:04 +01:00
Eli Zaretskii
d6d164f611 Avoid segfaults due to frame image cache being absent
* src/image.c (cache_image): If the frame doesn't have an image
cache, create it.  (Bug#23028)
2016-03-16 19:04:16 +02:00
Eli Zaretskii
6b6916e872 ; * src/xdisp.c (with_echo_area_buffer): Fix typos in comments. 2016-03-16 18:52:36 +02:00
Paul Eggert
7950e1dd3f Port to clang 3.7.0 on x86-64
* configure.ac: Use AS_IF so that gl_WARN_ADD’s prerequisites are
not done conditionally.  This helps clang, which needs
-Wunknown-warning-option later when configured with warnings.
* src/editfns.c (invalid_time): Now _Noreturn, since clang isn’t
smart enough to figure this out on its own if warnings are enabled.
(lisp_time_struct): Redo for clarity, and to pacify clang.
* src/xfns.c (x_real_pos_and_offsets) [USE_XCB]: Don’t use
uninitialized locals.  This avoids undefined behavior and pacifies
clang.
2016-03-15 13:49:58 -07:00
Eli Zaretskii
38b276d162 Fix startup of "emacs -nw" on systems that CANNOT_DUMP
* src/xdisp.c (syms_of_xdisp) <resize-mini-windows>: Initialize to
nil.

* lisp/loadup.el <resize-mini-windows>: Set to 'grow-only' after
loading window.el.  (Bug#22975)
2016-03-15 19:46:26 +02:00
Stefan Monnier
e6776f8362 * src/keyboard.c (echo_keystrokes_p): Don't test cursor_in_echo_area
(read_key_sequence): Test it here, as before.
(bug#22825).
2016-03-14 20:52:34 -04:00
Eli Zaretskii
48196164aa Avoid crashes at startup on systems that CANNOT_DUMP
* src/xdisp.c (syms_of_xdisp) <redisplay--inhibit-bidi>: New
boolean variable.
(init_iterator, reseat_to_string)
(Fcurrent_bidi_paragraph_direction)
(Fbidi_find_overridden_directionality): Use
redisplay--inhibit-bidi instead of purify-flag, to determine when
it's safe to reorder bidirectional text.

* lisp/loadup.el (redisplay--inhibit-bidi): Set to t at the
beginning of the file.  Reset to nil when charprop.el is
successfully loaded, or when we are going to dump, whichever
happens last.  (Bug#22975)
2016-03-12 11:51:03 +02:00
Ken Raeburn
8b8a6ad3e3 Don't use XRANDR 1.3 extensions if the server doesn't support them.
* src/xterm.h (struct x_display_info): Add fields to save XRANDR
version number.
* src/xfns.c (x_get_monitor_attributes): Save the version numbers
after querying the X server.
(x_get_monitor_attributes_xrandr): Don't use XRRGetOutputPrimary or
XRRGetScreenResourcesCurrent if the server doesn't support at least
RANDR version 1.3.  Conditionalize the code blocks on compiling
against library version 1.3 or better, rather than feature tests for
each function.
* configure.ac: Stop testing for those two functions.
2016-03-10 14:28:54 -05:00
Paul Eggert
7352c6c695 Rework C source files to avoid ^(
Work around Bug#22884 by rewording comments and strings to avoid ‘(’
at the start of a line unless it starts a function.  This change
is a short-term hack; in the longer run we plan to fix cc-mode’s
performance for C files that have ‘(’ at the start of a line in a
comment or string.
2016-03-10 07:59:19 -08:00
Andreas Schwab
711ca362e7 Properly handle lambda as read function (bug 22961)
* src/lread.c (readchar): Be more strict about checking for
string in cons for read_vector.
(unreadchar): Likewise.
2016-03-09 19:45:40 +01:00
Eli Zaretskii
cc057e4313 Speed up redisplay of binary files with long series of nulls
* src/bidi.c (bidi_resolve_weak): Avoid entering a loop searching
for a character needed for resolving the type of a series of BN
and ET characters, as required by rule W5 of UAX#9, if the results
of the resolution are known in advance, because we are at level
zero, and the previous strong character was L.
(bidi_resolve_neutral): Partially resurrect the optimization for a
long series of control characters in an otherwise strictly L2R
text.
(bidi_level_of_next_char): Don't enter the loop that searches for
a paragraph separator if the current character is already at base
embedding level.  (Bug#22739)
2016-03-06 18:14:46 +02:00
Paul Eggert
c45a1ca3c4 doc string file descriptor exhaustion fix
* src/doc.c (get_doc_string): Move newly-added check to a better
location (Bug#22814).
2016-03-04 16:30:43 -08:00
Michael Albinus
265141b332 Fix Bug#22814
* src/doc.c (get_doc_string): Raise an error in case too many
files are open.  (Bug#22814)
2016-03-04 12:57:43 +00:00
Eli Zaretskii
ab30bf5e87 ; * src/w32proc.c: Update the commentary to sys_select. 2016-03-01 20:18:10 +02:00
Eli Zaretskii
14810299f2 Fix reordering of bidi text in an isolate inside an override
* src/bidi.c (bidi_resolve_explicit): Override the orig_type value
of FSI with either LRI or RLI, as determined by the first strong
directional character in the isolate.  This prevents failure to
isolate when the FSI...PDI text is inside a directional override.
(Bug#22786)
2016-03-01 18:41:04 +02:00
Anders Lindgren
bbe8a899ac Made the new OS X visible bell more visible.
* src/nsterm.m: (EmacsBell:init:) Scaled up the visible bell
  "caution" image five times, as the image in its original size
  was hard to see.
2016-02-29 21:54:15 +01:00