From 4d1f330c0b4d15c834befa17d33558fb773d0259 Mon Sep 17 00:00:00 2001 From: Alexey Yakovenko Date: Wed, 6 Nov 2013 22:41:22 +0100 Subject: fixed missing API 1.2 constant; fixed is_local_file implementation --- plugins.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'plugins.c') diff --git a/plugins.c b/plugins.c index 390fd07d..21de3b01 100644 --- a/plugins.c +++ b/plugins.c @@ -1275,9 +1275,21 @@ plug_is_local_file (const char *fname) { return 1; } - for (; *fname; fname++) { - if (!strncmp (fname, "://", 3)) { - return 0; + const char *f = fname; + for (; *f; f++) { + if (!strncmp (f, "://", 3)) { + DB_vfs_t **plug = plug_get_vfs_list (); + for (int i = 0; plug[i]; i++) { + if (plug[i]->get_schemes && plug[i]->is_streaming && plug[i]->is_streaming()) { + const char **sch = plug[i]->get_schemes (); + for (int k = 0; sch[k]; k++) { + if (!strncmp (sch[k], fname, strlen (sch[k]))) { + return 0; + } + } + } + } + break; } } -- cgit v1.2.3