1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-10 09:43:26 -08:00
Commit graph

40906 commits

Author SHA1 Message Date
Eli Zaretskii
6e0ff4cc1f Fix decoding of directories when "~" includes non-ASCII chars
* src/fileio.c (Fexpand_file_name): Don't build multibyte strings
from unibyte non-ASCII strings when NAME and DEFAULT_DIRECTORY
have different multibyteness, as this adds bytes to the byte
sequence, and in some situations, e.g., when the home directory
includes non-ASCII characters, can fail file APIs.  (Bug#30755)

* lisp/startup.el (normal-top-level): Make sure default-directory
is set to a multibyte string when decoded on MS-Windows.

(cherry picked from commit 3aab8626ba)
2018-06-02 12:37:19 +03:00
Ari Roponen
aac541e75e Fix some problems in the Cairo build
* src/xterm.c (x_begin_cr_clip): Create image surface.
(x_update_end) [USE_CAIRO]: Remove GTK3-specific code.
(x_scroll_run) [USE_CAIRO]: Implement scrolling.
* src/image.c (lookup_rgb_color) [USE_CAIRO]: Support Cairo.
(jpeg_load_body) [USE_CAIRO]: Support Cairo.  Use USE_CAIRO
instead of CAIRO for #ifdef's.
(imagemagick_load_image) [USE_CAIRO]: Support Cairo.
(Bug#31288)

(cherry picked from commit 2d0eff42b8)
2018-06-02 12:33:13 +03:00
Eli Zaretskii
e96245a549 Avoid infloops in font_open_entity
* src/font.c (font_open_entity): Fail after 15 iterations through
the loop that looks for a font whose average_width and height are
both positive.  This avoids infinite loops for fonts that, e.g.,
report average_width of zero for any possible size we try.
(Bug#31316)

(cherry picked from commit e2879c1f83)
2018-06-02 12:30:30 +03:00
Eli Zaretskii
7782550b3f Fix C-p and C-n when wrap-prefix is too wide
* src/xdisp.c (move_it_in_display_line_to): Avoid looping in
previous/next-line when wrap-prefix is set to a too-wide
stretch of whitespace.  (Bug#30432)

(cherry picked from commit 842b3d7412)
2018-06-02 12:27:22 +03:00
Eli Zaretskii
9804482b02 Avoid redisplay problems with too wide wrap-prefix
* src/xdisp.c (display_line): Avoid looping in redisplay when
wrap-prefix is set to a too-wide stretch of whitespace.
(Bug#30432)

(cherry picked from commit 2a1fe08307)
2018-06-02 12:25:50 +03:00
Eli Zaretskii
5ee9ccf5c9 Fix 'posn-at-point' when line numbers are displayed
* src/xdisp.c (pos_visible_p): For the leftmost glyph, adjust the X
coordinate due to line-number display.  (Bug#30834)

(cherry picked from commit 4a20174d79)
2018-06-02 12:23:49 +03:00
Eli Zaretskii
c4db7662bb Another followup to fixing 'window-text-pixel-width'
* src/xdisp.c (Fwindow_text_pixel_size): Adjust the return value
when we stop one buffer position short of TO.  (Bug#30746)

(cherry picked from commit 33cba5405c)
2018-06-02 12:21:23 +03:00
Eli Zaretskii
a6cf7be3f0 Fix mouse-set-point when line numbers are displayed
* src/xdisp.c (move_it_to): Initialize the line_number_produced_p
flag before iterating on a new line.  (Bug#30818)

(cherry picked from commit 5c585b8b99)
2018-06-02 12:19:42 +03:00
Eli Zaretskii
ae78b14290 * src/xdisp.c (Fwindow_text_pixel_size): Fix last change.
(cherry picked from commit 06911714ef)
2018-06-02 12:18:56 +03:00
Eli Zaretskii
f1f12d8be3 Fix 'window-text-pixel-size' when display properties are around
* src/xdisp.c (Fwindow_text_pixel_size): Correct the result when
there's a display property at the  TO position, and the call to
move_it_to overshoots.  (Bug#30746)

(cherry picked from commit 50e2c0fb51)
2018-06-02 12:17:16 +03:00
Eli Zaretskii
8b2b4b580c Fix display of TABs in hscrolled windows with line numbers
* src/dispextern.h (struct it): New members tab_offset and
line_number_produced_p.
* src/xdisp.c (display_line): Don't set row->x to a negative value
if line numbers are being displayed.  (Bug#30582)
Reset the line_number_produced_p flag before laying out the glyph
row.
(x_produce_glyphs): Use the line_number_produced_p flag to decide
whether to offset the X coordinate due to line-number display.
Use the tab_offset member to restore the original TAB width for
alignment purposes.
(move_it_in_display_line_to): Don't produce line numbers when moving
in hscrolled window to the left of first_visible_x.
(maybe_produce_line_number): Set the line_number_produced_p flag.
(Bug#30584)
* src/term.c (produce_glyphs): Correct TAB width only when
line_number_produced_p flag is set.

(cherry picked from commit 1ac1905538)
2018-06-02 12:15:14 +03:00
Matthias Dahl
de69d28458 Fix wait_reading_process_output wait_proc hang
* src/process.c (read_process_output): Track bytes read from
a process.
(wait_reading_process_output): If called recursively through
timers and/or process filters via accept-process-output, it is
possible that the output of wait_proc has already been read by
one of those recursive calls, leaving the original call hanging
forever if no further output arrives through that fd and no
timeout has been set.  Fix that by using the process read
accounting to keep track of how many bytes have been read and
use that as a condition to break out of the infinite loop and
return to the caller as well as to calculate the proper return
value (if a wait_proc is given that is).

* src/process.h (struct Lisp_Process): Add nbytes_read to track
bytes read from a process.

(cherry picked from commit 4ba32858d6)
2018-06-02 12:13:12 +03:00
Eli Zaretskii
ddd1b957e9 Fix posn-at-point in Flycheck buffers
* src/dispnew.c (buffer_posn_from_coords): Improve commentary.

* src/xdisp.c (move_it_in_display_line_to): Don't exit the loop
under truncate-lines if the glyph at TO_CHARPOS was not yet
produced.  This avoids bailing out too early when we are at
TO_CHARPOS, but didn't yet produce glyphs for that buffer
position, because the last call to PRODUCE_GLYPHS at this position
was for an object other than the buffer.  For further details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00537.html.

(cherry picked from commit c0154ac7c3)
2018-06-02 12:08:48 +03:00
João Távora
6a672b7925 Minimally support Flymake in Emacs C sources
The check-syntax target is enabled the use of Flymake's "legacy"
backend, flymake-proc-legacy-flymake in src/*.c.  It works quite well
with C sources.  The green light for this change had already been
given some time ago in

https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00385.html

* src/Makefile.in (check-syntax): New target.
(.PHONY): Add check-syntax.
2018-06-02 01:47:19 +01:00
Robert Pluim
9188291f7a Add detailed documentation about lock files
* doc/emacs/files.texi (Interlocking): Point user at detailed
file locking description in lisp reference manual.  Add index
entry for '.#' to improve disoverability of information about locking.

* doc/lispref/files.texi (File Locks): Describe in detail what
the form of the lock file is.  Add index entry for '.#' to
improve disoverability of information about locking.

* src/filelock.c (create-lockfiles): Add cross reference to
file locking in user manual and to 'lock-buffer'.  Add string
'.#' to help users find the doc string.
2018-06-01 15:06:20 +02:00
Eli Zaretskii
99f92dab3d Improve documentation of 'directory-files-and-attributes'
* doc/lispref/files.texi (Contents of Directories): Fix inaccurate
description of the return value of directory-files-and-attributes.

* src/dired.c (Fdirectory_files_and_attributes): Describe the
function's value in more detail.
2018-06-01 11:27:29 +03:00
Lars Ingebrigtsen
8ca4228393 Fdirectory_files_and_attributes doc string clarification
* src/dired.c (Fdirectory_files_and_attributes): Clarify what data
is returned.
2018-05-31 13:52:32 +02:00
Paul Eggert
fb9c52bb7d Work around GCC bug 81401
* src/xterm.c (x_draw_glyphless_glyph_string_foreground):
Make the buffer a byte longer than it needs to be, if
--enable-gcc-warnings.
2018-05-30 13:00:31 -07:00
Eli Zaretskii
5be83e343f Allow access to MS-Windows Registry from Lisp programs
* src/w32.c (g_b_init_reg_open_key_ex_w)
(g_b_init_reg_query_value_ex_w)
(g_b_init_expand_environment_strings_w): New init flags.
(globals_of_w32): Initialize them at startup.
(RegOpenKeyExW_Proc, RegQueryValueExW_Proc)
(ExpandEnvironmentStringsW_Proc): New function typedefs.
(reg_open_key_ex_w, reg_query_value_ex_w)
(expand_environment_strings_w): New wrapper function.
(w32_read_registry): New function.
* src/w32fns.c (Fw32_read_registry) [WINDOWSNT]: New primitive.
(syms_of_w32fns) [WINDOWSNT]: Defsubr it.  DEFSYM "HKLM", "HKCU",
etc. root keys.

* etc/NEWS: Mention the new primitive.
2018-05-29 20:52:17 +03:00
Paul Eggert
a37166eb80 Port .gdbinit to unsigned-pointer platforms
* src/.gdbinit (Lisp_Object_Printer.to_string):
Don’t assume that GDB treats C pointers as signed integers.
Problem found with GDB Fedora 8.1-15.fc28.
2018-05-26 17:33:21 -07:00
Paul Eggert
a73e4f53ab GNOME moved URLs for its active bug reports
* src/emacs.c (main) [USE_GTK]:
* src/gtkutil.c (xg_display_close):
* src/xterm.c (x_connection_closed):
Update GNOME bug report URLs.
2018-05-26 16:44:09 -07:00
Glenn Morris
48d6212655 Merge from origin/emacs-26
07f8f9b (origin/emacs-26) ; * lisp/ldefs-boot.el: Update.
5cec2b0 * etc/HISTORY: Update for Emacs 26.1 release.
7c474e1 * etc/AUTHORS: Update.
ddc7bea ; * ChangeLog.3: Update.
3557460 ; * admin/authors.el: Update.
2f44d2d Note caveat for backward regexp searching in docstring (Bug#3...
3145d08 Update backtrace in Emacs Lisp Intro
43a9c26 Move window-point in bibtex-search-entry
4bb2741 More fixes of Intro to Emacs Lisp
c57c226 ; * doc/emacs/misc.texi (FFAP): Fix a typo.  (Bug#31580)
0a51113 Add a footnote to Emacs Lisp Intro
5eabe4a ; * doc/emacs/msdos.texi (ls in Lisp): Fix a typo.  (Bug#31575)
d5e0ceb * lisp/help.el (with-help-window): Doc fix.  (Bug#31574)
e7952bd Fix some cross-references in emacs-lisp-intro.texi
a897959 Minor copyedits in Emacs manual in macos.texi

Conflicts:
	lisp/ldefs-boot.el
2018-05-25 09:45:34 -07:00
Noam Postavsky
2f44d2d5b1 Note caveat for backward regexp searching in docstring (Bug#31584)
* src/search.c (Fre_search_backward): Emphasize that backwards
searches may give shorter than expected matches.
* doc/lispref/searching.texi (Regexp Search): Add an anchor for
re-search-backward to reference.
2018-05-25 07:54:30 -04:00
Noam Postavsky
6f037f427a Honor print-charset-text-property value of nil (Bug#31376)
* src/print.c (print_check_string_charset_prop): Move check
for nil Vprint_charset_text_property from here...
(print_prune_string_charset): ... to here.
(syms_of_print) <print-charset-text-property>: Clarify that any
non-boolean values are treated the same as `default'.
* doc/lispref/streams.texi (Output Variables): Add
print-prune-string-charset.
* test/src/print-tests.el (print-charset-text-property-nil)
(print-charset-text-property-default)
(print-charset-text-property-t): New tests.
(print-tests--prints-with-charset-p): New helper function.
2018-05-23 07:53:58 -04:00
Paul Eggert
e18600dfbd Work around GCC bug with function attributes
* src/alloc.c (PNTR_ADD): Put attributes after ‘static’ and before
returned type.  Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-05/msg00559.html
2018-05-22 13:05:48 -07:00
Paul Eggert
02f303d75f Fix failed assertion when load-force-doc-strings
Problem reported by Philipp Stephani (Bug#31556).
* src/lread.c (read_vector): When load_force_doc_strings, check
for byte code vectors that are invalid because they are too short.
* test/src/lread-tests.el (lread-invalid-bytecodes): New test.
2018-05-22 12:42:16 -07:00
Paul Eggert
a51725280a Minor tweaks to recent fix for Bug#31545
* src/xwidget.c (webkit_javascript_finished_cb)
(Fxwidget_webkit_execute_script): Use intptr_t to avoid warnings
in the (unlikely) event that ptrdiff_t and void * differ in width.
(save_script_callback): Simplify by using xlispdstrdup and
larger_vector.
2018-05-22 09:14:03 -07:00
Andreas Schwab
d2d35febf2 * src/xwidget.c (Fxwidget_webkit_goto_uri): Encode uri. 2018-05-22 00:09:24 +02:00
Andreas Schwab
8811c2408d Make xwidget-webkit-execute-script safe against GC (Bug#31545)
* src/xwidget.h (struct xwidget): Add script_callbacks.
* src/xwidget.c (save_script_callback): New function.
(Fxwidget_webkit_execute_script): Use it.  Encode script
before passing to execution engine.  Always use a callback.
(webkit_javascript_finished_cb): Deallocate script.
(kill_buffer_xwidgets): Deallocate remaining scripts.
(Fxwidget_webkit_zoom): Doc fix.
(Fxwidget_resize): Doc fix.
2018-05-21 22:51:20 +02:00
Paul Eggert
593c367b07 * src/alloc.c: Fix comment. 2018-05-18 15:53:21 -07:00
Paul Eggert
a1c925fd41 Port to GCC 8 -fsanitize=undefined
In GCC 8, gcc -fsanitize=undefined flags the undefined behavior
that Emacs relies on in its XPNTR and XSYMBOL low-level functions.
Disable undefined sanitization in these functions.  Although this
disabling doesn’t suffice if DEFINE_KEY_OPS_AS_MACROS is true, it
works for -fsanitize=undefined -DINLINING=0, which is good enough.
* src/alloc.c (macro_PNTR_ADD): New macro.
(PNTR_ADD): New function and macro.
The function disables -fsanitize=undefined.
(macro_XPNTR): Use it.
* src/conf_post.h (ATTRIBUTE_NO_SANITIZE_UNDEFINED): New macro.
* src/lisp.h (XSYMBOL): Disable -fsanitize=undefined.
2018-05-18 15:49:48 -07:00
Eli Zaretskii
3aab8626ba Fix decoding of directories when "~" includes non-ASCII chars
* src/fileio.c (Fexpand_file_name): Don't build multibyte strings
from unibyte non-ASCII strings when NAME and DEFAULT_DIRECTORY
have different multibyteness, as this adds bytes to the byte
sequence, and in some situations, e.g., when the home directory
includes non-ASCII characters, can fail file APIs.  (Bug#30755)

* lisp/startup.el (normal-top-level): Make sure default-directory
is set to a multibyte string when decoded on MS-Windows.
2018-05-18 16:34:19 +03:00
Glenn Morris
3ee1841f28 Merge from origin/emacs-26
b98cf9c ; Fix a typo in the Emacs manual
700fcd7 * doc/emacs/help.texi: Fix paren typo.
c9c0e40 More minor changes in shell-related nodes of Emacs manual
e6bf19c Fix inaccuracies in "Shell Ring" node of Emacs manual
087681b8 Improve documentation of kmacro commands and variables.
be2e8cb * doc/man/emacs.1.in: Document --fg-daemon and --bg-daemon.
1d9e66a Don't check non-X frames for z order (Bug#31373)
7dc028e Check NSWindow is actually a frame

Conflicts:
	src/nsfns.m
2018-05-15 09:09:48 -07:00
Basil L. Contovounesios
eabb6f6c3e Rewrite scroll-other-window-down in C (bug#30207)
* lisp/window.el (scroll-other-window-down):
Move to src/window.c as Fscroll_other_window_down.
* src/window.c (scroll_command): Generalise for arbitrary windows.
(Fscroll_up, Fscroll_down): Use scroll_command with selected_window.
(Fscroll_other_window, Fscroll_other_window_down):
Rewrite in terms of scroll_command.
(syms_of_window): Add Sscroll_other_window_down.
2018-05-10 19:04:11 -04:00
Basil L. Contovounesios
d5cf1b3160 Improve documentation for "other window" scrolling
* doc/emacs/windows.texi (Other Window):
* doc/lispref/windows.texi (Textual Scrolling):
Document scroll-other-window-down.
* doc/lispref/minibuf.texi (Minibuffer Misc):
Cross-reference minibuffer-scroll-window with Textual Scrolling.
* src/window.c (Fother_window_for_scrolling):
Clarify how "other window" is determined in docstring.
(Fscroll_other_window): Simplify docstring, pointing to that of
Fother_window_for_scrolling. (bug#30207)
2018-05-10 19:04:11 -04:00
Basil L. Contovounesios
dc9188ada5 Limit "other window" scrolling to current terminal
* src/window.c (Fother_window_for_scrolling): Limit next-window
search to visible frames on the current terminal. (bug#30207)
2018-05-10 19:04:11 -04:00
Noam Postavsky
1d9e66aea1 Don't check non-X frames for z order (Bug#31373)
* src/xfns.c (x_frame_list_z_order): Only use frames with
`output_method' set to `output_x_window'.
2018-05-07 21:35:25 -04:00
Alan Third
7dc028e250 Check NSWindow is actually a frame
* src/nsfns.m (Fns_frame_list_z_order): Check NSWindow is an instance
of EmacsView before treating it as one.
2018-05-07 22:58:42 +01:00
Glenn Morris
766b057e41 Merge from origin/emacs-26
1d732d6 (origin/emacs-26) Fix gud-statement for pdb
91a68b5 ; * msdos/INSTALL: Add info about GCC versions.
7ddcc9a Document 'custom-group'
58f9e15 A minor addition to etc/DEBUG
4590414 Avoid errors in ispell.el when Enchant returns empty extra chars
d0d75f9 Make 'ispell-initialize-spellchecker-hook' work again
b90ce66 Handle selected_window change in prepare_menu_bars (Bug#31312)
79ad0b3 ; * INSTALL: Fix Emacs version number.  (Bug#31358)
91de88b Fix report-emacs-bug via mailclient on MS-Windows
f4b5ff2 Port collation tests to glibc 2.27
2018-05-07 07:50:49 -07:00
Ari Roponen
6e362a32bc Fix cairo scrolling for side-by-side windows
* src/xterm.c (x_scroll_run) [USE_CAIRO]: Fix scrolling for
side-by-side split windows.  (Bug#31288)
2018-05-06 21:27:57 +03:00
Ari Roponen
2d0eff42b8 Fix some problems in the Cairo build
* src/xterm.c (x_begin_cr_clip): Create image surface.
(x_update_end) [USE_CAIRO]: Remove GTK3-specific code.
(x_scroll_run) [USE_CAIRO]: Implement scrolling.
* src/image.c (lookup_rgb_color) [USE_CAIRO]: Support Cairo.
(jpeg_load_body) [USE_CAIRO]: Support Cairo.  Use USE_CAIRO
instead of CAIRO for #ifdef's.
(imagemagick_load_image) [USE_CAIRO]: Support Cairo.
(Bug#31288)
2018-05-05 12:29:40 +03:00
Eli Zaretskii
e2879c1f83 Avoid infloops in font_open_entity
* src/font.c (font_open_entity): Fail after 15 iterations through
the loop that looks for a font whose average_width and height are
both positive.  This avoids infinite loops for fonts that, e.g.,
report average_width of zero for any possible size we try.
(Bug#31316)
2018-05-05 11:52:29 +03:00
Noam Postavsky
b90ce66d32 Handle selected_window change in prepare_menu_bars (Bug#31312)
* src/xdisp.c (redisplay_internal): Check selected_window after
calling prepare_menu_bars, since it can call lisp hooks.
2018-05-03 20:58:06 -04:00
Paul Eggert
ef1deb48f4 More porting to GCC 8 of --enable-gcc-warnings
* lwlib/lwlib-Xaw.h (xaw_update_one_value, xaw_popup_menu):
* lwlib/lwlib-Xlw.h (xlw_update_one_value, xlw_pop_instance):
* lwlib/lwlib.h (lw_allow_resizing, lw_set_main_areas) [!USE_MOTIF]:
No longer const.
* src/emacs-module.c: Ignore -Wcast-function-type.
2018-05-03 11:17:32 -07:00
Basil L. Contovounesios
f2c74543ed Fix off-by-one history pruning (bug#31211)
* lisp/subr.el (add-to-history): Clarify docstring.
Protect against negative history-length and unnecessary variable
modification, as per read_minibuf.

* lisp/ido.el (ido-record-command):
* lisp/international/mule-cmds.el (deactivate-input-method):
(set-language-environment-input-method):
* lisp/isearch.el (isearch-done):
* lisp/minibuffer.el (read-file-name-default):
* lisp/net/eww.el (eww-save-history):
* lisp/simple.el (edit-and-eval-command, repeat-complex-command):
(command-execute, kill-new, push-mark):
* src/callint.c (Fcall_interactively):
* src/minibuf.c (read_minibuf): Delegate to add-to-history.

* test/lisp/simple-tests.el (command-execute-prune-command-history):
* test/src/callint-tests.el
(call-interactively-prune-command-history): New tests.
2018-05-02 20:18:07 -04:00
Paul Eggert
65ac27783a Port --enable-gcc-warnings to GCC 8
Backport from master.
* lib-src/emacsclient.c (fail):
Do not dereference a null pointer.
* src/frame.c (delete_frame):
Add a decl with UNINIT to work around GCC bug 85563.
* src/menu.h (finish_menu_items):
Do not use attribute const.
* src/regex.c (analyze_first): Use FALLTHROUGH, not a comment.
2018-04-30 17:17:54 -07:00
Paul Eggert
8c3215e7a4 Port --enable-gcc-warnings to GCC 8
* configure.ac: Do not use GCC 8’s new -Wcast-align flag.
* lib-src/ebrowse.c (xmalloc):
* lib-src/emacsclient.c (xmalloc, xstrdup):
* lib-src/etags.c (xmalloc):
* lib-src/make-docfile.c (xmalloc):
* lib-src/movemail.c (xmalloc):
* src/dispnew.c (new_glyph_pool):
* src/regex.c (xmalloc):
* src/term.c (tty_menu_create):
* src/tparam.h (tparam):
Use ATTRIBUTE_MALLOC.  Also see GCC bug 85562.
* lib-src/emacsclient.c (fail):
Do not dereference a null pointer.
* src/frame.c (delete_frame):
Add a decl with UNINIT to work around GCC bug 85563.
* src/menu.h (finish_menu_items):
Do not use attribute const.
* src/regex.c (analyze_first): Use FALLTHROUGH, not a comment.
2018-04-28 16:56:48 -07:00
Eli Zaretskii
0b3bc05d15 * src/fns.c (Fstring_distance): Minor code reformatting. 2018-04-28 10:41:27 +03:00
Eli Zaretskii
a7a3918a16 Fix documentation and tests for 'string-distance'
* src/fns.c (Fstring_distance): Doc fix.

* doc/lispref/strings.texi (Text Comparison): Document
'string-distance'.

* etc/NEWS: Fix wording and mark as documented in the manuals.

* test/src/fns-tests.el (test-string-distance): Move from
subr-tests.el and rename.
2018-04-28 10:27:53 +03:00
Chen Bin
c6e6503900 New function 'string-distance'
* src/fns.c (Fstring_distance): New primitive.
(syms_of_fns): Defsubr it.

* test/lisp/subr-tests.el (subr-tests--string-distance): New test.

* etc/NEWS: Mention 'string-distance'.
2018-04-28 09:56:14 +03:00