1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-26 01:40:53 -08:00
Commit graph

38140 commits

Author SHA1 Message Date
Eli Zaretskii
1db9d8bd0f Clarify documentation of 'modify-frame-parameters'
* doc/lispref/frames.texi (Parameter Access): Clarify what "ignored
PARMs" mean for 'modify-frame-parameters'.

* src/frame.c (Fmodify_frame_parameters): Clarify what "ignored
PARMs" mean for this function.  (Bug#22104)
2015-12-11 10:46:18 +02:00
Eli Zaretskii
b3277c7d39 Fix setting buffer unibyte when reading from a device
* src/fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
to make a (possibly non-empty) buffer unibyte.  (Bug#22096)
2015-12-11 10:25:37 +02:00
Eli Zaretskii
d75849e937 Yet another fix for when point ends up in invisible text
* src/xdisp.c (redisplay_window): When someone forced
window-start, and honoring that failed to show the cursor, try
moving out of invisible text, before falling back to the middle of
the window.  (Bug#22098)
2015-12-09 20:03:54 +02:00
YAMAMOTO Mitsuharu
59d08e9898 Remove font workaround for limited outdated versions
* src/macfont.m (mac_font_descriptor_get_adjusted_weight): Remove
workaround for HiraginoSans-W7 on OS X 10.11 and 10.11.1.
2015-12-09 18:20:25 +09:00
Anders Lindgren
ae3057412a Don't add "." to load path (bug#21104)
When configured with --enable-locallisppath=no, which is the
default for OS X, the load-path incorrectly was populated with ".".

* src/lread.c (init_lread): Don't call `decode_env_path' when
PATH_SITELOADSEARCH is empty.
2015-12-09 06:35:12 +01:00
Paul Eggert
9b0ffdbadd Spelling fixes
* doc/misc/calc.texi (Predefined Units): Use the bland modern
scientific style for spelling the units “ampere” and
“angstrom” rather than the older style “Ampere” and
“Ångstrom”.  The latter spelling was wrong anyway (it should
have been “Ångström”).
* lisp/emacs-lisp/ert.el (ert--explain-equal-rec):
Fix misspelling of ‘atom’ in code.
2015-12-07 08:38:05 -08:00
Paul Eggert
b44caf951a Remove overenthusiastic eassert
* src/lisp.h (XSYMBOL): Remove eassert incorrectly added in
previous change.  It breaks on MS-Windows --with-wide-int.
Problem reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-12/msg00275.html
2015-12-06 15:07:40 -08:00
Paul Eggert
6aa37b26b8 Pacify gcc -Wparentheses
* src/xdisp.c (row_containing_pos): Reparenthesize.
2015-12-06 14:59:04 -08:00
Eli Zaretskii
cca5629f78 Fix cursor display when invisible text is at line beginning
* src/xdisp.c (redisplay_window): When scrolling fails to show
point, prefer using the desired matrix if possible for finding the
fallback glyph row for displaying the cursor.  (Bug#22098)
(row_containing_pos): Exit the loop as soon as we hit the first
disabled glyph row.  Otherwise we risk accessing garbled data and
departing to the no-no land.
2015-12-06 19:27:12 +02:00
Paul Eggert
302bbe00b3 Improve module interface when WIDE_EMACS_INT
* src/emacs-module.c (plain_values): New constant.
(module_nil): Now a constant.
(Finternal_module_call, value_to_lisp_bits, lisp_to_value_bits)
(syms_of_module): Use if, not #ifdef, so that both sides are
checked at compile-time, and so that GCC doesn’t complain
about an unused var in the typical case.  Also, depend on
plain_values, not on WIDE_EMACS_INT; the code shouldn’t assume
that WIDE_EMACS_INT implies !USE_LSB_TAG.
(value_to_lisp_bits, lisp_to_value_bits): New functions.
Sign-extend integers rather than zero-extending them, as small
negative integers are more likely.
(value_to_lisp, lisp_to_value): Rewrite in terms of the new *_bits
functions.
(HAVE_STRUCT_ATTRIBUTE_ALIGNED): Define to 0 if not already defined.
(mark_modules): Remove.  All uses removed.
(lisp_to_value): Don’t assume Fcons returns a pointer aligned
to GCALIGNMENT.
(syms_of_module): Check that module_nil converts to Qnil.
* src/lisp.h (lisp_h_XSYMBOL, XSYMBOL): Use signed conversion, since
we prefer signed to unsigned when either will do.
(TAG_PTR): Sign-extend pointers when USE_LSB_TAG, as this is
a bit better for emacs-module.c.
2015-12-06 09:09:58 -08:00
Phillip Lord
eaa1fd6dbf Externalize some symbols in undo-auto
* doc/lispref/text.texi: Update symbols.
 * lisp/simple.el (undo-auto--amalgamate,
   undo-auto--current-boundary-timer): Make symbols public.
 * src/cmds.c (Fself_insert_command,Fdelete_char): Call
   updated symbol.
2015-12-03 21:27:33 +00:00
Eli Zaretskii
36dbe6fc3e More emacs-module.c fixes for wide ints
* src/emacs-module.c (value_to_lisp) [WIDE_EMACS_INT]: Use
unsigned data types to manipulate pointers, to avoid sign
extension coming after us with a vengeance.

* modules/mod-test/test.el (mod-test-sum-test): Add tests for
Emacs with wide ints that verify integer values near the critical
value that requires us to switch to a cons cell.
2015-12-02 16:06:01 +02:00
Eli Zaretskii
bdebeb77a0 Fix emacs-module.c for wide ints
* src/emacs-module.c (lisp_to_value): Compare the produced value
with the original Lisp object, not with the one potentially
converted into a Lisp_Cons.  Fixes assertion violations when
working with integers larger than fit into a 32-bit value.

* modules/mod-test/test.el (mod-test-sum-test): Add tests for
large integers, to test --with-wide-int.
2015-12-01 20:34:12 +02:00
Andreas Schwab
407cde8355 * src/lread.c (syms_of_lread): Doc fix. 2015-12-01 11:42:49 +01:00
David Reitter
49689a415c Read frame_title_format from buffer-local variable for NS port
* nsfns.m (x_implicitly_set_name): Read frame-title-format and
icon-title-format variables from buffer in appropriate window.
(Bug#22048)
2015-11-30 21:01:06 -05:00
Aurélien Aptel
7210f5130a * src/emacs-module.h: Fix finalizer typedef for C++11
C++11 standard doesn't allow exception-specification in typedef.
The workaround is to declare a dummy function prototype and use
decltype on it.
2015-11-30 23:53:40 +01:00
Eli Zaretskii
ec62f2f5ad Fix last change
* src/emacs-module.c (lisp_to_value, value_to_lisp)
[WIDE_EMACS_INT]: Avoid compiler warnings.
2015-11-30 22:46:45 +02:00
Stefan Monnier
3eb93c07f7 Rely on conservative stack scanning to find "emacs_value"s
* src/emacs-module.c (struct emacs_value_tag)
(struct emacs_value_frame, struct emacs_value_storage): Remove.
(value_frame_size): Remove constant.
(struct emacs_env_private): Use Lisp_Object for non_local_exit info.
(lisp_to_value): Remove first arg.
(module_nil): New constant.
Use it instead of NULL when returning an emacs_value.
(module_make_function): Adjust to new calling convention of
Qinternal_module_call.
(DEFUN): Receive args in an array rather than a list.
Use SAFE_ALLOCA rather than xnmalloc.  Skip the lisp_to_value loop when
we don't have WIDE_EMACS_INT.  Adjust to new type of non_local_exit info.
(module_non_local_exit_signal_1, module_non_local_exit_throw_1):
Adjust to new type of non_local_exit info.
(ltv_mark) [WIDE_EMACS_INT]: New constant.
(value_to_lisp, lisp_to_value): Rewrite.
(initialize_frame, initialize_storage, finalize_storage): Remove functions.
(allocate_emacs_value): Remove function.
(mark_modules): Gut it.
(initialize_environment): Don't initialize storage any more.
Keep the actual env object on Vmodule_environments.
(finalize_environment): Don't finalize storage any more.
(syms_of_module): Initialize ltv_mark and module_nil.

* src/emacs-module.h (emacs_value): Make it more clear that this type
is really opaque, including the fact that NULL may not be valid.

* modules/mod-test/mod-test.c (Fmod_test_signal, Fmod_test_throw):
Don't assume that NULL is a valid emacs_value.
2015-11-30 14:34:42 -05:00
Martin Rudalics
10870c8544 Run `window-size-change-functions' also when reading from minibuffer
* src/xdisp.c (redisplay_internal): Run `window-size-change-functions'
also when reading from minibuffer.
2015-11-30 18:24:13 +01:00
Paul Eggert
36649e0150 Spelling and grammar fixes 2015-11-29 21:52:17 -08:00
Philipp Stephani
c217802b0f Simplify the prologue of emacs-module.c functions
* emacs-module.c (MODULE_FUNCTION_BEGIN): New macro.
(module_make_global_ref)
(module_free_global_ref, module_make_function, module_funcall)
(module_intern, module_type_of, module_extract_integer)
(module_make_integer, module_extract_float, module_make_float)
(module_copy_string_contents, module_make_string)
(module_make_user_ptr, module_get_user_ptr, module_set_user_ptr)
(module_get_user_finalizer, module_set_user_finalizer)
(module_vec_set, module_vec_get, module_vec_size): Use new helper
macro MODULE_FUNCTION_BEGIN.
2015-11-28 14:08:21 +02:00
Eli Zaretskii
a63d1eca8d Don't reject module calls with no arguments
* src/emacs-module.c (Finternal_module_call): Allow ARGLIST be nil.
2015-11-28 13:59:12 +02:00
Philipp Stephani
b527d609d9 Make module-call be visible from Lisp
* src/emacs-module.c (module_make_function): Use internal--module-call.
(Finternal_module_call): Renamed from Fmodule_call.  Add safety
checks.
(syms_of_module): DEFSYM save-value-p and save-pointer-p.  Do
defsubr internal--module-call.
2015-11-28 13:53:32 +02:00
Paul Eggert
f32c79dd0e Fix minor problems found by static checking
* src/undo.c (prepare_record): Add proper prototype for C.
2015-11-27 22:09:11 -08:00
Stefan Monnier
60d8c804cf * src/emacs-module.c (struct env_storage): Delete
(struct emacs_runtime_private): Keep an emacs_env instead.
(Fmodule_load, Fmodule_call): Declare emacs_env_private separately.
(initialize_environment): Split the arg in two.	 Adjust all callers.
Only store the private part in Vmodule_environments.
(finalize_environment): Change the arg to only be the private env.
Adjust all callers.
2015-11-27 15:18:29 -05:00
Eli Zaretskii
1ed316d275 Improve handling of signals and 'throw' in modules
* src/emacs-module.c: Add commentary explaining how to write
functions in this file.
(module_make_global_ref, module_free_global_ref)
(module_non_local_exit_signal, module_non_local_exit_throw)
(module_make_function, module_funcall, module_intern)
(module_type_of, module_is_not_nil, module_eq)
(module_extract_integer, module_make_integer)
(module_extract_float, module_make_float)
(module_copy_string_contents, module_make_string)
(module_make_user_ptr, module_get_user_ptr, module_set_user_ptr)
(module_get_user_finalizer, module_set_user_finalizer)
(module_vec_set, module_vec_get, module_vec_size)
(module_non_local_exit_signal_1, module_non_local_exit_throw_1):
Do nothing and return with failure indication immediately, if some
previous module call signaled an error or wants to throw.  See
http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02133.html
for the relevant discussions.
2015-11-27 12:51:52 +02:00
Eli Zaretskii
3f42061bb6 Improve documentation of 'eval-buffer' and 'eval-region'
* src/lread.c (Feval_buffer, Feval_region): Doc fixes.  (Bug#22023)

* doc/lispref/eval.texi (Eval): Mention narrowing to clarify
"accessible portion of buffer".
2015-11-27 12:07:08 +02:00
Eli Zaretskii
33460000f9 Unbreak the Cygwin w32 build
* src/emacs.c (main): Call w32_init_main_thread in the Cygwin w32
build as well.  Reported by Andy Moreton <andrewjmoreton@gmail.com>.
2015-11-27 10:01:40 +02:00
Eli Zaretskii
3f042f6588 Improve commentary of prepare_to_modify_buffer_1
* src/insdel.c (prepare_to_modify_buffer_1): Mention in commentary
that this function runs Lisp.  Suggested by Richard Stallman
<rms@gnu.org>.
2015-11-26 22:08:54 +02:00
Phillip Lord
ae18cc20f8 Merge branch 'emacs-25' of git.sv.gnu.org:/srv/git/emacs into emacs-25 2015-11-26 18:09:15 +00:00
Phillip Lord
13a03c9083 Fix regression after merge.
* undo.c (prepare_record): Remove call to run_undoable_change.
2015-11-26 18:02:29 +00:00
Phillip Lord
7592cb9d2a After delete, record point location in undo.
Addresses Bug #21968.

	* lisp/simple.el (undo-auto--add-boundary): Clean up code to
	better support intercalating calls.
	* src/keyboard.c,src/keyboard.h (command_loop_1): Store value of
	point and current buffer before each command.
	* src/undo.c (record_point): Now only record the point.
	* src/undo.c (prepare_record): Functionality removed form
	record_point.
	* src/undo.c (record_delete): Check if point needs recording.
	* src/undo.c (undo-boundary): Record value of point before each
	boundary.
	* test/automated/simple-test.el: New tests.

Conflicts:
	src/undo.c
2015-11-26 17:57:11 +00:00
Eli Zaretskii
6f5f62b3c7 Fix compiler warnings in w32.c
* src/w32.c (sys_socket): In case of error, use -1 as return
value, not INVALID_SOCKET, which causes compiler warnings.
(maybe_load_unicows_dll): Cast the return value of GetProcAddress
to the appropriate function signature, to avoid compiler errors.
Reported by Andy Moreton <andrewjmoreton@gmail.com>.  (Bug#21953)
2015-11-26 19:53:47 +02:00
Paul Eggert
54e8c7bd3a * src/undo.c (record_property_change): Remove now-unused local. 2015-11-25 16:14:53 -08:00
Phillip Lord
957b05c615 run_undoable_changes now called from insdel.
The original calls from inside undo.c are not always at a safe position
to call lisp, as they originate in varied positions within insdel.c.
Calling them directly from prepare_to_modify_buffer_1 ensures that they
are always run at the same point.

 * undo.c (run_undoable_changes,syms_of_undo): Remove function
 and symbol used.
 * insdel.c (run_undoable_changes): Add function and symbol.
2015-11-25 21:39:49 +00:00
Paul Eggert
d8143fa89b Fix module_format_fun_env when dynlib_addr fails
* src/emacs-module.c (module_format_fun_env):
exprintf doesn’t support %p, so use %x.  Reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg02122.html
2015-11-24 23:44:10 -08:00
Eli Zaretskii
146f361a13 Implement dynlib_addr for MS-Windows
* src/dynlib.c [WINDOWSNT]: Include w32common.h.
<g_b_init_get_module_handle_ex> [WINDOWSNT]: New static variable.
(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS)
(GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT) [WINDOWSNT]: Define
if undefined.
(dynlib_reset_last_error): Reset g_b_init_get_module_handle_ex to
zero.
(dynlib_addr) [WINDOWSNT]: Non-trivial implementation to report
the full file name of the module for a given address.
2015-11-24 21:04:56 +02:00
Eli Zaretskii
d5fdffecdf Fix crash at startup related to GC of font entities
* src/font.h (GC_FONT_SPEC_P, GC_FONT_ENTITY_P)
(GC_FONT_OBJECT_P, GC_XFONT_SPEC, GC_XFONT_ENTITY)
(GC_XFONT_OBJECT): New macros, for use in garbage collector.
* src/alloc.c (compact_font_cache_entry, compact_font_caches):
Don't ifdef away font cache compaction on NT_GUI, as the problems
which led to that seem to have been solved.
(compact_font_cache_entry): Use GC_FONT_SPEC_P, GC_XFONT_SPEC,
GC_XFONT_ENTITY, and GC_XFONT_OBJECT, instead of their non-GC_
cousins.  (Bug#21999)
2015-11-24 18:08:39 +02:00
Ken Raeburn
cb1bd34965 Fix kbd_buffer iteration loop in readable_events
* src/keyboard.c (readable_events): Wrap the event pointer back to the
start of the kbd_buffer array inside the top of the loop instead of
right before checking the loop condition, since kbd_fetch_ptr and
kbd_store_ptr point past the end of the array to mean that element 0
is next. (bug#21935)
2015-11-24 03:51:13 -05:00
Paul Eggert
946ea4184c Improve text-quoting-style doc 2015-11-23 19:23:06 -08:00
Paul Eggert
004f4fc9d4 Simplify module_make_function
* src/emacs-module.c (module_make_function):
Simplify by calling build_unibyte_string.
2015-11-23 19:01:51 -08:00
Paul Eggert
da8c7ca264 Port better to FreeBSD’s dlfunc vs dlsym
This avoids warnings when converting between void * and
function pointers, which strict C11 does not allow.
* configure.ac (dlfunc): Check for existence.
* src/dynlib.c (dlfunc) [!HAVE_DLFUNC]: New macro.
(dynlib_func): New function.
* src/dynlib.h (dynlib_function_ptr, dynlib_func): New decls.
* src/emacs-module.c (Fmodule_load): Use dynlib_func, not
dynlib_sym, for function pointers.
2015-11-23 19:01:51 -08:00
Paul Eggert
ceaca7bec6 Simplify use of emacs_finalizer_function type
* src/emacs-module.h (emacs_finalizer_function):
Now EMACS_NOEXCEPT.  All users simplified to omit EMACS_NOEXCEPT.
(struct emacs_env_25): Use emacs_finalizer_function where applicable.
2015-11-23 19:01:51 -08:00
Paul Eggert
4f10c3cdef module_format_fun_env fixes
* src/doprnt.c (exprintf) [HAVE_MODULES]: Also define in this case.
* src/emacs-module.c (module_format_fun_env):
Convert path and sym to UTF-8.
Don’t use VLAs, as the C11 standard says they’re optional,
and anyway they can cause core dumps with large allocations.
Use exprintf rather than snprintf, as exprintf handles arbitrarily
long strings.  Simplify the code a bit.
2015-11-23 15:46:11 -08:00
Anders Lindgren
345a9c8cd0 New visible-bell for NextStep (OS X El Capitan compatible).
Instead of inverting a rectangle in the middle of the frame, use
the standard NextStep image "caution", represented using an
warning sign with an exclamation mark.  (Bug#21662)

Implemented based on a suggestion drafted by Mustafa Kocaturk.

* src/nsterm.m (EmacsBell): New class for managing the caution
image.  Support multiple active bells, the image is removed once
all bells have timed out.
(ns_timeout): Removed, no longer used.
(ns_ring_bell): Reimplemented to use EmacsBell.
2015-11-23 22:09:06 +01:00
Eli Zaretskii
345bc61796 Improve how non-ASCII strings are accepted from modules
* src/emacs-module.c (module_make_function, module_make_string):
Build a unibyte Lisp string and then decode it by UTF-8, instead
of building a multibyte string without decoding.  This is more
tolerant to deviations from UTF-8.
2015-11-23 20:08:01 +02:00
Paul Eggert
3322360514 Port recent module changes to pickier compilers
* src/emacs-module.c (module_make_function)
(module_make_string): Add casts to fix pointer signedness issues.
2015-11-23 09:53:36 -08:00
Philipp Stephani
ccc16061ac Fix how strings are accepted from modules
* emacs-module.c (module_make_function, module_make_string): Use
make_multibyte_string.
(module_copy_string_contents): Encode before reading the byte
size.  Return false if and only if an error occurred.
2015-11-23 19:46:17 +02:00
Martin Rudalics
a5749550dd Move setting FRAME_WINDOW_SIZES_CHANGED to resize_frame_windows.
* src/frame.c (adjust_frame_size): Don't set
FRAME_WINDOW_SIZES_CHANGED here ...
* src/window.c (resize_frame_windows): ... but here, as suggested
by Stefan Monnier.  Also remove some dead code along the way.
2015-11-23 18:39:18 +01:00
John Wiegley
12ad79c23e Add a note about a questionable use of bool in xdisp.c 2015-11-23 06:42:56 -08:00