=== modified file 'cmdline/apt-cache.cc'
--- cmdline/apt-cache.cc	2010-04-01 15:18:31 +0000
+++ cmdline/apt-cache.cc	2010-04-23 11:30:04 +0000
@@ -1585,6 +1585,14 @@
    }
 
    string const myArch = _config->Find("APT::Architecture");
+   char const * const msgInstalled = _("  Installed: ");
+   char const * const msgCandidate = _("  Candidate: ");
+   short const InstalledLessCandidate =
+		mbstowcs(NULL, msgInstalled, 0) - mbstowcs(NULL, msgCandidate, 0);
+   short const deepInstalled =
+		(InstalledLessCandidate < 0 ? (InstalledLessCandidate*-1) : 0) - 1;
+   short const deepCandidate =
+		(InstalledLessCandidate > 0 ? (InstalledLessCandidate) : 0) - 1;
 
    // Print out detailed information for each package
    for (const char **I = CmdL.FileList + 1; *I != 0; I++)
@@ -1604,14 +1612,14 @@
       cout << Pkg.FullName(true) << ":" << endl;
 
       // Installed version
-      cout << _("  Installed: ");
+      cout << msgInstalled << OutputInDepth(deepInstalled, " ");
       if (Pkg->CurrentVer == 0)
 	 cout << _("(none)") << endl;
       else
 	 cout << Pkg.CurrentVer().VerStr() << endl;
       
       // Candidate Version 
-      cout << _("  Candidate: ");
+      cout << msgCandidate << OutputInDepth(deepCandidate, " ");
       pkgCache::VerIterator V = Plcy.GetCandidateVer(Pkg);
       if (V.end() == true)
 	 cout << _("(none)") << endl;

=== modified file 'debian/rules'
--- debian/rules	2010-03-12 14:29:07 +0000
+++ debian/rules	2010-04-22 10:18:28 +0000
@@ -47,7 +47,7 @@
 ifdef BUILD
 BUILD_POSSIBLE := $(BUILD) $(BASE)/$(BUILD)
 else
-BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname -m) $(BASE)/build
+BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname --machine) $(BASE)/build
 endif
 BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*))
 BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX))))
@@ -78,14 +78,14 @@
 include buildlib/libversion.mak
 
 # Determine which package we should provide in the control files
-LIBAPTPKG_PROVIDE=libapt-pkg$(LIBAPTPKG_MAJOR)
+LIBAPTPKG_PROVIDE= libapt-pkg$(LIBAPTPKG_MAJOR)
 LIBAPTINST_PROVIDE=libapt-inst$(LIBAPTINST_MAJOR)
 
 debian/shlibs.local: apt-pkg/makefile
 	# We have 3 shlibs.local files.. One for 'apt', one for 'apt-utils' and
 	# one for the rest of the packages. This ensures that each package gets
-	# the right overrides.. 
-	rm -rf $@ $@.apt $@.apt-utils
+	# the right overrides..
+	rm --recursive --force $@ $@.apt $@.apt-utils
 	echo "libapt-pkg $(LIBAPTPKG_MAJOR)" > $@.apt
 
 	echo "libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils
@@ -94,8 +94,8 @@
 	echo "libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@
 	echo "libapt-inst $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@
 
-build: build/build-stamp	
-build-doc: build/build-doc-stamp	
+build: build/build-stamp
+build-doc: build/build-doc-stamp
 
 # Note that this is unconditionally done first as part of loading environment.mak
 # The true is needed to force make to reload environment.mak after running
@@ -106,7 +106,7 @@
 configure: configure.in
 build/configure-stamp: configure
 	dh_testdir
-	-mkdir build
+	mkdir --parents build
 	cp COPYING debian/copyright
 	cd build && CXXFLAGS="$(confcxxflags)" ../configure $(confflags)
 	touch $@
@@ -124,10 +124,10 @@
 clean:
 	dh_testdir
 #	dh_testroot
-	[ -f Makefile ] && $(MAKE) clean
-	[ -f Makefile ] && $(MAKE) distclean
-
-	rm -rf build
+
+	[ ! -f Makefile ] || $(MAKE) clean distclean
+
+	rm --recursive --force build
 
 	# Add here commands to clean up after the build process.
 	dh_clean debian/copyright debian/shlibs.local debian/shlibs.local.apt debian/shlibs.local.apt-utils
@@ -141,10 +141,16 @@
 	dh_installdirs -p$@
 #
 # libapt-pkg-doc install
-#	
-	dh_installdocs -p$@ $(BLD)/docs/cache* $(BLD)/docs/design* $(BLD)/docs/dpkg-tech* \
-                            $(BLD)/docs/files* $(BLD)/docs/method* \
-			    doc/libapt-pkg2_to_3.txt doc/style.txt
+#
+	dh_installdocs -p$@ \
+		$(BLD)/docs/cache* \
+		$(BLD)/docs/design* \
+		$(BLD)/docs/dpkg-tech* \
+		$(BLD)/docs/files* \
+		$(BLD)/docs/method* \
+		doc/libapt-pkg2_to_3.txt \
+		doc/style.txt
+
 	dh_installexamples -p$@
 #	dh_installmenu -p$@
 #	dh_installinit -p$@
@@ -170,8 +176,12 @@
 # apt-doc install
 #
 	# Copy the guides
-	dh_installdocs -p$@ $(BLD)/docs/guide*.text $(BLD)/docs/guide*.html \
-	               $(BLD)/docs/offline*.text $(BLD)/docs/offline*.html
+	dh_installdocs -p$@ \
+		$(BLD)/docs/guide*.text \
+		$(BLD)/docs/guide*.html \
+		$(BLD)/docs/offline*.text \
+		$(BLD)/docs/offline*.html
+
 	dh_installchangelogs -p$@
 	dh_compress -p$@
 	dh_fixperms -p$@
@@ -208,21 +218,21 @@
 	rm debian/$@/usr/lib/apt/methods/https
 
 	cp $(BLD)/scripts/dselect/* debian/$@/usr/lib/dpkg/methods/apt/
-	cp -r $(BLD)/locale debian/$@/usr/share/
+	cp --recursive $(BLD)/locale debian/$@/usr/share/
 
 	cp debian/bugscript debian/$@/usr/share/bug/apt/script
 	cp debian/apt.logrotate debian/$@/etc/logrotate.d/apt
 
 	cp debian/apt.conf.autoremove debian/$@/etc/apt/apt.conf.d/01autoremove
-#	head -n 500 ChangeLog > debian/ChangeLog
+#	head --lines=500 ChangeLog > debian/ChangeLog
 
 	# copy lintian override
 	cp share/lintian-overrides debian/$@/usr/share/lintian/overrides/apt
 
 	# make rosetta happy and remove pot files in po/ (but leave stuff
 	# in po/domains/* untouched) and cp *.po into each domain dir
-	rm -f build/po/*.pot
-	rm -f po/*.pot
+	rm --force build/po/*.pot
+	rm --force po/*.pot
 
 	dh_installexamples -p$@ $(BLD)/docs/examples/*
 	dh_installman -p$@ $(wildcard $(patsubst %,doc/%.[158],$(apt_MANPAGES)) $(patsubst %,doc/*/%.*.[158],$(apt_MANPAGES)))
@@ -234,7 +244,7 @@
 	dh_fixperms -p$@
 	dh_makeshlibs -p$@ -m$(LIBAPTPKG_MAJOR) -V '$(LIBAPTPKG_PROVIDE)'
 	dh_installdeb -p$@
-	dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt
+	dh_shlibdeps -p$@ -l$(pwd)/debian/apt/usr/lib:$(pwd)/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt
 	dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
 	dh_md5sums -p$@
 	dh_builddeb -p$@
@@ -273,7 +283,6 @@
 	dh_testdir -p$@
 	dh_testroot -p$@
 	dh_clean -p$@ -k
-	dh_installdirs -p$@
 
 	# install the shared libs
 	find $(BLD)/bin/ -type f -name "libapt-inst*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
@@ -290,9 +299,9 @@
 	dh_strip -p$@
 	dh_compress -p$@
 	dh_fixperms -p$@
-	dh_makeshlibs -m$(LIBAPTINST_MAJOR) -V '$(LIBAPTINST_PROVIDE)' -p$@
+	dh_makeshlibs --major=$(LIBAPTINST_MAJOR) --version-info='$(LIBAPTINST_PROVIDE)' -p$@
 	dh_installdeb -p$@
-	dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils
+	dh_shlibdeps -p$@ -l$(pwd)/debian/apt/usr/lib:$(pwd)/debian/$@/usr/lib -- -Ldebian/shlibs.local.apt-utils
 	dh_gencontrol -p$@ -u -Vlibapt-inst:provides=$(LIBAPTINST_PROVIDE)
 	dh_md5sums -p$@
 	dh_builddeb -p$@
@@ -304,7 +313,7 @@
 	dh_installdirs -p$@
 
 	# install the method
-	mkdir -p debian/$@/usr/lib/apt/methods
+	mkdir --parents debian/$@/usr/lib/apt/methods
 	cp $(BLD)/bin/methods/https debian/$@/usr/lib/apt/methods
 
 	dh_installdocs -p$@ debian/apt-transport-https.README
@@ -318,13 +327,14 @@
 	dh_compress -p$@
 	dh_fixperms -p$@
 	dh_installdeb -p$@
-	dh_shlibdeps -p$@ -l`pwd`/debian/apt/usr/lib:`pwd`/debian/$@/usr/lib 
+	dh_shlibdeps -p$@ -l$(pwd)/debian/apt/usr/lib:$(pwd)/debian/$@/usr/lib
 	dh_gencontrol -p$@
 	dh_md5sums -p$@
 	dh_builddeb -p$@
 
 source diff:
-	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+	@echo 'source and diff are obsolete - use dpkg-source -b' >&2
+	false
 
 # Update from CVS
 l33ch: really-clean
@@ -341,16 +351,15 @@
 	touch $@
 
 really-clean: clean
-	-find -name Makefile.in -print0 | xargs -0r rm -f
-	find -name ChangeLog | xargs rm -f
-	rm -f l33ch-stamp
+	find . -name Makefile.in -print0 | xargs --null --no-run-if-empty rm --force
+	find . -name ChangeLog | xargs --no-run-if-empty rm --force
+	rm --force l33ch-stamp
 
 binary: binary-indep binary-arch
 .PHONY: build clean binary-indep binary-arch binary debian/shlibs.local
 
 
 # Done by the uploader.
-#cvs update.. 
 #edit debian/changelog
 # configure.in has the version automatically updated now.
 # edit configure.in
@@ -360,19 +369,24 @@
 CVS_ROOT=$(shell cat CVS/Root)
 CVS_MODULE=$(shell cat CVS/Repository)
 cvs-build:
-	rm -rf debian/cvs-build
-	mkdir -p debian/cvs-build
-	(cd debian/cvs-build;cvs -d $(CVS_ROOT) export -r$(APT_CVSTAG) -d apt-$(APT_DEBVER) $(CVS_MODULE))
-	$(MAKE) -C debian/cvs-build/$(CVS_BUILDDIR) startup doc
-	(cd debian/cvs-build/$(CVS_BUILDDIR);$(DEB_BUILD_PROG))
+	rm --recursive --force debian/cvs-build
+	mkdir --parents debian/cvs-build
+	(cd debian/cvs-build; cvs -d $(CVS_ROOT) export -r$(APT_CVSTAG) -d apt-$(APT_DEBVER) $(CVS_MODULE))
+	$(MAKE) --directory=debian/cvs-build/$(CVS_BUILDDIR) startup doc
+	(cd debian/cvs-build/$(CVS_BUILDDIR); $(DEB_BUILD_PROG))
 
 cvs-mkul:
-	-mkdir -p ../upload-$(APT_DEBVER)
-	cp `find debian/cvs-build -maxdepth 1 -type f` ../upload-$(APT_DEBVER)
+	mkdir --parents ../upload-$(APT_DEBVER)
+	cp $(find debian/cvs-build -maxdepth 1 -type f) ../upload-$(APT_DEBVER)
 
 arch-build:
-	rm -rf debian/arch-build
-	mkdir -p debian/arch-build/apt-$(APT_DEBVER)
-	tar -c --exclude=arch-build --no-recursion -f - `bzr inventory` | (cd debian/arch-build/$(PKG)-$(APT_DEBVER);tar xf -)
-	$(MAKE) -C debian/arch-build/apt-$(APT_DEBVER) startup doc
-	(cd debian/arch-build/apt-$(APT_DEBVER); $(DEB_BUILD_PROG); dpkg-genchanges -S > ../apt_$(APT_DEBVER)_source.changes)
+	rm --recursive --force debian/arch-build
+	mkdir --parents debian/arch-build/apt-$(APT_DEBVER)
+
+	tar --exclude=arch-build --no-recursion --create --file - $(bzr inventory) | \
+		tar --directory debian/arch-build/$(PKG)-$(APT_DEBVER) -x --file -
+
+	$(MAKE) --directory=debian/arch-build/apt-$(APT_DEBVER) startup doc
+
+	cd debian/arch-build/apt-$(APT_DEBVER); $(DEB_BUILD_PROG)
+	dpkg-genchanges -S > ../apt_$(APT_DEBVER)_source.changes

=== modified file 'ftparchive/writer.cc'
--- ftparchive/writer.cc	2010-03-26 21:38:50 +0000
+++ ftparchive/writer.cc	2010-04-22 09:40:45 +0000
@@ -28,6 +28,7 @@
 #include <ftw.h>
 #include <fnmatch.h>
 #include <iostream>
+#include <sstream>
 #include <memory>
     
 #include "cachedb.h"
@@ -706,23 +707,20 @@
    
    // Add the dsc to the files hash list
    string const strippedName = flNotDir(FileName);
-   char Files[1000];
-   snprintf(Files,sizeof(Files),"\n %s %lu %s\n %s",
-	    string(MD5.Result()).c_str(),St.st_size,
-	    strippedName.c_str(),
-	    Tags.FindS("Files").c_str());
-
-   char ChecksumsSha1[1000];
-   snprintf(ChecksumsSha1,sizeof(ChecksumsSha1),"\n %s %lu %s\n %s",
-	    string(SHA1.Result()).c_str(),St.st_size,
-	    strippedName.c_str(),
-	    Tags.FindS("Checksums-Sha1").c_str());
-
-   char ChecksumsSha256[1000];
-   snprintf(ChecksumsSha256,sizeof(ChecksumsSha256),"\n %s %lu %s\n %s",
-	    string(SHA256.Result()).c_str(),St.st_size,
-	    strippedName.c_str(),
-	    Tags.FindS("Checksums-Sha256").c_str());
+   std::ostringstream ostreamFiles;
+   ostreamFiles << "\n " << string(MD5.Result()) << " " << St.st_size << " "
+		<< strippedName << "\n " << Tags.FindS("Files");
+   string const Files = ostreamFiles.str();
+
+   std::ostringstream ostreamSha1;
+   ostreamSha1 << "\n " << string(SHA1.Result()) << " " << St.st_size << " "
+		<< strippedName << "\n " << Tags.FindS("Checksums-Sha1");
+   string const ChecksumsSha1 = ostreamSha1.str();
+
+   std::ostringstream ostreamSha256;
+   ostreamSha256 << "\n " << string(SHA256.Result()) << " " << St.st_size << " "
+		<< strippedName << "\n " << Tags.FindS("Checksums-Sha256");
+   string const ChecksumsSha256 = ostreamSha256.str();
 
    // Strip the DirStrip prefix from the FileName and add the PathPrefix
    string NewFileName;
@@ -740,7 +738,7 @@
 
    // Perform the delinking operation over all of the files
    string ParseJnk;
-   const char *C = Files;
+   const char *C = Files.c_str();
    char *RealPath = NULL;
    for (;isspace(*C); C++);
    while (*C != 0)
@@ -773,9 +771,9 @@
 
    unsigned int End = 0;
    SetTFRewriteData(Changes[End++],"Source",Package.c_str(),"Package");
-   SetTFRewriteData(Changes[End++],"Files",Files);
-   SetTFRewriteData(Changes[End++],"Checksums-Sha1",ChecksumsSha1);
-   SetTFRewriteData(Changes[End++],"Checksums-Sha256",ChecksumsSha256);
+   SetTFRewriteData(Changes[End++],"Files",Files.c_str());
+   SetTFRewriteData(Changes[End++],"Checksums-Sha1",ChecksumsSha1.c_str());
+   SetTFRewriteData(Changes[End++],"Checksums-Sha256",ChecksumsSha256.c_str());
    if (Directory != "./")
       SetTFRewriteData(Changes[End++],"Directory",Directory.c_str());
    SetTFRewriteData(Changes[End++],"Priority",BestPrio.c_str());

