38 |
38 |
39 #define DESCRIPTION ( "Some debugging routines\nProvides commands /env and /cd" ) |
39 #define DESCRIPTION ( "Some debugging routines\nProvides commands /env and /cd" ) |
40 |
40 |
41 static module_info_t info_env_experimental = { |
41 static module_info_t info_env_experimental = { |
42 .branch = "experimental", |
42 .branch = "experimental", |
43 .api = 15, |
43 #ifndef HAVE_CMD_ID |
|
44 .api = 20, |
|
45 #elif defined HAVE_CMD_SAFE |
|
46 .api = 24, |
|
47 #else |
|
48 .api = 23, |
|
49 #endif |
44 .version = PROJECT_VERSION, |
50 .version = PROJECT_VERSION, |
45 .description = DESCRIPTION, |
51 .description = DESCRIPTION, |
46 .requires = NULL, |
52 .requires = NULL, |
47 .init = env_load, |
53 .init = env_load, |
48 .uninit = env_unload, |
54 .uninit = env_unload, |
58 .init = env_load, |
64 .init = env_load, |
59 .uninit = env_unload, |
65 .uninit = env_unload, |
60 .next = &info_env_experimental, |
66 .next = &info_env_experimental, |
61 }; |
67 }; |
62 |
68 |
|
69 #ifdef HAVE_CMD_ID |
|
70 static gpointer env_env_cmid = NULL; |
|
71 static gpointer env_cd_cmid = NULL; |
|
72 #ifdef HAVE_CMD_SAFE |
|
73 static gboolean env_env_set_safe = FALSE; |
|
74 static gboolean env_cd_set_safe = FALSE; |
|
75 #endif |
|
76 #endif |
|
77 |
63 extern char **environ; |
78 extern char **environ; |
64 |
79 |
65 // /env [option [= [value]]] |
80 // /env [option [= [value]]] |
66 static void do_env (char *arg) |
81 static void do_env (char *arg) |
67 { |
82 { |
161 } |
176 } |
162 |
177 |
163 static void env_load (void) |
178 static void env_load (void) |
164 { |
179 { |
165 // command |
180 // command |
|
181 #ifndef HAVE_CMD_ID |
166 cmd_add ("env", "", 0, 0, do_env, NULL); |
182 cmd_add ("env", "", 0, 0, do_env, NULL); |
167 cmd_add ("cd", "", COMPL_FILENAME, 0, do_cd, NULL); |
183 cmd_add ("cd", "", COMPL_FILENAME, 0, do_cd, NULL); |
|
184 #else |
|
185 env_env_cmid = cmd_add ("env", "", 0, 0, do_env, NULL); |
|
186 env_cd_cmid = cmd_add ("cd", "", COMPL_FILENAME, 0, do_cd, NULL); |
|
187 #ifdef HAVE_CMD_SAFE |
|
188 env_env_set_safe = cmd_set_safe ("env", TRUE); |
|
189 env_cd_set_safe = cmd_set_safe ("cd", TRUE); |
|
190 #endif |
|
191 #endif |
168 } |
192 } |
169 |
193 |
170 static void env_unload (void) |
194 static void env_unload (void) |
171 { |
195 { |
172 // command |
196 // command |
|
197 #ifdef HAVE_CMD_ID |
173 cmd_del ("cd"); |
198 cmd_del ("cd"); |
174 cmd_del ("env"); |
199 cmd_del ("env"); |
|
200 #else |
|
201 if (env_env_cmid) |
|
202 cmd_del (env_env_cmid); |
|
203 if (env_cd_cmid) |
|
204 cmd_del (env_cd_cmid); |
|
205 #ifdef HAVE_CMD_SAFE |
|
206 if (env_env_set_safe) |
|
207 cmd_set_safe ("env", FALSE); |
|
208 if (env_cd_set_safe) |
|
209 cmd_set_safe ("cd", FALSE); |
|
210 #endif |
|
211 #endif |
175 } |
212 } |
176 |
213 |
177 /* vim: se ts=4 sw=4: */ |
214 /* vim: se ts=4 sw=4: */ |