diff options
| author | iamcheeseman <[hidden email]> | 2026-03-02 19:34:00 -0500 |
|---|---|---|
| committer | iamcheeseman <[hidden email]> | 2026-03-02 19:34:00 -0500 |
| commit | e8364fc209280180e64bf9cfce13f9bb71af7f6c (patch) | |
| tree | ebedaf4a67ff0f4f421ff859101e40a9effbe8ab /src/bardata.c | |
| parent | bc7a3fa5770ad43c0715a5a78afbf9a1a9fedbb5 (diff) | |
End text with an ellipse if it goes above the limit
Diffstat (limited to 'src/bardata.c')
| -rw-r--r-- | src/bardata.c | 27 |
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) { |
