annotate src/uicommon/gftpui.c @ 354:2ea37b3c0158

2003-1-5 Brian Masney <masneyb@gftp.org> * lib/gftp.h src/gtk/misc-gtk.c src/text/gftp-text.c - added logging level type gftp_logging_misc_nolog. If a message is logged with this level, it will be displayed to the screen but, it will not be logged to disk. * src/uicommon/gftpui.c - log the directory listings with the log level gftp_logging_misc_nolog * src/gtk/gtkui.c (gftpui_generic_thread) - fixed segfault. Pass cdata structure instead of wdata.
author masneyb
date Mon, 05 Jan 2004 23:38:22 +0000
parents e5ad008e7ea8
children 60d3da6ab336
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
1 /*****************************************************************************/
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
2 /* gftpui.c - UI related functions for gFTP */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
3 /* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
4 /* */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
5 /* This program is free software; you can redistribute it and/or modify */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
6 /* it under the terms of the GNU General Public License as published by */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
7 /* the Free Software Foundation; either version 2 of the License, or */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
8 /* (at your option) any later version. */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
9 /* */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
10 /* This program is distributed in the hope that it will be useful, */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
11 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
12 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
13 /* GNU General Public License for more details. */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
14 /* */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
15 /* You should have received a copy of the GNU General Public License */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
16 /* along with this program; if not, write to the Free Software */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
17 /* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
18 /*****************************************************************************/
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
19
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
20 #include "gftpui.h"
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
21 static const char cvsid[] = "$Id$";
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
22
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
23 sigjmp_buf gftpui_common_jmp_environment;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
24 volatile int gftpui_common_use_jmp_environment = 0;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
25
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
26 static void *gftpui_common_local_uidata, *gftpui_common_remote_uidata;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
27 static gftp_request * gftpui_common_local_request, * gftpui_common_remote_request;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
28
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
29
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
30 static gftp_logging_func
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
31 _gftpui_common_log (gftp_request * request)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
32 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
33 if (request == NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
34 return (gftpui_common_local_request->logging_function);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
35 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
36 return (request->logging_function);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
37 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
38
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
39
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
40 static void *
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
41 _gftpui_common_thread_callback (void * data)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
42 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
43 gftpui_callback_data * cdata;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
44 intptr_t network_timeout;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
45 int success, sj;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
46
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
47 cdata = data;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
48 gftp_lookup_request_option (cdata->request, "network_timeout",
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
49 &network_timeout);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
50
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
51 sj = sigsetjmp (gftpui_common_jmp_environment, 1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
52 gftpui_common_use_jmp_environment = 1;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
53
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
54 success = 0;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
55 if (sj == 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
56 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
57 if (network_timeout > 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
58 alarm (network_timeout);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
59
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
60 success = cdata->run_function (cdata);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
61
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
62 alarm (0);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
63 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
64 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
65 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
66 gftp_disconnect (cdata->request);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
67 cdata->request->logging_function (gftp_logging_error, cdata->request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
68 _("Operation canceled\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
69 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
70
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
71 gftpui_common_use_jmp_environment = 0;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
72 cdata->request->stopable = 0;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
73
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
74 return (GINT_TO_POINTER (success));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
75 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
76
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
77
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
78 int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
79 gftpui_common_run_callback_function (gftpui_callback_data * cdata)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
80 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
81 int ret;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
82
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
83 if (gftpui_check_reconnect (cdata) < 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
84 return (0);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
85
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
86 if (gftp_protocols[cdata->request->protonum].use_threads)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
87 ret = GPOINTER_TO_INT (gftpui_generic_thread (_gftpui_common_thread_callback, cdata));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
88 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
89 ret = GPOINTER_TO_INT (cdata->run_function (cdata));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
90
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
91 if (ret)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
92 gftpui_refresh (cdata->uidata);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
93
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
94 return (ret);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
95 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
96
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
97
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
98 RETSIGTYPE
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
99 gftpui_common_signal_handler (int signo)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
100 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
101 signal (signo, gftpui_common_signal_handler);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
102
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
103 if (gftpui_common_use_jmp_environment)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
104 siglongjmp (gftpui_common_jmp_environment, signo == SIGINT ? 1 : 2);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
105 else if (signo == SIGINT)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
106 exit (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
107 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
108
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
109
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
110 void
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
111 gftpui_common_about (gftp_logging_func logging_function, gpointer logdata)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
112 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
113 char *str;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
114
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
115 logging_function (gftp_logging_misc, logdata, "%s, Copyright (C) 1998-2003 Brian Masney <", gftp_version);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
116 logging_function (gftp_logging_recv, logdata, "masneyb@gftp.org");
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
117 logging_function (gftp_logging_misc, logdata, _(">. If 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"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
118 logging_function (gftp_logging_misc, logdata, _("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"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
119
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
120 str = _("Translated by");
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
121 if (strcmp (str, "Translated by") != 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
122 logging_function (gftp_logging_misc, logdata, "%s\n", str);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
123 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
124
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
125
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
126 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
127 gftpui_common_cmd_about (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
128 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
129 gftpui_common_about (_gftpui_common_log (request),
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
130 gftpui_common_local_request);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
131 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
132 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
133
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
134
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
135 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
136 gftpui_common_cmd_ascii (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
137 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
138 gftp_set_global_option ("ascii_transfers", GINT_TO_POINTER(1));
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
139 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
140 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
141
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
142
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
143 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
144 gftpui_common_cmd_binary (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
145 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
146 gftp_set_global_option ("ascii_transfers", GINT_TO_POINTER(0));
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
147 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
148 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
149
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
150
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
151 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
152 gftpui_common_cmd_chmod (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
153 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
154 gftpui_callback_data * cdata;
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
155 char *pos;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
156
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
157 if (!GFTP_IS_CONNECTED (request))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
158 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
159 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
160 _("Error: Not connected to a remote site\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
161
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
162 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
163 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
164
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
165 if ((pos = strchr (command, ' ')) != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
166 *pos++ = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
167
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
168 if (*command == '\0' || pos == NULL || *pos == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
169 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
170 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
171 _("usage: chmod <mode> <file>\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
172 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
173 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
174 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
175 cdata = g_malloc0 (sizeof (*cdata));
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
176 cdata->request = request;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
177 cdata->uidata = uidata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
178 cdata->input_string = command;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
179 cdata->source_string = pos;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
180 cdata->run_function = gftpui_common_run_chmod;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
181
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
182 gftpui_common_run_callback_function (cdata);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
183
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
184 g_free (cdata);
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
185 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
186
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
187 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
188 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
189
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
190
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
191 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
192 gftpui_common_cmd_rename (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
193 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
194 gftpui_callback_data * cdata;
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
195 char *pos;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
196
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
197 if (!GFTP_IS_CONNECTED (request))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
198 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
199 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
200 _("Error: Not connected to a remote site\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
201 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
202 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
203
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
204 if ((pos = strchr (command, ' ')) != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
205 *pos++ = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
206
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
207 if (*command == '\0' || pos == NULL || *pos == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
208 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
209 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
210 _("usage: rename <old name> <new name>\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
211 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
212 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
213 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
214 cdata = g_malloc0 (sizeof (*cdata));
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
215 cdata->request = request;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
216 cdata->uidata = uidata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
217 cdata->source_string = command;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
218 cdata->input_string = pos;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
219 cdata->run_function = gftpui_common_run_rename;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
220
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
221 gftpui_common_run_callback_function (cdata);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
222
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
223 g_free (cdata);
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
224 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
225
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
226 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
227 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
228
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
229
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
230 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
231 gftpui_common_cmd_delete (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
232 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
233 gftpui_callback_data * cdata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
234
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
235 if (!GFTP_IS_CONNECTED (request))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
236 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
237 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
238 _("Error: Not connected to a remote site\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
239 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
240 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
241 else if (*command == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
242 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
243 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
244 _("usage: delete <file>\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
245 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
246 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
247 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
248 cdata = g_malloc0 (sizeof (*cdata));
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
249 cdata->request = request;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
250 cdata->uidata = uidata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
251 cdata->input_string = command;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
252 cdata->run_function = gftpui_common_run_delete;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
253
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
254 gftpui_common_run_callback_function (cdata);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
255
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
256 g_free (cdata);
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
257 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
258
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
259 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
260 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
261
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
262
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
263 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
264 gftpui_common_cmd_rmdir (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
265 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
266 gftpui_callback_data * cdata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
267
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
268 if (!GFTP_IS_CONNECTED (request))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
269 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
270 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
271 _("Error: Not connected to a remote site\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
272 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
273 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
274 else if (*command == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
275 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
276 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
277 _("usage: rmdir <directory>\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
278 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
279 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
280 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
281 cdata = g_malloc0 (sizeof (*cdata));
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
282 cdata->request = request;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
283 cdata->uidata = uidata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
284 cdata->input_string = command;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
285 cdata->run_function = gftpui_common_run_rmdir;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
286
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
287 gftpui_common_run_callback_function (cdata);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
288
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
289 g_free (cdata);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
290 }
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
291
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
292 return (1);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
293 }
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
294
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
295
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
296 static int
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
297 gftpui_common_cmd_site (void *uidata, gftp_request * request, char *command)
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
298 {
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
299 gftpui_callback_data * cdata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
300
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
301 if (!GFTP_IS_CONNECTED (request))
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
302 {
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
303 request->logging_function (gftp_logging_error, request,
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
304 _("Error: Not connected to a remote site\n"));
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
305 return (1);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
306 }
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
307 else if (*command == '\0')
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
308 {
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
309 request->logging_function (gftp_logging_error, request,
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
310 _("usage: site <site command>\n"));
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
311 }
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
312 else
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
313 {
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
314 cdata = g_malloc0 (sizeof (*cdata));
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
315 cdata->request = request;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
316 cdata->uidata = uidata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
317 cdata->input_string = command;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
318 cdata->run_function = gftpui_common_run_site;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
319
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
320 gftpui_common_run_callback_function (cdata);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
321
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
322 g_free (cdata);
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
323 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
324
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
325 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
326 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
327
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
328
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
329 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
330 gftpui_common_cmd_mkdir (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
331 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
332 gftpui_callback_data * cdata;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
333
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
334 if (!GFTP_IS_CONNECTED (request))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
335 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
336 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
337 _("Error: Not connected to a remote site\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
338 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
339 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
340 else if (*command == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
341 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
342 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
343 _("usage: mkdir <new directory>\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
344 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
345 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
346 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
347 cdata = g_malloc0 (sizeof (*cdata));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
348 cdata->request = request;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
349 cdata->uidata = uidata;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
350 cdata->input_string = command;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
351 cdata->run_function = gftpui_common_run_mkdir;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
352
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
353 gftpui_common_run_callback_function (cdata);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
354
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
355 g_free (cdata);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
356 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
357
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
358 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
359 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
360
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
361
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
362 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
363 gftpui_common_cmd_chdir (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
364 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
365 gftpui_callback_data * cdata;
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
366 char *tempstr, *newdir = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
367
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
368 if (!GFTP_IS_CONNECTED (request))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
369 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
370 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
371 _("Error: Not connected to a remote site\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
372 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
373 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
374 else if (*command == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
375 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
376 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
377 _("usage: chdir <directory>\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
378 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
379 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
380 else if (request->protonum == GFTP_LOCAL_NUM)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
381 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
382 if (*command != '/' && request->directory != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
383 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
384 tempstr = gftp_build_path (request->directory, command, NULL);
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
385 newdir = expand_path (tempstr);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
386 g_free (tempstr);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
387 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
388 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
389 newdir = expand_path (command);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
390
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
391 if (newdir == NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
392 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
393 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
394 _("usage: chdir <directory>\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
395 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
396 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
397 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
398
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
399 cdata = g_malloc0 (sizeof (*cdata));
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
400 cdata->request = request;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
401 cdata->uidata = uidata;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
402 cdata->input_string = newdir != NULL ? newdir : command;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
403 cdata->run_function = gftpui_common_run_chdir;
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
404
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
405 gftpui_common_run_callback_function (cdata);
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
406
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
407 g_free (cdata);
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
408
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
409 if (newdir != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
410 g_free (newdir);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
411
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
412 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
413 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
414
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
415
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
416 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
417 gftpui_common_cmd_close (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
418 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
419 gftp_disconnect (request);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
420 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
421 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
422
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
423
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
424 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
425 gftpui_common_cmd_pwd (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
426 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
427 if (!GFTP_IS_CONNECTED (request))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
428 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
429 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
430 _("Error: Not connected to a remote site\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
431 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
432 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
433
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
434 request->logging_function (gftp_logging_misc, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
435 "%s\n", request->directory);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
436
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
437 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
438 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
439
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
440
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
441 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
442 gftpui_common_cmd_quit (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
443 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
444 gftp_shutdown();
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
445
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
446 return (0);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
447 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
448
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
449
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
450 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
451 gftpui_common_cmd_clear (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
452 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
453 gftp_logging_func logfunc;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
454
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
455 if (strcasecmp (command, "cache") == 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
456 gftp_clear_cache_files ();
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
457 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
458 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
459 logfunc = _gftpui_common_log (request);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
460 logfunc (gftp_logging_error, request, _("Invalid argument\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
461 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
462
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
463 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
464 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
465
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
466
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
467 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
468 gftpui_common_clear_show_subhelp (char *topic)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
469 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
470 gftp_logging_func logfunc;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
471
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
472 logfunc = gftpui_common_local_request->logging_function;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
473 if (strcmp (topic, "cache") == 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
474 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
475 logfunc (gftp_logging_misc, NULL, _("Clear the directory cache\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
476 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
477 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
478
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
479 return (0);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
480 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
481
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
482
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
483 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
484 gftpui_common_set_show_subhelp (char *topic)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
485 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
486 gftp_logging_func logfunc;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
487 gftp_config_vars * cv;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
488
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
489 logfunc = gftpui_common_local_request->logging_function;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
490 if ((cv = g_hash_table_lookup (gftp_global_options_htable, topic)) != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
491 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
492 logfunc (gftp_logging_misc, NULL, "%s\n", cv->comment);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
493 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
494 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
495
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
496 return (0);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
497 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
498
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
499
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
500 int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
501 gftpui_common_cmd_ls (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
502 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
503 char *startcolor, *endcolor, *filespec, *tempstr;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
504 GList * files, * templist, * delitem;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
505 intptr_t sortcol, sortasds;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
506 gftp_file * fle;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
507 time_t curtime;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
508 int got;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
509
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
510 time (&curtime);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
511 if (!GFTP_IS_CONNECTED (request))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
512 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
513 request->logging_function (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
514 _("Error: Not connected to a remote site\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
515 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
516 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
517
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
518 filespec = *command != '\0' ? command : NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
519 if (gftp_list_files (request) != 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
520 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
521
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
522 files = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
523 fle = g_malloc0 (sizeof (*fle));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
524 while ((got = gftp_get_next_file (request, NULL, fle)) > 0 ||
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
525 got == GFTP_ERETRYABLE)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
526 {
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
527 if (got < 0 || strcmp (fle->file, ".") == 0 ||
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
528 !gftp_match_filespec (fle->file, filespec))
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
529 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
530 gftp_file_destroy (fle);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
531 continue;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
532 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
533 files = g_list_prepend (files, fle);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
534 fle = g_malloc0 (sizeof (*fle));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
535 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
536 g_free (fle);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
537
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
538 if (files == NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
539 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
540 gftp_end_transfer (request);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
541 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
542 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
543
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
544 if (request == gftpui_common_local_request)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
545 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
546 gftp_lookup_request_option (request, "local_sortcol", &sortcol);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
547 gftp_lookup_request_option (request, "local_sortasds", &sortasds);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
548 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
549 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
550 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
551 gftp_lookup_request_option (request, "remote_sortcol", &sortcol);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
552 gftp_lookup_request_option (request, "remote_sortasds", &sortasds);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
553 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
554
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
555 files = gftp_sort_filelist (files, sortcol, sortasds);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
556 delitem = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
557 for (templist = files; templist != NULL; templist = templist->next)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
558 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
559 if (delitem != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
560 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
561 fle = delitem->data;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
562 gftp_file_destroy (fle);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
563 g_free (fle);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
564 delitem = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
565 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
566
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
567 fle = templist->data;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
568
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
569 gftpui_lookup_file_colors (fle, &startcolor, &endcolor);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
570 tempstr = gftp_gen_ls_string (fle, startcolor, endcolor);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
571
354
2ea37b3c0158 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
572 request->logging_function (gftp_logging_misc_nolog, request, "%s\n",
2ea37b3c0158 2003-1-5 Brian Masney <masneyb@gftp.org>
masneyb
parents: 350
diff changeset
573 tempstr);
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
574
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
575 g_free (tempstr);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
576
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
577 delitem = templist;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
578 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
579
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
580 gftp_end_transfer (request);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
581
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
582 if (delitem != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
583 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
584 fle = delitem->data;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
585 gftp_file_destroy (fle);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
586 g_free (fle);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
587 delitem = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
588 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
589
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
590 if (files != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
591 g_list_free (files);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
592
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
593 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
594 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
595
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
596
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
597 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
598 gftpui_common_cmd_set (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
599 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
600 gftp_config_vars * cv, newcv;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
601 gftp_logging_func logfunc;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
602 char *pos, *backpos;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
603 GList * templist;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
604 int i;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
605
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
606 logfunc = _gftpui_common_log (request);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
607
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
608 if (command == NULL || *command == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
609 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
610 for (templist = gftp_options_list;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
611 templist != NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
612 templist = templist->next)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
613 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
614 cv = templist->data;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
615
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
616 for (i=0; cv[i].key != NULL; i++)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
617 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
618 if (!(cv[i].ports_shown & GFTP_PORT_TEXT))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
619 continue;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
620
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
621 if (*cv[i].key == '\0' ||
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
622 gftp_option_types[cv[i].otype].write_function == NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
623 continue;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
624
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
625 printf ("%s = ", cv[i].key);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
626 gftp_option_types[cv[i].otype].write_function (&cv[i], stdout, 0);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
627 printf ("\n");
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
628 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
629 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
630 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
631 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
632 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
633 if ((pos = strchr (command, '=')) == NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
634 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
635 logfunc (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
636 _("usage: set [variable = value]\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
637 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
638 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
639 *pos = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
640
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
641 for (backpos = pos - 1;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
642 (*backpos == ' ' || *backpos == '\t') && backpos > command;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
643 backpos--)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
644 *backpos = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
645 for (++pos; *pos == ' ' || *pos == '\t'; pos++);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
646
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
647 if ((cv = g_hash_table_lookup (gftp_global_options_htable, command)) == NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
648 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
649 logfunc (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
650 _("Error: Variable %s is not a valid configuration variable.\n"), command);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
651 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
652 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
653
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
654 if (!(cv->ports_shown & GFTP_PORT_TEXT))
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
655 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
656 logfunc (gftp_logging_error, request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
657 _("Error: Variable %s is not available in the text port of gFTP\n"), command);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
658 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
659 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
660
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
661 if (gftp_option_types[cv->otype].read_function != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
662 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
663 memcpy (&newcv, cv, sizeof (newcv));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
664 newcv.flags &= ~GFTP_CVARS_FLAGS_DYNMEM;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
665
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
666 gftp_option_types[cv->otype].read_function (pos, &newcv, 1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
667
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
668 gftp_set_global_option (command, newcv.value);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
669
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
670 if (newcv.flags & GFTP_CVARS_FLAGS_DYNMEM)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
671 g_free (newcv.value);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
672 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
673 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
674
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
675 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
676 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
677
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
678
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
679 static int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
680 gftpui_common_cmd_help (void *uidata, gftp_request * request, char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
681 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
682 int i, j, ele, numrows, numcols = 6, handled, number_commands;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
683 char *pos;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
684
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
685 for (number_commands=0;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
686 gftpui_common_commands[number_commands].command != NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
687 number_commands++);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
688
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
689 if (command != NULL && *command != '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
690 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
691 for (pos = command; *pos != ' ' && *pos != '\0'; pos++);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
692 if (*pos == ' ')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
693 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
694 *pos++ = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
695 if (*pos == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
696 pos = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
697 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
698 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
699 pos = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
700
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
701 for (i=0; gftpui_common_commands[i].command != NULL; i++)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
702 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
703 if (strcmp (gftpui_common_commands[i].command, command) == 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
704 break;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
705 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
706
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
707 if (gftpui_common_commands[i].cmd_description != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
708 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
709 if (pos != NULL && gftpui_common_commands[i].subhelp_func != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
710 handled = gftpui_common_commands[i].subhelp_func (pos);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
711 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
712 handled = 0;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
713
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
714 if (!handled)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
715 printf ("%s\n", _(gftpui_common_commands[i].cmd_description));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
716 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
717 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
718 *command = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
719 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
720
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
721 if (command == NULL || *command == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
722 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
723 numrows = number_commands / numcols;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
724 if (number_commands % numcols != 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
725 numrows++;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
726
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
727 printf (_("Supported commands:\n\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
728 for (i=0; i<numrows; i++)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
729 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
730 printf (" ");
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
731 for (j=0; j<numcols; j++)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
732 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
733 ele = i + j * numrows;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
734 if (ele >= number_commands)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
735 break;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
736 printf ("%-10s", gftpui_common_commands[ele].command);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
737 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
738 printf ("\n");
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
739 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
740
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
741 printf ("\n");
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
742 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
743 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
744 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
745
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
746
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
747 gftpui_common_methods gftpui_common_commands[] = {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
748 {N_("about"), 2, gftpui_common_cmd_about, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
749 N_("Shows gFTP information"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
750 {N_("ascii"), 2, gftpui_common_cmd_ascii, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
751 N_("Sets the current file transfer mode to Ascii (only for FTP)"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
752 {N_("binary"), 1, gftpui_common_cmd_binary, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
753 N_("Sets the current file transfer mode to Binary (only for FTP)"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
754 {N_("cd"), 2, gftpui_common_cmd_chdir, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
755 N_("Changes the remote working directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
756 {N_("chdir"), 3, gftpui_common_cmd_chdir, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
757 N_("Changes the remote working directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
758 {N_("chmod"), 3, gftpui_common_cmd_chmod, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
759 N_("Changes the permissions of a remote file"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
760 {N_("clear"), 3, gftpui_common_cmd_clear, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
761 N_("Available options: cache"), gftpui_common_clear_show_subhelp},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
762 {N_("close"), 3, gftpui_common_cmd_close, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
763 N_("Disconnects from the remote site"), NULL},
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
764 {N_("delete"), 1, gftpui_common_cmd_delete, gftpui_common_request_remote,
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
765 N_("Removes a remote file"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
766 /* FIXME
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
767 {N_("get"), 1, gftp_text_mget_file, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
768 N_("Downloads remote file(s)"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
769 */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
770 {N_("help"), 1, gftpui_common_cmd_help, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
771 N_("Shows this help screen"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
772 {N_("lcd"), 3, gftpui_common_cmd_chdir, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
773 N_("Changes the local working directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
774 {N_("lchdir"), 4, gftpui_common_cmd_chdir, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
775 N_("Changes the local working directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
776 {N_("lchmod"), 4, gftpui_common_cmd_chmod, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
777 N_("Changes the permissions of a local file"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
778 {N_("ldelete"), 2, gftpui_common_cmd_delete, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
779 N_("Removes a local file"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
780 {N_("lls"), 2, gftpui_common_cmd_ls, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
781 N_("Shows the directory listing for the current local directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
782 {N_("lmkdir"), 2, gftpui_common_cmd_mkdir, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
783 N_("Creates a local directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
784 {N_("lpwd"), 2, gftpui_common_cmd_pwd, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
785 N_("Show current local directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
786 {N_("lrename"), 3, gftpui_common_cmd_rename, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
787 N_("Rename a local file"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
788 {N_("lrmdir"), 3, gftpui_common_cmd_rmdir, gftpui_common_request_local,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
789 N_("Remove a local directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
790 {N_("ls"), 2, gftpui_common_cmd_ls, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
791 N_("Shows the directory listing for the current remote directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
792 /* FIXME
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
793 {N_("mget"), 2, gftp_text_mget_file, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
794 N_("Downloads remote file(s)"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
795 */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
796 {N_("mkdir"), 2, gftpui_common_cmd_mkdir, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
797 N_("Creates a remote directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
798 /* FIXME
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
799 {N_("mput"), 2, gftp_text_mput_file, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
800 N_("Uploads local file(s)"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
801 {N_("open"), 1, gftp_text_open, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
802 N_("Opens a connection to a remote site"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
803 {N_("put"), 2, gftp_text_mput_file, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
804 N_("Uploads local file(s)"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
805 */
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
806 {N_("pwd"), 2, gftpui_common_cmd_pwd, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
807 N_("Show current remote directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
808 {N_("quit"), 1, gftpui_common_cmd_quit, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
809 N_("Exit from gFTP"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
810 {N_("rename"), 2, gftpui_common_cmd_rename, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
811 N_("Rename a remote file"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
812 {N_("rmdir"), 2, gftpui_common_cmd_rmdir, gftpui_common_request_remote,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
813 N_("Remove a remote directory"), NULL},
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
814 {N_("set"), 1, gftpui_common_cmd_set, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
815 N_("Show configuration file variables. You can also set variables by set var=val"), gftpui_common_set_show_subhelp},
350
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
816 {N_("site"), 2, gftpui_common_cmd_site, gftpui_common_request_remote,
e5ad008e7ea8 2003-1-4 Brian Masney <masneyb@gftp.org>
masneyb
parents: 341
diff changeset
817 N_("Run a site specific command"), NULL},
341
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
818 {NULL, 0, NULL, gftpui_common_request_none,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
819 NULL, NULL}};
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
820
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
821
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
822 int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
823 gftpui_common_init (void *locui, gftp_request * locreq,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
824 void *remui, gftp_request * remreq)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
825 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
826 gftpui_common_local_uidata = locui;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
827 gftpui_common_local_request = locreq;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
828
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
829 gftpui_common_remote_uidata = remui;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
830 gftpui_common_remote_request = remreq;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
831
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
832 return (0);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
833 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
834
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
835
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
836 int
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
837 gftpui_common_process_command (const char *command)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
838 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
839 const char *stpos;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
840 char *pos, *newstr;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
841 gftp_request * request;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
842 size_t cmdlen;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
843 void *uidata;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
844 int ret, i;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
845 size_t len;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
846
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
847 for (stpos = command; *stpos == ' ' || *stpos == '\t'; stpos++);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
848
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
849 newstr = g_strdup (stpos);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
850 len = strlen (newstr);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
851
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
852 if (len > 0 && newstr[len - 1] == '\n')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
853 newstr[--len] = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
854 if (len > 0 && newstr[len - 1] == '\r')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
855 newstr[--len] = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
856
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
857 for (pos = newstr + len - 1;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
858 (*pos == ' ' || *pos == '\t') && pos > newstr;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
859 pos--)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
860 *pos = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
861
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
862 if (*stpos == '\0')
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
863 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
864 g_free (newstr);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
865 return (1);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
866 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
867
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
868 if ((pos = strchr (newstr, ' ')) != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
869 *pos = '\0';
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
870
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
871 cmdlen = strlen (newstr);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
872 for (i=0; gftpui_common_commands[i].command != NULL; i++)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
873 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
874 if (strcmp (gftpui_common_commands[i].command, newstr) == 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
875 break;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
876 else if (cmdlen >= gftpui_common_commands[i].minlen &&
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
877 strncmp (gftpui_common_commands[i].command, newstr, cmdlen) == 0)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
878 break;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
879 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
880
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
881 if (pos != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
882 pos++;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
883 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
884 pos = "";
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
885
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
886 if (gftpui_common_commands[i].command != NULL)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
887 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
888 if (gftpui_common_commands[i].reqtype == gftpui_common_request_local)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
889 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
890 request = gftpui_common_local_request;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
891 uidata = gftpui_common_local_uidata;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
892 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
893 else if (gftpui_common_commands[i].reqtype == gftpui_common_request_remote)
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
894 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
895 request = gftpui_common_remote_request;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
896 uidata = gftpui_common_remote_uidata;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
897 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
898 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
899 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
900 request = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
901 uidata = NULL;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
902 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
903
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
904 ret = gftpui_common_commands[i].func (uidata, request, pos);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
905 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
906 else
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
907 {
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
908 gftpui_common_local_request->logging_function (gftp_logging_error,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
909 gftpui_common_local_request,
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
910 _("Error: Command not recognized\n"));
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
911 ret = 1;
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
912 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
913
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
914 g_free (newstr);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
915 return (ret);
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
916 }
eedc2c5727fa 2003-12-28 Brian Masney <masneyb@gftp.org>
masneyb
parents:
diff changeset
917