浏览代码

scheme: Add ischeme.c

Serj Kalichev 3 年之前
父节点
当前提交
b557cda3cb
共有 4 个文件被更改,包括 48 次插入7 次删除
  1. 11 6
      bin/klishd/klishd.c
  2. 4 0
      klish/kscheme.h
  3. 3 1
      klish/kscheme/Makefile.am
  4. 30 0
      klish/kscheme/ischeme.c

+ 11 - 6
bin/klishd/klishd.c

@@ -54,7 +54,16 @@ ischeme_t sch = {
 
     VIEW {
       .name = "view2",
-    },
+    }, 
+    VIEW {
+      .name = "view3",
+    }, 
+
+
+(iview_t *)NULL,
+    VIEW {
+      .name = "view4",
+    }, 
 
   END_VIEW_LIST,
 };
@@ -154,11 +163,7 @@ int main(int argc, char **argv)
 
 	// Load scheme
 	scheme = kscheme_new();
-	{
-	kparam_t *param = NULL;
-	param = kparam_new_static((iparam_t){.name="PARAM", .help="This is param", .ptype = "STRING" });
-	param = param;
-	}
+	kscheme_from_ischeme(scheme, &sch, NULL);
 
 	// Listen socket
 	syslog(LOG_DEBUG, "Create listen UNIX socket: %s\n", opts->unix_socket_path);

+ 4 - 0
klish/kscheme.h

@@ -39,6 +39,10 @@ void kscheme_free(kscheme_t *scheme);
 bool_t kscheme_add_view(kscheme_t *scheme, kview_t *view);
 kview_t *kscheme_find_view(const kscheme_t *scheme, const char *name);
 
+
+kscheme_t *kscheme_from_ischeme(kscheme_t *kscheme, ischeme_t *ischeme, faux_list_t *error_stack);
+
+
 C_DECL_END
 
 #endif // _klish_kscheme_h

+ 3 - 1
klish/kscheme/Makefile.am

@@ -4,4 +4,6 @@ libklish_la_SOURCES += \
 	klish/kscheme/kparam.c \
 	klish/kscheme/kcommand.c \
 	klish/kscheme/kview.c \
-	klish/kscheme/kscheme.c
+	klish/kscheme/kscheme.c \
+	klish/kscheme/ischeme.c
+

+ 30 - 0
klish/kscheme/ischeme.c

@@ -0,0 +1,30 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+
+#include <faux/str.h>
+#include <faux/list.h>
+#include <klish/kview.h>
+#include <klish/kscheme.h>
+
+
+kscheme_t *kscheme_from_ischeme(kscheme_t *kscheme, ischeme_t *ischeme, faux_list_t *error_stack)
+{
+//	iview_t *iview = NULL;
+	kview_t *kview = NULL;
+
+	if (!kscheme)
+		return NULL;
+
+	if (ischeme->views) {
+		iview_t **piview = NULL;
+		for (piview = *ischeme->views; *piview; piview++) {
+			printf("view %p %s\n", *piview, (*piview)->name);
+		}
+		kview = kview;
+	}
+
+	error_stack = error_stack;
+	return NULL;
+}