📄 key-meta.cc
字号:
#include <mit/rca/meta/key-meta.h>static class KeyMetaClass : public TclClass {public: KeyMetaClass() : TclClass("KeyMetaData") {} TclObject* create(int, const char*const*) { return (new KeyMeta); }} class_KeyMeta;KeyMeta::KeyMeta(){}KeyMeta::~KeyMeta(){}int KeyMeta::command(int argc, const char*const* argv){ Tcl& tcl = Tcl::instance(); if (argc == 2) { if (strcmp(argv[1], "metatostring") == 0) { char *result = KeyMeta::MetaToString(); tcl.resultf("%s",result); return TCL_OK; } } if (argc == 3) { if (strcmp(argv[1], "stringtometa") == 0) { KeyMeta::StringToMeta((char *)argv[2]); return TCL_OK; } } return KeySet::command(argc, argv);}void KeyMeta::StringToMeta(char *string){ char *c; char *stringstart = string; for(c = string; *c != '\0' ; c++) { if (*c == ',') { *c = '\0'; Add(stringstart); stringstart = c + 1; } } Add(stringstart); return;}char *KeyMeta::MetaToString(){ int size = 0; int i; for (i = 0; i < buckets_ ; i++) { BucketList *p; for (p = htab_[i] ; p != NULL ; p = p->next_) { size += strlen(p->key_) + 1; } } char *string = new char[size]; char *c = string; for (i = 0; i < buckets_ ; i++) { BucketList *p; for (p = htab_[i] ; p != NULL ; p = p->next_) { strcpy(c,p->key_); size = strlen(p->key_); c = c+size; *c = ','; c++; } } c--; *c = '\0'; return string;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -