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-2024
   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 <http://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     }
  94 #endif /* __linux__ */
  95 }
  96 
  97 /* --------------------------------------------------------------------------------------------- */
  98 
  99 int
 100 subshell_get_mainloop_quit (void)
     /* [previous][next][first][last][top][bottom][index][help]  */
 101 {
 102     return quit;
 103 }
 104 
 105 /* --------------------------------------------------------------------------------------------- */
 106 
 107 void
 108 subshell_set_mainloop_quit (const int param_quit)
     /* [previous][next][first][last][top][bottom][index][help]  */
 109 {
 110     quit = param_quit;
 111 }
 112 
 113 /* --------------------------------------------------------------------------------------------- */

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