28 #include <mcabber/commands.h> |
28 #include <mcabber/commands.h> |
29 #include <mcabber/utils.h> |
29 #include <mcabber/utils.h> |
30 #include <mcabber/compl.h> |
30 #include <mcabber/compl.h> |
31 #include <mcabber/logprint.h> |
31 #include <mcabber/logprint.h> |
32 #include <mcabber/modules.h> |
32 #include <mcabber/modules.h> |
|
33 #include <mcabber/api.h> |
33 |
34 |
34 #include "config.h" |
35 #include "config.h" |
35 |
36 |
36 static void env_load (void); |
37 void env_load (void); |
37 static void env_unload (void); |
38 void env_unload (void); |
38 |
39 |
39 #define DESCRIPTION ( "Some debugging routines\nProvides commands /env and /cd" ) |
40 #define DESCRIPTION ( "Some debugging routines\nProvides commands /env and /cd" ) |
40 |
41 |
41 static module_info_t info_env_experimental = { |
42 static module_info_t info_env_dev = { |
42 .branch = "experimental", |
43 .branch = "dev", |
43 .api = 28, |
44 .api = 20, |
44 .version = PROJECT_VERSION, |
45 .version = PROJECT_VERSION, |
45 .description = DESCRIPTION, |
46 .description = DESCRIPTION, |
46 .requires = NULL, |
47 .requires = NULL, |
47 .init = env_load, |
48 .init = env_load, |
48 .uninit = env_unload, |
49 .uninit = env_unload, |
49 .next = NULL, |
50 .next = NULL, |
50 }; |
51 }; |
51 |
52 |
52 static module_info_t info_env_dev = { |
|
53 .branch = "dev", |
|
54 .api = 13, |
|
55 .version = PROJECT_VERSION, |
|
56 .description = DESCRIPTION, |
|
57 .requires = NULL, |
|
58 .init = env_load, |
|
59 .uninit = env_unload, |
|
60 .next = &info_env_experimental, |
|
61 }; |
|
62 |
|
63 module_info_t info_env = { |
53 module_info_t info_env = { |
64 .branch = "0.10.0", |
54 .branch = "0.10.1", |
65 .api = 1, |
55 .api = 1, |
66 .version = PROJECT_VERSION, |
56 .version = PROJECT_VERSION, |
67 .description = DESCRIPTION, |
57 .description = DESCRIPTION, |
68 .requires = NULL, |
58 .requires = NULL, |
69 .init = env_load, |
59 .init = env_load, |
70 .uninit = env_unload, |
60 .uninit = env_unload, |
71 .next = &info_env_dev, |
61 .next = &info_env_dev, |
72 }; |
62 }; |
73 |
63 |
74 #ifdef HAVE_CMD_ID |
64 #ifdef MCABBER_API_HAVE_CMD_ID |
75 static gpointer env_env_cmid = NULL; |
65 static gpointer env_env_cmid = NULL; |
76 static gpointer env_cd_cmid = NULL; |
66 static gpointer env_cd_cmid = NULL; |
77 #ifdef HAVE_CMD_SAFE |
|
78 static gboolean env_env_set_safe = FALSE; |
67 static gboolean env_env_set_safe = FALSE; |
79 static gboolean env_cd_set_safe = FALSE; |
68 static gboolean env_cd_set_safe = FALSE; |
80 #endif |
|
81 #endif |
69 #endif |
82 |
70 |
83 extern char **environ; |
71 extern char **environ; |
84 |
72 |
85 // /env [option [= [value]]] |
73 // /env [option [= [value]]] |
178 scr_log_print (LPRINT_NORMAL, "%s", cwd); |
166 scr_log_print (LPRINT_NORMAL, "%s", cwd); |
179 } else if (chdir (arg) == -1) // set |
167 } else if (chdir (arg) == -1) // set |
180 scr_log_print (LPRINT_NORMAL, "Cannot change current working directory: %s.", strerror (errno)); |
168 scr_log_print (LPRINT_NORMAL, "Cannot change current working directory: %s.", strerror (errno)); |
181 } |
169 } |
182 |
170 |
183 static void env_load (void) |
171 void env_load (void) |
184 { |
172 { |
185 // command |
173 // command |
186 #ifndef HAVE_CMD_ID |
174 #ifndef MCABBER_API_HAVE_CMD_ID |
187 cmd_add ("env", "", 0, 0, do_env, NULL); |
175 cmd_add ("env", "", 0, 0, do_env, NULL); |
188 cmd_add ("cd", "", COMPL_FILENAME, 0, do_cd, NULL); |
176 cmd_add ("cd", "", COMPL_FILENAME, 0, do_cd, NULL); |
189 #else |
177 #else |
190 env_env_cmid = cmd_add ("env", "", 0, 0, do_env, NULL); |
178 env_env_cmid = cmd_add ("env", "", 0, 0, do_env, NULL); |
191 env_cd_cmid = cmd_add ("cd", "", COMPL_FILENAME, 0, do_cd, NULL); |
179 env_cd_cmid = cmd_add ("cd", "", COMPL_FILENAME, 0, do_cd, NULL); |
192 #ifdef HAVE_CMD_SAFE |
|
193 env_env_set_safe = cmd_set_safe ("env", TRUE); |
180 env_env_set_safe = cmd_set_safe ("env", TRUE); |
194 env_cd_set_safe = cmd_set_safe ("cd", TRUE); |
181 env_cd_set_safe = cmd_set_safe ("cd", TRUE); |
195 #endif |
182 #endif |
196 #endif |
183 } |
197 } |
184 |
198 |
185 void env_unload (void) |
199 static void env_unload (void) |
|
200 { |
186 { |
201 // command |
187 // command |
202 #ifndef HAVE_CMD_ID |
188 #ifndef MCABBER_API_HAVE_CMD_ID |
203 cmd_del ("cd"); |
189 cmd_del ("cd"); |
204 cmd_del ("env"); |
190 cmd_del ("env"); |
205 #else |
191 #else |
206 if (env_env_cmid) |
192 if (env_env_cmid) |
207 cmd_del (env_env_cmid); |
193 cmd_del (env_env_cmid); |
208 if (env_cd_cmid) |
194 if (env_cd_cmid) |
209 cmd_del (env_cd_cmid); |
195 cmd_del (env_cd_cmid); |
210 #ifdef HAVE_CMD_SAFE |
|
211 if (env_env_set_safe) |
196 if (env_env_set_safe) |
212 cmd_set_safe ("env", FALSE); |
197 cmd_set_safe ("env", FALSE); |
213 if (env_cd_set_safe) |
198 if (env_cd_set_safe) |
214 cmd_set_safe ("cd", FALSE); |
199 cmd_set_safe ("cd", FALSE); |
215 #endif |
200 #endif |
216 #endif |
|
217 } |
201 } |
218 |
202 |
219 /* vim: se ts=4 sw=4: */ |
203 /* vim: se ts=4 sw=4: */ |