Ejemplo n.º 1
0
void keymap::dump_config(std::vector<std::string>& config_output) {
	for (unsigned int i=1; contexts[i]!=nullptr; i++) { // TODO: optimize
		std::map<std::string,operation>& x = keymap_[contexts[i]];
		for (auto keymap : x) {
			if (keymap.second < OP_INT_MIN) {
				std::string configline = "bind-key ";
				configline.append(utils::quote(keymap.first));
				configline.append(" ");
				configline.append(getopname(keymap.second));
				configline.append(" ");
				configline.append(contexts[i]);
				config_output.push_back(configline);
			}
		}
	}
	for (auto macro : macros_) {
		std::string configline = "macro ";
		configline.append(macro.first);
		configline.append(" ");
		unsigned int i=0;
		for (auto cmd : macro.second) {
			configline.append(getopname(cmd.op));
			for (auto arg : cmd.args) {
				configline.append(" ");
				configline.append(utils::quote(arg));
			}
			if (i < (macro.second.size()-1))
				configline.append(" ; ");
		}
		config_output.push_back(configline);
	}
}
Ejemplo n.º 2
0
void keymap::dump_config(std::vector<std::string>& config_output) {
	for (unsigned int i=1;contexts[i]!=NULL;i++) { // TODO: optimize
		std::map<std::string,operation>& x = keymap_[contexts[i]];
		for (std::map<std::string,operation>::iterator it = x.begin();it!=x.end();it++) {
			if (it->second < OP_INT_MIN) {
				std::string configline = "bind-key ";
				configline.append(it->first);
				configline.append(" ");
				configline.append(getopname(it->second));
				configline.append(" ");
				configline.append(contexts[i]);
				config_output.push_back(configline);
			}
		}
	}
	for (std::map<std::string,std::vector<macrocmd> >::iterator it=macros_.begin();it!=macros_.end();it++) {
		std::string configline = "macro ";
		configline.append(it->first);
		configline.append(" ");
		unsigned int i=0;
		for (std::vector<macrocmd>::iterator jt=it->second.begin();jt!=it->second.end();jt++,i++) {
			configline.append(getopname(jt->op));
			for (std::vector<std::string>::iterator kt=jt->args.begin();kt!=jt->args.end();kt++) {
				configline.append(" ");
				configline.append(utils::quote(*kt));
			}
			if (i < (it->second.size()-1))
				configline.append(" ; ");
		}
		config_output.push_back(configline);
	}
}