mercurial/compat.h
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Sun, 26 Mar 2017 15:46:09 +0200
changeset 31638 259e5dc21c1d
parent 29549 7b22599dcb85
child 33926 f4433f2713d0
permissions -rw-r--r--
histedit: backout changeset 6f0b7475cf9a Before 6f0b7475cf9a, histedit (like rebase) was only creating markers on final success from the old-rewritten node to the newly created nodes (as of before 6f0b7475cf9a). In case of abort the aborted attempt were stripped to restore the repository in its state prior to the attempt. This use of strip was on purpose. Using markers in this case introduces various issues. The main one is that keeping the partial result of histedit as obsolete prevents us to recreates the same nodes in a second attempt. The same operation will lead to an identical results, using an identical node that already exists in the repository as obsolete. To conclude, we cannot and should not switch to obsolescence markers creation on histedit --abort and we backout 6f0b7475cf9a. A test to catch this class of issue will be introduced in the next changeset.

#ifndef _HG_COMPAT_H_
#define _HG_COMPAT_H_

#ifdef _WIN32
#ifdef _MSC_VER
/* msvc 6.0 has problems */
#define inline __inline
#if defined(_WIN64)
typedef __int64 ssize_t;
#else
typedef int ssize_t;
#endif
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
#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