summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormackarelfish <mackarelfish93@gmail.com>2020-05-30 12:36:18 +0700
committermackarelfish <mackarelfish93@gmail.com>2020-05-30 12:36:18 +0700
commit9adc4dc1e7a2230d24ef1dada9b888b16aec374c (patch)
treeee3cf00843479860069ea2631f50ce306a51a1d6
parentd1519aa012e8aa2aee0a77b6137c32abb66e77a8 (diff)
downloaddwmblocks-9adc4dc1e7a2230d24ef1dada9b888b16aec374c.tar.gz
dwmblocks-9adc4dc1e7a2230d24ef1dada9b888b16aec374c.tar.bz2
dwmblocks-9adc4dc1e7a2230d24ef1dada9b888b16aec374c.zip
Added support for multiple char delimiter
-rw-r--r--config.h4
-rw-r--r--dwmblocks.c14
2 files changed, 11 insertions, 7 deletions
diff --git a/config.h b/config.h
index 5c71ce5..31011ad 100644
--- a/config.h
+++ b/config.h
@@ -2,7 +2,7 @@
static const Block blocks[] = {
/*Icon*/ /*Command*/ /*Update Interval*/ /*Update Signal*/
{"", "cat /tmp/recordingicon 2>/dev/null", 0, 9},
- /* {"", "music", 0, 11}, */
+ {"", "music", 0, 11},
{"", "pacpackages", 0, 8},
{"", "news", 0, 6},
/* {"", "crypto", 0, 13}, */
@@ -24,7 +24,7 @@ static const Block blocks[] = {
};
//sets delimeter between status commands. NULL character ('\0') means no delimeter.
-static char delim = ' ';
+static char *delim = " ";
// Have dwmblocks automatically recompile and run when you edit this file in
// vim with the following line in your vimrc/init.vim:
diff --git a/dwmblocks.c b/dwmblocks.c
index 92e9570..391ee0d 100644
--- a/dwmblocks.c
+++ b/dwmblocks.c
@@ -75,11 +75,12 @@ void getcmd(const Block *block, char *output)
return;
char c;
int i = strlen(block->icon);
- fgets(output+i, CMDLENGTH-2, cmdf);
+ fgets(output+i, CMDLENGTH-(strlen(delim)+1), cmdf);
remove_all(output, '\n');
i = strlen(output);
- if (delim != '\0' && i)
- output[i++] = delim;
+ if ((i > 0 && block != &blocks[LENGTH(blocks) - 1]))
+ strcat(output, delim);
+ i+=strlen(delim);
output[i++] = '\0';
pclose(cmdf);
}
@@ -130,8 +131,11 @@ int getstatus(char *str, char *last)
{
strcpy(last, str);
str[0] = '\0';
- for(int i = 0; i < LENGTH(blocks); i++)
+ for(int i = 0; i < LENGTH(blocks); i++) {
strcat(str, statusbar[i]);
+ if (i == LENGTH(blocks) - 1)
+ strcat(str, " ");
+ }
str[strlen(str)-1] = '\0';
return strcmp(str, last);//0 if they are the same
}
@@ -218,7 +222,7 @@ int main(int argc, char** argv)
for(int i = 0; i < argc; i++)
{
if (!strcmp("-d",argv[i]))
- delim = argv[++i][0];
+ delim = argv[++i];
else if(!strcmp("-p",argv[i]))
writestatus = pstdout;
}
Software created with 💖