root/src/subshell/proxyfunc.c

/* [previous][next][first][last][top][bottom][index][help]  */

DEFINITIONS

This source file includes following definitions.
  1. subshell_get_cwd
  2. subshell_handle_cons_saver
  3. subshell_get_mainloop_quit
  4. subshell_set_mainloop_quit

   1 /*
   2    Proxy functions for getting access to public variables into 'filemanager' module.
   3 
   4    Copyright (C) 2015-2025
   5    Free Software Foundation, Inc.
   6 
   7    Written by:
   8    Slava Zanko <slavazanko@gmail.com>, 2015.
   9 
  10    This file is part of the Midnight Commander.
  11 
  12    The Midnight Commander is free software: you can redistribute it
  13    and/or modify it under the terms of the GNU General Public License as
  14    published by the Free Software Foundation, either version 3 of the License,
  15    or (at your option) any later version.
  16 
  17    The Midnight Commander is distributed in the hope that it will be useful,
  18    but WITHOUT ANY WARRANTY; without even the implied warranty of
  19    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  20    GNU General Public License for more details.
  21 
  22    You should have received a copy of the GNU General Public License
  23    along with this program.  If not, see <https://www.gnu.org/licenses/>.
  24  */
  25 
  26 #include <config.h>
  27 
  28 #include <signal.h>  // kill()
  29 #include <sys/types.h>
  30 #include <sys/wait.h>  // waitpid()
  31 
  32 #include "lib/global.h"
  33 
  34 #include "lib/vfs/vfs.h"  // vfs_get_raw_current_dir()
  35 
  36 #include "src/setup.h"                    // quit
  37 #include "src/filemanager/filemanager.h"  // current_panel
  38 #include "src/consaver/cons.saver.h"      // handle_console()
  39 
  40 #include "internal.h"
  41 
  42 /*** global variables ****************************************************************************/
  43 
  44 /* path to X clipboard utility */
  45 
  46 /*** file scope macro definitions ****************************************************************/
  47 
  48 /*** file scope type declarations ****************************************************************/
  49 
  50 /*** file scope variables ************************************************************************/
  51 
  52 /* --------------------------------------------------------------------------------------------- */
  53 /*** file scope functions ************************************************************************/
  54 /* --------------------------------------------------------------------------------------------- */
  55 
  56 /* --------------------------------------------------------------------------------------------- */
  57 /*** public functions ****************************************************************************/
  58 /* --------------------------------------------------------------------------------------------- */
  59 
  60 const vfs_path_t *
  61 subshell_get_cwd (void)
     /* [previous][next][first][last][top][bottom][index][help]  */
  62 {
  63     if (mc_global.mc_run_mode == MC_RUN_FULL)
  64         return current_panel->cwd_vpath;
  65 
  66     return vfs_get_raw_current_dir ();
  67 }
  68 
  69 /* --------------------------------------------------------------------------------------------- */
  70 
  71 void
  72 subshell_handle_cons_saver (void)
     /* [previous][next][first][last][top][bottom][index][help]  */
  73 {
  74 #ifdef __linux__
  75     int status;
  76     pid_t pid;
  77 
  78     pid = waitpid (cons_saver_pid, &status, WUNTRACED | WNOHANG);
  79 
  80     if (pid == cons_saver_pid)
  81     {
  82 
  83         if (WIFSTOPPED (status))
  84             // Someone has stopped cons.saver - restart it
  85             kill (pid, SIGCONT);
  86         else
  87         {
  88             // cons.saver has died - disable console saving
  89             handle_console (CONSOLE_DONE);
  90             mc_global.tty.console_flag = '\0';
  91         }
  92     }
  93 #endif
  94 }
  95 
  96 /* --------------------------------------------------------------------------------------------- */
  97 
  98 int
  99 subshell_get_mainloop_quit (void)
     /* [previous][next][first][last][top][bottom][index][help]  */
 100 {
 101     return quit;
 102 }
 103 
 104 /* --------------------------------------------------------------------------------------------- */
 105 
 106 void
 107 subshell_set_mainloop_quit (const int param_quit)
     /* [previous][next][first][last][top][bottom][index][help]  */
 108 {
 109     quit = param_quit;
 110 }
 111 
 112 /* --------------------------------------------------------------------------------------------- */

/* [previous][next][first][last][top][bottom][index][help]  */