aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authordickmao2021-05-13 15:21:53 +0200
committerLars Ingebrigtsen2021-05-13 15:22:01 +0200
commit5be26b43f441e429dadbf7c8beccb351a84f1275 (patch)
treebcfe58ae897cb1962890527509b6d9f8cbeb8217 /src
parent1aaceec93173fd98c25dfe282b2fa2030ccf14f0 (diff)
downloademacs-5be26b43f441e429dadbf7c8beccb351a84f1275.tar.gz
emacs-5be26b43f441e429dadbf7c8beccb351a84f1275.zip
Process sentinels need to work under X and commandline
* src/process.c (add_non_keyboard_read_fd): Make this a public function. (add_process_read_fd): Fold old, static add_non_keyboard_read_fd guts into here. * src/xsmfns.c (ice_conn_watch_CB): Call add_non_keyboard_read_fd (bug#43834).
Diffstat (limited to 'src')
-rw-r--r--src/process.c15
-rw-r--r--src/process.h1
-rw-r--r--src/xsmfns.c2
3 files changed, 10 insertions, 8 deletions
diff --git a/src/process.c b/src/process.c
index 84e301a87a5..47a2a6f1a31 100644
--- a/src/process.c
+++ b/src/process.c
@@ -473,8 +473,15 @@ add_read_fd (int fd, fd_callback func, void *data)
473 fd_callback_info[fd].data = data; 473 fd_callback_info[fd].data = data;
474} 474}
475 475
476void
477add_non_keyboard_read_fd (int fd, fd_callback func, void *data)
478{
479 add_read_fd(fd, func, data);
480 fd_callback_info[fd].flags &= ~KEYBOARD_FD;
481}
482
476static void 483static void
477add_non_keyboard_read_fd (int fd) 484add_process_read_fd (int fd)
478{ 485{
479 eassert (fd >= 0 && fd < FD_SETSIZE); 486 eassert (fd >= 0 && fd < FD_SETSIZE);
480 eassert (fd_callback_info[fd].func == NULL); 487 eassert (fd_callback_info[fd].func == NULL);
@@ -483,12 +490,6 @@ add_non_keyboard_read_fd (int fd)
483 fd_callback_info[fd].flags |= FOR_READ; 490 fd_callback_info[fd].flags |= FOR_READ;
484 if (fd > max_desc) 491 if (fd > max_desc)
485 max_desc = fd; 492 max_desc = fd;
486}
487
488static void
489add_process_read_fd (int fd)
490{
491 add_non_keyboard_read_fd (fd);
492 eassert (0 <= fd && fd < FD_SETSIZE); 493 eassert (0 <= fd && fd < FD_SETSIZE);
493 fd_callback_info[fd].flags |= PROCESS_FD; 494 fd_callback_info[fd].flags |= PROCESS_FD;
494} 495}
diff --git a/src/process.h b/src/process.h
index d041ada5867..0890f253a40 100644
--- a/src/process.h
+++ b/src/process.h
@@ -284,6 +284,7 @@ extern bool kbd_on_hold_p (void);
284typedef void (*fd_callback) (int fd, void *data); 284typedef void (*fd_callback) (int fd, void *data);
285 285
286extern void add_read_fd (int fd, fd_callback func, void *data); 286extern void add_read_fd (int fd, fd_callback func, void *data);
287extern void add_non_keyboard_read_fd (int fd, fd_callback func, void *data);
287extern void delete_read_fd (int fd); 288extern void delete_read_fd (int fd);
288extern void add_write_fd (int fd, fd_callback func, void *data); 289extern void add_write_fd (int fd, fd_callback func, void *data);
289extern void delete_write_fd (int fd); 290extern void delete_write_fd (int fd);
diff --git a/src/xsmfns.c b/src/xsmfns.c
index 10565a4b25f..ddb86d82fe1 100644
--- a/src/xsmfns.c
+++ b/src/xsmfns.c
@@ -357,7 +357,7 @@ ice_conn_watch_CB (IceConn iceConn, IcePointer clientData,
357 } 357 }
358 358
359 ice_fd = IceConnectionNumber (iceConn); 359 ice_fd = IceConnectionNumber (iceConn);
360 add_read_fd (ice_fd, x_session_check_input, NULL); 360 add_non_keyboard_read_fd (ice_fd, x_session_check_input, NULL);
361} 361}
362 362
363/* Create the client leader window. */ 363/* Create the client leader window. */