1. 11 Jan, 2012 1 commit
  2. 09 May, 2011 1 commit
    • Eli Zaretskii's avatar
      Backport revisions... · 14fe7b53
      Eli Zaretskii authored
      Backport revisions 2011-04-24T05:30:24Z!eggert@cs.ucla.edu..2011-04-25T19:40:22Z!eggert@cs.ucla.edu (inclusive) from trunk (bug#8623)
      
      	The next log entry shows the actual changes by Paul Eggert.
      
       Fix a problem with aliasing and vector headers.
       GCC 4.6.0 optimizes based on type-based alias analysis.  For
       example, if b is of type struct buffer * and v of type struct
       Lisp_Vector *, then gcc -O2 was incorrectly assuming that &b->size
       != &v->size, and therefore "v->size = 1; b->size = 2; return
       v->size;" must therefore return 1.  This assumption is incorrect
       for Emacs, since it type-puns struct Lisp_Vector * with many other
       types.  To fix this problem, this patch adds a new type struct
       vector_header that documents the constraints on layout of vectors
       and pseudovectors, and helps optimizing compilers not get fooled
       by Emacs's type punning.  It also adds the macros XSETTYPED_PVECTYPE
       XSETTYPED_PSEUDOVECTOR, TYPED_PSEUDOVECTORP, for similar reasons.
       src/lisp.h (XVECTOR_SIZE): New convenience macro.  All previous uses of
       XVECTOR (foo)->size replaced to use this macro, to avoid the hassle
       of writing XVECTOR (foo)->header.size.
       src/lisp.h: Say "vectorlike header" rather than "vector header.
       (struct vectorlike_header): Rename from struct vector_header.
       (XVECTORLIKE_HEADER_SIZE): Renamed from XVECTOR_HEADER_SIZE.
       All uses changed.
       (XVECTOR_HEADER_SIZE): New macro, for use in XSETPSEUDOVECTOR.
       (XSETTYPED_PVECTYPE): New macro, specifying the name of the size
       member.
       (XSETPVECTYPE): Rewrite in terms of new macro.
       (XSETPVECTYPESIZE): New macro, specifying both type and size.
       This is a bit clearer, and further avoids the possibility of
       undesirable aliasing.
       (XSETTYPED_PSEUDOVECTOR): New macro, specifying the size.
       (XSETPSEUDOVECTOR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR
       and XVECTOR_HEADER_SIZE.
       (XSETSUBR): Rewrite in terms of XSETTYPED_PSEUDOVECTOR and XSIZE,
       since Lisp_Subr is a special case (no "next" field).
       (ASIZE): Rewrite in terms of XVECTOR_SIZE.
       (struct vector_header): New type.
       (TYPED_PSEUDOVECTORP): New macro, also specifying the C type of the
       object, to help avoid aliasing.
       (PSEUDOVECTORP): Rewrite in terms of TYPED_PSEUDOVECTORP.
       (SUBRP): Likewise, since Lisp_Subr is a special case.
       src/lisp.h (struct Lisp_Vector, struct Lisp_Char_Table):
       (struct Lisp_Sub_Char_Table, struct Lisp_Bool_Vector):
       (struct Lisp_Hash_Table): Combine first two members into a single
       struct vector_header member.  All uses of "size" and "next" members
       changed to be "header.size" and "header.next".
       src/buffer.h (struct buffer): Likewise.
       src/font.h (struct font_spec, struct font_entity, struct font): Likewise.
       src/frame.h (struct frame): Likewise.
       src/process.h (struct Lisp_Process): Likewise.
       src/termhooks.h (struct terminal): Likewise.
       src/window.c (struct save_window_data, struct saved_window): Likewise.
       src/window.h (struct window): Likewise.
       src/alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
       Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
       src/buffer.c (init_buffer_once): Likewise.
       src/lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
       special case.
       src/process.c (Fformat_network_address): Use local var for size,
       for brevity.
       src/fns.c (vector): Remove; this old hack is no longer needed.
       src/bytecode.c (exec_byte_code): Don't use XVECTOR before CHECK_VECTOR.
      14fe7b53
  3. 19 Mar, 2011 1 commit
  4. 02 Jan, 2011 1 commit
  5. 09 Nov, 2010 1 commit
    • Eli Zaretskii's avatar
      Fix 2010-05-05T22:14:15Z!lekktu@gmail.com. · 86520d8c
      Eli Zaretskii authored
       keyboard.c (kbd_buffer_nr_stored): Define only ifdef subprocesses.
       (kbd_buffer_store_event_hold, kbd_buffer_get_event)
       (tty_read_avail_input): Call kbd_buffer_nr_stored only ifdef
       subprocesses.  Use buffer_free only ifdef subprocesses.
       process.c (init_process) [subprocesses]: Init kbd_is_on_hold in
       the subprocesses version, not in the non-subprocesses one.
      86520d8c
  6. 04 Nov, 2010 3 commits
  7. 01 Nov, 2010 1 commit
    • Jan Djärv's avatar
      Backport fix for Bug#6571 from trunk. NOTE: May cause merge conflicts. · 3649d303
      Jan Djärv authored
      * src/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).
      
      * src/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.
      
      * src/process.h (hold_keyboard_input, unhold_keyboard_input)
      (kbd_on_hold_p): Declare.
      3649d303
  8. 30 Sep, 2010 1 commit
  9. 03 Jun, 2010 1 commit
  10. 13 Jan, 2010 1 commit
  11. 29 Dec, 2009 1 commit
  12. 03 Dec, 2009 2 commits
  13. 21 Nov, 2009 2 commits
    • Jan Djärv's avatar
      Use a select wrapper around the GLib event loop, thus taking into account GLib · 872870b2
      Jan Djärv authored
      timeouts and event sources.  This simplifies Gtk+-code a lot, and is needed
      for handling GConf death/restart.
      
      * xterm.c: #include xgselect.h.
      (x_initialize): Call xgselect_initialize.
      
      * xsettings.c (something_changedCB): C++ comments => C comments.
      (init_gconf): Do not deal with any GLib file descriptors, xg_select
      does that now.
      
      * gtkutil.c (xg_timer, xg_process_timeouts, xg_start_timer)
      (xg_stop_timer, menu_grab_callback_cnt, menu_grab_callback)
      (scroll_bar_button_cb): Remove.
      (create_menus): C++ comments => C comments. Don't bind grab-notify
      event.
      (xg_create_scroll_bar): Don't bind button-press-event and
      button-release-event.
      
      * process.c: Include xgselect.h if defined (USE_GTK) ||
      defined (HAVE_GCONF).
      (wait_reading_process_output): Call xg_select for the same condition.
      
      * xgselect.c (xg_select): New function to better integrate with
      GLib/Gtk event handling.  Needed if GConf daemon dies/restarts.
      
      * xgselect.h: New file, declare xg_select, xgselect_initialize.
      
      * Makefile.in (XOBJ): Add xgselect.o.
      872870b2
    • Andreas Schwab's avatar
      * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Remove · 62a6e103
      Andreas Schwab authored
      ignored second argument.  All callers changed.
      * regex.c (STRING_CHAR, STRING_CHAR_AND_LENGTH, RE_STRING_CHAR)
      (RE_STRING_CHAR_AND_LENGTH): Likewise.
      * xdisp.c (string_char_and_length): Likewise.
      62a6e103
  14. 11 Nov, 2009 1 commit
    • Dan Nicolaescu's avatar
      * process.c (ifflag_def): Make flag_sym constant. · 91433552
      Dan Nicolaescu authored
      (Fnetwork_interface_info): Use a constant pointer.
      (ifflag_table):
      * xfns.c (cursor_bits):
      * xdisp.c (power_letter):
      * termcap.c (speeds, esctab):
      * sysdep.c (baud_convert):
      * keyboard.c (lispy_accent_codes, modifier_names):
      * image.c (xbm_format, xpm_format, pbm_format, png_format)
      (jpeg_format, tiff_format, gif_format, svg_format)
      (interlace_start, interlace_increment, gs_format):
      * gtkutil.c (separator_names):
      * fringe.c (swap_nibble):
      * fns.c (base64_value_to_char, base64_char_to_value):
      * fileio.c (make_temp_name_tbl):
      * coding.c (suffixes): Make constant.
      91433552
  15. 10 Nov, 2009 1 commit
    • Jan Djärv's avatar
      Bug #4574. Common code for file/font dialog. Handle timers with glib-timers. · e90292a9
      Jan Djärv authored
      * keyboard.h: Declare timer_check.
      
      * keyboard.c (timer_check_2): New function that does what the old
      timer_check did.
      (timer_check): Call timer_check_2 until -1 or a non-zero time is
      returned, i.e. don't return -1 with timers pending.
      
      * process.c: Remove extern declaration of timer_check.
      
      * xmenu.c (x_menu_wait_for_event): Remove code that did a timeout
      even if timer_check returned -1.
      
      * gtkutil.c (xg_dialog_response_cb): data is now a struct xg_dialog_data
      (pop_down_dialog): Destroy widget (if any), cancel timer and unref
      the event loop.
      (xg_maybe_add_timer, xg_dialog_run): New functions (bug #4574).
      (xg_get_file_name, xg_get_font_name): Call xg_dialog_run (bug #4574).
      Destroy the dialog after xg_dialog_run.
      e90292a9
  16. 06 Nov, 2009 2 commits
    • Dan Nicolaescu's avatar
      * xterm.c (syms_of_xterm): · d67b4f80
      Dan Nicolaescu authored
      * xselect.c (syms_of_xselect):
      * xmenu.c (syms_of_xmenu):
      * xfns.c (syms_of_xfns):
      * xfaces.c (syms_of_xfaces):
      * xdisp.c (syms_of_xdisp):
      * window.c (syms_of_window):
      * w32fns.c (syms_of_w32fns):
      * undo.c (syms_of_undo):
      * textprop.c (syms_of_textprop):
      * terminal.c (syms_of_terminal):
      * syntax.c (syms_of_syntax):
      * sound.c (syms_of_sound):
      * search.c (syms_of_search):
      * print.c (syms_of_print):
      * minibuf.c (syms_of_minibuf):
      * macros.c (syms_of_macros):
      * keymap.c (syms_of_keymap, initial_define_key)
      (initial_define_lispy_key):
      * keyboard.c (syms_of_keyboard):
      * insdel.c (syms_of_insdel):
      * image.c (syms_of_image):
      * fringe.c (syms_of_fringe):
      * frame.c (syms_of_frame):
      * fontset.c (syms_of_fontset):
      * fns.c (syms_of_fns):
      * fns.c (syms_of_fns):
      * fileio.c (syms_of_fileio):
      * fileio.c (syms_of_fileio):
      * eval.c (syms_of_eval):
      * doc.c (syms_of_doc):
      * dispnew.c (syms_of_display):
      * dired.c (syms_of_dired):
      * dbusbind.c (syms_of_dbusbind):
      * data.c (syms_of_data):
      * composite.c (syms_of_composite):
      * coding.c (syms_of_coding):
      * cmds.c (syms_of_cmds):
      * charset.c (define_charset_internal, syms_of_character):
      * ccl.c (syms_of_ccl):
      * category.c (syms_of_category, init_category_once):
      * casetab.c (syms_of_casetab):
      * casefiddle.c (syms_of_casefiddle):
      * callint.c (syms_of_callint):
      * bytecode.c (syms_of_bytecode):
      * buffer.c (keys_of_buffer, syms_of_buffer):
      * alloc.c (syms_of_alloc):
      * process.c (syms_of_process, init_process):
      * lread.c (syms_of_lread, init_obarray):
      * font.c (build_style_table):
      * emacs.c (syms_of_emacs, main): Replace calls to intern with
      intern_c_string, calls to make_pure_string with
      make_pure_c_string.  Use pure_cons instead of Fcons.
      
      * process.c (socket_options): Make it const.
      (set_socket_option, init_process): Use a const pointer.
      
      * lread.c (intern_c_string): New function.
      (defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
      (defvar_int): Uset it.  Make the name const char*.
      
      * font.c (struct table_entry): Remove unused member.  Make NAMES
      constant.
      (weight_table, slant_table, width_table): Make constant.
      
      * emacs.c (struct standard_args): Make name and longname constant.
      d67b4f80
    • Dan Nicolaescu's avatar
      * process.c (socket_options): Make it const. · 5e2327cf
      Dan Nicolaescu authored
      (set_socket_option, init_process): Use a const pointer.
      
      * lread.c (intern_c_string): New function.
      (defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
      (defvar_int): Uset it.  Make the name const char*.
      
      * lisp.h (defvar_kboard, defvar_lisp, defvar_lisp_nopro, defvar_bool)
      (defvar_int): Update prototypes.
      (DEFUN, EXFUN): Support for prototypes is now required.
      (intern_c_string): New prototype.
      (struct Lisp_Subr): Make symbol_name constant.
      
      * font.c (struct table_entry): Remove unused member.  Make NAMES
      constant.
      (weight_table, slant_table, width_table): Make constant.
      
      * emacs.c (struct standard_args): Make name and longname constant.
      
      * character.h (DEFSYM): Use intern_c_string.
      5e2327cf
  17. 19 Oct, 2009 2 commits
    • Dan Nicolaescu's avatar
      * process.c (create_pty): Remove conditionals for no longer · 019d2c4c
      Dan Nicolaescu authored
      supported systems: UNIPLUS and RTU.
      019d2c4c
    • Dan Nicolaescu's avatar
      * alloc.c: Do not define struct catchtag. · d7306fe6
      Dan Nicolaescu authored
      * eval.c: Move struct catchtag definition ...
      * lisp.h: ... here.
      
      * image.c: Move png.h #include earlier to avoid warnings.
      
      * xterm.c:
      * xsmfns.c:
      * xselect.c:
      * xrdb.c:
      * xmenu.c:
      * xftfont.c:
      * xfont.c:
      * xfns.c:
      * xfaces.c:
      * xdisp.c:
      * window.c:
      * widget.c:
      * w32xfns.c:
      * w32uniscribe.c:
      * w32term.c:
      * w32select.c:
      * w32reg.c:
      * w32proc.c:
      * w32menu.c:
      * w32inevt.c:
      * w32heap.c:
      * w32font.c:
      * w32fns.c:
      * w32console.c:
      * w32.c:
      * w16select.c:
      * vm-limit.c:
      * unexsol.c:
      * unexec.c:
      * unexcw.c:
      * unexaix.c:
      * undo.c:
      * tparam.c:
      * textprop.c:
      * terminfo.c:
      * terminal.c:
      * termcap.c:
      * term.c:
      * syntax.c:
      * sound.c:
      * sheap.c:
      * search.c:
      * scroll.c:
      * region-cache.c:
      * regex.c:
      * ralloc.c:
      * process.c:
      * print.c:
      * msdos.c:
      * minibuf.c:
      * menu.c:
      * marker.c:
      * macros.c:
      * keymap.c:
      * keyboard.c:
      * intervals.c:
      * insdel.c:
      * indent.c:
      * gtkutil.c:
      * ftxfont.c:
      * ftfont.c:
      * fringe.c:
      * frame.c:
      * fontset.c:
      * font.c:
      * fns.c:
      * floatfns.c:
      * filelock.c:
      * fileio.c:
      * emacs.c:
      * editfns.c:
      * dosfns.c:
      * doprnt.c:
      * doc.c:
      * dispnew.c:
      * dired.c:
      * dbusbind.c:
      * data.c:
      * composite.c:
      * coding.c:
      * cmds.c:
      * cm.c:
      * chartab.c:
      * charset.c:
      * character.c:
      * ccl.c:
      * category.c:
      * casetab.c:
      * casefiddle.c:
      * callproc.c:
      * callint.c:
      * bytecode.c:
      * buffer.c:
      * atimer.c: Include setjmp.h.  (Bug#4643)
      
      * xlwmenu.c:
      * lwlib.c:
      * lwlib-utils.c:
      * lwlib-Xm.c:
      * lwlib-Xlw.c:
      * lwlib-Xaw.c: Include setjmp.h.
      d7306fe6
  18. 13 Oct, 2009 1 commit
  19. 30 Aug, 2009 2 commits
  20. 27 Aug, 2009 1 commit
  21. 17 Aug, 2009 1 commit
    • Chong Yidong's avatar
      * process.c (status_notify): Don't perform redisplay. · e42bdf01
      Chong Yidong authored
      (Fdelete_process, list_processes_1, process_send_signal):
      Expliticly perform redisplay.
      (wait_reading_process_output): Always check process status, but
      don't perform redisplay unless DO_DISPLAY is non-zero (Bug#2930).
      e42bdf01
  22. 14 Aug, 2009 1 commit
  23. 13 Aug, 2009 1 commit
    • Nick Roberts's avatar
      (create_pty): New function. · 850d0752
      Nick Roberts authored
      (Fstart_process): Use it to allow Emacs to just associate a pty
      with the buffer.  See associated change in gdb-mi.el.
      (list_processes_1): Deal with no program name.
      (start_process_unwind): Use pid == -2 to mean no process.
      850d0752
  24. 18 Jul, 2009 1 commit
  25. 28 Jun, 2009 2 commits
  26. 20 Jun, 2009 1 commit
  27. 15 Jun, 2009 1 commit
  28. 09 Jun, 2009 1 commit
  29. 02 May, 2009 1 commit
  30. 29 Apr, 2009 1 commit
  31. 28 Apr, 2009 1 commit
  32. 23 Feb, 2009 1 commit