annotate src/text/gftp-text.c @ 327:98487556a058

2003-12-4 Brian Masney <masneyb@gftp.org> * lib/cache.c lib/misc.c lib/protocols.c lib/rfc2068.c lib/rfc959.c lib/sshv2.c lib/sslcommon.c src/text/gftp-text.c src/gtk/chmod_dialog.c src/gtk/gftp-gtk.c src/gtk/menu-items.c src/gtk/misc-gtk.c src/gtk/mkdir_dialog.c src/gtk/rename_dialog.c src/gtk/transfer.c - when calling gftp_lookup_global_option() or gftp_lookup_request_option(), if the value is an integer, declare the variable type to be intptr_t. This fixes a bug on 64bit platforms (from Gwenole Beauchesne <gbeauchesne@mandrakesoft.com>)
author masneyb
date Fri, 05 Dec 2003 00:22:06 +0000
parents 3b9d5797050f
children eedc2c5727fa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1 /*****************************************************************************/
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
2 /* gftp-text.c - text port of gftp */
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
3 /* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> */
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
4 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
5 /* This program is free software; you can redistribute it and/or modify */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
6 /* it under the terms of the GNU General Public License as published by */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
7 /* the Free Software Foundation; either version 2 of the License, or */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
8 /* (at your option) any later version. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
9 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
10 /* This program is distributed in the hope that it will be useful, */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
11 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
12 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
13 /* GNU General Public License for more details. */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
14 /* */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
15 /* You should have received a copy of the GNU General Public License */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
16 /* along with this program; if not, write to the Free Software */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
17 /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
18 /*****************************************************************************/
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
19
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
20 #include "gftp-text.h"
33
c8ec7877432e 2002-10-06 Brian Masney <masneyb@gftp.org>
masneyb
parents: 16
diff changeset
21 static const char cvsid[] = "$Id$";
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
22
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
23 static gftp_request * gftp_text_locreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
24 static gftp_request * gftp_text_remreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
25 static volatile int cancel = 0;
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
26 static int number_commands = 30;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
27
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
28 struct _gftp_text_methods gftp_text_methods[] = {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
29 {N_("about"), 2, gftp_text_about, NULL,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
30 N_("Shows gFTP information"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
31 {N_("ascii"), 2, gftp_text_ascii, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
32 N_("Sets the current file transfer mode to Ascii (only for FTP)"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
33 {N_("binary"), 1, gftp_text_binary, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
34 N_("Sets the current file transfer mode to Binary (only for FTP)"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
35 {N_("cd"), 2, gftp_text_cd, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
36 N_("Changes the remote working directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
37 {N_("chdir"), 3, gftp_text_cd, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
38 N_("Changes the remote working directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
39 {N_("chmod"), 3, gftp_text_chmod, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
40 N_("Changes the permissions of a remote file"), NULL},
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
41 {N_("clear"), 3, gftp_text_clear, NULL,
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
42 N_("Available options: cache"), gftp_text_clear_show_subhelp},
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
43 {N_("close"), 3, gftp_text_close, &gftp_text_remreq,
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
44 N_("Disconnects from the remote site"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
45 {N_("delete"), 1, gftp_text_delete, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
46 N_("Removes a remote file"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
47 {N_("get"), 1, gftp_text_mget_file, NULL,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
48 N_("Downloads remote file(s)"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
49 {N_("help"), 1, gftp_text_help, NULL,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
50 N_("Shows this help screen"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
51 {N_("lcd"), 3, gftp_text_cd, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
52 N_("Changes the local working directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
53 {N_("lchdir"), 4, gftp_text_cd, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
54 N_("Changes the local working directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
55 {N_("lchmod"), 4, gftp_text_chmod, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
56 N_("Changes the permissions of a local file"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
57 {N_("ldelete"), 2, gftp_text_delete, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
58 N_("Removes a local file"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
59 {N_("lls"), 2, gftp_text_ls, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
60 N_("Shows the directory listing for the current local directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
61 {N_("lmkdir"), 2, gftp_text_mkdir, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
62 N_("Creates a local directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
63 {N_("lpwd"), 2, gftp_text_pwd, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
64 N_("Show current local directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
65 {N_("lrename"), 3, gftp_text_rename, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
66 N_("Rename a local file"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
67 {N_("lrmdir"), 3, gftp_text_rmdir, &gftp_text_locreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
68 N_("Remove a local directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
69 {N_("ls"), 2, gftp_text_ls, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
70 N_("Shows the directory listing for the current remote directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
71 {N_("mget"), 2, gftp_text_mget_file, NULL,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
72 N_("Downloads remote file(s)"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
73 {N_("mkdir"), 2, gftp_text_mkdir, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
74 N_("Creates a remote directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
75 {N_("mput"), 2, gftp_text_mput_file, NULL,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
76 N_("Uploads local file(s)"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
77 {N_("open"), 1, gftp_text_open, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
78 N_("Opens a connection to a remote site"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
79 {N_("put"), 2, gftp_text_mput_file, NULL,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
80 N_("Uploads local file(s)"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
81 {N_("pwd"), 2, gftp_text_pwd, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
82 N_("Show current remote directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
83 {N_("quit"), 1, gftp_text_quit, NULL,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
84 N_("Exit from gFTP"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
85 {N_("rename"), 2, gftp_text_rename, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
86 N_("Rename a remote file"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
87 {N_("rmdir"), 2, gftp_text_rmdir, &gftp_text_remreq,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
88 N_("Remove a remote directory"), NULL},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
89 {N_("set"), 1, gftp_text_set, NULL,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
90 N_("Show configuration file variables. You can also set variables by set var=val"), gftp_text_set_show_subhelp},
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
91 {NULL, 0, NULL, NULL, NULL}};
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
92
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
93 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
94 main (int argc, char **argv)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
95 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
96 char *pos, *stpos, *startup_directory;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
97 gftp_request * request;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
98 size_t len, cmdlen;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
99 int i;
230
f330309d2f17 2003-7-23 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
100 #if HAVE_LIBREADLINE
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
101 char *tempstr, prompt[20];
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
102 #else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
103 char tempstr[512];
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
104 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
105
290
6e255984c0b0 2003-10-18 Brian Masney <masneyb@gftp.org>
masneyb
parents: 274
diff changeset
106 gftp_locale_init ();
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
107
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
108 signal (SIGCHLD, sig_child);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
109 signal (SIGPIPE, SIG_IGN);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
110
124
65048c959029 2003-4-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 122
diff changeset
111 gftp_read_config_file (SHARE_DIR);
65048c959029 2003-4-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 122
diff changeset
112
65048c959029 2003-4-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 122
diff changeset
113 if (gftp_parse_command_line (&argc, &argv) != 0)
65048c959029 2003-4-6 Brian Masney <masneyb@gftp.org>
masneyb
parents: 122
diff changeset
114 exit (0);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
115
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
116 /* SSH doesn't support reading the password with askpass via the command
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
117 line */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
118
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
119 gftp_text_remreq = gftp_request_new ();
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
120 gftp_set_request_option (gftp_text_remreq, "ssh_use_askpass",
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
121 GINT_TO_POINTER(0));
143
5c952c5cb438 2003-4-23 Brian Masney <masneyb@gftp.org>
masneyb
parents: 131
diff changeset
122 gftp_set_request_option (gftp_text_remreq, "sshv2_use_sftp_subsys",
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
123 GINT_TO_POINTER(0));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
124 gftp_text_remreq->logging_function = gftp_text_log;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
125
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
126 gftp_text_locreq = gftp_request_new ();
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
127 gftp_set_request_option (gftp_text_locreq, "ssh_use_askpass",
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
128 GINT_TO_POINTER(0));
143
5c952c5cb438 2003-4-23 Brian Masney <masneyb@gftp.org>
masneyb
parents: 131
diff changeset
129 gftp_set_request_option (gftp_text_locreq, "sshv2_use_sftp_subsys",
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
130 GINT_TO_POINTER(0));
143
5c952c5cb438 2003-4-23 Brian Masney <masneyb@gftp.org>
masneyb
parents: 131
diff changeset
131
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
132 gftp_text_locreq->logging_function = gftp_text_log;
173
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
133 if (gftp_protocols[GFTP_LOCAL_NUM].init (gftp_text_locreq) == 0)
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
134 {
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
135 gftp_lookup_request_option (gftp_text_locreq, "startup_directory",
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
136 &startup_directory);
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
137 if (*startup_directory != '\0')
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
138 gftp_set_directory (gftp_text_locreq, startup_directory);
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
139
173
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
140 gftp_connect (gftp_text_locreq);
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
141 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
142
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
143 gftp_text_log (gftp_logging_misc, NULL, "%s, Copyright (C) 1998-2003 Brian Masney <", gftp_version);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
144 gftp_text_log (gftp_logging_recv, NULL, "masneyb@gftp.org");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
145 gftp_text_log (gftp_logging_misc, NULL, _(">.\nIf you have any questions, comments, or suggestions about this program, please feel free to email them to me. You can always find out the latest news about gFTP from my website at http://www.gftp.org/\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
146 gftp_text_log (gftp_logging_misc, NULL, "\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
147 gftp_text_log (gftp_logging_misc, NULL, _("gFTP comes with ABSOLUTELY NO WARRANTY; for details, see the COPYING file. This is free software, and you are welcome to redistribute it under certain conditions; for details, see the COPYING file\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
148 gftp_text_log (gftp_logging_misc, NULL, "\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
149
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
150 if (argc == 3 && strcmp (argv[1], "-d") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
151 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
152 if ((pos = strrchr (argv[2], '/')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
153 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
154 gftp_text_open (gftp_text_remreq, argv[2], NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
155
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
156 if (pos != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
157 *pos = '/';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
158
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
159 gftp_text_mget_file (gftp_text_remreq, pos + 1, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
160 exit (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
161 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
162 else if (argc == 2)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
163 gftp_text_open (gftp_text_remreq, argv[1], NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
164
230
f330309d2f17 2003-7-23 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
165 #if HAVE_LIBREADLINE
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
166 g_snprintf (prompt, sizeof (prompt), "%sftp%s> ", COLOR_BLUE, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
167 while ((tempstr = readline (prompt)))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
168 #else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
169 printf ("%sftp%s> ", COLOR_BLUE, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
170 while (fgets (tempstr, sizeof (tempstr), stdin) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
171 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
172 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
173 len = strlen (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
174 if (tempstr[len - 1] == '\n')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
175 tempstr[--len] = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
176 if (tempstr[len - 1] == '\r')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
177 tempstr[--len] = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
178
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
179 for (stpos = tempstr; *stpos == ' '; stpos++);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
180
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
181 for (pos = tempstr + len - 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
182 (*pos == ' ' || *pos == '\t') && pos > tempstr;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
183 pos--)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
184 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
185
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
186 if (*stpos == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
187 {
230
f330309d2f17 2003-7-23 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
188 #if !HAVE_LIBREADLINE
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
189 printf ("%sftp%s> ", COLOR_BLUE, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
190 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
191 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
192 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
193
230
f330309d2f17 2003-7-23 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
194 #if HAVE_LIBREADLINE
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
195 add_history (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
196 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
197
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
198 if ((pos = strchr (stpos, ' ')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
199 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
200 cmdlen = strlen (stpos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
201
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
202 for (i=0; gftp_text_methods[i].command != NULL; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
203 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
204 if (strcmp (gftp_text_methods[i].command, stpos) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
205 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
206 else if (cmdlen >= gftp_text_methods[i].minlen &&
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
207 strncmp (gftp_text_methods[i].command, stpos, cmdlen) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
208 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
209 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
210
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
211 if (pos != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
212 pos++;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
213 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
214 pos = "";
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
215
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
216 if (gftp_text_methods[i].command != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
217 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
218 if (gftp_text_methods[i].request != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
219 request = *gftp_text_methods[i].request;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
220 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
221 request = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
222
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
223 if (gftp_text_methods[i].func (request, pos, NULL) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
224 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
225 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
226 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
227 gftp_text_log (gftp_logging_error, NULL,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
228 _("Error: Command not recognized\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
229
230
f330309d2f17 2003-7-23 Brian Masney <masneyb@gftp.org>
masneyb
parents: 227
diff changeset
230 #if HAVE_LIBREADLINE
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
231 free (tempstr);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
232 #else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
233 printf ("%sftp%s> ", COLOR_BLUE, COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
234 #endif
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
235 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
236
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
237 gftp_text_quit (NULL, NULL, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
238
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
239 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
240 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
241
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
242
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
243 void
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
244 gftp_text_log (gftp_logging_level level, gftp_request * request,
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
245 const char *string, ...)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
246 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
247 char tempstr[512], *stpos, *endpos, *utf8_str = NULL, *outstr;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
248 va_list argp;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
249 int sw;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
250
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
251 g_return_if_fail (string != NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
252
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
253 switch (level)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
254 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
255 case gftp_logging_send:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
256 printf ("%s", COLOR_GREEN);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
257 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
258 case gftp_logging_recv:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
259 printf ("%s", COLOR_YELLOW);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
260 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
261 case gftp_logging_error:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
262 printf ("%s", COLOR_RED);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
263 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
264 default:
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
265 printf ("%s", COLOR_DEFAULT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
266 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
267 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
268
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
269 va_start (argp, string);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
270 g_vsnprintf (tempstr, sizeof (tempstr), string, argp);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
271 va_end (argp);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
272
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
273 #if GLIB_MAJOR_VERSION > 1
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
274 if (!g_utf8_validate (tempstr, -1, NULL))
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
275 utf8_str = gftp_string_to_utf8 (request, tempstr);
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
276 #endif
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
277
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
278 if (utf8_str != NULL)
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
279 outstr = utf8_str;
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
280 else
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
281 outstr = tempstr;
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
282
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
283 if (gftp_logfd != NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
284 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
285 fwrite (outstr, 1, strlen (outstr), gftp_logfd);
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
286 if (ferror (gftp_logfd))
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
287 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
288 fclose (gftp_logfd);
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
289 gftp_logfd = NULL;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
290 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
291 else
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
292 fflush (gftp_logfd);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
293 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
294
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
295 sw = gftp_text_get_win_size ();
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
296 stpos = outstr;
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
297 endpos = outstr + 1;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
298 do
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
299 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
300 if (strlen (stpos) <= sw)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
301 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
302 printf ("%s", stpos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
303 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
304 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
305 for (endpos = stpos + sw - 1; *endpos != ' ' && endpos > stpos; endpos--);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
306 if (endpos != stpos)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
307 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
308 *endpos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
309 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
310 printf ("%s\n", stpos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
311 stpos = endpos + 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
312 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
313 while (stpos != endpos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
314
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
315 printf ("%s", COLOR_DEFAULT);
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
316
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
317 if (utf8_str != NULL)
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
318 g_free (utf8_str);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
319 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
320
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
321
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
322 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
323 gftp_text_open (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
324 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
325 char tempstr[255], *pos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
326
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
327 if (GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
328 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
329 gftp_disconnect (request);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
330 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
331
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
332 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
333 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
334 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
335 _("usage: open [[ftp://][user:pass@]ftp-site[:port][/directory]]\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
336 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
337 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
338
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
339 if (gftp_parse_url (request, command) < 0)
173
4c288d05b26a 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 169
diff changeset
340 return (1);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
341
169
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
342 if (request->need_userpass)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
343 {
169
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
344 if (request->username == NULL || *request->username == '\0')
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
345 {
166
a4bf947e9e22 2003-5-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 143
diff changeset
346 if ((pos = gftp_text_ask_question ("Username [anonymous]", 1, tempstr,
a4bf947e9e22 2003-5-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 143
diff changeset
347 sizeof (tempstr))) != NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
348 {
166
a4bf947e9e22 2003-5-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 143
diff changeset
349 gftp_set_username (request, pos);
169
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
350 gftp_set_password (request, NULL);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
351 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
352 }
169
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
353
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
354 if (request->username != NULL &&
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
355 strcmp (request->username, "anonymous") != 0 &&
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
356 (request->password == NULL || *request->password == '\0'))
166
a4bf947e9e22 2003-5-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 143
diff changeset
357 {
169
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
358 if ((pos = gftp_text_ask_question ("Password", 0, tempstr,
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
359 sizeof (tempstr))) == NULL)
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
360 return (1);
d40f9db52cdf 2003-6-8 Brian Masney <masneyb@gftp.org>
masneyb
parents: 166
diff changeset
361 gftp_set_password (request, pos);
166
a4bf947e9e22 2003-5-27 Brian Masney <masneyb@gftp.org>
masneyb
parents: 143
diff changeset
362 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
363 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
364
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
365 gftp_connect (request);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
366 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
367 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
368
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
369
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
370 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
371 gftp_text_close (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
372 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
373 gftp_disconnect (request);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
374 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
375 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
376
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
377
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
378 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
379 gftp_text_about (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
380 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
381 char *str;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
382
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
383 gftp_text_log (gftp_logging_misc, request,
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
384 "%s. Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org>\n",
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
385 gftp_version);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
386
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
387 str = _("Translated by");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
388 if (strcmp (str, "Translated by") != 0)
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
389 gftp_text_log (gftp_logging_misc, request, "%s\n", str);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
390 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
391 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
392
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
393
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
394 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
395 gftp_text_quit (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
396 {
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
397 gftp_request_destroy (gftp_text_locreq, 1);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
398 gftp_request_destroy (gftp_text_remreq, 1);
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
399 gftp_shutdown();
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
400
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
401 return (0);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
402 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
403
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
404
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
405 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
406 gftp_text_pwd (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
407 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
408 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
409 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
410 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
411 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
412 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
413 }
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
414 gftp_text_log (gftp_logging_misc, request, "%s\n", request->directory);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
415 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
416 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
417
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
418
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
419 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
420 gftp_text_cd (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
421 {
204
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
422 char *tempstr, *newdir = NULL;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
423
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
424 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
425 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
426 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
427 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
428 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
429 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
430 else if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
431 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
432 gftp_text_log (gftp_logging_error, request,
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
433 _("usage: chdir <directory>\n"));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
434 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
435 }
204
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
436 else if (request->protonum == GFTP_LOCAL_NUM)
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
437 {
219
b9584a877daf 2003-7-9 Brian Masney <masneyb@gftp.org>
masneyb
parents: 207
diff changeset
438 if (*command != '/' && request->directory != NULL)
204
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
439 {
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
440 tempstr = g_strconcat (request->directory, "/", command, NULL);
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
441 newdir = expand_path (tempstr);
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
442 g_free (tempstr);
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
443 }
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
444 else
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
445 newdir = expand_path (command);
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
446
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
447 if (newdir == NULL)
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
448 {
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
449 gftp_text_log (gftp_logging_error, request,
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
450 _("usage: chdir <directory>\n"));
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
451 return (1);
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
452 }
9b2de8d3fafe 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 203
diff changeset
453 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
454
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
455 gftp_set_directory (request, newdir != NULL ? newdir : command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
456
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
457 if (newdir != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
458 g_free (newdir);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
459
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
460 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
461 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
462
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
463
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
464 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
465 gftp_text_mkdir (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
466 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
467 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
468 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
469 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
470 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
471 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
472 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
473
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
474 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
475 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
476 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
477 _("usage: mkdir <new directory>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
478 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
479 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
480 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
481 gftp_make_directory (request, command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
482 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
483 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
484 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
485
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
486
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
487 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
488 gftp_text_rmdir (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
489 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
490 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
491 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
492 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
493 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
494 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
495 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
496
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
497 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
498 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
499 gftp_text_log (gftp_logging_error, request,
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
500 _("usage: rmdir <directory>\n"));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
501 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
502 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
503 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
504 gftp_remove_directory (request, command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
505 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
506 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
507 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
508
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
509
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
510 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
511 gftp_text_delete (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
512 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
513 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
514 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
515 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
516 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
517 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
518 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
519
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
520 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
521 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
522 gftp_text_log (gftp_logging_error, request,
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
523 _("usage: delete <file>\n"));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
524 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
525 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
526 {
179
8d933999bba6 2003-6-14 Brian Masney <masneyb@gftp.org>
masneyb
parents: 173
diff changeset
527 if (gftp_remove_file (request, command) == 0)
182
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
528 gftp_delete_cache_entry (request, NULL, 0);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
529 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
530 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
531 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
532
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
533
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
534 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
535 gftp_text_rename (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
536 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
537 char *pos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
538
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
539 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
540 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
541 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
542 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
543 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
544 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
545
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
546 if ((pos = strchr (command, ' ')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
547 *pos++ = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
548
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
549 if (*command == '\0' || pos == NULL || *pos == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
550 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
551 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
552 _("usage: rename <old name> <new name>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
553 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
554 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
555 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
556 gftp_rename_file (request, command, pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
557 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
558 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
559 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
560
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
561
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
562 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
563 gftp_text_chmod (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
564 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
565 char *pos;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
566
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
567 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
568 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
569 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
570 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
571 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
572 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
573
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
574 if ((pos = strchr (command, ' ')) != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
575 *pos++ = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
576
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
577 if (*command == '\0' || pos == NULL || *pos == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
578 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
579 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
580 _("usage: chmod <mode> <file>\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
581 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
582 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
583 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
584 gftp_chmod (request, pos, strtol (command, NULL, 10));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
585 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
586 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
587 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
588
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
589
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
590 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
591 gftp_text_ls (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
592 {
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
593 GList * files, * templist, * delitem;
131
c77f85763e28 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
594 char *color, *filespec, *tempstr;
327
98487556a058 2003-12-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 303
diff changeset
595 intptr_t sortcol, sortasds;
98487556a058 2003-12-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 303
diff changeset
596 int got;
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
597 gftp_file * fle;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
598 time_t curtime;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
599
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
600 time (&curtime);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
601 if (!GFTP_IS_CONNECTED (request))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
602 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
603 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
604 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
605 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
606 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
607
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
608 filespec = *command != '\0' ? command : NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
609 if (gftp_list_files (request) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
610 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
611
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
612 files = NULL;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
613 fle = g_malloc0 (sizeof (*fle));
274
4610d25d4abb 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 230
diff changeset
614 while ((got = gftp_get_next_file (request, NULL, fle)) > 0 ||
4610d25d4abb 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 230
diff changeset
615 got == GFTP_ERETRYABLE)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
616 {
274
4610d25d4abb 2003-9-21 Brian Masney <masneyb@gftp.org>
masneyb
parents: 230
diff changeset
617 if (got < 0 || strcmp (fle->file, ".") == 0)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
618 {
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
619 gftp_file_destroy (fle);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
620 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
621 }
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
622 files = g_list_prepend (files, fle);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
623 fle = g_malloc0 (sizeof (*fle));
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
624 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
625 g_free (fle);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
626
58
c01d91c10f6c 2002-11-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 56
diff changeset
627 if (files == NULL)
207
cf4098008615 2003-7-1 Brian Masney <masneyb@gftp.org>
masneyb
parents: 204
diff changeset
628 {
cf4098008615 2003-7-1 Brian Masney <masneyb@gftp.org>
masneyb
parents: 204
diff changeset
629 gftp_end_transfer (request);
cf4098008615 2003-7-1 Brian Masney <masneyb@gftp.org>
masneyb
parents: 204
diff changeset
630 return (1);
cf4098008615 2003-7-1 Brian Masney <masneyb@gftp.org>
masneyb
parents: 204
diff changeset
631 }
58
c01d91c10f6c 2002-11-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 56
diff changeset
632
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
633 if (request == gftp_text_locreq)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
634 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
635 gftp_lookup_request_option (request, "local_sortcol", &sortcol);
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
636 gftp_lookup_request_option (request, "local_sortasds", &sortasds);
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
637 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
638 else
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
639 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
640 gftp_lookup_request_option (request, "remote_sortcol", &sortcol);
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
641 gftp_lookup_request_option (request, "remote_sortasds", &sortasds);
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
642 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
643
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
644 files = gftp_sort_filelist (files, sortcol, sortasds);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
645 delitem = NULL;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
646 for (templist = files; templist != NULL; templist = templist->next)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
647 {
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
648 if (delitem != NULL)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
649 {
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
650 fle = delitem->data;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
651 gftp_file_destroy (fle);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
652 g_free (fle);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
653 delitem = NULL;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
654 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
655
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
656 fle = templist->data;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
657
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
658 if (*fle->attribs == 'd')
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
659 color = COLOR_BLUE;
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
660 else if (*fle->attribs == 'l')
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
661 color = COLOR_WHITE;
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
662 else if (strchr (fle->attribs, 'x') != NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
663 color = COLOR_GREEN;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
664 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
665 color = COLOR_DEFAULT;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
666
131
c77f85763e28 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
667 tempstr = gftp_gen_ls_string (fle, color, COLOR_DEFAULT);
c77f85763e28 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
668 printf ("%s\n", tempstr);
c77f85763e28 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
669 g_free (tempstr);
c77f85763e28 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 129
diff changeset
670
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
671 delitem = templist;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
672 }
207
cf4098008615 2003-7-1 Brian Masney <masneyb@gftp.org>
masneyb
parents: 204
diff changeset
673
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
674 gftp_end_transfer (request);
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
675
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
676 if (delitem != NULL)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
677 {
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
678 fle = delitem->data;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
679 gftp_file_destroy (fle);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
680 g_free (fle);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
681 delitem = NULL;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
682 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
683
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
684 if (files != NULL)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
685 g_list_free (files);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
686
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
687 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
688 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
689
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
690
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
691 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
692 gftp_text_binary (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
693 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
694 if (!GFTP_IS_CONNECTED (gftp_text_remreq))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
695 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
696 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
697 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
698 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
699 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
700
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
701 gftp_set_request_option (gftp_text_remreq, "ascii_transfers",
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
702 GINT_TO_POINTER(0));
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
703 gftp_set_request_option (gftp_text_locreq, "ascii_transfers",
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
704 GINT_TO_POINTER(0));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
705 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
706 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
707
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
708
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
709 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
710 gftp_text_ascii (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
711 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
712 if (!GFTP_IS_CONNECTED (gftp_text_remreq))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
713 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
714 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
715 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
716 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
717 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
718
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
719 gftp_set_request_option (gftp_text_remreq, "ascii_transfers",
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
720 GINT_TO_POINTER(1));
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
721 gftp_set_request_option (gftp_text_locreq, "ascii_transfers",
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
722 GINT_TO_POINTER(1));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
723 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
724 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
725
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
726
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
727 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
728 gftp_text_mget_file (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
729 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
730 gftp_transfer * transfer;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
731 gftp_file * fle;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
732
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
733 if (!GFTP_IS_CONNECTED (gftp_text_remreq))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
734 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
735 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
736 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
737 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
738 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
739
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
740 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
741 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
742 gftp_text_log (gftp_logging_error, request,
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
743 _("usage: mget <filespec>\n"));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
744 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
745 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
746
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 125
diff changeset
747 transfer = gftp_tdata_new ();
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
748 transfer->fromreq = gftp_text_remreq;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
749 transfer->toreq = gftp_text_locreq;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
750
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
751 /* FIXME - ask whether to resume/skip/overwrite */
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
752 if (gftp_list_files (transfer->fromreq) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
753 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
754 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
755 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
756 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
757 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
758 fle = g_malloc0 (sizeof (*fle));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
759 while (gftp_get_next_file (transfer->fromreq, command, fle) > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
760 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
761 if (strcmp (fle->file, ".") == 0 || strcmp (fle->file, "..") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
762 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
763 gftp_file_destroy (fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
764 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
765 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
766 transfer->files = g_list_append (transfer->files, fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
767 fle = g_malloc (sizeof (*fle));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
768 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
769 g_free (fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
770 gftp_end_transfer (transfer->fromreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
771
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
772 if (transfer->files == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
773 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
774 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
775 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
776 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
777 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
778
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
779 if (gftp_get_all_subdirs (transfer, NULL) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
780 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
781 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
782 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
783 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
784 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
785
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
786 if (transfer->files == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
787 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
788 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
789 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
790 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
791 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
792
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
793 gftp_text_transfer_files (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
794 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
795 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
796 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
797 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
798
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
799
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
800 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
801 gftp_text_mput_file (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
802 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
803 gftp_transfer * transfer;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
804 gftp_file * fle;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
805
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
806 if (!GFTP_IS_CONNECTED (gftp_text_remreq))
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
807 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
808 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
809 _("Error: Not connected to a remote site\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
810 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
811 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
812
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
813 if (*command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
814 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
815 gftp_text_log (gftp_logging_error, request,
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
816 _("usage: mput <filespec>\n"));
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
817 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
818 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
819
129
fe0b21c006f6 2003-4-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 125
diff changeset
820 transfer = gftp_tdata_new ();
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
821 transfer->fromreq = gftp_text_locreq;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
822 transfer->toreq = gftp_text_remreq;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
823
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
824 if (gftp_list_files (transfer->fromreq) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
825 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
826 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
827 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
828 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
829 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
830 fle = g_malloc (sizeof (*fle));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
831 while (gftp_get_next_file (transfer->fromreq, command, fle) > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
832 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
833 if (strcmp (fle->file, ".") == 0 || strcmp (fle->file, "..") == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
834 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
835 gftp_file_destroy (fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
836 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
837 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
838 transfer->files = g_list_append (transfer->files, fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
839 fle = g_malloc (sizeof (*fle));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
840 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
841 g_free (fle);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
842 gftp_end_transfer (transfer->fromreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
843
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
844 if (transfer->files == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
845 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
846 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
847 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
848 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
849 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
850
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
851 if (gftp_get_all_subdirs (transfer, NULL) != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
852 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
853 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
854 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
855 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
856 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
857
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
858 if (transfer->files == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
859 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
860 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
861 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
862 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
863 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
864
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
865 gftp_text_transfer_files (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
866 transfer->fromreq = transfer->toreq = NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
867 free_tdata (transfer);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
868 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
869 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
870
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
871
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
872 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
873 gftp_text_transfer_files (gftp_transfer * transfer)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
874 {
327
98487556a058 2003-12-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 303
diff changeset
875 int i, j, sw, tot;
98487556a058 2003-12-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 303
diff changeset
876 intptr_t preserve_permissions;
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
877 char buf[8192], *progress = "|/-\\";
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
878 struct timeval updatetime;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
879 long fromsize, total;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
880 gftp_file * curfle;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
881 ssize_t num_read;
182
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
882 mode_t mode;
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
883
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
884 gftp_lookup_request_option (transfer->fromreq, "preserve_permissions",
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
885 &preserve_permissions);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
886
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
887 for (transfer->curfle = transfer->files;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
888 transfer->curfle != NULL;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
889 transfer->curfle = transfer->curfle->next)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
890 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
891 curfle = transfer->curfle->data;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
892 if (curfle->transfer_action == GFTP_TRANS_ACTION_SKIP)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
893 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
894
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
895 if (curfle->isdir && transfer->toreq->mkdir != NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
896 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
897 transfer->toreq->mkdir (transfer->toreq, curfle->destfile);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
898 continue;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
899 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
900
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
901 transfer->curtrans = curfle->startsize;
58
c01d91c10f6c 2002-11-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 56
diff changeset
902 fromsize = gftp_transfer_file (transfer->fromreq, curfle->file, -1,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
903 curfle->startsize, transfer->toreq, curfle->destfile,
58
c01d91c10f6c 2002-11-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 56
diff changeset
904 -1, curfle->startsize);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
905 if (fromsize < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
906 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
907
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
908 gettimeofday (&transfer->starttime, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
909 memcpy (&transfer->lasttime, &transfer->starttime,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
910 sizeof (transfer->lasttime));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
911 memset (&updatetime, 0, sizeof (updatetime));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
912
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
913 total = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
914 i = 0;
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
915 num_read = -1;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
916 while (!cancel && (num_read = gftp_get_next_file_chunk (transfer->fromreq,
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
917 buf, sizeof (buf))) > 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
918 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
919 printf ("\r%c ", progress[i++]);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
920 fflush (stdout);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
921 if (progress[i] == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
922 i = 0;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
923
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
924 total += num_read;
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
925 gftp_calc_kbs (transfer, num_read);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
926 if (transfer->lasttime.tv_sec - updatetime.tv_sec >= 1 || total >= fromsize)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
927 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
928 sw = gftp_text_get_win_size () - 20;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
929 tot = (float) total / (float) fromsize * (float) sw;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
930
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
931 if (tot > sw)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
932 tot = sw;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
933 printf ("[");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
934 for (j=0; j<tot; j++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
935 printf ("=");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
936 for (j=0; j<sw-tot; j++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
937 printf (" ");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
938 printf ("] @ %.2fKB/s", transfer->kbs);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
939 fflush (stdout);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
940 memcpy (&updatetime, &transfer->lasttime, sizeof (updatetime));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
941 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
942
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
943 if (gftp_put_next_file_chunk (transfer->toreq, buf, num_read) < 0)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
944 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
945 num_read = -1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
946 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
947 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
948 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
949 printf ("\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
950
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
951 if (num_read < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
952 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
953 gftp_text_log (gftp_logging_misc, transfer->fromreq,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
954 _("Could not download %s\n"), curfle->file);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
955 gftp_disconnect (transfer->fromreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
956 gftp_disconnect (transfer->toreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
957 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
958 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
959 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
960 gftp_text_log (gftp_logging_misc, transfer->fromreq,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
961 _("Successfully transferred %s\n"), curfle->file);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
962 gftp_end_transfer (transfer->fromreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
963 gftp_end_transfer (transfer->toreq);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
964 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
965
182
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
966 if (!curfle->is_fd && preserve_permissions)
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
967 {
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
968 if (curfle->attribs)
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
969 {
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
970 mode = gftp_parse_attribs (curfle->attribs);
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
971 if (mode != 0)
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
972 gftp_chmod (transfer->toreq, curfle->destfile, mode);
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
973 }
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
974
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
975 if (curfle->datetime != 0)
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
976 gftp_set_file_time (transfer->toreq, curfle->destfile,
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
977 curfle->datetime);
33b394ebba68 2003-6-15 Brian Masney <masneyb@gftp.org>
masneyb
parents: 179
diff changeset
978 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
979 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
980 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
981 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
982
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
983
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
984 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
985 gftp_text_help (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
986 {
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
987 int i, j, ele, numrows, numcols = 6, handled;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
988 char *pos;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
989
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
990 if (command != NULL && *command != '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
991 {
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
992 for (pos = command; *pos != ' ' && *pos != '\0'; pos++);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
993 if (*pos == ' ')
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
994 {
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
995 *pos++ = '\0';
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
996 if (*pos == '\0')
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
997 pos = NULL;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
998 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
999 else
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1000 pos = NULL;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1001
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1002 for (i=0; gftp_text_methods[i].command != NULL; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1003 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1004 if (strcmp (gftp_text_methods[i].command, command) == 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1005 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1006 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1007
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1008 if (gftp_text_methods[i].cmd_description != NULL)
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1009 {
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1010 if (pos != NULL && gftp_text_methods[i].subhelp_func != NULL)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1011 handled = gftp_text_methods[i].subhelp_func (pos);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1012 else
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1013 handled = 0;
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1014
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1015 if (!handled)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1016 printf ("%s\n", _(gftp_text_methods[i].cmd_description));
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1017 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1018 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1019 *command = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1020 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1021
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1022 if (command == NULL || *command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1023 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1024 numrows = number_commands / numcols;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1025 if (number_commands % numcols != 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1026 numrows++;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1027
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1028 printf (_("Supported commands:\n\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1029 for (i=0; i<numrows; i++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1030 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1031 printf (" ");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1032 for (j=0; j<numcols; j++)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1033 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1034 ele = i + j * numrows;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1035 if (ele >= number_commands)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1036 break;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1037 printf ("%-10s", gftp_text_methods[ele].command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1038 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1039 printf ("\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1040 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1041
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1042 printf ("\n");
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1043 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1044 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1045 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1046
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1047
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1048 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1049 gftp_text_set (gftp_request * request, char *command, gpointer *data)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1050 {
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1051 gftp_config_vars * cv, newcv;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1052 char *pos, *backpos;
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1053 GList * templist;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1054 int i;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1055
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1056 if (command == NULL || *command == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1057 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1058 for (templist = gftp_options_list;
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1059 templist != NULL;
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1060 templist = templist->next)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1061 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1062 cv = templist->data;
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1063
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1064 for (i=0; cv[i].key != NULL; i++)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1065 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1066 if (!(cv[i].ports_shown & GFTP_PORT_TEXT))
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1067 continue;
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1068
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1069 if (*cv[i].key == '\0' ||
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1070 gftp_option_types[cv[i].otype].write_function == NULL)
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1071 continue;
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1072
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1073 printf ("%s = ", cv[i].key);
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1074 gftp_option_types[cv[i].otype].write_function (&cv[i], stdout, 0);
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1075 printf ("\n");
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1076 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1077 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1078 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1079 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1080 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1081 if ((pos = strchr (command, '=')) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1082 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
1083 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1084 _("usage: set [variable = value]\n"));
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1085 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1086 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1087 *pos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1088
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1089 for (backpos = pos - 1;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1090 (*backpos == ' ' || *backpos == '\t') && backpos > command;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1091 backpos--)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1092 *backpos = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1093 for (++pos; *pos == ' ' || *pos == '\t'; pos++);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1094
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1095 if ((cv = g_hash_table_lookup (gftp_global_options_htable, command)) == NULL)
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1096 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
1097 gftp_text_log (gftp_logging_error, request,
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1098 _("Error: Variable %s is not a valid configuration variable.\n"), command);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1099 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1100 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1101
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1102 if (!(cv->ports_shown & GFTP_PORT_TEXT))
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1103 {
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
1104 gftp_text_log (gftp_logging_error, request,
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1105 _("Error: Variable %s is not available in the text port of gFTP\n"), command);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1106 return (1);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1107 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1108
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1109 if (gftp_option_types[cv->otype].read_function != NULL)
227
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1110 {
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1111 memcpy (&newcv, cv, sizeof (newcv));
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1112 newcv.flags &= ~GFTP_CVARS_FLAGS_DYNMEM;
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1113
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1114 gftp_option_types[cv->otype].read_function (pos, &newcv, 1);
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1115
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1116 gftp_set_global_option (command, newcv.value);
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1117
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1118 if (newcv.flags & GFTP_CVARS_FLAGS_DYNMEM)
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1119 g_free (newcv.value);
a85a097bbb02 2003-7-20 Brian Masney <masneyb@gftp.org>
masneyb
parents: 219
diff changeset
1120 }
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1121 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1122
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1123 return (1);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1124 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1125
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1126
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1127 int
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1128 gftp_text_clear (gftp_request * request, char *command, gpointer *data)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1129 {
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1130 if (strcasecmp (command, "cache") == 0)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1131 gftp_clear_cache_files ();
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1132 else
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
1133 gftp_text_log (gftp_logging_error, request, _("Invalid argument\n"));
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1134 return (1);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1135 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1136
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1137
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1138 char *
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1139 gftp_text_ask_question (const char *question, int echo, char *buf, size_t size)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1140 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1141 struct termios term, oldterm;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1142 sigset_t sig, sigsave;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1143 char *pos, *termname;
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
1144 FILE *infd;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1145
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1146 if (!echo)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1147 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1148 sigemptyset (&sig);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1149 sigaddset (&sig, SIGINT);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1150 sigaddset (&sig, SIGTSTP);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1151 sigprocmask (SIG_BLOCK, &sig, &sigsave);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1152
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1153 termname = ctermid (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1154 if ((infd = fopen (termname, "r+")) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1155 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1156
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1157 gftp_text_log (gftp_logging_error, NULL,
186
13ca1defdc75 2003-6-16 Brian Masney <masneyb@gftp.org>
masneyb
parents: 182
diff changeset
1158 _("Cannot open controlling terminal %s\n"), termname);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1159 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1160 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1161
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1162 tcgetattr (0, &term);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1163 oldterm = term;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1164 term.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1165 tcsetattr (fileno (infd), TCSAFLUSH, &term);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1166 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1167 else
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
1168 infd = stdin;
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1169
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
1170 printf ("%s%s%s: ", COLOR_BLUE, question, COLOR_DEFAULT);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1171
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1172 if (fgets (buf, size, infd) == NULL)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1173 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1174 buf[size - 1] = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1175
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1176 if (!echo)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1177 {
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
1178 printf ("\n");
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1179 tcsetattr (fileno (infd), TCSAFLUSH, &oldterm);
201
0098dae654a5 2003-6-25 Brian Masney <masneyb@gftp.org>
masneyb
parents: 186
diff changeset
1180 fclose (infd);
1
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1181 sigprocmask (SIG_SETMASK, &sigsave, NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1182 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1183
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1184 for (pos = buf + strlen (buf) - 1; *pos == ' ' || *pos == '\r' ||
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1185 *pos == '\n'; pos--);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1186 *(pos+1) = '\0';
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1187
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1188 for (pos = buf; *pos == ' '; pos++);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1189 if (*pos == '\0')
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1190 return (NULL);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1191
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1192 return (pos);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1193 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1194
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1195
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1196 int
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1197 gftp_text_get_win_size (void)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1198 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1199 struct winsize size;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1200 int ret;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1201
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1202 if (ioctl (0, TIOCGWINSZ, (char *) &size) < 0)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1203 ret = 80;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1204 else
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1205 ret = size.ws_col;
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1206 return (ret);
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1207 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1208
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1209
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1210 void
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1211 sig_child (int signo)
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1212 {
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1213 }
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1214
8b1883341c6f Initial revision
masneyb
parents:
diff changeset
1215
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1216 int
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1217 gftp_text_set_show_subhelp (char *topic)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1218 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1219 gftp_config_vars * cv;
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1220
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1221 if ((cv = g_hash_table_lookup (gftp_global_options_htable, topic)) != NULL)
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1222 {
122
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1223 printf ("%s\n", cv->comment);
76e2b58a9440 2003-4-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 67
diff changeset
1224 return (1);
37
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1225 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1226
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1227 return (0);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1228 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1229
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1230
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1231 int
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1232 gftp_text_clear_show_subhelp (char *topic)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1233 {
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1234 if (strcmp (topic, "cache") == 0)
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1235 {
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1236 printf (_("Clear the directory cache\n"));
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1237 return (1);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1238 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1239
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1240 return (0);
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1241 }
5a178bd04ca5 2002-10-13 Brian Masney <masneyb@gftp.org>
masneyb
parents: 33
diff changeset
1242