Commit graph

37723 commits

Author SHA1 Message Date
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
Paul Eggert
d08e8a11e1 Fix submake dependency bug with .h files
* src/Makefile.in ($(libsrc)/make-docfile$(EXEEXT)):
Depend on $(lib)/libgnu.a, so that we build $(lib)/*/*.h
before the submake in $(libsrc) would spin off a subsubmake
for $(lib) in parallel with our submake for $(lib) (Bug#20894).
2015-06-25 13:31:38 -07:00
Paul Eggert
ee80c11709 Translate undisplayable ‘ to `
* doc/lispref/help.texi (Keys in Documentation):
* lisp/international/mule-cmds.el (set-locale-environment):
* lisp/term/w32console.el (terminal-init-w32console):
* src/doc.c (Fsubstitute_command_keys, Vhelp_quote_translation):
If ‘ is not displayable, transliterate it to `, not to '.  See:
http://lists.gnu.org/archive/html/emacs-devel/2015-06/msg00542.html
2015-06-25 07:22:07 -07:00
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