--- /dev/null
- #define __must_check __attribute__ ((warn_unused_result))
- #define __deprecated __attribute__ ((deprecated))
- /* likely() and unlikely() can be used to mark boolean expressions
- as (not) likely true which will help the compiler to optimise */
- #define likely(x) __builtin_expect (!!(x), 1)
- #define unlikely(x) __builtin_expect (!!(x), 0)
+// -*- mode: cpp; mode: fold -*-
+// Description /*{{{*/
+/* ######################################################################
+
+ Macros Header - Various useful macro definitions
+
+ This source is placed in the Public Domain, do with it what you will
+ It was originally written by Brian C. White.
+
+ ##################################################################### */
+ /*}}}*/
+// Private header
+#ifndef MACROS_H
+#define MACROS_H
+
+// MIN_VAL(SINT16) will return -0x8000 and MAX_VAL(SINT16) = 0x7FFF
+#define MIN_VAL(t) (((t)(-1) > 0) ? (t)( 0) : (t)(((1L<<(sizeof(t)*8-1)) )))
+#define MAX_VAL(t) (((t)(-1) > 0) ? (t)(-1) : (t)(((1L<<(sizeof(t)*8-1))-1)))
+
+// Min/Max functions
+#if !defined(MIN)
+#if defined(__HIGHC__)
+#define MIN(x,y) _min(x,y)
+#define MAX(x,y) _max(x,y)
+#endif
+
+// GNU C++ has a min/max operator <coolio>
+#if defined(__GNUG__)
+#define MIN(A,B) ((A) <? (B))
+#define MAX(A,B) ((A) >? (B))
+#endif
+
+/* Templates tend to mess up existing code that uses min/max because of the
+ strict matching requirements */
+#if !defined(MIN)
+#define MIN(A,B) ((A) < (B)?(A):(B))
+#define MAX(A,B) ((A) > (B)?(A):(B))
+#endif
+#endif
+
+/* Bound functions, bound will return the value b within the limits a-c
+ bounv will change b so that it is within the limits of a-c. */
+#define _bound(a,b,c) MIN(c,MAX(b,a))
+#define _boundv(a,b,c) b = _bound(a,b,c)
+#define ABS(a) (((a) < (0)) ?-(a) : (a))
+
+/* Usefull count macro, use on an array of things and it will return the
+ number of items in the array */
+#define _count(a) (sizeof(a)/sizeof(a[0]))
+
+// Flag Macros
+#define FLAG(f) (1L << (f))
+#define SETFLAG(v,f) ((v) |= FLAG(f))
+#define CLRFLAG(v,f) ((v) &=~FLAG(f))
+#define CHKFLAG(v,f) ((v) & FLAG(f) ? true : false)
+
+// some nice optional GNUC features
+#if __GNUC__ >= 3
- #define __must_check /* no warn_unused_result */
- #define __deprecated /* no deprecated */
- #define likely(x) (x)
- #define unlikely(x) (x)
++ #define __must_check __attribute__ ((warn_unused_result))
++ #define __deprecated __attribute__ ((deprecated))
++ /* likely() and unlikely() can be used to mark boolean expressions
++ as (not) likely true which will help the compiler to optimise */
++ #define likely(x) __builtin_expect (!!(x), 1)
++ #define unlikely(x) __builtin_expect (!!(x), 0)
+#else
- #define __cold __attribute__ ((__cold__))
++ #define __must_check /* no warn_unused_result */
++ #define __deprecated /* no deprecated */
++ #define likely(x) (x)
++ #define unlikely(x) (x)
+#endif
+
+// cold functions are unlikely() to be called
+#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4
- #define __cold /* no cold marker */
++ #define __cold __attribute__ ((__cold__))
+#else
- #define __like_printf_1 __attribute__ ((format (printf, 2, 3)))
- #define __like_printf_2 __attribute__ ((format (printf, 3, 4)))
++ #define __cold /* no cold marker */
+#endif
+
+#ifdef __GNUG__
+// Methods have a hidden this parameter that is visible to this attribute
- #define __like_printf_1
- #define __like_printf_2
++ #define __like_printf_1 __attribute__ ((format (printf, 2, 3)))
++ #define __like_printf_2 __attribute__ ((format (printf, 3, 4)))
+#else
++ #define __like_printf_1 /* no like-printf */
++ #define __like_printf_2 /* no like-printf */
+#endif
+
+#endif
-apt (0.7.25) UNRELEASED; urgency=low
+apt (0.7.26) UNRELEASED; urgency=low
+
+ [ David Kalnischkies ]
+ * [BREAK] add possibility to download and use multiply
+ Translation files, configurable with Acquire::Translation
+ (Closes: #444222, #448216, #550564)
++ * [BREAK] merge MultiArch-ABI. We don't support MultiArch,
++ but we support the usage of the new ABI so libapt users
++ can start to prepare for MultiArch (Closes: #536029)
+ * Ignore :qualifiers after package name in build dependencies
+ for now as long we don't understand them (Closes: #558103)
+ * apt-pkg/contrib/mmap.{cc,h}:
+ - extend it to have a growable flag - unused now but maybe...
+ * apt-pkg/pkgcache.h:
+ - use long instead of short for {Ver,Desc}File size,
+ patch from Víctor Manuel Jáquez Leal, thanks! (Closes: #538917)
+ * apt-pkg/acquire-item.cc:
+ - allow also to skip the last patch if target is reached,
+ thanks Bernhard R. Link! (Closes: #545699)
+ * ftparchive/writer.{cc,h}:
+ - add APT::FTPArchive::AlwaysStat to disable the too aggressive
+ caching if versions are build multiply times (not recommend)
+ Patch by Christoph Goehre, thanks! (Closes: #463260)
+
+ [ Ivan Masár ]
+ * Slovak translation update. Closes: #568294
+
+ -- David Kalnischkies <kalnischkies@gmail.com> Sat, 13 Feb 2010 01:42:50 +0100
+
+apt (0.7.25.3) unstable; urgency=low
+
+ [ Christian Perrier ]
+ * Italian translation update. Closes: #567532
+
+ [ David Kalnischkies ]
+ * apt-pkg/contrib/macros.h:
+ - install the header system.h with a new name to be able to use
+ it in other headers (Closes: #567662)
+ * cmdline/acqprogress.cc:
+ - Set Mode to Medium so that the correct prefix is used.
+ Thanks Stefan Haller for the patch! (Closes: #567304 LP: #275243)
+ * ftparchive/writer.cc:
+ - generate sha1 and sha256 checksums for dsc (Closes: #567343)
+ * cmdline/apt-get.cc:
+ - don't mark as manually if in download only (Closes: #468180)
+
+ -- Michael Vogt <mvo@debian.org> Mon, 01 Feb 2010 18:41:15 +0100
+
+apt (0.7.25.2) unstable; urgency=low
+
+ [ Michael Vogt ]
+ * apt-pkg/contrib/cdromutl.cc:
+ - fix UnmountCdrom() fails, give it a bit more time and try
+ the umount again
+ * apt-pkg/cdrom.cc:
+ - fix crash in pkgUdevCdromDevices
+ * methods/cdrom.cc:
+ - fixes in multi cdrom setup code (closes: #549312)
+ - add new "Acquire::cdrom::AutoDetect" config that enables/disables
+ the dlopen of libudev for automatic cdrom detection. Off by default
+ currently, feedback/testing welcome
+ * cmdline/apt-cdrom.cc:
+ - add new --auto-detect option that uses libudev to figure out
+ the cdrom/mount-point
+ * cmdline/apt-mark:
+ - merge fix from Gene Cash that supports markauto for
+ packages that are not in the extended_states file yet
+ (closes: #534920)
+ * ftparchive/writer.{cc,h}:
+ - merge crash fix for apt-ftparchive on hurd, thanks to
+ Samuel Thibault for the patch (closes: #566664)
+
+ [ David Kalnischkies ]
+ * apt-pkg/contrib/fileutl.cc:
+ - Fix the newly introduced method GetListOfFilesInDir to not
+ accept every file if no extension is enforced
+ (= restore old behaviour). (Closes: #565213)
+ * apt-pkg/policy.cc:
+ - accept also partfiles with "pref" file extension as valid
+ * apt-pkg/contrib/configuration.cc:
+ - accept also partfiles with "conf" file extension as valid
+ * doc/apt.conf.5.xml:
+ - reorder description and split out syntax
+ - add partfile name convention (Closes: #558348)
+ * doc/apt_preferences.conf.5.xml:
+ - describe partfile name convention also here
+ * apt-pkg/deb/dpkgpm.cc:
+ - don't segfault if term.log file can't be opened.
+ Thanks Sam Brightman for the patch! (Closes: #475770)
+ * doc/*:
+ - replace the per language addendum with a global addendum
+ - add a explanation why translations include (maybe) english
+ parts to the new global addendum (Closes: #561636)
+ * apt-pkg/contrib/strutl.cc:
+ - fix malloc asseration fail with ja_JP.eucJP locale in
+ apt-cache search. Thanks Kusanagi Kouichi! (Closes: #548884)
+
+ [ Christian Perrier ]
+ * French translation update
+
+ -- Michael Vogt <mvo@debian.org> Wed, 27 Jan 2010 16:16:10 +0100
+
+apt (0.7.25.1) unstable; urgency=low
+
+ [ Christian Perrier ]
+ * French manpage translation update
+ * Russian translation update by Yuri Kozlov
+ Closes: #564171
+
+ [Chris Leick]
+ * spot & fix various typos in all manpages
+ * German manpage translation update
+
+ [ David Kalnischkies ]
+ * cmdline/apt-cache.cc:
+ - remove translatable marker from the "%4i %s\n" string
+ * buildlib/po4a_manpage.mak:
+ - instruct debiandoc to build files with utf-8 encoding
+ * buildlib/tools.m4:
+ - fix some warning from the buildtools
+ * apt-pkg/acquire-item.cc:
+ - add configuration PDiffs::Limit-options to not download
+ too many or too big patches (Closes: #554349)
+ * debian/control:
+ - let all packages depend on ${misc:Depends}
+ * share/*-archive.gpg:
+ - remove the horrible outdated files. We already depend on
+ the keyring so we don't need to ship our own version
+ * cmdline/apt-key:
+ - errors out if wget is not installed (Closes: #545754)
+ - add --keyring option as we have now possibly many
+ * methods/gpgv.cc:
+ - pass all keyrings (TrustedParts) to gpgv instead of
+ using only one trusted.gpg keyring (Closes: #304846)
+ * methods/https.cc:
+ - finally merge the rest of the patchset from Arnaud Ebalard
+ with the CRL and Issuers options, thanks! (Closes: #485963)
+ * apt-pkg/deb/debindexfile.cc, apt-pkg/pkgcachegen.cc:
+ - add debug option Debug::pkgCacheGen
+
+ [ Michael Vogt ]
+ * cmdline/apt-get.cc:
+ - merge fix for apt-get source pkg=version regression
+ (closes: #561971)
+ * po/ru.po:
+ - merged updated ru.po, thanks to Yuri Kozlov (closes: #564171)
+
+ -- Michael Vogt <mvo@debian.org> Sat, 09 Jan 2010 21:52:36 +0100
+
+apt (0.7.25) unstable; urgency=low
[ Christian Perrier ]
* Fix apt-ftparchive(1) wrt description of the "-o" option.