Merge pull request #25 from mstap/xdg-fixes
Use libxdg-basedir for proper XDG behavior
This commit is contained in:
		
						commit
						31e2e47142
					
				| @ -131,8 +131,8 @@ In order to do that you have to add a hint via the -h option. | |||||||
| =head1 CONFIGURATION | =head1 CONFIGURATION | ||||||
| 
 | 
 | ||||||
| An example configuration file is included (usually /usr/share/dunst/dunstrc). | An example configuration file is included (usually /usr/share/dunst/dunstrc). | ||||||
| To change the configuration, copy this file to ~/.config/dunstrc and edit it | To change the configuration, copy this file to ~/.config/dunst/dunstrc and edit | ||||||
| accordingly. | it accordingly. | ||||||
| 
 | 
 | ||||||
| =head1 AUTHOR | =head1 AUTHOR | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -17,8 +17,8 @@ XINERAMAFLAGS = -DXINERAMA | |||||||
| INIFLAGS = -DINI_ALLOW_MULTILINE=0 | INIFLAGS = -DINI_ALLOW_MULTILINE=0 | ||||||
| 
 | 
 | ||||||
| # includes and libs
 | # includes and libs
 | ||||||
| INCS = -I${X11INC} -I/usr/lib/dbus-1.0/include -I/usr/include/dbus-1.0 ${XFTINC} | INCS = -I${X11INC} $(shell pkg-config --cflags dbus-1 libxdg-basedir) ${XFTINC} | ||||||
| LIBS = -L${X11LIB} -lX11 -lXss -ldbus-1 ${XFTLIBS} ${XINERAMALIBS} | LIBS = -L${X11LIB} -lX11 -lXss ${XFTLIBS} ${XINERAMALIBS} $(shell pkg-config --libs dbus-1 libxdg-basedir) | ||||||
| 
 | 
 | ||||||
| # flags
 | # flags
 | ||||||
| CPPFLAGS = -D_BSD_SOURCE -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} ${INIFLAGS} | CPPFLAGS = -D_BSD_SOURCE -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} ${INIFLAGS} | ||||||
|  | |||||||
							
								
								
									
										33
									
								
								dunst.c
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								dunst.c
									
									
									
									
									
								
							| @ -16,6 +16,8 @@ | |||||||
| #include <X11/extensions/Xinerama.h> | #include <X11/extensions/Xinerama.h> | ||||||
| #endif | #endif | ||||||
| #include <X11/extensions/scrnsaver.h> | #include <X11/extensions/scrnsaver.h> | ||||||
|  | #include <basedir.h> | ||||||
|  | #include <basedir_fs.h> | ||||||
| 
 | 
 | ||||||
| #include "dunst.h" | #include "dunst.h" | ||||||
| #include "draw.h" | #include "draw.h" | ||||||
| @ -1056,33 +1058,32 @@ dunst_ini_handle(void *user_data, const char *section, | |||||||
| void | void | ||||||
| parse_dunstrc(void) { | parse_dunstrc(void) { | ||||||
| 
 | 
 | ||||||
|     char *config_path = NULL; |     xdgHandle xdg; | ||||||
|  |     FILE *config_file; | ||||||
| 
 | 
 | ||||||
|     dunst_printf(DEBUG, "Begin parsing of dunstrc\n"); |     dunst_printf(DEBUG, "Begin parsing of dunstrc\n"); | ||||||
| 
 | 
 | ||||||
|  |     xdgInitHandle(&xdg); | ||||||
|  | 
 | ||||||
|  |     config_file = xdgConfigOpen("dunst/dunstrc", "r", &xdg); | ||||||
|  |     if (config_file == NULL) { | ||||||
|  |         /* Fall back to just "dunstrc", which was used before 2012-06-23
 | ||||||
|  |          * (before v0.2). */ | ||||||
|  |         config_file = xdgConfigOpen("dunstrc", "r", &xdg); | ||||||
|         if (config_file == NULL) { |         if (config_file == NULL) { | ||||||
|         config_file = malloc(sizeof(char) * BUFSIZ); |  | ||||||
|         memset(config_file, '\0', BUFSIZ); |  | ||||||
| 
 |  | ||||||
|         config_path = getenv("XDG_CONFIG_HOME"); |  | ||||||
| 
 |  | ||||||
|         if (!config_path) { |  | ||||||
|             puts("no dunstrc found -> skipping\n"); |             puts("no dunstrc found -> skipping\n"); | ||||||
|  |             xdgWipeHandle(&xdg); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|         strcat(config_file, config_path); |  | ||||||
|         strcat(config_file, "/"); |  | ||||||
|         strcat(config_file, "dunstrc"); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     dunst_printf(DEBUG, "Reading %s\n", config_file); |     if (ini_parse_file(config_file, dunst_ini_handle, NULL) < 0) { | ||||||
| 
 |         puts("dunstrc could not be parsed -> skipping\n"); | ||||||
|     if (ini_parse(config_file, dunst_ini_handle, NULL) < 0) { |  | ||||||
|         puts("no dunstrc found -> skipping\n"); |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     fclose(config_file); | ||||||
|  |     xdgWipeHandle(&xdg); | ||||||
|  | 
 | ||||||
|     print_rules(); |     print_rules(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Sascha Kruse
						Sascha Kruse