(scan_newline): Do not recalculate start_byte.
(search_command): Use eassert.
* syntax.c (struct lisp_parse_state): New member location_byte.
(scan_sexps_forward): Record from_byte and avoid redundant
character to byte position calculation ...
(Fparse_partial_sexp): ... here. Break too long line.
argument is known to be a vector.
* fns.c (Flocale_info): Likewise for ASET.
* xselect.c (selection_data_to_lisp_data): Likewise for ASET.
* w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
* src/nsmenu.m (update_frame_tool_bar): Check for negative tool bar
height.
* src/nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
(EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
updateCollectionBehaviour.
* src/nsterm.m (NEW_STYLE_FS): Remove.
(ns_last_use_native_fullscreen): New variable.
(x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
(x_set_window_size): Do not take title bar and tool bar into account
if isFullscreen returns YES.
(ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
(check_native_fs): New function.
(ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
(ns_term_init): Remove NEW_STYLE_FS.
(updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
and tool bar if isFullscreen returns NO.
(windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
(initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
with HAVE_NATIVE_FS.
(window:willUseFullScreenPresentationOptions:): New method.
(windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
Hide toolbar if not enabled.
(windowDidExitFullScreen:): Call updateCollectionBehaviour.
Restore tool bar if enabled, hide it otherwise (Bug#13444).
(fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
(toggleFullScreen:): If fs_is_native, call toggleFullScreen on
window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
(syms_of_nsterm): Add ns-use-native-fullscreen.
src/xdisp.c (window_buffer_changed): region_showing can be negative,
which still means region is being displayed.
(redisplay_internal): Resurrect code that forced redisplay of the
whole window when showing region and the mark has changed. Record
the new mark position to allow redisplay optimizations.
(display_line): If it->region_beg_charpos is non-zero, set the
window's region_showing member to -1.
src/window.h (struct window) <region_showing>: Declare ptrdiff_t,
not bitfield of 1 bit.
* lisp/ffap.el: Require thingatpt.
(ffap-url-at-point): Delegate URI detection to thing-at-point.
All URI-valid characters are now recognized.
(ffap-string-at-point): Use use-region-p.
(ffap-url-regexp): Extra character is handled by thing-at-point.
(ffap-string-at-point-mode-alist): Allow parentheses.
(ffap-newsgroup-regexp, ffap-newsgroup-heads, ffap-newsgroup-p):
Convert to aliases; code moved to thingatpt.el.
(ffap-gnus-hook): Use setq-local.
* lisp/thingatpt.el: Rewrite the URL detection routines, absorbing some
code from ffap.el.
(thing-at-point-beginning-of-url-regexp): New var.
(thing-at-point-uri-schemes): Update list of URI schemes.
(thing-at-point-url-regexp): Variable deleted.
(thing-at-point-markedup-url-regexp): Disallow newlines.
(thing-at-point-newsgroup-regexp)
(thing-at-point-newsgroup-heads)
(thing-at-point-default-mail-uri-scheme): New variables.
(thing-at-point-bounds-of-url-at-point): Rewrite. Use ffap's
method to find the possible bounds of the URI at point. New
optional argument to find ill-formed URIs.
(thing-at-point-url-at-point): Rewrite. New arguments for finding
ill-formed URIs. Use thing-at-point-bounds-of-url-at-point, and
the scheme-adding heuristics from ffap-url-at-point.
(thing-at-point--bounds-of-well-formed-url): New function. Do
parens matching to decide whether to include parens in the URI
* test/automated/thingatpt.el: New file.
Fixes: debbugs:5673