diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.c | 6 | ||||
| -rw-r--r-- | src/settings.c | 6 | ||||
| -rw-r--r-- | src/settings.h | 1 | 
3 files changed, 9 insertions, 4 deletions
| @@ -326,7 +326,6 @@ static void BarMainLoop (BarApp_t *app) {  int main (int argc, char **argv) {  	static BarApp_t app; -	char ctlPath[PATH_MAX];  	/* terminal attributes _before_ we started messing around with ~ECHO */  	struct termios termOrig; @@ -363,14 +362,13 @@ int main (int argc, char **argv) {  	app.input.fds[0] = STDIN_FILENO;  	FD_SET(app.input.fds[0], &app.input.set); -	BarGetXdgConfigDir (PACKAGE "/ctl", ctlPath, sizeof (ctlPath));  	/* open fifo read/write so it won't EOF if nobody writes to it */  	assert (sizeof (app.input.fds) / sizeof (*app.input.fds) >= 2); -	app.input.fds[1] = open (ctlPath, O_RDWR); +	app.input.fds[1] = open (app.settings.fifo, O_RDWR);  	if (app.input.fds[1] != -1) {  		FD_SET(app.input.fds[1], &app.input.set);  		BarUiMsg (&app.settings, MSG_INFO, "Control fifo at %s opened\n", -				ctlPath); +				app.settings.fifo);  	}  	app.input.maxfd = app.input.fds[0] > app.input.fds[1] ? app.input.fds[0] :  			app.input.fds[1]; diff --git a/src/settings.c b/src/settings.c index ea17985..49d75e6 100644 --- a/src/settings.c +++ b/src/settings.c @@ -91,6 +91,7 @@ void BarSettingsDestroy (BarSettings_t *settings) {  	free (settings->atIcon);  	free (settings->npSongFormat);  	free (settings->npStationFormat); +	free (settings->fifo);  	for (size_t i = 0; i < MSG_COUNT; i++) {  		free (settings->msgFormat[i].prefix);  		free (settings->msgFormat[i].postfix); @@ -126,6 +127,8 @@ void BarSettingsRead (BarSettings_t *settings) {  	settings->atIcon = strdup (" @ ");  	settings->npSongFormat = strdup ("\"%t\" by \"%a\" on \"%l\"%r%@%s");  	settings->npStationFormat = strdup ("Station \"%n\" (%i)"); +	settings->fifo = malloc (PATH_MAX * sizeof (*settings->fifo)); +	BarGetXdgConfigDir (PACKAGE "/ctl", settings->fifo, PATH_MAX);  	settings->msgFormat[MSG_NONE].prefix = NULL;  	settings->msgFormat[MSG_NONE].postfix = NULL; @@ -228,6 +231,9 @@ void BarSettingsRead (BarSettings_t *settings) {  		} else if (streq ("format_nowplaying_station", key)) {  			free (settings->npStationFormat);  			settings->npStationFormat = strdup (val); +		} else if (streq ("fifo", key)) { +			free (settings->fifo); +			settings->fifo = strdup (val);  		} else if (strncmp (formatMsgPrefix, key,  				strlen (formatMsgPrefix)) == 0) {  			static const char *mapping[] = {"none", "info", "nowplaying", diff --git a/src/settings.h b/src/settings.h index af616a2..ca5db60 100644 --- a/src/settings.h +++ b/src/settings.h @@ -94,6 +94,7 @@ typedef struct {  	char *atIcon;  	char *npSongFormat;  	char *npStationFormat; +	char *fifo;  	BarMsgFormatStr_t msgFormat[MSG_COUNT];  } BarSettings_t; | 
