]> git.eshelyaron.com Git - emacs.git/log
emacs.git
12 years agocannot thread-join the current thread
Tom Tromey [Mon, 27 Aug 2012 16:12:29 +0000 (10:12 -0600)]
cannot thread-join the current thread

12 years agofix test suite for condition-variable-p name change
Tom Tromey [Mon, 27 Aug 2012 15:27:48 +0000 (09:27 -0600)]
fix test suite for condition-variable-p name change

12 years agoadd tests for variable bindings
Tom Tromey [Mon, 27 Aug 2012 15:26:16 +0000 (09:26 -0600)]
add tests for variable bindings

12 years agominor update to thread-join docs
Tom Tromey [Sat, 25 Aug 2012 20:09:04 +0000 (14:09 -0600)]
minor update to thread-join docs

12 years agominor documentation updates
Tom Tromey [Fri, 24 Aug 2012 15:28:02 +0000 (09:28 -0600)]
minor documentation updates

12 years agodocument until-condition
Tom Tromey [Thu, 23 Aug 2012 20:00:38 +0000 (14:00 -0600)]
document until-condition

12 years agofirst draft of threads documentation
Tom Tromey [Thu, 23 Aug 2012 19:58:38 +0000 (13:58 -0600)]
first draft of threads documentation

12 years agorename condition-variablep to condition-variable-p
Tom Tromey [Thu, 23 Aug 2012 07:11:22 +0000 (01:11 -0600)]
rename condition-variablep to condition-variable-p

12 years agodocument process-thread and set-process-thread
Tom Tromey [Thu, 23 Aug 2012 07:06:11 +0000 (01:06 -0600)]
document process-thread and set-process-thread

12 years agopass the thread name to the OS if possible
Tom Tromey [Mon, 20 Aug 2012 18:17:36 +0000 (12:17 -0600)]
pass the thread name to the OS if possible

use prctl to pass the thread name to the OS, if possible

12 years agoadd convenience macros with-mutex and until-condition
Tom Tromey [Mon, 20 Aug 2012 13:56:02 +0000 (07:56 -0600)]
add convenience macros with-mutex and until-condition

with-mutex is a safe way to run some code with a mutex held.
until-condition is a safe way to wait on a condition variable.

12 years agoMerge from trunk
Tom Tromey [Mon, 20 Aug 2012 13:34:41 +0000 (07:34 -0600)]
Merge from trunk

12 years agoMake C-u C-x = report on empty overlays at point.
Chong Yidong [Mon, 20 Aug 2012 11:12:16 +0000 (19:12 +0800)]
Make C-u C-x = report on empty overlays at point.

* lisp/descr-text.el (describe-text-properties-1): Use overlays-in to
report on empty overlays.

Fixes: debbugs:3322
12 years agoAuto-commit of generated files.
Glenn Morris [Mon, 20 Aug 2012 10:17:51 +0000 (06:17 -0400)]
Auto-commit of generated files.

12 years agoInline setter functions for Lisp_Objects slots of struct specbinding.
Dmitry Antipov [Mon, 20 Aug 2012 09:39:57 +0000 (13:39 +0400)]
Inline setter functions for Lisp_Objects slots of struct specbinding.
* eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
Adjust users.

12 years agoIn select_window always make selected window's buffer current.
Martin Rudalics [Mon, 20 Aug 2012 09:28:39 +0000 (11:28 +0200)]
In select_window always make selected window's buffer current.

* window.c (select_window): Always make selected window's buffer
current.

12 years agoUse AREF and ASET for docstrings of category tables.
Dmitry Antipov [Mon, 20 Aug 2012 08:20:25 +0000 (12:20 +0400)]
Use AREF and ASET for docstrings of category tables.
* category.h (CATEGORY_DOCSTRING): Use AREF.
(SET_CATEGORY_DOCSTRING): Use ASET.
* category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.

12 years agoInline setter functions for hash table members.
Dmitry Antipov [Mon, 20 Aug 2012 08:07:38 +0000 (12:07 +0400)]
Inline setter functions for hash table members.
* lisp.h (set_hash_key, set_hash_value, set_hash_next)
(set_hash_hash, set_hash_index): Rename with _slot suffix.
(set_hash_key_and_value, set_hash_index, set_hash_next)
(set_hash_hash): New functions.
* charset.c, fns.c: Adjust users.

12 years ago* lisp/mail/rmailout.el (rmail-output-read-file-name): Trap errors
Glenn Morris [Mon, 20 Aug 2012 07:45:10 +0000 (00:45 -0700)]
* lisp/mail/rmailout.el (rmail-output-read-file-name): Trap errors
in rmail-output-file-alist elements, and report them.

12 years agoInline getter and setter functions for per-buffer values.
Dmitry Antipov [Mon, 20 Aug 2012 07:42:06 +0000 (11:42 +0400)]
Inline getter and setter functions for per-buffer values.
* buffer.h (per_buffer_default, set_per_buffer_default)
(per_buffer_value, set_per_buffer_value): New functions.
(PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
* buffer.c, data.c: Adjust users.

12 years ago* lisp/font-lock.el (font-lock-add-keywords): Doc fix
Glenn Morris [Mon, 20 Aug 2012 07:30:40 +0000 (00:30 -0700)]
* lisp/font-lock.el (font-lock-add-keywords): Doc fix
(quote face names since most non-font-lock faces are not also variables).

12 years ago* calendar/cal-tex.el (cal-tex-cursor-week-at-a-glance): New function.
Edward Reingold [Mon, 20 Aug 2012 07:23:51 +0000 (00:23 -0700)]
* calendar/cal-tex.el (cal-tex-cursor-week-at-a-glance): New function.
(This is basically cal-tex-cursor-filofax-week with a different
papersize, mini-calendars, and color.)

Fixes: debbugs:12160
12 years agoClarify recent ChangeLog entry.
Paul Eggert [Mon, 20 Aug 2012 04:04:58 +0000 (21:04 -0700)]
Clarify recent ChangeLog entry.

12 years agosrc/makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
Juanma Barranquero [Mon, 20 Aug 2012 01:28:35 +0000 (03:28 +0200)]
src/makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.

12 years agoMerge from gnulib.
Paul Eggert [Sun, 19 Aug 2012 23:31:24 +0000 (16:31 -0700)]
Merge from gnulib.

2012-08-19 ignore-value, stat-time, timespec: omit AC_C_INLINE
2012-08-19 mktime, sys_select: avoid 'static inline'
2012-08-19 gnulib-tool: Fix indentation.

12 years agoRely on <unistd.h> to declare 'environ',
Paul Eggert [Sun, 19 Aug 2012 21:00:09 +0000 (14:00 -0700)]
Rely on <unistd.h> to declare 'environ',

as gnulib does this if the system doesn't.
* lib-src/emacsclient.c (environ): Remove decl.
* src/callproc.c, src/editfns.c, src/process.c (environ) [!USE_CRT_DLL]:
* src/emacs.c (environ) [DOUG_LEA_MALLOC]:
* src/vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
* src/vm-limit.c: Include <unistd.h>, for 'environ'.

12 years ago* unexaix.c, unexcoff.c: Include "mem-limits.h".
Paul Eggert [Sun, 19 Aug 2012 20:02:24 +0000 (13:02 -0700)]
* unexaix.c, unexcoff.c: Include "mem-limits.h".

(start_of_data): Remove decl; mem-limits.h provides it.

12 years ago* xdisp.c (handle_invisible_prop): Make it a bit faster
Paul Eggert [Sun, 19 Aug 2012 19:22:41 +0000 (12:22 -0700)]
* xdisp.c (handle_invisible_prop): Make it a bit faster

and avoid a gcc -Wmaybe-uninitialized diagnostic.

12 years agoFix previous rmail-output-read-file-name change
Glenn Morris [Sun, 19 Aug 2012 18:41:35 +0000 (11:41 -0700)]
Fix previous rmail-output-read-file-name change

* lisp/mail/rmailout.el (rmail-output-read-file-name):
Fix previous change (when the alist is nil or does not match).

12 years ago* src/xdisp.c (handle_invisible_prop): Fix ellipses at overlay string ends.
Chong Yidong [Sun, 19 Aug 2012 16:19:05 +0000 (00:19 +0800)]
* src/xdisp.c (handle_invisible_prop): Fix ellipses at overlay string ends.

* test/redisplay-testsuite.el (test-redisplay): Use switch-to-buffer.

Fixes: debbugs:3874
12 years ago* .gdbinit: Use call instead of set when calling a function in the
Andreas Schwab [Sun, 19 Aug 2012 10:50:03 +0000 (12:50 +0200)]
* .gdbinit: Use call instead of set when calling a function in the
inferior.

12 years agoanother docstring fixlet
Tom Tromey [Sun, 19 Aug 2012 09:38:30 +0000 (03:38 -0600)]
another docstring fixlet

12 years agominor docstring fixup
Tom Tromey [Sun, 19 Aug 2012 09:36:50 +0000 (03:36 -0600)]
minor docstring fixup

12 years agoadd condition-mutex and condition-name
Tom Tromey [Sun, 19 Aug 2012 09:31:57 +0000 (03:31 -0600)]
add condition-mutex and condition-name

12 years agoensure name of a thread is a string
Tom Tromey [Sun, 19 Aug 2012 09:26:42 +0000 (03:26 -0600)]
ensure name of a thread is a string

12 years agoensure name of a mutex is a string
Tom Tromey [Sun, 19 Aug 2012 09:26:09 +0000 (03:26 -0600)]
ensure name of a mutex is a string

12 years agouse NILP
Tom Tromey [Sun, 19 Aug 2012 09:25:06 +0000 (03:25 -0600)]
use NILP

12 years agocondition variables
Tom Tromey [Sun, 19 Aug 2012 09:23:03 +0000 (03:23 -0600)]
condition variables

This implements condition variables for elisp.
This needs more tests.

12 years ago* data.c (set_internal): Don't use set_blv_found.
Andreas Schwab [Sun, 19 Aug 2012 08:40:12 +0000 (10:40 +0200)]
* data.c (set_internal): Don't use set_blv_found.
(Fkill_local_variable): Likewise.

12 years ago* xml.el (xml-escape-string): Don't refer to xml-entity-alist.
Chong Yidong [Sun, 19 Aug 2012 06:37:15 +0000 (14:37 +0800)]
* xml.el (xml-escape-string): Don't refer to xml-entity-alist.

Fixes: debbugs:12228
12 years agocomment fixes
Tom Tromey [Sun, 19 Aug 2012 02:05:13 +0000 (20:05 -0600)]
comment fixes

12 years agorefactor systhread.h
Tom Tromey [Sun, 19 Aug 2012 01:59:47 +0000 (19:59 -0600)]
refactor systhread.h

This refactors systhread.h to move the notion of a "lisp mutex"
into thread.c.  This lets us make make the global lock and
post_acquire_global_lock static.

12 years ago* nsfont.m (ns_ascii_average_width): Ensure the string
Alp Aker [Sun, 19 Aug 2012 00:53:29 +0000 (20:53 -0400)]
* nsfont.m (ns_ascii_average_width): Ensure the string
ascii_printable is initialized with a null-terminated character
array.  Otherwise, it can contain undesired extra characters.

12 years agoport new setting code to Sun C 5.8 2005/10/13
Paul Eggert [Sat, 18 Aug 2012 23:53:43 +0000 (16:53 -0700)]
port new setting code to Sun C 5.8 2005/10/13

* chartab.c, lisp.h (char_table_set, char_table_set_range):
Return void, not Lisp_Object.  Otherwise, the compiler
complains about (A?B:C) where B is void and C is Lisp_Object
when compiling CHAR_TABLE_SET, due to the recent change to
the API of sub_char_table_set_contents.

12 years ago* lib/sigprocmask.c, m4/signalblocking.m4: Remove.
Paul Eggert [Sat, 18 Aug 2012 21:36:13 +0000 (14:36 -0700)]
* lib/sigprocmask.c, m4/signalblocking.m4: Remove.

These files have been unused since the 2012-06-22 patch that
introduced high-resolution time stamps.

12 years agoMake display strings obey buffer-invisibility-spec.
Chong Yidong [Sat, 18 Aug 2012 07:23:30 +0000 (15:23 +0800)]
Make display strings obey buffer-invisibility-spec.

* src/xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
for the string case.

* redisplay-testsuite.el (test-redisplay-4): New test.

Fixes: debbugs:3874
12 years ago* buffer.h (BSET): Remove.
Paul Eggert [Sat, 18 Aug 2012 06:06:39 +0000 (23:06 -0700)]
* buffer.h (BSET): Remove.

Replace all uses with calls to new setter functions.
(bset_bidi_paragraph_direction, bset_case_canon_table)
(bset_case_eqv_table, bset_directory, bset_display_count)
(bset_display_time, bset_downcase_table)
(bset_enable_multibyte_characters, bset_filename, bset_keymap)
(bset_last_selected_window, bset_local_var_alist)
(bset_mark_active, bset_point_before_scroll, bset_read_only)
(bset_truncate_lines, bset_undo_list, bset_upcase_table)
(bset_width_table):
* buffer.c (bset_abbrev_mode, bset_abbrev_table)
(bset_auto_fill_function, bset_auto_save_file_format)
(bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
(bset_bidi_display_reordering, bset_buffer_file_coding_system)
(bset_cache_long_line_scans, bset_case_fold_search)
(bset_ctl_arrow, bset_cursor_in_non_selected_windows)
(bset_cursor_type, bset_display_table, bset_extra_line_spacing)
(bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
(bset_fringe_indicator_alist, bset_fringes_outside_margins)
(bset_header_line_format, bset_indicate_buffer_boundaries)
(bset_indicate_empty_lines, bset_invisibility_spec)
(bset_left_fringe_width, bset_major_mode, bset_mark)
(bset_minor_modes, bset_mode_line_format, bset_mode_name)
(bset_name, bset_overwrite_mode, bset_pt_marker)
(bset_right_fringe_width, bset_save_length)
(bset_scroll_bar_width, bset_scroll_down_aggressively)
(bset_scroll_up_aggressively, bset_selective_display)
(bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
(bset_word_wrap, bset_zv_marker):
* category.c (bset_category_table):
* syntax.c (bset_syntax_table):
New setter functions.

Fixes: debbugs:12215
12 years agoAdd yank-handled-properties; use it for `font-lock-face' and `category'
Chong Yidong [Sat, 18 Aug 2012 05:11:38 +0000 (13:11 +0800)]
Add yank-handled-properties; use it for `font-lock-face' and `category'
properties, instead of hard-coding these properties' special handling.

* lisp/simple.el (yank-handled-properties): New defcustom.
(yank-excluded-properties): Add font-lock-face and category.
(yank): Doc fix.

* lisp/subr.el (remove-yank-excluded-properties): Obey
yank-handled-properties.  The special handling of font-lock-face
and category is now done this way, instead of being hard-coded.
(insert-for-yank-1): Remove font-lock-face handling.
(yank-handle-font-lock-face-property)
(yank-handle-category-property): New function.

12 years ago* process.h (PSET): Remove.
Paul Eggert [Sat, 18 Aug 2012 02:49:24 +0000 (19:49 -0700)]
* process.h (PSET): Remove.

Replace all uses with calls to new setter functions.
Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
(PROCESS_INLINE): New macro.
(pset_childp): New setter function.
(pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
* process.c (PROCESS_INLINE):
Define to EXTERN_INLINE, so that the corresponding functions
are compiled into code.
(pset_buffer, pset_command, pset_decode_coding_system)
(pset_decoding_buf, pset_encode_coding_system)
(pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
(pset_plist, pset_sentinel, pset_status, pset_tty_name)
(pset_type, pset_write_queue): New setter functions.

Fixes: debbugs:12215
12 years ago* window.h (WSET): Remove.
Paul Eggert [Sat, 18 Aug 2012 01:42:52 +0000 (18:42 -0700)]
* window.h (WSET): Remove.

Replace all uses with calls to new setter functions.
Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
(WINDOW_INLINE): New macro.
(wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
(wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
(wset_total_lines, wset_vertical_scroll_bar)
(wset_window_end_pos, wset_window_end_valid)
(wset_window_end_vpos): New setter functions.
* window.c (WINDOW_INLINE):
Define to EXTERN_INLINE, so that the corresponding functions
are compiled into code.
(wset_combination_limit, wset_dedicated, wset_display_table)
(wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
(wset_new_normal, wset_new_total, wset_next_buffers)
(wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
(wset_prev_buffers, wset_right_fringe_width)
(wset_right_margin_cols, wset_scroll_bar_width, wset_start)
(wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
(wset_window_parameters):
* xdisp.c (wset_base_line_number, wset_base_line_pos)
(wset_column_number_displayed, wset_region_showing):
New setter functions.

Fixes: debbugs:12215
12 years ago* termhooks.h (TSET): Remove.
Paul Eggert [Sat, 18 Aug 2012 00:07:52 +0000 (17:07 -0700)]
* termhooks.h (TSET): Remove.

Replace all uses with calls to new setter functions.
Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
(TERMHOOKS_INLINE): New macro.
(tset_charset_list, tset_selection_alist): New setter functions.
* terminal.c (TERMHOOKS_INLINE):
Define to EXTERN_INLINE, so that the corresponding functions
are compiled into code.
(tset_param_alist): New setter function.

Fixes: debbugs:12215
12 years ago* keyboard.h (KSET): Remove.
Paul Eggert [Fri, 17 Aug 2012 23:38:43 +0000 (16:38 -0700)]
* keyboard.h (KSET): Remove.

Replace all uses with calls to new setter functions.
Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
(KEYBOARD_INLINE): New macro.
(kset_default_minibuffer_frame, kset_defining_kbd_macro)
(kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
(kset_prefix_arg, kset_system_key_alist, kset_window_system):
New setter functions.
* keyboard.c (KEYBOARD_INLINE):
Define to EXTERN_INLINE, so that the corresponding functions
are compiled into code.
(kset_echo_string, kset_kbd_queue)
(kset_keyboard_translate_table, kset_last_prefix_arg)
(kset_last_repeatable_command, kset_local_function_key_map)
(kset_overriding_terminal_local_map, kset_real_last_command)
(kset_system_key_syms): New setter functions.

Fixes: debbugs:12215
12 years ago* frame.h (FSET): Remove (Bug#12215).
Paul Eggert [Fri, 17 Aug 2012 21:52:15 +0000 (14:52 -0700)]
* frame.h (FSET): Remove (Bug#12215).

Replace all uses with calls to new setter functions.
Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
(FRAME_INLINE): New macro.
(fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
(fset_current_tool_bar_string, fset_desired_tool_bar_string)
(fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
(fset_menu_bar_vector, fset_menu_bar_window, fset_name)
(fset_param_alist, fset_root_window, fset_scroll_bars)
(fset_selected_window, fset_title, fset_tool_bar_items)
(fset_tool_bar_position, fset_tool_bar_window): New functions.
* frame.c (FRAME_INLINE):
Define to EXTERN_INLINE, so that the corresponding functions
are compiled into code.
(fset_buffer_predicate, fset_minibuffer_window): New setter functions.

12 years agoA few more naming-convention fixes for getters and setters.
Paul Eggert [Fri, 17 Aug 2012 21:12:11 +0000 (14:12 -0700)]
A few more naming-convention fixes for getters and setters.

* buffer.c (set_buffer_overlays_before): Move here from buffer.h,
and rename from buffer_overlays_set_before.
(set_buffer_overlays_after): Move here from buffer.h, and rename
from buffer_overlays_set_after.
* buffer.h (buffer_intervals): Rename from buffer_get_intervals.
All uses changed.
(set_buffer_intervals): Rename from buffer_set_intervals.
* intervals.c (set_interval_object): Move here from intervals.h,
and rename from interval_set_object.
(set_interval_left): Move here from intervals.h, and rename from
interval_set_left.
(set_interval_right): Move here from intervals.h, and rename from
interval_set_right.
(copy_interval_parent): Move here from intervals.h, and rename from
interval_copy_parent.
* intervals.h (set_interval_parent): Rename from interval_set_parent.
(set_interval_plist): Rename from interval_set_plist.
Return void, not Lisp_Object, since no caller uses the result.
* lisp.h (string_intervals): Rename from string_get_intervals.
(set_string_intervals): Rename from string_set_intervals.

12 years agormail-output-read-file-name fix for bug#12214
Glenn Morris [Fri, 17 Aug 2012 20:38:47 +0000 (16:38 -0400)]
rmail-output-read-file-name fix for bug#12214

This resembles the 2001-05-07 change to rmail-output-read-rmail-file-name,
which was never copied to rmail-output-read-file-name.
It's more complicated now due to Rmail's buffer swapping.

* lisp/mail/rmailout.el (rmail-output-read-file-name):
Check rmail-output-file-alist against the full message body
in the correct rmail buffer.

* lisp/mail/rmail.el: Comment.

12 years agoFix typo in ChangeLog entry.
Paul Eggert [Fri, 17 Aug 2012 17:09:45 +0000 (10:09 -0700)]
Fix typo in ChangeLog entry.

12 years ago* lisp.h (set_char_table_extras): Rename from char_table_set_extras.
Paul Eggert [Fri, 17 Aug 2012 17:08:30 +0000 (10:08 -0700)]
* lisp.h (set_char_table_extras): Rename from char_table_set_extras.

(set_char_table_contents): Rename from char_table_set_contents.
(set_sub_char_table_contents): Rename from sub_char_table_sub_contents.
All uses changed.  See the end of
<http://lists.gnu.org/archive/html/emacs-devel/2012-08/msg00549.html>.

12 years agoFix ChangeLog typo.
Paul Eggert [Fri, 17 Aug 2012 16:53:03 +0000 (09:53 -0700)]
Fix ChangeLog typo.

12 years ago* lisp.h (CSET): Remove.
Paul Eggert [Fri, 17 Aug 2012 16:48:22 +0000 (09:48 -0700)]
* lisp.h (CSET): Remove.

(set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
(set_char_table_purpose): New functions,
replacing CSET.  All uses changed.  For example, replace
"CSET (XCHAR_TABLE (char_table), parent, parent);" with
"char_table_set_parent (char_table, parent);".
The old version was confusing because it used the same name
'parent' for two different things.

Fixes: debbugs:12215
12 years agoFunctions to get and set Lisp_Object fields of buffer-local variables.
Dmitry Antipov [Fri, 17 Aug 2012 14:24:43 +0000 (18:24 +0400)]
Functions to get and set Lisp_Object fields of buffer-local variables.
* lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
(set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
(BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
* data.c, eval.c, frame.c: Adjust users.

12 years agowrite docstrings for the thread functions
Tom Tromey [Fri, 17 Aug 2012 13:51:19 +0000 (07:51 -0600)]
write docstrings for the thread functions

12 years agodeclare unbind_for_thread_switch and rebind_for_thread_switch in lisp.h
Tom Tromey [Fri, 17 Aug 2012 13:16:16 +0000 (07:16 -0600)]
declare unbind_for_thread_switch and rebind_for_thread_switch in lisp.h

12 years agont/config.nt: Sync with autogen/config.in.
Juanma Barranquero [Fri, 17 Aug 2012 10:51:29 +0000 (12:51 +0200)]
nt/config.nt: Sync with autogen/config.in.
(HAVE_POSIX_OPENPT): New macro.

12 years agoAuto-commit of generated files.
Glenn Morris [Fri, 17 Aug 2012 10:17:30 +0000 (06:17 -0400)]
Auto-commit of generated files.

12 years ago* net/tramp-sh.el (tramp-sh-handle-start-file-process): Eliminate
Michael Albinus [Fri, 17 Aug 2012 09:18:18 +0000 (11:18 +0200)]
* net/tramp-sh.el (tramp-sh-handle-start-file-process): Eliminate
superfluous prompt.  (Bug#12203)

12 years agoAllow face-remapping using :font, and use it in mouse-appearance-menu.
Chong Yidong [Fri, 17 Aug 2012 09:10:31 +0000 (17:10 +0800)]
Allow face-remapping using :font, and use it in mouse-appearance-menu.

* mouse.el (mouse-appearance-menu): If x-select-font returns a
font spec, set the font directly.

* xfaces.c (merge_face_vectors): If the target font specfies a
font spec, make the font's attributes take precedence over
directly-specified attributes.
(merge_face_ref): Recognize :font.

Fixes: debbugs:3228
12 years agoquail-define-inscript-package tiny change
Daniel Bergey [Fri, 17 Aug 2012 07:28:23 +0000 (00:28 -0700)]
quail-define-inscript-package tiny change

* leim/quail/indian.el (quail-define-inscript-package):
Set kbd-translate for all Inscript layouts.  It's a positional
layout: vowels should be on the left hand regardless of the
underlying characters produced by those keys.

Fixes: debbugs:12072
12 years agoWhitespace
Glenn Morris [Fri, 17 Aug 2012 07:23:21 +0000 (00:23 -0700)]
Whitespace

12 years agoFix pty handling on FreeBSD 8.0 (tiny change)
Jan Beich [Fri, 17 Aug 2012 07:20:10 +0000 (00:20 -0700)]
Fix pty handling on FreeBSD 8.0  (tiny change)

* configure.ac (PTY_OPEN): Try posix_openpt on gnu-linux,
gnu-kfreebsd, freebsd, and netbsd.

Fixes: debbugs:12040
12 years agoFix latest fix of delete-window.
Martin Rudalics [Fri, 17 Aug 2012 06:01:17 +0000 (08:01 +0200)]
Fix latest fix of delete-window.

* window.el (delete-window): Fix last fix.

12 years agoDo not use memcpy for copying intervals.
Dmitry Antipov [Fri, 17 Aug 2012 05:35:39 +0000 (09:35 +0400)]
Do not use memcpy for copying intervals.
* intervals.c (reproduce_interval): New function.
(reproduce_tree, reproduce_tree_obj): Use it.
(reproduce_tree_obj): Remove prototype.

12 years ago* lisp.h (duration_to_sec_usec): Remove unused decl.
Paul Eggert [Fri, 17 Aug 2012 05:14:06 +0000 (22:14 -0700)]
* lisp.h (duration_to_sec_usec): Remove unused decl.

12 years ago* nsfont.m (ns_ascii_average_width): Send initWithFormat selector
Alp Aker [Fri, 17 Aug 2012 04:12:50 +0000 (00:12 -0400)]
* nsfont.m (ns_ascii_average_width): Send initWithFormat selector
to an allocated instance of NSString, not to the class itself.

12 years ago* lib-src/makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
Juanma Barranquero [Fri, 17 Aug 2012 01:53:29 +0000 (03:53 +0200)]
* lib-src/makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.

* src/makefile.w32-in (C_CTYPE_H): New macro.
(LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.

12 years agoUse ASCII tests for character types.
Paul Eggert [Thu, 16 Aug 2012 21:58:44 +0000 (14:58 -0700)]
Use ASCII tests for character types.

* admin/merge-gnulib (GNULIB_MODULES): Add c-ctype.
* lwlib/lwlib-Xaw.c, lwlib/lwlib.c, lwlib/xlwmenu.c:
Don't include <ctype.h>; no longer needed.
* lwlib/lwlib-Xaw.c (openFont):
* lwlib/xlwmenu.c (openXftFont): Test just for ASCII digits.
* src/category.c, src/dispnew.c, src/doprnt.c, src/editfns.c, src/syntax.c
* src/term.c, src/xfns.c, src/xterm.c:
Don't include <ctype.h>; was not needed.
* src/charset.c, src/doc.c, src/fileio.c, src/font.c, src/frame.c:
* src/gtkutil.c, src/image.c, src/sysdep.c, src/xfaces.c:
Include <c-ctype.h> instead of <ctype.h>.
* src/nsterm.m: Include <c-ctype.h>.
* src/charset.c (read_hex):
* src/doc.c (Fsnarf_documentation):
* src/fileio.c (IS_DRIVE) [WINDOWSNT]:
(DRIVE_LETTER) [DOS_NT]:
(Ffile_name_directory, Fexpand_file_name)
(Fsubstitute_in_file_name):
* src/font.c (font_parse_xlfd, font_parse_fcname):
* src/frame.c (x_set_font_backend):
* src/gtkutil.c (xg_get_font):
* src/image.c (xbm_scan, xpm_scan, pbm_scan_number):
* src/nsimage.m (hexchar):
* src/nsterm.m (ns_xlfd_to_fontname):
* src/sysdep.c (system_process_attributes):
* src/xfaces.c (hash_string_case_insensitive):
Use C-locale tests instead of locale-specific tests for character
types, since we want the ASCII interpretation here, not the
interpretation suitable for whatever happens to be the current locale.

12 years agoIn window.el tell whether functions operate on valid, live or any windows.
Martin Rudalics [Thu, 16 Aug 2012 17:22:36 +0000 (19:22 +0200)]
In window.el tell whether functions operate on valid, live or any windows.

* window.el (window-child, window-child-count, window-last-child)
(window-normalize-window, window-combined-p)
(window-combinations, window-atom-root, window-min-size)
(window-sizable, window-sizable-p, window-size-fixed-p)
(window-min-delta, window-max-delta, window--resizable)
(window--resizable-p, window-resizable, window-total-size)
(window-full-height-p, window-full-width-p, window-body-size)
(window-at-side-p, adjust-window-trailing-edge, maximize-window)
(minimize-window, window-deletable-p, delete-window)
(delete-other-windows, set-window-buffer-start-and-point)
(next-buffer, previous-buffer, split-window, balance-windows-2)
(set-window-text-height, window-buffer-height)
(fit-window-to-buffer, shrink-window-if-larger-than-buffer)
(truncated-partial-width-window-p): Minor code adjustments.  In
doc-strings state whether the argument window has to denote a
live, valid or any window.

12 years agoAuto-commit of generated files.
Glenn Morris [Thu, 16 Aug 2012 10:17:33 +0000 (06:17 -0400)]
Auto-commit of generated files.

12 years agoConsistently check windows for validity/liveness (Bug#11984, Bug#12025, Bug#12026).
Martin Rudalics [Thu, 16 Aug 2012 07:58:24 +0000 (09:58 +0200)]
Consistently check windows for validity/liveness (Bug#11984, Bug#12025, Bug#12026).

* lisp.h (CHECK_VALID_WINDOW): New macro.
* window.c (decode_window): Rename to decode_live_window.
(decode_valid_window, Fwindow_valid_p): New functions.
(Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
(Fframe_first_window, Fframe_selected_window, Fwindow_parent)
(Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
(Fwindow_prev_sibling, Fwindow_combination_limit)
(Fset_window_combination_limit, Fwindow_use_time)
(Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
(Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
(Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
(Fwindow_hscroll, Fset_window_hscroll)
(Fwindow_redisplay_end_trigger)
(Fset_window_redisplay_end_trigger, Fwindow_edges)
(Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
(Fwindow_inside_edges, Fwindow_inside_pixel_edges)
(Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
(Fwindow_end, Fset_window_point, Fset_window_start)
(Fpos_visible_in_window_p, Fwindow_line_height)
(Fwindow_dedicated_p, Fset_window_dedicated_p)
(Fwindow_prev_buffers, Fset_window_prev_buffers)
(Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
(Fset_window_parameter, Fwindow_display_table)
(Fset_window_display_table, Fdelete_other_windows_internal)
(Fset_window_buffer, Fset_window_new_total)
(Fset_window_new_normal, Fdelete_window_internal)
(Fwindow_text_height, Fset_window_margins, Fwindow_margins)
(Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
(Fwindow_scroll_bars): Check whether argument window is a valid or
live window.  Update doc-strings.
(syms_of_window): New symbol Qwindow_valid_p.
* keyboard.c (Fposn_at_x_y): Check whether argument
frame_or_window denotes a valid window.
* window.el (window-valid-p): Move to window.c.

12 years agoFix previous char table change.
Dmitry Antipov [Thu, 16 Aug 2012 07:26:18 +0000 (11:26 +0400)]
Fix previous char table change.
* lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
* chartab.c (optimize_sub_char_table): Likewise.

12 years ago* gtkutil.c (xg_get_font): Demand an Xft font.
Chong Yidong [Thu, 16 Aug 2012 06:57:48 +0000 (14:57 +0800)]
* gtkutil.c (xg_get_font): Demand an Xft font.

Fixes: debbugs:3228
12 years agoFix average font width calculation on NS.
Chong Yidong [Thu, 16 Aug 2012 06:40:57 +0000 (14:40 +0800)]
Fix average font width calculation on NS.

* src/nsfont.m (nsfont_open): Similar to the Xft backend, set
min_width to space_width and average_width to the average over
printable ASCII characters.
(ns_char_width): Code cleanup.
(ns_ascii_average_width): New utility function.

12 years agoFor Xft and X font backends, set omitted max_width font fields.
Chong Yidong [Thu, 16 Aug 2012 06:35:13 +0000 (14:35 +0800)]
For Xft and X font backends, set omitted max_width font fields.

* src/xfont.c (xfont_open):
* src/xftfont.c (xftfont_open): Set the font's max_width field.

* src/font.h (struct font): Update comments.

12 years agoMake subword.el easier to customize (tiny change)
Phil Sainty [Thu, 16 Aug 2012 06:25:27 +0000 (23:25 -0700)]
Make subword.el easier to customize (tiny change)

* lisp/progmodes/subword.el (subword-forward-function)
(subword-backward-function, subword-forward-regexp, subword-backward-regexp):
New variables.
(subword-forward, subword-forward-internal, subword-backward-internal):
Use new variables, eg so that different "word" definitions can be easily used.

Fixes: debbugs:11411
12 years agoSimple interface to set Lisp_Object fields of chararcter tables.
Dmitry Antipov [Thu, 16 Aug 2012 03:13:44 +0000 (07:13 +0400)]
Simple interface to set Lisp_Object fields of chararcter tables.
* lisp.h (CSET): New macro.
(char_table_set_extras, char_table_set_contents)
(sub_char_table_set_contents): New function.
* casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
* syntax.c: Adjust users.

12 years ago* src/eval.c (eval_sub): Bind lexical-binding.
Stefan Monnier [Thu, 16 Aug 2012 01:18:07 +0000 (21:18 -0400)]
* src/eval.c (eval_sub): Bind lexical-binding.
* src/lread.c (Qlexical_binding): Make non-static.

12 years ago* lisp/vc/vc-mtn.el (vc-mtn-revision-completion-table): Handle completion
Stefan Monnier [Wed, 15 Aug 2012 19:20:26 +0000 (15:20 -0400)]
* lisp/vc/vc-mtn.el (vc-mtn-revision-completion-table): Handle completion
for composite selectors.
* lisp/vc/vc.el (vc-diff-build-argument-list-internal): Don't prevent
operation just because we can't find a previous revision.

12 years agoadd test case for I/O switching
Tom Tromey [Wed, 15 Aug 2012 19:19:48 +0000 (13:19 -0600)]
add test case for I/O switching

12 years agoprocess changes
Tom Tromey [Wed, 15 Aug 2012 19:19:24 +0000 (13:19 -0600)]
process changes

This changes wait_reading_process_output to handle threads better.  It
introduces a wrapper for select that releases the global lock, and it
ensures that only a single thread can select a given file descriptor
at a time.

This also adds the thread-locking feature to processes.  By default a
process can only have its output accepted by the thread that created
it.  This can be changed using set-process-thread.  (If the thread
exits, the process is again available for waiting by any thread.)

Note that thread-signal will not currently interrupt a thread blocked
on select.  I'll fix this later.

12 years agoPrepare process.c for threads by not having global select masks.
Tom Tromey [Wed, 15 Aug 2012 19:17:37 +0000 (13:17 -0600)]
Prepare process.c for threads by not having global select masks.
The next step is to make it so selects can choose fds by thread.

12 years agofix a latent bug in process.c
Tom Tromey [Wed, 15 Aug 2012 19:17:05 +0000 (13:17 -0600)]
fix a latent bug in process.c

* process.c (wait_reading_process_output): Check Writeok bits,
not write_mask.

12 years agoThis adds thread-blocker, a function to examine what a thread is
Tom Tromey [Wed, 15 Aug 2012 19:16:33 +0000 (13:16 -0600)]
This adds thread-blocker, a function to examine what a thread is
blocked on.  I thought this would be another nice debugging addition.

12 years agoThis adds names to mutexes. This seemed like a nice debugging
Tom Tromey [Wed, 15 Aug 2012 19:14:14 +0000 (13:14 -0600)]
This adds names to mutexes.  This seemed like a nice debugging
extension.

12 years agoThis adds some tests of the threading code.
Tom Tromey [Wed, 15 Aug 2012 19:11:54 +0000 (13:11 -0600)]
This adds some tests of the threading code.

12 years agoThis supplies the mutex implementation for Emacs Lisp.
Tom Tromey [Wed, 15 Aug 2012 19:11:22 +0000 (13:11 -0600)]
This supplies the mutex implementation for Emacs Lisp.

A lisp mutex is implemented using a condition variable, so that we can
interrupt a mutex-lock operation by calling thread-signal on the
blocking thread.  I did things this way because pthread_mutex_lock
can't readily be interrupted.

12 years agoThis adds most of the thread features visible to emacs lisp.
Tom Tromey [Wed, 15 Aug 2012 19:09:32 +0000 (13:09 -0600)]
This adds most of the thread features visible to emacs lisp.

I roughly followed the Bordeaux threads API:

http://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation

... but not identically.  In particular I chose not to implement
interrupt-thread or destroy-thread, but instead a thread-signalling
approach.

I'm still undecided about *default-special-bindings* (which I did not
implement).  I think it would be more emacs-like to capture the let
bindings at make-thread time, but IIRC Stefan didn't like this idea
the first time around.

There are one or two semantics issues pointed out in the patch where I
could use some advice.

12 years agoThis turns thread_state into a pseudovector and updates various bits
Tom Tromey [Wed, 15 Aug 2012 19:07:04 +0000 (13:07 -0600)]
This turns thread_state into a pseudovector and updates various bits
of Emacs to cope.

12 years agoThis introduces some new functions to handle the specpdl. The basic
Tom Tromey [Wed, 15 Aug 2012 19:04:34 +0000 (13:04 -0600)]
This introduces some new functions to handle the specpdl.  The basic
idea is that when a thread loses the interpreter lock, it will unbind
the bindings it has put in place.  Then when a thread acquires the
lock, it will restore its bindings.

This code reuses an existing empty slot in struct specbinding to store
the current value when the thread is "swapped out".

This approach performs worse than my previously planned approach.
However, it was one I could implement with minimal time and
brainpower.  I hope that perhaps someone else could improve the code
once it is in.

12 years agoThis introduces the low-level system threading support. It also adds
Tom Tromey [Wed, 15 Aug 2012 19:03:17 +0000 (13:03 -0600)]
This introduces the low-level system threading support.  It also adds
the global lock.  The low-level support is a bit over-eager, in that
even at the end of the present series, it will not all be used.  I
think thiat is ok since I plan to use it all eventually -- in
particular for the emacs lisp mutex implementation.

I've only implemented the pthreads-based version.  I think it should
be relatively clear how to port this to other systems, though.

I'd also like to do a "no threads" port that will turn most things
into no-ops, and have thread-creation fail.  I was thinking perhaps
I'd make a future (provide 'threads) conditional on threads actually
working.

One other minor enhancement available here is to make it possible to
set the name of the new thread at the OS layer.  That way gdb, e.g.,
could display thread names.

12 years agoThis parameterizes the GC a bit to make it thread-ready.
Tom Tromey [Wed, 15 Aug 2012 19:01:36 +0000 (13:01 -0600)]
This parameterizes the GC a bit to make it thread-ready.

The basic idea is that whenever a thread "exits lisp" -- that is,
releases the global lock in favor of another thread -- it must save
its stack boundaries in the thread object.  This way the boundaries
are always available for marking.  This is the purpose of
flush_stack_call_func.

I haven't tested this under all the possible GC configurations.
There is a new FIXME in a spot that i didn't convert.

Arguably all_threads should go in the previous patch.

12 years agoImprove event loop on NS so that no polling is used.
Jan Djärv [Wed, 15 Aug 2012 18:58:19 +0000 (20:58 +0200)]
Improve event loop on NS so that no polling is used.

* nsmenu.m (popupSession): Remove.
(pop_down_menu): Remove endModalSession.
(timeout_handler:): New method.
(runDialogAt:): Get next timeout.  Start a NSTimer with that timeout.
Call runModalForWindow.  Check timer_fired when it returns.
If not set, cancel timer and break out of loop.
Otherwise loop again, with a new timeout.

* nsterm.h (EmacsApp): fd_handler takes id argument.
(EmacsDialogPanel): Add timer_fired and timeout_handler.

* nsterm.m: Include fcntl.h if present.
(fd_entry, t_readfds, inNsSelect): Remove.
(select_writefds, select_valid, select_timeout, selfds)
(select_mutex, apploopnr): Add.
(EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
Otherwise call kbd_buffer_store_event.
(ns_send_appdefined): Remove release of fd_entry.
(ns_read_socket): Always send appdefined.  Remove inNsSelect check.
Increment and decrement apploopnr.
(ns_select): If no file descriptors, just do a NSTimer.
Otherwise copy read/write masks and start select thread (fd_handler).
Start main loop and wait for application defined event.
Inform select thread to stop selecting after main loop is exited.
(ns_term_init): Create selfds pipe and set non-blocking.
Initialize select_mutex. Start the select thread (fd_handler).
(fd_handler:): Loop forever, wait for info from the main thread
to either start or stop selecting.  When select returns, send
and appdefined event.
(sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
If not call kbd_buffer_store_event.