1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-12 06:21:02 -08:00
Commit graph

37703 commits

Author SHA1 Message Date
Paul Eggert
67dbc32afd Fix C99 incompatibilities in Cairo code
* src/image.c (xpm_load) [USE_CAIRO]:
* src/xterm.c (x_cr_accumulate_data) [USE_CAIRO]:
Fix pointer signedness problem.
2015-06-25 07:09:04 -07:00
Paul Eggert
319eeeb0fb Get ‘./configure; make -C src emacs’ to work
Without this fix, lib/fcntl.h isn't built in time (Bug#20894).
* lib-src/Makefile.in (../lib/libgnu.a):
* src/Makefile.in ($(lib)/libgnu.a): Build all, not libgnu.a.
2015-06-24 23:35:02 -07:00
Paul Eggert
93f4f67ba9 Fix GC bugs --with-wide-int and Qnil == 0
Use the same alignment for the !USE_LSB_TAG case as for the
more-typical USE_LSB_TAG case.  The attempt to support arbitrary
alignments with !USE_LSB_TAG had subtle bugs in garbage collection
once we changed the representation of symbols so that Qnil == 0.
Problem reported by Eli Zaretskii (Bug#20862).
* src/alloc.c (XMALLOC_HEADER_ALIGNMENT) [XMALLOC_OVERRUN_CHECK]:
* src/alloc.c (vector_alignment, union aligned_Lisp_Symbol)
(union aligned_Lisp_Misc, maybe_lisp_pointer, pure_alloc):
Use same alignment for !USE_LSB_TAG as for USE_LSB_TAG.
* src/alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): Remove.
This optimization in the !USE_LSB_TAG case is no longer valid when
symbols are represented via offsets.  Change the only use to
assume that pointers might hide in objects.
* src/lisp.h (alignas) [!USE_LSB_TAG]:
Require support in this case, too.
(TAG_SYMOFFSET, XSYMBOL) [!USE_LSB_TAG]: Do not shift the offset.
This is OK, because the !USE_LSB_TAG case now applies only when
Lisp_Object is wider than void *, so there's no longer any need
to shift the offset.  Not shifting the offset means that
symbol representations have the same alignment as pointers,
which the GC assumes.
2015-06-24 20:10:44 -07:00
Paul Eggert
9b891278cf * src/keyboard.h (kbd_buffer_store_event_hold): Remove unused local. 2015-06-23 18:08:08 -07:00
Paul Eggert
4fe5cb43d9 Port selection info fix to clang
* src/keyboard.h (kbd_buffer_store_event_hold):
Don't assume C11 semantics for alignof (Bug#20756).
2015-06-23 18:02:46 -07:00
Paul Eggert
1552e67373 Fix bug that munged selection info
On some optimizing C compilers, copying a structure did not
copy the padding bytes between elements, and the type punning
between struct input_data and struct selection_input_data did
not work.  Change the C code to use a proper union type instead.
Problem reported by YAMAMOTO Mitsuharu (Bug#20756).
* src/keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr)
(readable_events, discard_mouse_events, kbd_buffer_events_waiting)
(kbd_buffer_get_event, process_special_events, stuff_buffered_input)
(mark_kboards):
Use union buffered_input_event, not struct input_event.
(clear_event, deliver_input_available_signal, process_special_events):
Remove unnecessary forward decls.
(kbd_buffer_store_buffered_event): New function, mostly just the
old kbd_buffer_store_event_hold, except its argument is of type
union buffered_input_event, not struct input_event.
(kbd_buffer_unget_event): Define only if HAVE_X11, since it's
not needed otherwise.  Argument is now of type
struct selection_input_event *, not struct input_event *.
All callers changed.
(clear_event): Arg is now of type union buffered_input_event *,
not struct input_event *.  All callers changed.
* src/keyboard.h [HAVE_X11]: Include "xterm.h".
(union buffered_input_event): New type.
(kbd_buffer_store_event_hold): Now an inline function,
defined here.
* src/termhooks.h (EVENT_KIND_WIDTH): New constant.
(struct input_event): Use it.
* src/xselect.c (struct selection_event_queue):
Make elements be of type struct selection_input_event,
not struct input_event.
(selection_input_event_equal): New static function.
(x_queue_event): Use it.
(x_queue_event, x_decline_selection_request)
(x_selection_current_request, x_reply_selection_request)
(x_handle_selection_request, x_handle_selection_clear)
(x_handle_selection_event): Use struct selection_input_event,
not struct input_event.  All callers changed.
(x_convert_selection): Omit unused first arg.  All callers changed.
(Fx_disown_selection_internal): Omit unnecessary union.
* src/xterm.c (handle_one_xevent): Use new union buffered_input_event
rather than rolling our own equivalent.  Prefer sie.kind when
setting up that kind of structure.
Call kbd_buffer_store_buffered_event, not kbd_buffer_store_event_hold.
* src/xterm.h (struct selection_input_event: Use EVENT_KIND_WIDTH.
(SELECTION_EVENT_DISPLAY, SELECTION_EVENT_DPYINFO)
(SELECTION_EVENT_REQUESTOR, SELECTION_EVENT_SELECTION)
(SELECTION_EVENT_TARGET, SELECTION_EVENT_PROPERTY)
(SELECTION_EVENT_TIME, x_handle_selection_event):
Arg is now of type struct selection_input_event *)
not struct input_event *.  All callers changed.
2015-06-23 16:30:58 -07:00
Glenn Morris
2ca5558395 Check for an input event before showing a dialog box. (Bug#20813)
* lisp/subr.el (y-or-n-p):
* src/fns.c (Fyes_or_no_p): Check last-input-event as well
as last-nonmenu-event.
2015-06-23 14:02:24 -04:00
Paul Eggert
931f00677d * src/keyboard.c (last_timer_event): Remove unused var. 2015-06-23 07:50:06 -07:00
Ken Brown
531125e4c0 Enable CPU profiling on Cygwin
* src/syssignal.h [CYGWIN] (PROFILER_CPU_SUPPORT): Revert previous
change that undefined this.
(SIGEV_SIGNAL): Ensure that this is defined as a macro.
* src/profiler.c [CYGWIN] (timer_getoverrun): Define as a macro on
  Cygwin.
2015-06-22 17:38:35 -04:00
Ken Brown
dc30fb9247 Improve diagnostics of profiler-cpu-start
* src/profiler.c (setup_cpu_timer): Change return type to 'int';
return -1 if the sampling interval is invalid.
(Fprofiler_cpu_start): Improve error message if 'setup_cpu_timer'
fails.  (Bug#20843)
2015-06-22 15:26:44 -04:00
Eli Zaretskii
c4c531bbee Fix debug-timer-check on systems without HAVE_TIMERFD
* src/atimer.c (Fdebug_timer_check) [!HAVE_TIMERFD]: Actively run
the expired timers, since wait_reading_process_output doesn't.
(debug_timer_callback): Enlarge the tolerance to 20 msec.
2015-06-22 19:11:45 +03:00
Ken Brown
5fac0dee87 Drop support for CPU profiling on Cygwin
* src/syssignal.h (PROFILER_CPU_SUPPORT): Don't define on Cygwin.
(Bug#20843)
2015-06-21 16:18:48 -04:00
Paul Eggert
38bb9ff0f4 Fix some “nested” quoting confusion in doc strings
* lisp/emacs-lisp/advice.el (ad-map-arglists):
* lisp/kermit.el (kermit-clean-on):
* lisp/mh-e/mh-comp.el (mh-repl-group-formfile):
* src/keyboard.c (Frecursive_edit):
Use curved quotes when quoting text containing apostrophe,
so that the apostrophe isn't curved in the output.
2015-06-21 12:38:08 -07:00
Paul Eggert
20514277e2 * src/doc.c (syms_of_doc): Remove unused symbols. 2015-06-20 10:17:05 -07:00
Paul Eggert
c4151ebe15 Improve the optional translation of quotes
Fix several problems with the recently-added custom variable
help-quote-translation where the code would quote inconsistently
in help buffers.  Add support for quoting 'like this', which
is common in other GNU programs in ASCII environments.  Change
help-quote-translation to use more mnemonic values: values are now the
initial quoting char, e.g., (setq help-quote-translation ?`) gets the
traditional Emacs help-buffer quoting style `like this'.  Change the
default behavior of substitute-command-keys to match what's done in
set-locale-environment, i.e., quote ‘like this’ if displayable,
'like this' otherwise.
* doc/lispref/help.texi (Keys in Documentation): Document
new behavior of substitute-command-keys, and document
help-quote-translation.
* doc/lispref/tips.texi (Documentation Tips):
Mention the effect of help-quote-translation.
* etc/NEWS: Mention new behavior of substitute-command-keys,
and merge help-quote-translation news into it.
When talking about doc strings, mention new ways to type quotes.
* lisp/cedet/mode-local.el (overload-docstring-extension):
Revert my recent change to this function, which shouldn't be
needed as the result is a doc string.
* lisp/cedet/mode-local.el (mode-local-print-binding)
(mode-local-describe-bindings-2):
* lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
* lisp/cus-theme.el (describe-theme-1):
* lisp/descr-text.el (describe-text-properties-1, describe-char):
* lisp/emacs-lisp/cl-generic.el (cl--generic-describe):
* lisp/emacs-lisp/eieio-opt.el (eieio-help-class)
(eieio-help-constructor):
* lisp/emacs-lisp/package.el (describe-package-1):
* lisp/faces.el (describe-face):
* lisp/help-fns.el (help-fns--key-bindings)
(help-fns--compiler-macro, help-fns--parent-mode)
(help-fns--obsolete, help-fns--interactive-only)
(describe-function-1, describe-variable):
* lisp/help.el (describe-mode):
Use substitute-command-keys to ensure a more-consistent quoting
style in help buffers.
* lisp/cus-start.el (standard):
Document new help-quote-translation behavior.
* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs):
* lisp/help-mode.el (help-xref-symbol-regexp, help-xref-info-regexp)
(help-xref-url-regexp):
* lisp/international/mule-cmds.el (help-xref-mule-regexp-template):
* lisp/wid-edit.el (widget-documentation-link-regexp):
Also match 'foo', in case we're in a help buffer generated when
help-quote-translation is ?'.
* src/doc.c: Include disptab.h, for DISP_CHAR_VECTOR.
(LEFT_SINGLE_QUOTATION_MARK, uLSQM0, uLSQM1, uLSQM2, uRSQM0)
(uRSQM1, uRSQM2, LSQM, RSQM): New constants.
(Fsubstitute_command_keys): Document and implement new behavior.
(Vhelp_quote_translation): Document new behavior.
2015-06-19 00:38:45 -07:00
Glenn Morris
d213cf0400 * src/doc.c (Fsubstitute_command_keys): Make previous change compile. 2015-06-18 19:15:05 -04:00
Alan Mackenzie
52c3946c87 Make translation of quotes to curly in doc strings optional.
src/doc.c (traditional, prefer-unicode): new symbols.
(help-quote-translation): new variable.
(Fsubstitute_command_keys): make translation of quotes dependent on
`help-quote-translation'; also translate curly quotes back to ASCII
ones.

lisp/cus-start.el (top-level): Add a customization entry for
`help-quote-translation'.
2015-06-18 21:08:02 +00:00
Martin Rudalics
8db25739a4 Fix last fix" 2015-06-18 14:45:43 +02:00
Martin Rudalics
8b4da35384 Set image_cache_refcount before x_default_parameter calls. (Bug#20802)
* src/nsfns.m (Fx_create_frame):
* src/xfns.c (Fx_create_frame, x_create_tip_frame): Move setting
image_cache_refcount before first x_default_parameter call.
2015-06-18 14:32:32 +02:00
Eli Zaretskii
4e53d722ae Avoid infloop in redisplay with tall images
* src/xdisp.c (try_scrolling): Prevent an infloop when scrolling
down near ZV.  (Bug#20808)
Call bidi_unshelve_cache to avoid memory leaks.  Use IT_CHARPOS
instead of CHARPOS.
2015-06-17 20:18:11 +03:00
Wolfgang Jenkner
cf23c335ac * src/editfns.c (Fbyte_to_position): Fix bytepos not at char boundary.
The behavior now matches the description in the manual.  (Bug#20783)
2015-06-17 13:41:57 +02:00
Glenn Morris
d67d49ceb3 Generate char-script-table from Unicode source. (Bug#20789)
* admin/unidata/Makefile.in (AWK): New, set by configure.
(all): Add charscript.el.
(blocks): New variable.
(charscript.el, ${unidir}/charscript.el): New targets.
(extraclean): Also remove generated charscript.el.

* admin/unidata/blocks.awk: New script.

* admin/unidata/Blocks.txt: New data file, from unicode.org.

* lisp/international/characters.el: Load charscript.

* src/Makefile.in (charscript): New variable.
(${charscript}): New target.
(${lispintdir}/characters.elc): Depend on charscript.elc.
(temacs$(EXEEXT)): Depend on charscript.

; * admin/unidata/README: Mention Blocks.txt.

; * .gitignore: Add lisp/international/charscript.el.
2015-06-16 23:43:03 -07:00
Nicolas Petton
deb6e89caf Better docstring for null. (Bug#20815)
* src/data.c (null): Improves the docstring, saying what null returns
when OBJECT is non-nil.
2015-06-16 21:47:46 +02:00
Martin Rudalics
93ae9f46e7 Fix handling of image cache refcounts. (Bug#20802)
This backports Eli Zaretskii's solution of this problem for W32
to X and NS.

* src/nsfns.m (image_cache_refcount): Define unconditionally.
(unwind_create_frame): If the image cache's reference count
hasn't been updated yet, do that now.
(Fx_create_frame): Set image_cache_refcount unconditionally.
* src/xfns.c (image_cache_refcount): Define unconditionally.
(unwind_create_frame): If the image cache's reference count
hasn't been updated yet, do that now.
(Fx_create_frame, x_create_tip_frame): Set image_cache_refcount
unconditionally.
* src/w32fns.c (image_cache_refcount): Make it a ptrdiff_t as on
X and NS.
2015-06-16 15:09:24 +02:00
Eli Zaretskii
f0f216eaa1 ;* src/fontset.c: Update obsolete commentary. 2015-06-15 20:14:11 +03:00
Paul Eggert
08bad175d4 Spelling fixes 2015-06-14 22:56:45 -07:00
Eli Zaretskii
2f09f89524 Another improvement of documentation of set-fontset-font
* doc/lispref/display.texi (Fontsets): Say explicitly that
CHARACTER can be a single codepoint.
* src/fontset.c (Fset_fontset_font): Doc fix.
2015-06-14 18:13:06 +03:00
Glenn Morris
9bdd1c4c90 * src/xsmfns.c (x_session_initialize): Avoid libSM crash
when starup directory is missing.  (Bug#18851)
(errno.h): Include it.
2015-06-13 16:35:54 -07:00
Eli Zaretskii
f75d189ed8 Improve documentation of ':lang' in font specs
* src/font.c (Ffont_spec): Doc fix: elaborate on the values and
use of the ':lang' property of the font spec.
* doc/emacs/frames.texi (Fonts): Document the language names that
can be in the STYLE part of XLFD.
* doc/lispref/display.texi (Low-Level Font): Document the ':lang'
property.
2015-06-13 13:23:42 +03:00
Paul Eggert
d4870a525d * src/print.c (print_object): Minor simplification. 2015-06-12 16:28:09 -07:00
Glenn Morris
f8e26cd3af * src/buffer.c (init_buffer): Add final newline to message. 2015-06-12 18:07:48 -04:00
Andreas Schwab
c660910d20 Fix crash in fontset-info
* src/fontset.c (Ffontset_info): Check that the RFONT-DEF elt is
non-nil.
2015-06-12 21:18:05 +02:00
Paul Eggert
00119c6cb6 Port to Solaris 10 sparc + Sun C 5.13
* configure.ac (SETUP_SLAVE_PTY) [sol2* | unixware]:
Adjust to process.c change.
* src/process.c (create_process): Declare volatile variables at
top level of this function, so that they're less likely to be
reused later in the function in the code executed by the vforked
child.  Do not declare locals used only in the vforked child, as
they might share memory with locals still live in the parent.
Instead, use the same variables in the child as in the parent.
This works around a subtle bug that causes a garbage collector
crash when Emacs is built with Sun C 5.13 sparc on Solaris 10.
2015-06-11 22:50:30 -07:00
Glenn Morris
ebbc6a4782 Some progress towards starting with PWD deleted. (Bug#18851)
* src/buffer.c (init_buffer): Handle get_current_dir_name failures.

* lisp/startup.el (normal-top-level, command-line-1):
* lisp/minibuffer.el (read-file-name-default):
Handle default-directory being nil.
2015-06-11 20:34:54 -04:00
Paul Eggert
32e53667a9 Fix "not a tty" bug on Solaris 10
* configure.ac (PTY_OPEN): Define to plain 'open'
on SVR4-derived hosts, so that the O_CLOEXEC flag isn't set.
* src/process.c (allocate_pty): Set the O_CLOEXEC flag after
calling PTY_TTY_NAME_SPRINTF, for the benefit of SVR4-derived
hosts that call grantpt which does its work via a setuid subcommand
(Bug#19191, Bug#19927, Bug#20555, Bug#20686).
Also, set O_CLOEXEC even if PTY_OPEN is not defined, since it
seems relevant in that case too.
2015-06-11 16:42:10 -07:00
Nicolas Richard
ece5691fe6 * src/syntax.c (Fbackward_prefix_chars): Reword docstring 2015-06-11 11:49:00 +02:00
Eli Zaretskii
e0707282d2 Improve font selection for punctuation and other symbols
* src/fontset.c (face_for_char): If the character's script is
'symbol', and the font used for ASCII face has a glyph for it, use
the font for the ASCII face instead of searching the fontsets.
This comes instead of NS-specific code that used the current
face's font instead, which is now disabled due to undesirable
consequences.  (Bug#20727)
2015-06-09 17:56:39 +03:00
Eli Zaretskii
55200b4ca5 Fix compilation warning/error in --without-x builds
* src/xdisp.c (append_space_for_newline): Condition GUI-specific
code on HAVE_WINDOW_SYSTEM.
2015-06-08 21:15:05 +03:00
Eli Zaretskii
296dadb14e Avoid crashes when key-binding is called from a timer
* src/keymap.c (Fkey_binding): Don't segfault if called with an
empty vector as KEY.  (Bug#20705)
2015-06-08 17:39:35 +03:00
Glenn Morris
c876b73a8f ; * src/font.c (syms_of_font) <font-log>: Tweak previous doc fix. 2015-06-07 16:55:00 -07:00
Glenn Morris
85b812f631 * src/font.c (syms_of_font) <font-log>: Doc fix. 2015-06-07 16:51:11 -07:00
Glenn Morris
86abad6508 Remove the obsolete leading "*" from some C doc strings.
* src/coding.c (syms_of_coding):
* src/font.c (syms_of_font): Remove leading "*" from docs.

* lisp/cus-start.el (enable-character-translation): Add it.
2015-06-07 16:47:45 -07:00
Eli Zaretskii
f1baa15650 Fix display when a font claims large values of ascent and descent
This fixes bug#20628.

* src/xdisp.c (get_phys_cursor_geometry): Correct the Y
coordinate of a hollow cursor glyph when the original glyph's
ascent is too small.
(get_font_ascent_descent, normal_char_ascent_descent)
(normal_char_height): New functions.
(handle_single_display_spec, append_space_for_newline)
(calc_pixel_width_or_height, produce_stretch_glyph)
(calc_line_height_property): Use normal_char_ascent_descent and
normal_char_height.
(x_produce_glyphs): When font-global values of ascent and descent
are too large, use per-character glyph metrics instead, if
possible.  But don't allow the glyph row's ascent and descent
values become smaller than the values from the metrics of the
font's "normal" character.

* src/xftfont.c (xftfont_draw):
* src/w32font.c (w32font_draw): Correct the values of ascent and
descent used to draw glyphless characters' hex code in a box.

* src/xterm.c (x_draw_glyph_string_background):
* src/xdisp.c (x_produce_glyphs):
* src/w32term.c (x_draw_glyph_string_background):
* src/nsterm.m (ns_maybe_dumpglyphs_background): Use FONT_TOO_HIGH
to detect fonts whose global ascent and descent values are too
large to be used in layout decision, and redraw the background
when that happens.

* src/dispextern.h (FONT_TOO_HIGH): New macro.
(get_font_ascent_descent): Add prototype.

* src/xterm.c (x_new_font):
* src/w32term.c (x_new_font):
* src/nsterm.m (x_new_font):
* src/font.c (font_open_entity):
* src/composite.c (composition_gstring_width): Use
get_font_ascent_descent to obtain reasonable values for ascent and
descent of a font.
2015-06-06 16:10:19 +03:00
Nicolas Richard
6f10a3f90f Add assertion in adjust_point_for_property
* src/keyboard.c (adjust_point_for_property): Add eassert for
current buffer being shown in selected window.
2015-06-06 13:23:18 +02:00
Nicolas Richard
d31cd49074 Do not adjust point in a non-selected window
* src/keyboard.c (command_loop_1): Do not adjust point when
current buffer is not shown in selected window (Bug#20590).
2015-06-06 08:34:47 +02:00
YAMAMOTO Mitsuharu
7c9a2ef845 * src/ftfont.c (ftfont_open2): Round divisions by upEM. 2015-06-05 09:44:40 +09:00
YAMAMOTO Mitsuharu
dcf18b5c84 Undo removal of x_clear_area call on expose for GTK3 or cairo.
* src/xterm.c (handle_one_xevent) [HAVE_GTK3 || USE_CAIRO]: Clear
exposed area.  (Bug#20677)
2015-06-05 09:41:40 +09:00
Nicolas Petton
41a929c5ae Add new function string-greaterp
* lisp/subr.el (string-greaterp): New function.  Also aliased to
`string>'.
* test/automated/subr-tests.el (string-comparison-test): Add unit
tests for `string>'and `string<'.
* src/fns.c (string-lessp): Better docstring.
2015-06-04 18:27:54 +02:00
Eli Zaretskii
285260fce8 Fix timezone-related functions on MS-Windows
* src/editfns.c (set_time_zone_rule) [WINDOWSNT]: Always call
'xputenv', even if no reallocation of tzvalbuf was necessary.
This fixes a bug in timezone-related functions on MS-Windows.
Reported by Fabrice Popineau <fabrice.popineau@gmail.com>.
2015-06-04 18:28:29 +03:00
Wolfgang Jenkner
68529c89fa * src/indent.c (Fvertical_motion): Amend motion by 0 lines.
Starting from a display string after a newline, point went to the
previous line.  Also, fix an inadvertent use of a buffer position
with FETCH_BYTE.  (Bug#20701)
2015-06-03 15:29:24 +02:00