Merge pull request #71 from mehmetumit/master
This commit is contained in:
23
dwmblocks.c
23
dwmblocks.c
@ -58,25 +58,26 @@ static int returnStatus = 0;
|
||||
//opens process *cmd and stores output in *output
|
||||
void getcmd(const Block *block, char *output)
|
||||
{
|
||||
strcpy(output, block->icon);
|
||||
//make sure status is same until output is ready
|
||||
char tempstatus[CMDLENGTH] = {0};
|
||||
strcpy(tempstatus, block->icon);
|
||||
FILE *cmdf = popen(block->command, "r");
|
||||
if (!cmdf)
|
||||
return;
|
||||
int i = strlen(block->icon);
|
||||
fgets(output+i, CMDLENGTH-i-delimLen, cmdf);
|
||||
i = strlen(output);
|
||||
if (i == 0) {
|
||||
//return if block and command output are both empty
|
||||
pclose(cmdf);
|
||||
return;
|
||||
}
|
||||
fgets(tempstatus+i, CMDLENGTH-i-delimLen, cmdf);
|
||||
i = strlen(tempstatus);
|
||||
//if block and command output are both not empty
|
||||
if (i != 0) {
|
||||
//only chop off newline if one is present at the end
|
||||
i = output[i-1] == '\n' ? i-1 : i;
|
||||
i = tempstatus[i-1] == '\n' ? i-1 : i;
|
||||
if (delim[0] != '\0') {
|
||||
strncpy(output+i, delim, delimLen);
|
||||
strncpy(tempstatus+i, delim, delimLen);
|
||||
}
|
||||
else
|
||||
output[i++] = '\0';
|
||||
tempstatus[i++] = '\0';
|
||||
}
|
||||
strcpy(output, tempstatus);
|
||||
pclose(cmdf);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user