diff options
author | Arun Raghavan <arun.raghavan@collabora.co.uk> | 2012-07-17 15:30:15 +0530 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-07-17 14:56:14 +0200 |
commit | 55abbc9fde61fb7b205df8db4a909ad83e2a1590 (patch) | |
tree | df7c381864f06bb27387cf4ec8efa325de20bc34 | |
parent | df924cd9c5dd5ab079784faec344cdfd11f3147a (diff) | |
download | alsa-lib-55abbc9fde61fb7b205df8db4a909ad83e2a1590.tar.gz |
build: Fallback to alphasort() if versionsort() isn't available
versionsort() is a GNU-ism and can't be relied on for non-GNU systems.
[modified to define SORTFUNC instead of copying lines by tiwai]
Signed-off-by: Arun Raghavan <arun.raghavan@collabora.co.uk>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | src/conf.c | 7 | ||||
-rw-r--r-- | src/ucm/parser.c | 7 |
2 files changed, 12 insertions, 2 deletions
@@ -3505,7 +3505,12 @@ int snd_config_hook_load(snd_config_t *root, snd_config_t *config, snd_config_t struct dirent **namelist; int n; - n = scandir(fi[idx].name, &namelist, config_filename_filter, versionsort); +#ifdef _GNU_SOURCE +#define SORTFUNC versionsort +#else +#define SORTFUNC alphasort +#endif + n = scandir(fi[idx].name, &namelist, config_filename_filter, SORTFUNC); if (n > 0) { int j; err = 0; diff --git a/src/ucm/parser.c b/src/ucm/parser.c index b93d8325..d7517f69 100644 --- a/src/ucm/parser.c +++ b/src/ucm/parser.c @@ -1254,7 +1254,12 @@ int uc_mgr_scan_master_configs(const char **_list[]) "%s", env ? env : ALSA_USE_CASE_DIR); filename[MAX_FILE-1] = '\0'; - err = scandir(filename, &namelist, filename_filter, versionsort); +#ifdef _GNU_SOURCE +#define SORTFUNC versionsort +#else +#define SORTFUNC alphasort +#endif + err = scandir(filename, &namelist, filename_filter, SORTFUNC); if (err < 0) { err = -errno; uc_error("error: could not scan directory %s: %s", |