Browse Source

Move 'restore' field from NAMESPACE to VIEW

git-svn-id: https://klish.googlecode.com/svn/trunk@150 0eaa4687-2ee9-07dd-09d9-bcdd2d2dd5fb
Serj Kalichev 13 years ago
parent
commit
e896105277
7 changed files with 32 additions and 33 deletions
  1. 0 10
      clish/nspace.h
  2. 0 14
      clish/nspace/nspace.c
  3. 0 1
      clish/nspace/private.h
  4. 8 8
      clish/shell/shell_tinyxml_read.cpp
  5. 9 0
      clish/view.h
  6. 1 0
      clish/view/private.h
  7. 14 0
      clish/view/view.c

+ 0 - 10
clish/nspace.h

@@ -24,13 +24,6 @@ typedef enum {
 	CLISH_NSPACE_CHELP
 } clish_nspace_visibility_t;
 
-typedef enum {
-	CLISH_RESTORE_NONE,
-	CLISH_RESTORE_ALREADY,
-	CLISH_RESTORE_DEPTH,
-	CLISH_RESTORE_VIEW
-} clish_nspace_restore_t;
-
 #include "clish/view.h"
 
 /*=====================================
@@ -66,9 +59,6 @@ void clish_nspace__set_help(clish_nspace_t * instance, bool_t help);
 void clish_nspace__set_completion(clish_nspace_t * instance, bool_t help);
 void clish_nspace__set_context_help(clish_nspace_t * instance, bool_t help);
 void clish_nspace__set_inherit(clish_nspace_t * instance, bool_t inherit);
-void clish_nspace__set_restore(clish_nspace_t * instance,
-	clish_nspace_restore_t restore);
-clish_nspace_restore_t clish_nspace__get_restore(const clish_nspace_t * instance);
 
 #endif				/* _clish_nspace_h */
 /** @} clish_nspace */

+ 0 - 14
clish/nspace/nspace.c

@@ -25,7 +25,6 @@ static void clish_nspace_init(clish_nspace_t * this, clish_view_t * view)
 	this->completion = BOOL_TRUE;
 	this->context_help = BOOL_FALSE;
 	this->inherit = BOOL_TRUE;
-	this->restore = CLISH_RESTORE_NONE;
 
 	/* initialise the tree of commands links for this nspace */
 	lub_bintree_init(&this->tree,
@@ -272,16 +271,3 @@ clish_nspace__get_visibility(const clish_nspace_t * instance,
 }
 
 /*--------------------------------------------------------- */
-void clish_nspace__set_restore(clish_nspace_t * this,
-	clish_nspace_restore_t restore)
-{
-	this->restore = restore;
-}
-
-/*--------------------------------------------------------- */
-clish_nspace_restore_t clish_nspace__get_restore(const clish_nspace_t * this)
-{
-	return this->restore;
-}
-
-/*--------------------------------------------------------- */

+ 0 - 1
clish/nspace/private.h

@@ -14,5 +14,4 @@ struct clish_nspace_s {
 	bool_t completion;
 	bool_t context_help;
 	bool_t inherit;
-	clish_nspace_restore_t restore;
 };

+ 8 - 8
clish/shell/shell_tinyxml_read.cpp

@@ -114,6 +114,7 @@ static void process_view(clish_shell_t * shell, TiXmlElement * element, void *)
 	const char *name = element->Attribute("name");
 	const char *prompt = element->Attribute("prompt");
 	const char *depth = element->Attribute("depth");
+	const char *restore = element->Attribute("restore");
 
 	// re-use a view if it already exists
 	view = clish_shell_find_create_view(shell, name, prompt);
@@ -123,6 +124,13 @@ static void process_view(clish_shell_t * shell, TiXmlElement * element, void *)
 		clish_view__set_depth(view, res);
 	}
 
+	if (restore && !lub_string_nocasecmp(restore, "depth"))
+		clish_view__set_restore(view, CLISH_RESTORE_DEPTH);
+	else if (restore && !lub_string_nocasecmp(restore, "view"))
+		clish_view__set_restore(view, CLISH_RESTORE_VIEW);
+	else
+		clish_view__set_restore(view, CLISH_RESTORE_NONE);
+
 	process_children(shell, element, view);
 }
 
@@ -449,7 +457,6 @@ process_namespace(clish_shell_t * shell, TiXmlElement * element, void *parent)
 	const char *completion = element->Attribute("completion");
 	const char *context_help = element->Attribute("context_help");
 	const char *inherit = element->Attribute("inherit");
-	const char *restore = element->Attribute("restore");
 
 	assert(view);
 	clish_view_t *ref_view =
@@ -483,13 +490,6 @@ process_namespace(clish_shell_t * shell, TiXmlElement * element, void *parent)
 	else
 		clish_nspace__set_inherit(nspace, BOOL_TRUE);
 
-	if (restore && !lub_string_nocasecmp(restore, "depth"))
-		clish_nspace__set_restore(nspace, CLISH_RESTORE_DEPTH);
-	else if (restore && !lub_string_nocasecmp(restore, "view"))
-		clish_nspace__set_restore(nspace, CLISH_RESTORE_VIEW);
-	else
-		clish_nspace__set_restore(nspace, CLISH_RESTORE_NONE);
-
 }
 
 ////////////////////////////////////////

+ 9 - 0
clish/view.h

@@ -18,6 +18,12 @@ a global scope.
 
 typedef struct clish_view_s clish_view_t;
 
+typedef enum {
+	CLISH_RESTORE_NONE,
+	CLISH_RESTORE_DEPTH,
+	CLISH_RESTORE_VIEW
+} clish_view_restore_t;
+
 #include "clish/command.h"
 #include "clish/nspace.h"
 
@@ -59,6 +65,9 @@ clish_nspace_t *clish_view__get_nspace(const clish_view_t * instance,
 				       unsigned index);
 void clish_view__set_depth(clish_view_t * instance, unsigned depth);
 unsigned clish_view__get_depth(const clish_view_t * instance);
+void clish_view__set_restore(clish_view_t * instance,
+	clish_view_restore_t restore);
+clish_view_restore_t clish_view__get_restore(const clish_view_t * instance);
 
 #endif				/* _clish_view_h */
 /** @} clish_view */

+ 1 - 0
clish/view/private.h

@@ -15,4 +15,5 @@ struct clish_view_s {
 	unsigned nspacec;
 	clish_nspace_t **nspacev;
 	unsigned depth;
+	clish_view_restore_t restore;
 };

+ 14 - 0
clish/view/view.c

@@ -46,6 +46,7 @@ clish_view_init(clish_view_t * this, const char *name, const char *prompt)
 	this->nspacec = 0;
 	this->nspacev = NULL;
 	this->depth = 0;
+	this->restore = CLISH_RESTORE_NONE;
 
 	/* Be a good binary tree citizen */
 	lub_bintree_node_init(&this->bt_node);
@@ -363,3 +364,16 @@ unsigned clish_view__get_depth(const clish_view_t * this)
 }
 
 /*--------------------------------------------------------- */
+void clish_view__set_restore(clish_view_t * this,
+	clish_view_restore_t restore)
+{
+	this->restore = restore;
+}
+
+/*--------------------------------------------------------- */
+clish_view_restore_t clish_view__get_restore(const clish_view_t * this)
+{
+	return this->restore;
+}
+
+/*--------------------------------------------------------- */