Skip to content

Commit

Permalink
lib-fs: fs-posix - FS_METADATA_WRITE_FNAME replaces the full path
Browse files Browse the repository at this point in the history
This is how all the other fs drivers work, although the macro name is a bit
confusing.
  • Loading branch information
sirainen committed Apr 30, 2018
1 parent 8655c76 commit b192402
Showing 1 changed file with 2 additions and 7 deletions.
9 changes: 2 additions & 7 deletions src/lib-fs/fs-posix.c
Expand Up @@ -449,19 +449,14 @@ fs_posix_read_stream(struct fs_file *_file, size_t max_buffer_size)
static void fs_posix_write_rename_if_needed(struct posix_fs_file *file)
{
struct posix_fs *fs = (struct posix_fs *)file->file.fs;
const char *new_fname, *new_prefix, *p;
const char *new_fname;

new_fname = fs_metadata_find(&file->file.metadata, FS_METADATA_WRITE_FNAME);
if (new_fname == NULL)
return;

p = strrchr(file->file.path, '/');
if (p == NULL)
new_prefix = "";
else
new_prefix = t_strdup_until(file->file.path, p+1);
i_free(file->file.path);
file->file.path = i_strconcat(new_prefix, new_fname, NULL);
file->file.path = i_strdup(new_fname);

i_free(file->full_path);
file->full_path = fs->path_prefix == NULL ? i_strdup(file->file.path) :
Expand Down

0 comments on commit b192402

Please sign in to comment.