Commit 8f1f369b authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

Define PATH_MAX ourselves if it isn't defined by the OS (closes #90)

This is kinda sloppy coding (feh --filelist and --bg-* will fail when running
on a system with path lengths >= 4096 and PATH_MAX not defined), but that's
sufficiently improbable to be okay. (plus, I ain't getting paid for this, so
if you want to improve it feel free to do so)
parent 09c59148
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -623,7 +623,8 @@ char *feh_absolute_path(char *path)
	/* I SHOULD be able to just use a simple realpath() here, but dumb * 
	   old Solaris's realpath doesn't return an absolute path if the
	   path you give it is relative. Linux and BSD get this right... */
	getcwd(cwd, sizeof(cwd));
	if (getcwd(cwd, sizeof(cwd)) == NULL)
		eprintf("Cannot determine working directory:");
	snprintf(temp, sizeof(temp), "%s/%s", cwd, path);
	if (realpath(temp, fullpath) != NULL) {
		ret = estrdup(fullpath);
+10 −0
Original line number Diff line number Diff line
@@ -55,6 +55,16 @@ struct __feh_file_info {
#define FEH_FILE(l) ((feh_file *) l)
#define FEH_MAX_DIRNAME_LEN 4096

/*
 * PATH_MAX may not be defined on all systems. Since we only use it in for a
 * getcwd call in feh_absolute_path, it isn't really worth the effort to malloc
 * ever-increasing buffers until it fits. Instead, we just set it to 4096 and
 * have --filelist and --bg-* hiccup if the path is larger.
 */
#ifndef PATH_MAX
#define PATH_MAX 4096
#endif

enum filelist_recurse { FILELIST_FIRST, FILELIST_CONTINUE, FILELIST_LAST };

enum sort_type {