Changeset 59ed424e in mainline for uspace/lib/fmgt/src/copy.c


Ignore:
Timestamp:
2026-02-11T12:02:03Z (30 hours ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master
Children:
f9c30b9a
Parents:
857fba8
git-author:
Jiri Svoboda <jiri@…> (2026-02-10 20:01:03)
git-committer:
Jiri Svoboda <jiri@…> (2026-02-11 12:02:03)
Message:

Do not print error when user requests abort because file exists.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/fmgt/src/copy.c

    r857fba8 r59ed424e  
    4343#include "../private/fsops.h"
    4444
    45 static errno_t fmgt_copy_dir_enter(void *, const char *, const char *);
    46 static errno_t fmgt_copy_file(void *, const char *, const char *);
     45static errno_t fmgt_copy_dir_enter(fmgt_walk_t *, const char *, const char *);
     46static errno_t fmgt_copy_file(fmgt_walk_t *, const char *, const char *);
    4747
    4848static fmgt_walk_cb_t fmgt_copy_cb = {
     
    5353/** Copy operation - enter directory.
    5454 *
    55  * @param arg Argument (fmgt_t *)
     55 * @param walk Walk
    5656 * @param fname Source directory name
    5757 * @param dest Destination directory name
    5858 * @return EOK on success or an error code
    5959 */
    60 static errno_t fmgt_copy_dir_enter(void *arg, const char *src, const char *dest)
     60static errno_t fmgt_copy_dir_enter(fmgt_walk_t *walk, const char *src,
     61    const char *dest)
    6162{
    62         fmgt_t *fmgt = (fmgt_t *)arg;
     63        fmgt_t *fmgt = (fmgt_t *)walk->params->arg;
    6364
    6465        (void)dest;
     
    6869/** Copy single file.
    6970 *
    70  * @param arg Argument (fmgt_t *)
     71 * @param walk Walk
    7172 * @param fname Source file name
    7273 * @param dest Destination file name
    7374 * @return EOK on success or an error code
    7475 */
    75 static errno_t fmgt_copy_file(void *arg, const char *src, const char *dest)
     76static errno_t fmgt_copy_file(fmgt_walk_t *walk, const char *src,
     77    const char *dest)
    7678{
    77         fmgt_t *fmgt = (fmgt_t *)arg;
     79        fmgt_t *fmgt = (fmgt_t *)walk->params->arg;
     80        fmgt_exists_action_t exaction;
    7881        int rfd;
    7982        int wfd;
     
    8285        aoff64_t wpos = 0;
    8386        char *buffer;
    84         bool skip;
    8587        errno_t rc;
    8688
     
    9597        }
    9698
    97         rc = fmgt_create_file(fmgt, dest, &wfd, &skip);
     99        rc = fmgt_create_file(fmgt, dest, &wfd, &exaction);
    98100        if (rc != EOK) {
    99101                free(buffer);
    100102                vfs_put(rfd);
    101103
    102                 /* User decided to skip and continue. */
    103                 if (rc == EEXIST && skip)
     104                if (rc == EEXIST && exaction != fmgt_exr_fail) {
     105                        if (exaction == fmgt_exr_abort)
     106                                walk->stop = true;
    104107                        return EOK;
     108                }
     109
    105110                return rc;
    106111        }
Note: See TracChangeset for help on using the changeset viewer.