diff --git a/options/path.c b/options/path.c index 6ae0fc4d11..2b2bb3d272 100644 --- a/options/path.c +++ b/options/path.c @@ -240,7 +240,7 @@ char *mp_path_join(void *talloc_ctx, struct bstr p1, struct bstr p2) return bstrdup0(talloc_ctx, p1); #if HAVE_DOS_PATHS - if (p2.len >= 2 && p2.start[1] == ':' + if ((p2.len >= 2 && p2.start[1] == ':') || p2.start[0] == '\\' || p2.start[0] == '/') #else if (p2.start[0] == '/') @@ -251,7 +251,7 @@ char *mp_path_join(void *talloc_ctx, struct bstr p1, struct bstr p2) int endchar1 = p1.start[p1.len - 1]; #if HAVE_DOS_PATHS have_separator = endchar1 == '/' || endchar1 == '\\' - || p1.len == 2 && endchar1 == ':'; // "X:" only + || (p1.len == 2 && endchar1 == ':'); // "X:" only #else have_separator = endchar1 == '/'; #endif diff --git a/video/out/vo_direct3d.c b/video/out/vo_direct3d.c index bf24d164c8..1977d64a11 100644 --- a/video/out/vo_direct3d.c +++ b/video/out/vo_direct3d.c @@ -964,7 +964,7 @@ render_osd: // Return the high byte of the value that represents white in chroma (U/V) static int get_chroma_clear_val(int bit_depth) { - return 1 << (bit_depth - 1 & 7); + return 1 << ((bit_depth - 1) & 7); } // this macro is supposed to work on all formats supported by 3D rendering, and diff --git a/video/out/w32_common.c b/video/out/w32_common.c index 1d82825294..12c37b5f0d 100644 --- a/video/out/w32_common.c +++ b/video/out/w32_common.c @@ -403,7 +403,7 @@ static int mod_state(struct vo_w32_state *w32) static int decode_surrogate_pair(wchar_t lead, wchar_t trail) { - return 0x10000 + ((lead & 0x3ff) << 10) | (trail & 0x3ff); + return 0x10000 + (((lead & 0x3ff) << 10) | (trail & 0x3ff)); } static int decode_utf16(struct vo_w32_state *w32, wchar_t c)