commit e1c696b2ba64586e6532a556454efd989835bfd5
parent f03b6f7a4e0ea41a6f13d44fed22e0ce5995cca8
Author: awy <awy@awy.one>
Date: Wed, 12 Nov 2025 23:28:41 +0300
remove delimeters for empty modules (needs more testing)
Diffstat:
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/someblocks.c b/someblocks.c
@@ -62,9 +62,14 @@ void
getcmd (const Block *block, char *output)
{
char tmp[CMDLENGTH] = { 0 };
+
+ // Run module command
FILE *cmdf = popen (block->command, "r");
if (!cmdf)
- return;
+ {
+ output[0] = '\0';
+ return;
+ }
fgets (tmp, sizeof (tmp) - delimLen, cmdf);
pclose (cmdf);
@@ -73,8 +78,15 @@ getcmd (const Block *block, char *output)
if (len && tmp[len - 1] == '\n')
tmp[len - 1] = '\0';
- // Start mouse tags
- char start_tags[512] = ""; // larger buffer for multiple buttons
+ // Skip output if module prints nothing and has no icon
+ if (len == 0 && (!block->icon || block->icon[0] == '\0'))
+ {
+ output[0] = '\0';
+ return;
+ }
+
+ // Start and end mouse tags
+ char start_tags[512] = "";
char end_tags[128] = "";
if (block->lclick && block->lclick[0] != '\0')
@@ -136,8 +148,11 @@ getcmd (const Block *block, char *output)
snprintf (output, CMDLENGTH, "%s%s%s%s", start_tags,
block->icon ? block->icon : "", tmp, end_tags);
- // Add delimiter safely
- strncat (output, delim, CMDLENGTH - strlen (output) - 1);
+ // Add delimiter only if module produced visible output
+ if (strlen (output) > 0)
+ strncat (output, delim, CMDLENGTH - strlen (output) - 1);
+ else
+ output[0] = '\0';
}
void