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

Commit 22436ab7 authored by Josh Gao's avatar Josh Gao Committed by android-build-merger
Browse files

adb: make sure that file mode macros match linux. am: 05a3abfe am: 68fd28e3

am: ebccf909

Change-Id: I9c06688cd4590a7f911bfdf4dde11241409828eb
parents e12635cc ebccf909
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@
#include "adb_utils.h"
#include "file_sync_service.h"
#include "line_printer.h"
#include "sysdeps/stat.h"

#include <android-base/file.h>
#include <android-base/strings.h>
@@ -64,15 +65,11 @@ static void ensure_trailing_separators(std::string& local_path, std::string& rem
}

static bool should_pull_file(mode_t mode) {
    return mode & (S_IFREG | S_IFBLK | S_IFCHR);
    return S_ISREG(mode) || S_ISBLK(mode) || S_ISCHR(mode);
}

static bool should_push_file(mode_t mode) {
    mode_t mask = S_IFREG;
#if !defined(_WIN32)
    mask |= S_IFLNK;
#endif
    return mode & mask;
    return S_ISREG(mode) || S_ISLNK(mode);
}

struct copyinfo {
+0 −2
Original line number Diff line number Diff line
@@ -180,8 +180,6 @@ static __inline__ void close_on_exec(int fd)
    /* nothing really */
}

#define  S_ISLNK(m)   0   /* no symlinks on Win32 */

extern int  adb_unlink(const char*  path);
#undef  unlink
#define unlink  ___xxx_unlink
+17 −0
Original line number Diff line number Diff line
@@ -43,4 +43,21 @@ struct adb_stat : public stat {};
// Windows doesn't have lstat.
#define lstat adb_stat

// mingw doesn't define S_IFLNK or S_ISLNK.
#define S_IFLNK 0120000
#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)

// mingw defines S_IFBLK to a different value from bionic.
#undef S_IFBLK
#define S_IFBLK 0060000
#undef S_ISBLK
#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)
#endif

// Make sure that host file mode values match the ones on the device.
static_assert(S_IFMT == 00170000, "");
static_assert(S_IFLNK == 0120000, "");
static_assert(S_IFREG == 0100000, "");
static_assert(S_IFBLK == 0060000, "");
static_assert(S_IFDIR == 0040000, "");
static_assert(S_IFCHR == 0020000, "");