aboutsummaryrefslogtreecommitdiff
path: root/src/bardata.c
diff options
context:
space:
mode:
authoriamcheeseman <[hidden email]>2026-03-02 19:34:00 -0500
committeriamcheeseman <[hidden email]>2026-03-02 19:34:00 -0500
commite8364fc209280180e64bf9cfce13f9bb71af7f6c (patch)
treeebedaf4a67ff0f4f421ff859101e40a9effbe8ab /src/bardata.c
parentbc7a3fa5770ad43c0715a5a78afbf9a1a9fedbb5 (diff)
End text with an ellipse if it goes above the limit
Diffstat (limited to 'src/bardata.c')
-rw-r--r--src/bardata.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/bardata.c b/src/bardata.c
index b9f221d..89c892f 100644
--- a/src/bardata.c
+++ b/src/bardata.c
@@ -67,7 +67,7 @@ void init_bardata(void) {
set_default_background("#202020");
}
-comp_t *find_comp(char *name) {
+comp_t *find_comp(const char *name) {
for (size_t i = 0; i < comps_size; i++) {
if (strcmp(comps[i].name, name) == 0) {
return &comps[i];
@@ -83,7 +83,7 @@ comp_t *find_comp(char *name) {
return comp;
}
-void add_component(comp_side_t side, char *name) {
+void add_component(comp_side_t side, const char *name) {
comp_t *comp = find_comp(name);
if (side == SIDE_LEFT) {
comps_left[left_size] = comp;
@@ -107,25 +107,34 @@ void set_component(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
for (int i = 2; i < argc; i++) {
if (strcmp(argv[i], "-text") == 0) {
- strcpy(comp->data, argv[i + 1]);
+ const char* data = argv[i + 1];
+ size_t len = strlen(data);
+ if (len > MAX_COMP_DATA - 1) {
+ len = MAX_COMP_DATA - 4;
+ char ellipse[] = "...";
+ memcpy(comp->data + len, ellipse, sizeof(ellipse));
+ } else {
+ comp->data[len] = '\0';
+ }
+ memcpy(comp->data, argv[i + 1], len);
i++;
continue;
}
- if (strcmp(argv[i], "-margin") == 0) {
+ if (strcmp(argv[i], "-margin-left") == 0) {
int margin = atoi(argv[i + 1]);
comp->margin_left = margin;
- comp->margin_right = margin;
i++;
continue;
}
- if (strcmp(argv[i], "-margin-left") == 0) {
+ if (strcmp(argv[i], "-margin-right") == 0) {
int margin = atoi(argv[i + 1]);
- comp->margin_left = margin;
+ comp->margin_right = margin;
i++;
continue;
}
- if (strcmp(argv[i], "-margin-right") == 0) {
+ if (strcmp(argv[i], "-margin") == 0) {
int margin = atoi(argv[i + 1]);
+ comp->margin_left = margin;
comp->margin_right = margin;
i++;
continue;
@@ -173,7 +182,7 @@ void set_layout(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
}
void set_config(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
- char *var = argv[1];
+ const char *var = argv[1];
if (strcmp(var, "-height") == 0) {
int new_bar_height = atoi(argv[2]);
if (new_bar_height <= 0) {