Commit graph

1324 commits

Author SHA1 Message Date
Michael Albinus
8b1c619f0b * keyboard.c: Revert last change; it was not intended to be
synchronized with the trunk.
2010-10-08 14:41:49 +02:00
Juanma Barranquero
4628bef1ee Merge changes from emacs-23 branch. 2010-10-08 12:14:47 +02:00
Chong Yidong
51b403bdcb Don't add an echo dash for the first keystroke (Bug#7137).
* src/keyboard.c (echo_prompt): Function moved into read_key_sequence.
(read_key_sequence): Inline echo_prompt.
(echo_dash): Add a dash only if key is continued (Bug#7137).
2010-10-04 14:16:22 -04:00
Dan Nicolaescu
a3d5088daa Include <fcntl.h> unconditionally.
* src/termcap.c:
* src/sysdep.c:
* src/lread.c:
* src/keyboard.c:
* src/filelock.c:
* src/fileio.c:
* src/doc.c:
* src/callproc.c:
* src/alloc.c: Remove include guards for <fcntl.h>, process.c already
does it.
2010-10-03 08:19:34 -07:00
Chong Yidong
6926550f39 * keyboard.c (command_loop_1): Make sure the mark is really alive
before using it (Bug#7044).
2010-10-02 20:59:02 -04:00
Michael Albinus
dec8346846 * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it
is more portable.

* keyboard.c (gobble_input): Move call of xd_read_queued_messages ...
(kbd_buffer_get_event): ... here. This is needed for cygwin, which
has not defined SIGIO.
2010-09-28 15:39:22 +02:00
Jan D
3fad2ad22e Add fd handling with callbacks to select, dbus needs it for async operation.
* src/dbusbind.c: Include process.h.
(dbus_fd_cb, xd_find_watch_fd, xd_toggle_watch)
(xd_read_message_1): New functions.
(xd_add_watch, xd_remove_watch): Call xd_find_watch_fd.  Handle
watch for both read and write.
(Fdbus_init_bus): Also register xd_toggle_watch.
(Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
(Fdbus_method_error_internal, Fdbus_send_signal): Remove call
to dbus_connection_flush.
(xd_read_message):  Move most of the code to xd_read_message_1.
Call xd_read_message_1 until status is COMPLETE.

* src/keyboard.c (readable_events, gobble_input): Remove DBUS code.

* src/process.c (gpm_wait_mask, max_gpm_desc): Remove.
(write_mask): New variable.
(max_input_desc): Renamed from max_keyboard_desc.
(fd_callback_info): New variable.
(add_read_fd, delete_read_fd, add_write_fd, delete_write_fd): New
functions.
(Fmake_network_process): FD_SET write_mask.
(deactivate_process): FD_CLR write_mask.
(wait_reading_process_output): Connecting renamed to Writeok.
check_connect removed.  check_write is new.  Remove references to
gpm.  Use Writeok/check_write unconditionally (i.e. no #ifdef
NON_BLOCKING_CONNECT) instead of Connecting.
Loop over file descriptors and call callbacks in fd_callback_info
if file descriptor is ready for I/O.
(add_gpm_wait_descriptor): Just call add_keyboard_wait_descriptor.
(delete_gpm_wait_descriptor): Just call delete_keyboard_wait_descriptor.
(keyboard_bit_set): Use max_input_desc.
(add_keyboard_wait_descriptor, delete_keyboard_wait_descriptor): Remove
#ifdef subprocesses. Use max_input_desc.
(init_process): Initialize write_mask and fd_callback_info.

* src/process.h (add_read_fd, delete_read_fd, add_write_fd)
(delete_write_fd): Declare.
2010-09-26 18:20:01 +02:00
Juanma Barranquero
40b1a3a937 Fix typos.
* lisp/finder.el (finder-unknown-keywords):
* lisp/progmodes/gdb-mi.el (gdb-jsonify-buffer, gdb-running-threads-count):
* lisp/progmodes/etags.el (tags-table-including): Fix typos in docstrings.

* lisp/cedet/semantic/lex.el (semantic-ignore-comments): Doc fix.

* lisp/cedet/semantic/symref/list.el (semantic-symref-list-rename-open-hits):
  Fix typo in error message.
  (semantic-symref-list-map-open-hits): Fix typo in docstring.

* lisp/org/org-agenda.el (org-agenda-hide-tags-regexp):
* lisp/org/org.el (org-refile-targets): Fix typos in docstrings.
2010-09-25 14:04:35 +02:00
Eli Zaretskii
41118bd30d Fix int/EMACS_INT use in keyboard.c.
keyboard.c <last_point_position, last_non_minibuf_size>: Declare EMACS_INT.
 (echo_truncate, adjust_point_for_property, read_char)
 (gen_help_event, make_lispy_event, modify_event_symbol)
 (Fexecute_extended_command, stuff_buffered_input): Use EMACS_INT
 for buffer positions and string length.
 keyboard.h (gen_help_event): Adjust prototype.
 termhooks.h <struct input_event>: Make `code' member EMACS_INT.
 commands.h <last_point_position>: Declare EMACS_INT.
 xdisp.c <help_echo_pos>: Define as EMACS_INT.
 (truncate_echo_area): Accept EMACS_INT argument.
 dispextern.h <help_echo_pos>: Declare EMACS_INT.
 lisp.h (truncate_echo_area): Adjust prototype.
 composite.c (composition_adjust_point): Return EMACS_INT.
 composite.h (composition_adjust_point): Adjust prototype.
2010-09-25 05:36:36 -04:00
Eli Zaretskii
ace1712c7f Fix int/EMACS_INT use in ccl.c, cmds.c, data.c, dispnew.c.
keyboard.c (make_lispy_position): Use EMACS_INT for buffer
 positions.
 xdisp.c (redisplay_internal, try_window_id)
 (set_cursor_from_row, find_first_unchanged_at_end_row): Use
 EMACS_INT for buffer positions.
 dispextern.h (set_cursor_from_row, mode_line_string)
 (marginal_area_string): Adjust prototypes.
 dispnew.c (increment_matrix_positions)
 (increment_row_positions, copy_glyph_row_contents)
 (mode_line_string, marginal_area_string): Use EMACS_INT for buffer
 positions.
 dispextern.h (mode_line_string, marginal_area_string)
 (increment_matrix_positions, increment_row_positions): Adjust
 prototypes.
 data.c (Faref, Faset): Use EMACS_INT for string length and
 positions.
 cmds.c (internal_self_insert): Use EMACS_INT for the count of
 characters to insert.
 ccl.c (Fccl_execute_on_string): Use EMACS_INT for string
 position and size.
2010-09-24 13:48:10 -04:00
Eli Zaretskii
413d18e73d Fix some uses of int instead of EMACS_INT.
minibuf.c (Fminibuffer_contents)
 (Fminibuffer_contents_no_properties)
 (Fminibuffer_completion_contents): Use EMACS_INT for minibuffer
 positions.
 keyboard.c (command_loop_1): Use EMACS_INT to compare point with
 mark.
 alloc.c (make_uninit_string, make_uninit_multibyte_string)
 (allocate_string_data): Accept EMACS_INT for string length.
 editfns.c (Ffield_string, Ffield_string_no_properties)
 (make_buffer_string, make_buffer_string_both, Fbuffer_substring)
 (Fbuffer_substring_no_properties, find_field, Fdelete_field)
 (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
 (Ffield_end): Use EMACS_INT for buffer positions.
 insdel.c (prepare_to_modify_buffer): Use EMACS_INT to compare
 point with mark.
 lisp.h (allocate_string_data, make_uninit_string)
 (make_uninit_multibyte_string, make_buffer_string)
 (make_buffer_string_both): Adjust prototypes.
2010-09-22 12:03:34 -04:00
Jan D
e24ad6dd2b * keyboard.c (parse_tool_bar_item): For QClabel, set TOOL_BAR_ITEM_LABEL not HELP. 2010-09-17 11:54:28 +02:00
Stefan Monnier
b819f760b1 * src/keyboard.c (Fwindow_system): Fix compilation for USE_LISP_UNION_TYPE. 2010-08-31 21:42:39 +02:00
Chong Yidong
07fa68a7e8 * src/keyboard.c (command_loop_1): Don't call x-set-selection on tty. 2010-08-31 11:39:31 -04:00
Chong Yidong
1c409d0b96 Avoid clobbering primary selection when switching frames (Bug#6872).
* lisp/mouse.el (mouse-yank-primary): Avoid setting primary when
deactivating the mark (Bug#6872).

* src/keyboard.c (command_loop_1): Don't set primary selection during
handle-switch-frame (Bug#6872).
2010-08-24 11:48:14 -04:00
Juri Linkov
7133b7ee62 Move reading an extended command to Elisp (bug#5364, bug#5214).
* lisp/simple.el (read-extended-command): New function with the logic
for `completing-read' moved to Elisp from `execute-extended-command'.
Use `function-called-at-point' in `minibuffer-default-add-function'
to get a command name for M-n (bug#5364, bug#5214).

* src/keyboard.c (Fexecute_extended_command): Move reading a command name
with `completing-read' to a new Elisp function `read-extended-command'.
Call it to read a command to `function'  (bug#5364, bug#5214).
2010-08-23 00:27:59 +01:00
Dan Nicolaescu
a7ebc40927 Simplify termio code.
All non-MSDOS non-WINDOWSNT platforms define HAVE_TERMIOS, so
HAVE_TERMIO code is obsolete.
Replace HAVE_TERMIOS conditionals with !DOS_NT.
* src/systty.h: Do not define HAVE_TCATTR.
Remove HAVE_TERMIO, HAVE_LTCHARS and HAVE_TCHARS code.
Do not define EMACS_HAVE_TTY_PGRP.  Only define
EMACS_GET_TTY_PGRP for !DOS_NT.
* src/sysdep.c: Include sysselect.h unconditionally.  Do not include
sys/ioctl.h and termios.h, systty.h does it.  Use
HAVE_SYS_UTSNAME_H instead of USG as an include guard.
(init_baud_rate): Remove HAVE_TERMIO code.
(child_setup_tty): Remove HAVE_TERMIO code.
(emacs_get_tty, emacs_set_tty): Remove HAVE_TERMIO, HAVE_TCHARS
and HAVE_LTCHARS code.  Use !DOS_NT instead of HAVE_TCATTR.
(new_ltchars, new_tchars): Remove, unused.
(init_sys_modes): Remove HAVE_TERMIO, HAVE_TCHARS and HAVE_LTCHARS
code.  Remove special casing for __mips__, it was a no-op.  Remove
HAVE_TCATTR conditional, it is implied by HAVE_TERMIOS.
(init_sys_modes): Remove HPUX special case.
* src/process.c: Include stdlib.h unconditionally.  Do not include
fcntl.h, systty.h does it.  Remove conditional code for
HAVE_SERIAL, it is always true.
(process_send_signal): Remove HAVE_TERMIOS conditional, it's
always true when SIGNALS_VIA_CHARACTERS is true.
(Fcontinue_process, Fprocess_send_eof): Simplify conditionals:
!WINDOWSNT means HAVE_TERMIOS.
(create_process): Remove HAVE_TERMIOS, it's inside a HAVE_PTYS
conditional, which is true for all HAVE_TERMIOS systems.
* src/keyboard.c (init_keyboard): Do not use HAVE_TERMIO, use !DOS_NT
instead of HAVE_TERMIOS.
* src/emacs.c (shut_down_emacs): Use !defined DOS_NT instead of
EMACS_HAVE_TTY_PGRP.
* src/callproc.c (child_setup): Move EMACS_SET_TTY_PGRP use to the
non-MSDOS, non-WINDOWSNT code, it's only defined for such systems
anyway.
2010-08-22 08:14:37 -07:00
Chong Yidong
7c23dd4468 Let all active regions set the primary selection.
This includes both temporarily active regions (mouse drag and
shift-select) and those made with C-SPC and cursor motion.

* lisp/cus-start.el: Change defcustom for select-active-regions.

* lisp/simple.el (deactivate-mark): If select-active-regions is `only',
only set selection for temporarily active regions.

* src/insdel.c (prepare_to_modify_buffer): Handle `only' value of
select-active-regions.

* src/keyboard.c (command_loop_1): Avoid setting selection twice,
since it's done in deactivate-mark as well.
(Vselect_active_regions): Replace `lazy' value with `only',
meaning to only set PRIMARY for temporarily active regions.
2010-08-15 22:33:17 -04:00
Jan D
0005830ccc * keyboard.c (parse_tool_bar_item): Put in a bad label if :label
isn't a string.
2010-08-15 15:18:14 +02:00
Andreas Schwab
603dfc72ef * keyboard.c (parse_tool_bar_item): Avoid excessive use of strlen. 2010-08-15 11:30:06 +02:00
Jan D
c25ce9d017 Potential buffer overrun and uninit variable fixed, bug 6855.
* keyboard.c (parse_tool_bar_item): malloc buf.  Set TOOL_BAR_ITEM_LABEL
to empty string if not set to new_lbl (Bug#6855).
2010-08-15 10:13:02 +02:00
Jason Rumney
e66f9a1b7a (lispy_function_keys): Do not define VK_PACKET (bug#4836) 2010-08-14 15:35:24 +08:00
Dan Nicolaescu
8ea90aa352 Use const char* instead of char*.
Reduce the number of warnings with -Wwrite-strings.
* src/xrdb.c (get_environ_db, get_system_name):
* src/unexelf.c (find_section):
* src/term.c (string_cost, string_cost_one_line, per_line_cost)
(get_named_tty, init_tty):
* src/sysdep.c (sys_subshell):
* src/sound.c (sound_perror, sound_warning, vox_open, vox_init)
(alsa_sound_perror, alsa_open, alsa_configure, alsa_init):
* src/search.c (Freplace_match):
* src/process.c (Fmake_network_process, send_process, init_process):
* src/lread.c (Fload, init_lread):
* src/keymap.c (Fdescribe_buffer_bindings, describe_map_tree):
* src/keyboard.c (parse_tool_bar_item, struct event_head):
* src/gtkutil.h (xg_get_font_name):
* src/gtkutil.c (get_dialog_title, create_dialog, xg_get_font_name)
(make_widget_for_menu_item, make_menu_item, create_menus)
(xg_make_tool_item):
* src/font.c (parse_matrix, font_parse_name):
* src/floatfns.c (rounding_driver, float_error_fn_name):
* src/filelock.c (get_boot_time_1, lock_file_1):
* src/fileio.c (barf_or_query_if_file_exists, check_writable):
* src/editfns.c (get_system_name, get_operating_system_release)
(Fencode_time, Fset_time_zone_rule):
* src/dispextern.h (string_cost, per_line_cost, get_named_tty, init_tty):
* src/buffer.c (defvar_per_buffer): Use const.
2010-08-09 02:35:21 -07:00
Chong Yidong
746812d9da Avoid restrictions when copying window selection.
* src/keyboard.c (command_loop_1):
* src/insdel.c (prepare_to_modify_buffer): Don't call validate_region.
2010-08-07 16:26:55 -04:00
Chong Yidong
9852377f78 Change `select-active-region' mechanics.
Save region text prior to buffer modification.
Set window selection lazily, during `deactivate-mark' or after each
command when the region is temporarily active.

* lisp/cus-start.el: Add custom declaration for select-active-regions.

* lisp/mouse.el (mouse-drag-track): Remove hacks to deal with old
select-active-regions implementation.
(mouse-yank-at-click): Doc fix.

* lisp/simple.el (select-active-regions): Move to keyboard.c.
(deactivate-mark): Used saved-region-selection.
(select-active-region): Function removed.
(activate-mark, set-mark, push-mark-command)
(handle-shift-selection): Don't call it.
(keyboard-quit): Avoid adding the region to the window selection.

* src/insdel.c (prepare_to_modify_buffer): Save active region text to
Vsaved_region_selection.

* src/keyboard.c (Vselect_active_regions): Move from simple.el.
(Vsaved_region_selection, Qx_set_selection, QPRIMARY, Qlazy): New
vars.
(command_loop_1): Set window selection prior to deactivating the
mark.

* src/xselect.c (QPRIMARY): Move to keyboard.c.
2010-08-07 15:39:04 -04:00
Dan Nicolaescu
648801d1f5 Use const for some arrays and functions.
* src/xterm.h (xg_set_icon_from_xpm_data):
* src/xfns.c (xg_set_icon_from_xpm_data):
* src/term.c (fkeys):
* src/keyboard.c (lispy_accent_keys, lispy_function_keys)
(lispy_multimedia_keys, lispy_kana_keys, iso_lispy_function_keys)
(lispy_drag_n_drop_names, scroll_bar_parts, modify_event_symbol)
(frame.c frame_parms):
* src/emacs-icon.h (gnu_xpm_bits):
* src/callint.c (callint_argfuns): Use const.
2010-08-06 11:41:15 -07:00
Dan Nicolaescu
04bab72cc6 Remove extern declarations in .c files, .h files have them.
* src/data.c:
* src/dired.c:
* src/editfns.c:
* src/filelock.c:
* src/fns.c:
* src/font.c:
* src/fontset.c:
* src/frame.c:
* src/fringe.c:
* src/ftfont.c:
* src/gtkutil.c:
* src/indent.c:
* src/keyboard.c:
* src/keymap.c:
* src/lread.c:
* src/menu.c:
* src/print.c:
* src/search.c:
* src/sound.c:
* src/window.c:
* src/xdisp.c:
* src/xfaces.c:
* src/xfns.c:
* src/xfont.c:
* src/xftfont.c:
* src/xmenu.c:
* src/xterm.c: Remove declarations.
2010-08-05 16:34:12 -07:00
Dan Nicolaescu
e6cba65065 Remove extern declarations from .c files, and them to .h files.
* src/xsmfns.c (Vuser_login_name):
* src/xrdb.c (Vdouble_click_time):
* src/xfaces.c (xic_create_fontsetname):
* src/w32select.c (waiting_for_input):
* src/print.c (minibuffer_auto_raise):
* src/msdos.c (Qhelp_echo):
* src/macros.c (real_this_command):
* src/keymap.c (Voverriding_local_map):
* src/xterm.c (poll_for_input_1, gray_bitmap_width)
(gray_bitmap_height, gray_bitmap_bits;
* src/xmenu.c ( Voverriding_local_map)
(Voverriding_local_map_menu_flag; Qmenu_item; use_dialog_box)
(use_file_dialog, Xt_app_con):
* src/xdisp.c (minibuffer_auto_raise, Voverriding_local_map)
(Voverriding_local_map_menu_flag, Qmenu_item, Qface, Qinvisible)
(Qwidth, Qinvisible, Qwindow, Qpriority, Qtool_bar_lines)
(Qtool_bar_lines, ignore_mouse_drag_p):
* src/minibuf.c (Voverriding_local_map, Qfield, Qfront_sticky)
(Qrear_nonsticky, nconc2):
* src/keyboard.c (current_global_map, minibuf_level, Qmenu_item)
(Vhistory_length, Vtranslation_table_for_input, Qcomposition)
(Qdisplay, Qafter_string, Qbefore_string, Qundefined):
* src/fileio.c (use_dialog_box, use_file_dialog, Vuser_login_name)
(minibuf_level, minibuffer_auto_raise, lisp_time_argument):
* src/eval.c (Qinteractive_form, Qrisky_local_variable, Qfunction)
(gc_in_progress):
* src/doc.c (Voverriding_local_map, Qremap):
* src/dired.c (completion_ignore_case, Qcompletion_ignore_case)
(Vcompletion_regexp_list):
* src/coding.c (Qmac, Qinsert_file_contents, Qwrite_region)
(Qcompletion_ignore_case):
* src/callint.c (Qcursor_in_echo_area, Qfile_directory_p, Qonly)
(Vhistory_length, Vthis_original_command, real_this_command)
(Qface, Qminibuffer_prompt, history_delete_duplicates):
* src/image.c (Qrisky_local_variable):
* src/fontset.c (QCname):
* src/fns.c (minibuffer_auto_raise, QCname):
* src/dispnew.c (char_ins_del_cost):
* src/composite.c (font_fill_lglyph_metrics):
* src/cmds.c (Qface, Vtranslation_table_for_input):
* src/charset.c (map_char_table_for_charset, Qfile_name_handler_alist):
* src/ccl.c (charset_unicode):
* src/callproc.c (Vtemporary_file_directory):
* src/buffer.c (emacs_strerror): Remove extern declarations.

Remove extern declarations from .c files, and them to .h files.
* src/keyboard.h (Qhelp_echo, waiting_for_input)
(input_available_clear_time, ignore_mouse_drag_p)
(Vdouble_click_time, real_this_command, Vthis_original_command):
* src/keymap.h (Qremap, Qmenu_item, Voverriding_local_map)
(Voverriding_local_map_menu_flag):
* src/lisp.h (Qinteractive_form, use_file_dialog)
(Qcursor_in_echo_area, QCascent, QCmargin, QCrelief, Qcount)
(Qextension_data, QCconversion, QCcolor_symbols, QCheuristic_mask)
(QCindex, QCmatrix, QCcolor_adjustment, QCmask)
(Qrisky_local_variable, map_char_table_for_charset, Vprint_level)
(Qfunction, debug_on_next_call, Qfield)
(Vinhibit_field_text_motion, Vuser_login_name, lisp_time_argument)
(Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string)
(Qfile_directory_p, Qinsert_file_contents)
(Qcompletion_ignore_case, Qcompletion_ignore_case)
(Vcompletion_regexp_list, Vhistory_length, completion_ignore_case)
(history_delete_duplicates, minibuffer_auto_raise, Qonly)
(Qfile_name_handler_alist, Qfront_sticky, Qrear_nonsticky)
(Qminibuffer_prompt)
(Vtemporary_file_directory,char_ins_del_vector, Qface):
* src/xterm.h (gray_bitmap_width, gray_bitmap_height)
(gray_bitmap_bits, xic_create_fontsetname):
* src/coding.h (Vtranslation_table_for_input): Add extern declarations.

* src/data.c (Qwindow): Make non-static, used from other files too.
* src/frame.c (validate_x_resource_name): Remove shadow definition for i.
2010-07-28 22:48:06 -07:00
Dan Nicolaescu
977105dcbf NO_RETURN functions should not return.
* keyboard.c (Ftop_level, Fexit_recursive_edit)
(Fabort_recursive_edit): Remove return statements in NO_RETURN
functions.
2010-07-26 10:11:43 -07:00
Juanma Barranquero
361358ea12 Make building under stricter warning flags somewhat cleaner.
Flags used: -Wold-style-declaration -Wunused-function -Wstrict-prototypes

* lib-src/emacsclient.c (getcwd, w32_getenv):
* lib-src/ntlib.h (getlogin, getuid, getegid, getgid): Fix prototypes.

* nt/runemacs.c (set_user_model_id): Fix prototype.

* src/callproc.c (relocate_fd): Set inside #ifndef WINDOWSNT.
* src/dired.c (opendir, readdir): Fix prototypes.
* src/editfns.c (w32_get_internal_run_time): Fix prototypes.
* src/keyboard.c (input_available_signal): Declare inside #ifdef SIGIO.
* src/ndir.h (opendir, readdir, seekdir, closedir): Fix prototypes.
  (telldir): Remove declaration.
* src/ralloc.c (real_morecore, __morecore): Fix prototypes.
* src/sound.c (alsa_sound_perror): Declare inside #ifdef HAVE_ALSA.
* src/syssignal.h (strsignal): Fix prototype.
* src/term.c (tparam): Fix prototype.
  (term_get_fkeys_address, term_get_fkeys_kboard, term_get_fkeys_1)
  (term_get_fkeys): Set inside "#ifndef DOS_NT".
* src/vm-limit.c (check_memory_limits): Fix prototypes of real_morecore
  and __morecore.
* src/w32gui.h (XParseGeometry): Fix prototype.
* src/w32heap.h (get_data_start, get_data_end, init_heap): Fix prototypes.
* src/w32term.c (my_set_focus): Declare inside #if 0.
* src/w32term.h (x_window_to_frame, x_display_info_for_name, w32_term_init)
  (w32_fill_rect, w32_clear_window, init_crit, delete_crit, signal_quit)
  (drain_message_queue, get_next_msg, post_msg, parse_button)
  (ClipboardSequence_Proc): Fix prototypes.
  (wait_for_sync): Remove declaration.
2010-07-25 02:20:51 +02:00
Eli Zaretskii
77defa9a25 Remove more "#ifdef subprocesses".
process.c <inhibit_sentinels>: Move to the common part.
 (Fwaiting_for_user_input_p): Move to the common part; return nil
 if async subprocesses aren't supported.
 sysdep.c (wait_for_termination) [!MSDOS]: Don't compile on
 MS-DOS.  Remove "#ifdef subprocesses".
 (sys_subshell, sys_select): Remove "#ifdef subprocesses".
 (gettimeofday): Remove "#ifdef subprocesses".
 (wait_without_blocking): Remove function.
 (flush_pending_output, child_setup_tty): Don't compile on MS-DOS.
 Remove "#ifdef subprocesses".
 (child_setup_tty): Use WINDOWSNT instead of DOS_NT, since not
 compiled on MS-DOS.
 callproc.c (Fcall_process) [!MSDOS]: Don't call
 wait_for_termination on MS-DOS.
 emacs.c (shut_down_emacs): Remove "#ifndef subprocesses" from
 initialization of inhibit_sentinels.
 keyboard.c (record_asynch_buffer_change): Remove "#ifdef
 subprocesses" conditional.
 callproc.c (Fcall_process) [!subprocesses]: Don't call
 wait_for_termination, since `buffer' cannot be an integer when
 async subprocesses are not supported
 xdisp.c (decode_mode_spec): Use `MSDOS' instead of `subprocesses'
 for ifdefing away the call to Fprocess_status.
2010-07-13 13:57:00 +03:00
Dan Nicolaescu
6f704c7675 Convert more function definitions to standard C.
* src/xdisp.c (window_box_edges, handle_single_display_spec)
(display_string): Convert definition to standard C.
* src/scroll.c (do_direct_scrolling, scrolling_1):
* src/dispnew.c (allocate_matrices_for_frame_redisplay)
(mirrored_line_dance):
* src/coding.c (code_convert_string):
* src/charset.c (map_charset_chars):
* src/ccl.c (Fccl_program_p, Fccl_execute, Fccl_execute_on_string)
(Fregister_ccl_program, Fregister_code_conversion_map):
* src/keyboard.c (kbd_buffer_nr_stored): Likewise.
(head_table): Make static and const.
2010-07-12 09:32:53 -07:00
Andreas Schwab
a8fe7202b4 Constify functions taking char *
* alloc.c (pending_malloc_warning, malloc_warning): Add const.
* callproc.c (relocate_fd, getenv_internal_1, getenv_internal)
(egetenv): Likewise.
* doprnt.c (doprnt): Likewise.
* editfns.c (set_time_zone_rule, format2): Likewise.
* emacs.c (decode_env_path): Likewise.
* eval.c (signal_error, error): Likewise.
* insdel.c (replace_range_2): Likewise.
* keyboard.c (cmd_error_internal): Likewise.
* lread.c (isfloat_string, make_symbol, dir_warning): Likewise.
* print.c (write_string, write_string_1, print_error_message):
Likewise.
* vm-limit.c (warn_function, memory_warnings): Likewise.
* xdisp.c (message1, message1_nolog, message_with_string)
(vmessage, message, message_nolog): Likewise.
* emacs.c: Remove duplicate declaration.
* keyboard.h: Likewise.
* lisp.h: Update prototypes.
2010-07-11 11:27:13 +02:00
Andreas Schwab
83380e65cd Fix implicit declaration of kbd_on_hold_p
* keyboard.c: Include "process.h"
2010-07-11 10:38:40 +02:00
Chong Yidong
2ec1b5ee34 Merge changes from emacs-23 branch. 2010-07-10 14:52:53 -04:00
Dan Nicolaescu
5842a27bbf Convert DEFUNs to standard C.
* src/alloc.c: Convert DEFUNs to standard C.
* src/buffer.c:
* src/bytecode.c:
* src/callint.c:
* src/callproc.c:
* src/casefiddle.c:
* src/casetab.c:
* src/category.c:
* src/character.c:
* src/charset.c:
* src/chartab.c:
* src/cmds.c:
* src/coding.c:
* src/composite.c:
* src/data.c:
* src/dbusbind.c:
* src/dired.c:
* src/dispnew.c:
* src/doc.c:
* src/dosfns.c:
* src/editfns.c:
* src/emacs.c:
* src/eval.c:
* src/fileio.c:
* src/filelock.c:
* src/floatfns.c:
* src/fns.c:
* src/font.c:
* src/fontset.c:
* src/frame.c:
* src/fringe.c:
* src/image.c:
* src/indent.c:
* src/insdel.c:
* src/keyboard.c:
* src/keymap.c:
* src/lread.c:
* src/macros.c:
* src/marker.c:
* src/menu.c:
* src/minibuf.c:
* src/msdos.c:
* src/nsfns.m:
* src/nsmenu.m:
* src/nsselect.m:
* src/print.c:
* src/process.c:
* src/search.c:
* src/sound.c:
* src/syntax.c:
* src/term.c:
* src/terminal.c:
* src/textprop.c:
* src/undo.c:
* src/w16select.c:
* src/w32console.c:
* src/w32fns.c:
* src/w32font.c:
* src/w32menu.c:
* src/w32proc.c:
* src/w32select.c:
* src/window.c:
* src/xdisp.c:
* src/xfaces.c:
* src/xfns.c:
* src/xmenu.c:
* src/xselect.c:
* src/xsettings.c:
* src/xsmfns.c: Likewise.
2010-07-08 14:25:08 -07:00
Andreas Schwab
72af86bd8c Replace bcopy, bzero, bcmp by memcpy, memmove, memset, memcmp
* alloc.c (overrun_check_malloc, overrun_check_realloc)
(overrun_check_free, xstrdup, allocate_string)
(allocate_string_data, compact_small_strings, Fmake_string)
(make_unibyte_string, make_multibyte_string)
(make_string_from_bytes, make_specified_string, make_float)
(Fcons, allocate_terminal, allocate_frame, make_pure_string)
(Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
memcpy, memmove, memset, memcmp.
* atimer.c (start_atimer, set_alarm): Likewise.
* buffer.c (clone_per_buffer_values, report_overlay_modification)
(mmap_realloc, init_buffer_once): Likewise.
* callint.c (Fcall_interactively): Likewise.
* callproc.c (Fcall_process, Fcall_process_region, child_setup)
(getenv_internal_1): Likewise.
* casefiddle.c (casify_object): Likewise.
* ccl.c (ccl_driver): Likewise.
* character.c (str_as_multibyte, str_to_multibyte): Likewise.
* charset.c (load_charset_map_from_file)
(load_charset_map_from_file, load_charset_map_from_vector)
(Fdefine_charset_internal): Likewise.
* cm.c (Wcm_clear): Likewise.
* coding.c (decode_eol, decode_coding_object)
(Fset_coding_system_priority, make_subsidiaries): Likewise.
* data.c (Faset): Likewise.
* dired.c (directory_files_internal, file_name_completion_stat):
Likewise.
* dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
(clear_glyph_row, copy_row_except_pointers)
(copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
(save_current_matrix, restore_current_matrix)
(build_frame_matrix_from_leaf_window, mirrored_line_dance)
(mirror_line_dance, scrolling_window): Likewise.
* doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
Likewise.
* doprnt.c (doprnt): Likewise.
* editfns.c (Fuser_full_name, make_buffer_string_both)
(Fmessage_box, Fformat, Ftranspose_regions): Likewise.
* emacs.c (sort_args): Likewise.
* eval.c (Fapply, Ffuncall): Likewise.
* fileio.c (Ffile_name_directory, make_temp_name)
(Fexpand_file_name, search_embedded_absfilename)
(Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
(auto_save_error): Likewise.
* fns.c (Fstring_equal, Fcopy_sequence, concat)
(string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
(internal_equal, Fclear_string, larger_vector, copy_hash_table)
(Fmake_hash_table): Likewise.
* fringe.c (Fdefine_fringe_bitmap): Likewise.
* ftfont.c (ftfont_text_extents): Likewise.
* getloadavg.c (getloadavg): Likewise.
* image.c (define_image_type, make_image, make_image_cache)
(x_create_x_image_and_pixmap, xbm_image_p)
(w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
(xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
(init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
(png_image_p, png_read_from_memory, png_load, jpeg_image_p)
(tiff_image_p, tiff_read_from_memory, gif_image_p)
(gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
Likewise.
* indent.c (scan_for_column, compute_motion): Likewise.
* insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
(insert_1_both, insert_from_gap, replace_range_2): Likewise.
* intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
* keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
(kbd_buffer_store_event_hold, apply_modifiers_uncached)
(store_user_signal_events, menu_bar_items, tool_bar_items)
(process_tool_bar_item, append_tool_bar_item)
(read_char_minibuf_menu_prompt, read_key_sequence)
(Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
Likewise.
* keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
Likewise.
* lisp.h (STRING_COPYIN): Likewise.
* lread.c (Fload, read1, oblookup): Likewise.
* msdos.c (Frecent_doskeys): Likewise.
* nsfns.m (Fx_create_frame): Likewise.
* nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
Likewise.
* nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
(EmacsImage-initForXPMWithDepth:width:height:flip:length:):
Likewise.
* nsmenu.m (ns_update_menubar): Likewise.
* nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
* print.c (print_unwind, printchar, strout, print_string)
(print_error_message): Likewise.
* process.c (conv_lisp_to_sockaddr, set_socket_option)
(Fmake_network_process, Fnetwork_interface_list)
(Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
(init_process): Likewise.
* ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
* regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
Likewise.
* scroll.c (do_scrolling, do_direct_scrolling)
(scrolling_max_lines_saved): Likewise.
* search.c (search_buffer, wordify, Freplace_match): Likewise.
* sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
* syntax.c (skip_chars, skip_syntaxes): Likewise.
* sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
(emacs_set_tty): Likewise.
* term.c (encode_terminal_code, calculate_costs)
(produce_special_glyphs, create_tty_output, init_tty, delete_tty):
Likewise.
* termcap.c (tgetst1, gobble_line): Likewise.
* termhooks.h (EVENT_INIT): Likewise.
* tparam.c (tparam1): Likewise.
* unexalpha.c (unexec): Likewise.
* unexec.c (write_segment): Likewise.
* unexmacosx.c (unexec_write_zero): Likewise.
* w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
(Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
* w32font.c (w32font_list_family, w32font_text_extents)
(w32font_list_internal, w32font_match_internal)
(w32font_open_internal, compute_metrics, Fx_select_font):
Likewise.
* w32menu.c (set_frame_menubar, add_menu_item)
(w32_menu_display_help, w32_free_submenu_strings): Likewise.
* w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
* w32uniscribe.c (uniscribe_list_family): Likewise.
* w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
* window.c (make_window, replace_window, set_window_buffer)
(Fsplit_window): Likewise.
* xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
(add_to_log, message3, x_consider_frame_title)
(append_space_for_newline, extend_face_to_end_of_line)
(decode_mode_spec_coding, init_glyph_string): Likewise.
* xfaces.c (x_create_gc, get_lface_attributes_no_remap)
(Finternal_copy_lisp_face, Finternal_merge_in_global_face)
(face_attr_equal_p, make_realized_face, make_face_cache)
(free_realized_faces, lookup_named_face, smaller_face)
(face_with_height, lookup_derived_face)
(x_supports_face_attributes_p, Finternal_set_font_selection_order)
(Finternal_set_font_selection_order, realize_default_face)
(compute_char_face, face_at_buffer_position)
(face_for_overlay_string, face_at_string_position, merge_faces):
Likewise.
* xfns.c (xic_create_fontsetname, Fx_create_frame)
(Fx_window_property, x_create_tip_frame)
(Fx_backspace_delete_keys_p): Likewise.
* xfont.c (xfont_list, xfont_match, xfont_list_family)
(xfont_text_extents): Likewise.
* xmenu.c (set_frame_menubar, xmenu_show): Likewise.
* xrdb.c (magic_file_p, x_get_resource): Likewise.
* xselect.c (x_queue_event, x_get_window_property)
(receive_incremental_selection): Likewise.
* xsmfns.c (x_session_check_input): Likewise.
* xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
(handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
Likewise.
* character.h (BCOPY_SHORT): Removed.
* config.in: Regenerate.
* dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
* emacs.c (main) [PROFILING]: Don't declare
dump_opcode_frequencies.
* lisp.h (safe_bcopy): Remove declaration.
(memset) [!HAVE_MEMSET]: Declare.
(memcpy) [!HAVE_MEMCPY]: Likewise.
(memmove) [!HAVE_MEMMOVE]: Likewise.
(memcmp) [!HAVE_MEMCMP]: Likewise.
* s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
(BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
Don't define.
(HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
* s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
(BCOPY_DOWNWARD_SAFE): Don't define.
* sysdep.c (memset) [!HAVE_MEMSET]: Define.
(memcpy) [!HAVE_MEMCPY]: Define.
(memmove) [!HAVE_MEMMOVE]: Define.
(memcmp) [!HAVE_MEMCMP]: Define.

* config.nt (HAVE_BCOPY, HAVE_BCMP): Remove undefs.
(HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_MEMCMP): Add undefs.

* sed2v2.inp (HAVE_MEMCPY, HAVE_MEMSET): Edit to 1.
(HAVE_BZERO): Don't edit.

* lwlib.c (lwlib_memset, lwlib_bcopy): Remove.
(malloc_widget_value, free_widget_info, allocate_widget_instance)
(lw_separator_p): Replace lwlib_memset, lwlib_bcopy, bzero, bcmp by
memset, memcpy, memcmp.
* lwlib-utils.c (XtApplyToWidgets): Likewise.
* xlwmenu.c (XlwMenuInitialize): Likewise.
* lwlib.h (lwlib_bcopy): Remove declaration.

* ebrowse.c (add_sym, make_namespace): Replace bcopy, bzero by
memcpy, memmove, memset.
* pop.c (pop_retrieve, socket_connection, pop_getline): Likewise.

* CPP-DEFINES (BCOPY_DOWNWARD_SAFE, BCOPY_UPWARD_SAFE)
(GAP_USE_BCOPY, HAVE_BCMP, HAVE_BCOPY, bcmp, bcopy, bzero):
Remove.

* configure.in: Don't check for bcopy, bcmp, bzero.  Don't include
<strings.h> and don't define bcopy, bzero, BCMP in config.h.
2010-07-08 00:18:28 +02:00
Jan D
cb768704a4 If kbd_buffer is becoming full, stop reading until it drains (Bug#6571).
* keyboard.c (input_available_signal): Declare.
(kbd_buffer_nr_stored): New function.
(kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns
more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571).
(kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored
returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571).
(tty_read_avail_input): If input is on hold, return.
Don't read more that free slots in kbd_buffer (Bug#6571).

* process.h (hold_keyboard_input, unhold_keyboard_input)
(kbd_on_hold_p): Declare.

* process.c (kbd_is_on_hold): New variable.
(hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p): New
functions.
(wait_reading_process_output): If kbd_on_hold_p returns non-zero,
select on empty input mask.
(init_process): Initialize kbd_is_on_hold to 0.
2010-07-07 19:39:49 +02:00
Andreas Schwab
7af07b9671 Fix conflicting declarations of x_get_keysym_name
* xterm.c (x_get_keysym_name): Change type of parameter to int.
* lisp.h: Declare x_get_keysym_name.
* keyboard.c (modify_event_symbol): Don't declare
x_get_keysym_name here.
2010-07-06 15:33:34 +02:00
Andreas Schwab
9d70a3fc8e Remove obsolete volatile
* keyboard.c: Remove duplicate <setjmp.h>.
	(read_key_sequence): Remove volatile qualifiers.
2010-07-05 19:16:59 +02:00
Dan Nicolaescu
d2aa42f8be Convert function definitions and declarations to standard C.
* src/vm-limit.c (memory_warnings):
* src/keyboard.c (modify_event_symbol):
* src/floatfns.c (rounding_driver, ceiling2, floor2, truncate2)
(round2, emacs_rint):
* src/process.c (send_process, old_sigpipe): Convert function
definitions and declarations to standard C.
2010-07-05 09:29:35 -07:00
Juanma Barranquero
d3da34e0da Convert most remaining function definitions to standard C.
* buffer.c, cm.c, eval.c, keyboard.c, process.c, term.c, vm-limit.c,
* xdisp.c: Convert function definitions to standard C.

* cm.c (cmputc): Arg C is now int, not char.
* process.c (Fmake_network_process): Cast sockaddr_in* to sockaddr*.
2010-07-05 12:36:06 +02:00
Jan D
f57e2426f0 Remove __P and P_ from .c and .m files and definition of P_
* lisp.h:
* atimer.h: Remove define for P_.

* alloc.c: Remove __P and P_ from .c and .m files.
* atimer.c:
* buffer.c:
* callint.c:
* category.c:
* charset.c:
* chartab.c:
* cm.c:
* coding.c:
* composite.c:
* data.c:
* dired.c:
* dispnew.c:
* doc.c:
* editfns.c:
* emacs.c:
* eval.c:
* fileio.c:
* filelock.c:
* fns.c:
* font.c:
* fontset.c:
* frame.c:
* ftfont.c:
* ftxfont.c:
* gmalloc.c:
* gtkutil.c:
* image.c:
* indent.c:
* intervals.c:
* keyboard.c:
* keymap.c:
* lread.c:
* marker.c:
* menu.c:
* minibuf.c:
* print.c:
* process.c:
* scroll.c:
* search.c:
* sound.c:
* strftime.c:
* syntax.c:
* sysdep.c:
* term.c:
* terminal.c:
* textprop.c:
* unexalpha.c:
* w32console.c:
* w32fns.c:
* w32font.c:
* w32menu.c:
* w32term.c:
* w32uniscribe.c:
* window.c:
* xdisp.c:
* xfaces.c:
* xfns.c:
* xfont.c:
* xftfont.c:
* xmenu.c:
* xselect.c:
* xterm.c: Likewise.

* ebrowse.c: Remove P_ and __P.
* etags.c:
* movemail.c:
* pop.c:
* update-game-score.c: Likewise.
2010-07-02 14:19:53 +02:00
Kevin Ryde
31c4aaf628 Doc fix (Bug#6224).
* keyboard.c (Vlast_command, Vkeyboard_translate_table)
(Voverriding_terminal_local_map, Vsystem_key_alist)
(Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
2010-05-20 10:53:30 -04:00
Chong Yidong
aeb77d4660 Doc fix (Bug#6224).
* keyboard.c (Vlast_command, Vkeyboard_translate_table)
(Voverriding_terminal_local_map, Vsystem_key_alist)
(Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
2010-05-20 10:50:32 -04:00
Jan Djärv
f904c0f938 Gtk tool bars can be text, icons with text or just icons.
* xsettings.c: Qmonospace_font_name, Qtool_bar_style and
current_tool_bar_style are new.
(store_config_changed_event): Rename from store_font_changed_event.
(XSETTINGS_TOOL_BAR_STYLE): New define.
(SEEN_FONT, SEEN_TB_STYLE): New enum values.
(struct xsettings): Add font and tb_style, set xft stuff inside #ifdef
HAVE_XFT.
(something_changedCB): store_font_changed_event is now
store_config_changed_event
(parse_settings): Rename from parse_xft_settings.  Read
non-xft xsettings outside #ifdef HAVE_XFT.
(read_settings): Renamed from read_xft_settings.
(apply_xft_settings): Take current settings as parameter.  Do not
call read_(xft)_settings.
(read_and_apply_settings): New function.
(xft_settings_event): Do non-xft stuff out of HAVE_XFT.  Call
read_and_apply_settings if there are settings to be read.
(init_xsettings): Renamed from init_xfd_settings.
Call read_and_apply_settings unconditionally.
(xsettings_initialize): Call init_xsettings.
(Ftool_bar_get_system_style): New function.
(syms_of_xsettings): Define Qmonospace_font_name and
Qtool_bar_style.  Initialize current_tool_bar_style to nil.
defsubr Stool_bar_get_system_style. Fprovide on
dynamic-setting.

* xsettings.h (Ftool_bar_get_system_style): Declare.

* xdisp.c: Vtool_bar_style, tool_bar_max_label_size,
Qtext, Qboth, Qboth_horiz are new.
(syms_of_xdisp): Intern Qtext, Qboth, Qboth_horiz, DEFVAR
Vtool_bar_style, tool_bar_max_label_size.

* lisp.h: Extern declare Qtext, Qboth, Qboth_horiz.

* keyboard.c: QClabel is new.
(parse_tool_bar_item): Take out QClabel from tool bar items.
Try to construct a label if ther is no QClabel.
(syms_of_keyboard): Intern :label as QClabel.

* dispextern.h (tool_bar_item_idx): TOOL_BAR_ITEM_LABEL is new.
(Vtool_bar_style, tool_bar_max_label_size, DEFAULT_TOOL_BAR_LABEL_SIZE):
New.

* Makefile.in (SOME_MACHINE_LISP): font-setting.el renamed to
dynamic-setting.el.

* gtkutil.c (xg_tool_bar_menu_proxy): Handle label in tool bar item.
(xg_make_tool_item, xg_show_toolbar_item): New function.
(update_frame_tool_bar): Take label from TOOL_BAR_ITEM_LABEL.
Call xg_make_tool_item to make a tool bar item.
Call xg_show_toolbar_item.  Use wtoolbar instead of x->toolbar_widget.

* xterm.c (x_draw_image_relief): Take Vtool_bar_button_margin
into account for toolbars.

* vc-dir.el (vc-dir-tool-bar-map): Add :label on some tool bar items.

* tool-bar.el (tool-bar-setup): Add :label on some tool bar items.

* loadup.el: Load dynamic-setting.el if feature dynamic-setting
is present.

* info.el (info-tool-bar-map): Add labels.

* cus-start.el (all): Add tool-bar-style and tool-bar-max-label-size.

* cus-edit.el (custom-commands): Add labels for tool bar.
(custom-buffer-create-internal, Custom-mode): Adjust for
labels in custom-commands.

* dynamic-setting.el: Renamed from font-setting.el.
2010-04-20 20:52:07 +02:00
Stefan Monnier
ce5b453a44 Make variable forwarding explicit rather the using special values.
Basically, this makes the structure of buffer-local values and object
forwarding explicit in the type of Lisp_Symbols rather than use
special Lisp_Objects for that.  This tends to lead to slightly more
verbose code, but is more C-like, simpler, and makes it easier to make
sure we handled all cases, among other things by letting the compiler
help us check it.
* lisp.h (enum Lisp_Misc_Type, union Lisp_Misc):
Removing forwarding objects.
(enum Lisp_Fwd_Type, enum symbol_redirect, union Lisp_Fwd): New types.
(struct Lisp_Symbol): Make the various forms of variable-forwarding
explicit rather than hiding them inside Lisp_Object "values".
(XFWDTYPE): New macro.
(XINTFWD, XBOOLFWD, XOBJFWD, XKBOARD_OBJFWD): Redefine.
(XBUFFER_LOCAL_VALUE): Remove.
(SYMBOL_VAL, SYMBOL_ALIAS, SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL)
(SET_SYMBOL_ALIAS, SET_SYMBOL_BLV, SET_SYMBOL_FWD): New macros.
(SYMBOL_VALUE, SET_SYMBOL_VALUE): Remove.
(struct Lisp_Intfwd, struct Lisp_Boolfwd, struct Lisp_Objfwd)
(struct Lisp_Buffer_Objfwd, struct Lisp_Kboard_Objfwd):
Remove the Lisp_Misc_* header.
(struct Lisp_Buffer_Local_Value): Redefine.
(BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): New macros.
(struct Lisp_Misc_Any): Add filler to get the right size.
(struct Lisp_Free): Use struct Lisp_Misc_Any rather than struct
Lisp_Intfwd.
(DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
(DEFVAR_KBOARD): Allocate a forwarding object.
* data.c (do_blv_forwarding, store_blv_forwarding): New macros.
(let_shadows_global_binding_p): New function.
(union Lisp_Val_Fwd): New type.
(make_blv): New function.
(swap_in_symval_forwarding, indirect_variable, do_symval_forwarding)
(store_symval_forwarding, swap_in_global_binding, Fboundp)
(swap_in_symval_forwarding, find_symbol_value, Fset)
(let_shadows_buffer_binding_p, set_internal, default_value)
(Fset_default, Fmake_variable_buffer_local, Fmake_local_variable)
(Fkill_local_variable, Fmake_variable_frame_local)
(Flocal_variable_p, Flocal_variable_if_set_p)
(Fvariable_binding_locus):
* xdisp.c (select_frame_for_redisplay):
* lread.c (Fintern, Funintern, init_obarray, defvar_int)
(defvar_bool, defvar_lisp_nopro, defvar_lisp, defvar_kboard):
* frame.c (store_frame_param):
* eval.c (Fdefvaralias, Fuser_variable_p, specbind, unbind_to):
* bytecode.c (Fbyte_code) <varref, varset>: Adapt to the new symbol
value structure.
* buffer.c (PER_BUFFER_SYMBOL): Move from buffer.h.
(clone_per_buffer_values): Only adjust markers into the current buffer.
(reset_buffer_local_variables): PER_BUFFER_IDX is never -2.
(Fbuffer_local_value, set_buffer_internal_1)
(swap_out_buffer_local_variables):
Adapt to the new symbol value structure.
(DEFVAR_PER_BUFFER): Allocate a Lisp_Buffer_Objfwd object.
(defvar_per_buffer): Take a new arg for the fwd object.
(buffer_lisp_local_variables): Return a proper alist (different fix
for bug#4138).
* alloc.c (Fmake_symbol): Use SET_SYMBOL_VAL.
(Fgarbage_collect): Don't handle buffer_defaults specially.
(mark_object): Handle new symbol value structure rather than the old
special Lisp_Misc_* objects.
(gc_sweep) <symbols>: Free also the buffer-local-value objects.
* term.c (set_tty_color_mode):
* bidi.c (bidi_initialize): Don't access the ->value field directly.
* buffer.h (PER_BUFFER_VAR_OFFSET): Don't bother with
a buffer_local_flags.
* print.c (print_object): Get rid of impossible forwarding objects.
2010-04-19 21:50:52 -04:00
Dan Nicolaescu
42a2c62292 Remove extern errno declarations.
* xterm.c:
* xrdb.c:
* w32term.c:
* unexec.c:
* unexaix.c:
* sysdep.c:
* process.c:
* lread.c:
* keyboard.c:
* floatfns.c:
* filelock.c:
* fileio.c:
* emacs.c (main):
* ecrt0.c:
* dispnew.c:
* callproc.c:
* buffer.c: Remove errno extern declarations.
* s/netbsd.h (NEED_ERRNO): Remove.

* movemail.c:
* etags.c:
* emacsclient.c: Remove extern errno declarations.
2010-04-01 20:10:33 -07:00
Stefan Monnier
855a0da7fd Get rid of the direct_output optimizations.
* keyboard.c (nonundocount): Remove extern declaration.
(command_loop_1): Remove brittle optimisation for cheap and common operations.
* xdisp.c (redisplay_internal): Don't bother checking
redisplay_performed_directly_p any more.
* sysdep.c (init_sys_modes): Don't call direct_output_forward_char any more.
* dispnew.c (redisplay_performed_directly_p)
(direct_output_for_insert, direct_output_forward_char):
* dispextern.h (redisplay_performed_directly_p)
(direct_output_for_insert, direct_output_forward_char): Remove.
* cmds.c (nonundocount): Make it static.
2010-03-31 00:14:08 -04:00
Dan Nicolaescu
df7734b220 Remove dead code dealing with POSIX_SIGNALS.
* atimer.c (set_alarm): Remove dead code, all USG systems define
POSIX_SIGNALS.
* data.c (arith_error): Likewise.
* keyboard.c (input_available_signal, handle_user_signal)
(interrupt_signal): Likewise.
* process.c (sigchld_handler): Likewise.
(create_process): Remove if 0 code.  Remove HPUX conditional when
!defined (POSIX_SIGNALS), it cannot be true.
* syssignal.h: Remove USG5_4 and USG conditionals when
!POSIX_SIGNALS, they cannot be true.
2010-03-22 12:51:59 -07:00