Lines 28-34
Link Here
|
28 |
|
28 |
|
29 |
#include <dirent.h> |
29 |
#include <dirent.h> |
30 |
#include <dlfcn.h> |
30 |
#include <dlfcn.h> |
|
|
31 |
#ifdef HAS_WORDEXP |
31 |
#include <wordexp.h> |
32 |
#include <wordexp.h> |
|
|
33 |
#else |
34 |
#include <glob.h> |
35 |
#endif |
32 |
#include <locale.h> |
36 |
#include <locale.h> |
33 |
#include "pcm_local.h" |
37 |
#include "pcm_local.h" |
34 |
#include "pcm_plugin.h" |
38 |
#include "pcm_plugin.h" |
Lines 815-827
Link Here
|
815 |
{ |
819 |
{ |
816 |
const char *c; |
820 |
const char *c; |
817 |
size_t l; |
821 |
size_t l; |
|
|
822 |
#ifdef HAS_WORDEXP |
818 |
wordexp_t we; |
823 |
wordexp_t we; |
|
|
824 |
#else |
825 |
glob_t globbuf; |
826 |
#endif |
819 |
int err; |
827 |
int err; |
820 |
|
828 |
|
821 |
for (c = path; (l = strcspn(c, ": ")) > 0; ) { |
829 |
for (c = path; (l = strcspn(c, ": ")) > 0; ) { |
822 |
char name[l + 1]; |
830 |
char name[l + 1]; |
823 |
memcpy(name, c, l); |
831 |
memcpy(name, c, l); |
824 |
name[l] = 0; |
832 |
name[l] = 0; |
|
|
833 |
#ifdef HAS_WORDEXP |
825 |
err = wordexp(name, &we, WRDE_NOCMD); |
834 |
err = wordexp(name, &we, WRDE_NOCMD); |
826 |
switch (err) { |
835 |
switch (err) { |
827 |
case WRDE_NOSPACE: |
836 |
case WRDE_NOSPACE: |
Lines 835-840
Link Here
|
835 |
} |
844 |
} |
836 |
err = snd_pcm_ladspa_check_dir(plugin, we.we_wordv[0], label, ladspa_id); |
845 |
err = snd_pcm_ladspa_check_dir(plugin, we.we_wordv[0], label, ladspa_id); |
837 |
wordfree(&we); |
846 |
wordfree(&we); |
|
|
847 |
#else |
848 |
err = glob(name, 0, NULL, &globbuf); |
849 |
switch(err) { |
850 |
case GLOB_NOSPACE: |
851 |
return -ENOMEM; |
852 |
case 0: |
853 |
if (globbuf.gl_pathc == 1) |
854 |
break; |
855 |
/* Fall Through */ |
856 |
default: |
857 |
return -EINVAL; |
858 |
} |
859 |
err = snd_pcm_ladspa_check_dir(plugin, globbuf.gl_pathv[0], label, ladspa_id); |
860 |
globfree(&globbuf); |
861 |
#endif |
862 |
|
838 |
if (err < 0) |
863 |
if (err < 0) |
839 |
return err; |
864 |
return err; |
840 |
if (err > 0) |
865 |
if (err > 0) |