Changed functions vfs_file_is_local() and vfs_file_class_flags() for handle vfs_path_t type

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
This commit is contained in:
Slava Zanko 2011-05-01 12:16:46 +03:00
parent c6796f790d
commit 8ea49095c3
16 changed files with 118 additions and 53 deletions

View File

@ -197,6 +197,7 @@ lock_file (const char *fname)
struct stat statbuf; struct stat statbuf;
struct lock_s *lockinfo; struct lock_s *lockinfo;
gboolean symlink_ok; gboolean symlink_ok;
vfs_path_t *vpath;
/* Just to be sure (and don't lock new file) */ /* Just to be sure (and don't lock new file) */
if (fname == NULL || *fname == '\0') if (fname == NULL || *fname == '\0')
@ -204,12 +205,16 @@ lock_file (const char *fname)
fname = tilde_expand (fname); fname = tilde_expand (fname);
vpath = vfs_path_from_str (fname);
/* Locking on VFS is not supported */ /* Locking on VFS is not supported */
if (!vfs_file_is_local (fname)) if (!vfs_file_is_local (vpath))
{ {
g_free ((gpointer) fname); g_free ((gpointer) fname);
vfs_path_free (vpath);
return 0; return 0;
} }
vfs_path_free (vpath);
/* Check if already locked */ /* Check if already locked */
lockfname = lock_build_symlink_name (fname); lockfname = lock_build_symlink_name (fname);

View File

@ -576,18 +576,14 @@ vfs_current_is_local (void)
/* Return flags of the VFS class of the given filename */ /* Return flags of the VFS class of the given filename */
vfs_class_flags_t vfs_class_flags_t
vfs_file_class_flags (const char *filename) vfs_file_class_flags (const vfs_path_t * vpath)
{ {
struct vfs_class *vfs; vfs_path_element_t *path_element = vfs_path_get_by_index (vpath, -1);
char *fname;
fname = vfs_canon_and_translate (filename); if (path_element == NULL)
if (fname == NULL)
return VFSF_UNKNOWN; return VFSF_UNKNOWN;
vfs = vfs_get_class (fname); return path_element->class->flags;
g_free (fname);
return vfs->flags;
} }
/* --------------------------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------------------------- */
@ -691,9 +687,9 @@ vfs_translate_url (const char *url)
/* --------------------------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------------------------- */
gboolean gboolean
vfs_file_is_local (const char *filename) vfs_file_is_local (const vfs_path_t * vpath)
{ {
return (vfs_file_class_flags (filename) & VFSF_LOCAL) != 0; return (vfs_file_class_flags (vpath) & VFSF_LOCAL) != 0;
} }
/* --------------------------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------------------------- */

View File

@ -234,7 +234,7 @@ void vfs_set_raw_current_dir (const vfs_path_t * vpath);
gboolean vfs_current_is_local (void); gboolean vfs_current_is_local (void);
gboolean vfs_file_is_local (const char *filename); gboolean vfs_file_is_local (const vfs_path_t * vpath);
char *vfs_canon (const char *path); char *vfs_canon (const char *path);
char *vfs_strip_suffix_from_filename (const char *filename); char *vfs_strip_suffix_from_filename (const char *filename);
@ -244,7 +244,7 @@ struct vfs_class *vfs_split (char *path, char **inpath, char **op);
char *vfs_path (const char *path); char *vfs_path (const char *path);
struct vfs_class *vfs_get_class (const char *path); struct vfs_class *vfs_get_class (const char *path);
vfs_class_flags_t vfs_file_class_flags (const char *filename); vfs_class_flags_t vfs_file_class_flags (const vfs_path_t * vpath);
/* return encoding after last #enc: or NULL, if part does not contain #enc: /* return encoding after last #enc: or NULL, if part does not contain #enc:
* return static buffer */ * return static buffer */

View File

@ -3332,9 +3332,10 @@ diff_view (const char *file1, const char *file2, const char *label1, const char
#define GET_FILE_AND_STAMP(n) \ #define GET_FILE_AND_STAMP(n) \
do \ do \
{ \ { \
vfs_path_t *vpath = vfs_path_from_str(file##n); \
use_copy##n = 0; \ use_copy##n = 0; \
real_file##n = file##n; \ real_file##n = file##n; \
if (!vfs_file_is_local (file##n)) \ if (!vfs_file_is_local (vpath)) \
{ \ { \
real_file##n = mc_getlocalcopy (file##n); \ real_file##n = mc_getlocalcopy (file##n); \
if (real_file##n != NULL) \ if (real_file##n != NULL) \
@ -3344,6 +3345,7 @@ do \
use_copy##n = -1; \ use_copy##n = -1; \
} \ } \
} \ } \
vfs_path_free(vpath); \
} \ } \
while (0) while (0)

View File

@ -432,6 +432,7 @@ static int
edit_load_file (WEdit * edit) edit_load_file (WEdit * edit)
{ {
int fast_load = 1; int fast_load = 1;
vfs_path_t *vpath = vfs_path_from_str (edit->filename);
/* Cannot do fast load if a filter is used */ /* Cannot do fast load if a filter is used */
if (edit_find_filter (edit->filename) >= 0) if (edit_find_filter (edit->filename) >= 0)
@ -441,8 +442,9 @@ edit_load_file (WEdit * edit)
* VFS may report file size incorrectly, and slow load is not a big * VFS may report file size incorrectly, and slow load is not a big
* deal considering overhead in VFS. * deal considering overhead in VFS.
*/ */
if (!vfs_file_is_local (edit->filename)) if (!vfs_file_is_local (vpath))
fast_load = 0; fast_load = 0;
vfs_path_free (vpath);
/* /*
* FIXME: line end translation should disable fast loading as well * FIXME: line end translation should disable fast loading as well
@ -1599,7 +1601,7 @@ edit_get_bracket (WEdit * edit, int in_screen, unsigned long furthest_bracket_se
break; break;
/* count lines if searching downward */ /* count lines if searching downward */
if (inc > 0 && a == '\n') if (inc > 0 && a == '\n')
if (n++ >= edit->widget.lines - edit->curs_row) /* out of screen */ if (n++ >= edit->widget.lines - edit->curs_row) /* out of screen */
break; break;
} }
/* count bracket depth */ /* count bracket depth */
@ -2320,7 +2322,9 @@ edit_set_codeset (WEdit * edit)
#ifdef HAVE_CHARSET #ifdef HAVE_CHARSET
const char *cp_id; const char *cp_id;
cp_id = get_codepage_id (mc_global.source_codepage >= 0 ? mc_global.source_codepage : mc_global.display_codepage); cp_id =
get_codepage_id (mc_global.source_codepage >=
0 ? mc_global.source_codepage : mc_global.display_codepage);
if (cp_id != NULL) if (cp_id != NULL)
{ {
@ -3427,7 +3431,7 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
switch (command) switch (command)
{ {
/* a mark command with shift-arrow */ /* a mark command with shift-arrow */
case CK_MarkLeft: case CK_MarkLeft:
case CK_MarkRight: case CK_MarkRight:
case CK_MarkToWordBegin: case CK_MarkToWordBegin:
@ -3446,7 +3450,7 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
case CK_MarkScrollDown: case CK_MarkScrollDown:
case CK_MarkParagraphUp: case CK_MarkParagraphUp:
case CK_MarkParagraphDown: case CK_MarkParagraphDown:
/* a mark command with alt-arrow */ /* a mark command with alt-arrow */
case CK_MarkColumnPageUp: case CK_MarkColumnPageUp:
case CK_MarkColumnPageDown: case CK_MarkColumnPageDown:
case CK_MarkColumnLeft: case CK_MarkColumnLeft:
@ -3466,7 +3470,7 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
edit->highlight = 1; edit->highlight = 1;
break; break;
/* any other command */ /* any other command */
default: default:
if (edit->highlight) if (edit->highlight)
edit_mark_cmd (edit, 0); /* clear */ edit_mark_cmd (edit, 0); /* clear */
@ -3914,8 +3918,7 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
if (p->next) if (p->next)
{ {
p = p->next; p = p->next;
if (p->line >= edit->start_line + edit->widget.lines if (p->line >= edit->start_line + edit->widget.lines || p->line < edit->start_line)
|| p->line < edit->start_line)
edit_move_display (edit, p->line - edit->widget.lines / 2); edit_move_display (edit, p->line - edit->widget.lines / 2);
edit_move_to_line (edit, p->line); edit_move_to_line (edit, p->line);
} }
@ -3931,8 +3934,7 @@ edit_execute_cmd (WEdit * edit, unsigned long command, int char_for_insertion)
p = p->prev; p = p->prev;
if (p->line >= 0) if (p->line >= 0)
{ {
if (p->line >= edit->start_line + edit->widget.lines if (p->line >= edit->start_line + edit->widget.lines || p->line < edit->start_line)
|| p->line < edit->start_line)
edit_move_display (edit, p->line - edit->widget.lines / 2); edit_move_display (edit, p->line - edit->widget.lines / 2);
edit_move_to_line (edit, p->line); edit_move_to_line (edit, p->line);
} }

View File

@ -143,8 +143,8 @@ edit_save_file (WEdit * edit, const char *filename)
this_save_mode = option_save_mode; this_save_mode = option_save_mode;
if (this_save_mode != EDIT_QUICK_SAVE) if (this_save_mode != EDIT_QUICK_SAVE)
{ {
if (!vfs_file_is_local (real_filename) || vfs_path_t *vpath = vfs_path_from_str (real_filename);
(fd = mc_open (real_filename, O_RDONLY | O_BINARY)) == -1) if (!vfs_file_is_local (vpath) || (fd = mc_open (real_filename, O_RDONLY | O_BINARY)) == -1)
{ {
/* /*
* The file does not exists yet, so no safe save or * The file does not exists yet, so no safe save or
@ -152,6 +152,7 @@ edit_save_file (WEdit * edit, const char *filename)
*/ */
this_save_mode = EDIT_QUICK_SAVE; this_save_mode = EDIT_QUICK_SAVE;
} }
vfs_path_free (vpath);
if (fd != -1) if (fd != -1)
mc_close (fd); mc_close (fd);
} }

View File

@ -432,15 +432,18 @@ execute_with_vfs_arg (const char *command, const char *filename)
char *fn; char *fn;
struct stat st; struct stat st;
time_t mtime; time_t mtime;
vfs_path_t *vpath = vfs_path_from_str (filename);
/* Simplest case, this file is local */ /* Simplest case, this file is local */
if (!filename || vfs_file_is_local (filename)) if (!filename || vfs_file_is_local (vpath))
{ {
fn = vfs_canon_and_translate (filename); fn = vfs_canon_and_translate (filename);
do_execute (command, fn, EXECUTE_INTERNAL); do_execute (command, fn, EXECUTE_INTERNAL);
g_free (fn); g_free (fn);
vfs_path_free (vpath);
return; return;
} }
vfs_path_free (vpath);
/* FIXME: Creation of new files on VFS is not supported */ /* FIXME: Creation of new files on VFS is not supported */
if (!*filename) if (!*filename)

View File

@ -106,16 +106,20 @@ exec_extension (const char *filename, const char *lc_data, int *move_dir, int st
time_t localmtime = 0; time_t localmtime = 0;
struct stat mystat; struct stat mystat;
quote_func_t quote_func = name_quote; quote_func_t quote_func = name_quote;
vfs_path_t *vpath;
g_return_if_fail (filename != NULL); g_return_if_fail (filename != NULL);
g_return_if_fail (lc_data != NULL); g_return_if_fail (lc_data != NULL);
vpath = vfs_path_from_str (filename);
/* Avoid making a local copy if we are doing a cd */ /* Avoid making a local copy if we are doing a cd */
if (!vfs_file_is_local (filename)) if (!vfs_file_is_local (vpath))
do_local_copy = 1; do_local_copy = 1;
else else
do_local_copy = 0; do_local_copy = 0;
vfs_path_free (vpath);
/* /*
* All commands should be run in /bin/sh regardless of user shell. * All commands should be run in /bin/sh regardless of user shell.
* To do that, create temporary shell script and run it. * To do that, create temporary shell script and run it.
@ -683,7 +687,8 @@ regex_command (const char *filename, const char *action, int *move_dir)
_("The format of the %s%s%s file has " _("The format of the %s%s%s file has "
"changed with version 3.0. You may either want to copy " "changed with version 3.0. You may either want to copy "
"it from %smc.ext or use that file as an example of how to write it."), "it from %smc.ext or use that file as an example of how to write it."),
mc_config_get_data_path (), PATH_SEP_STR, MC_FILEBIND_FILE, mc_global.sysconfig_dir); mc_config_get_data_path (), PATH_SEP_STR, MC_FILEBIND_FILE,
mc_global.sysconfig_dir);
g_free (title); g_free (title);
} }
} }

View File

@ -250,7 +250,9 @@ is_in_linklist (struct link *lp, const char *path, struct stat *sb)
/* --------------------------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------------------------- */
/** /**
* Returns 0 if the inode wasn't found in the cache and 1 if it was found * Check and made hardlink
*
* @return FALSE if the inode wasn't found in the cache and TRUE if it was found
* and a hardlink was succesfully made * and a hardlink was succesfully made
*/ */
@ -258,14 +260,23 @@ static int
check_hardlinks (const char *src_name, const char *dst_name, struct stat *pstat) check_hardlinks (const char *src_name, const char *dst_name, struct stat *pstat)
{ {
struct link *lp; struct link *lp;
struct vfs_class *my_vfs = vfs_get_class (src_name); vfs_path_t *vpath;
struct vfs_class *my_vfs;
ino_t ino = pstat->st_ino; ino_t ino = pstat->st_ino;
dev_t dev = pstat->st_dev; dev_t dev = pstat->st_dev;
struct stat link_stat; struct stat link_stat;
const char *p; const char *p;
if ((vfs_file_class_flags (src_name) & VFSF_NOLINKS) != 0) vpath = vfs_path_from_str (src_name);
return 0;
if ((vfs_file_class_flags (vpath) & VFSF_NOLINKS) != 0)
{
vfs_path_free (vpath);
return FALSE;
}
my_vfs = vfs_path_get_by_index (vpath, -1)->class;
vfs_path_free (vpath);
for (lp = linklist; lp != NULL; lp = lp->next) for (lp = linklist; lp != NULL; lp = lp->next)
if (lp->vfs == my_vfs && lp->ino == ino && lp->dev == dev) if (lp->vfs == my_vfs && lp->ino == ino && lp->dev == dev)
@ -280,12 +291,12 @@ check_hardlinks (const char *src_name, const char *dst_name, struct stat *pstat)
if (!mc_stat (p, &link_stat)) if (!mc_stat (p, &link_stat))
{ {
if (!mc_link (p, dst_name)) if (!mc_link (p, dst_name))
return 1; return TRUE;
} }
} }
} }
message (D_ERROR, MSG_ERROR, _("Cannot make the hardlink")); message (D_ERROR, MSG_ERROR, _("Cannot make the hardlink"));
return 0; return FALSE;
} }
lp = (struct link *) g_try_malloc (sizeof (struct link) + strlen (src_name) lp = (struct link *) g_try_malloc (sizeof (struct link) + strlen (src_name)
+ strlen (dst_name) + 1); + strlen (dst_name) + 1);
@ -301,7 +312,7 @@ check_hardlinks (const char *src_name, const char *dst_name, struct stat *pstat)
lp->next = linklist; lp->next = linklist;
linklist = lp; linklist = lp;
} }
return 0; return FALSE;
} }
/* --------------------------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------------------------- */
@ -336,13 +347,20 @@ make_symlink (FileOpContext * ctx, const char *src_path, const char *dst_path)
link_target[len] = 0; link_target[len] = 0;
if (ctx->stable_symlinks) if (ctx->stable_symlinks)
if (!vfs_file_is_local (src_path) || !vfs_file_is_local (dst_path)) {
vfs_path_t *vpath1 = vfs_path_from_str (src_path);
vfs_path_t *vpath2 = vfs_path_from_str (dst_path);
if (!vfs_file_is_local (vpath1) || !vfs_file_is_local (vpath2))
{ {
message (D_ERROR, MSG_ERROR, message (D_ERROR, MSG_ERROR,
_("Cannot make stable symlinks across" _("Cannot make stable symlinks across"
"non-local filesystems:\n\nOption Stable Symlinks will be disabled")); "non-local filesystems:\n\nOption Stable Symlinks will be disabled"));
ctx->stable_symlinks = FALSE; ctx->stable_symlinks = FALSE;
} }
vfs_path_free (vpath1);
vfs_path_free (vpath2);
}
if (ctx->stable_symlinks && !g_path_is_absolute (link_target)) if (ctx->stable_symlinks && !g_path_is_absolute (link_target))
{ {
@ -650,6 +668,7 @@ files_error (const char *format, const char *file1, const char *file2)
return do_file_error (buf); return do_file_error (buf);
} }
/* }}} */ /* }}} */
/* --------------------------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------------------------- */

View File

@ -75,8 +75,15 @@ my_mkdir_rec (char *s, mode_t mode)
return -1; return -1;
/* FIXME: should check instead if s is at the root of that filesystem */ /* FIXME: should check instead if s is at the root of that filesystem */
if (!vfs_file_is_local (s)) {
return -1; vfs_path_t *vpath = vfs_path_from_str (s);
if (!vfs_file_is_local (vpath))
{
vfs_path_free (vpath);
return -1;
}
vfs_path_free (vpath);
}
if (!strcmp (s, PATH_SEP_STR)) if (!strcmp (s, PATH_SEP_STR))
{ {

View File

@ -1002,9 +1002,15 @@ prepend_cwd_on_local (const char *filename)
{ {
char *d; char *d;
size_t l; size_t l;
vfs_path_t *vpath;
if (!vfs_file_is_local (filename) || g_path_is_absolute (filename)) vpath = vfs_path_from_str (filename);
if (!vfs_file_is_local (vpath) || g_path_is_absolute (filename))
{
vfs_path_free (vpath);
return g_strdup (filename); return g_strdup (filename);
}
vfs_path_free (vpath);
d = g_malloc (MC_MAXPATHLEN + strlen (filename) + 2); d = g_malloc (MC_MAXPATHLEN + strlen (filename) + 2);
mc_get_current_wd (d, MC_MAXPATHLEN); mc_get_current_wd (d, MC_MAXPATHLEN);

View File

@ -1015,10 +1015,15 @@ show_free_space (WPanel * panel)
static struct my_statfs myfs_stats; static struct my_statfs myfs_stats;
/* Old current working directory for displaying free space */ /* Old current working directory for displaying free space */
static char *old_cwd = NULL; static char *old_cwd = NULL;
vfs_path_t *vpath = vfs_path_from_str (panel->cwd);
/* Don't try to stat non-local fs */ /* Don't try to stat non-local fs */
if (!vfs_file_is_local (panel->cwd) || !free_space) if (!vfs_file_is_local (vpath) || !free_space)
{
vfs_path_free (vpath);
return; return;
}
vfs_path_free (vpath);
if (old_cwd == NULL || strcmp (old_cwd, panel->cwd) != 0) if (old_cwd == NULL || strcmp (old_cwd, panel->cwd) != 0)
{ {

View File

@ -248,22 +248,26 @@ tree_store_load_from (char *name)
different = strtok (NULL, ""); different = strtok (NULL, "");
if (different) if (different)
{ {
vfs_path_t *vpath = vfs_path_from_str (oldname);
strcpy (oldname + common, different); strcpy (oldname + common, different);
if (vfs_file_is_local (oldname)) if (vfs_file_is_local (vpath))
{ {
e = tree_store_add_entry (oldname); e = tree_store_add_entry (oldname);
e->scanned = scanned; e->scanned = scanned;
} }
vfs_path_free (vpath);
} }
} }
} }
else else
{ {
if (vfs_file_is_local (lc_name)) vfs_path_t *vpath = vfs_path_from_str (lc_name);
if (vfs_file_is_local (vpath))
{ {
e = tree_store_add_entry (lc_name); e = tree_store_add_entry (lc_name);
e->scanned = scanned; e->scanned = scanned;
} }
vfs_path_free (vpath);
strcpy (oldname, lc_name); strcpy (oldname, lc_name);
} }
g_free (lc_name); g_free (lc_name);
@ -343,8 +347,9 @@ tree_store_save_to (char *name)
while (current) while (current)
{ {
int i, common; int i, common;
vfs_path_t *vpath = vfs_path_from_str (current->name);
if (vfs_file_is_local (current->name)) if (vfs_file_is_local (vpath))
{ {
/* Clear-text compression */ /* Clear-text compression */
if (current->prev && (common = str_common (current->prev->name, current->name)) > 2) if (current->prev && (common = str_common (current->prev->name, current->name)) > 2)
@ -366,9 +371,11 @@ tree_store_save_to (char *name)
{ {
fprintf (stderr, _("Cannot write to the %s file:\n%s\n"), fprintf (stderr, _("Cannot write to the %s file:\n%s\n"),
name, unix_error_string (errno)); name, unix_error_string (errno));
vfs_path_free (vpath);
break; break;
} }
} }
vfs_path_free (vpath);
current = current->next; current = current->next;
} }
tree_store_dirty (FALSE); tree_store_dirty (FALSE);

View File

@ -899,11 +899,14 @@ load_setup (void)
if (mc_run_param1 == NULL) if (mc_run_param1 == NULL)
{ {
vfs_path_t *vpath;
buffer = mc_config_get_string (mc_panels_config, "Dirs", "other_dir", "."); buffer = mc_config_get_string (mc_panels_config, "Dirs", "other_dir", ".");
if (vfs_file_is_local (buffer)) vpath = vfs_path_from_str (buffer);
if (vfs_file_is_local (vpath))
mc_run_param1 = buffer; mc_run_param1 = buffer;
else else
g_free (buffer); g_free (buffer);
vfs_path_free (vpath);
} }
boot_current_is_left = mc_config_get_bool (mc_panels_config, "Dirs", "current_is_left", TRUE); boot_current_is_left = mc_config_get_bool (mc_panels_config, "Dirs", "current_is_left", TRUE);

View File

@ -395,15 +395,17 @@ extfs_open_archive (int fstype, const char *name, struct archive **pparc)
if (info->need_archive) if (info->need_archive)
{ {
vfs_path_t *vpath = vfs_path_from_str (name);
if (mc_stat (name, &mystat) == -1) if (mc_stat (name, &mystat) == -1)
return NULL; return NULL;
if (!vfs_file_is_local (name)) if (!vfs_file_is_local (vpath))
{ {
local_name = mc_getlocalcopy (name); local_name = mc_getlocalcopy (name);
if (local_name == NULL) if (local_name == NULL)
return NULL; return NULL;
} }
vfs_path_free (vpath);
tmp = name_quote (name, 0); tmp = name_quote (name, 0);
} }

View File

@ -146,15 +146,17 @@ undelfs_shutdown (void)
/* --------------------------------------------------------------------------------------------- */ /* --------------------------------------------------------------------------------------------- */
static void static void
undelfs_get_path (const char *dirname, char **fsname, char **file) undelfs_get_path (const vfs_path_t * vpath, char **fsname, char **file)
{ {
const char *p; const char *p, *dirname;
/* To look like filesystem, we have virtual directories /* To look like filesystem, we have virtual directories
/#undel:XXX, which have no subdirectories. XXX is replaced with /#undel:XXX, which have no subdirectories. XXX is replaced with
hda5, sdb8 etc, which is assumed to live under /dev. hda5, sdb8 etc, which is assumed to live under /dev.
-- pavel@ucw.cz */ -- pavel@ucw.cz */
dirname = vpath->unparsed;
*fsname = NULL; *fsname = NULL;
if (strncmp (dirname, "/#undel:", 8)) if (strncmp (dirname, "/#undel:", 8))
@ -336,7 +338,7 @@ undelfs_opendir (const vfs_path_t * vpath)
vfs_path_element_t *path_element; vfs_path_element_t *path_element;
path_element = vfs_path_get_by_index (vpath, -1); path_element = vfs_path_get_by_index (vpath, -1);
undelfs_get_path (vpath->unparsed, &file, &f); undelfs_get_path (vpath, &file, &f);
if (!file) if (!file)
return 0; return 0;
@ -434,7 +436,7 @@ undelfs_open (const vfs_path_t * vpath, int flags, mode_t mode)
(void) mode; (void) mode;
/* Only allow reads on this file system */ /* Only allow reads on this file system */
undelfs_get_path (vpath->unparsed, &file, &f); undelfs_get_path (vpath, &file, &f);
if (!file) if (!file)
return 0; return 0;
@ -637,7 +639,7 @@ undelfs_lstat (const vfs_path_t * vpath, struct stat *buf)
int inode_index; int inode_index;
char *file, *f; char *file, *f;
undelfs_get_path (vpath->unparsed, &file, &f); undelfs_get_path (vpath, &file, &f);
if (!file) if (!file)
return 0; return 0;
@ -689,7 +691,7 @@ undelfs_chdir (const vfs_path_t * vpath)
char *file, *f; char *file, *f;
int fd; int fd;
undelfs_get_path (vpath->unparsed, &file, &f); undelfs_get_path (vpath, &file, &f);
if (!file) if (!file)
return -1; return -1;
@ -730,7 +732,7 @@ undelfs_getid (const vfs_path_t * vpath)
{ {
char *fname, *fsname; char *fname, *fsname;
undelfs_get_path (vpath->unparsed, &fsname, &fname); undelfs_get_path (vpath, &fsname, &fname);
if (!fsname) if (!fsname)
return NULL; return NULL;