コード例 #1
0
irom static app_action_t set_unset_flag(application_parameters_t ap, bool_t value)
{
	uint16_t length;

	if(ap.nargs < 2)
	{
		length = snprintf(ap.dst, ap.size, "%s", "flags: ");
		ap.dst += length;
		ap.size -= length;

		length = config_flags_to_string(ap.size, ap.dst, config->flags);
		ap.dst += length;
		ap.size -= length;

		strlcpy(ap.dst, "\n", ap.size);

		return(app_action_normal);
	}

	if(!config_set_flag_by_name((*ap.args)[1], value))
	{
		snprintf(ap.dst, ap.size, "> unknown flag %s\n", (*ap.args)[1]);
		return(app_action_error);
	}

	snprintf(ap.dst, ap.size, "> flag %s %s\n", (*ap.args)[1], onoff(value));

	return(app_action_normal);
}
コード例 #2
0
irom static app_action_t set_unset_flag(const string_t *src, string_t *dst, bool_t value)
{
	if(parse_string(1, src, dst) == parse_ok)
	{
		if(!config_set_flag_by_name(dst, value))
		{
			string_copy(dst, "> unknown flag\n");
			return(app_action_error);
		}
	}

	config_flags_to_string(dst, "flags: ", "\n", config.flags);

	return(app_action_normal);
}