1. 17 Jun, 2012 1 commit
    • Troels Nielsen's avatar
      Ensure correct ordering of process writes. · 20ca2e94
      Troels Nielsen authored
      * process.c (make_process): Initialize write_queue.
      (write_queue_push, write_queue_pop): New functions.
      (send_process): Use them to maintain correct ordering of process writes.
      
      Fixes: debbugs:10815
      20ca2e94
  2. 22 Apr, 2012 1 commit
  3. 09 Apr, 2012 1 commit
    • Ted Zlatanov's avatar
      Limit number of GnuTLS handshakes per connection. · a18ecafa
      Ted Zlatanov authored
      * gnutls.c (gnutls_log_function2i): Convenience log function.
      (emacs_gnutls_read): Use new log functions,
      `gnutls_handshakes_tried' process member, and
      `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
      attempts per process (connection).
      
      * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.  Add
      convenience `GNUTLS_LOG2i' macro.
      
      * process.c (make_process):
      * process.h: Add integer `gnutls_handshakes_tried' member to
      process struct.
      a18ecafa
  4. 11 Jan, 2012 1 commit
  5. 05 Jan, 2012 1 commit
  6. 18 Jul, 2011 1 commit
  7. 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
  8. 25 Apr, 2011 2 commits
    • Paul Eggert's avatar
      * lisp.h: Say "vectorlike header" rather than "vector header. · b102ceb1
      Paul Eggert authored
      (struct vectorlike_header): Rename from struct vector_header.
      (XVECTORLIKE_HEADER_SIZE): Renamed from XVECTOR_HEADER_SIZE.
      All uses changed.
      b102ceb1
    • Paul Eggert's avatar
      lisp.h: Fix a problem with aliasing and vector headers. · eab3844f
      Paul Eggert authored
      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.
      * 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.
      (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.
      * 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".
      * buffer.h (struct buffer): Likewise.
      * font.h (struct font_spec, struct font_entity, struct font): Likewise.
      * frame.h (struct frame): Likewise.
      * process.h (struct Lisp_Process): Likewise.
      * termhooks.h (struct terminal): Likewise.
      * window.c (struct save_window_data, struct saved_window): Likewise.
      * window.h (struct window): Likewise.
      * alloc.c (allocate_buffer, Fmake_bool_vector, allocate_pseudovector):
      Use XSETPVECTYPESIZE, not XSETPVECTYPE, to avoid aliasing problems.
      * buffer.c (init_buffer_once): Likewise.
      * lread.c (defsubr): Use XSETTYPED_PVECTYPE, since Lisp_Subr is a
      special case.
      * process.c (Fformat_network_address): Use local var for size,
      for brevity.
      eab3844f
  9. 14 Apr, 2011 1 commit
    • Paul Eggert's avatar
      * process.c: Make symbols static if they're not exported. · 40ccffa6
      Paul Eggert authored
      (process_tick, update_tick, create_process, chan_process):
      (Vprocess_alist, proc_buffered_char, datagram_access):
      (fd_callback_data, send_process_frame, process_sent_to): Now static.
      (deactivate_process): Mark defn as static, as well as decl.
      * lisp.h (create_process): Remove decl.
      * process.h (chan_process, Vprocess_alist): Remove decls.
      40ccffa6
  10. 11 Apr, 2011 1 commit
    • Paul Eggert's avatar
      Declare Lisp_Object Q* variables to be 'static' if not exproted. · 955cbe7b
      Paul Eggert authored
      This makes it easier for human readers (and static analyzers)
      to see whether these variables are used from other modules.
      * alloc.c, buffer.c, bytecode.c, callint.c, casetab.c, category.c:
      * ccl.c, character.c, charset.c, cmds.c, coding.c, composite.c:
      * data.c, dbusbind.c, dired.c, editfns.c, eval.c, fileio.c, fns.c:
      * font.c, frame.c, fringe.c, ftfont.c, image.c, keyboard.c, keymap.c:
      * lread.c, macros.c, minibuf.c, print.c, process.c, search.c:
      * sound.c, syntax.c, textprop.c, window.c, xdisp.c, xfaces.c, xfns.c:
      * xmenu.c, xselect.c:
      Declare Q* vars static if they are not used in other modules.
      * ccl.h, character.h, charset.h, coding.h, composite.h, font.h:
      * frame.h, intervals.h, keyboard.h, lisp.h, process.h, syntax.h:
      Remove decls of unexported vars.
      * keyboard.h (EVENT_HEAD_UNMODIFIED): Remove now-unused macro.
      955cbe7b
  11. 25 Jan, 2011 1 commit
  12. 15 Jan, 2011 1 commit
  13. 09 Jan, 2011 1 commit
  14. 02 Jan, 2011 1 commit
  15. 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
  16. 29 Sep, 2010 1 commit
  17. 27 Sep, 2010 1 commit
  18. 26 Sep, 2010 2 commits
    • Jan D's avatar
      Add fd handling with callbacks to select, dbus needs it for async operation. · 3fad2ad2
      Jan D authored
      * 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.
      3fad2ad2
    • Ted Zlatanov's avatar
      Set up GnuTLS support. · 8af55556
      Ted Zlatanov authored
      * configure.in: Set up GnuTLS.
      
      * lisp/net/gnutls.el: GnuTLS glue code to set up a connection.
      
      * src/Makefile.in (LIBGNUTLS_LIBS, LIBGNUTLS_CFLAGS, ALL_CFLAGS)
      (obj, LIBES): Set up GnuTLS support.
      
      * src/config.in: Set up GnuTLS support.
      
      * src/emacs.c: Set up GnuTLS support and call syms_of_gnutls.
      
      * src/gnutls.c: The source code for GnuTLS support in Emacs.
      
      * src/gnutls.h: The GnuTLS glue for Emacs, macros and enums.
      
      * src/process.c (make_process, Fstart_process)
      (read_process_output, send_process): Set up GnuTLS support for
      process input/output file descriptors.
      
      * src/process.h: Set up GnuTLS support.
      8af55556
  19. 11 Aug, 2010 1 commit
    • Jan D's avatar
      Fix -Wwrite_strings in general and for Gtk+ specific code. · 42ca4633
      Jan D authored
      * callproc.c (synch_process_death): Make const.
      (Fcall_process): Make signame const.
      
      * emacs.c (main): Pass char[] to putenv instead of literal.
      
      * floatfns.c (matherr): Use a const char* variable for x->name.
      
      * font.c (font_open_by_name): Make name const.
      
      * font.h (font_open_by_name): Make name const.
      
      * gtkutil.c (get_utf8_string): Always return an allocated string.
      Parameter is const.
      (create_dialog, xg_create_one_menuitem, create_menus)
      (xg_item_label_same_p, xg_update_menu_item): Free result from
      get_utf8_string.
      (xg_separator_p, xg_item_label_same_p): label is const.
      
      * gtkutil.h: Replace widget_value with struct _widget_value.
      (enum button_type, struct _widget_value): Remove and use the one from
      keyboard.h.
      
      * keyboard.h (_widget_value): Add defined USE_GTK.  Replace Boolean
      with unsigned char and XtPointer with void *.
      
      * menu.c (Fx_popup_menu): error_name is const.
      
      * menu.h (w32_menu_show, ns_menu_show, xmenu_show): error parameter
      is const char **.
      
      * w32menu.c (w32_menu_show):
      * nsmenu.m (ns_menu_show): error parameter is const char **.
      
      * process.h (synch_process_death): Is const char*.
      
      * xmenu.c (Fx_popup_dialog): error_name is const char*.
      (xmenu_show): error parameter is const char **. pane_string is const
      char *.
      (button_names): Is const char *.
      (xdialog_show): error_name and pane_string is const.
      
      * xrdb.c (get_system_app): Make path const and use char *p for non-const
      char.
      
      * xselect.c (Fx_get_atom_name): Use char empty[] instead of literal "".
      
      * xsmfns.c (NOSPLASH_OPT): Change to char[].
      (smc_save_yourself_CB): Do xstrdup on all ->type and ->name for
      props.  Free them at the end.
      
      * xterm.c (emacs_class): New char[] for EMACS_CLASS.
      (xim_open_dpy, xim_initialize, xim_close_dpy): Use emacs_class.
      (x_term_init): Use char[] display_opt and name_opt instead of
      string literal. file is const char*.
      42ca4633
  20. 06 Aug, 2010 1 commit
    • Dan Nicolaescu's avatar
      Move declarations to header files. · 3ef1d108
      Dan Nicolaescu authored
      * src/keyboard.h (quit_char): Add declaration.
      * src/process.h (QCport, QCspeed, QCprocess, QCbytesize, QCstopbits)
      (QCparity, Qodd, Qeven, QCflowcontrol, Qhw, Qsw, QCsummary): Add
      declarations.
      * sysdep.c:
      * src/w32.c: Remove the above declarations.
      3ef1d108
  21. 07 Jul, 2010 1 commit
    • Jan D's avatar
      If kbd_buffer is becoming full, stop reading until it drains (Bug#6571). · cb768704
      Jan D authored
      * 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.
      cb768704
  22. 13 Jan, 2010 1 commit
  23. 08 Jan, 2009 1 commit
  24. 02 Jan, 2009 1 commit
  25. 19 Dec, 2008 1 commit
    • Dan Nicolaescu's avatar
      Reorganize implementation of Flist_system_processes and · 06e111a6
      Dan Nicolaescu authored
      Fsystem_process_attributes.  No functional changes.
      * process.c: Don't #include pwd.h, grp.h and limits.h.
      (Flist_system_processes): Just call list_system_processes.
      (Fsystem_process_attributes): Just call system_process_attributes.
      (procfs_list_system_processes, time_from_jiffies)
      (ltime_from_jiffies, get_up_time, procfs_ttyname, MAJOR, MINOR)
      (procfs_get_total_memory, procfs_system_process_attributes): Move ...
      
      * sysdep.c: ... here.  Include pwd.h, grp.h and limits.h.
      (list_system_processes): Rename from
      procfs_list_system_processes.  Enclose in #ifdef HAVE_PROCFS.
      Provide a do nothing implementation.
      (system_process_attributes): Rename from
      procfs_list_system_processes.
      (ltime_from_jiffies, get_up_time, procfs_ttyname, MAJOR, MINOR)
      (procfs_get_total_memory):  Enclose in #ifdef GNU_LINUX.
      
      * w32.c (list_system_processes): Rename from
      w32_list_system_processes.
      (system_process_attributes): Rename from
      w32_system_process_attributes.
      
      * s/gnu-linux.h (LISTPROC, PROCATTR): Remove.
      
      * process.h (w32_list_system_processes)
      (w32_system_process_attributes): Remove.
      (list_system_processes, system_process_attributes): New
      prototypes.
      
      * config.nt (LISTPROC, PROCATTR): Remove.
      06e111a6
  26. 09 Aug, 2008 1 commit
  27. 31 Jul, 2008 1 commit
    • Dan Nicolaescu's avatar
      * bitmaps/README: · 7c2fb837
      Dan Nicolaescu authored
      * xfns.c:
      * termcap.c:
      * term.c:
      * syswait.h:
      * systty.h:
      * systime.h:
      * syssignal.h:
      * sysdep.c:
      * process.h:
      * process.c:
      * print.c:
      * ndir.h:
      * lread.c:
      * keyboard.c:
      * getpagesize.h:
      * floatfns.c:
      * fileio.c:
      * emacs.c:
      * doc.c:
      * dispnew.c:
      * dired.c:
      * data.c:
      * callproc.c:
      * buffer.c:
      * README:
      * Makefile.in:
      * s/template.h:
      * s/msdos.h:
      * m/vax.h: Remove VMS support.
      * s/vms.h:
      * vlimit.h:
      * uaf.h:
      * temacs.opt:
      * param.h:
      * ioctl.h: Remove file.
      
      * descrip.mms:
      * compile.com: Remove file.
      * Create.c: Remove VMS support.
      
      * message.el (Module):
      
      * gnus-start.el (Module):
      
      * gnus-registry.el (Module):
      
      * textmodes/texinfmt.el:
      * nxml/nxml-enc.el:
      * mail/feedmail.el:
      * international/mule.el:
      * international/latexenc.el:
      * emulation/viper-util.el:
      * emulation/viper-init.el:
      * emulation/viper-ex.el:
      * emacs-lisp/bytecomp.el:
      * version.el:
      * subr.el:
      * startup.el:
      * sort.el:
      * shadowfile.el:
      * recentf.el:
      * printing.el:
      * paths.el:
      * minibuffer.el:
      * ls-lisp.el:
      * loadup.el:
      * hippie-exp.el:
      * finder.el:
      * files.el:
      * ediff-util.el:
      * ediff-ptch.el:
      * ediff-init.el:
      * ediff-diff.el:
      * dired.el:
      * dired-aux.el:
      * cus-edit.el:
      * bindings.el:
      * arc-mode.el:
      * add-log.el: Remove VMS support.
      * obsolete/vmsproc.el:
      * obsolete/vms-pmail.el:
      * obsolete/vms-patch.el: Remove file.
      
      * etags.c:
      * emacsclient.c: Remove VMS support.
      
      * termcap.src: Remove file.
      * README:
      * PROBLEMS:
      * MACHINES: Remove VMS info.
      
      * ediff.texi: Remove VMS support.
      
      * os.texi:
      * intro.texi:
      * files.texi: Remove VMS support.
      
      * emacs.texi: Remove VMS support.
      
      * make-dist:
      * README: Remove VMS support.
      * vms: Remove directory.
      7c2fb837
  28. 13 Jun, 2008 1 commit
    • Glenn Morris's avatar
      Daniel Engeler <engeler at gmail.com> · d888760c
      Glenn Morris authored
      These changes add serial port access.
      * process.c: Add HAVE_SERIAL.
      (Fdelete_process, Fprocess_status, Fset_process_buffer)
      (Fset_process_filter, Fset_process_sentinel, Fprocess_contact)
      (list_processes_1, select_wrapper, Fstop_process)
      (Fcontinue_process, Fprocess_send_eof, kill_buffer_processes)
      (status_notify): Modify to handle serial processes.
      [HAVE_SERIAL] (Fserial_process_configure)
      [HAVE_SERIAL] (make_serial_process_unwind, Fmake_serial_process):
      New functions.
      * process.h (struct Lisp_Process): Add `type'.
      * sysdep.c [HAVE_TERMIOS] (serial_open, serial_configure):
      New functions.
      * w32.c (_sys_read_ahead, sys_read, sys_write): Modify to handle serial ports.
      (serial_open, serial_configure) New functions.
      * w32.h: Add FILE_SERIAL.
      (struct _child_process): Add ovl_read, ovl_write.
      d888760c
  29. 15 May, 2008 1 commit
  30. 25 Mar, 2008 1 commit
    • Stefan Monnier's avatar
      * process.h (struct Lisp_Process): Remove filter_multibyte. · 5431bd6a
      Stefan Monnier authored
      * process.c (QCfilter_multibyte): Remove.
      (setup_process_coding_systems): Don't use filter_multibyte.
      (Fstart_process, Fmake_network_process): Don't set filter_multibyte.
      (read_process_output): Don't adjust multibyteness to filter_multibyte.
      (Fset_process_filter_multibyte): Change the coding-system to
      approximate the previous behavior.
      (Fprocess_filter_multibyte_p): Get the multibyteness straight from the
      coding-system.
      5431bd6a
  31. 08 Mar, 2008 2 commits
  32. 08 Jan, 2008 1 commit
  33. 02 Oct, 2007 1 commit
    • Stefan Monnier's avatar
      * window.h (struct window): · d0fdb6da
      Stefan Monnier authored
      * window.c (struct save_window_data, struct saved_window):
      * termhooks.h (struct terminal):
      * process.h (struct Lisp_Process):
      * frame.h (struct frame):
      * buffer.h (struct buffer):
      * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table)
      (struct Lisp_Bool_Vector, struct Lisp_Subr, struct Lisp_Hash_Table):
      The size field of (pseudo)vectors is now unsigned.
      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG): Simplify accordingly.
      d0fdb6da
  34. 08 Aug, 2007 1 commit
  35. 25 Jul, 2007 1 commit
  36. 12 Jul, 2007 1 commit
  37. 14 Jan, 2007 1 commit