Browse Source

The 'visibility' field in param_t structure.

git-svn-id: https://klish.googlecode.com/svn/trunk@162 0eaa4687-2ee9-07dd-09d9-bcdd2d2dd5fb
Serj Kalichev 13 years ago
parent
commit
259ac646b6
4 changed files with 27 additions and 0 deletions
  1. 10 0
      clish/param.h
  2. 14 0
      clish/param/param.c
  3. 1 0
      clish/param/private.h
  4. 2 0
      clish/variable/variable_expand.c

+ 10 - 0
clish/param.h

@@ -18,6 +18,12 @@ the arguments which a user is inputing for a command.
 typedef struct clish_paramv_s clish_paramv_t;
 typedef struct clish_param_s clish_param_t;
 
+typedef enum {
+	CLISH_PARAM_NORMAL,
+	CLISH_PARAM_HIDDEN,
+	CLISH_PARAM_INTERNAL
+} clish_param_visibility_t;
+
 #include "clish/ptype.h"
 
 /**
@@ -77,6 +83,10 @@ void clish_param__set_optional(clish_param_t * instance, bool_t optional);
 bool_t clish_param__get_optional(const clish_param_t * instance);
 void clish_param__set_value(clish_param_t * instance, const char * value);
 char *clish_param__get_value(const clish_param_t * instance);
+void clish_param__set_visibility(clish_param_t * instance,
+	clish_param_visibility_t visibility);
+clish_param_visibility_t clish_param__get_visibility(
+	const clish_param_t * instance);
 
 /* paramv methods */
 clish_paramv_t *clish_paramv_new(void);

+ 14 - 0
clish/param/param.c

@@ -29,6 +29,7 @@ clish_param_init(clish_param_t * this,
 	this->mode = CLISH_PARAM_COMMON;
 	this->optional = BOOL_FALSE;
 	this->value = NULL;
+	this->visibility = CLISH_PARAM_NORMAL;
 
 	this->paramv = clish_paramv_new();
 }
@@ -305,3 +306,16 @@ char *clish_param__get_value(const clish_param_t * this)
 	return this->name;
 }
 
+/*--------------------------------------------------------- */
+void clish_param__set_visibility(clish_param_t * this,
+	clish_param_visibility_t visibility)
+{
+	this->visibility = visibility;
+}
+
+/*--------------------------------------------------------- */
+clish_param_visibility_t clish_param__get_visibility(
+	const clish_param_t * this)
+{
+	return this->visibility;
+}

+ 1 - 0
clish/param/private.h

@@ -21,4 +21,5 @@ struct clish_param_s {
 	clish_paramv_t *paramv;
 	clish_param_mode_e mode;
 	bool_t optional;
+	clish_param_visibility_t visibility;
 };

+ 2 - 0
clish/variable/variable_expand.c

@@ -285,6 +285,8 @@ char *clish_variable__get_params(const clish_command_t * cmd, clish_pargv_t * pa
 		param = clish_pargv__get_param(pargv, i);
 		if (CLISH_PARAM_SWITCH == clish_param__get_mode(param))
 			continue;
+		if (CLISH_PARAM_NORMAL != clish_param__get_visibility(param))
+			continue;
 		parg = clish_pargv__get_parg(pargv, i);
 		if (NULL != line)
 			lub_string_cat(&line, " ");