##// END OF EJS Templates
py3: avoid iterating over a literal bytes in highlight...
py3: avoid iterating over a literal bytes in highlight In Python 3, iterating over a bytes literal yields integers. Since we use the value in `text.replace()`, this fails on Python 3 with the following trackback: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgwebdir_mod.py", line 378, in run_wsgi for r in self._runwsgi(req, res): File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgweb_mod.py", line 326, in run_wsgi for r in self._runwsgi(req, res, repo): File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgweb_mod.py", line 449, in _runwsgi return getattr(webcommands, cmd)(rctx) File "/usr/lib/python3/dist-packages/mercurial/hgweb/webcommands.py", line 211, in file return _filerevision(web, webutil.filectx(web.repo, web.req)) File "/usr/lib/python3/dist-packages/hgext/highlight/__init__.py", line 72, in filerevision_highlight pygmentize(web, b'fileline', fctx, web.tmpl) File "/usr/lib/python3/dist-packages/hgext/highlight/__init__.py", line 58, in pygmentize field, fctx, style, tmpl, guessfilenameonly=filenameonly File "/usr/lib/python3/dist-packages/hgext/highlight/highlight.py", line 62, in pygmentize text = text.replace(c, b'') TypeError: a bytes-like object is required, not 'int'

File last commit:

r39646:11ed2ead default
r44014:856cce0c stable
Show More
compat.h
58 lines | 1.0 KiB | text/x-c | CLexer
Maciej Fijalkowski
internals: move the bitmanipulation routines into its own file...
r29444 #ifndef _HG_COMPAT_H_
#define _HG_COMPAT_H_
#ifdef _WIN32
#ifdef _MSC_VER
Matt Harbison
cext: fix warnings when building for py3 on Windows...
r39646 #if _MSC_VER < 1900
Maciej Fijalkowski
internals: move the bitmanipulation routines into its own file...
r29444 /* msvc 6.0 has problems */
#define inline __inline
Maciej Fijalkowski
compat: provide a declaration of ssize_t, for MS windows
r29521 #if defined(_WIN64)
typedef __int64 ssize_t;
Yuya Nishihara
encoding: add function to test if a str consists of ASCII characters...
r33927 typedef unsigned __int64 uintptr_t;
Maciej Fijalkowski
compat: provide a declaration of ssize_t, for MS windows
r29521 #else
Yuya Nishihara
compat: define ssize_t as int on 32bit Windows, silences C4142 warning...
r29549 typedef int ssize_t;
Yuya Nishihara
encoding: add function to test if a str consists of ASCII characters...
r33927 typedef unsigned int uintptr_t;
Maciej Fijalkowski
compat: provide a declaration of ssize_t, for MS windows
r29521 #endif
Maciej Fijalkowski
internals: move the bitmanipulation routines into its own file...
r29444 typedef signed char int8_t;
typedef short int16_t;
typedef long int32_t;
typedef __int64 int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
typedef unsigned __int64 uint64_t;
#else
Matt Harbison
cext: fix warnings when building for py3 on Windows...
r39646 /* VC++ 14 */
#include <stdint.h>
#if defined(_WIN64)
typedef __int64 ssize_t;
#else
typedef int ssize_t;
#endif
#endif /* _MSC_VER < 1900 */
#else
/* not msvc */
Maciej Fijalkowski
internals: move the bitmanipulation routines into its own file...
r29444 #include <stdint.h>
#endif
#else
/* not windows */
#include <sys/types.h>
#if defined __BEOS__ && !defined __HAIKU__
#include <ByteOrder.h>
#else
#include <arpa/inet.h>
#endif
#include <inttypes.h>
#endif
#if defined __hpux || defined __SUNPRO_C || defined _AIX
#define inline
#endif
#ifdef __linux
#define inline __inline
#endif
#endif