Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1131c164 authored by Christopher Tate's avatar Christopher Tate Committed by Android Git Automerger
Browse files

am b1dfffe6: Fix \'adb backup\' on Windows

* commit 'b1dfffe6':
  Fix 'adb backup' on Windows
parents ae868a40 b1dfffe6
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -577,9 +577,29 @@ static int logcat(transport_type transport, char* serial, int argc, char **argv)
    return 0;
}

static int mkdirs(char *path)
{
    int ret;
    char *x = path + 1;

    for(;;) {
        x = adb_dirstart(x);
        if(x == 0) return 0;
        *x = 0;
        ret = adb_mkdir(path, 0775);
        *x = OS_PATH_SEPARATOR;
        if((ret < 0) && (errno != EEXIST)) {
            return ret;
        }
        x++;
    }
    return 0;
}

static int backup(int argc, char** argv) {
    char buf[4096];
    const char* filename = "./backup.ab";
    char default_name[32];
    const char* filename = strcpy(default_name, "./backup.ab");
    int fd, outFd;
    int i, j;

@@ -602,7 +622,9 @@ static int backup(int argc, char** argv) {
    /* bare "adb backup" or "adb backup -f filename" are not valid invocations */
    if (argc < 2) return usage();

    outFd = adb_open_mode(filename, O_WRONLY | O_CREAT | O_TRUNC, 0640);
    adb_unlink(filename);
    mkdirs((char *)filename);
    outFd = adb_creat(filename, 0640);
    if (outFd < 0) {
        fprintf(stderr, "adb: unable to open file %s\n", filename);
        return -1;