Mercurial > emacs
view lib-src/ntlib.h @ 110592:c06958da83b5
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.
author | Jan D <jan.h.d@swipnet.se> |
---|---|
date | Sun, 26 Sep 2010 18:20:01 +0200 |
parents | 68ca98ae70fb |
children | 417b1e4d63cd |
line wrap: on
line source
/* Utility and Unix shadow routines for GNU Emacs support programs on NT. Copyright (C) 1994, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ #include <pwd.h> #include <malloc.h> /* Include these headers now so we don't have to worry about include order dependencies in common source files. */ #include <direct.h> #include <io.h> #include <stdio.h> #ifdef sleep #undef sleep #endif void sleep (unsigned long seconds); char *getwd (char *dir); int getppid (void); char * getlogin (void); char * cuserid (char * s); unsigned getuid (void); unsigned getegid (void); unsigned getgid (void); int setuid (unsigned uid); int setegid (unsigned gid); char * getpass (const char * prompt); int fchown (int fd, unsigned uid, unsigned gid); /* redirect or undo interceptions created by config.h */ #undef access #define access _access #undef chdir #define chdir _chdir #undef chmod #define chmod _chmod #undef close #define close _close #undef creat #define creat _creat #undef ctime #undef dup #define dup _dup #undef dup2 #define dup2 _dup2 #undef fopen #undef mkdir #define mkdir _mkdir #undef mktemp #define mktemp _mktemp #undef open #define open _open #undef pipe #define pipe _pipe #undef read #define read _read #undef rename #undef rmdir #define rmdir _rmdir #undef unlink #define unlink _unlink #undef write #define write _write /* map to MSVC names */ #define execlp _execlp #define execvp _execvp #define fdopen _fdopen #ifndef fileno #define fileno _fileno #endif #define getcwd _getcwd #define getw _getw #define getpid _getpid #define isatty _isatty #define locking _locking #define logb _logb #define _longjmp longjmp #define lseek _lseek #define popen _popen #define pclose _pclose #define umask _umask #define utime _utime #define index strchr #define rindex strrchr /* Make standard winsock definitions available if needed. */ #undef _WINSOCKAPI_ #undef _WINSOCK_H /* end of ntlib.h */ /* arch-tag: 93444f66-7b98-4aa5-a5cd-01444094af28 (do not change this comment) */