summaryrefslogtreecommitdiffstats
path: root/src/vfs/shell/shell.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/vfs/shell/shell.c (renamed from src/vfs/fish/fish.c)652
1 files changed, 323 insertions, 329 deletions
diff --git a/src/vfs/fish/fish.c b/src/vfs/shell/shell.c
index ec71a41..74788d6 100644
--- a/src/vfs/fish/fish.c
+++ b/src/vfs/shell/shell.c
@@ -1,8 +1,8 @@
/*
- Virtual File System: FISH implementation for transferring files over
+ Virtual File System: SHELL implementation for transferring files over
shell connections.
- Copyright (C) 1998-2023
+ Copyright (C) 1998-2024
Free Software Foundation, Inc.
Written by:
@@ -32,20 +32,20 @@
/**
* \file
- * \brief Source: Virtual File System: FISH implementation for transferring files over
+ * \brief Source: Virtual File System: SHELL implementation for transferring files over
* shell connections
* \author Pavel Machek
* \author Michal Svec
* \date 1998, 2000
*
* Derived from ftpfs.c
- * Read README.fish for protocol specification.
+ * Read README.shell for protocol specification.
*
* Syntax of path is: \verbatim sh://user@host[:Cr]/path \endverbatim
* where C means you want compressed connection,
* and r means you want to use rsh
*
- * Namespace: fish_vfs_ops exported.
+ * Namespace: shell_vfs_ops exported.
*/
/* Define this if your ssh can take -I option */
@@ -74,12 +74,12 @@
#include "lib/vfs/xdirentry.h"
#include "lib/vfs/gc.h" /* vfs_stamp_create */
-#include "fish.h"
-#include "fishdef.h"
+#include "shell.h"
+#include "shelldef.h"
/*** global variables ****************************************************************************/
-int fish_directory_timeout = 900;
+int shell_directory_timeout = 900;
/*** file scope macro definitions ****************************************************************/
@@ -87,8 +87,8 @@ int fish_directory_timeout = 900;
#define DO_OPEN 2
#define DO_FREE_RESOURCE 4
-#define FISH_FLAG_COMPRESSED 1
-#define FISH_FLAG_RSH 2
+#define SHELL_FLAG_COMPRESSED 1
+#define SHELL_FLAG_RSH 2
#define OPT_FLUSH 1
#define OPT_IGNORE_ERROR 2
@@ -108,16 +108,16 @@ int fish_directory_timeout = 900;
#define WANT_STRING 0x02
/* environment flags */
-#define FISH_HAVE_HEAD 1
-#define FISH_HAVE_SED 2
-#define FISH_HAVE_AWK 4
-#define FISH_HAVE_PERL 8
-#define FISH_HAVE_LSQ 16
-#define FISH_HAVE_DATE_MDYT 32
-#define FISH_HAVE_TAIL 64
+#define SHELL_HAVE_HEAD 1
+#define SHELL_HAVE_SED 2
+#define SHELL_HAVE_AWK 4
+#define SHELL_HAVE_PERL 8
+#define SHELL_HAVE_LSQ 16
+#define SHELL_HAVE_DATE_MDYT 32
+#define SHELL_HAVE_TAIL 64
-#define FISH_SUPER(super) ((fish_super_t *) (super))
-#define FISH_FILE_HANDLER(fh) ((fish_file_handler_t *) fh)
+#define SHELL_SUPER(super) ((shell_super_t *) (super))
+#define SHELL_FILE_HANDLER(fh) ((shell_file_handler_t *) fh)
/*** file scope type declarations ****************************************************************/
@@ -144,7 +144,7 @@ typedef struct
char *scr_info;
int host_flags;
GString *scr_env;
-} fish_super_t;
+} shell_super_t;
typedef struct
{
@@ -153,7 +153,7 @@ typedef struct
off_t got;
off_t total;
gboolean append;
-} fish_file_handler_t;
+} shell_file_handler_t;
/*** forward declarations (file scope functions) *************************************************/
@@ -161,15 +161,15 @@ typedef struct
static char reply_str[80];
-static struct vfs_s_subclass fish_subclass;
-static struct vfs_class *vfs_fish_ops = VFS_CLASS (&fish_subclass);
+static struct vfs_s_subclass shell_subclass;
+static struct vfs_class *vfs_shell_ops = VFS_CLASS (&shell_subclass);
/* --------------------------------------------------------------------------------------------- */
/*** file scope functions ************************************************************************/
/* --------------------------------------------------------------------------------------------- */
static void
-fish_set_blksize (struct stat *s)
+shell_set_blksize (struct stat *s)
{
#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
/* redefine block size */
@@ -180,12 +180,12 @@ fish_set_blksize (struct stat *s)
/* --------------------------------------------------------------------------------------------- */
static struct stat *
-fish_default_stat (struct vfs_class *me)
+shell_default_stat (struct vfs_class *me)
{
struct stat *s;
s = vfs_s_default_stat (me, S_IFDIR | 0755);
- fish_set_blksize (s);
+ shell_set_blksize (s);
vfs_adjust_stat (s);
return s;
@@ -194,15 +194,16 @@ fish_default_stat (struct vfs_class *me)
/* --------------------------------------------------------------------------------------------- */
static char *
-fish_load_script_from_file (const char *hostname, const char *script_name, const char *def_content)
+shell_load_script_from_file (const char *hostname, const char *script_name, const char *def_content)
{
char *scr_filename = NULL;
char *scr_content;
gsize scr_len = 0;
/* 1st: scan user directory */
- scr_filename = g_build_path (PATH_SEP_STR, mc_config_get_data_path (), FISH_PREFIX, hostname,
- script_name, (char *) NULL);
+ scr_filename =
+ g_build_path (PATH_SEP_STR, mc_config_get_data_path (), VFS_SHELL_PREFIX, hostname,
+ script_name, (char *) NULL);
/* silent about user dir */
g_file_get_contents (scr_filename, &scr_content, &scr_len, NULL);
g_free (scr_filename);
@@ -210,7 +211,7 @@ fish_load_script_from_file (const char *hostname, const char *script_name, const
if (scr_content == NULL)
{
scr_filename =
- g_build_path (PATH_SEP_STR, LIBEXECDIR, FISH_PREFIX, script_name, (char *) NULL);
+ g_build_path (PATH_SEP_STR, LIBEXECDIR, VFS_SHELL_PREFIX, script_name, (char *) NULL);
g_file_get_contents (scr_filename, &scr_content, &scr_len, NULL);
g_free (scr_filename);
}
@@ -224,7 +225,7 @@ fish_load_script_from_file (const char *hostname, const char *script_name, const
/* --------------------------------------------------------------------------------------------- */
static int
-fish_decode_reply (char *s, gboolean was_garbage)
+shell_decode_reply (char *s, gboolean was_garbage)
{
int code;
@@ -243,7 +244,7 @@ fish_decode_reply (char *s, gboolean was_garbage)
/* Returns a reply code, check /usr/include/arpa/ftp.h for possible values */
static int
-fish_get_reply (struct vfs_class *me, int sock, char *string_buf, int string_len)
+shell_get_reply (struct vfs_class *me, int sock, char *string_buf, int string_len)
{
char answer[BUF_1K];
gboolean was_garbage = FALSE;
@@ -258,7 +259,7 @@ fish_get_reply (struct vfs_class *me, int sock, char *string_buf, int string_len
}
if (strncmp (answer, "### ", 4) == 0)
- return fish_decode_reply (answer + 4, was_garbage ? 1 : 0);
+ return shell_decode_reply (answer + 4, was_garbage ? 1 : 0);
was_garbage = TRUE;
if (string_buf != NULL)
@@ -269,8 +270,8 @@ fish_get_reply (struct vfs_class *me, int sock, char *string_buf, int string_len
/* --------------------------------------------------------------------------------------------- */
static int
-fish_command (struct vfs_class *me, struct vfs_s_super *super, int wait_reply, const char *cmd,
- size_t cmd_len)
+shell_command (struct vfs_class *me, struct vfs_s_super *super, int wait_reply, const char *cmd,
+ size_t cmd_len)
{
ssize_t status;
FILE *logfile = me->logfile;
@@ -288,16 +289,16 @@ fish_command (struct vfs_class *me, struct vfs_s_super *super, int wait_reply, c
}
tty_enable_interrupt_key ();
- status = write (FISH_SUPER (super)->sockw, cmd, cmd_len);
+ status = write (SHELL_SUPER (super)->sockw, cmd, cmd_len);
tty_disable_interrupt_key ();
if (status < 0)
return TRANSIENT;
if (wait_reply)
- return fish_get_reply (me, FISH_SUPER (super)->sockr,
- (wait_reply & WANT_STRING) != 0 ? reply_str :
- NULL, sizeof (reply_str) - 1);
+ return shell_get_reply (me, SHELL_SUPER (super)->sockr,
+ (wait_reply & WANT_STRING) != 0 ? reply_str : NULL,
+ sizeof (reply_str) - 1);
return COMPLETE;
}
@@ -305,16 +306,16 @@ fish_command (struct vfs_class *me, struct vfs_s_super *super, int wait_reply, c
static int
G_GNUC_PRINTF (5, 0)
-fish_command_va (struct vfs_class *me, struct vfs_s_super *super, int wait_reply, const char *scr,
- const char *vars, va_list ap)
+shell_command_va (struct vfs_class *me, struct vfs_s_super *super, int wait_reply, const char *scr,
+ const char *vars, va_list ap)
{
int r;
GString *command;
- command = mc_g_string_dup (FISH_SUPER (super)->scr_env);
+ command = mc_g_string_dup (SHELL_SUPER (super)->scr_env);
g_string_append_vprintf (command, vars, ap);
g_string_append (command, scr);
- r = fish_command (me, super, wait_reply, command->str, command->len);
+ r = shell_command (me, super, wait_reply, command->str, command->len);
g_string_free (command, TRUE);
return r;
@@ -324,14 +325,14 @@ fish_command_va (struct vfs_class *me, struct vfs_s_super *super, int wait_reply
static int
G_GNUC_PRINTF (5, 6)
-fish_command_v (struct vfs_class *me, struct vfs_s_super *super, int wait_reply, const char *scr,
- const char *vars, ...)
+shell_command_v (struct vfs_class *me, struct vfs_s_super *super, int wait_reply, const char *scr,
+ const char *vars, ...)
{
int r;
va_list ap;
va_start (ap, vars);
- r = fish_command_va (me, super, wait_reply, scr, vars, ap);
+ r = shell_command_va (me, super, wait_reply, scr, vars, ap);
va_end (ap);
return r;
@@ -341,16 +342,16 @@ fish_command_v (struct vfs_class *me, struct vfs_s_super *super, int wait_reply,
static int
G_GNUC_PRINTF (5, 6)
-fish_send_command (struct vfs_class *me, struct vfs_s_super *super, int flags, const char *scr,
- const char *vars, ...)
+shell_send_command (struct vfs_class *me, struct vfs_s_super *super, int flags, const char *scr,
+ const char *vars, ...)
{
int r;
va_list ap;
va_start (ap, vars);
- r = fish_command_va (me, super, WAIT_REPLY, scr, vars, ap);
+ r = shell_command_va (me, super, WAIT_REPLY, scr, vars, ap);
va_end (ap);
- vfs_stamp_create (vfs_fish_ops, super);
+ vfs_stamp_create (vfs_shell_ops, super);
if (r != COMPLETE)
ERRNOR (E_REMOTE, -1);
@@ -363,11 +364,11 @@ fish_send_command (struct vfs_class *me, struct vfs_s_super *super, int flags, c
/* --------------------------------------------------------------------------------------------- */
static struct vfs_s_super *
-fish_new_archive (struct vfs_class *me)
+shell_new_archive (struct vfs_class *me)
{
- fish_super_t *arch;
+ shell_super_t *arch;
- arch = g_new0 (fish_super_t, 1);
+ arch = g_new0 (shell_super_t, 1);
arch->base.me = me;
return VFS_SUPER (arch);
@@ -376,48 +377,48 @@ fish_new_archive (struct vfs_class *me)
/* --------------------------------------------------------------------------------------------- */
static void
-fish_free_archive (struct vfs_class *me, struct vfs_s_super *super)
+shell_free_archive (struct vfs_class *me, struct vfs_s_super *super)
{
- fish_super_t *fish_super = FISH_SUPER (super);
+ shell_super_t *shell_super = SHELL_SUPER (super);
- if ((fish_super->sockw != -1) || (fish_super->sockr != -1))
- vfs_print_message (_("fish: Disconnecting from %s"), super->name ? super->name : "???");
+ if ((shell_super->sockw != -1) || (shell_super->sockr != -1))
+ vfs_print_message (_("shell: Disconnecting from %s"), super->name ? super->name : "???");
- if (fish_super->sockw != -1)
+ if (shell_super->sockw != -1)
{
- fish_command (me, super, NONE, "#BYE\nexit\n", -1);
- close (fish_super->sockw);
- fish_super->sockw = -1;
+ shell_command (me, super, NONE, "exit\n", -1);
+ close (shell_super->sockw);
+ shell_super->sockw = -1;
}
- if (fish_super->sockr != -1)
+ if (shell_super->sockr != -1)
{
- close (fish_super->sockr);
- fish_super->sockr = -1;
+ close (shell_super->sockr);
+ shell_super->sockr = -1;
}
- g_free (fish_super->scr_ls);
- g_free (fish_super->scr_exists);
- g_free (fish_super->scr_mkdir);
- g_free (fish_super->scr_unlink);
- g_free (fish_super->scr_chown);
- g_free (fish_super->scr_chmod);
- g_free (fish_super->scr_utime);
- g_free (fish_super->scr_rmdir);
- g_free (fish_super->scr_ln);
- g_free (fish_super->scr_mv);
- g_free (fish_super->scr_hardlink);
- g_free (fish_super->scr_get);
- g_free (fish_super->scr_send);
- g_free (fish_super->scr_append);
- g_free (fish_super->scr_info);
- g_string_free (fish_super->scr_env, TRUE);
+ g_free (shell_super->scr_ls);
+ g_free (shell_super->scr_exists);
+ g_free (shell_super->scr_mkdir);
+ g_free (shell_super->scr_unlink);
+ g_free (shell_super->scr_chown);
+ g_free (shell_super->scr_chmod);
+ g_free (shell_super->scr_utime);
+ g_free (shell_super->scr_rmdir);
+ g_free (shell_super->scr_ln);
+ g_free (shell_super->scr_mv);
+ g_free (shell_super->scr_hardlink);
+ g_free (shell_super->scr_get);
+ g_free (shell_super->scr_send);
+ g_free (shell_super->scr_append);
+ g_free (shell_super->scr_info);
+ g_string_free (shell_super->scr_env, TRUE);
}
/* --------------------------------------------------------------------------------------------- */
static void
-fish_pipeopen (struct vfs_s_super *super, const char *path, const char *argv[])
+shell_pipeopen (struct vfs_s_super *super, const char *path, const char *argv[])
{
int fileset1[2], fileset2[2];
int res;
@@ -433,9 +434,9 @@ fish_pipeopen (struct vfs_s_super *super, const char *path, const char *argv[])
vfs_die ("Cannot fork(): %m.");
/* We are the parent */
close (fileset1[0]);
- FISH_SUPER (super)->sockw = fileset1[1];
+ SHELL_SUPER (super)->sockw = fileset1[1];
close (fileset2[1]);
- FISH_SUPER (super)->sockr = fileset2[0];
+ SHELL_SUPER (super)->sockr = fileset2[0];
}
else
{
@@ -456,32 +457,32 @@ fish_pipeopen (struct vfs_s_super *super, const char *path, const char *argv[])
/* --------------------------------------------------------------------------------------------- */
static GString *
-fish_set_env (int flags)
+shell_set_env (int flags)
{
GString *ret;
ret = g_string_sized_new (256);
- if ((flags & FISH_HAVE_HEAD) != 0)
- g_string_append (ret, "FISH_HAVE_HEAD=1 export FISH_HAVE_HEAD; ");
+ if ((flags & SHELL_HAVE_HEAD) != 0)
+ g_string_append (ret, "SHELL_HAVE_HEAD=1 export SHELL_HAVE_HEAD; ");
- if ((flags & FISH_HAVE_SED) != 0)
- g_string_append (ret, "FISH_HAVE_SED=1 export FISH_HAVE_SED; ");
+ if ((flags & SHELL_HAVE_SED) != 0)
+ g_string_append (ret, "SHELL_HAVE_SED=1 export SHELL_HAVE_SED; ");
- if ((flags & FISH_HAVE_AWK) != 0)
- g_string_append (ret, "FISH_HAVE_AWK=1 export FISH_HAVE_AWK; ");
+ if ((flags & SHELL_HAVE_AWK) != 0)
+ g_string_append (ret, "SHELL_HAVE_AWK=1 export SHELL_HAVE_AWK; ");
- if ((flags & FISH_HAVE_PERL) != 0)
- g_string_append (ret, "FISH_HAVE_PERL=1 export FISH_HAVE_PERL; ");
+ if ((flags & SHELL_HAVE_PERL) != 0)
+ g_string_append (ret, "SHELL_HAVE_PERL=1 export SHELL_HAVE_PERL; ");
- if ((flags & FISH_HAVE_LSQ) != 0)
- g_string_append (ret, "FISH_HAVE_LSQ=1 export FISH_HAVE_LSQ; ");
+ if ((flags & SHELL_HAVE_LSQ) != 0)
+ g_string_append (ret, "SHELL_HAVE_LSQ=1 export SHELL_HAVE_LSQ; ");
- if ((flags & FISH_HAVE_DATE_MDYT) != 0)
- g_string_append (ret, "FISH_HAVE_DATE_MDYT=1 export FISH_HAVE_DATE_MDYT; ");
+ if ((flags & SHELL_HAVE_DATE_MDYT) != 0)
+ g_string_append (ret, "SHELL_HAVE_DATE_MDYT=1 export SHELL_HAVE_DATE_MDYT; ");
- if ((flags & FISH_HAVE_TAIL) != 0)
- g_string_append (ret, "FISH_HAVE_TAIL=1 export FISH_HAVE_TAIL; ");
+ if ((flags & SHELL_HAVE_TAIL) != 0)
+ g_string_append (ret, "SHELL_HAVE_TAIL=1 export SHELL_HAVE_TAIL; ");
return ret;
}
@@ -489,23 +490,23 @@ fish_set_env (int flags)
/* --------------------------------------------------------------------------------------------- */
static gboolean
-fish_info (struct vfs_class *me, struct vfs_s_super *super)
+shell_info (struct vfs_class *me, struct vfs_s_super *super)
{
- fish_super_t *fish_super = FISH_SUPER (super);
+ shell_super_t *shell_super = SHELL_SUPER (super);
- if (fish_command (me, super, NONE, fish_super->scr_info, -1) == COMPLETE)
+ if (shell_command (me, super, NONE, shell_super->scr_info, -1) == COMPLETE)
{
while (TRUE)
{
int res;
char buffer[BUF_8K] = "";
- res = vfs_s_get_line_interruptible (me, buffer, sizeof (buffer), fish_super->sockr);
+ res = vfs_s_get_line_interruptible (me, buffer, sizeof (buffer), shell_super->sockr);
if ((res == 0) || (res == EINTR))
ERRNOR (ECONNRESET, FALSE);
if (strncmp (buffer, "### ", 4) == 0)
break;
- fish_super->host_flags = atol (buffer);
+ shell_super->host_flags = atol (buffer);
}
return TRUE;
}
@@ -515,18 +516,18 @@ fish_info (struct vfs_class *me, struct vfs_s_super *super)
/* --------------------------------------------------------------------------------------------- */
static void
-fish_open_archive_pipeopen (struct vfs_s_super *super)
+shell_open_archive_pipeopen (struct vfs_s_super *super)
{
char gbuf[10];
const char *argv[10]; /* All of 10 is used now */
- const char *xsh = (super->path_element->port == FISH_FLAG_RSH ? "rsh" : "ssh");
+ const char *xsh = (super->path_element->port == SHELL_FLAG_RSH ? "rsh" : "ssh");
int i = 0;
argv[i++] = xsh;
- if (super->path_element->port == FISH_FLAG_COMPRESSED)
+ if (super->path_element->port == SHELL_FLAG_COMPRESSED)
argv[i++] = "-C";
- if (super->path_element->port > FISH_FLAG_RSH)
+ if (super->path_element->port > SHELL_FLAG_RSH)
{
argv[i++] = "-p";
g_snprintf (gbuf, sizeof (gbuf), "%d", super->path_element->port);
@@ -552,23 +553,23 @@ fish_open_archive_pipeopen (struct vfs_s_super *super)
}
argv[i++] = super->path_element->host;
- argv[i++] = "echo FISH:; /bin/sh";
+ argv[i++] = "echo SHELL:; /bin/sh";
argv[i++] = NULL;
- fish_pipeopen (super, xsh, argv);
+ shell_pipeopen (super, xsh, argv);
}
/* --------------------------------------------------------------------------------------------- */
static gboolean
-fish_open_archive_talk (struct vfs_class *me, struct vfs_s_super *super)
+shell_open_archive_talk (struct vfs_class *me, struct vfs_s_super *super)
{
- fish_super_t *fish_super = FISH_SUPER (super);
+ shell_super_t *shell_super = SHELL_SUPER (super);
char answer[2048];
- printf ("\n%s\n", _("fish: Waiting for initial line..."));
+ printf ("\n%s\n", _("shell: Waiting for initial line..."));
- if (vfs_s_get_line (me, fish_super->sockr, answer, sizeof (answer), ':') == 0)
+ if (vfs_s_get_line (me, shell_super->sockr, answer, sizeof (answer), ':') == 0)
return FALSE;
if (strstr (answer, "assword") != NULL)
@@ -584,7 +585,8 @@ fish_open_archive_talk (struct vfs_class *me, struct vfs_s_super *super)
{
char *p, *op;
- p = g_strdup_printf (_("fish: Password is required for %s"), super->path_element->user);
+ p = g_strdup_printf (_("shell: Password is required for %s"),
+ super->path_element->user);
op = vfs_get_password (p);
g_free (p);
if (op == NULL)
@@ -592,14 +594,14 @@ fish_open_archive_talk (struct vfs_class *me, struct vfs_s_super *super)
super->path_element->password = op;
}
- printf ("\n%s\n", _("fish: Sending password..."));
+ printf ("\n%s\n", _("shell: Sending password..."));
{
size_t str_len;
str_len = strlen (super->path_element->password);
- if ((write (fish_super.sockw, super->path_element->password, str_len) !=
- (ssize_t) str_len) || (write (fish_super->sockw, "\n", 1) != 1))
+ if ((write (shell_super.sockw, super->path_element->password, str_len) !=
+ (ssize_t) str_len) || (write (shell_super->sockw, "\n", 1) != 1))
return FALSE;
}
#endif
@@ -610,7 +612,7 @@ fish_open_archive_talk (struct vfs_class *me, struct vfs_s_super *super)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_open_archive_int (struct vfs_class *me, struct vfs_s_super *super)
+shell_open_archive_int (struct vfs_class *me, struct vfs_s_super *super)
{
gboolean ftalk;
@@ -618,10 +620,10 @@ fish_open_archive_int (struct vfs_class *me, struct vfs_s_super *super)
pre_exec ();
/* open pipe */
- fish_open_archive_pipeopen (super);
+ shell_open_archive_pipeopen (super);
/* Start talk with ssh-server (password prompt, etc ) */
- ftalk = fish_open_archive_talk (me, super);
+ ftalk = shell_open_archive_talk (me, super);
/* show panels */
post_exec ();
@@ -629,31 +631,18 @@ fish_open_archive_int (struct vfs_class *me, struct vfs_s_super *super)
if (!ftalk)
ERRNOR (E_PROTO, -1);
- vfs_print_message ("%s", _("fish: Sending initial line..."));
- /*
- * Run 'start_fish_server'. If it doesn't exist - no problem,
- * we'll talk directly to the shell.
- */
-
- if (fish_command
- (me, super, WAIT_REPLY, "#FISH\necho; start_fish_server 2>&1; echo '### 200'\n",
- -1) != COMPLETE)
- ERRNOR (E_PROTO, -1);
-
- vfs_print_message ("%s", _("fish: Handshaking version..."));
- if (fish_command (me, super, WAIT_REPLY, "#VER 0.0.3\necho '### 000'\n", -1) != COMPLETE)
- ERRNOR (E_PROTO, -1);
+ vfs_print_message ("%s", _("shell: Sending initial line..."));
/* Set up remote locale to C, otherwise dates cannot be recognized */
- if (fish_command
+ if (shell_command
(me, super, WAIT_REPLY,
"LANG=C LC_ALL=C LC_TIME=C; export LANG LC_ALL LC_TIME;\n" "echo '### 200'\n",
-1) != COMPLETE)
ERRNOR (E_PROTO, -1);
- vfs_print_message ("%s", _("fish: Getting host info..."));
- if (fish_info (me, super))
- FISH_SUPER (super)->scr_env = fish_set_env (FISH_SUPER (super)->host_flags);
+ vfs_print_message ("%s", _("shell: Getting host info..."));
+ if (shell_info (me, super))
+ SHELL_SUPER (super)->scr_env = shell_set_env (SHELL_SUPER (super)->host_flags);
#if 0
super->name =
@@ -663,7 +652,7 @@ fish_open_archive_int (struct vfs_class *me, struct vfs_s_super *super)
super->name = g_strdup (PATH_SEP_STR);
#endif
- super->root = vfs_s_new_inode (me, super, fish_default_stat (me));
+ super->root = vfs_s_new_inode (me, super, shell_default_stat (me));
return 0;
}
@@ -671,68 +660,72 @@ fish_open_archive_int (struct vfs_class *me, struct vfs_s_super *super)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_open_archive (struct vfs_s_super *super,
- const vfs_path_t * vpath, const vfs_path_element_t * vpath_element)
+shell_open_archive (struct vfs_s_super *super,
+ const vfs_path_t * vpath, const vfs_path_element_t * vpath_element)
{
- fish_super_t *fish_super = FISH_SUPER (super);
+ shell_super_t *shell_super = SHELL_SUPER (super);
(void) vpath;
super->path_element = vfs_path_element_clone (vpath_element);
if (strncmp (vpath_element->vfs_prefix, "rsh", 3) == 0)
- super->path_element->port = FISH_FLAG_RSH;
-
- fish_super->scr_ls =
- fish_load_script_from_file (super->path_element->host, FISH_LS_FILE, FISH_LS_DEF_CONTENT);
- fish_super->scr_exists =
- fish_load_script_from_file (super->path_element->host, FISH_EXISTS_FILE,
- FISH_EXISTS_DEF_CONTENT);
- fish_super->scr_mkdir =
- fish_load_script_from_file (super->path_element->host, FISH_MKDIR_FILE,
- FISH_MKDIR_DEF_CONTENT);
- fish_super->scr_unlink =
- fish_load_script_from_file (super->path_element->host, FISH_UNLINK_FILE,
- FISH_UNLINK_DEF_CONTENT);
- fish_super->scr_chown =
- fish_load_script_from_file (super->path_element->host, FISH_CHOWN_FILE,
- FISH_CHOWN_DEF_CONTENT);
- fish_super->scr_chmod =
- fish_load_script_from_file (super->path_element->host, FISH_CHMOD_FILE,
- FISH_CHMOD_DEF_CONTENT);
- fish_super->scr_utime =
- fish_load_script_from_file (super->path_element->host, FISH_UTIME_FILE,
- FISH_UTIME_DEF_CONTENT);
- fish_super->scr_rmdir =
- fish_load_script_from_file (super->path_element->host, FISH_RMDIR_FILE,
- FISH_RMDIR_DEF_CONTENT);
- fish_super->scr_ln =
- fish_load_script_from_file (super->path_element->host, FISH_LN_FILE, FISH_LN_DEF_CONTENT);
- fish_super->scr_mv =
- fish_load_script_from_file (super->path_element->host, FISH_MV_FILE, FISH_MV_DEF_CONTENT);
- fish_super->scr_hardlink =
- fish_load_script_from_file (super->path_element->host, FISH_HARDLINK_FILE,
- FISH_HARDLINK_DEF_CONTENT);
- fish_super->scr_get =
- fish_load_script_from_file (super->path_element->host, FISH_GET_FILE, FISH_GET_DEF_CONTENT);
- fish_super->scr_send =
- fish_load_script_from_file (super->path_element->host, FISH_SEND_FILE,
- FISH_SEND_DEF_CONTENT);
- fish_super->scr_append =
- fish_load_script_from_file (super->path_element->host, FISH_APPEND_FILE,
- FISH_APPEND_DEF_CONTENT);
- fish_super->scr_info =
- fish_load_script_from_file (super->path_element->host, FISH_INFO_FILE,
- FISH_INFO_DEF_CONTENT);
-
- return fish_open_archive_int (vpath_element->class, super);
+ super->path_element->port = SHELL_FLAG_RSH;
+
+ shell_super->scr_ls =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_LS_FILE,
+ VFS_SHELL_LS_DEF_CONTENT);
+ shell_super->scr_exists =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_EXISTS_FILE,
+ VFS_SHELL_EXISTS_DEF_CONTENT);
+ shell_super->scr_mkdir =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_MKDIR_FILE,
+ VFS_SHELL_MKDIR_DEF_CONTENT);
+ shell_super->scr_unlink =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_UNLINK_FILE,
+ VFS_SHELL_UNLINK_DEF_CONTENT);
+ shell_super->scr_chown =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_CHOWN_FILE,
+ VFS_SHELL_CHOWN_DEF_CONTENT);
+ shell_super->scr_chmod =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_CHMOD_FILE,
+ VFS_SHELL_CHMOD_DEF_CONTENT);
+ shell_super->scr_utime =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_UTIME_FILE,
+ VFS_SHELL_UTIME_DEF_CONTENT);
+ shell_super->scr_rmdir =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_RMDIR_FILE,
+ VFS_SHELL_RMDIR_DEF_CONTENT);
+ shell_super->scr_ln =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_LN_FILE,
+ VFS_SHELL_LN_DEF_CONTENT);
+ shell_super->scr_mv =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_MV_FILE,
+ VFS_SHELL_MV_DEF_CONTENT);
+ shell_super->scr_hardlink =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_HARDLINK_FILE,
+ VFS_SHELL_HARDLINK_DEF_CONTENT);
+ shell_super->scr_get =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_GET_FILE,
+ VFS_SHELL_GET_DEF_CONTENT);
+ shell_super->scr_send =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_SEND_FILE,
+ VFS_SHELL_SEND_DEF_CONTENT);
+ shell_super->scr_append =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_APPEND_FILE,
+ VFS_SHELL_APPEND_DEF_CONTENT);
+ shell_super->scr_info =
+ shell_load_script_from_file (super->path_element->host, VFS_SHELL_INFO_FILE,
+ VFS_SHELL_INFO_DEF_CONTENT);
+
+ return shell_open_archive_int (vpath_element->class, super);
}
/* --------------------------------------------------------------------------------------------- */
static int
-fish_archive_same (const vfs_path_element_t * vpath_element, struct vfs_s_super *super,
- const vfs_path_t * vpath, void *cookie)
+shell_archive_same (const vfs_path_element_t * vpath_element, struct vfs_s_super *super,
+ const vfs_path_t * vpath, void *cookie)
{
vfs_path_element_t *path_element;
int result;
@@ -757,7 +750,7 @@ fish_archive_same (const vfs_path_element_t * vpath_element, struct vfs_s_super
/* --------------------------------------------------------------------------------------------- */
static void
-fish_parse_ls (char *buffer, struct vfs_s_entry *ent)
+shell_parse_ls (char *buffer, struct vfs_s_entry *ent)
{
#define ST ent->ino->st
@@ -914,7 +907,7 @@ fish_parse_ls (char *buffer, struct vfs_s_entry *ent)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_dir_load (struct vfs_class *me, struct vfs_s_inode *dir, const char *remote_path)
+shell_dir_load (struct vfs_class *me, struct vfs_s_inode *dir, const char *remote_path)
{
struct vfs_s_super *super = dir->super;
char buffer[BUF_8K] = "\0";
@@ -923,20 +916,20 @@ fish_dir_load (struct vfs_class *me, struct vfs_s_inode *dir, const char *remote
int reply_code;
/*
- * Simple FISH debug interface :]
+ * Simple SHELL debug interface :]
*/
#if 0
if (me->logfile == NULL)
- me->logfile = fopen ("/tmp/mc-FISH.sh", "w");
+ me->logfile = fopen ("/tmp/mc-SHELL.sh", "w");
#endif
- vfs_print_message (_("fish: Reading directory %s..."), remote_path);
+ vfs_print_message (_("shell: Reading directory %s..."), remote_path);
- dir->timestamp = g_get_monotonic_time () + fish_directory_timeout * G_USEC_PER_SEC;
+ dir->timestamp = g_get_monotonic_time () + shell_directory_timeout * G_USEC_PER_SEC;
quoted_path = strutils_shell_escape (remote_path);
- (void) fish_command_v (me, super, NONE, FISH_SUPER (super)->scr_ls, "FISH_FILENAME=%s;\n",
- quoted_path);
+ (void) shell_command_v (me, super, NONE, SHELL_SUPER (super)->scr_ls, "SHELL_FILENAME=%s;\n",
+ quoted_path);
g_free (quoted_path);
ent = vfs_s_generate_entry (me, NULL, dir, 0);
@@ -945,7 +938,8 @@ fish_dir_load (struct vfs_class *me, struct vfs_s_inode *dir, const char *remote
{
int res;
- res = vfs_s_get_line_interruptible (me, buffer, sizeof (buffer), FISH_SUPER (super)->sockr);
+ res =
+ vfs_s_get_line_interruptible (me, buffer, sizeof (buffer), SHELL_SUPER (super)->sockr);
if ((res == 0) || (res == EINTR))
{
@@ -963,7 +957,7 @@ fish_dir_load (struct vfs_class *me, struct vfs_s_inode *dir, const char *remote
break;
if (buffer[0] != '\0')
- fish_parse_ls (buffer, ent);
+ shell_parse_ls (buffer, ent);
else if (ent->name != NULL)
{
vfs_s_insert_entry (me, dir, ent);
@@ -972,7 +966,7 @@ fish_dir_load (struct vfs_class *me, struct vfs_s_inode *dir, const char *remote
}
vfs_s_free_entry (me, ent);
- reply_code = fish_decode_reply (buffer + 4, 0);
+ reply_code = shell_decode_reply (buffer + 4, 0);
if (reply_code == COMPLETE)
{
vfs_print_message (_("%s: done."), me->name);
@@ -989,11 +983,11 @@ fish_dir_load (struct vfs_class *me, struct vfs_s_inode *dir, const char *remote
/* --------------------------------------------------------------------------------------------- */
static int
-fish_file_store (struct vfs_class *me, vfs_file_handler_t * fh, char *name, char *localname)
+shell_file_store (struct vfs_class *me, vfs_file_handler_t * fh, char *name, char *localname)
{
- fish_file_handler_t *fish = FISH_FILE_HANDLER (fh);
+ shell_file_handler_t *shell = SHELL_FILE_HANDLER (fh);
struct vfs_s_super *super = VFS_FILE_HANDLER_SUPER (fh);
- fish_super_t *fish_super = FISH_SUPER (super);
+ shell_super_t *shell_super = SHELL_SUPER (super);
int code;
off_t total = 0;
char buffer[BUF_8K];
@@ -1040,14 +1034,14 @@ fish_file_store (struct vfs_class *me, vfs_file_handler_t * fh, char *name, char
*/
quoted_name = strutils_shell_escape (name);
- vfs_print_message (_("fish: store %s: sending command..."), quoted_name);
+ vfs_print_message (_("shell: store %s: sending command..."), quoted_name);
/* FIXME: File size is limited to ULONG_MAX */
code =
- fish_command_v (me, super, WAIT_REPLY,
- fish->append ? fish_super->scr_append : fish_super->scr_send,
- "FISH_FILENAME=%s FISH_FILESIZE=%" PRIuMAX ";\n", quoted_name,
- (uintmax_t) s.st_size);
+ shell_command_v (me, super, WAIT_REPLY,
+ shell->append ? shell_super->scr_append : shell_super->scr_send,
+ "SHELL_FILENAME=%s SHELL_FILESIZE=%" PRIuMAX ";\n", quoted_name,
+ (uintmax_t) s.st_size);
g_free (quoted_name);
if (code != PRELIM)
@@ -1064,7 +1058,7 @@ fish_file_store (struct vfs_class *me, vfs_file_handler_t * fh, char *name, char
{
if ((errno == EINTR) && tty_got_interrupt ())
continue;
- vfs_print_message ("%s", _("fish: Local read failed, sending zeros"));
+ vfs_print_message ("%s", _("shell: Local read failed, sending zeros"));
close (h);
h = open ("/dev/zero", O_RDONLY);
}
@@ -1072,7 +1066,7 @@ fish_file_store (struct vfs_class *me, vfs_file_handler_t * fh, char *name, char
if (n == 0)
break;
- t = write (fish_super->sockw, buffer, n);
+ t = write (shell_super->sockw, buffer, n);
if (t != n)
{
if (t == -1)
@@ -1083,27 +1077,27 @@ fish_file_store (struct vfs_class *me, vfs_file_handler_t * fh, char *name, char
}
tty_disable_interrupt_key ();
total += n;
- vfs_print_message ("%s: %" PRIuMAX "/%" PRIuMAX, _("fish: storing file"),
+ vfs_print_message ("%s: %" PRIuMAX "/%" PRIuMAX, _("shell: storing file"),
(uintmax_t) total, (uintmax_t) s.st_size);
}
close (h);
- if (fish_get_reply (me, fish_super->sockr, NULL, 0) != COMPLETE)
+ if (shell_get_reply (me, shell_super->sockr, NULL, 0) != COMPLETE)
ERRNOR (E_REMOTE, -1);
return 0;
error_return:
close (h);
- fish_get_reply (me, fish_super->sockr, NULL, 0);
+ shell_get_reply (me, shell_super->sockr, NULL, 0);
return -1;
}
/* --------------------------------------------------------------------------------------------- */
static int
-fish_linear_start (struct vfs_class *me, vfs_file_handler_t * fh, off_t offset)
+shell_linear_start (struct vfs_class *me, vfs_file_handler_t * fh, off_t offset)
{
- fish_file_handler_t *fish = FISH_FILE_HANDLER (fh);
+ shell_file_handler_t *shell = SHELL_FILE_HANDLER (fh);
struct vfs_s_super *super = VFS_FILE_HANDLER_SUPER (fh);
char *name;
char *quoted_name;
@@ -1113,7 +1107,7 @@ fish_linear_start (struct vfs_class *me, vfs_file_handler_t * fh, off_t offset)
return 0;
quoted_name = strutils_shell_escape (name);
g_free (name);
- fish->append = FALSE;
+ shell->append = FALSE;
/*
* Check whether the remote file is readable by using 'dd' to copy
@@ -1123,20 +1117,20 @@ fish_linear_start (struct vfs_class *me, vfs_file_handler_t * fh, off_t offset)
*/
offset =
- fish_command_v (me, super, WANT_STRING, FISH_SUPER (super)->scr_get,
- "FISH_FILENAME=%s FISH_START_OFFSET=%" PRIuMAX ";\n", quoted_name,
- (uintmax_t) offset);
+ shell_command_v (me, super, WANT_STRING, SHELL_SUPER (super)->scr_get,
+ "SHELL_FILENAME=%s SHELL_START_OFFSET=%" PRIuMAX ";\n", quoted_name,
+ (uintmax_t) offset);
g_free (quoted_name);
if (offset != PRELIM)
ERRNOR (E_REMOTE, 0);
fh->linear = LS_LINEAR_OPEN;
- fish->got = 0;
+ shell->got = 0;
errno = 0;
#if SIZEOF_OFF_T == SIZEOF_LONG
- fish->total = (off_t) strtol (reply_str, NULL, 10);
+ shell->total = (off_t) strtol (reply_str, NULL, 10);
#else
- fish->total = (off_t) g_ascii_strtoll (reply_str, NULL, 10);
+ shell->total = (off_t) g_ascii_strtoll (reply_str, NULL, 10);
#endif
if (errno != 0)
ERRNOR (E_REMOTE, 0);
@@ -1146,9 +1140,9 @@ fish_linear_start (struct vfs_class *me, vfs_file_handler_t * fh, off_t offset)
/* --------------------------------------------------------------------------------------------- */
static void
-fish_linear_abort (struct vfs_class *me, vfs_file_handler_t * fh)
+shell_linear_abort (struct vfs_class *me, vfs_file_handler_t * fh)
{
- fish_file_handler_t *fish = FISH_FILE_HANDLER (fh);
+ shell_file_handler_t *shell = SHELL_FILE_HANDLER (fh);
struct vfs_s_super *super = VFS_FILE_HANDLER_SUPER (fh);
char buffer[BUF_8K];
ssize_t n;
@@ -1157,18 +1151,18 @@ fish_linear_abort (struct vfs_class *me, vfs_file_handler_t * fh)
do
{
- n = MIN ((off_t) sizeof (buffer), (fish->total - fish->got));
+ n = MIN ((off_t) sizeof (buffer), (shell->total - shell->got));
if (n != 0)
{
- n = read (FISH_SUPER (super)->sockr, buffer, n);
+ n = read (SHELL_SUPER (super)->sockr, buffer, n);
if (n < 0)
return;
- fish->got += n;
+ shell->got += n;
}
}
while (n != 0);
- if (fish_get_reply (me, FISH_SUPER (super)->sockr, NULL, 0) != COMPLETE)
+ if (shell_get_reply (me, SHELL_SUPER (super)->sockr, NULL, 0) != COMPLETE)
vfs_print_message ("%s", _("Error reported after abort."));
else
vfs_print_message ("%s", _("Aborted transfer would be successful."));
@@ -1177,15 +1171,15 @@ fish_linear_abort (struct vfs_class *me, vfs_file_handler_t * fh)
/* --------------------------------------------------------------------------------------------- */
static ssize_t
-fish_linear_read (struct vfs_class *me, vfs_file_handler_t * fh, void *buf, size_t len)
+shell_linear_read (struct vfs_class *me, vfs_file_handler_t * fh, void *buf, size_t len)
{
- fish_file_handler_t *fish = FISH_FILE_HANDLER (fh);
+ shell_file_handler_t *shell = SHELL_FILE_HANDLER (fh);
struct vfs_s_super *super = VFS_FILE_HANDLER_SUPER (fh);
ssize_t n = 0;
- len = MIN ((size_t) (fish->total - fish->got), len);
+ len = MIN ((size_t) (shell->total - shell->got), len);
tty_disable_interrupt_key ();
- while (len != 0 && ((n = read (FISH_SUPER (super)->sockr, buf, len)) < 0))
+ while (len != 0 && ((n = read (SHELL_SUPER (super)->sockr, buf, len)) < 0))
{
if ((errno == EINTR) && !tty_got_interrupt ())
continue;
@@ -1194,10 +1188,10 @@ fish_linear_read (struct vfs_class *me, vfs_file_handler_t * fh, void *buf, size
tty_enable_interrupt_key ();
if (n > 0)
- fish->got += n;
+ shell->got += n;
else if (n < 0)
- fish_linear_abort (me, fh);
- else if (fish_get_reply (me, FISH_SUPER (super)->sockr, NULL, 0) != COMPLETE)
+ shell_linear_abort (me, fh);
+ else if (shell_get_reply (me, SHELL_SUPER (super)->sockr, NULL, 0) != COMPLETE)
ERRNOR (E_REMOTE, -1);
ERRNOR (errno, n);
}
@@ -1205,18 +1199,18 @@ fish_linear_read (struct vfs_class *me, vfs_file_handler_t * fh, void *buf, size
/* --------------------------------------------------------------------------------------------- */
static void
-fish_linear_close (struct vfs_class *me, vfs_file_handler_t * fh)
+shell_linear_close (struct vfs_class *me, vfs_file_handler_t * fh)
{
- fish_file_handler_t *fish = FISH_FILE_HANDLER (fh);
+ shell_file_handler_t *shell = SHELL_FILE_HANDLER (fh);
- if (fish->total != fish->got)
- fish_linear_abort (me, fh);
+ if (shell->total != shell->got)
+ shell_linear_abort (me, fh);
}
/* --------------------------------------------------------------------------------------------- */
static int
-fish_ctl (void *fh, int ctlop, void *arg)
+shell_ctl (void *fh, int ctlop, void *arg)
{
(void) arg;
(void) fh;
@@ -1237,7 +1231,7 @@ fish_ctl (void *fh, int ctlop, void *arg)
if (file->linear == LS_LINEAR_CLOSED || file->linear == LS_LINEAR_PREOPEN)
return 0;
- v = vfs_s_select_on_two (VFS_FILE_HANDLER_SUPER (fh)->u.fish.sockr, 0);
+ v = vfs_s_select_on_two (VFS_FILE_HANDLER_SUPER (fh)->u.shell.sockr, 0);
return (((v < 0) && (errno == EINTR)) || v == 0) ? 1 : 0;
}
@@ -1250,7 +1244,7 @@ fish_ctl (void *fh, int ctlop, void *arg)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_rename (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
+shell_rename (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
{
const char *crpath1, *crpath2;
char *rpath1, *rpath2;
@@ -1272,8 +1266,8 @@ fish_rename (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath1));
ret =
- fish_send_command (me, super2, OPT_FLUSH, FISH_SUPER (super)->scr_mv,
- "FISH_FILEFROM=%s FISH_FILETO=%s;\n", rpath1, rpath2);
+ shell_send_command (me, super2, OPT_FLUSH, SHELL_SUPER (super)->scr_mv,
+ "SHELL_FILEFROM=%s SHELL_FILETO=%s;\n", rpath1, rpath2);
g_free (rpath1);
g_free (rpath2);
@@ -1284,7 +1278,7 @@ fish_rename (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_link (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
+shell_link (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
{
const char *crpath1, *crpath2;
char *rpath1, *rpath2;
@@ -1306,8 +1300,8 @@ fish_link (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath1));
ret =
- fish_send_command (me, super2, OPT_FLUSH, FISH_SUPER (super)->scr_hardlink,
- "FISH_FILEFROM=%s FISH_FILETO=%s;\n", rpath1, rpath2);
+ shell_send_command (me, super2, OPT_FLUSH, SHELL_SUPER (super)->scr_hardlink,
+ "SHELL_FILEFROM=%s SHELL_FILETO=%s;\n", rpath1, rpath2);
g_free (rpath1);
g_free (rpath2);
@@ -1318,7 +1312,7 @@ fish_link (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_symlink (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
+shell_symlink (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
{
char *qsetto;
const char *crpath;
@@ -1337,8 +1331,8 @@ fish_symlink (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath2));
ret =
- fish_send_command (me, super, OPT_FLUSH, FISH_SUPER (super)->scr_ln,
- "FISH_FILEFROM=%s FISH_FILETO=%s;\n", qsetto, rpath);
+ shell_send_command (me, super, OPT_FLUSH, SHELL_SUPER (super)->scr_ln,
+ "SHELL_FILEFROM=%s SHELL_FILETO=%s;\n", qsetto, rpath);
g_free (qsetto);
g_free (rpath);
@@ -1349,43 +1343,43 @@ fish_symlink (const vfs_path_t * vpath1, const vfs_path_t * vpath2)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_stat (const vfs_path_t * vpath, struct stat *buf)
+shell_stat (const vfs_path_t * vpath, struct stat *buf)
{
int ret;
ret = vfs_s_stat (vpath, buf);
- fish_set_blksize (buf);
+ shell_set_blksize (buf);
return ret;
}
/* --------------------------------------------------------------------------------------------- */
static int
-fish_lstat (const vfs_path_t * vpath, struct stat *buf)
+shell_lstat (const vfs_path_t * vpath, struct stat *buf)
{
int ret;
ret = vfs_s_lstat (vpath, buf);
- fish_set_blksize (buf);
+ shell_set_blksize (buf);
return ret;
}
/* --------------------------------------------------------------------------------------------- */
static int
-fish_fstat (void *vfs_info, struct stat *buf)
+shell_fstat (void *vfs_info, struct stat *buf)
{
int ret;
ret = vfs_s_fstat (vfs_info, buf);
- fish_set_blksize (buf);
+ shell_set_blksize (buf);
return ret;
}
/* --------------------------------------------------------------------------------------------- */
static int
-fish_chmod (const vfs_path_t * vpath, mode_t mode)
+shell_chmod (const vfs_path_t * vpath, mode_t mode)
{
const char *crpath;
char *rpath;
@@ -1402,9 +1396,9 @@ fish_chmod (const vfs_path_t * vpath, mode_t mode)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath));
ret =
- fish_send_command (me, super, OPT_FLUSH, FISH_SUPER (super)->scr_chmod,
- "FISH_FILENAME=%s FISH_FILEMODE=%4.4o;\n", rpath,
- (unsigned int) (mode & 07777));
+ shell_send_command (me, super, OPT_FLUSH, SHELL_SUPER (super)->scr_chmod,
+ "SHELL_FILENAME=%s SHELL_FILEMODE=%4.4o;\n", rpath,
+ (unsigned int) (mode & 07777));
g_free (rpath);
@@ -1414,7 +1408,7 @@ fish_chmod (const vfs_path_t * vpath, mode_t mode)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_chown (const vfs_path_t * vpath, uid_t owner, gid_t group)
+shell_chown (const vfs_path_t * vpath, uid_t owner, gid_t group)
{
char *sowner, *sgroup;
struct passwd *pw;
@@ -1446,9 +1440,9 @@ fish_chown (const vfs_path_t * vpath, uid_t owner, gid_t group)
/* FIXME: what should we report if chgrp succeeds but chown fails? */
ret =
- fish_send_command (me, super, OPT_FLUSH, FISH_SUPER (super)->scr_chown,
- "FISH_FILENAME=%s FISH_FILEOWNER=%s FISH_FILEGROUP=%s;\n", rpath, sowner,
- sgroup);
+ shell_send_command (me, super, OPT_FLUSH, SHELL_SUPER (super)->scr_chown,
+ "SHELL_FILENAME=%s SHELL_FILEOWNER=%s SHELL_FILEGROUP=%s;\n", rpath,
+ sowner, sgroup);
g_free (rpath);
@@ -1458,7 +1452,7 @@ fish_chown (const vfs_path_t * vpath, uid_t owner, gid_t group)
/* --------------------------------------------------------------------------------------------- */
static void
-fish_get_atime (mc_timesbuf_t * times, time_t * sec, long *nsec)
+shell_get_atime (mc_timesbuf_t * times, time_t * sec, long *nsec)
{
#ifdef HAVE_UTIMENSAT
*sec = (*times)[0].tv_sec;
@@ -1472,7 +1466,7 @@ fish_get_atime (mc_timesbuf_t * times, time_t * sec, long *nsec)
/* --------------------------------------------------------------------------------------------- */
static void
-fish_get_mtime (mc_timesbuf_t * times, time_t * sec, long *nsec)
+shell_get_mtime (mc_timesbuf_t * times, time_t * sec, long *nsec)
{
#ifdef HAVE_UTIMENSAT
*sec = (*times)[1].tv_sec;
@@ -1486,7 +1480,7 @@ fish_get_mtime (mc_timesbuf_t * times, time_t * sec, long *nsec)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_utime (const vfs_path_t * vpath, mc_timesbuf_t * times)
+shell_utime (const vfs_path_t * vpath, mc_timesbuf_t * times)
{
char utcatime[16], utcmtime[16];
char utcatime_w_nsec[30], utcmtime_w_nsec[30];
@@ -1505,7 +1499,7 @@ fish_utime (const vfs_path_t * vpath, mc_timesbuf_t * times)
rpath = strutils_shell_escape (crpath);
- fish_get_atime (times, &atime, &atime_nsec);
+ shell_get_atime (times, &atime, &atime_nsec);
gmt = gmtime (&atime);
g_snprintf (utcatime, sizeof (utcatime), "%04d%02d%02d%02d%02d.%02d",
gmt->tm_year + 1900, gmt->tm_mon + 1, gmt->tm_mday,
@@ -1514,7 +1508,7 @@ fish_utime (const vfs_path_t * vpath, mc_timesbuf_t * times)
gmt->tm_year + 1900, gmt->tm_mon + 1, gmt->tm_mday,
gmt->tm_hour, gmt->tm_min, gmt->tm_sec, atime_nsec);
- fish_get_mtime (times, &mtime, &mtime_nsec);
+ shell_get_mtime (times, &mtime, &mtime_nsec);
gmt = gmtime (&mtime);
g_snprintf (utcmtime, sizeof (utcmtime), "%04d%02d%02d%02d%02d.%02d",
gmt->tm_year + 1900, gmt->tm_mon + 1, gmt->tm_mday,
@@ -1525,11 +1519,11 @@ fish_utime (const vfs_path_t * vpath, mc_timesbuf_t * times)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath));
- ret = fish_send_command (me, super, OPT_FLUSH, FISH_SUPER (super)->scr_utime,
- "FISH_FILENAME=%s FISH_FILEATIME=%ld FISH_FILEMTIME=%ld "
- "FISH_TOUCHATIME=%s FISH_TOUCHMTIME=%s FISH_TOUCHATIME_W_NSEC=\"%s\" "
- "FISH_TOUCHMTIME_W_NSEC=\"%s\";\n", rpath, (long) atime, (long) mtime,
- utcatime, utcmtime, utcatime_w_nsec, utcmtime_w_nsec);
+ ret = shell_send_command (me, super, OPT_FLUSH, SHELL_SUPER (super)->scr_utime,
+ "SHELL_FILENAME=%s SHELL_FILEATIME=%ld SHELL_FILEMTIME=%ld "
+ "SHELL_TOUCHATIME=%s SHELL_TOUCHMTIME=%s SHELL_TOUCHATIME_W_NSEC=\"%s\" "
+ "SHELL_TOUCHMTIME_W_NSEC=\"%s\";\n", rpath, (long) atime,
+ (long) mtime, utcatime, utcmtime, utcatime_w_nsec, utcmtime_w_nsec);
g_free (rpath);
@@ -1539,7 +1533,7 @@ fish_utime (const vfs_path_t * vpath, mc_timesbuf_t * times)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_unlink (const vfs_path_t * vpath)
+shell_unlink (const vfs_path_t * vpath)
{
const char *crpath;
char *rpath;
@@ -1556,8 +1550,8 @@ fish_unlink (const vfs_path_t * vpath)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath));
ret =
- fish_send_command (me, super, OPT_FLUSH, FISH_SUPER (super)->scr_unlink,
- "FISH_FILENAME=%s;\n", rpath);
+ shell_send_command (me, super, OPT_FLUSH, SHELL_SUPER (super)->scr_unlink,
+ "SHELL_FILENAME=%s;\n", rpath);
g_free (rpath);
@@ -1567,7 +1561,7 @@ fish_unlink (const vfs_path_t * vpath)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_exists (const vfs_path_t * vpath)
+shell_exists (const vfs_path_t * vpath)
{
const char *crpath;
char *rpath;
@@ -1584,8 +1578,8 @@ fish_exists (const vfs_path_t * vpath)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath));
ret =
- fish_send_command (me, super, OPT_FLUSH, FISH_SUPER (super)->scr_exists,
- "FISH_FILENAME=%s;\n", rpath);
+ shell_send_command (me, super, OPT_FLUSH, SHELL_SUPER (super)->scr_exists,
+ "SHELL_FILENAME=%s;\n", rpath);
g_free (rpath);
@@ -1595,7 +1589,7 @@ fish_exists (const vfs_path_t * vpath)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_mkdir (const vfs_path_t * vpath, mode_t mode)
+shell_mkdir (const vfs_path_t * vpath, mode_t mode)
{
const char *crpath;
char *rpath;
@@ -1614,14 +1608,14 @@ fish_mkdir (const vfs_path_t * vpath, mode_t mode)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath));
ret =
- fish_send_command (me, super, OPT_FLUSH, FISH_SUPER (super)->scr_mkdir,
- "FISH_FILENAME=%s;\n", rpath);
+ shell_send_command (me, super, OPT_FLUSH, SHELL_SUPER (super)->scr_mkdir,
+ "SHELL_FILENAME=%s;\n", rpath);
g_free (rpath);
if (ret != 0)
return ret;
- if (fish_exists (vpath) == 0)
+ if (shell_exists (vpath) == 0)
{
me->verrno = EACCES;
return -1;
@@ -1632,7 +1626,7 @@ fish_mkdir (const vfs_path_t * vpath, mode_t mode)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_rmdir (const vfs_path_t * vpath)
+shell_rmdir (const vfs_path_t * vpath)
{
const char *crpath;
char *rpath;
@@ -1649,8 +1643,8 @@ fish_rmdir (const vfs_path_t * vpath)
me = VFS_CLASS (vfs_path_get_last_path_vfs (vpath));
ret =
- fish_send_command (me, super, OPT_FLUSH, FISH_SUPER (super)->scr_rmdir,
- "FISH_FILENAME=%s;\n", rpath);
+ shell_send_command (me, super, OPT_FLUSH, SHELL_SUPER (super)->scr_rmdir,
+ "SHELL_FILENAME=%s;\n", rpath);
g_free (rpath);
@@ -1660,11 +1654,11 @@ fish_rmdir (const vfs_path_t * vpath)
/* --------------------------------------------------------------------------------------------- */
static vfs_file_handler_t *
-fish_fh_new (struct vfs_s_inode *ino, gboolean changed)
+shell_fh_new (struct vfs_s_inode *ino, gboolean changed)
{
- fish_file_handler_t *fh;
+ shell_file_handler_t *fh;
- fh = g_new0 (fish_file_handler_t, 1);
+ fh = g_new0 (shell_file_handler_t, 1);
vfs_s_init_fh (VFS_FILE_HANDLER (fh), ino, changed);
return VFS_FILE_HANDLER (fh);
@@ -1673,9 +1667,9 @@ fish_fh_new (struct vfs_s_inode *ino, gboolean changed)
/* --------------------------------------------------------------------------------------------- */
static int
-fish_fh_open (struct vfs_class *me, vfs_file_handler_t * fh, int flags, mode_t mode)
+shell_fh_open (struct vfs_class *me, vfs_file_handler_t * fh, int flags, mode_t mode)
{
- fish_file_handler_t *fish = FISH_FILE_HANDLER (fh);
+ shell_file_handler_t *shell = SHELL_FILE_HANDLER (fh);
(void) mode;
@@ -1684,7 +1678,7 @@ fish_fh_open (struct vfs_class *me, vfs_file_handler_t * fh, int flags, mode_t m
{
/* user pressed the button [ Append ] in the "Copy" dialog */
if ((flags & O_APPEND) != 0)
- fish->append = TRUE;
+ shell->append = TRUE;
if (fh->ino->localname == NULL)
{
@@ -1712,7 +1706,7 @@ fish_fh_open (struct vfs_class *me, vfs_file_handler_t * fh, int flags, mode_t m
/* --------------------------------------------------------------------------------------------- */
static void
-fish_fill_names (struct vfs_class *me, fill_names_f func)
+shell_fill_names (struct vfs_class *me, fill_names_f func)
{
GList *iter;
@@ -1726,14 +1720,14 @@ fish_fill_names (struct vfs_class *me, fill_names_f func)
switch (super->path_element->port)
{
- case FISH_FLAG_RSH:
+ case SHELL_FLAG_RSH:
flags = ":r";
break;
- case FISH_FLAG_COMPRESSED:
+ case SHELL_FLAG_COMPRESSED:
flags = ":C";
break;
default:
- if (super->path_element->port > FISH_FLAG_RSH)
+ if (super->path_element->port > SHELL_FLAG_RSH)
{
g_snprintf (gbuf, sizeof (gbuf), ":%d", super->path_element->port);
flags = gbuf;
@@ -1742,7 +1736,7 @@ fish_fill_names (struct vfs_class *me, fill_names_f func)
}
name =
- g_strconcat (vfs_fish_ops->prefix, VFS_PATH_URL_DELIMITER,
+ g_strconcat (vfs_shell_ops->prefix, VFS_PATH_URL_DELIMITER,
super->path_element->user, "@", super->path_element->host, flags,
PATH_SEP_STR, super->path_element->path, (char *) NULL);
func (name);
@@ -1753,11 +1747,11 @@ fish_fill_names (struct vfs_class *me, fill_names_f func)
/* --------------------------------------------------------------------------------------------- */
static void *
-fish_open (const vfs_path_t * vpath, int flags, mode_t mode)
+shell_open (const vfs_path_t * vpath, int flags, mode_t mode)
{
/*
sorry, i've places hack here
- cause fish don't able to open files with O_EXCL flag
+ cause shell don't able to open files with O_EXCL flag
*/
flags &= ~O_EXCL;
return vfs_s_open (vpath, flags, mode);
@@ -1768,38 +1762,38 @@ fish_open (const vfs_path_t * vpath, int flags, mode_t mode)
/* --------------------------------------------------------------------------------------------- */
void
-vfs_init_fish (void)
+vfs_init_shell (void)
{
tcp_init ();
- vfs_init_subclass (&fish_subclass, "fish", VFSF_REMOTE | VFSF_USETMP, "sh");
- vfs_fish_ops->fill_names = fish_fill_names;
- vfs_fish_ops->stat = fish_stat;
- vfs_fish_ops->lstat = fish_lstat;
- vfs_fish_ops->fstat = fish_fstat;
- vfs_fish_ops->chmod = fish_chmod;
- vfs_fish_ops->chown = fish_chown;
- vfs_fish_ops->utime = fish_utime;
- vfs_fish_ops->open = fish_open;
- vfs_fish_ops->symlink = fish_symlink;
- vfs_fish_ops->link = fish_link;
- vfs_fish_ops->unlink = fish_unlink;
- vfs_fish_ops->rename = fish_rename;
- vfs_fish_ops->mkdir = fish_mkdir;
- vfs_fish_ops->rmdir = fish_rmdir;
- vfs_fish_ops->ctl = fish_ctl;
- fish_subclass.archive_same = fish_archive_same;
- fish_subclass.new_archive = fish_new_archive;
- fish_subclass.open_archive = fish_open_archive;
- fish_subclass.free_archive = fish_free_archive;
- fish_subclass.fh_new = fish_fh_new;
- fish_subclass.fh_open = fish_fh_open;
- fish_subclass.dir_load = fish_dir_load;
- fish_subclass.file_store = fish_file_store;
- fish_subclass.linear_start = fish_linear_start;
- fish_subclass.linear_read = fish_linear_read;
- fish_subclass.linear_close = fish_linear_close;
- vfs_register_class (vfs_fish_ops);
+ vfs_init_subclass (&shell_subclass, "shell", VFSF_REMOTE | VFSF_USETMP, "sh");
+ vfs_shell_ops->fill_names = shell_fill_names;
+ vfs_shell_ops->stat = shell_stat;
+ vfs_shell_ops->lstat = shell_lstat;
+ vfs_shell_ops->fstat = shell_fstat;
+ vfs_shell_ops->chmod = shell_chmod;
+ vfs_shell_ops->chown = shell_chown;
+ vfs_shell_ops->utime = shell_utime;
+ vfs_shell_ops->open = shell_open;
+ vfs_shell_ops->symlink = shell_symlink;
+ vfs_shell_ops->link = shell_link;
+ vfs_shell_ops->unlink = shell_unlink;
+ vfs_shell_ops->rename = shell_rename;
+ vfs_shell_ops->mkdir = shell_mkdir;
+ vfs_shell_ops->rmdir = shell_rmdir;
+ vfs_shell_ops->ctl = shell_ctl;
+ shell_subclass.archive_same = shell_archive_same;
+ shell_subclass.new_archive = shell_new_archive;
+ shell_subclass.open_archive = shell_open_archive;
+ shell_subclass.free_archive = shell_free_archive;
+ shell_subclass.fh_new = shell_fh_new;
+ shell_subclass.fh_open = shell_fh_open;
+ shell_subclass.dir_load = shell_dir_load;
+ shell_subclass.file_store = shell_file_store;
+ shell_subclass.linear_start = shell_linear_start;
+ shell_subclass.linear_read = shell_linear_read;
+ shell_subclass.linear_close = shell_linear_close;
+ vfs_register_class (vfs_shell_ops);
}
/* --------------------------------------------------------------------------------------------- */