Commit graph

37755 commits

Author SHA1 Message Date
Andy Moreton
87b8992ca3 Pacify compilation -Wincompatible-pointer-types warnings
* src/w32proc.c (Fw32_get_codepage_charset): Avoid compilation
warning.
(CompareStringW_Proc): New typedef.
(w32_compare_strings): Use it, to pacify compiler warnings under
"-Wincompatible-pointer-types".
* src/w32fns.c (GetDiskFreeSpaceExW_Proc)
(GetDiskFreeSpaceExA_Proc): New typedefs.
(Ffile_system_info): Use them, to pacify compiler warnings under
"-Wincompatible-pointer-types".

Copyright-paperwork-exempt: yes
2015-07-28 16:37:31 +03:00
Paul Eggert
1216f7332d Fix subscript error in calculate_direct_scrolling
Use slightly-longer cost vectors.  Without this change,
calculate_direct_scrolling can have a subscript violation when
FRAME_LINES (frame) <= delta.
* src/scroll.c (calculate_scrolling, calculate_direct_scrolling)
(line_ins_del, do_line_insertion_deletion_costs):
Allocate and use slightly-larger cost vectors, ones based on
FRAME_TOTAL_LINES instead of FRAME_LINES.
2015-07-27 23:40:27 -07:00
Paul Eggert
f5dc3cf21c Fix uninitalized value in encode_coding_object
* src/coding.c (encode_coding_object): Also initialize
coding->src_pos and coding->src_pos_byte when NILP (src_object).
This avoids later use of uninitialized storage.
2015-07-27 23:40:27 -07:00
Eli Zaretskii
094d5e9ef0 Handle NULL pointers in w32heap.c allocation routines
* src/w32heap.c (FREEABLE_P): Consider a NULL pointer "not
freeable".
(realloc_after_dump, realloc_before_dump, free_before_dump):
Handle NULL pointers gracefully, as Emacs now seems to expect
that.
2015-07-27 21:16:46 +03:00
Eli Zaretskii
3266513eb7 Fix Cairo build without PNG
* src/image.c: Define PNG function when USE_CAIRO is defined, even
if HAVE_PNG is not.  (Bug#21133)
2015-07-27 15:32:18 +03:00
Paul Eggert
075f8d9626 * src/ftfont.c (ftfont_close): Add comment re Bug#20890. 2015-07-26 13:23:35 -07:00
Paul Eggert
af32fa9562 New optional ZONE arg for format-time-string etc.
This simplifies time conversions in other time zones.
It also prevents display-time-world tampering with TZ (Bug#21020).
* admin/admin.el (add-release-logs):
Use improved add-log-time-format API.
* admin/merge-gnulib (GNULIB_MODULES): Add time_rz, timegm.
(GNULIB_TOOL_FLAGS): Avoid flexmember, setenv, unsetenv.
* configure.ac (tzalloc): Remove test for this, since
Emacs no longer uses HAVE_TZALLOC directly.
* doc/lispref/os.texi (Time of Day, Time Conversion)
(Time Parsing):
* etc/NEWS: Document the new behavior.
Merge from gnulib, incorporating:
2015-07-25 strftime: fix newly-introduced bug on Solaris
2015-07-23 fprintftime, strftime: use timezone_t args
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/strftime.c, lib/strftime.h, lib/time.in.h, m4/sys_time_h.m4:
* m4/time_h.m4:
Update from gnulib.
* lib/time_rz.c, lib/timegm.c, m4/time_rz.m4, m4/timegm.m4:
New files from gnulib.
* lisp/time-stamp.el (time-stamp-string):
* lisp/time.el (display-time-world-list)
(display-time-world-display):
Use new API, with time zone arg.
* lisp/time.el (display-time-world-display):
Fix race when current-time advances while we're running.
* lisp/vc/add-log.el (add-log-iso8601-time-zone)
(add-log-iso8601-time-string): Accept optional time zone arg.
* lisp/vc/add-log.el (add-change-log-entry):
* lisp/vc/log-edit.el (log-edit-changelog-ours-p): Use new arg.
* nt/gnulib.mk: Propagate lib/gnulib.mk changes here.
Add rules for the time module, since they're now needed
for tzalloc etc.
* src/conf_post.h (getenv_TZ, setenv_TZ): New macros.
(emacs_getenv_TZ, emacs_setenv_TZ): New decls.
* src/editfns.c: Include errno.h.
(set_time_zone_rule): Omit unnecessary forward decl.
(initial_tz): Remove, replacing with ...
(local_tz, wall_clock_tz, utc_tz): New static vars and constants.
(tzeqlen): New constant; prefer it to (sizeof "TZ=" - 1).
(emacs_localtime_rz, emacs_mktime_z, xtzalloc, xtzfree)
(tzlookup): New static functions.
(init_editfns): New arg DUMPING.  All uses changed.
(init_editfns): Omit most initialization if dumping, not if
!initialized.  Initialize wall_clock_tz and local_tz.
(emacs_nmemftime, format_time_string): Time zone argument can now
be any time zone, not just a boolean for UTC or local time.  All
callers changed.
(Fformat_time_string, Fencode_time, Fcurrent_time_string)
(Fcurrent_time_zone): New optional arg ZONE.
(Fdecode_time, Fset_time_zone_rule): ZONE arg can now also take
the same form as with the other new additions.
(decode_time_zone): Remove; no longer needed.
(tzvalbuf): Now file-scope.
(emacs_getenv_TZ, emacs_setenv_TZ): New functions.
(syms_of_editfns): Define Qwall.
* src/editfns.c (mktime_z) [!HAVE_TZALLOC]:
* src/systime.h (mktime_z, timezone_t, tzalloc, tzfree)
[!HAVE_TZALLOC]:
Remove; now supplied by gnulib.
* src/emacs.c (main):
* src/lisp.h (init_editfns): Adjust to init_editfns API change.
2015-07-26 12:44:54 -07:00
Martin Rudalics
fac8492664 Have `x-frame-geometry' return nil for terminal and initial frames (Bug#21132)
* src/nsfns.m (Fx_frame_geometry):
* src/xfns.c (Fx_frame_geometry): Return nil for initial and
terminal frames.
* src/w32fns.c (Fw32_frame_menu_bar_size, Fw32_frame_rect)
(Fx_frame_geometry): Return nil for terminal frames
2015-07-26 12:41:16 +02:00
Eli Zaretskii
7c3506eda8 Avoid crashes when w32 GUI functions are called in -batch
* src/w32fns.c (Fx_frame_geometry, Fw32_frame_rect)
(Fw32_frame_menu_bar_size, Fw32_send_sys_command): Don't call
FRAME_W32_WINDOW for initial frame.  (Bug#21132)
2015-07-25 19:33:51 +03:00
Eli Zaretskii
a65e00b9f9 Fix visual-order cursor movement when lines are truncated
* src/xdisp.c (Fmove_point_visually): When lines are truncated,
simulate display in a window of infinite width, to allow move_it_*
functions reach positions outside of normal window dimensions.
Remove code that tried to handle a subset of these situations by
manual iteration of buffer text.  (Bug#17777)
2015-07-18 15:17:26 +03:00
Eli Zaretskii
d3816bf8ad Fix scrolling backwards on TTY frames under scroll-conservatively
* src/xdisp.c (move_it_vertically_backward): Fix off-by-one error
in moving backwards on TTY frames.  (Bug#21080)
2015-07-18 13:02:06 +03:00
Paul Eggert
0592cefd03 Fix hang with large yanks This should fix the bug fixed by Mike
Crowe's patch in:
https://lists.gnu.org/archive/html/emacs-devel/2015-07/msg00106.html
A problem in this area has been reported by several users; see
Bug#16737, Bug#17101, Bug#17026, Bug#17172, Bug#19320, Bug#20283.
This fix differs from Mike Crowe's patch in that it should avoid a
race condition that could lose SIGIO signals.  ignore_sigio dates
back to the 1980s when some platforms couldn't block signals, and
could only ignore them, which led to races when signals arrived
while being ignored.  We shouldn't have to worry about those old
platforms now.
* src/dispextern.h, src/sysdep.c (ignore_sigio): Remove.
* src/emacs.c (shut_down_emacs):
Don't call ignore_sigio; unrequest_sigio should suffice.
* src/keyboard.c (kbd_buffer_store_buffered_event):
Use unrequest_sigio, not ignore_sigio.
(kbd_buffer_get_event):
Call request_sigio when getting the ball rolling again.
2015-07-17 11:55:02 -07:00
Paul Eggert
a5522abbca Better heuristic for C stack overflow
Improve the heuristic for distinguishing stack overflows from
other SIGSEGV causes (Bug#21004).  Corinna Vinschen explained that
the getrlimit method wasn't portable to Cygwin; see:
https://www.cygwin.com/ml/cygwin/2015-07/msg00092.html
Corinna suggested pthread_getattr_np but this also has problems.
Instead, replace the low-level system stuff with a simple
heuristic based on known good stack addresses.
* src/eval.c, src/lisp.h (near_C_stack_top): New function.
* src/sysdep.c: Don't include <sys/resource.h>.
(stack_direction): Remove.  All uses removed.
(stack_overflow): New function.
(handle_sigsegv): Use it instead of incorrect getrlimit heuristic.
Make SEGV fatal in non-main threads.
2015-07-16 07:36:47 -07:00
Paul Eggert
ff0e184ef3 Port to stricter C99
* src/keyboard.h (kbd_buffer_store_event_hold):
Don't return a void expression.
2015-07-14 22:30:01 -07:00
Paul Eggert
2254b6c09c Clear gcprolist etc. after stack overflow
After stack overflow, command_loop calls init_eval, and this needs to
clear gcprolist and byte_stack_list (Bug#20996).
* src/alloc.c (init_alloc):
Move gcprolist and byte_stack_list initialization from here ...
* src/eval.c (init_eval): ... to here.
2015-07-14 07:03:06 -07:00
YAMAMOTO Mitsuharu
a1f783824f Avoid deprecated enums in mac-ct font backend driver
* src/macfont.m (mac_font_copy_default_descriptors_for_language)
(mac_ctfont_get_advance_width_for_glyph)
(mac_ctfont_get_bounding_rect_for_glyph): Avoid deprecated enums.
2015-07-13 19:14:25 +09:00
YAMAMOTO Mitsuharu
455fe1a7f1 Cache font family in mac-ct font backend driver
* src/macfont.m (macfont_family_cache): New variable.
(syms_of_macfont): Initialize it.
(macfont_available_families_cache): New variable.
(macfont_invalidate_family_cache, macfont_get_family_cache_if_present)
(macfont_set_family_cache, macfont_invalidate_available_families_cache)
(macfont_handle_font_change_notification)
(macfont_init_font_change_handler)
(macfont_copy_available_families_cache): New functions.
(macfont_create_family_with_symbol): Use font family caches.
(macfont_list, macfont_list_family): Use
macfont_copy_available_families_cache instead of
mac_font_create_available_families.
2015-07-13 18:55:47 +09:00
Andy Moreton
8badbad184 * src/w32heap.c (DUMPED_HEAP_SIZE): Bump to 20MB.
Copyright-paperwork-exempt: yes
2015-07-10 15:48:11 +03:00
YAMAMOTO Mitsuharu
4e81398f1c * src/macfont.m (macfont_list): Ignore font families lacking font descriptors. 2015-07-10 18:04:34 +09:00
Martin Rudalics
f844c020ca Have x-show-tip' handle right' and `bottom' frame parameters.
* src/nsfns.m (compute_tip_xy, Fx_show_tip)
* src/w32fns.c (compute_tip_xy, Fx_show_tip)
* src/xfns.c (compute_tip_xy, Fx_show_tip): Allow aligning
tooltips also via `right' and `bottom' frame parameters.
2015-07-07 08:45:21 +02:00
Ken Brown
f3480939ff * src/sysdep.c (handle_sigsegv) [CYGWIN]: Increase STACK_DANGER_ZONE 2015-07-06 16:01:46 -04:00
Ken Brown
b81507813a * src/emacs.c (main): Don't increase the stack size on Cygwin 2015-07-06 15:10:38 -04:00
Paul Eggert
8c81ac97fd ; Spelling fixes 2015-07-05 23:17:48 -07:00
Paul Eggert
ad23626030 Avoid duplicate calls to current_timespec
* src/process.c (wait_reading_process_output):
Cache current_timespec results as long as we're not waiting.
2015-07-05 19:21:50 -07:00
Ian Kelling
f469c17b9c Avoid returning early reading process output due to SIGIO
* src/process.c (wait_reading_process_output): Extend the behavior of
not breaking due to not finding output when a timer has lowered the
timeout to include when SIGIO lowers the timeout.
2015-07-05 19:21:49 -07:00
Ian Kelling
12a2691fb2 Don't return as fast reading any process output
* src/process.c (wait_reading_process_output):
The patch for Bug#17647 returns too fast sometimes when reading
from any processes. Revert part of it, and limit the timeout more
sensibly (Bug#20978).
2015-07-05 19:21:49 -07:00
Ian Kelling
6e2fcc213d Refactor timeouts in wait_reading_process_output
* src/process.c (wait_reading_process_output):
Simplify timeouts with an enum.  Remove a redundant condition.
(Bug#20978)
2015-07-05 19:21:49 -07:00
Ian Kelling
91cbc7b729 ; Rename local var nsecs to adaptive_nsecs
* src/process.c (wait_reading_process_output): Rename inner nsecs to
adaptive_nsecs.  There is already an nsecs, and this function is
confusing enough (Bug#20978).
2015-07-05 19:21:49 -07:00
Ian Kelling
082eda1cbe ; Rename local var to match function name
* src/process.c (wait_reading_process_output, status_notify):
Previously the function wait_reading_process_input was renamed to the
more logical wait_reading_process_output.  Make its local variables
consistent with that change (Bug#20978).
2015-07-05 19:21:49 -07:00
Ian Kelling
5dc66dbc15 Remove ADAPTIVE_READ_BUFFERING ifdef
* src/process.c (make-process, make-pipe-process, deactivate_process)
(wait_reading_process_output, read_process_output, send_process)
(init_process_emacs): ifdef ADAPTIVE_READ_BUFFERING was originally
added in case there was an operating system in which it was not
useful.  That was 11 years ago and it hasn't happened.  Make
development easier by not considering the effect of changes on a
theoretical OS where this is disabled (Bug#20978).
2015-07-05 19:21:48 -07:00
Ian Kelling
08150826ae ; Minor cleanup of wait_reading_process_output
* src/process.c (wait_reading_process_output):
Simplify logic.  Fix DOS version comments (Bug#20978).
2015-07-05 19:21:48 -07:00
Ian Kelling
cbeeab2eab accept-process-output fix
This is a followon to the fix for Bug#17647 (Bug#20976).
* src/process.c (status_notify): Fix too high return in some cases.
2015-07-05 15:15:01 -07:00
Eli Zaretskii
65571b37ed Fix mouse pointer on w32 when a menu is active
* src/w32fns.c (w32_wnd_proc): Don't change the mouse pointer
shape while a menu is in use.  This started happening since we now
send WM_EMACS_SHOWCURSOR messages when the mouse moves.
2015-07-04 14:23:27 +03:00
Martin Rudalics
cdd5e86967 Fix processing of alpha parameter for Windows tip frames (Bug#17344)
* src/w32fns.c (x_create_tip_frame): Fix processing alpha
parameter.  (Bug#17344)
2015-07-04 10:42:25 +02:00
Eli Zaretskii
7071848862 ;* src/bidi.c (bpa_stack_entry): Update commentary for Unicode 8.0. 2015-07-02 20:40:01 +03:00
Eli Zaretskii
7d5a7a43f1 Be more tolerant to fonts named "Foobar-12"
* src/frame.c (x_set_font): If font_spec_from_name returns nil,
don't barf; instead, request a new fontset to be generated.  This
avoids unnecessarily rejecting fonts named against XLFD rules.  See
http://lists.gnu.org/archive/html/help-emacs-windows/2015-06/msg00001.html,
for the description of the original problem.

* lisp/faces.el (set-face-attribute): Don't be fooled too easily
by a hyphen in a font's name.
2015-07-01 19:33:56 +03:00
Eli Zaretskii
4c66103fb3 Fix value of posn-at-pont in R2L lines
* src/keyboard.c (Fposn_at_x_y, Fposn_at_point): Allow X pixel
coordinate of -1, for a newline in a right-to-left line that
overflowed into the left fringe.
2015-07-01 19:27:13 +03:00
Paul Eggert
cc7acdbd0e Spelling fixes 2015-06-30 19:47:29 -07:00
Paul Eggert
3213d77070 In strings, prefer plain and ' to \ and \'
* lisp/allout.el (allout-insert-listified):
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
* lisp/ls-lisp.el (ls-lisp-UCA-like-collation)
(ls-lisp-string-lessp):
* lisp/menu-bar.el (menu-bar-open):
* lisp/obsolete/otodo-mode.el (todo-top-priorities):
* lisp/progmodes/compile.el (compile):
* lisp/progmodes/etags.el (tags-loop-scan):
* lisp/progmodes/make-mode.el (makefile-browser-insert-continuation):
* lisp/subr.el (posn-actual-col-row):
* lisp/term/pc-win.el (x-list-fonts):
* lisp/textmodes/texinfmt.el (texinfmt-version):
* lisp/textmodes/texnfo-upd.el (texinfo-master-menu):
* lisp/time.el (display-time-world-list):
* lisp/tmm.el (tmm-menubar):
* src/buffer.c (syms_of_buffer):
* src/fileio.c (syms_of_fileio):
Omit unnecessary and confusing backslash before quote.
* lisp/erc/erc.el (erc-cmd-LASTLOG):
* lisp/progmodes/flymake.el (flymake-fix-file-name):
* lisp/progmodes/vhdl-mode.el (vhdl-in-extended-identifier-p):
Fix string that was intended to escape a backslash and not a quote.
2015-06-30 15:08:02 -07:00
Eli Zaretskii
79310d736c ; * src/doc.c: Add a 'coding' cookie. 2015-06-30 20:13:35 +03:00
Eli Zaretskii
3bea77f655 Make sure sleep-for always delays for as long as it's told
* src/dispnew.c (Fsleep_for): Call wait_reading_process_output in
a loop, to ensure we always wait exactly the required amount of
time.  (Bug#15990)
2015-06-30 19:09:02 +03:00
Paul Eggert
43593cb417 Fix pointer signedness glitch
* src/font.c (font_load_for_lface): Use SSDATA, not SDATA.
2015-06-30 09:07:35 -07:00
Eli Zaretskii
edd09381c6 Don't block changes in mouse pointer inside 'track-mouse'
* etc/NEWS:
* doc/lispref/frames.texi (Mouse Tracking): Document the special
effect of setting 'track-mouse' to 'dragging'.

* lisp/textmodes/artist.el (artist-mouse-draw-continously):
* lisp/ruler-mode.el (ruler-mode-mouse-drag-any-column-iteration):
* lisp/mouse-drag.el (mouse-drag-throw):
* lisp/mouse.el (mouse-drag-line): Set 'track-mouse' to 'dragging'
to avoid changes in the shape of the mouse pointer.

* src/xdisp.c (define_frame_cursor1): Don't change the mouse
pointer shape when do_mouse_tracking has the value of 'dragging',
not just any non-nil value.  (Bug#20934)
(syms_of_xdisp): DEFSYM 'dragging'.
2015-06-30 18:59:21 +03:00
Eli Zaretskii
ea60b543f6 Allow font names that end in "-NN", where NN is a number
* src/font.c (font_load_for_lface): If the font-spec didn't match
any available fonts, try again without interpreting trailing "-NN"
as the font size.  For the description of the original problem, see
http://lists.gnu.org/archive/html/help-emacs-windows/2015-06/msg00001.html
2015-06-29 19:10:20 +03:00
Eli Zaretskii
64110eb14d .gdbinit followup to changes in !USE_LSB_TAG
* src/.gdbinit (xgetsym): Don't left-shift $ptr even under
!USE_LSB_TAG, as Emacs no longer does.
2015-06-29 18:57:25 +03:00
Eli Zaretskii
39e08cc354 ; * src/w32proc.c (w32_executable_type): Fix a typo in a comment. 2015-06-28 18:29:46 +03:00
Eli Zaretskii
31807189b5 Add a new function w32-application-type
* src/w32proc.c (Fw32_application_type): New function.
; * etc/NEWS: Mention w32-application-type.
2015-06-27 13:48:26 +03:00
Eli Zaretskii
5a7fb4f0cc Avoid error in TLS connections due to incorrect format
* src/gnutls.c (Fgnutls_boot): Use the %x conversion specifier in
the call to 'error', instead of the unsupported %u.  Reported by
lo2net <fangtao0901@gmail.com>.  (Bug#20908)
2015-06-27 11:00:38 +03:00
Eli Zaretskii
f142756338 Fix invisible mouse pointers on Windows.
* src/w32fns.c: Include windowsx.h.
(w32_wnd_proc): If the mouse moved and the mouse pointer is
invisible, make it visible again even when the main (Lisp)
thread is busy.
* src/w32term.c (w32_toggle_invisible_pointer): Rather then
garbaging the frame have the input thread call SetCursor.
2015-06-26 08:45:29 +02:00
Martin Rudalics
605765af40 Provide invisible mouse pointers on Windows. (Bug#6105) (Bug#12922)
* src/w32fns.c (w32_wnd_proc): Handle f->pointer_invisible
for WM_SETCURSOR and WM_EMACS_SETCURSOR cases.
* src/w32term.c (w32_hide_hourglass): Handle
f->pointer_invisible.
(w32_toggle_invisible_pointer): New function.
(w32_create_terminal): Add w32_toggle_invisible_pointer as
toggle_invisible_pointer_hook for this terminal.
2015-06-26 08:28:08 +02:00