67 lines
1.8 KiB
C
67 lines
1.8 KiB
C
#include "tags.h"
|
|
|
|
#include <stddef.h>
|
|
#include <string.h>
|
|
|
|
static struct Tag tags[TAGS_COUNT] = {
|
|
[0] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '1', .colon_or_eol = '\0' } },
|
|
},
|
|
[1] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '2', .colon_or_eol = '\0' } },
|
|
},
|
|
[2] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '3', .colon_or_eol = '\0' } },
|
|
},
|
|
[3] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '4', .colon_or_eol = '\0' } },
|
|
},
|
|
[4] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '5', .colon_or_eol = '\0' } },
|
|
},
|
|
[5] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '6', .colon_or_eol = '\0' } },
|
|
},
|
|
[6] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '7', .colon_or_eol = '\0' } },
|
|
},
|
|
[7] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '8', .colon_or_eol = '\0' } },
|
|
},
|
|
[8] = {
|
|
.has_custom_name = false,
|
|
.name = { .structured = { .number = '9', .colon_or_eol = '\0' } },
|
|
},
|
|
};
|
|
|
|
const struct Tag *tags_get(const unsigned int index)
|
|
{
|
|
// TODO: assert here
|
|
if (index >= TAGS_COUNT) return NULL;
|
|
|
|
return &tags[index];
|
|
}
|
|
|
|
void tags_rename(const unsigned int index, const char *const new_custom_name)
|
|
{
|
|
// TODO: assert here
|
|
if (index >= TAGS_COUNT) return;
|
|
|
|
if (new_custom_name == NULL || new_custom_name[0] == '\0') {
|
|
tags[index].has_custom_name = false;
|
|
tags[index].name.structured.colon_or_eol = '\0';
|
|
} else {
|
|
tags[index].has_custom_name = true;
|
|
tags[index].name.structured.colon_or_eol = ':';
|
|
strncpy(tags[index].name.structured.custom_name, new_custom_name, TAGS_CUSTOM_NAME_SIZE);
|
|
tags[index].name.structured.custom_name[TAGS_CUSTOM_NAME_SIZE - 1] = '\0';
|
|
}
|
|
}
|