someblocks

default description
git clone https://git.awy.one/someblocks.git
Log | Files | Refs | README | LICENSE

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:
Msomeblocks.c | 25++++++++++++++++++++-----
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