* term.c (tty_free_frame_resources):
* xterm.c (x_free_frame_resources): Do not check for non-NULL
face cache because it's implied by free_frame_faces anyway.
* w32term.c (x_free_frame_resources): Likewise. Do not call
free_frame_faces twice.
* window.c (resize_frame_windows): Don't return immediately when
the root window's size doesn't change - the minibuffer window
may still have to be repositioned/resized.
* xfns.c (Fx_create_frame): Always change the frame size after
initializing the frame's faces.
* xterm.c (handle_one_xevent): Don't set pixel sizes here,
change_frame_size should already have done it.
(x_new_font): Assign new tool- and menu-bar heights.
(x_set_window_size_1): Account for tool- and menu-bar heights
(Bug#16013). Don't set pixel sizes since change_frame_size
should already have done it.
This scorches the earth and waits for spring;
see Ted Zlatanov and Stefan Monnier in
<http://lists.gnu.org/archive/html/emacs-devel/2013-12/msg00323.html>.
* configure.ac (with_openssl_default, HAVE_LIB_CRYPTO): Remove.
Do not say whether Emacs is configured to use a crypto library,
since it's no longer an option.
(gl_CRYPTO_CHECK): Define a dummy.
* lib/gl_openssl.h, m4/gl-openssl.m4: Remove.
* admin/merge-gnulib: Remove lib/gl_openssh.h and m4/gl-openssl.m4.
* src/Makefile.in (LIB_CRYPTO): Remove.
(LIBES): Don't use it.
On commonly used platform libcrypto uses architecture-specific
assembly code, which is significantly faster than the C code we
were using. See Pádraig Brady's note in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-12/msg00000.html>.
Merge from gnulib, incorporating:
2013-12-07 md5, sha1, sha256, sha512: add gl_SET_CRYPTO_CHECK_DEFAULT
2013-12-07 md5, sha1, sha256, sha512: add 'auto', and set-default method
2013-12-04 include_next: minimize code duplication
2013-12-03 md5, sha1, sha256, sha512: support mandating use of openssl
2013-12-02 md5, sha1, sha256, sha512: use openssl routines if available
* configure.ac (--without-all): Set with_openssl_default too.
Use gl_SET_CRYPTO_CHECK_DEFAULT to default to 'auto'.
(HAVE_LIB_CRYPTO): New var.
Say whether Emacs is configured to use a crypto library.
* lib/gl_openssl.h, m4/absolute-header.m4, m4/gl-openssl.m4:
New files, copied from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/md5.c, lib/md5.h, lib/sha1.c, lib/sha1.h:
* lib/sha256.c, lib/sha256.h, lib/sha512.c, lib/sha512.h:
* m4/include_next.m4, m4/md5.m4, m4/sha1.m4, m4/sha256.m4, m4/sha512.m4:
Update from gnulib.
* src/Makefile.in (LIB_CRYPTO): New macro.
(LIBES): Use it.
The macro didn't conform to C99 due to type mismatch,
which caused compilation failure with Sun C 5.12,
and it was confusing anyway. Include window.h to declare
redisplay_other_windows.
* keyboard.c (poll_for_input_1, input_polling_used):
Define only if HAVE_NTGUI.
* xmenu.c (popup_activate_callback): Omit unnecessary
check against USE_X_TOOLKIT, which must be defined here anyway.
* xterm.c, xterm.h (x_dispatch_event) [! (USE_X_TOOLKIT || USE_MOTIF)]:
Now static.
* nsterm.h (EmacsApp): Add applicationDidFinishLaunchingCalled.
Pixel resize changes for NS.
* nsterm.m (x_set_window_size): Change parameters rows/cols to
height/width. row/cols are locals.
Pass pixelwise to check_frame_size. Don't set FRAME_PIXEL_WIDTH/HEIGHT.
(updateFrameSize:): Remove gsextra. Adjust for pixelwise resize.
(windowWillResize): Remove gsextra. Calculate extra as in
updateFrameSize.
(x_new_font): Don't change frame size if fullscreen. Change
size pixelwise.
* nsterm.m (x_set_window_size): Remove fprintf.
(init): Define always. Set applicationDidFinishLaunchingCalled
for GNUStep.
(applicationDidFinishLaunching:): Set
applicationDidFinishLaunchingCalled,
(applicationDidBecomeActive:): Call applicationDidFinishLaunching if
not called.
* src/nsfns.m (Fx_create_frame): Call change_frame_size twice as per
comment in xfns.c. Change to pixelwise call.
* src/nsterm.m (x_set_window_size): Change parameters rows/cols to
height/width. row/cols are locals.
Pass pixelwise to check_frame_size. Don't set FRAME_PIXEL_WIDTH/HEIGHT.
(updateFrameSize:): Remove gsextra. Adjust for pixelwise resize.
(windowWillResize): Remove gsextra. Calculate extra as in
updateFrameSize.
(x_new_font): Don't change frame size if fullscreen. Change
size pixelwise.
(x_dispatch_event): Define unconditionally.
(x_make_frame_visible): Process X events until the frame
is really visible (Bug#16027).
* xterm.h (x_dispatch_event): Declare unconditionally.
(scroll_command, Fscroll_other_window): Don't cause redisplay now that
window_scroll takes care of it.
(Fset_window_point, Fdelete_other_windows_internal)
(set_window_buffer, Fwindow_resize_apply, resize_frame_windows)
(Fsplit_window_internal, Fdelete_window_internal)
(Fresize_mini_window_internal, Fset_window_configuration)
(apply_window_adjustment): Use fset_redisplay and wset_redisplay to
cause redisplay instead of forcing a complete redisplay.
* src/xdisp.c (wset_redisplay): Don't set windows_or_buffers_changed if
we're only affecting the selected_window.
Fixes: debbugs:16034
src/bidi.c (bidi_get_type, bidi_get_category): Handle the isolate
directional control characters. Update type and category
determination according to the UBA from Unicode v6.3.
(bidi_category_t): New category EXPLICIT_FORMATTING.
src/dispextern.h (bidi_type_t): Update to include new bidirectional
properties introduced with Unicode v6.3.
admin/unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class
to include the new isolate-related classes introduced with Unicode
v6.3.
(unidata-encode-val): Accept an additional optional argument, a
warning message to emit when UnicodeData.txt defines bidi-class
values that are not in unidata-prop-alist. Add a comment
explaining what should maintainers do if/when such a warning ever
appears.
(unidata-gen-table): Call unidata-encode-val with 3rd arg non-nil
when generating uni-bidi.el.
* font.h (struct font) [HAVE_WINDOW_SYSTEM]: Group members which are
used on graphic displays only. Remove unused 'font_encoder' member.
* nsfont.m (nsfont_open):
* w32font.c (w32font_open_internal): Adjust users.
* window.c (Fset_window_new_pixel): Don't let new_pixel go negative.
This improves on the previous fix to this function.
(window_resize_check): When summing up pixel counts, don't rely on
undefined behavior if the sum overflows.
Fixes: debbugs:16033
* window.c (Fset_window_new_pixel, grow_mini_window):
* xdisp.c (Fwindow_text_pixel_size):
Avoid undefined behavior on signed integer overflow.
* xfns.c (x_set_mouse_color):
Check that drag shape fits in 'unsigned', since that's what X wants.
src/w32fns.c (my_exception_handler): New function.
(globals_of_w32fns): Set it up as the unhandled exception
handler. Initialize exception code and address to zeros.
(emacs_abort): If the exception code and address are available,
print them at the beginning of the backtrace. Fix the format of
printing addresses (was producing 0x0x12345678 on XP).
(debugger-mode-map): Bind it.
(debugger--backtrace-base): New function.
(debugger-eval-expression): Use it.
(debugger-frame-number): Skip local vars when present.
(debugger--locals-visible-p, debugger--insert-locals)
(debugger--show-locals, debugger--hide-locals): New functions.
* src/eval.c (Fbacktrace__locals): New function.
(syms_of_eval): Defsubr it.
* xterm.h (struct scroll_bar): Remove member `fringe_extended_p'.
* xterm.c (x_draw_fringe_bitmap, x_scroll_run): Remove code for
fringe background extension.
(x_scroll_bar_create): Remove variables `sb_left' and `sb_width',
because they are now always the same as `left' and `width',
respectively. Remove code for the case that `width' and
`sb_width' are different.