aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bardata.c27
-rw-r--r--src/bardata.h4
-rw-r--r--src/pipe.c6
3 files changed, 24 insertions, 13 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) {
diff --git a/src/bardata.h b/src/bardata.h
index bfab709..3ad4c46 100644
--- a/src/bardata.h
+++ b/src/bardata.h
@@ -7,6 +7,8 @@
#include "pipe.h"
+#define MAX_COMP_DATA 64
+
typedef XftColor color_t;
typedef enum {
@@ -17,7 +19,7 @@ typedef enum {
typedef struct {
char name[16];
- char data[64];
+ char data[MAX_COMP_DATA];
int flags;
int margin_left;
int margin_right;
diff --git a/src/pipe.c b/src/pipe.c
index bb18622..1ec694d 100644
--- a/src/pipe.c
+++ b/src/pipe.c
@@ -67,9 +67,9 @@ void await_change(void) {
void make_change(char argv[MAX_ARGS][MAX_ARG_LEN], int argc) {
// printf("Making change with:\n");
- for (int i = 0; i < argc; i++) {
- // printf("Arg %d: %s\n", i + 1, argv[i]);
- }
+ // for (int i = 0; i < argc; i++) {
+ // printf("Arg %d: %s\n", i + 1, argv[i]);
+ // }
char *cmd = argv[0];
if (strcmp(cmd, "set") == 0) {