From c9443dd798435ba3d2b2b59a79c416f25beb150b Mon Sep 17 00:00:00 2001
From: Sebastian Gniazdowski <sgniazdowski@gmail.com>
Date: Tue, 16 Feb 2021 16:55:48 -0600
Subject: Move MC_SID setup to main.c
---
src/main.c | 21 +++++++++++++++++++++
src/subshell/common.c | 12 ------------
2 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/src/main.c b/src/main.c
index d691bcb2a..7382e34d7 100644
a
|
b
|
check_sid (void) |
240 | 240 | return (old_sid != my_sid); |
241 | 241 | } |
242 | 242 | |
| 243 | static void |
| 244 | set_sid_env_var(void) |
| 245 | { |
| 246 | pid_t mc_sid; |
| 247 | |
| 248 | /* Get a fresh terminal session */ |
| 249 | setsid (); |
| 250 | |
| 251 | /* Set MC_SID to prevent running one mc from another */ |
| 252 | mc_sid = getsid (0); |
| 253 | if (mc_sid != -1) |
| 254 | { |
| 255 | char sid_str[BUF_SMALL]; |
| 256 | |
| 257 | g_snprintf (sid_str, sizeof (sid_str), "MC_SID=%ld", (long) mc_sid); |
| 258 | putenv (g_strdup (sid_str)); |
| 259 | } |
| 260 | } |
| 261 | |
243 | 262 | /* --------------------------------------------------------------------------------------------- */ |
244 | 263 | /*** public functions ****************************************************************************/ |
245 | 264 | /* --------------------------------------------------------------------------------------------- */ |
… |
… |
main (int argc, char *argv[]) |
264 | 283 | /* do this before args parsing */ |
265 | 284 | str_init_strings (NULL); |
266 | 285 | |
| 286 | set_sid_env_var(); |
| 287 | |
267 | 288 | mc_setup_run_mode (argv); /* are we mc? editor? viewer? etc... */ |
268 | 289 | |
269 | 290 | if (!mc_args_parse (&argc, &argv, "mc", &mcerror)) |
diff --git a/src/subshell/common.c b/src/subshell/common.c
index cb8bbe3f1..97cd78117 100644
a
|
b
|
init_subshell_child (const char *pty_name) |
272 | 272 | { |
273 | 273 | char *init_file = NULL; |
274 | 274 | char *putenv_str = NULL; |
275 | | pid_t mc_sid; |
276 | 275 | |
277 | 276 | (void) pty_name; |
278 | | setsid (); /* Get a fresh terminal session */ |
279 | 277 | |
280 | 278 | /* Make sure that it has become our controlling terminal */ |
281 | 279 | |
… |
… |
init_subshell_child (const char *pty_name) |
309 | 307 | (void) ret; |
310 | 308 | } |
311 | 309 | |
312 | | /* Set MC_SID to prevent running one mc from another */ |
313 | | mc_sid = getsid (0); |
314 | | if (mc_sid != -1) |
315 | | { |
316 | | char sid_str[BUF_SMALL]; |
317 | | |
318 | | g_snprintf (sid_str, sizeof (sid_str), "MC_SID=%ld", (long) mc_sid); |
319 | | putenv (g_strdup (sid_str)); |
320 | | } |
321 | | |
322 | 310 | switch (mc_global.shell->type) |
323 | 311 | { |
324 | 312 | case SHELL_BASH: |