env.c
changeset 16 543bd8927354
parent 15 fbcad36ca352
child 17 2c47fa36d473
equal deleted inserted replaced
15:fbcad36ca352 16:543bd8927354
    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: */