Mercurial > hg
annotate mercurial/compat.h @ 43964:8f67735344ae
tests: convert the `root` arg of matchmod.match() to local path separators
This fixes tests that broke with 8b1a9ba375e5, complaining that "X not under
root /repo". The vast majority of real uses are to pass `repo.root`, which is
normalized by `wdirvfs.base` being set to the result of `os.path.realpath()`.
Failure to convert looks like this:
--- c:/Users/Matt/hg/tests/test-match.py.out
+++ c:/Users/Matt/hg/tests/test-match.py.err
@@ -0,0 +1,48 @@
+ERROR: testVisitchildrensetGlob (__main__.IncludeMatcherTests)
+
+Traceback (most recent call last):
+ File "c:\Users\Matt\hg\tests\test-match.py", line 180, in testVisitchildrensetGlob
+ m = matchmod.match(b'/repo', b'', include=[b'glob:dir/z*'])
+ File "c:\Users\Matt\hg\mercurial\match.py", line 271, in match
+ kindpats = normalize(include, b'glob', root, cwd, auditor, warn)
+ File "c:\Users\Matt\hg\mercurial\match.py", line 322, in _donormalize
+ pat = pathutil.canonpath(root, cwd, pat, auditor=auditor)
+ File "c:\Users\Matt\hg\mercurial\pathutil.py", line 251, in canonpath
+ _(b"%s not under root '%s'") % (myname, root), hint=hint
+Abort: dir/z* not under root '/repo'
+ERROR: testVisitdirGlob (__main__.IncludeMatcherTests)
Differential Revision: https://phab.mercurial-scm.org/D7724
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 26 Dec 2019 16:45:56 -0500 |
parents | 11ed2eadf937 |
children | d86908050375 |
rev | line source |
---|---|
29444
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
1 #ifndef _HG_COMPAT_H_ |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
2 #define _HG_COMPAT_H_ |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
3 |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
4 #ifdef _WIN32 |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
5 #ifdef _MSC_VER |
39610
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
6 #if _MSC_VER < 1900 |
29444
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
7 /* msvc 6.0 has problems */ |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
8 #define inline __inline |
29521
83147ff53112
compat: provide a declaration of ssize_t, for MS windows
Maciej Fijalkowski <fijall@gmail.com>
parents:
29444
diff
changeset
|
9 #if defined(_WIN64) |
83147ff53112
compat: provide a declaration of ssize_t, for MS windows
Maciej Fijalkowski <fijall@gmail.com>
parents:
29444
diff
changeset
|
10 typedef __int64 ssize_t; |
33926
f4433f2713d0
encoding: add function to test if a str consists of ASCII characters
Yuya Nishihara <yuya@tcha.org>
parents:
29549
diff
changeset
|
11 typedef unsigned __int64 uintptr_t; |
29521
83147ff53112
compat: provide a declaration of ssize_t, for MS windows
Maciej Fijalkowski <fijall@gmail.com>
parents:
29444
diff
changeset
|
12 #else |
29549
7b22599dcb85
compat: define ssize_t as int on 32bit Windows, silences C4142 warning
Yuya Nishihara <yuya@tcha.org>
parents:
29521
diff
changeset
|
13 typedef int ssize_t; |
33926
f4433f2713d0
encoding: add function to test if a str consists of ASCII characters
Yuya Nishihara <yuya@tcha.org>
parents:
29549
diff
changeset
|
14 typedef unsigned int uintptr_t; |
29521
83147ff53112
compat: provide a declaration of ssize_t, for MS windows
Maciej Fijalkowski <fijall@gmail.com>
parents:
29444
diff
changeset
|
15 #endif |
29444
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
16 typedef signed char int8_t; |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
17 typedef short int16_t; |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
18 typedef long int32_t; |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
19 typedef __int64 int64_t; |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
20 typedef unsigned char uint8_t; |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
21 typedef unsigned short uint16_t; |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
22 typedef unsigned long uint32_t; |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
23 typedef unsigned __int64 uint64_t; |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
24 #else |
39610
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
25 /* VC++ 14 */ |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
26 #include <stdint.h> |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
27 |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
28 #if defined(_WIN64) |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
29 typedef __int64 ssize_t; |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
30 #else |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
31 typedef int ssize_t; |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
32 #endif |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
33 #endif /* _MSC_VER < 1900 */ |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
34 |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
35 #else |
11ed2eadf937
cext: fix warnings when building for py3 on Windows
Matt Harbison <matt_harbison@yahoo.com>
parents:
33926
diff
changeset
|
36 /* not msvc */ |
29444
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
37 #include <stdint.h> |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
38 #endif |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
39 #else |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
40 /* not windows */ |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
41 #include <sys/types.h> |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
42 #if defined __BEOS__ && !defined __HAIKU__ |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
43 #include <ByteOrder.h> |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
44 #else |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
45 #include <arpa/inet.h> |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
46 #endif |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
47 #include <inttypes.h> |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
48 #endif |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
49 |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
50 #if defined __hpux || defined __SUNPRO_C || defined _AIX |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
51 #define inline |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
52 #endif |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
53 |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
54 #ifdef __linux |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
55 #define inline __inline |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
56 #endif |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
57 |
284d742e5611
internals: move the bitmanipulation routines into its own file
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff
changeset
|
58 #endif |