babl portability patches, and a test failure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It is very difficult to compile babl-0.0.22 unless you are
using gcc and gmake with the GNU coreutils and ruby, on a
linux host.

With the attached patches I was able to successfully build
everything with the vendor compilers, and pass all but one
test (failure output below) on these 30 architectures:

  SuSE SLES 10 (x86_64 and i686);
  Redhat RHEL3, RHEL4 and RHEL5 (x86_64 and i686);
  Redhat 7.1, 9 and RHEL 2.1 (i686);
  Solaris 10 (x86 and sparc);
  Solaris 2.6, 7, 8 and 9 (sparc);
  AIX 4.3.3, 5.1, 5.2, 5.3 and 6.1 (powerpc);
  HPUX 11.31 (ia64);
  HPUX 11.23 (pa-risc and ia64);
  HPUX 10.20, 11.0 and 11.11 (pa-risc);
  IRIX 6.5 (mips);
  Tru64 Unix 5.1 (ev5).

Here is a list of some of the problems solved by the
attached patches, which would otherwise prevent
proper compilation by one or more vendor C compilers:

 * build the extensions with libtool
 * support '.sl' shared library ext on HPUX
 * use correct includedir entry in babl.pc
 * use gnulib stdint.h for systems that don't have one
 * support shl_load -ldl library loader on HPUX
 * remove extraneous trailing commas from *CONVERSION mcros
 * automake INCLUDES is deprecated, use AM_CPPFLAGS
 * support srcdir != builddir builds
 * use automake source file inference in tests/
 * pregenerate changelog.rss (ruby is not commonly installed)
 * don't double #include <math.h>
 * variadic macros are not portable
 * don't use non-constant struct initializers
 * don't use the MSB of a signed integer type in an enum
 * don't use C++ comments
 * rewrite xml_instert.sh not to rely on GNU coreutils
 * for gnulib and autoconf to work properly, every .c file
   needs to #include <config.h> before anything else!

I also wrapped the body of BABL_DETECT_CFLAGS in a GCC test,
since some vendor compilers simply warn and ignore unknown
flags.  It would be better to fix this properly.

Correct compilation on Tru64 relies on use of the -ieee
flag to cc, which I passed manually.  It would be better to
detect this at configure time with a correctly implemented
BABL_DETECT_CFLAGS macro.

I regenerated the autotools files with latest released
versions of autoconf, automake and libtool which results
in a huge diff, not attached!

I also removed the babl-0.0 include subdirectory and some
other instances of the @API-VERSION@, which are superflous
for our installations (each package already installs to
/opt/fsw/@pkg@-@version@/), but is almost certainly the
wrong thing to do in upstream releases.

With these patches applied, all hosts (except linux) always
fail the final test case.  I'm not sure whether this is an
anticipated rounding error that the test itself should be
tolerant of, or if there is a genuine problem with all of
the non-linux builds?

PASS: grayscale_to_rgb
PASS: rgb_to_bgr
PASS: rgb_to_ycbcr
PASS: srgb_to_lab_u8
PASS: sanity
PASS: babl_class_name
PASS: types
R'G'B'
        test:     60323.989 75673.805 55655.807 10508.764
        clipped:  60324.000 75673.819 55655.817 1.000
        trnsfrmd: 60324.010 75673.832 55655.827 1.000
R'G'B'
        test:     22002.791 20097.686 55166.163 25341.894
        clipped:  22002.794 20097.689 55166.173 1.000
        trnsfrmd: 22002.798 20097.693 55166.182 1.000
R'G'B'
        test:     31145.225 44052.134 43954.156 9807.322
        clipped:  31145.230 44052.142 43954.163 1.000
        trnsfrmd: 31145.235 44052.149 43954.171 1.000
R'G'B'
        test:     21854.712 45827.089 6242.623 90425.124
        clipped:  21854.716 45827.097 6242.624 1.000
        trnsfrmd: 21854.719 45827.105 6242.624 1.000
R'G'B' is not symmetric
R'G'B'A
        test:     60323.989 75673.805 55655.807 10508.764
        clipped:  60324.000 75673.819 55655.817 10508.764
        trnsfrmd: 60324.010 75673.832 55655.827 10508.764
R'G'B'A
        test:     22002.791 20097.686 55166.163 25341.894
        clipped:  22002.794 20097.689 55166.173 25341.894
        trnsfrmd: 22002.798 20097.693 55166.182 25341.894
R'G'B'A
        test:     31145.225 44052.134 43954.156 9807.322
        clipped:  31145.230 44052.142 43954.163 9807.322
        trnsfrmd: 31145.235 44052.149 43954.171 9807.322
R'G'B'A
        test:     21854.712 45827.089 6242.623 90425.124
        clipped:  21854.716 45827.097 6242.624 90425.124
        trnsfrmd: 21854.719 45827.105 6242.624 90425.124
R'G'B'A is not symmetric
R'aG'aB'aA
        test:     60323.989 75673.805 55655.807 10508.764
        clipped:  60324.000 75673.819 55655.817 10508.764
        trnsfrmd: 60324.010 75673.832 55655.827 10508.764
R'aG'aB'aA
        test:     22002.791 20097.686 55166.163 25341.894
        clipped:  22002.794 20097.689 55166.173 25341.894
        trnsfrmd: 22002.798 20097.693 55166.182 25341.894
R'aG'aB'aA
        test:     31145.225 44052.134 43954.156 9807.322
        clipped:  31145.230 44052.142 43954.163 9807.322
        trnsfrmd: 31145.235 44052.149 43954.171 9807.322
R'aG'aB'aA
        test:     21854.712 45827.089 6242.623 90425.124
        clipped:  21854.716 45827.097 6242.624 90425.124
        trnsfrmd: 21854.719 45827.105 6242.624 90425.124
R'aG'aB'aA is not symmetric
Y'
        test:     60323.989 75673.805 55655.807 10508.764
        clipped:  68802.171 68802.171 68802.171 1.000
        trnsfrmd: 68802.183 68802.183 68802.183 1.000
Y'
        test:     22002.791 20097.686 55166.163 25341.894
        clipped:  24665.123 24665.123 24665.123 1.000
        trnsfrmd: 24665.127 24665.127 24665.127 1.000
Y'
        test:     31145.225 44052.134 43954.156 9807.322
        clipped:  40181.806 40181.806 40181.806 1.000
        trnsfrmd: 40181.813 40181.813 40181.813 1.000
Y'
        test:     21854.712 45827.089 6242.623 90425.124
        clipped:  34146.725 34146.725 34146.725 1.000
        trnsfrmd: 34146.731 34146.731 34146.731 1.000
Y' is not symmetric
Y'A
        test:     60323.989 75673.805 55655.807 10508.764
        clipped:  68802.171 68802.171 68802.171 10508.764
        trnsfrmd: 68802.183 68802.183 68802.183 10508.764
Y'A
        test:     22002.791 20097.686 55166.163 25341.894
        clipped:  24665.123 24665.123 24665.123 25341.894
        trnsfrmd: 24665.127 24665.127 24665.127 25341.894
Y'A
        test:     31145.225 44052.134 43954.156 9807.322
        clipped:  40181.806 40181.806 40181.806 9807.322
        trnsfrmd: 40181.813 40181.813 40181.813 9807.322
Y'A
        test:     21854.712 45827.089 6242.623 90425.124
        clipped:  34146.725 34146.725 34146.725 90425.124
        trnsfrmd: 34146.731 34146.731 34146.731 90425.124
Y'A is not symmetric
Y'aA
        test:     60323.989 75673.805 55655.807 10508.764
        clipped:  68802.171 68802.171 68802.171 10508.764
        trnsfrmd: 68802.183 68802.183 68802.183 10508.764
Y'aA
        test:     22002.791 20097.686 55166.163 25341.894
        clipped:  24665.123 24665.123 24665.123 25341.894
        trnsfrmd: 24665.127 24665.127 24665.127 25341.894
Y'aA
        test:     31145.225 44052.134 43954.156 9807.322
        clipped:  40181.806 40181.806 40181.806 9807.322
        trnsfrmd: 40181.813 40181.813 40181.813 9807.322
Y'aA
        test:     21854.712 45827.089 6242.623 90425.124
        clipped:  34146.725 34146.725 34146.725 90425.124
        trnsfrmd: 34146.731 34146.731 34146.731 90425.124
Y'aA is not symmetric
Y'CbCr
        test:     60323.989 75673.805 55655.807 10508.764
        clipped:  60323.989 75673.855 55655.819 1.000
        trnsfrmd: 60323.988 75673.904 55655.832 1.000
Y'CbCr
        test:     22002.791 20097.686 55166.163 25341.894
        clipped:  22002.810 20097.691 55166.172 1.000
        trnsfrmd: 22002.829 20097.696 55166.181 1.000
Y'CbCr
        test:     31145.225 44052.134 43954.156 9807.322
        clipped:  31145.230 44052.178 43954.166 1.000
        trnsfrmd: 31145.235 44052.222 43954.176 1.000
Y'CbCr
        test:     21854.712 45827.089 6242.623 90425.124
        clipped:  21854.693 45827.155 6242.625 1.000
        trnsfrmd: 21854.673 45827.221 6242.628 1.000
Y'CbCr is not symmetric
Y'CbCrA
        test:     60323.989 75673.805 55655.807 10508.764
        clipped:  60323.989 75673.855 55655.819 10508.764
        trnsfrmd: 60323.988 75673.904 55655.832 10508.764
Y'CbCrA
        test:     22002.791 20097.686 55166.163 25341.894
        clipped:  22002.810 20097.691 55166.172 25341.894
        trnsfrmd: 22002.829 20097.696 55166.181 25341.894
Y'CbCrA
        test:     31145.225 44052.134 43954.156 9807.322
        clipped:  31145.230 44052.178 43954.166 9807.322
        trnsfrmd: 31145.235 44052.222 43954.176 9807.322
Y'CbCrA
        test:     21854.712 45827.089 6242.623 90425.124
        clipped:  21854.693 45827.155 6242.625 90425.124
        trnsfrmd: 21854.673 45827.221 6242.628 90425.124
Y'CbCrA is not symmetric
FAIL: models
===================
1 of 8 tests failed
===================

If I can provide clarification for the necessity of any of
the changes I made, or if a complete tarball with patches
preapplied would be useful, or if you would like me to
test a prerelease version with some of these fixes already
applied, please don't hesitate to ask.

Thanks for your work on BABL and GEGL!

Cheers,
	Gary
-- 
Gary V. Vaughan (gary@xxxxxxxxxxxxxxxxxx)
Index: configure.ac
===================================================================
--- configure.ac.orig
+++ configure.ac
@@ -1,6 +1,6 @@
 dnl Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.54)
+AC_PREREQ(2.59)
 
 # Making releases on the stable branch:
 #   BABL_MICRO_VERSION += 1;
@@ -53,7 +53,6 @@ AC_SUBST(BABL_INTERFACE_AGE)
 AC_SUBST(BABL_BINARY_AGE)
 AC_SUBST(BABL_VERSION)
 AC_SUBST(BABL_REAL_VERSION)
-AC_SUBST(BABL_API_VERSION)
 
 BABL_RELEASE=babl_api_version
 AC_SUBST(BABL_RELEASE)
@@ -91,8 +90,10 @@ AM_CONFIG_HEADER(config.h)
 
 AC_DISABLE_STATIC
 AC_PROG_CC
+gl_EARLY
 AC_LIBTOOL_WIN32_DLL
-AM_PROG_LIBTOOL
+AC_LIBTOOL_TAGS()
+AC_PROG_LIBTOOL
 
 dnl Initialize maintainer mode
 AM_MAINTAINER_MODE
@@ -175,22 +176,22 @@ case "$target_or_host" in
 esac
 
 
-####################################################
-# Check how to generate plug-ins (with gcc at least)
-####################################################
+###########################
+# Check how to find plugins
+###########################
 
 AC_MSG_CHECKING([for some Win32 platform])
 case "$target_or_host" in 
   *-*-darwin*)                 # darwin
     shrext=.dylib
-    dynamiclib=-dynamiclib
     ;;
   *-*-mingw* | *-*-cygwin*)    # windows
     shrext=.dll
-    dynamiclib=-shared
+    ;;
+  hppa*-hpux*)
+    shrext=.sl
     ;;
   *)                           # linux (and BSD?)
-    dynamiclib=-shared
     shrext=.so
     ;;
 esac
@@ -199,10 +200,6 @@ SHREXT=$shrext
 AC_SUBST(SHREXT)
 AC_DEFINE_UNQUOTED(SHREXT,     "$shrext",     [File extension for shared libraries])
 
-DYNAMICLIB=$dynamiclib
-AC_SUBST(DYNAMICLIB)
-AC_DEFINE_UNQUOTED(DYNAMICLIB, "$dynamiclib", [Dynamic shared library])
-
 dnl ===========================================================================
 
 #################
@@ -365,6 +362,9 @@ fi
 
 dnl ===========================================================================
 
+gl_INIT
+AC_CHECK_HEADERS(dl.h inttypes.h limits.h)
+
 AC_SEARCH_LIBS([dlopen], [dl])
 AC_SEARCH_LIBS([rint], [m])
 
@@ -391,6 +391,7 @@ babl/base/Makefile
 docs/Makefile
 docs/index-static.html
 docs/graphics/Makefile
+lib/Makefile
 tests/Makefile
 extensions/Makefile
 INSTALL
Index: docs/Makefile.am
===================================================================
--- docs/Makefile.am.orig
+++ docs/Makefile.am
@@ -1,7 +1,7 @@
 # programs used for doc creation
 babl_fish_path_dhtml   = $(top_builddir)/tests/babl_fish_path_dhtml
 babl_fish_path_fitness = $(top_builddir)/tests/babl_fish_path_fitness
-babl_html_dump         = $(top_builddir)/tests/babl_html_dump
+babl_html_dump         = $(top_builddir)/tests/babl-html-dump
 
 .SILENT:
 SUBDIRS=      graphics
@@ -54,16 +54,16 @@ index.html: index-static.html           
 	    Makefile.am
 	echo -n "HTML: $@"
 	cp $< $@ 
-	(which mktemp > /dev/null&& TMPFILE=`mktemp` || TMPFILE="/tmp/babl_build_tempfile" ;\
+	(which mktemp > /dev/null 2>&1 && TMPFILE=`mktemp` || TMPFILE="/tmp/babl_build_tempfile" ;\
 	export BABL_PATH="$(top_builddir)/extensions"; $(babl_html_dump) > $$TMPFILE;\
-	$(top_srcdir)/docs/tools/xml_insert.sh $@ BablBase $$TMPFILE;\
+	$(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ BablBase $$TMPFILE;\
 	rm -f $$TMPFILE )
 	echo -n "."
 
-	$(top_srcdir)/docs/tools/xml_insert.sh $@ BablFishPath BablFishPath.txt
-	$(top_srcdir)/docs/tools/xml_insert.sh $@ AUTHORS $(top_srcdir)/AUTHORS
-	$(top_srcdir)/docs/tools/xml_insert.sh $@ TODO $(top_srcdir)/TODO
-	$(top_srcdir)/docs/tools/xml_insert.sh $@ NEWS $(top_srcdir)/NEWS
+	$(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ BablFishPath BablFishPath.txt
+	$(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ AUTHORS $(top_srcdir)/AUTHORS
+	$(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ TODO $(top_srcdir)/TODO
+	$(SHELL) $(top_srcdir)/docs/tools/xml_insert.sh $@ NEWS $(top_srcdir)/NEWS
 	echo " [OK]"
 
 distclean-local:
Index: babl/base/type-u8.c
===================================================================
--- babl/base/type-u8.c.orig
+++ babl/base/type-u8.c
@@ -107,9 +107,9 @@ convert_u8_double_scaled (double        
                                      src, dst, src_pitch, dst_pitch, n); \
   }
 
-MAKE_CONVERSIONS (u8, 0.0, 1.0, 0x00, UINT8_MAX);
-MAKE_CONVERSIONS (u8_luma, 0.0, 1.0, 16, 235);
-MAKE_CONVERSIONS (u8_chroma, 0.0, 1.0, 16, 240);
+MAKE_CONVERSIONS (u8, 0.0, 1.0, 0x00, UINT8_MAX)
+MAKE_CONVERSIONS (u8_luma, 0.0, 1.0, 16, 235)
+MAKE_CONVERSIONS (u8_chroma, 0.0, 1.0, 16, 240)
 
 void
 babl_base_type_u8 (void)
Index: babl/base/type-u16.c
===================================================================
--- babl/base/type-u16.c.orig
+++ babl/base/type-u16.c
@@ -107,7 +107,7 @@ convert_u16_double_scaled (double   min_
                                       src, dst, src_pitch, dst_pitch, n); \
   }
 
-MAKE_CONVERSIONS (u16, 0.0, 1.0, 0, UINT16_MAX);
+MAKE_CONVERSIONS (u16, 0.0, 1.0, 0, UINT16_MAX)
 
 void
 babl_base_type_u16 (void)
Index: babl/base/type-u32.c
===================================================================
--- babl/base/type-u32.c.orig
+++ babl/base/type-u32.c
@@ -106,7 +106,7 @@ convert_u32_double_scaled (double   min_
                                       src, dst, src_pitch, dst_pitch, n); \
   }
 
-MAKE_CONVERSIONS (u32, 0.0, 1.0, 0, UINT32_MAX);
+MAKE_CONVERSIONS (u32, 0.0, 1.0, 0, UINT32_MAX)
 
 void
 babl_base_type_u32 (void)
Index: babl/Makefile.am
===================================================================
--- babl/Makefile.am.orig
+++ babl/Makefile.am
@@ -44,8 +44,7 @@ h_sources  =             		\
 	babl-hash-table.h               \
 	babl-cpuaccel.h
 
-library_includedir=$(includedir)/babl-$(BABL_API_VERSION)/babl
-library_include_HEADERS =		\
+pkginclude_HEADERS =			\
 	babl.h				\
 	babl-component.h		\
 	babl-conversion.h		\
@@ -58,16 +57,20 @@ library_include_HEADERS =		\
 	babl-type.h                     \
 	babl-version.h
 
-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/babl/base
+AM_CPPFLAGS = \
+	-DLIBDIR=\""$(libdir)"\" 	\
+	-I$(top_builddir)		\
+	-I$(top_srcdir)			\
+	-I$(top_builddir)/lib		\
+	-I$(top_srcdir)/lib		\
+	-I$(top_srcdir)/babl/base
 
-AM_CPPFLAGS = -DLIBDIR=\""$(libdir)"\"
-
-lib_LTLIBRARIES= libbabl-@BABL_API_VERSION@.la
-libbabl_@BABL_API_VERSION@_la_SOURCES= $(h_sources) $(c_sources)
-libbabl_@BABL_API_VERSION@_la_LIBADD=\
+lib_LTLIBRARIES= libbabl.la
+libbabl_la_SOURCES= $(h_sources) $(c_sources)
+libbabl_la_LIBADD=\
 	base/libbase.la \
 	@LTLIBOBJS@
 
-libbabl_@BABL_API_VERSION@_la_LDFLAGS= 		\
+libbabl_la_LDFLAGS= 		\
 	${no_undefined} $(MATH_LIB)	\
 	-version-info $(BABL_LIBRARY_VERSION)
Index: extensions/Makefile.am
===================================================================
--- extensions/Makefile.am.orig
+++ extensions/Makefile.am
@@ -1,60 +1,29 @@
-# General minimalistic compile file for self contained single
-# file babl_extensions
+extdir = $(libdir)/babl
+ext_LTLIBRARIES =	\
+	CIE-Lab.la	\
+	gegl-fixups.la	\
+	gggl-lies.la	\
+	gggl.la		\
+	gimp-8bit.la	\
+	naive-CMYK.la	\
+	sse-fixups.la
+
+AM_CFLAGS = \
+	-I$(top_builddir)		\
+	-I$(top_srcdir)			\
+	-I$(top_builddir)/lib		\
+	-I$(top_srcdir)/lib		\
+	-I$(top_srcdir)/babl		\
+	-I$(top_srcdir)/extensions
+
+AM_LDFLAGS = -module
+
+CIE_Lab_la_LIBADD = $(top_builddir)/babl/libbabl.la
+gegl_fixups_la_LIBADD = $(top_builddir)/babl/libbabl.la
+gggl_lies_la_LIBADD = $(top_builddir)/babl/libbabl.la
+gggl_la_LIBADD = $(top_builddir)/babl/libbabl.la
+gimp_8bit_la_LIBADD = $(top_builddir)/babl/libbabl.la
+naive_CMYK_la_LIBADD = $(top_builddir)/babl/libbabl.la
 
-if OS_WIN32
-no_undefined = -no-undefined
-libbabldlla=$(top_builddir)/babl/.libs/libbabl-$(BABL_API_VERSION).dll.a
-endif
-
-CFILES          = $(wildcard $(srcdir)/*.c)
-SOBJS           = $(subst $(srcdir)/,,$(CFILES:.c=$(SHREXT)))
-INSTALLED_ITEMS = $(subst $(srcdir),$(ext_dir),$(CFILES:.c=$(SHREXT)))
-EXTRA_DIST      = $(wildcard *.[ch])
-
-all-local: $(SOBJS)
-
-CFLAGS += \
-	-I $(top_builddir)		\
-	-I $(top_srcdir)		\
-	-I $(top_srcdir)/babl		\
-	-I $(top_srcdir)/extensions	\
-	-fPIC
-
-LDFLAGS += $(DYNAMICLIB)
-
-if OS_WIN32
-LDADD    = $(no-undefined) $(libbabldlla) $(MATH_LIB)
-else
-LDADD    = $(top_builddir)/babl/.libs/libbabl-$(BABL_API_VERSION)$(SHREXT) $(MATH_LIB)
-endif
-
-%$(SHREXT): %.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDADD)
-
-# if extension needing external libraries are to be # compiled with this make
-# file, each of them can be added according to the this pattern:
-# extra$(SHREXT): extra.c
-#	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $<  [own compile and link flags]
-
-CIE-Lab$(SHREXT): CIE-Lab.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDADD)
-
-sse-fixups$(SHREXT): sse-fixups.c
-	$(CC) $(CFLAGS) $(MMX_EXTRA_CFLAGS) $(SSE_EXTRA_CFLAGS) $(LDFLAGS) -o $@ $< $(LDADD)
-#lcms$(SHREXT): lcms.c
-#	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDADD) `pkg-config lcms --cflags --libs`
-#############################################################################
-
-clean-local:
-	rm -f $(SOBJS)
-
-ext_dir = $(DESTDIR)$(libdir)/babl-@BABL_API_VERSION@
-
-install-exec-local: all-local
-	$(INSTALL) -d $(ext_dir)
-	$(INSTALL) $(SOBJS) $(ext_dir)
-
-uninstall-local:
-	rm -f $(INSTALLED_ITEMS)
-
-check-local: all-local
+sse_fixups_la_LIBADD = $(top_builddir)/babl/libbabl.la
+sse_fixups_la_CFLAGS = $(AM_CFLAGS) $(MMX_EXTRA_CFLAGS) $(SSE_EXTRA_CFLAGS)
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am.orig
+++ tests/Makefile.am
@@ -8,35 +8,24 @@ TESTS =				\
 	types			\
 	models	
 
-TESTS_ENVIRONMENT = BABL_PATH=$(top_builddir)/extensions
+TESTS_ENVIRONMENT = BABL_PATH=$(top_builddir)/extensions/.libs
 
-grayscale_to_rgb_SOURCES        = grayscale_to_rgb.c
-rgb_to_bgr_SOURCES              = rgb_to_bgr.c
-srgb_to_lab_u8_SOURCES          = srgb_to_lab_u8.c
-rgb_to_ycbcr_SOURCES            = rgb_to_ycbcr.c
-babl_class_name_SOURCES         = babl_class_name.c
-sanity_SOURCES                  = sanity.c
-types_SOURCES                   = types.c
-babl_fish_path_fitness_SOURCES  = babl_fish_path_fitness.c
-babl_fish_path_dhtml_SOURCES    = babl_fish_path_dhtml.c
-formats_SOURCES                 = formats.c
-models_SOURCES                  = models.c
+AM_CPPFLAGS = \
+	-I$(top_builddir)	\
+	-I$(top_srcdir)		\
+	-I$(top_builddir)/lib	\
+	-I$(top_srcdir)/lib	\
+	-I$(top_srcdir)/babl
 
-AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/babl
-
-LDADD = $(top_builddir)/babl/libbabl-@BABL_API_VERSION@.la \
+LDADD = $(top_builddir)/babl/libbabl.la \
 	$(MATH_LIB)
 
 noinst_PROGRAMS =		\
 	introspect		\
 	babl_fish_path_fitness	\
 	babl_fish_path_dhtml	\
-	babl_html_dump		\
+	babl-html-dump		\
 	conversions		\
 	formats			\
 	nop			\
 	$(TESTS)
-
-introspect_SOURCES     = introspect.c
-babl_html_dump_SOURCES = babl-html-dump.c
-nop_SOURCES            = nop.c
Index: babl/base/Makefile.am
===================================================================
--- babl/base/Makefile.am.orig
+++ babl/base/Makefile.am
@@ -13,12 +13,17 @@ c_sources =			\
 	model-gray.c		\
 	model-ycbcr.c
 
-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/babl
+INCLUDES = \
+	-I$(top_builddir)	\
+	-I$(top_srcdir)		\
+	-I$(top_builddir)/lib	\
+	-I$(top_srcdir)/lib	\
+	-I$(top_srcdir)/babl
 
 noinst_LTLIBRARIES= libbase.la
 libbase_la_SOURCES= $(h_sources) $(c_sources) 
 
-EXTRA_DIST := 		\
+EXTRA_DIST = 		\
 	rgb-constants.h	\
 	util.h
 
Index: docs/changelog.rss
===================================================================
--- /dev/null
+++ docs/changelog.rss
@@ -0,0 +1,4161 @@
+<?xml version='1.0'?>
+<?xml-stylesheet type='text/xsl' href='rss.xsl'?>
+<rss version='2.0'>
+<channel>
+<title>bazfoo</title>
+<link></link>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* docs/index-static.html.in: reindented code, documented BABL_ERROR.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* docs/index-static.html.in: moved the babl directory overview here
+	from the GEGL site.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* docs/index-static.html.in: fixed indentation and misplaced ' spotted
+	by Jan Heller.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* docs/index-static.html.in: moved the BABL_TOLERANCE documentation
+	paragraph in under Environment heading.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* docs/index-static.html.in: removed markup mistake that introduced
+	horizontal scrolling in gecko.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-fish-path.c: (legal_error): s/BABL_TOLERANCE/
+	* docs/index-static.html.in: s/BABL_ACCURACY/BABL_TOLERANCE/
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-fish-path.c: (legal_error): s/BABL_ERROR/BABL_ACCURACY/
+	* docs/index-static.html.in: s/BABL_ERROR/BABL_ACCURACY/
+
+	* AUTHORS: added a missing space.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* NEWS: added a html comment shortening the news shown.
+	* docs/index-static.html.in: assed link to changelog in svn after
+	news. Updated urls with s/viewcvs/viewvc/.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* AUTHORS: updated.
+	* NEWS: updated.
+	* docs/index-static.html.in: improved introduction and feature list.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* extensions/sse-fixups.c (conv_rgbaF_linear_rgb8_linear),
+	(conv_rgbaF_linear_rgba8_linear): Added fallback non-SSE routine 
+	if the input buffer is not aligned to 16 bytes.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080612</title>
+<pubDate>Thu Jun 12 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 12 00:00:00 +0000 2008</author>
+<description>
+	* Makefile.am: added TODO
+	* docs/index-static.html.in: moved TODO list from here
+	* TODO: to here, also edited it a bit.
+	* docs/Makefile.am: include TODO in result.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080605</title>
+<pubDate>Thu Jun 05 00:00:00 +0000 2008</pubDate>
+<author>Thu Jun 05 00:00:00 +0000 2008</author>
+<description>
+	* AUTHORS: Updated contact info.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080603</title>
+<pubDate>Tue Jun 03 00:00:00 +0000 2008</pubDate>
+<author>Tue Jun 03 00:00:00 +0000 2008</author>
+<description>
+	* INSTALL.in: Updated download link.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080603</title>
+<pubDate>Tue Jun 03 00:00:00 +0000 2008</pubDate>
+<author>Tue Jun 03 00:00:00 +0000 2008</author>
+<description>
+	Added babl_get_version () to the public API.
+
+	* babl/Makefile.am: Added babl-version.h to library_include_HEADERS.
+	* babl/babl-version.h.in: Added macros to expand to babl version
+	information.
+	* babl/babl.c (babl_get_version): Implemented.
+	* babl/babl.h: Include babl-version.h, declare babl_get_version ().
+	* configure.ac: Added babl-version.h to AC_CONFIG_FILES.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080603</title>
+<pubDate>Tue Jun 03 00:00:00 +0000 2008</pubDate>
+<author>Tue Jun 03 00:00:00 +0000 2008</author>
+<description>
+	babl_get_version () moved into separate source file.
+
+	* babl/Makefile.am: Added babl-version.c.
+	* babl/babl-version.c (babl_get_version): Implemented.
+	* babl/babl-version.h.in: Added babl_get_version () declaration.
+	* babl/babl.c (babl_destroy):  Removed babl_get_version ().
+	* babl/babl.h: Removed babl_get_version () declaration.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080603</title>
+<pubDate>Tue Jun 03 00:00:00 +0000 2008</pubDate>
+<author>Tue Jun 03 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-version.h.in: Added.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080523</title>
+<pubDate>Fri May 23 00:00:00 +0000 2008</pubDate>
+<author>Fri May 23 00:00:00 +0000 2008</author>
+<description>
+	Added support for CPU acceleration, RGBA float -> RGB u8 and 
+	RGBA float -> RGBA u8 SSE accelerated conversions.
+
+	* babl/Makefile.am: Added babl-cpuaccel.[ch].
+	* babl/babl-cpuaccel.h:
+	* babl/babl-cpuaccel.c (babl_cpu_accel_get_support),
+	(babl_cpu_accel_set_use), (arch_get_vendor), (arch_accel_intel),
+	(arch_accel_amd), (arch_accel_centaur), (arch_accel_cyrix),
+	(sigill_handler), (arch_accel_sse_os_support), (arch_accel),
+	(cpu_accel): Runtime CPU detection code. Ported from GIMP.
+	* babl/babl-internal.h: Include babl-cpuaccel.h.
+	* babl/babl-memory.c (babl_malloc): Make babl_malloc align memory to
+	BABL_ALIGN==16 boundaries.
+	* babl/babl.c (babl_init): Enabled CPU acceleration.
+	* configure.ac: Added compile time MMX/SSE/AltiVec detection. Ported
+	from GIMP.
+	* extensions/Makefile.am: Added SSE_EXTRA_CFLAGS for sse-fixups.c
+	compilation.
+	* extensions/sse-fixups.c (conv_rgbaF_linear_rgb8_linear),
+	(conv_rgbaF_linear_rgba8_linear), (init): Added RGBA float -> RGB u8
+	and RGBA float -> RGBA u8 SSE accelerated conversions.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080523</title>
+<pubDate>Fri May 23 00:00:00 +0000 2008</pubDate>
+<author>Fri May 23 00:00:00 +0000 2008</author>
+<description>
+	* extensions/sse-fixups.c (init): Fixed conditionally compiled code.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080522</title>
+<pubDate>Thu May 22 00:00:00 +0000 2008</pubDate>
+<author>Thu May 22 00:00:00 +0000 2008</author>
+<description>
+	* extensions/util.h: changed fallback macro to have the
+	same return type as rint().
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080521</title>
+<pubDate>Wed May 21 00:00:00 +0000 2008</pubDate>
+<author>Wed May 21 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-internal.h (rint): changed fallback macro to have the
+	same return type as rint().
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080521</title>
+<pubDate>Wed May 21 00:00:00 +0000 2008</pubDate>
+<author>Wed May 21 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-internal.h:
+	* babl/base/type-u16.c:
+	* babl/base/type-u32.c:
+	* babl/base/type-u8.c:
+	* extensions/CIE-Lab.c:
+	* extensions/gegl-fixups.c:
+	* extensions/gggl-lies.c:
+	* extensions/gggl.c:
+	* extensions/gimp-8bit.c:
+	* extensions/util.h: fallback to floor function when rint function
+	is not available.
+
+	* configure.ac: added check for rint function.
+
+</description>
+</item>
+<item>
+<title>Jan Heller, 080520</title>
+<pubDate>Tue May 20 00:00:00 +0000 2008</pubDate>
+<author>Tue May 20 00:00:00 +0000 2008</author>
+<description>
+	* extensions/gimp-8bit.c (conv_rgbaF_linear_rgb8_linear),
+	(conv_rgbaF_linear_rgba8_linear), (init): added naive versions
+	of respective conversions.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080514</title>
+<pubDate>Wed May 14 00:00:00 +0000 2008</pubDate>
+<author>Wed May 14 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-format.c (format_new): initialize format.visited.
+
+	* babl/babl-format.h
+	* babl/babl-fish-path.c: formatting.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080416</title>
+<pubDate>Wed Apr 16 00:00:00 +0000 2008</pubDate>
+<author>Wed Apr 16 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl.h: split up into ...
+	Separate header files.
+
+	* babl/babl-component.h:
+	* babl/babl-conversion.h:
+	* babl/babl-extension.h:
+	* babl/babl-fish.h:
+	* babl/babl-format.h:
+	* babl/babl-image.h:
+	* babl/babl-model.h:
+	* babl/babl-sampling.h:
+	* babl/babl-type.h:
+
+	* babl/Makefile.am: install new headers.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080416</title>
+<pubDate>Wed Apr 16 00:00:00 +0000 2008</pubDate>
+<author>Wed Apr 16 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl.h: formatting.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080415</title>
+<pubDate>Tue Apr 15 00:00:00 +0000 2008</pubDate>
+<author>Tue Apr 15 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-fish-path.c (init_path_instrumentation): this function
+	has no return value, declare it as void.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080415</title>
+<pubDate>Tue Apr 15 00:00:00 +0000 2008</pubDate>
+<author>Tue Apr 15 00:00:00 +0000 2008</author>
+<description>
+	* babl/Makefile.am: removed babl-classes.h
+	* babl/babl-classes.h: removed and mostly folded into ...
+	* babl/babl.h:  .. this file, which has been reorganized to contain
+	each separate class by itself.
+	* babl/babl-internal.h: simplified code renamed BABL_CLASS_TEMPLATE to
+	be just BABL_CLASS or BABL_CLASS_MINIMAL.
+
+	* babl/babl-fish.c: (babl_fish): do not accept varargs, use use
+	BABL_CLASS_MINIMAL.
+
+	* babl/babl-component.c:
+	* babl/babl-conversion.c:
+	* babl/babl-extension.c:
+	* babl/babl-format.c:
+	* babl/babl-model.c:
+	* babl/babl-type.c: use BABL_CLASS instead of BABL_CLASS_TEMPLATE
+
+	* babl/babl-hash-table.h:
+	* babl/babl-list.h:
+	* babl/babl-db.h: changed include warning since babl-classes doesn't
+	exist anymore.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080415</title>
+<pubDate>Tue Apr 15 00:00:00 +0000 2008</pubDate>
+<author>Tue Apr 15 00:00:00 +0000 2008</author>
+<description>
+	* extensions/util.h
+	* babl/*.[ch]: removed trailing whitespace.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080413</title>
+<pubDate>Sun Apr 13 00:00:00 +0000 2008</pubDate>
+<author>Sun Apr 13 00:00:00 +0000 2008</author>
+<description>
+	Applied patch from Jan Heller.
+
+	* babl/babl-fish-path.c: (get_conversion_path), (babl_fish_path),
+	(test_create), (init_path_instrumentation), 
+	(destroy_path_instrumentation), (get_path_instrumentation): Improved
+	fish path instrumentation during the search for a new one to optimize
+	for speed. Added logic to disallow creation of a fish path that is
+	actually slower than appropriate reference fish.
+
+	* babl/babl-util.[ch]: (babl_process_cost): New function for unified
+	timing formula for babl processings.
+
+	* babl/babl-conversion.c: (babl_conversion_error): Make use of the
+	new babl_process_cost function.
+
+	* extensions/gimp-8bit.c: Added a function declaration to prevent
+	compiler warning.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080408</title>
+<pubDate>Tue Apr 08 00:00:00 +0000 2008</pubDate>
+<author>Tue Apr 08 00:00:00 +0000 2008</author>
+<description>
+	Applied patch from Jan Heller that improves logic of go_fishing code
+	in babl-fish.c. The current code searches list of all fishes while
+	looking for suitable preexistent BABL_FISH_PATH instance. The new code
+	only searches relevant part of database's hash table. Further, the
+	current code searches for fish path every time such a babl fish is
+	requested, even though the same fish path has been requested before
+	and not found. The new code creates dummy BABL_FISH instance with
+	appropriate source/destination formats and inserts it into the fish
+	database to indicate that fish path has been searched for and not
+	found. 
+
+	* babl/babl-fish.c: (find_fish_path), (find_memcpy_fish),
+	(babl_fish_get_id), (babl_fish):
+	* babl/babl-fish-path.c: (babl_fish_path):
+	* babl/babl-fish-reference.c: (babl_fish_reference):
+	* babl/babl-fish-simple.c: (babl_fish_simple):
+	* babl/babl-internal.h:
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080406</title>
+<pubDate>Sun Apr 06 00:00:00 +0000 2008</pubDate>
+<author>Sun Apr 06 00:00:00 +0000 2008</author>
+<description>
+	* acinclude.m4: new file defining BABL_DETECT_CFLAGS() macro.
+
+	* configure.ac: set CFLAGS to get some extra compiler warnings.
+
+	* babl/babl-fish-stats.c (conversions): fixed old-style function
+	definition.
+
+	* Makefile.am: formatting.
+
+2008-04-02  Mukund Sivaraman <muks@xxxxxxxxxx>
+
+	Sparse fixes.
+
+	* babl/babl-internal.h: fflush() takes pointer.
+
+	* babl/babl-conversion.c: Don't mix code and declarations.
+
+	* babl/babl-fish-reference.c: Fixed array assignment.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080403</title>
+<pubDate>Thu Apr 03 00:00:00 +0000 2008</pubDate>
+<author>Thu Apr 03 00:00:00 +0000 2008</author>
+<description>
+	Applied patch from Jan Heller that ports BablFishPath class to the new
+	list API and the list API is a bit expanded. Further, the algorithm
+	for generating the shortest conversion path is reformulated to be more
+	readable and comprehensible and thoroughly commented. The algorithm
+	for processing the conversion paths is reformulated and commented. 
+	Also contains minor readability cleanups and speedups.
+
+	* babl/babl-classes.h:
+	* babl/babl-conversion.c:
+	* babl/babl-db.c:
+	* babl/babl-fish-path.c: 
+	* babl/babl-fish-stats.c:
+	* babl/babl-fish.c:
+	* babl/babl-list.c:
+	* babl/babl-list.h:
+	* tests/babl_fish_path_fitness.c:
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080401</title>
+<pubDate>Tue Apr 01 00:00:00 +0000 2008</pubDate>
+<author>Tue Apr 01 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-classes.h:
+	* babl/babl-conversion.c:
+	* babl/babl-db.c:
+	* babl/babl-fish-path.c:
+	* babl/babl-fish.c:
+	* babl/babl-format.c: 
+	* babl/babl-internal.h:
+	* babl/babl-introspect.c:
+	* babl/babl-list.c:
+	* babl/babl-list.h:
+	* babl/babl-model.c:
+	* babl/babl-sampling.c:
+	* babl/babl-sanity.c:
+	* babl/babl-type.c:
+	* babl/babl-util.[ch]: applied patch from Jan Heller that improves
+	readability by using the newly introduced BablList structure.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080331</title>
+<pubDate>Mon Mar 31 00:00:00 +0000 2008</pubDate>
+<author>Mon Mar 31 00:00:00 +0000 2008</author>
+<description>
+	* AUTHORS: added Jan Heller and obfuscated the email addresses.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080329</title>
+<pubDate>Sat Mar 29 00:00:00 +0000 2008</pubDate>
+<author>Sat Mar 29 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-component.c
+	* babl/babl-conversion.c
+	* babl/babl-db.c
+	* babl/babl-extension.c
+	* babl/babl-fish-path.c
+	* babl/babl-fish-reference.c
+	* babl/babl-fish-simple.c
+	* babl/babl-format.c
+	* babl/babl-model.c
+	* babl/babl-type.c: applied patch from Jan Heller that changes the
+	code to test for a pre-existent instance of a babl class in the
+	database before creating a new one.
+
+</description>
+</item>
+<item>
+<title>Tor Lillqvist, 080324</title>
+<pubDate>Mon Mar 24 00:00:00 +0000 2008</pubDate>
+<author>Mon Mar 24 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-type.c: Make the "test" array static.
+
+</description>
+</item>
+<item>
+<title>Martin Nordholts, 080323</title>
+<pubDate>Sun Mar 23 00:00:00 +0000 2008</pubDate>
+<author>Sun Mar 23 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-memory.[ch]: typedef:ed BABL free and malloc function
+	pointers.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080322</title>
+<pubDate>Sat Mar 22 00:00:00 +0000 2008</pubDate>
+<author>Sat Mar 22 00:00:00 +0000 2008</author>
+<description>
+	Applied patch from Jan Heller that introduces list and hash table
+	functionality and changes the babl database to use coalesced
+	hashing (bug #523507). This considerably improves BABL
+	performance.
+
+	* babl/Makefile.am
+	* babl/babl-list.[ch]
+	* babl/babl-hash-table.[ch]: new files providing list and hash
+	table functionality.
+
+	* babl/babl-internal.h: include the new header files.
+
+	* babl/babl-db.[ch]: use the new code.
+
+	* babl/babl-fish.c: changed accordingly.
+
+2008-03-16  Mukund Sivaraman <muks@xxxxxxxxxx>
+
+	* babl/babl-extension.c: getenv() can return NULL.
+
+	* babl/babl-memory.c: Check for NULL in babl_strcat().	
+
+2008-03-16  Mukund Sivaraman <muks@xxxxxxxxxx>
+
+	* babl/babl-image.c: Added missing va_end()s.
+
+2008-03-16  Mukund Sivaraman <muks@xxxxxxxxxx>
+
+	* babl/babl-extension.c: Added missing dlclose()s.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080302</title>
+<pubDate>Sun Mar 02 00:00:00 +0000 2008</pubDate>
+<author>Sun Mar 02 00:00:00 +0000 2008</author>
+<description>
+	Applied patch from dmacks@xxxxxxxxxxxx closing bug #519796
+	* configure.ac:
+	* babl/Makefile.am:
+	* tests/Makefile.am: Only -ldl if required, passed automatically via
+	$LIBS
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080302</title>
+<pubDate>Sun Mar 02 00:00:00 +0000 2008</pubDate>
+<author>Sun Mar 02 00:00:00 +0000 2008</author>
+<description>
+	* babl.pc.in: do not add @DL_LIBS@ to link line of babl.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080302</title>
+<pubDate>Sun Mar 02 00:00:00 +0000 2008</pubDate>
+<author>Sun Mar 02 00:00:00 +0000 2008</author>
+<description>
+	* tests/Makefile.am: applied patch from dmacks@xxxxxxxxxxxx for
+	bug #519794.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080227</title>
+<pubDate>Wed Feb 27 00:00:00 +0000 2008</pubDate>
+<author>Wed Feb 27 00:00:00 +0000 2008</author>
+<description>
+	* configure.ac: incremented version.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080227</title>
+<pubDate>Wed Feb 27 00:00:00 +0000 2008</pubDate>
+<author>Wed Feb 27 00:00:00 +0000 2008</author>
+<description>
+	* configure.ac: post release version increment to 0.0.21
+
+=========================== 0.0.20 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080227</title>
+<pubDate>Wed Feb 27 00:00:00 +0000 2008</pubDate>
+<author>Wed Feb 27 00:00:00 +0000 2008</author>
+<description>
+	* NEWS: updated for 0.0.20 release.
+	* configure.ac: incremented version.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080227</title>
+<pubDate>Wed Feb 27 00:00:00 +0000 2008</pubDate>
+<author>Wed Feb 27 00:00:00 +0000 2008</author>
+<description>
+	* docs/Makefile.am: use mktemp instead of tempfile.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080227</title>
+<pubDate>Wed Feb 27 00:00:00 +0000 2008</pubDate>
+<author>Wed Feb 27 00:00:00 +0000 2008</author>
+<description>
+	* extensions/Makefile.am: -I$(top_builddir) to be able to include
+	config.h
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080219</title>
+<pubDate>Tue Feb 19 00:00:00 +0000 2008</pubDate>
+<author>Tue Feb 19 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-fish-path.c (test_create): add some extra pixels
+	outside the valid range to fix issues with wrong clamping of
+	conversions.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080219</title>
+<pubDate>Tue Feb 19 00:00:00 +0000 2008</pubDate>
+<author>Tue Feb 19 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-fish-path.c: renamed test_pixels to num_test_pixels.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080219</title>
+<pubDate>Tue Feb 19 00:00:00 +0000 2008</pubDate>
+<author>Tue Feb 19 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-fish-path.c (test_create): reverted previous change as
+	it introduces the risk of not testing any values between 0.0 and 1.0.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080219</title>
+<pubDate>Tue Feb 19 00:00:00 +0000 2008</pubDate>
+<author>Tue Feb 19 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-fish-path.c: (test_create): make the testbuffer contain
+	values in the range -0.25 .. 1.75 instead of 0.0 .. 1.0, might fix
+	issues with wrong clamping of float->8bit conversions.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080215</title>
+<pubDate>Fri Feb 15 00:00:00 +0000 2008</pubDate>
+<author>Fri Feb 15 00:00:00 +0000 2008</author>
+<description>
+	* configure.ac: cleaned up win32 detection vs plug-in compilation
+	specifics, added DYNAMICLIB paramter for gcc which defaults to -shared
+	for win32 and -dynamiclib for darwin.
+	* extensions/Makefile.am: use $(DYNAMICLIB) instead of -shared.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 080211</title>
+<pubDate>Mon Feb 11 00:00:00 +0000 2008</pubDate>
+<author>Mon Feb 11 00:00:00 +0000 2008</author>
+<description>
+	* configure.ac: Set shrext to ".dylib" for Darwin (ie. Mac OS).
+
+	* babl/babl-extension.c: Use BABL_DIR_SEPARATOR instead of "/".
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080122</title>
+<pubDate>Tue Jan 22 00:00:00 +0000 2008</pubDate>
+<author>Tue Jan 22 00:00:00 +0000 2008</author>
+<description>
+	* extensions/gimp-8bit.c (u8_gamma_2_2_to_float_linear): use the
+	correct lookup table.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080120</title>
+<pubDate>Sun Jan 20 00:00:00 +0000 2008</pubDate>
+<author>Sun Jan 20 00:00:00 +0000 2008</author>
+<description>
+	Always use BablFishPath's for accepted conversions. The path
+	construction code is the location of the regression test, an
+	earlier (now unneeded) optimization allowed using the first
+	and best conversion available. The (not in bugzilla afair) bug
+	manifest by this depended on the order of .so's on the file system
+	to manifest itself.
+
+	* babl/babl-fish.c: (go_fishing): only accepts paths when we go
+	fishing for existing conversions.
+	(babl_fish): elaborated a comment about why we avoid shortcut
+	conversions and only paths.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 080117</title>
+<pubDate>Thu Jan 17 00:00:00 +0000 2008</pubDate>
+<author>Thu Jan 17 00:00:00 +0000 2008</author>
+<description>
+	Applied patch from Deji Akingunola <dakingun@xxxxxxxxx> to make babl
+	correctly pick up the path to the extensions on 64bit systems. Fixes
+	bug #510038
+
+	* babl/Makefile.am: added -DLIBDIR
+	* babl/babl-extension.c: use libdir and not PREFIX "/lib" when
+	defining the default BABL_PATH.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080110</title>
+<pubDate>Thu Jan 10 00:00:00 +0000 2008</pubDate>
+<author>Thu Jan 10 00:00:00 +0000 2008</author>
+<description>
+	* extensions/Makefile.am: extended CFLAGS so that config.h can be
+	included.
+
+	* extensions/*.c: fixed up includes.
+
+	* extensions/gegl-fixups.c: use linear <-> gamma conversions from
+	base/util.c.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080110</title>
+<pubDate>Thu Jan 10 00:00:00 +0000 2008</pubDate>
+<author>Thu Jan 10 00:00:00 +0000 2008</author>
+<description>
+	* extensions/gimp-8bit.c: added extension to speed up code paths
+	that are executed by the GIMP/GEGL hybrid. So far only 8bit to
+	float conversions are handled.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 080107</title>
+<pubDate>Mon Jan 07 00:00:00 +0000 2008</pubDate>
+<author>Mon Jan 07 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-extension.c (babl_extension_load_dir): Reverted previous
+	change. BABL hasn't been updated to use gmodule (yet).
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 080107</title>
+<pubDate>Mon Jan 07 00:00:00 +0000 2008</pubDate>
+<author>Mon Jan 07 00:00:00 +0000 2008</author>
+<description>
+	* babl/babl-extension.c (babl_extension_load_dir): Use G_MODULE_SUFFIX
+	instead of a hard-coded suffix.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 080106</title>
+<pubDate>Sun Jan 06 00:00:00 +0000 2008</pubDate>
+<author>Sun Jan 06 00:00:00 +0000 2008</author>
+<description>
+	* extensions/CIE-Lab.c: made internal functions static.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 071230</title>
+<pubDate>Sun Dec 30 00:00:00 +0000 2007</pubDate>
+<author>Sun Dec 30 00:00:00 +0000 2007</author>
+<description>
+	* extensions/gggl-lies.c (table_init): completely fill the lookup
+	tables for conversion from float to integer.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 071230</title>
+<pubDate>Sun Dec 30 00:00:00 +0000 2007</pubDate>
+<author>Sun Dec 30 00:00:00 +0000 2007</author>
+<description>
+	* extensions/Makefile.am: Use SHREXT instead of hard-coded ".so".
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071230</title>
+<pubDate>Sun Dec 30 00:00:00 +0000 2007</pubDate>
+<author>Sun Dec 30 00:00:00 +0000 2007</author>
+<description>
+	* NEWS: updated for 0.0.18 release
+	* configure.ac: increased version to 0.0.18 for release.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071230</title>
+<pubDate>Sun Dec 30 00:00:00 +0000 2007</pubDate>
+<author>Sun Dec 30 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: post release version increment to 0.0.19
+
+=========================== 0.0.18 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071229</title>
+<pubDate>Sat Dec 29 00:00:00 +0000 2007</pubDate>
+<author>Sat Dec 29 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl.h:
+	* babl/babl-classes.h:
+	* babl/babl-fish-path.c:
+	* babl/babl-fish-reference.c:
+	* babl/babl-fish.c: 
+	* babl/babl-internal.[ch]: Const'ified code with Babl*'s refering to
+	formats.
+
+</description>
+</item>
+<item>
+<title>Michael Natterer, 071229</title>
+<pubDate>Sat Dec 29 00:00:00 +0000 2007</pubDate>
+<author>Sat Dec 29 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-fish-path.c (chain_contains_fmt): one const was
+	forgotten.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071125</title>
+<pubDate>Sun Nov 25 00:00:00 +0000 2007</pubDate>
+<author>Sun Nov 25 00:00:00 +0000 2007</author>
+<description>
+	* NEWS: updated.
+	* Makefile.am: added COPYING and COPYING.LESSER
+	* docs/Makefile.am: added COPYING and COPYING.LESSER
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071125</title>
+<pubDate>Sun Nov 25 00:00:00 +0000 2007</pubDate>
+<author>Sun Nov 25 00:00:00 +0000 2007</author>
+<description>
+	* docs/index-static.html.in: changed documentation to use babl_format
+	instead of passing naked strings into babl_fish, (both will work,
+	but using babl_format is a bit saner).
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071125</title>
+<pubDate>Sun Nov 25 00:00:00 +0000 2007</pubDate>
+<author>Sun Nov 25 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-image.c: (babl_image_from_linear): do additional casts to
+	silence warnings from compiler.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071113</title>
+<pubDate>Tue Nov 13 00:00:00 +0000 2007</pubDate>
+<author>Tue Nov 13 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-fish.c: (go_fishing): optimized fishing when looking
+	up existing fish (should perhaps be moved to lists going from given
+	formats, similar to how conversions are added there instead.) Made
+	go_fishing accept BABL_FISH_REFERENCE when source and desintation
+	formats are equal.
+	  (babl_fish_process): removed most of the need for BablImage for
+	  linear buffers, do a memcpy when source and destination formats
+	  are equal (and we're a BABL_FISH_REFERENCE).
+	* babl/babl-db.[ch]: moved the BablDb struct out into public to
+	allow faster iteration through it.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071113</title>
+<pubDate>Tue Nov 13 00:00:00 +0000 2007</pubDate>
+<author>Tue Nov 13 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-fish.c: (babl_fish_process): swapped source and
+	destination around in memcpy.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071111</title>
+<pubDate>Sun Nov 11 00:00:00 +0000 2007</pubDate>
+<author>Sun Nov 11 00:00:00 +0000 2007</author>
+<description>
+	Keep a cache of the linear version of BablImage's needed for
+	BablFormats around. This reduces the constant overhead for
+	conversions.
+
+	* babl/babl-classes.h: added .image_template field to BablFormat.
+	* babl/babl-format.c: (format_new): make .image_template NULL by
+	defualt.
+	* babl/babl-image.c: (babl_image_from_linear): use .image_template if
+	available instead of creating our own BablImage from scratch.
+	* babl/babl-memory.c: (babl_free): special case freeing of BablImage
+	and BablFormat to do the extra juggling needed for the image_template
+	cache.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071111</title>
+<pubDate>Sun Nov 11 00:00:00 +0000 2007</pubDate>
+<author>Sun Nov 11 00:00:00 +0000 2007</author>
+<description>
+	* Modified copyright statement to refer to an URL instead of a civic
+	address for the Free Software Foundation and the text of the license.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071110</title>
+<pubDate>Sat Nov 10 00:00:00 +0000 2007</pubDate>
+<author>Sat Nov 10 00:00:00 +0000 2007</author>
+<description>
+	Do not accept BABL_FISH_REFERENCE as a valid result when fishing for
+	existing fishes.
+
+	* babl/babl-fish.c: (fishing_result_examine), (babl_fish):
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071110</title>
+<pubDate>Sat Nov 10 00:00:00 +0000 2007</pubDate>
+<author>Sat Nov 10 00:00:00 +0000 2007</author>
+<description>
+	* docs/index-static.html.in: documented BABL_STATS environment
+	variable.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071110</title>
+<pubDate>Sat Nov 10 00:00:00 +0000 2007</pubDate>
+<author>Sat Nov 10 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-fish-stats.c: (table_destination_each): improve
+	visualization of results.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071110</title>
+<pubDate>Sat Nov 10 00:00:00 +0000 2007</pubDate>
+<author>Sat Nov 10 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-db.c: (babl_db_each_inline), (babl_db_exist): Optimized
+	lookup by adding an inline version of babl_db_each specially for
+	babl_db_exist.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 071109</title>
+<pubDate>Fri Nov 09 00:00:00 +0000 2007</pubDate>
+<author>Fri Nov 09 00:00:00 +0000 2007</author>
+<description>
+	Upgraded babl from LGPLv2 to LGPLv3. Copyright statements in all files
+	have been updated to reflect this change, the permission to use leter
+	versions of the GNU licenses have been retained in all instances.)
+
+	* COPYING: changed to GPLv3
+	* COPYING.LESSER: added (LGPLv3's overlay over GPLv3)
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 071030</title>
+<pubDate>Tue Oct 30 00:00:00 +0000 2007</pubDate>
+<author>Tue Oct 30 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: DIR_SEP='\' is evil, use DIR_SEP='\\' instead.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070914</title>
+<pubDate>Fri Sep 14 00:00:00 +0000 2007</pubDate>
+<author>Fri Sep 14 00:00:00 +0000 2007</author>
+<description>
+	Changes to let BABL find its extensions at run time when the
+	BABL_PATH environment variable is not set.
+
+	* configure.ac: Don't specify BABL_PATH in here. Renamed
+	BABL_LIST_SEPERATOR to BABL_DIR_SEPARATOR.
+
+	* babl/babl-extension.c: Include /lib as part of default BABL_PATH.
+	Renamed #define's used to specify the path and directory separators.
+	Use the values from config.h that were set when ./configure was run.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070914</title>
+<pubDate>Fri Sep 14 00:00:00 +0000 2007</pubDate>
+<author>Fri Sep 14 00:00:00 +0000 2007</author>
+<description>	
+	* configure.ac: Define name of babl library file.
+
+	* babl/babl-extension.c: Use name of babl library defined when
+	./configure was run.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070911</title>
+<pubDate>Tue Sep 11 00:00:00 +0000 2007</pubDate>
+<author>Tue Sep 11 00:00:00 +0000 2007</author>
+<description>
+	* autogen.sh: Added check for existence of automake-1.10.
+	Fixes bug #474507.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070910</title>
+<pubDate>Mon Sep 10 00:00:00 +0000 2007</pubDate>
+<author>Mon Sep 10 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-internal.c: (babl_process): return immediately if 0 pixels
+	were requested to be processed.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070901</title>
+<pubDate>Sat Sep 01 00:00:00 +0000 2007</pubDate>
+<author>Sat Sep 01 00:00:00 +0000 2007</author>
+<description>
+	* MAINTAINERS: added.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070830</title>
+<pubDate>Thu Aug 30 00:00:00 +0000 2007</pubDate>
+<author>Thu Aug 30 00:00:00 +0000 2007</author>
+<description>
+	Applied patch from Kevin Cozens fixing bug #467652
+
+	* babl/Makefile.am: Use DL flag set by ./configure instead of
+	hard-coding it in Makefile
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070802</title>
+<pubDate>Thu Aug 02 00:00:00 +0000 2007</pubDate>
+<author>Thu Aug 02 00:00:00 +0000 2007</author>
+<description>
+	* extensions/gggl.c
+	* extensions/gggl-lies.c: Only include math.h once.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070801</title>
+<pubDate>Wed Aug 01 00:00:00 +0000 2007</pubDate>
+<author>Wed Aug 01 00:00:00 +0000 2007</author>
+<description>
+	Fixed compiler abort on certain LDFLAGS values (-Wl,-z,defs) by
+	applying patch from christopher taylor, closing bug #462536.
+
+	* babl/Makefile.am:
+	* extensions/Makefile.am:
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070321</title>
+<pubDate>Wed Mar 21 00:00:00 +0000 2007</pubDate>
+<author>Wed Mar 21 00:00:00 +0000 2007</author>
+<description>
+	Reindented all of the code using uncrustify.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070321</title>
+<pubDate>Wed Mar 21 00:00:00 +0000 2007</pubDate>
+<author>Wed Mar 21 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: Make force the value of shrext to either .dll or .so
+	(it seems like it wasn't defined for unixy systems after all).
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 070313</title>
+<pubDate>Tue Mar 13 00:00:00 +0000 2007</pubDate>
+<author>Tue Mar 13 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: AC_SUBST and AC_DEFINE $shrext into variables for
+	Makefiles and source.
+	* extension/Makefile.am: use $(SHREXT) instead of .$SOext.
+	* babl/babl-extension.c: use SHREXT instead of a hardcoded ".so"
+	and get rid of a dirent->d_ino > 0 check which has been there for
+	reasons unknown.
+	
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 070313</title>
+<pubDate>Tue Mar 13 00:00:00 +0000 2007</pubDate>
+<author>Tue Mar 13 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: use PATHSEP (platform-dependent, defined to ';' on
+	win32) for BABL_LIST_SEPERATOR
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 070312</title>
+<pubDate>Mon Mar 12 00:00:00 +0000 2007</pubDate>
+<author>Mon Mar 12 00:00:00 +0000 2007</author>
+<description>
+	* Makefile.am: 
+	* extensions/Makefile.am: applied patch by John Marshall to make
+	babl extensions build on Windows. They do not work yet, though. Fixes
+	bug #409957.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070312</title>
+<pubDate>Mon Mar 12 00:00:00 +0000 2007</pubDate>
+<author>Mon Mar 12 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-fish.c: (fishing_result_examine), (go_fishing),
+	(babl_fish): go fishing for an existing fish for the
+	source/destination combination before trying to create one.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070222</title>
+<pubDate>Thu Feb 22 00:00:00 +0000 2007</pubDate>
+<author>Thu Feb 22 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-classes.h: make _Babl be a typedef and not a union that
+	gets included and defined for every single object generated.
+	Fixes bug #409781.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070218</title>
+<pubDate>Sun Feb 18 00:00:00 +0000 2007</pubDate>
+<author>Sun Feb 18 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: post release increment to 0.0.15
+
+=========================== 0.0.14 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070217</title>
+<pubDate>Sat Feb 17 00:00:00 +0000 2007</pubDate>
+<author>Sat Feb 17 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: increased version to 0.0.16 for release.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070217</title>
+<pubDate>Sat Feb 17 00:00:00 +0000 2007</pubDate>
+<author>Sat Feb 17 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: post release version increment to 0.0.17
+
+=========================== 0.0.16 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070217</title>
+<pubDate>Sat Feb 17 00:00:00 +0000 2007</pubDate>
+<author>Sat Feb 17 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: increased version to 0.0.14 for release.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070217</title>
+<pubDate>Sat Feb 17 00:00:00 +0000 2007</pubDate>
+<author>Sat Feb 17 00:00:00 +0000 2007</author>
+<description>
+	* docs/index-static.html.in: adds, reordering and trimming of
+	information in webpage.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070217</title>
+<pubDate>Sat Feb 17 00:00:00 +0000 2007</pubDate>
+<author>Sat Feb 17 00:00:00 +0000 2007</author>
+<description>
+	* babl/base/model-gray.c: removed obsoleted FIXME.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070217</title>
+<pubDate>Sat Feb 17 00:00:00 +0000 2007</pubDate>
+<author>Sat Feb 17 00:00:00 +0000 2007</author>
+<description>
+	* docs/index-static.html.in: reincorporate NEWS, added link to
+	extensions dir in subversion.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070216</title>
+<pubDate>Fri Feb 16 00:00:00 +0000 2007</pubDate>
+<author>Fri Feb 16 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-fish-path.c: (legal_error), (max_path_length): cache the
+	values looked up from BABL_ERROR and BABL_PATH_LENGTH environment
+	variables, changed default maximum conversion path length from 3 to 4.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070216</title>
+<pubDate>Fri Feb 16 00:00:00 +0000 2007</pubDate>
+<author>Fri Feb 16 00:00:00 +0000 2007</author>
+<description>
+	* babl/base/formats.c: (babl_formats_init): specify Y'CbCrA model
+	instead of Y'CbCr for Y'CbCrA float.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070215</title>
+<pubDate>Thu Feb 15 00:00:00 +0000 2007</pubDate>
+<author>Thu Feb 15 00:00:00 +0000 2007</author>
+<description>
+	* extensions/gegl-fixups.c: (conv_rgbAF_rgb8): simplified logic
+	of code to speed it up.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070215</title>
+<pubDate>Thu Feb 15 00:00:00 +0000 2007</pubDate>
+<author>Thu Feb 15 00:00:00 +0000 2007</author>
+<description>
+	* babl/base/model-rgb.c: (premultiplied_to_non_premultiplied),
+	(rgba_gamma_2_2_premultiplied2rgba): avoid divisions by zero,
+	thus making the reference conversions correct.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070211</title>
+<pubDate>Sun Feb 11 00:00:00 +0000 2007</pubDate>
+<author>Sun Feb 11 00:00:00 +0000 2007</author>
+<description>
+	* NEWS: updated news for many versions.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070209</title>
+<pubDate>Fri Feb 09 00:00:00 +0000 2007</pubDate>
+<author>Fri Feb 09 00:00:00 +0000 2007</author>
+<description>
+	* autogen.sh: Changed CVS reference to SVN.
+
+	* configure.ac: Set BABL_UNSTABLE to 1 for odd micro numbers
+	when major and minor are both 0.
+
+	* babl.pc.in
+	* babl/Makefile.am 
+	* tests/Makefile.am: Use version number in library name.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070209</title>
+<pubDate>Fri Feb 09 00:00:00 +0000 2007</pubDate>
+<author>Fri Feb 09 00:00:00 +0000 2007</author>
+<description>
+	* babl/Makefile.am
+	* babl/base/Makefile.am
+	* docs/graphics/Makefile.am: Removed references to .cvsignore.
+
+	* docs/Makefile.am: Removed reference to .cvsignore. Removed
+	^M from end of lines.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070131</title>
+<pubDate>Wed Jan 31 00:00:00 +0000 2007</pubDate>
+<author>Wed Jan 31 00:00:00 +0000 2007</author>
+<description>	
+	Removed .cvsignore files.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070128</title>
+<pubDate>Sun Jan 28 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 28 00:00:00 +0000 2007</author>
+<description>
+	* extensions/gegl-fixups.c: (conv_bgrA8_rgba8), (init): added
+	optimized permutator for going from cairo's buffer format to RGBA byte
+	order, as well as unpremultiplying.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070128</title>
+<pubDate>Sun Jan 28 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 28 00:00:00 +0000 2007</author>
+<description>
+	* extensions/gegl-fixups.c: fixed gamma conversion.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070128</title>
+<pubDate>Sun Jan 28 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 28 00:00:00 +0000 2007</author>
+<description>
+	* docs/index-static.html.in: things are not in CVS but SVN now.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070128</title>
+<pubDate>Sun Jan 28 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 28 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-conversion.c: (babl_conversion_new): shut up compiler
+	warning.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070128</title>
+<pubDate>Sun Jan 28 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 28 00:00:00 +0000 2007</author>
+<description>
+	* extensions/gegl-fixups.c: (init): give names to the custom formats.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070128</title>
+<pubDate>Sun Jan 28 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 28 00:00:00 +0000 2007</author>
+<description>
+	* AUTHORS: added Tim Mooney
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070128</title>
+<pubDate>Sun Jan 28 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 28 00:00:00 +0000 2007</author>
+<description>
+	* AUTHORS: added Michael Natterer as janitor.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070122</title>
+<pubDate>Mon Jan 22 00:00:00 +0000 2007</pubDate>
+<author>Mon Jan 22 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-internal.h: applied patch from Tim Mooney fixing bug
+	#392843, replacing _FUNCTION_ with _func_ which is the C99 equivalent
+	of the gcc extension.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070122</title>
+<pubDate>Mon Jan 22 00:00:00 +0000 2007</pubDate>
+<author>Mon Jan 22 00:00:00 +0000 2007</author>
+<description>
+	Applied patch from Tim Mooney fixing bug #392916
+
+	* extensions/Makefile.am: $(prefix)/lib/babl-0.0 for its extensions
+	dir, which is incorrect for many 64 bit platforms.  It should instead
+	use $(libdir)/babl-0.0.
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 070122</title>
+<pubDate>Mon Jan 22 00:00:00 +0000 2007</pubDate>
+<author>Mon Jan 22 00:00:00 +0000 2007</author>
+<description>
+	* docs/Makefile.am: declare the test programs used during doc
+	creating as variables to keep the commands in targets readable.
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 070116</title>
+<pubDate>Tue Jan 16 00:00:00 +0000 2007</pubDate>
+<author>Tue Jan 16 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: remove the check for dlopen again - didn't work as
+	intended 
+	* babl/babl-extension.c: for #idfef WIN32, #define dl* functions
+	to their Windows equivalents (LoadLibrary, GetProcAddress,
+	FreeLibrary). 
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070108</title>
+<pubDate>Mon Jan 08 00:00:00 +0000 2007</pubDate>
+<author>Mon Jan 08 00:00:00 +0000 2007</author>
+<description>
+	* babl/babl-extension.c: define HAVE_DLOPEN if HAVE_DLFCN is set.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070107</title>
+<pubDate>Sun Jan 07 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 07 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: set version to 0.0.12
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070107</title>
+<pubDate>Sun Jan 07 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 07 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: set version to 0.0.13
+
+=========================== 0.0.12 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070107</title>
+<pubDate>Sun Jan 07 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 07 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: set version to 0.0.11
+
+=========================== 0.0.10 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 070107</title>
+<pubDate>Sun Jan 07 00:00:00 +0000 2007</pubDate>
+<author>Sun Jan 07 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: set version to 0.0.10
+	* docs/index-static.html.in: reworded things due to the subversion
+	switch.
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 070106</title>
+<pubDate>Sat Jan 06 00:00:00 +0000 2007</pubDate>
+<author>Sat Jan 06 00:00:00 +0000 2007</author>
+<description>
+	* docs/Makefile.am: added EXEEXT to the tools used in some
+	commands 
+
+	* docs/tools/changelog2rss: remove unused SET_TITLE and
+	LISTING_TYPE; the former did cause an error on Windows
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 070106</title>
+<pubDate>Sat Jan 06 00:00:00 +0000 2007</pubDate>
+<author>Sat Jan 06 00:00:00 +0000 2007</author>
+<description>
+	* Makefile.am: don't go into the extensions subdirectory on
+	Windows 
+	* extensions/Makefile.am: removed the win32_libs definition, using
+	libgw32c does more harm than good, apparently
+	
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 070106</title>
+<pubDate>Sat Jan 06 00:00:00 +0000 2007</pubDate>
+<author>Sat Jan 06 00:00:00 +0000 2007</author>
+<description>
+	This change makes babl buildable on Windows.
+	
+	* configure.ac: Add a check for function dlopen and disabled
+	static libs by default. Check for gettimeofday by using
+	AC_REPLACE_FUNCS.
+	
+	* babl/babl-internal.h: Add definitions for srandom and radnom to
+	srand and rand for the windows platform.
+	* babl/babl-conversion.c 
+	* babl-model.c: Include babl-internal.h after math.h
+
+	* babl/babl-extension.c: Use #ifdef HAVE_DLOPEN to hide dl* if it
+	is not available.
+
+	* babl/Makefile.am: Removed win32_libs and added @LTLIBOBJS@ to
+	LIBADD to get the replacement for gettimeofday linked in if
+	needed. 
+
+	* babl/gettimeofday.c: New file to provide a replacement for
+	gettimeofday, only used on Windows yet.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070101</title>
+<pubDate>Mon Jan 01 00:00:00 +0000 2007</pubDate>
+<author>Mon Jan 01 00:00:00 +0000 2007</author>
+<description>
+	* docs/index-static.html.in: Fixes for various punctuation, grammar,
+	and typographical errors.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070101</title>
+<pubDate>Mon Jan 01 00:00:00 +0000 2007</pubDate>
+<author>Mon Jan 01 00:00:00 +0000 2007</author>
+<description>
+	* configure.ac: Changes to properly (or at least better) version the
+	babl library.
+
+	* babl.pc.in: It is too soon to include version information in the
+	name of the babl library at link time.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 070101</title>
+<pubDate>Mon Jan 01 00:00:00 +0000 2007</pubDate>
+<author>Mon Jan 01 00:00:00 +0000 2007</author>
+<description>
+	Some changes to fix build problems in FreeBSD and Windows.
+
+	* configure.ac: Added missing m4 defines specifying version numbers,
+	and tests for libdl and libm (sets DL_LIB and MATH_LIB respectively).
+
+	* babl.pc.in: Replaced several hard-coded items with ones defined
+	when configure is run.
+
+	* babl/base/Makefile.am:
+	* extensions/Makefile.am:
+	* tests/Makefile.am: Use $(DL_LIB) and $(MATH_LIB) instead of
+	hard-coded options.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 061229</title>
+<pubDate>Fri Dec 29 00:00:00 +0000 2006</pubDate>
+<author>Fri Dec 29 00:00:00 +0000 2006</author>
+<description>
+	* configure.ac: set the version of babl to 0.0.9
+
+=========================== 0.0.8 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 061229</title>
+<pubDate>Fri Dec 29 00:00:00 +0000 2006</pubDate>
+<author>Fri Dec 29 00:00:00 +0000 2006</author>
+<description>
+	* configure.ac: set the version of babl to 0.0.8
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 061229</title>
+<pubDate>Fri Dec 29 00:00:00 +0000 2006</pubDate>
+<author>Fri Dec 29 00:00:00 +0000 2006</author>
+<description>
+	* docs/Makefile.am: include changelog2rss script.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 061117</title>
+<pubDate>Fri Nov 17 00:00:00 +0000 2006</pubDate>
+<author>Fri Nov 17 00:00:00 +0000 2006</author>
+<description>
+	Make babl compile with stricter compiler warnings, mostly related to
+	changing pointer arith from void* to char*.
+
+	* babl/babl-classes.h:
+	* babl/babl-component.c: (component_new):
+	* babl/babl-conversion.c: (conversion_new),
+	(babl_conversion_planar_process), (babl_conversion_process):
+	* babl/babl-core.c: (convert_double_double), (rgba_to_rgba):
+	* babl/babl-extension.c: (extension_new):
+	* babl/babl-fish-path.c: (babl_fish_path):
+	* babl/babl-fish-reference.c: (babl_fish_reference),
+	(convert_to_double), (convert_from_double), (process_same_model),
+	(babl_fish_reference_process):
+	* babl/babl-fish-simple.c: (babl_fish_simple):
+	* babl/babl-fish.c: (babl_fish_process):
+	* babl/babl-format.c: (format_new):
+	* babl/babl-image.c: (image_new), (babl_image_from_linear),
+	(babl_image):
+	* babl/babl-internal.h:
+	* babl/babl-memory.c: (babl_malloc):
+	* babl/babl-model.c: (model_new):
+	* babl/babl-type.c: (type_new), (r_interval), (test_init):
+	* babl/base/babl-base.c:
+	* babl/base/babl-base.h:
+	* babl/base/formats.c:
+	* babl/base/model-gray.c: (rgba_to_graya), (rgba_to_gray),
+	(rgb_to_gray_2_2), (gray_2_2_to_rgb), (graya_to_rgba),
+	(gray_to_rgba), (gray_alpha_premultiplied_to_rgba),
+	(rgba_to_gray_alpha_premultiplied),
+	(non_premultiplied_to_premultiplied),
+	(premultiplied_to_non_premultiplied),
+	(rgba2gray_gamma_2_2_premultiplied),
+	(gray_gamma_2_2_premultiplied2rgba):
+	* babl/base/model-rgb.c: (copy_strip_1), (g3_gamma_2_2),
+	(g3_inv_gamma_2_2), (non_premultiplied_to_premultiplied),
+	(premultiplied_to_non_premultiplied),
+	(rgba2rgba_gamma_2_2_premultiplied),
+	(rgba_gamma_2_2_premultiplied2rgba), (rgba2rgba_gamma_2_2),
+	(rgba_gamma_2_22rgba):
+	* babl/base/model-ycbcr.c: (rgba_to_ycbcra), (rgba_to_ycbcr),
+	(ycbcra_to_rgba), (ycbcr_to_rgba):
+	* babl/base/type-float.c: (convert_double_float),
+	(convert_float_double):
+	* babl/base/type-u16.c: (convert_double_u16_scaled),
+	(convert_u16_double_scaled):
+	* babl/base/type-u32.c: (convert_double_u32_scaled),
+	(convert_u32_double_scaled):
+	* babl/base/type-u8.c: (convert_double_u8_scaled),
+	(convert_u8_double_scaled):
+	* extensions/CIE-Lab.c: (rgba_to_lab), (lab_to_rgba),
+	(rgba_to_laba), (laba_to_rgba), (convert_double_u8_scaled),
+	(convert_u8_double_scaled), (convert_double_u16_scaled),
+	(convert_u16_double_scaled):
+	* extensions/gegl-fixups.c: (conv_F_8), (conv_8_F):
+	* extensions/gggl-lies.c: (conv_F_8), (conv_F_16), (conv_8_F),
+	(conv_16_F):
+	* extensions/gggl.c: (conv_F_8), (conv_F_16), (conv_8_F),
+	(conv_16_F):
+	* extensions/naive-CMYK.c: (rgba_to_cmyk), (cmyk_to_rgba):
+	* tests/babl-html-dump.c: (normalize):
+	* tests/babl_class_name.c:
+	* tests/formats.c: (format_check):
+	* tests/grayscale_to_rgb.c:
+	* tests/models.c: (model_check):
+	* tests/rgb_to_bgr.c:
+	* tests/rgb_to_ycbcr.c:
+	* tests/srgb_to_lab_u8.c:
+	* tests/types.c: (type_check):
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 061115</title>
+<pubDate>Wed Nov 15 00:00:00 +0000 2006</pubDate>
+<author>Wed Nov 15 00:00:00 +0000 2006</author>
+<description>
+	Set the default BABL_PATH based on the prefix babl is compiled for.
+
+	* babl/Makefile.am:
+	* babl/babl-extension.c:
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 061107</title>
+<pubDate>Tue Nov 07 00:00:00 +0000 2006</pubDate>
+<author>Tue Nov 07 00:00:00 +0000 2006</author>
+<description>
+	* extensions/CIE-Lab.c: (formats): added "CIE Lab alpha float" as
+	a default format.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 061009</title>
+<pubDate>Mon Oct 09 00:00:00 +0000 2006</pubDate>
+<author>Mon Oct 09 00:00:00 +0000 2006</author>
+<description>
+	Cleaned up the typedef for Babl, fixes issues with g++.
+
+	* babl/babl-classes.h:
+	* babl/babl-conversion.c: (conversion_new):
+	* babl/babl-fish-path.c: (babl_fish_path):
+	* babl/babl-fish-reference.c: (babl_fish_reference):
+	* babl/babl-fish-simple.c: (babl_fish_simple):
+
+</description>
+</item>
+<item>
+<title>Dominik Ernst, 060926</title>
+<pubDate>Tue Sep 26 00:00:00 +0000 2006</pubDate>
+<author>Tue Sep 26 00:00:00 +0000 2006</author>
+<description>
+	* babl/babl-classes.h: fixed an issue with g++
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060923</title>
+<pubDate>Sat Sep 23 00:00:00 +0000 2006</pubDate>
+<author>Sat Sep 23 00:00:00 +0000 2006</author>
+<description>
+	* docs/Makefile.am: output the conversion grid when building on
+	crucible.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060914</title>
+<pubDate>Thu Sep 14 00:00:00 +0000 2006</pubDate>
+<author>Thu Sep 14 00:00:00 +0000 2006</author>
+<description>
+	* babl/babl-internal.c: (babl_process): added global babl_total_usecs,
+	not exported through headers, but useful to be able to substract the
+	babl conversion time from other algorithms using babl.
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 060912</title>
+<pubDate>Tue Sep 12 00:00:00 +0000 2006</pubDate>
+<author>Tue Sep 12 00:00:00 +0000 2006</author>
+<description>
+	* autogen.sh: use the autogen.sh of GIMP as a base for babl's
+	autogen.sh. Among other things, this enables maintainer mode by
+	default. 
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060912</title>
+<pubDate>Tue Sep 12 00:00:00 +0000 2006</pubDate>
+<author>Tue Sep 12 00:00:00 +0000 2006</author>
+<description>
+	* autogen.sh: decreased required automake version to 1.7.9. (It
+	could probably be decreased even further, but this is at least
+	known to work.)
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 060910</title>
+<pubDate>Sun Sep 10 00:00:00 +0000 2006</pubDate>
+<author>Sun Sep 10 00:00:00 +0000 2006</author>
+<description>
+	* babl/babl-classes.h
+	* babl/babl-conversion.c
+	* babl/babl-fish-path.c
+	* babl/babl-fish-stats.c
+	* babl/babl-internal.c: Tick times are in usecs not msecs. Use longs
+	to hold tick values.
+
+	* babl/babl-util.h:
+	* babl/babl-util.c (babl_ticks): Fixed calculation of time (usecs
+	not msecs). Changed declaration to return a long not unsigned int.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060909</title>
+<pubDate>Sat Sep 09 00:00:00 +0000 2006</pubDate>
+<author>Sat Sep 09 00:00:00 +0000 2006</author>
+<description>
+	* extensions/Makefile.am: moved -fPIC from LD_FLAGS to CFLAGS.
+	
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060908</title>
+<pubDate>Fri Sep 08 00:00:00 +0000 2006</pubDate>
+<author>Fri Sep 08 00:00:00 +0000 2006</author>
+<description>
+	* extensions/Makefile.am: added -fPIC to LD_FLAGS, thus making it
+	compile on 64bit archs as well.
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 060904</title>
+<pubDate>Mon Sep 04 00:00:00 +0000 2006</pubDate>
+<author>Mon Sep 04 00:00:00 +0000 2006</author>
+<description>
+	* extensions/Makefile.am: have to link with libbabl.a, at least on
+	the Windows platforms
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060831</title>
+<pubDate>Thu Aug 31 00:00:00 +0000 2006</pubDate>
+<author>Thu Aug 31 00:00:00 +0000 2006</author>
+<description>
+	* configure.ac: set the version of babl to 0.0.4
+	* docs/index-static.html.in: added downloading location for tarballs
+	of babl.
+	* AUTHORS: Added Kevin Cozens
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060831</title>
+<pubDate>Thu Aug 31 00:00:00 +0000 2006</pubDate>
+<author>Thu Aug 31 00:00:00 +0000 2006</author>
+<description>
+	* configure.ac: set the version of babl to 0.0.5 (odd micro indicating
+	that it is a CVS version).
+
+=========================== 0.0.4 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060831</title>
+<pubDate>Thu Aug 31 00:00:00 +0000 2006</pubDate>
+<author>Thu Aug 31 00:00:00 +0000 2006</author>
+<description>
+	* Makefile.am: added a dependency on all for README, making it
+	possible to do ./autogen.sh && make distcheck #from a clean CVS
+	checkout.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060831</title>
+<pubDate>Thu Aug 31 00:00:00 +0000 2006</pubDate>
+<author>Thu Aug 31 00:00:00 +0000 2006</author>
+<description>
+	* configure.ac: set the version of babl to 0.0.7
+
+=========================== 0.0.6 released =============================
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060831</title>
+<pubDate>Thu Aug 31 00:00:00 +0000 2006</pubDate>
+<author>Thu Aug 31 00:00:00 +0000 2006</author>
+<description>
+	* configure.ac: set the version of babl to 0.0.6
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060831</title>
+<pubDate>Thu Aug 31 00:00:00 +0000 2006</pubDate>
+<author>Thu Aug 31 00:00:00 +0000 2006</author>
+<description>
+	* extensions/.cvsignore: added Makefile.in
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 060828</title>
+<pubDate>Mon Aug 28 00:00:00 +0000 2006</pubDate>
+<author>Mon Aug 28 00:00:00 +0000 2006</author>
+<description>
+	* configure.ac: Added AM_MAINTAINER_MODE.
+
+	* docs/Makefile.am: Moved BablFishPath.txt to BUILT_EXTRA_DIST.
+
+	* tests/Makefile.am: Removed .cvsignore from EXTRA_DIST.
+
+</description>
+</item>
+<item>
+<title>Kevin Cozens, 060828</title>
+<pubDate>Mon Aug 28 00:00:00 +0000 2006</pubDate>
+<author>Mon Aug 28 00:00:00 +0000 2006</author>
+<description>
+	Changes to get 'make distcheck' working properly.
+
+	* docs/Makefile.am: Added BablFishPath.txt to DISTCLEANFILES.
+
+	* extensions/Makefile.am: Added.
+
+	* extensions/Makefile.in: Removed (replaced by Makefile.am).
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 060825</title>
+<pubDate>Fri Aug 25 00:00:00 +0000 2006</pubDate>
+<author>Fri Aug 25 00:00:00 +0000 2006</author>
+<description>
+	* configure.ac: added AC_LIBTOOL_WIN32_DLL as a preparation for
+	proper builds of shared libs on win32 & there's no need to define
+	OS_WIN32 here... 
+	* babl/babl-extension.c:  ...if the only place where it is needed
+	can be handled by HAVE_DLFCN_H
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060824</title>
+<pubDate>Thu Aug 24 00:00:00 +0000 2006</pubDate>
+<author>Thu Aug 24 00:00:00 +0000 2006</author>
+<description>
+	* extensions/Makefile.in: do not add libbabl.a into plug-ins
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060706</title>
+<pubDate>Thu Jul 06 00:00:00 +0000 2006</pubDate>
+<author>Thu Jul 06 00:00:00 +0000 2006</author>
+<description>
+	* babl.pc.in:  Added -lm to the list of libraries that need to be
+	linked along with babl.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060624</title>
+<pubDate>Sat Jun 24 00:00:00 +0000 2006</pubDate>
+<author>Sat Jun 24 00:00:00 +0000 2006</author>
+<description>
+	* babl.pc.in: stripped trailing /babl from CFLAGS include path.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060612</title>
+<pubDate>Mon Jun 12 00:00:00 +0000 2006</pubDate>
+<author>Mon Jun 12 00:00:00 +0000 2006</author>
+<description>
+	Do not expect the user to pass in BablImages (existance of babl
+	pointer decorations should not be allowed to be used to implement type
+	checking for provided buffers/bablimages)
+
+	* babl/babl-fish.c: (babl_fish_process):
+	* babl/babl-fish-reference.c: (babl_fish_reference_process):
+	* docs/index-static.html.in: removed section about planar BablImages
+	since the API is now disabled.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060606</title>
+<pubDate>Tue Jun 06 00:00:00 +0000 2006</pubDate>
+<author>Tue Jun 06 00:00:00 +0000 2006</author>
+<description>
+	Added conversions based on gggl that assume no gamma in their
+	conversions.
+	* extensions/gggl-lies.c: Added.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060606</title>
+<pubDate>Tue Jun 06 00:00:00 +0000 2006</pubDate>
+<author>Tue Jun 06 00:00:00 +0000 2006</author>
+<description>
+	Register all the formats that the gggl based conversions use in
+	babl-base. This allows a string based short hand vocabulary of format
+	names that can be expected to exist.
+
+	* babl/base/Makefile.am: added formats.c
+	* babl/base/babl-base.c: (babl_base_init): initialize formats.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060606</title>
+<pubDate>Tue Jun 06 00:00:00 +0000 2006</pubDate>
+<author>Tue Jun 06 00:00:00 +0000 2006</author>
+<description>
+	* docs/Makefile.am: Do not rely that a command calle tempfile exists.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060606</title>
+<pubDate>Tue Jun 06 00:00:00 +0000 2006</pubDate>
+<author>Tue Jun 06 00:00:00 +0000 2006</author>
+<description>
+	* docs/Makefile.am: redirect the check for tempfile to /dev/null
+	* docs/tools/xml_insert.sh: Add tempfile workaround here as well.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060605</title>
+<pubDate>Mon Jun 05 00:00:00 +0000 2006</pubDate>
+<author>Mon Jun 05 00:00:00 +0000 2006</author>
+<description>
+	* extensions/gegl-fixups.c: A babl extension to make the testing of
+	gegl faster.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060602</title>
+<pubDate>Fri Jun 02 00:00:00 +0000 2006</pubDate>
+<author>Fri Jun 02 00:00:00 +0000 2006</author>
+<description>
+	* extensions/gggl.c: (table_init): Fix some compile warnings.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060602</title>
+<pubDate>Fri Jun 02 00:00:00 +0000 2006</pubDate>
+<author>Fri Jun 02 00:00:00 +0000 2006</author>
+<description>
+	I'm not entirely sure about installing babl-classes.h like this, it
+	might make more sense to create setters/getters to be used. Thus
+	making it possible to extend the structs at a later stage without
+	breaking binary compatibility.
+
+	* babl/Makefile.am: Added babl-classes.h to the installed headers
+	* babl/babl-classes.h: Made the magic number fit in 32bit int.
+	* babl/babl.h: include babl-classes.h
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060222</title>
+<pubDate>Wed Feb 22 00:00:00 +0000 2006</pubDate>
+<author>Wed Feb 22 00:00:00 +0000 2006</author>
+<description>
+	* docs/index-static.html.in: added a link to the DHTML version of the
+	coverage map.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 060222</title>
+<pubDate>Wed Feb 22 00:00:00 +0000 2006</pubDate>
+<author>Wed Feb 22 00:00:00 +0000 2006</author>
+<description>
+	* extensions/gggl.c: (conv_rgbaF_rgb8), (conv_rgbAF_rgbF), (init):
+	added two more conversions for gggl usage.
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 051217</title>
+<pubDate>Sat Dec 17 00:00:00 +0000 2005</pubDate>
+<author>Sat Dec 17 00:00:00 +0000 2005</author>
+<description>
+	* extensions/Makefile.in: add libgw32 and its dependencies to
+	LDADD for the win32 platform
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 051110</title>
+<pubDate>Thu Nov 10 00:00:00 +0000 2005</pubDate>
+<author>Thu Nov 10 00:00:00 +0000 2005</author>
+<description>
+	* docs/index-static.html.in: Minor reformulations and spelling fixes.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 051108</title>
+<pubDate>Tue Nov 08 00:00:00 +0000 2005</pubDate>
+<author>Tue Nov 08 00:00:00 +0000 2005</author>
+<description>
+	* configure.ac: use AM_CONFIG_HEADER instead of AC_CONFIG_HEADERS.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 051104</title>
+<pubDate>Fri Nov 04 00:00:00 +0000 2005</pubDate>
+<author>Fri Nov 04 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-format.c: (create_name): fixed an invalid memory access in
+	comparision of component order (and now also length.)
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 051008</title>
+<pubDate>Sat Oct 08 00:00:00 +0000 2005</pubDate>
+<author>Sat Oct 08 00:00:00 +0000 2005</author>
+<description>
+	* docs/index-static.html.in: Fixed the second processing example. (
+	added missing pixel_count)
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050927</title>
+<pubDate>Tue Sep 27 00:00:00 +0000 2005</pubDate>
+<author>Tue Sep 27 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: Added time consumption instrumentation to
+	BablFish.
+	* babl/babl-fish-path.c: (babl_fish_path), (babl_fish_path_process):
+	intialization of instrumentation data.
+	* babl/babl-fish-stats.c: (table_destination_each), (each_conv),
+	(conversions), (babl_fish_stats): Output timing data, as well as a
+	list of all conversions with the obviously bad ones marked in red.
+	* babl/babl-internal.c: (babl_process): update instrumentation.
+	* babl/babl-introspect.c: (conversion_introspect): only query error
+	from conversions where that is legal.
+	* babl/babl-util.c: changed from msecs to nsecs (might be some more
+	places in the code to change names of variables.)
+	* extensions/gggl.c: (conv_gF_gaF), (conv_gF_rgbF), (conv_rgbF_gF),
+	(conv_rgbaF_rgb8): Changes to increase sanity.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050927</title>
+<pubDate>Tue Sep 27 00:00:00 +0000 2005</pubDate>
+<author>Tue Sep 27 00:00:00 +0000 2005</author>
+<description>
+	* tests/srgb_to_lab_u8.c: (test): renamed format (srgb -> R'G'B' u8)
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050927</title>
+<pubDate>Tue Sep 27 00:00:00 +0000 2005</pubDate>
+<author>Tue Sep 27 00:00:00 +0000 2005</author>
+<description>
+	Updates done due to improvements gotten from BablFishStat feedback.
+
+	* babl/base/model-gray.c: (components), (models),
+	(rgba2gray_gamma_2_2_premultiplied),
+	(gray_gamma_2_2_premultiplied2rgba), (conversions):
+	* babl/base/model-rgb.c: (components), (models), (copy_strip_1),
+	(g3_gamma_2_2), (g3_inv_gamma_2_2),
+	(non_premultiplied_to_premultiplied),
+	(premultiplied_to_non_premultiplied),
+	(rgba2rgba_gamma_2_2_premultiplied),
+	(rgba_gamma_2_2_premultiplied2rgba), (rgba2rgba_gamma_2_2),
+	(rgba_gamma_2_22rgba), (conversions), (formats):
+	* babl/base/model-ycbcr.c: (models), (formats):
+	* docs/index-static.html.in:
+	* extensions/gggl.c: (conv_F_8), (conv_8_F), (conv_F_D),
+	(conv_D_F), (conv_rgba8_rgbaF), (conv_rgb8_rgbF), (conv_ga8_gaF),
+	(conv_rgbaF_rgbaD), (conv_rgbaD_rgbaF), (conv_rgbAF_rgbaF),
+	(conv_rgbaF_rgbAF), (conv_rgbaF_rgbF), (conv_rgbF_rgbaF),
+	(conv_rgbaF_gaF), (conv_rgbaF_rgb8), (conv_rgbA16_rgbaF),
+	(conv_rgb8_rgba8), (conv_rgbA8_rgb8), (init):
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050927</title>
+<pubDate>Tue Sep 27 00:00:00 +0000 2005</pubDate>
+<author>Tue Sep 27 00:00:00 +0000 2005</author>
+<description>
+	Moved html generator stats code into a seperate source fil in core,
+	babl now creates /tmp/babl-stats.txt when the BABL_STATS enviroment
+	variable is set.
+
+	* babl/Makefile.am:
+	* babl/babl.c:
+	* tests/babl_fish_path_dhtml.c: (main):
+	* babl/babl-fish-stats.c: (table_destination_each).
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050927</title>
+<pubDate>Tue Sep 27 00:00:00 +0000 2005</pubDate>
+<author>Tue Sep 27 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-util.h,
+	* babl/babl-util.c: (babl_rel_avg_error): moved buffer comparison
+						  function to one place.
+	* babl/babl-classes.h: Added error field to fishes, made path length
+	dynamic.
+	* babl/babl-internal.h: added misc global constants.
+	* babl/babl-internal.c: created caching accessors in classes, to avoid
+	very large bootstrapping time.
+	* babl/babl-conversion.c: (test_create), (babl_conversion_cost),
+	(babl_conversion_error):
+	* babl/babl-format.c: (test_create), (babl_format_loss):
+	* babl/babl-type.c: (babl_type_is_symmetric):
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050927</title>
+<pubDate>Tue Sep 27 00:00:00 +0000 2005</pubDate>
+<author>Tue Sep 27 00:00:00 +0000 2005</author>
+<description>
+	Upgrade of BablFishPath.
+
+	* babl/babl-fish-path.c: (legal_error), (max_path_length),
+	(get_conversion_chain), (chain_contains_fmt), (chain_gen_each),
+	(babl_fish_path), (chain_process), (babl_fish_path_process),
+	(test_create), (chain_error): Various updates, needed instrumentation
+	and error data is now calculated and cached.
+	* babl/babl-fish-reference.c: (babl_fish_reference): do not update
+	instrumentation for internal calls.
+	* babl/babl-fish-simple.c: (babl_fish_simple): do not update
+	instrumentation for internal calls.
+	* babl/babl-introspect.c: (conversion_introspect): some more
+	      information.
+	* babl/babl-model.c: (test_create), (babl_model_is_symmetric): use
+	  comparion function from babl-util
+	* babl/babl-conversion.c: (test_create), (babl_conversion_cost),
+	(babl_conversion_error): use comparion function from babl-util.
+	* babl/babl.c: (babl_init): no need to do post extension tricks
+				    anymore.
+	* babl/babl-core.c: (babl_core_init): added PAD component.
+	  
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050919</title>
+<pubDate>Mon Sep 19 00:00:00 +0000 2005</pubDate>
+<author>Mon Sep 19 00:00:00 +0000 2005</author>
+<description>
+	* docs/index-static.html.in: s/DHTML/interactive/
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050919</title>
+<pubDate>Mon Sep 19 00:00:00 +0000 2005</pubDate>
+<author>Mon Sep 19 00:00:00 +0000 2005</author>
+<description>
+	BablFishPath touchups.
+
+	* babl/babl-conversion.c: cost = cost * 10 + 1, makes the overhead
+	of actually running a conversion 1. Removed stupid long pats from
+	created conversions.
+	* babl/babl-fish-path.c: (chain_gen_each): Ensure the chain doesn't
+	take us through larger loss than allowed.
+	* babl/babl-internal.c: (babl_extension_post_load): do not
+	autogenerate formats.
+	* docs/index-static.html.in: updating documentation.
+	* tests/babl_fish_path_dhtml.c: (table_destination_each),
+	(table_source_each), (main): recoded to use CSS tricks instead of
+	javascript, reduced generated file size by 50%;
+	* extensions/gggl.c: (conv_labF_xyzF), (conv_xyzF_labF): added missing
+	return value.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050919</title>
+<pubDate>Mon Sep 19 00:00:00 +0000 2005</pubDate>
+<author>Mon Sep 19 00:00:00 +0000 2005</author>
+<description>
+	* extensions/gggl.c: Added the bulk of gggl based conversions as an
+	extension. Many of these don't live up to the quality requirements of
+	babl, but some do, and provide a good base for further BablFishPath
+	coverage.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+	* docs/tools/changelog2rss: tool to create RSS feed of ChangeLog.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+	* docs/Makefile.am: Included BablFishPath.[html|txt]
+	* docs/index-static.html.in: included some ramblings about the
+	background and purpose of babl.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+	* tests/Makefile.am:
+	* tests/babl_fish_path_dhtml.c,
+	* tests/babl_fish_path_fitness.c: new introspection outputters, that
+	report on the conversion matrix of BablFishPath.
+	* tests/babl-html-dump.c: (main): removed conversions, since it is
+	now used as "Vocabulary" in the documentation,.
+	* tests/conversions.c: (each_conversion), (main):
+	* tests/formats.c: (format_check), (main):
+	* tests/models.c: (model_check), (main):
+	* tests/types.c: (type_check), (main): Moved the logic into BablCore
+	in previous commit.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+
+	Updating test suite, conversion and format quality testing
+	code folded into babl-core in previous commit.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/model-cmyk.c: (rgb_to_cmyk), (cmyk_to_rgb),
+	(conversions), (formats):
+	* babl/base/model-gray.c: (rgba_to_graya), (rgba_to_gray),
+	(graya_to_rgba), (gray_to_rgba), (conversions):
+	* babl/base/model-rgb.c: (formats):
+	* babl/base/model-ycbcr.c: (rgba_to_ycbcra), (rgba_to_ycbcr),
+	(ycbcra_to_rgba), (ycbcr_to_rgba), (conversions), (formats):
+	* extensions/CIE-Lab.c: (rgba_to_lab), (lab_to_rgba),
+	(rgba_to_laba), (laba_to_rgba), (conversions):
+	* extensions/naive-CMYK.c: (init), (rgba_to_cmyk), (cmyk_to_rgba):
+
+	register linear reference conversions instead, since they can be used
+	in BablFishPath chains.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+	Adding BablFishPath, as well as splittin out Simple and Reference
+	from babl-fish.c. (lazy commit of large changes :d )
+
+	* babl/babl-internal.h:
+	* babl/babl-core.c: (rgba_to_rgba), (babl_core_init):
+	* babl/babl-db.c: (babl_db_count):
+	* babl/babl-db.h:
+	* babl/babl-fish.c: (match_conversion), (babl_conversion_find),
+	(babl_fish_db), (babl_fish), (babl_fish_process),
+	(each_babl_fish_destroy):
+	* babl/babl-format.c: (babl_format_new), (babl_formats_count),
+	(babl_format_with_model_as_type), (test_create),
+	(babl_format_loss):
+	* babl/babl-internal.c: (babl_process), (each_conversion),
+	(each_format), (gen_type_format_for_model),
+	(gen_formats_for_model), (babl_extension_post_load):
+	* babl/babl-introspect.c: (conversion_introspect):
+	* babl/babl-model.c: (babl_model_new), (test_create),
+	(reference_format), (construct_double_format),
+	(babl_model_is_symmetric):
+	* babl/babl-sanity.c: (id_sanity):
+	* babl/babl-type.c: (babl_type_new), (r_interval), (test_init),
+	(double_vector_format), (babl_type_is_symmetric):
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-memory.[ch]: (babl_free), (babl_realloc): made babl_free
+	variadic, and added the potential for a clearing realloc.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl.c: (babl_init),
+	* babl/babl.h: made babl_fish variadic.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050918</title>
+<pubDate>Sun Sep 18 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 18 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: added BablFishPath
+	* babl/babl-util.c: (babl_list_each), (init_ticks), (babl_ticks):
+	* babl/babl-util.h:
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050912</title>
+<pubDate>Mon Sep 12 00:00:00 +0000 2005</pubDate>
+<author>Mon Sep 12 00:00:00 +0000 2005</author>
+<description>
+	* tests/conversions.c: (test_init): code simplification.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050912</title>
+<pubDate>Mon Sep 12 00:00:00 +0000 2005</pubDate>
+<author>Mon Sep 12 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: add loss field to format class.
+	* babl/babl-format.c: (format_new): set loss field to -1 as initial
+	value.
+	* tests/conversions.c: (reference_format): simplify
+	* tests/formats.c: (test_init), (format_check), (main): code
+	simplification.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050911</title>
+<pubDate>Sun Sep 11 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 11 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl.h: use gcc 4.x attribute for NULL sentinel.
+	* babl/babl-format.c: (babl_format_new): added missing enumeration
+	values to switch.
+	* babl/babl-model.c: (babl_model_new): added missing enumeration
+	values to switch.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050911</title>
+<pubDate>Sun Sep 11 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 11 00:00:00 +0000 2005</author>
+<description>
+	* tests/formats.c: new test (that might form the basis of loss
+	calculations done for ranking of formats).
+	* tests/Makefile.am: added new test
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050911</title>
+<pubDate>Sun Sep 11 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 11 00:00:00 +0000 2005</author>
+<description>
+	* extensions/CIE-Lab.c: (formats): s/cie-lab-u16/CIE Lab u16/
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050911</title>
+<pubDate>Sun Sep 11 00:00:00 +0000 2005</pubDate>
+<author>Sun Sep 11 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: Removed unused list of conversions to
+	types/models/formats.
+
+	* babl/babl-conversion.c: (conversion_new):
+	* babl/babl-format.c: (each_babl_format_destroy), (format_new):
+	* babl/babl-image.c: (babl_image_from_linear):
+	* babl/babl-introspect.c: (item_conversions_introspect):
+	* babl/babl-memory.c: (babl_realloc):
+	* babl/babl-model.c: (each_babl_model_destroy), (model_new):
+	* babl/babl-sampling.c: (each_babl_sampling_destroy):
+	* babl/babl-sanity.c: (type_sanity), (model_sanity), (babl_sanity):
+	* babl/babl-type.c: (each_babl_type_destroy), (type_new):
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050909</title>
+<pubDate>Fri Sep 09 00:00:00 +0000 2005</pubDate>
+<author>Fri Sep 09 00:00:00 +0000 2005</author>
+<description>
+	* docs/Makefile.am: set BABL_PATH to builddir for creating the
+	documentation
+	* docs/index-static.html.in: various updates.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050909</title>
+<pubDate>Fri Sep 09 00:00:00 +0000 2005</pubDate>
+<author>Fri Sep 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/type-u16.c: (convert_double_u16_scaled):
+	* babl/base/type-u32.c: (convert_double_u32_scaled):
+	* babl/base/type-u8.c: (convert_double_u8_scaled),
+	(babl_base_type_u8):
+	* extensions/CIE-Lab.c: (convert_double_u8_scaled),
+	(convert_double_u16_scaled): uintval = rint (dval * MAXINT)
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050909</title>
+<pubDate>Fri Sep 09 00:00:00 +0000 2005</pubDate>
+<author>Fri Sep 09 00:00:00 +0000 2005</author>
+<description>
+	* tests/conversions.c: (validate_conversion): do relative average
+	error calculations.
+	* tests/srgb_to_lab_u8.c: update values.
+	* tests/types.c: set a very low tolerance.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050909</title>
+<pubDate>Fri Sep 09 00:00:00 +0000 2005</pubDate>
+<author>Fri Sep 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: added error to BablConversion.
+	* babl/babl-conversion.c: (conversion_new), (babl_conversion_new):
+		track changes to fields in constructors.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050909</title>
+<pubDate>Fri Sep 09 00:00:00 +0000 2005</pubDate>
+<author>Fri Sep 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-format.c: (create_name): Create shorter names when
+	the format uses a single datatype and the components are listed in
+	model order.
+	* babl/base/model-lab.c: removed.
+	* babl/base/model-rgb.c: (formats),
+	* babl/base/model-ycbcr.c: (formats): Use automatic names for formats.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050908</title>
+<pubDate>Thu Sep 08 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 08 00:00:00 +0000 2005</author>
+<description>
+	* Makefile.am: build extensions before tests.
+	* extensions/Makefile.in: build extensions when check is done.
+	* tests/Makefile.am: removed erroniously added foo test.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050908</title>
+<pubDate>Thu Sep 08 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 08 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/type-float.c: 
+	* babl/base/type-u16.c: 
+	* babl/base/type-u8.c: s/"linear"/"plane"/
+	* babl/base/Makefile.am,
+	* babl/base/babl-base.c,
+	* babl/base/type-u32.c: new type.
+	* extensions/CIE-Lab.c: 
+	* extensions/Makefile.in: changes needed (for not yet added) lcms
+	extension.
+	* tests/Makefile.am: added new test.
+	* tests/conversions.c: new test to check fast paths against reference
+	fish.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050908</title>
+<pubDate>Thu Sep 08 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 08 00:00:00 +0000 2005</author>
+<description>	
+	Made simple fishes work in the core.
+
+	* babl/babl-classes.h: reduced number of conversion classes.
+	removed unused from and to members in struct.
+	* babl/babl-conversion.c: (conversion_new), (babl_conversion_new),
+	(babl_conversion_linear_process), (babl_conversion_plane_process),
+	(babl_conversion_planar_process), (babl_conversion_process):
+	* babl/babl-component.c: (each_babl_component_destroy),
+	(component_new): removed unused from and to members.
+	* babl/babl-fish.c: (babl_conversion_find2),
+	(babl_conversion_find), (babl_fish_reference), (babl_fish_simple),
+	(babl_fish), (convert_to_double), (convert_from_double),
+	(babl_fish_reference_process): use fast path if found directly in a
+	simple fishes.
+	* babl/babl-format.c: (babl_format_new):
+	* babl/babl-internal.c: (babl_process):
+	* babl/babl-internal.h:
+	* babl/babl-introspect.c: (each_introspect):
+	* babl/babl-model.c: (babl_model_new):
+	* babl/babl-core.c: (babl_core_init): s/linear/plane/
+	* tests/babl_class_name.c: update according to class changes.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050908</title>
+<pubDate>Thu Sep 08 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 08 00:00:00 +0000 2005</author>
+<description>
+	* AUTHORS: Added Micahel Schumacher, and email addresses.
+	* docs/index-static.html.in:
+	* docs/babl.css:
+	* tests/babl-html-dump.c: (main), (normalize), (show_item),
+	(hide_item), (each_item), (model_html), (type_html),
+	(conversion_html), (format_html): Use DHTML for expandable display of
+	registered data structures.
+	* docs/graphics/Makefile.am: added web target, and .SILENT option.
+	* docs/Makefile.am: added .SILENT option.
+	* configure.ac: added website location.
+
+</description>
+</item>
+<item>
+<title>Michael Schumacher, 050901</title>
+<pubDate>Thu Sep 01 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 01 00:00:00 +0000 2005</author>
+<description>
+	* configure.ac: added a check for OS_WIN32
+	* babl/Makefile.am: link with libgw32c to provide dl* functions on
+	win32 
+	* babl/babl-extension.c: added definitions of dl* function forwin32
+	* tests/Makefile.am: removed -ldl for win32
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 050901</title>
+<pubDate>Thu Sep 01 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 01 00:00:00 +0000 2005</author>
+<description>
+	* Makefile.am: don't dist the generated babl.pc file.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050901</title>
+<pubDate>Thu Sep 01 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 01 00:00:00 +0000 2005</author>
+<description>
+	Added a 128 item hashtable to each object list.
+
+	* babl/Makefile.am: added new file 'babl-db.c'
+	* babl/babl-db.h: moved static function ...
+	* babl/babl-db.c: ... here in a new file, also implemented a hashing
+	optimization based on the strings of names.
+	* babl/babl-internal.h: changed API in base class templates.
+	* babl/babl-component.c,
+	* babl/babl-extension.c,
+	* babl/babl-fish.c,
+	* babl/babl-format.c,
+	* babl/babl-image.c,
+	* babl/babl-model.c,
+	* babl/babl-sampling.c,
+	* babl/babl-type.c: changed db_insert(..) to babl_db_insert(db, ...)
+
+	* babl/babl.c: added babl_fish_init ()
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050901</title>
+<pubDate>Thu Sep 01 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 01 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-internal.h: HACK statically define BablDb *db,
+	for all internal translation units.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 050901</title>
+<pubDate>Thu Sep 01 00:00:00 +0000 2005</pubDate>
+<author>Thu Sep 01 00:00:00 +0000 2005</author>
+<description>
+	* tests/Makefile.am (TESTS_ENVIRONMENT): set BABL_PATH to include
+	extension from the builddir.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050831</title>
+<pubDate>Wed Aug 31 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 31 00:00:00 +0000 2005</author>
+<description>
+	* docs/index-static.html.in: Changed ChangeLog link in NEWS section.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050831</title>
+<pubDate>Wed Aug 31 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 31 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-component.h,
+	* babl/babl-core.h,
+	* babl/babl-conversion.h,
+	* babl/babl-extension.h,
+	* babl/babl-format.h,
+	* babl/babl-instance.h,
+	* babl/babl-introspect.h,
+	* babl/babl-image.h,
+	* babl/babl-fish.h,
+	* babl/babl-model.h,
+	* babl/babl-sampling.h,
+	* babl/babl-sanity.h,
+	* babl/babl-type.h: DELETED
+	* babl/babl.h: defines moved from deleted headers. Added
+	documentation.
+	* babl/babl-internal.h: defines moved from deleted headers.
+
+	* babl/Makefile.am: Reflect above changes.
+	* babl/babl-classes.h: redefined conversion functions to return long,
+	and take number of pixels as long.
+	* babl/babl-component.c, 
+	* babl/babl-conversion.c,
+	* babl/babl-core.c,
+	* babl/babl-db.h,
+	* babl/babl-extension.c,
+	* babl/babl-fish.c, 
+	* babl/babl-format.c,
+	* babl/babl-image.c, 
+	* babl/babl-instance.h,
+	* babl/babl-internal.c,
+	* babl/babl-internal.h,
+	* babl/babl-introspect.c,
+	* babl/babl-memory.c, 
+	* babl/babl-model.c,
+	* babl/babl-sampling.c,
+	* babl/babl-sanity.c,
+	* babl/babl-type.c, 
+	* babl/babl.c,
+	* babl/base/model-cmyk.c,
+	* babl/base/model-gray.c, 
+	* babl/base/model-rgb.c, 
+	* babl/base/model-ycbcr.c,
+	* babl/base/type-float.c,
+	* babl/base/type-u16.c,
+	* babl/base/type-u8.c, 
+	* docs/index-static.html.in,
+	* extensions/CIE-Lab.c,
+	* extensions/naive-CMYK.c, 
+	* tests/babl-html-dump.c,
+	* tests/babl_class_name.c,
+	* tests/grayscale_to_rgb.c,
+	* tests/introspect.c,
+	* tests/models.c,
+	* tests/nop.c,
+	* tests/rgb_to_bgr.c,
+	* tests/rgb_to_ycbcr.c,
+	* tests/sanity.c,
+	* tests/srgb_to_lab_u8.c,
+	* tests/types.c: reflect changes in headers.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050831</title>
+<pubDate>Wed Aug 31 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 31 00:00:00 +0000 2005</author>
+<description>
+	* Makefile.am,
+	* babl.pc.in,
+	* configure.ac,
+	* extensions/Makefile.in: Fixed build of extensions. (awaiting
+	fix of babl/babl-extension.c to use new #defines)
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050830</title>
+<pubDate>Tue Aug 30 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 30 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/model-gray.c: 
+		(rgba_to_gray_alpha_premultiplied): fixed array index error.
+	* extensions/Makefile.in: Added -I../babl to include path.
+	* extensions/naive-CMYK.c: (init), (rgb_to_cmyk), (cmyk_to_rgb):
+		reordered the code, fixed a component swapping issue
+		discovered by tests/model.c
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050830</title>
+<pubDate>Tue Aug 30 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 30 00:00:00 +0000 2005</author>
+<description>
+	* tests/srgb_to_lab_u8.c: updated values.
+	* tests/types.c: rewritten.
+	* tests/models.c: added, a test to test that reference conversions
+	registered for a BablModel are symmetrical.
+	* tests/float_to_u8.c,
+	* tests/u8_to_float.c,
+	* tests/rgb_to_lab_to_rgb.c,
+	* tests/rgb_to_ycbcr_to_rgb.c: removed.
+	* tests/Makefile.am: updated.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050830</title>
+<pubDate>Tue Aug 30 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 30 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-introspect.c:
+		(model_introspect), 
+		(format_introspect),
+		(each_introspect): use double quotes for strings.
+		(conversion_introspect): new, show instrumentation data.
+		(fish_introspect): new, show instrumentation data.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050830</title>
+<pubDate>Tue Aug 30 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 30 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: Added instrumentation variables to
+	BablConversion and BablFish.
+	* babl/babl-conversion.c:
+		(babl_conversion_new): Handle re-registration.
+		(conversion_new),
+		(babl_conversion_process): instrumentation variables
+	* babl/babl-component.c:
+		(babl_component_new): Handle re-registration.
+	* babl/babl-extension.c: Code cleanup.
+		(babl_extension_base): Handle re-registration.
+		(babl_extension_load_dir): close dir handle when done.
+	* babl/babl-fish.c:
+		(create_name)
+		(babl_fish_new): instrumentation variables, autogenerated
+		name.
+		(babl_fish_reference_new): instrumentation variables,
+		autogenerated name.
+		(babl_process): instrumentation variables.
+		(babl_conversion_find): use the lists of the source type for
+		the search (speed improvement).
+		(babl_fish): 
+		(process_same_model): reference process with fewer steps.
+		(babl_fish_reference_process): use fast path when models are
+		the same.
+	* babl/babl-format.c: (babl_format_new): Handle re-registration.
+	* babl/babl-model.c: (babl_model_new): handle re-registration.
+	* babl/babl-type.c: (babl_type_new): handle re-registration.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050830</title>
+<pubDate>Tue Aug 30 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 30 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-memory.c: (babl_free): freeing of non babl allocated
+	memory is fatal.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050829</title>
+<pubDate>Mon Aug 29 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 29 00:00:00 +0000 2005</author>
+<description>
+	* tests/types.c: added test that tests the symmetry of reference
+	conversions for registered types.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050829</title>
+<pubDate>Mon Aug 29 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 29 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-format.c: (each_babl_format_destroy), (format_new),
+	(create_name), (babl_format_new): New API, name is now a key/value
+	pair, and if not set the name will be autogenerated.
+	* babl/base/model-rgb.c, 
+	* babl/base/model-ycbcr.c, 
+	* extensions/CIE-Lab.c, 
+	* extensions/naive-CMYK.c, 
+	* tests/Makefile.am,
+	* tests/float_to_u8.c,
+	* tests/grayscale_to_rgb.c, 
+	* tests/rgb_to_bgr.c, 
+	* tests/rgb_to_lab_to_rgb.c, 
+	* tests/rgb_to_ycbcr.c, 
+	* tests/rgb_to_ycbcr_to_rgb.c, 
+	* tests/u8_to_float.c: update to new API.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050829</title>
+<pubDate>Mon Aug 29 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 29 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-db.h: Do nor warn about collision during db_insert
+	* babl/babl-extension.[ch]: Implemented fs traversal based on BABL_PATH.
+	added babl_set_extender to API.
+	* babl/babl-instance.h: Changed signature of type_name##_new.
+	* babl/babl-introspect.c: (babl_introspect): use new babl_extender
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050829</title>
+<pubDate>Mon Aug 29 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 29 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-internal.c: (babl_internal_init): set memory functions.
+	* babl/babl-memory.c: (babl_set_malloc), (babl_set_free),
+	(functions_sanity), (babl_malloc), (babl_free), (babl_realloc),
+	(babl_calloc), (babl_sizeof), (babl_strdup), (babl_strcat),
+	(babl_memory_sanity),
+	* babl/babl-memory.h: Added babl_str* functions, that behave slightly
+	different from the standard ones.
+	* babl/babl-util.c: (babl_add_ptr_to_list): made error fatal.
+	* babl/babl.c: (babl_init), (babl_destroy): added babl_internal
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050828</title>
+<pubDate>Sun Aug 28 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 28 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-internal.[ch]: (babl_die): A function to call from
+	babl_fatal (...), invokes commands resulting in a backtrace, thus
+	giving context to where things broke.
+	* babl/babl-component.c: (babl_component_new):
+	* babl/babl-conversion.c: (babl_conversion_new):
+	* babl/babl-fish.c: (babl_conversion_find):
+	* babl/babl-format.c: (format_new), (babl_format_new):
+	* babl/babl-model.c: (babl_model_new):
+	* babl/babl-type.c: (babl_type_new): use babl_fatal() instead of
+	babl_log () on API mistakes.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050828</title>
+<pubDate>Sun Aug 28 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 28 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-pixel-format.c: removed
+	* babl/babl-format.c: readded under new name.
+
+	* babl/babl-pixel-format.h: removed
+	* babl/babl-format.h: readded under new name.
+
+	* babl/babl-classes.c: removed
+	* babl/babl-internal.c: readded under new name.
+
+	* babl/babl.h,
+	* babl/Makefile.am,
+	* babl/babl-fish.c: Accomodate changes.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050828</title>
+<pubDate>Sun Aug 28 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 28 00:00:00 +0000 2005</author>
+<description>
+
+	* babl/babl-component.c: (babl_component_new): s/parameter/argument/
+
+	* babl/babl-extension.[ch]: the extension class.
+	* babl/babl-model.c: (create_name), (babl_model_new): generate
+	automatic name, allow override with key/value pair.
+	s/parameter/argument/
+	* babl/babl-pixel-format.c: (babl_format_new): s/parameter/argument/
+	* babl/babl-sampling.c: (babl_sampling): s/parameter/argument/
+	* babl/babl-type.c: (babl_type_new): s/paramter/argument/
+	* babl/babl-conversion.c, (create_name), (babl_conversion_new):
+	* babl/babl-conversion.h: Changed API, first two parameters are now
+	source and destination.
+	* babl/babl-instance.h: Added _NO_NEW variation of declarative name.
+	* babl/babl-internal.h: exit (-1) when a name lookup fails.
+
+	* babl/babl.h: do not export babl-ids.h 
+
+	* babl/base/Makefile.am: Files removed
+	* babl/base/babl-base.c: (models): removed model-lab
+	* babl/base/cpercep.[ch],
+	* babl/base/models.c,
+	* babl/base/model-lab.c,
+	* babl/base/types.c: removed
+
+	* babl/base/model-gray.c,
+	* babl/base/model-rgb.c,
+	* babl/base/model-ycbcr.c:
+		(models), (conversions): changed to new model_new and
+		conversion_new api.
+
+	* babl/base/type-float.c, 
+	* babl/base/type-u16.c, 
+	* babl/base/type-u8.c: new conversion API
+
+
+	* configure.ac,
+	* Makefile.am: added extensions subdir
+	* extensions/Makefile.in: NB: hard-coded installpath to
+	/home/pippin/.babl/
+	* extensions/CIE-Lab.c: moved here from BablBase, contains cpercep.c
+	and cpercep.h
+	* extensions/naive-CMYK.c: moved here from BablBase.
+	* extensions/util.h: convenience functions for babl extensions.
+
+	* babl/babl-core.[ch]: double and RGBA originating from BablBase.
+
+	* docs/index-static.html.in: updated TODO list.
+
+	* tests/float_to_u8.c, 
+	* tests/grayscale_to_rgb.c, 
+	* tests/rgb_to_bgr.c, 
+	* tests/rgb_to_lab_to_rgb.c, 
+	* tests/rgb_to_ycbcr.c,
+	* tests/rgb_to_ycbcr_to_rgb.c, 
+	* tests/srgb_to_lab_u8.c, 
+	* tests/u8_to_float.c: follow naming changed.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050827</title>
+<pubDate>Sat Aug 27 00:00:00 +0000 2005</pubDate>
+<author>Sat Aug 27 00:00:00 +0000 2005</author>
+<description>
+	* Makefile.am:
+	* babl.pc.in: added -dl
+	* babl/babl-classes.c: Added BablExtension to string list of types.
+	* babl/babl-classes.h: Added BablExtension, some reordering in union.
+	* babl/babl-conversion.c:
+		(create_name), (babl_conversion_new): compute the name of the
+		conversion instead of explicitly having to provide it.
+	* babl/babl-core.c:
+		(convert_double_double), (copy_strip_1),
+		(babl_core_init): Moved double datatype and RGBA model from
+		base into core.
+	* babl/babl-core.h: new file
+	* babl/babl-db.h: improved logging, print current extender as well.
+	* babl/babl-ids.h: removed some non central ids.
+	* babl/babl-internal.h: new varargs based logger.
+	* babl/babl-introspect.c: (babl_introspect): use quiet "fake"
+	extender. Allow introspection of single objects.
+	* babl/babl-introspect.h: Allow introspection of single objects.
+	* babl/babl-memory.c: (babl_memory_sanity): use babl_log instead of
+	fprintf.
+	* babl/babl-sanity.c: (id_sanity): only complain about id==0 in
+	BablBase / BablCore.
+	* babl/babl.c: (babl_init), (babl_destroy): added core and extension
+	to build up/tear down lists.
+	* babl/babl.h: removed babl_introspect which doesn't belong here
+	anymore.
+	* babl/base/Makefile.am: Removed type-double.c
+	* babl/base/babl-base.c: (types), (models): removed
+	babl_base_type_double ()
+	* babl/base/model-rgb.c: (components), (models): removed RGBA model.
+	* babl/base/type-double.c: removed
+	
+	* docs/index-static.html.in:
+	* tests/Makefile.am: LDADD += -ldl 
+	* tests/introspect.c: (main): pass NULL as argument to
+	babl_introspect () to do full objectspace traversal.
+
+	* babl/babl-fish.h:
+	* babl/babl-model.h:
+	* babl/babl-pixel-format.h:
+	* babl/babl-sampling.h:
+	* babl/babl-conversion.h:
+	* babl/babl-component.h: cosmetic rearrangement of lines.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050827</title>
+<pubDate>Sat Aug 27 00:00:00 +0000 2005</pubDate>
+<author>Sat Aug 27 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-component.c: (babl_component_new):
+	* babl/babl-conversion.c: (conversion_new), (babl_conversion_new),
+	(babl_conversion_process):
+	* babl/babl-db.h:
+	* babl/babl-fish.c: (babl_conversion_find), (babl_fish),
+	(babl_fish_reference_process), (babl_fish_process), (babl_process):
+	* babl/babl-image.c: (babl_image_from_linear), (babl_image):
+	* babl/babl-internal.h:
+	* babl/babl-introspect.c: (babl_introspect), (model_introspect):
+	* babl/babl-memory.c: (babl_malloc), (babl_strdup), (babl_realloc),
+	(babl_calloc):
+	* babl/babl-model.c: (babl_model_new):
+	* babl/babl-pixel-format.c: (format_new), (babl_format_new):
+	* babl/babl-type.c: (babl_type_new):
+	* babl/babl-util.c: (babl_add_ptr_to_list):
+	* babl/base/type-u8.c:
+	* tests/babl_class_name.c: (test): 
+
+	Made babl_log(...) print the file, line and function by itself.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050827</title>
+<pubDate>Sat Aug 27 00:00:00 +0000 2005</pubDate>
+<author>Sat Aug 27 00:00:00 +0000 2005</author>
+<description>
+	* docs/graphics/Makefile.am: s/INSCAPE/INKSCAPE/
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 050827</title>
+<pubDate>Sat Aug 27 00:00:00 +0000 2005</pubDate>
+<author>Sat Aug 27 00:00:00 +0000 2005</author>
+<description>
+	* configure.ac
+	* Makefile.am
+	* docs/Makefile.am
+	* docs/graphics/Makefile.am: check for inkscape and w3m which are
+	needed to build the documentation. Compile without them but bail
+	out on 'make dist'.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050826</title>
+<pubDate>Fri Aug 26 00:00:00 +0000 2005</pubDate>
+<author>Fri Aug 26 00:00:00 +0000 2005</author>
+<description>
+	* tests/rgb_to_bgr.c: added component shuffling test
+	* tests/Makefile.am: added rgb_to_bgr to TESTS
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050825</title>
+<pubDate>Thu Aug 25 00:00:00 +0000 2005</pubDate>
+<author>Thu Aug 25 00:00:00 +0000 2005</author>
+<description>
+	* docs/index-static.html.in: removed done things from TODO list.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050825</title>
+<pubDate>Thu Aug 25 00:00:00 +0000 2005</pubDate>
+<author>Thu Aug 25 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h:
+		BablModel: added .type
+		BablFormat: reordered
+		BablImage: added .format, .model, .sampling and .type
+		BablFishReference: removed implementation details
+	* babl/babl-component.c: (component_new): use malloc instead of calloc
+	* babl/babl-conversion.c:
+		(conversion_new): use malloc instead of calloc
+		(babl_conversion_linear_process)
+		(babl_conversion_process):  pass pitch to functions.
+		(babl_conversion_planar_process): duplicate data pointers in
+		image before passing them on.
+	* babl/babl-db.h:
+		(db_each): indentation fix.
+	* babl/babl-fish.c:
+		(babl_fish_reference_new),
+		(babl_fish_reference_process),
+		(babl_fish_process), (babl_process): restructuring of the
+		reference bablfish, approaching data and component shuffling
+		functionality.
+	* babl/babl-image.c:
+		(image_new): use malloc instead of calloc
+		(babl_image_from_linear), (babl_image): Added more information
+		to structure.
+	* babl/babl-image.h: s/_new//
+	* babl/babl-internal.h: #define BABL_MAX_COMPONENTS 32
+	* babl/babl-introspect.c:
+		(format_introspect): s/bands/components/
+	* babl/babl-model.c:
+		(model_new): use malloc instead of calloc
+	* babl/babl-pixel-format.c:
+		(format_new): use malloc instead of calloc
+		(babl_format_new): s/bands/components/
+	* babl/babl-type.c:
+		(type_new): use malloc instead of calloc
+
+
+	* babl/base/type-double.c,
+	* babl/base/type-float.c,
+	* babl/base/type-u16.c,
+	* babl/base/type-u8.c: more parameters to conversion functions, added
+	a codewriting macro for different scale / min/max factors.
+
+	* docs/index-static.html.in: reindent.
+	* tests/babl-html-dump.c: (format_html): s/bands/components/
+	* tests/srgb_to_lab_u8.c: (test): use absolute error in check.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050825</title>
+<pubDate>Thu Aug 25 00:00:00 +0000 2005</pubDate>
+<author>Thu Aug 25 00:00:00 +0000 2005</author>
+<description>
+	* tests/rgb_to_ycbcr.c,
+	* tests/rgb_to_ycbcr_to_rgb.c: fix Y' component name
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050825</title>
+<pubDate>Thu Aug 25 00:00:00 +0000 2005</pubDate>
+<author>Thu Aug 25 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h:
+		BablFormat: added .bytes_per_pixel
+		BablImage: s/bands/components/
+	* babl/babl-conversion.c: s/bands/components/
+	* babl/babl-image.c: s/bands/components/
+	* babl/babl-pixel-format.c: (format_new) check if provided pixel
+	format matches model. Calculate .bytes_per_pixel.
+	* tests/babl-html-dump.c: use format.bytes_per_pixel
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050825</title>
+<pubDate>Thu Aug 25 00:00:00 +0000 2005</pubDate>
+<author>Thu Aug 25 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-fish.c:
+		(babl_to_double),(babl_from_double): new functions.
+		(babl_fish_reference_process): made type a component
+		shuffling work for linear buffers
+	* tests/rgb_to_lab_u8.c: filled in calculated values.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050824</title>
+<pubDate>Wed Aug 24 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 24 00:00:00 +0000 2005</author>
+<description>
+	* tests/sanity.c: Added a test that fails if the internal sanity
+	checks are failing.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050824</title>
+<pubDate>Wed Aug 24 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 24 00:00:00 +0000 2005</author>
+<description>
+	* NEWS: remove draft for news release, at initial release everything
+	will be new.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050824</title>
+<pubDate>Wed Aug 24 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 24 00:00:00 +0000 2005</author>
+<description>
+	* docs/babl.css: Added code highlighting classes.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050824</title>
+<pubDate>Wed Aug 24 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 24 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.c,
+	* babl/babl-classes.h,
+	* babl/babl-component.c,
+	* babl/babl-conversion.c,
+	* babl/babl-db.h,
+	* babl/babl-fish.c,
+	* babl/babl-fish.h,
+	* babl/babl-image.c,
+	* babl/babl-image.h,
+	* babl/babl-internal.h,
+	* babl/babl-introspect.c,
+	* babl/babl-model.c,
+	* babl/babl-model.h,
+	* babl/babl-pixel-format.c,
+	* babl/babl-pixel-format.h,
+	* babl/babl-sanity.c,
+	* babl/babl-sanity.h,
+	* babl/babl-type.c,
+	* babl/babl.c,
+	* babl/babl.h,
+	* babl/base/model-cmyk.c,
+	* babl/base/model-gray.c,
+	* babl/base/model-lab.c,
+	* babl/base/model-rgb.c,
+	* babl/base/model-ycbcr.c,
+	* tests/Makefile.am,
+	* tests/babl-html-dump.c,
+	* tests/babl_class_name.c,
+	* tests/float_to_u8.c,
+	* tests/grayscale_to_rgb.c,
+	* tests/rgb_to_lab_to_rgb.c,
+	* tests/rgb_to_ycbcr.c,
+	* tests/rgb_to_ycbcr_to_rgb.c,
+	* tests/u8_to_float.c: s/PixelFormat/Format/ (etc in other cases),
+	Made BablFish be more polymorphic (accept
+	format names as well as BablFormats).
+	* babl/babl-ids.h: reorganized, some renames. 
+
+	* tests/srgb_to_lab_u8.c: new test for 8bit CIE Lab format (reference
+	data not correct yet).
+
+	* babl/base/type-u16.c,
+	* babl/base/type-u8.c: Added CIE fixed point data types.
+
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050823</title>
+<pubDate>Tue Aug 23 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 23 00:00:00 +0000 2005</author>
+<description>
+	* docs/Makefile.am: use `tempfile` to create name of temporary file
+	* docs/tools/xml_insert.sh: use `tempfile` to create name of temporary
+	file.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050823</title>
+<pubDate>Tue Aug 23 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 23 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.c,
+	* babl/babl-classes.h,
+	* babl/babl-conversion.c,
+	* babl/babl-fish.h,
+	* babl/babl-image.c,
+	* babl/babl-image.h,
+	* babl/babl-instance.h: Indentation, comments and other cleanup.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050823</title>
+<pubDate>Tue Aug 23 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 23 00:00:00 +0000 2005</author>
+<description>
+	* docs/index-static.html.in: update webdocs.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050823</title>
+<pubDate>Tue Aug 23 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 23 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-instance.h: babl_class_name is moved to babl-classes.h
+	* babl/babl-conversion.h: add a method to the conversion class for the
+	processing with registered functions.
+	* babl/babl-fish.c: Use above functions.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050823</title>
+<pubDate>Tue Aug 23 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 23 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-memory.[ch]: added additonal sanity checking (only
+	handling babl-memory allocated memory in free and realloc.) And added
+	new function babl_dup (void*), which duplicates an allocation.
+	* babl/babl-db.h: have an initial database size.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050823</title>
+<pubDate>Tue Aug 23 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 23 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.c: Update class names to be in sync with enum in
+	babl-classes.h
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050823</title>
+<pubDate>Tue Aug 23 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 23 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl.c: implement ref counting to avoid unneccesary destruction
+	of static data when multiple instances of babl is used in an
+	adressspace.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050823</title>
+<pubDate>Tue Aug 23 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 23 00:00:00 +0000 2005</author>
+<description>
+	* tests/Makefile.am:
+	* tests/babl_class_name.c: new test.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050822</title>
+<pubDate>Mon Aug 22 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 22 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: (BabPixelFormat): only a single BablModel.
+	* babl/babl-pixel-format.h,
+	* tests/babl-html-dump.c: accomodate change.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050821</title>
+<pubDate>Sun Aug 21 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 21 00:00:00 +0000 2005</author>
+<description>
+	* docs/.cvsignore: added Makefile and Makefile.in
+	* docs/graphics/.cvsignore: added Makefile and Makefile.in
+	* tests/.cvsignore: added babl_html_dump
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050821</title>
+<pubDate>Sun Aug 21 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 21 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/Makefile.am: Typo, s/babl-grays/babl-gray/
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050821</title>
+<pubDate>Sun Aug 21 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 21 00:00:00 +0000 2005</author>
+<description>
+	* docs/Makefile.am: Changed which html file is piped through w3m to
+	generate README.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050821</title>
+<pubDate>Sun Aug 21 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 21 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/model-grayscale.c: removed
+	* babl/base/model-gray.c: added
+	* babl/base/Makefile.am:
+	* docs/graphics/index.html: fixed spelling.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050821</title>
+<pubDate>Sun Aug 21 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 21 00:00:00 +0000 2005</author>
+<description>	
+	* docs/LGPL: added (hopefully as a link to ../COPYING)
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050821</title>
+<pubDate>Sun Aug 21 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 21 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: reindent, some documentation.
+	* babl/babl-fish.c: (babl_fish_reference_new): assertions for
+	arguments.
+	* babl/babl-ids.h: cleanup.
+	* babl/base/babl-base.c: (models): grayscale->gray
+	* babl/base/model-grayscale.c: (babl_base_model_gray),
+	(components), (models), (rgb_to_gray), (rgb_to_gray_2_2),
+	(gray_2_2_to_rgb), (gray_to_rgb),
+	(gray_alpha_premultiplied_to_rgba),
+	(rgba_to_gray_alpha_premultiplied), (conversions): grayscale->gray,
+	added gamma-2.2 with alpha.
+	* babl/base/model-lab.c: 
+	* babl/base/model-rgb.c: 
+	* babl/base/model-ycbcr.c: Name normalizations
+	* tests/float_to_u8.c: (test_float_to_rgb_u8):
+	* tests/grayscale_to_rgb.c: (test):
+	* tests/rgb_to_lab_to_rgb.c: (test):
+	* tests/rgb_to_ycbcr.c: (test):
+	* tests/rgb_to_ycbcr_to_rgb.c: (test):
+	* tests/u8_to_float.c: (test): Name synchronization.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050821</title>
+<pubDate>Sun Aug 21 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 21 00:00:00 +0000 2005</author>
+<description>
+	* Makefile.am,
+	* NEWS,
+	* autogen.sh,
+	* babl/Makefile.am,
+	* configure.ac,
+	* docs/.cvsignore,
+	* docs/Makefile.am,
+	* docs/babl.css,
+	* docs/graphics/.cvsignore,
+	* docs/graphics/Makefile.am,
+	* docs/graphics/babl-16x16.svg,
+	* docs/graphics/babl-48x48.svg,
+	* docs/graphics/babl-a4poster.svg,
+	* docs/graphics/index.html,
+	* README.in,
+	* docs/index-static.html.in,
+	* docs/tools/xml_insert.sh,
+	* tests/babl-html-dump.c, 
+	* tests/Makefile.am: Added HTML based documentation as part of build
+	process.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050818</title>
+<pubDate>Thu Aug 18 00:00:00 +0000 2005</pubDate>
+<author>Thu Aug 18 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/util.h: added new and hopefully correct gamma correction
+	and uncorrection functions.
+	* babl/base/model-grayscale.c: (components),
+	(rgb_to_grayscale_2_2), (grayscale_2_2_to_rgb): register
+	"luminance-gamma2.2" component, and use new gamma functions.
+	* babl/base/model-rgb.c: (g3_gamma_2_2), (g3_inv_gamma_2_2): use new
+	gamma functions.
+	* babl/base/model-ycbcr.c: (components), (models), (rgb_to_ycbcr),
+	(ycbcr_to_rgb): use gamma corrected luminance, and correct gamma. (pixel_formats):
+	uncomment until a new data type exist with headroom/footrom in 8bit
+	for proper rescaling of 0..255 to 16..235 for luma and  +/-112 range
+	with offset of 128 for chroma (16 thorugh 240 inclusive).
+	* babl/base/rgb-constants.h: more digits as well as some #if 0' dead
+	code for reference.
+	* tests/rgb_to_lab_to_rgb.c: add more colors to the test buffer.
+	* tests/rgb_to_ycbcr.c: set TOLERANCE to a more meaningful value,
+	updated the ycbcr version of 50% gray.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050817</title>
+<pubDate>Wed Aug 17 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 17 00:00:00 +0000 2005</author>
+<description>
+	* Makefile-mini
+	* babl/Makefile-mini: removed
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050817</title>
+<pubDate>Wed Aug 17 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 17 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-internal.h: (type_name##_id) babl_log upon failed
+	lookups.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050817</title>
+<pubDate>Wed Aug 17 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 17 00:00:00 +0000 2005</author>
+<description>
+	* configure.ac: added babl/Makefile to AC_CONFIG_FILES().
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 050817</title>
+<pubDate>Wed Aug 17 00:00:00 +0000 2005</pubDate>
+<author>Wed Aug 17 00:00:00 +0000 2005</author>
+<description>
+	* README.in: spelling.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/pixel-formats.c: removed
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-fish.c: reindentation, no naming of fishes.
+	* babl/babl-ids.h: reordering, added YCBCRA, LAB and LAB_ALPHA
+	* babl/base/Makefile.am: added cpercep.[ch] model-lab.c and
+	model-ycbcr.c
+	* babl/base/cpercep.[ch]: *NEW*
+	* babl/base/model-lab.c: *NEW* CIE Lab color model, backed by a slightly
+	modified version of cpercep from gimp sources (no gamma correction and
+	normalized RGB values)
+	* babl/base/model-ycbcr: made ycbcr work, numbers still need to be
+	verified.
+	* babl/base/babl-base.c: initialize CIE Lab and YCbCr
+	* babl/base/model-cmyk.c: slight changes, it still doesn't pass
+	rgb->cmyk->rgb testing so not included yet.
+	* babl/base/model-rgb.c: make rgba-double use BABL_DOUBLE instead of
+	BABL_FLOAT
+	* babl/base/type-u16: fix conversion to double.
+	* tests/Makefile.am: added rgb_to_lab_to_rgb , rgb_to_ycbcr_to_rgb and
+	rgb_to_ycbcr
+	* tests/rgb_to_lab_to_rgb.c
+	* tests/rgb_to_ycbcr_to_rgb.c
+	* tests/rgb_to_ycbcr.c: *NEW* tests
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-component.c: (component_new, each_babl_component_destroy) allocate
+	larger chunk, (babl_component_new) removed Babl* switch, 
+	* babl/babl-conversion.c: (conversion_new): removed superflous runtime
+	warnings.
+	* babl/babl-fish.c: (babl_fish_process): reindent, added assert for
+	instance.
+	* babl/babl-image.c: (image_new, babl_image_new): reindent,
+	, (babl_image_new_from_linear): added asserts for parameters.
+	* babl/babl-model.c: (each_babl_model_destroy, model_new): allocate
+	larger chunk.
+	* babl/babl-pixel-format.c: (each_babl_pixel_format_destroy,
+	pixel_format_new): allocate larger chunk.
+	* babl/babl-sanity.c: (babl_conversion_source): removed FIXME comment
+	used for helper function just used to make code more readable.
+	* babl/babl-type.c: (each_babl_type_destroy, type_new): allocate
+	larger chunk.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-classes.h: (BablSampling) added static name.
+	* babl/babl-sampling.c: (babl_sampling_init): initialize names
+	* babl/babl-introspect.c: (pixel_format_introspect): display sampling
+	name as well.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-component.[ch]
+	* babl/babl-conversion.[ch]
+	* babl/babl-fish.[ch]
+	* babl/babl-image.[ch]
+	* babl/babl-instance.h
+	* babl/babl-internal.h
+	* babl/babl-introspect.c
+	* babl/babl-model.[ch] 
+	* babl/babl-pixel-format.[ch]
+	* babl/babl-sampling.[ch] 
+	* babl/babl-sanity.c 
+	* babl/babl-type.[ch] 
+	* tests/float_to_u8.c 
+	* tests/grayscale_to_rgb.c
+	* tests/rgb_to_lab_to_rgb.c
+	* tests/rgb_to_ycbcr.c
+	* tests/rgb_to_ycbcr_to_rgb.c
+	* tests/u8_to_float.c: Changed to use polymorph Babl * union's instead
+	of class specific structs in most cases, and in all cases for the
+	public API.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>	
+	* AUTHORS: Fixed spelling of Sven Neumann.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* tests/.cvsignore: added the test binaries.
+	* .cvsignore: added *.tar.gz and *.tar.bz2
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* AUTHORS: added Sven Neuman.
+
+</description>
+</item>
+<item>
+<title>Sven Neumann, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* configure.ac: add -Wall to CFLAGS if gcc is being used. Use
+	AC_CONFIG_FILES() to define the files that need to be generated.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/mode-ycbcr.c: use coefficients from Charles Poyntons color
+	FAQ.
+	* tests/rgb_to_ycbcr_to_rgb.c: changed TOLERANCE to 0.00000000000001
+	* tests/rgb_to_ycbcr.c: changed TOLERANCE as well as reference values.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050816</title>
+<pubDate>Tue Aug 16 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 16 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-model.c: (model_new)
+	* babl/babl-pixel-format.c: (pixel_format_new): reordered allocation
+	to place string (to avoid placing pointers in non aligned adresses).
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050815</title>
+<pubDate>Mon Aug 15 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 15 00:00:00 +0000 2005</author>
+<description>
+	* babl/base/model-cmyk.c
+	* babl/base/model-ycbcr.c: added stubs
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050815</title>
+<pubDate>Mon Aug 15 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 15 00:00:00 +0000 2005</author>
+<description>
+	* configure.ac: add rule to generate babl/base/Makefile
+	* babl/base: new directory
+	* babl/base/Makefile.am
+	* babl/base/babl-base.[ch]
+	* babl/base/type-double.c
+	* babl/base/type-float.c
+	* babl/base/type-u8.c
+	* babl/base/type-u16.c
+	* babl/base/model-rgb.c
+	* babl/base/model-grayscale.c
+	* babl/base/.cvsignore: added code removed in previous commit, in
+	a more oragnised manner.
+	
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050815</title>
+<pubDate>Mon Aug 15 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 15 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-base/babl-base.[ch]
+	* babl/babl-base/babl-base-components.c
+	* babl/babl-base/babl-base-conversions.c
+	* babl/babl-base/babl-base-conversions-model.c
+	* babl/babl-base/babl-base-conversions-type.c
+	* babl/babl-base/babl-base-models.c
+	* babl/babl-base/babl-base-pixel-formats.c
+	* babl/babl-base/babl-base-types.c
+	* babl/babl-base/Makefile.am
+	* babl/babl-base/: removed
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050815</title>
+<pubDate>Mon Aug 15 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 15 00:00:00 +0000 2005</author>
+<description>	
+	* babl/babl-classes.h: BablPixelFormat: changed order of attributes to
+	match BablModel. BablFish: removed **from and **to lists, since they
+	were added at a wrong offset from the instance start anyways.
+	* babl/babl-fish.c: Made the reference fish work for linear buffers
+	with constant datatype
+	* babl/babl-ids.h: added BABL_RGBA_DOUBLE
+	* babl/babl-image.[ch]: made BablImage be allocated in a single chunk,
+	added babl_image_new_from_linear()
+	* babl/babl-type.c: added assertion about bits%8==0
+	* babl/babl-base/babl-base-conversions-model.c: made BABL_PLANAR_SANITY accept
+	single band buffers. added conversions for premultiplied grayscale.
+	* babl/babl-base/babl-base-pixel-formats.c: added "rgba-double"
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050815</title>
+<pubDate>Mon Aug 15 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 15 00:00:00 +0000 2005</author>
+<description>
+	* Makefile-mini: compile both the nop and introspect programs by
+	default.
+	* babl/Makefile-mini: link with standard math library
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050814</title>
+<pubDate>Sun Aug 14 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 14 00:00:00 +0000 2005</author>
+<description>	
+	* tests/float_to_u8.c
+	* tests/u8_to_float.c
+	* tests/grayscale_to_rgb.c: new files
+	* tests/Makefile.am: including preceding tests
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050814</title>
+<pubDate>Sun Aug 14 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 14 00:00:00 +0000 2005</author>
+<description>	
+	* babl/Makefile.am: added babl-instance.h, removed wilcard from
+	EXTRA_DIST
+	* babl/babl-classes.h: added BablModel **model to BablPixelFormat,
+	renamed BablReferenceFish to BablFishReference. Moved some logic out
+	to babl-instance.h.
+	* babl/babl-instance.h: new file.
+	* babl/babl-db.h: include babl-instance instead of babl-classes to
+	reduce amount of headers included by headers.
+	* babl/babl-fish.c: Added code to make it work for type conversions
+	* babl/babl-fish.h: Added babl_fish (source, destination) prototype
+	* babl/babl-internal.h: reindentation, include babl-conversion.h
+	* babl/babl-pixel-format.c: add model for each band
+	* babl/babl.c: destroy all fishes at finish
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050814</title>
+<pubDate>Sun Aug 14 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 14 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-base/Makefile.am: LDADD = -lm
+	* babl/babl-base/babl-base-conversions-model.c: reindentation, added
+	gamma functions.
+	* babl/babl-base/babl-base-conversions-type.c: corrected reference
+	versions of u8, u16 and float.
+	* babl/babl-base/babl-base-models.c: ifdef'ed out some of the more
+	arcane models.
+	* babl/babl-base/babl-base-pixel-formats.c: added the corresponding
+	model used to all pixel formats.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-conversion.c: indentation cleanup.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* autogen.sh: make autogen also run make
+	* babl/babl-classes.h: added define macro usable for sampling and
+	fish.
+	* babl/babl-fish.[ch]: cleanup of stub class
+	* babl/babl-sampling.h: simplification of header using a define.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/Makefile-mini: CFLAGS = -Werror -Wall ....
+	* babl/babl-classes.[ch]: BablPixelFormat removed unused pointers
+	to lists of conversions. Added BablReferenceFish. Renamed kind/
+	instance.type to class_type/instance.class_type. Removed mostly
+	unused macro's and expanded them in source
+
+	* babl/babl-component.c
+	* babl/babl-conversion.c
+	* babl/babl-db.h
+	* babl/babl-fish.c
+	* babl/babl-image.c
+	* babl/babl-introspect.c
+	* babl/babl-model.c
+	* babl/babl-pixel-format.c
+	* babl/babl-sampling.c
+
+	* babl/babl-type.c: removed switch statement since all enums are
+	handled equally.
+
+	* babl/tests/Makefile.am: added nop and introspect to TESTS, not
+	actual tests yet, but at least a segfault will cause make check to
+	fail.
+	
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-ids: added BABL_LUMINANCE_GAMMA_2_2,
+	BABL_LUMINANCE_MUL_ALPHA, BABL_GRAYSCALE_GAMMA_2_2,
+	BABL_GRAYSCALE_ALPHA_PREMULTIPLIED.
+	* babl/babl-base/babl-base-components: added "luminance*alpha"
+	* babl/babl-base/babl-base-components.conversions-model.c: Sprinked
+	asserts, added generic premultiplification operation.
+	* babl/babl-base-models.c: added gamma corrected and premultiplied
+	variations of grayscale.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-internal.h: issue a babl_log when the named object is not
+	found during string based lookup.
+	* babl/babl-pixel-format.c: added BABL_IMAGE to var_args switch.
+	* babl/babl-classes.c: set babl_hmpf_on_name_lookups initial value to
+	0, to make it hmpf only in babl-base.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	- Renamed class to model.
+	- Auto toolification
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/babl-sampling.h: removed reference to non existant function
+	babl_sampling_introspect ().
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/Makefile.am
+	* babl/babl-image.c
+	* babl/babl-image.h
+	* babl/babl-classes.h: Added BablImage class.
+
+	* babl/babl-component.c
+	* babl/babl-conversion.c
+	* babl/babl-model.c: Handle BABL_IMAGE in switches.
+
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* .cvsignore: added INSTALL and README.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* depcomp
+	* install-sh
+	* missing: erroniously included in first import.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	Imported into GNOME CVS.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	- seperate babl-base into separate subdir.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050809</title>
+<pubDate>Tue Aug 09 00:00:00 +0000 2005</pubDate>
+<author>Tue Aug 09 00:00:00 +0000 2005</author>
+<description>
+	* babl/Makefile-mini: added babl-image.o.
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050808</title>
+<pubDate>Mon Aug 08 00:00:00 +0000 2005</pubDate>
+<author>Mon Aug 08 00:00:00 +0000 2005</author>
+<description>
+	- Completed data model
+	- Added sanity checker
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050807</title>
+<pubDate>Sun Aug 07 00:00:00 +0000 2005</pubDate>
+<author>Sun Aug 07 00:00:00 +0000 2005</author>
+<description>
+	- Introspection
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050805</title>
+<pubDate>Fri Aug 05 00:00:00 +0000 2005</pubDate>
+<author>Fri Aug 05 00:00:00 +0000 2005</author>
+<description>
+	- Initial ChangeLog
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050731</title>
+<pubDate>Sun Jul 31 00:00:00 +0000 2005</pubDate>
+<author>Sun Jul 31 00:00:00 +0000 2005</author>
+<description>
+	- Type system
+
+</description>
+</item>
+<item>
+<title>Øyvind Kolås, 050729</title>
+<pubDate>Fri Jul 29 00:00:00 +0000 2005</pubDate>
+<author>Fri Jul 29 00:00:00 +0000 2005</author>
+<description>
+	- Babl's inception in the 'Chaos Village' at WhatTheHack.
+
+</description>
+</item>
+</channel>
+</rss>
Index: extensions/CIE-Lab.c
===================================================================
--- extensions/CIE-Lab.c.orig
+++ extensions/CIE-Lab.c
@@ -394,8 +394,8 @@ convert_u8_double_scaled (double        
 
 /* source ICC.1:2004-10 */
 
-MAKE_CONVERSIONS (u8_l, 0.0, 100.0, 0x00, 0xff);
-MAKE_CONVERSIONS (u8_ab, -128.0, 127.0, 0x00, 0xff);
+MAKE_CONVERSIONS (u8_l, 0.0, 100.0, 0x00, 0xff)
+MAKE_CONVERSIONS (u8_ab, -128.0, 127.0, 0x00, 0xff)
 
 #undef MAKE_CONVERSIONS
 
@@ -531,8 +531,8 @@ convert_u16_double_scaled (double       
                                       src, dst, src_pitch, dst_pitch, n); \
   }
 
-MAKE_CONVERSIONS (u16_l, 0.0, 100.0, 0x00, 0xffff);
-MAKE_CONVERSIONS (u16_ab, -128.0, 127.0, 0x00, 0xffff);
+MAKE_CONVERSIONS (u16_l, 0.0, 100.0, 0x00, 0xffff)
+MAKE_CONVERSIONS (u16_ab, -128.0, 127.0, 0x00, 0xffff)
 
 #undef MAKE_CONVERSIONS
 
@@ -670,9 +670,6 @@ types (void)
 #endif
 
 
-/* #include "config.h" */
-#include <math.h>
-
 #ifndef __GLIBC__
 /* cbrt() is a GNU extension */
 #define cbrt(x)    (pow (x, 1.0 / 3.0))
Index: babl/babl-internal.h
===================================================================
--- babl/babl-internal.h.orig
+++ babl/babl-internal.h
@@ -158,19 +158,39 @@ real_babl_log (const char *file,
   hack_hack ();
 }
 
-#define babl_log(args...)                               \
-  real_babl_log(__FILE__, __LINE__, __func__, args)
-
-#define babl_fatal(args...) do{                         \
-  real_babl_log(__FILE__, __LINE__, __func__, args);\
-  babl_die();}                                          \
+#define babl_log1(a1)						\
+  real_babl_log(__FILE__, __LINE__, __func__, a1)
+#define babl_log2(a1,a2)					\
+  real_babl_log(__FILE__, __LINE__, __func__, a1, a2)
+#define babl_log3(a1,a2,a3)					\
+  real_babl_log(__FILE__, __LINE__, __func__, a1, a2, a3)
+#define babl_log4(a1,a2,a3,a4)					\
+  real_babl_log(__FILE__, __LINE__, __func__, a1, a2, a3, a4)
+#define babl_log5(a1,a2,a3,a4,a5)				\
+  real_babl_log(__FILE__, __LINE__, __func__, a1, a2, a3, a4, a5)
+#define babl_log6(a1,a2,a3,a4,a5,a6)				\
+  real_babl_log(__FILE__, __LINE__, __func__, a1, a2, a3, a4, a5, a6)
+#define babl_log8(a1,a2,a3,a4,a5,a6,a7,a8)				\
+  real_babl_log(__FILE__, __LINE__, __func__, a1, a2, a3, a4, a5, a6, a7, a8)
+
+#define babl_fatal1(arg) do{					\
+  real_babl_log(__FILE__, __LINE__, __func__, arg);		\
+  babl_die();}							\
+while(0)
+#define babl_fatal2(arg1,arg2) do{				\
+  real_babl_log(__FILE__, __LINE__, __func__, arg1, arg2);	\
+  babl_die();}							\
+while(0)
+#define babl_fatal3(arg1, arg2, arg3) do{			\
+  real_babl_log(__FILE__, __LINE__, __func__, arg1, arg2, arg3);\
+  babl_die();}							\
 while(0)
 
 
 #define babl_assert(expr) do{ \
   if(!(expr))                 \
     {                         \
-      babl_fatal("Eeeeek");   \
+      real_babl_log(__FILE__, __LINE__, __func__, "Eeeeek");   \
       assert(expr);           \
     }                         \
 }while(0)
@@ -246,13 +266,13 @@ babl_##klass (const char *name)         
                                                               \
   if (babl_hmpf_on_name_lookups)                              \
     {                                                         \
-      babl_log ("%s(\"%s\"): hmpf!", __func__, name);         \
+      babl_log3 ("%s(\"%s\"): hmpf!", __func__, name);         \
     }                                                         \
   babl = babl_db_exist_by_name (db, name);                    \
                                                               \
   if (!babl)                                                  \
     {                                                         \
-      babl_fatal ("%s(\"%s\"): not found", __func__, name);   \
+      babl_fatal3 ("%s(\"%s\"): not found", __func__, name);   \
     }                                                         \
   return babl;                                                \
 }                                                             \
@@ -264,7 +284,7 @@ babl_##klass##_id (int id)              
   babl = babl_db_exist_by_id (db, id);                        \
   if (!babl)                                                  \
     {                                                         \
-      babl_fatal ("%s(%i): not found", __func__, id);         \
+      babl_fatal3 ("%s(%i): not found", __func__, id);         \
     }                                                         \
   return babl;                                                \
 }
Index: babl/babl-component.c
===================================================================
--- babl/babl-component.c.orig
+++ babl/babl-component.c
@@ -76,7 +76,7 @@ babl_component_new (void *first_arg,
         {
 #ifdef BABL_LOG
           Babl *babl = (Babl *) arg;
-          babl_log ("%s unexpected", babl_class_name (babl->class_type));
+          babl_log2 ("%s unexpected", babl_class_name (babl->class_type));
 #endif
         }
       /* if we didn't point to a babl, we assume arguments to be strings */
@@ -103,7 +103,7 @@ babl_component_new (void *first_arg,
 
       else
         {
-          babl_fatal ("unhandled argument '%s' for format '%s'", arg, first_arg);
+          babl_fatal3 ("unhandled argument '%s' for format '%s'", arg, first_arg);
         }
     }
 
Index: babl/babl-conversion.c
===================================================================
--- babl/babl-conversion.c.orig
+++ babl/babl-conversion.c
@@ -74,12 +74,12 @@ conversion_new (const char    *name,
                        buffers.
                      */
           {
-            babl_fatal ("linear conversions not supported for %s",
+            babl_fatal2 ("linear conversions not supported for %s",
                         babl_class_name (source->class_type));
           }
         else if (planar)
           {
-            babl_fatal ("planar conversions not supported for %s",
+            babl_fatal2 ("planar conversions not supported for %s",
                         babl_class_name (source->class_type));
           }
         break;
@@ -87,7 +87,7 @@ conversion_new (const char    *name,
       case BABL_MODEL:
         if (plane)
           {
-            babl_fatal ("plane conversions not supported for %s",
+            babl_fatal2 ("plane conversions not supported for %s",
                         babl_class_name (source->class_type));
           }
         break;
@@ -96,7 +96,7 @@ conversion_new (const char    *name,
         break;
 
       default:
-        babl_fatal ("%s unexpected", babl_class_name (babl->class_type));
+        babl_fatal2 ("%s unexpected", babl_class_name (babl->class_type));
         break;
     }
 
@@ -130,7 +130,7 @@ conversion_new (const char    *name,
         }
       else
         {
-          babl_fatal ("neither source nor destination model is RGBA (requirement might be temporary)");
+          babl_fatal1 ("neither source nor destination model is RGBA (requirement might be temporary)");
         }
       babl_conversion_new (
         src_format,
@@ -211,7 +211,7 @@ babl_conversion_new (void *first_arg,
         {
           if (got_func++)
             {
-              babl_fatal ("already got a conversion func\n");
+              babl_fatal1 ("already got a conversion func\n");
             }
           linear = va_arg (varg, BablFuncLinear);
         }
@@ -220,7 +220,7 @@ babl_conversion_new (void *first_arg,
         {
           if (got_func++)
             {
-              babl_fatal ("already got a conversion func\n");
+              babl_fatal1 ("already got a conversion func\n");
             }
           plane = va_arg (varg, BablFuncPlane);
         }
@@ -229,14 +229,14 @@ babl_conversion_new (void *first_arg,
         {
           if (got_func++)
             {
-              babl_fatal ("already got a conversion func\n");
+              babl_fatal1 ("already got a conversion func\n");
             }
           planar = va_arg (varg, BablFuncPlanar);
         }
 
       else
         {
-          babl_fatal ("unhandled argument '%s'", arg);
+          babl_fatal2 ("unhandled argument '%s'", arg);
         }
 
       arg = va_arg (varg, char *);
@@ -405,7 +405,7 @@ babl_conversion_process (Babl *babl,
         break;
 
       default:
-        babl_log ("args=(%s, %p, %p, %li) unhandled conversion type: %s",
+        babl_log6 ("args=(%s, %p, %p, %li) unhandled conversion type: %s",
                   conversion->instance.name, source, destination, n,
                   babl_class_name (conversion->instance.class_type));
         return 0;
Index: babl/babl-extension.c
===================================================================
--- babl/babl-extension.c.orig
+++ babl/babl-extension.c
@@ -135,8 +135,31 @@ destroy_hook (void)
 #include <unistd.h>
 
 #ifdef HAVE_DLFCN_H
+
 #include <dlfcn.h>
 #define HLIB    void *
+
+#elif HAVE_DL_H
+
+#include <dl.h>
+#include <errno.h>
+#if !defined(DYNAMIC_PATH)
+#  define DYNAMIC_PATH          0
+#endif
+#if !defined(BIND_RESTRICTED)
+#  define BIND_RESTRICTED       0
+#endif
+#define RTLD_NOW		(BIND_IMMEDIATE|BIND_NONFATAL|DYNAMIC_PATH)
+#define HLIB	shl_t
+#define dlopen(path, flags)	shl_load (path, flags, 0L)
+#define dlclose(handle)		shl_unload (handle)
+#define dlerror()		strerror (errno)
+static void *dlsym (HLIB handle, const char *name) {
+  void *address = 0;
+  shl_findsym(&handle, name, TYPE_UNDEFINED, &address);
+  return address;
+}
+
 #endif
 
 #ifndef RTLD_NOW
@@ -178,13 +201,13 @@ babl_extension_load (const char *path)
   dl_handle = dlopen (path, RTLD_NOW);
   if (!dl_handle)
     {
-      babl_log ("dlopen() failed:\n\t%s", dlerror ());
+      babl_log2 ("dlopen() failed:\n\t%s", dlerror ());
       return load_failed (babl);
     }
   init = dlsym (dl_handle, "init");
   if (!init)
     {
-      babl_log ("\n\tint babl_extension_init() function not found in extension '%s'", path);
+      babl_log2 ("\n\tint babl_extension_init() function not found in extension '%s'", path);
       dlclose (dl_handle);
       return load_failed (babl);
     }
@@ -197,7 +220,7 @@ babl_extension_load (const char *path)
   babl_set_extender (babl);
   if (init ())
     {
-      babl_log ("babl_extension_init() in extension '%s' failed (return!=0)", path);
+      babl_log2 ("babl_extension_init() in extension '%s' failed (return!=0)", path);
       dlclose (dl_handle);
       return load_failed (babl);
     }
Index: babl/babl-fish-reference.c
===================================================================
--- babl/babl-fish-reference.c.orig
+++ babl/babl-fish-reference.c
@@ -25,7 +25,7 @@ assert_conversion_find (void *source,
   Babl *ret = babl_conversion_find (source, destination);
 
   if (!ret)
-    babl_fatal ("failed, aborting");
+    babl_fatal1 ("failed, aborting");
   return ret;
 }
 
@@ -211,7 +211,7 @@ process_same_model (Babl      *babl,
   if (BABL_IS_BABL (source) ||
       BABL_IS_BABL (destination))
     {
-      babl_log ("args=(%p, %p, %p, %li): trying to handle BablImage (unconfirmed code)",
+      babl_log5 ("args=(%p, %p, %p, %li): trying to handle BablImage (unconfirmed code)",
                 babl_fish, source, destination, n);
     }
 
@@ -258,7 +258,7 @@ babl_fish_reference_process (Babl      *
   if (BABL_IS_BABL (source) ||
       BABL_IS_BABL (destination))
     {
-      babl_log ("args=(%p, %p, %p, %li): trying to handle BablImage (unconfirmed code)",
+      babl_log5 ("args=(%p, %p, %p, %li): trying to handle BablImage (unconfirmed code)",
                 babl_fish, source, destination, n);
     }
 #endif
@@ -304,7 +304,7 @@ babl_fish_reference_process (Babl      *
           source_double_buf, rgba_double_buf,
           n);
       }
-    else babl_fatal ("oops");
+    else babl_fatal1 ("oops");
   }
 
   {
@@ -326,7 +326,7 @@ babl_fish_reference_process (Babl      *
           rgba_double_buf, destination_double_buf,
           n);
       }
-    else babl_fatal ("oops");
+    else babl_fatal1 ("oops");
   }
 
   convert_from_double (
Index: babl/babl-fish.c
===================================================================
--- babl/babl-fish.c.orig
+++ babl/babl-fish.c
@@ -169,7 +169,7 @@ babl_fish (const void *source,
 
   if (!source_format)
     {
-      babl_log ("args=(%p, %p) source format invalid", source, destination);
+      babl_log3 ("args=(%p, %p) source format invalid", source, destination);
       return NULL;
     }
 
@@ -181,7 +181,7 @@ babl_fish (const void *source,
 
   if (!destination_format)
     {
-      babl_log ("args=(%p, %p) destination format invalid", source, destination);
+      babl_log3 ("args=(%p, %p) destination format invalid", source, destination);
       return NULL;
     }
 
@@ -192,8 +192,11 @@ babl_fish (const void *source,
                             (Babl *) NULL,
                             (Babl *) NULL,
                             0,
-                            source_format,
-                            destination_format};
+                            (Babl *) NULL,
+                            (Babl *) NULL};
+
+    ffish.source = source_format;
+    ffish.destination = destination_format;
 
     id_htable = (babl_fish_db ())->id_hash;
     hashval = babl_hash_by_int (id_htable, babl_fish_get_id (source_format, destination_format));
@@ -315,7 +318,7 @@ babl_fish_process (Babl *babl,
           }
         break;
       default:
-        babl_log ("NYI");
+        babl_log1 ("NYI");
         ret = -1;
         break;
     }
Index: babl/babl-format.c
===================================================================
--- babl/babl-format.c.orig
+++ babl/babl-format.c
@@ -61,7 +61,7 @@ format_new (const char     *name,
       if (!component_found)
         {
           component_found = 0;
-          babl_fatal ("matching source component for %s in model %s not found",
+          babl_fatal3 ("matching source component for %s in model %s not found",
                       model->component[i]->instance.name, model->instance.name);
         }
     }
@@ -217,7 +217,7 @@ babl_format_new (void *first_arg,
               case BABL_COMPONENT:
                 if (!model)
                   {
-                    babl_fatal ("no model specified before component %s",
+                    babl_fatal2 ("no model specified before component %s",
                                 babl->instance.name);
                   }
                 component [components] = (BablComponent *) babl;
@@ -227,7 +227,7 @@ babl_format_new (void *first_arg,
 
                 if (components >= BABL_MAX_COMPONENTS)
                   {
-                    babl_fatal ("maximum number of components (%i) exceeded for %s",
+                    babl_fatal3 ("maximum number of components (%i) exceeded for %s",
                                 BABL_MAX_COMPONENTS, name);
                   }
                 break;
@@ -239,7 +239,7 @@ babl_format_new (void *first_arg,
               case BABL_MODEL:
                 if (model)
                   {
-                    babl_log ("args=(%s): model %s already requested",
+                    babl_log3 ("args=(%s): model %s already requested",
                               babl->instance.name, model->instance.name);
                   }
                 model = (BablModel *) arg;
@@ -257,7 +257,7 @@ babl_format_new (void *first_arg,
               case BABL_FISH_PATH:
               case BABL_IMAGE:
               case BABL_EXTENSION:
-                babl_log ("%s unexpected",
+                babl_log2 ("%s unexpected",
                           babl_class_name (babl->class_type));
                 break;
 
@@ -288,7 +288,7 @@ babl_format_new (void *first_arg,
 
       else
         {
-          babl_fatal ("unhandled argument '%s' for format '%s'", arg, name);
+          babl_fatal3 ("unhandled argument '%s' for format '%s'", arg, name);
         }
 
       arg = va_arg (varg, char *);
Index: babl/babl-image.c
===================================================================
--- babl/babl-image.c.orig
+++ babl/babl-image.c
@@ -144,7 +144,7 @@ babl_image_from_linear (char *buffer,
         break;
 
       default:
-        babl_log ("Eeeek!");
+        babl_log1 ("Eeeek!");
         break;
     }
 
@@ -191,7 +191,7 @@ babl_image (void *first,
             }
           else
             {
-              babl_log ("%s unexpected", babl_class_name (babl->class_type));
+              babl_log2 ("%s unexpected", babl_class_name (babl->class_type));
               va_end (varg);
               return NULL;
             }
@@ -212,7 +212,7 @@ babl_image (void *first,
 
       if (components >= BABL_MAX_COMPONENTS)
         {
-          babl_log ("maximum number of components (%i) exceeded", BABL_MAX_COMPONENTS);
+          babl_log2 ("maximum number of components (%i) exceeded", BABL_MAX_COMPONENTS);
         }
 
       arg = va_arg (varg, char *);
Index: babl/babl-internal.c
===================================================================
--- babl/babl-internal.c.orig
+++ babl/babl-internal.c
@@ -114,7 +114,7 @@ babl_process (Babl *babl,
       return ret;
     }
 
-  babl_fatal ("eek");
+  babl_fatal1 ("eek");
   return -1;
 }
 
Index: babl/babl-introspect.c
===================================================================
--- babl/babl-introspect.c.orig
+++ babl/babl-introspect.c
@@ -44,34 +44,34 @@ babl_introspect (Babl *babl)
       each_introspect (babl, NULL);
       return;
     }
-  babl_log ("Introspection report");
-  babl_log ("====================================================");
+  babl_log1 ("Introspection report");
+  babl_log1 ("====================================================");
 
-  babl_log ("");
-  babl_log ("Data Types:");
+  babl_log1 ("");
+  babl_log1 ("Data Types:");
   babl_type_each (each_introspect, NULL);
-  babl_log ("");
-  babl_log ("Sampling (chroma subsampling) factors:");
+  babl_log1 ("");
+  babl_log1 ("Sampling (chroma subsampling) factors:");
   babl_sampling_each (each_introspect, NULL);
-  babl_log ("");
-  babl_log ("Components:");
+  babl_log1 ("");
+  babl_log1 ("Components:");
   babl_component_each (each_introspect, NULL);
-  babl_log ("");
-  babl_log ("Models (of components):");
+  babl_log1 ("");
+  babl_log1 ("Models (of components):");
   babl_model_each (each_introspect, NULL);
-  babl_log ("");
-  babl_log ("Pixel formats:");
+  babl_log1 ("");
+  babl_log1 ("Pixel formats:");
   babl_format_each (each_introspect, NULL);
-  babl_log ("");
-  babl_log ("conversions:");
+  babl_log1 ("");
+  babl_log1 ("conversions:");
   babl_conversion_each (each_introspect, NULL);
-  babl_log ("");
-  babl_log ("extensions:");
+  babl_log1 ("");
+  babl_log1 ("extensions:");
   babl_extension_each (each_introspect, NULL);
-  babl_log ("");
-  babl_log ("fishes");
+  babl_log1 ("");
+  babl_log1 ("fishes");
   babl_fish_each (each_introspect, NULL);
-  babl_log ("");
+  babl_log1 ("");
 
   babl_set_extender (extender_backup);
 #endif
@@ -88,11 +88,11 @@ item_conversions_introspect (Babl *babl)
   list = babl->type.from_list;
   if (list)
     {
-      babl_log ("\t\tconversions from %s: %i",
+      babl_log3 ("\t\tconversions from %s: %i",
                 babl->instance.name, babl_list_size (list));
 
       for (i = 0; i < babl_list_size (list); i++)
-        babl_log ("\t\t\t'%s'", BABL (list->items[i])->instance.name);
+        babl_log2 ("\t\t\t'%s'", BABL (list->items[i])->instance.name);
    }
 }
 
@@ -101,11 +101,11 @@ model_introspect (Babl *babl)
 {
   int i;
 
-  babl_log ("\t\tcomponents=%i", babl->model.components);
+  babl_log2 ("\t\tcomponents=%i", babl->model.components);
 
   for (i = 0; i < babl->model.components; i++)
     {
-      babl_log ("\t\tindex[%i] = \"%s\"", i,
+      babl_log3 ("\t\tindex[%i] = \"%s\"", i,
                 BABL (babl->model.component[i])->instance.name);
     }
 }
@@ -113,16 +113,16 @@ model_introspect (Babl *babl)
 static void
 type_introspect (Babl *babl)
 {
-  babl_log ("\t\tbits=%i", babl->type.bits);
+  babl_log2 ("\t\tbits=%i", babl->type.bits);
 }
 
 
 static void
 sampling_introspect (Babl *babl)
 {
-  babl_log ("\t\thorizontal = %i",
+  babl_log2 ("\t\thorizontal = %i",
             babl->sampling.horizontal);
-  babl_log ("\t\tvertical   = %i",
+  babl_log2 ("\t\tvertical   = %i",
             babl->sampling.vertical);
 }
 
@@ -132,13 +132,13 @@ format_introspect (Babl *babl)
 {
   int i;
 
-  babl_log ("\t\tmodel=\"%s\"", babl->format.model->instance.name);
-  babl_log ("\t\tplanar=%i", babl->format.planar);
-  babl_log ("\t\tcomponents=%i", babl->format.components);
+  babl_log2 ("\t\tmodel=\"%s\"", babl->format.model->instance.name);
+  babl_log2 ("\t\tplanar=%i", babl->format.planar);
+  babl_log2 ("\t\tcomponents=%i", babl->format.components);
 
   for (i = 0; i < babl->format.components; i++)
     {
-      babl_log ("\t\tband[%i] type=\"%s\" sampling=\"%s\" component=\"%s\"",
+      babl_log5 ("\t\tband[%i] type=\"%s\" sampling=\"%s\" component=\"%s\"",
                 i, babl->format.type[i]->instance.name,
                 babl->format.sampling[i]->instance.name,
                 babl->format.component[i]->instance.name);
@@ -148,18 +148,18 @@ format_introspect (Babl *babl)
 static void
 conversion_introspect (Babl *babl)
 {
-  babl_log ("\t\tprocessings:%i pixels:%li",
+  babl_log3 ("\t\tprocessings:%i pixels:%li",
             babl->conversion.processings, babl->conversion.pixels);
   if (BABL (babl->conversion.source)->class_type == BABL_FORMAT)
     {
-      babl_log ("\t\terror: %f", babl_conversion_error (&babl->conversion));
+      babl_log2 ("\t\terror: %f", babl_conversion_error (&babl->conversion));
     }
 }
 
 static void
 fish_introspect (Babl *babl)
 {
-  babl_log ("\t\tprocessings:%i pixels:%li",
+  babl_log3 ("\t\tprocessings:%i pixels:%li",
             babl->fish.processings, babl->fish.pixels);
 }
 
@@ -167,7 +167,7 @@ static int
 each_introspect (Babl *babl,
                  void *user_data)
 {
-  babl_log ("\t\"%s\"\t%i\t%s",
+  babl_log4 ("\t\"%s\"\t%i\t%s",
             babl->instance.name,
             babl->instance.id,
             babl_class_name (babl->class_type));
Index: babl/babl-memory.c
===================================================================
--- babl/babl-memory.c.orig
+++ babl/babl-memory.c
@@ -83,7 +83,7 @@ functions_sanity (void)
         }
       else
         {
-          babl_fatal ("babl memory function(s) attempted switched on the fly");
+          babl_fatal1 ("babl memory function(s) attempted switched on the fly");
         }
     }
 }
@@ -103,7 +103,7 @@ babl_malloc (size_t size)
   functions_sanity ();
   ret = malloc_f (BABL_ALLOC + BABL_ALIGN + size);
   if (!ret)
-    babl_fatal ("args=(%i): failed", size);
+    babl_fatal2 ("args=(%i): failed", size);
 
   offset = BABL_ALIGN - ((unsigned int) ret + BABL_ALLOC) % BABL_ALIGN;
   ret = ret + BABL_ALLOC + offset;
@@ -190,7 +190,7 @@ babl_free (void *ptr,
   if (!ptr)
     return;
   if (!IS_BAI (ptr))
-    babl_fatal ("memory not allocated by babl allocator");
+    babl_fatal1 ("memory not allocated by babl allocator");
   functions_sanity ();
   BAI (ptr)->signature = NULL;
   free_f (BAI (ptr));
@@ -240,7 +240,7 @@ babl_realloc (void  *ptr,
     }
 
   if (!ret)
-    babl_fatal ("args=(%p, %i): failed", ptr, size);
+    babl_fatal3 ("args=(%p, %i): failed", ptr, size);
 
   return NULL;
 }
@@ -253,7 +253,7 @@ babl_calloc (size_t nmemb,
   void *ret = babl_malloc (nmemb * size);
 
   if (!ret)
-    babl_fatal ("args=(%i, %i): failed", nmemb, size);
+    babl_fatal3 ("args=(%i, %i): failed", nmemb, size);
 
   memset (ret, 0, nmemb * size);
 
@@ -281,7 +281,7 @@ babl_strdup (const char *s)
 
   ret = babl_malloc (strlen (s) + 1);
   if (!ret)
-    babl_log ("args=(%s): failed", s);
+    babl_log2 ("args=(%s): failed", s);
   strcpy (ret, s);
 
   strdups++;
@@ -338,7 +338,7 @@ babl_memory_sanity (void)
 {
   if (frees != mallocs + strdups + callocs)
     {
-      babl_log ("memory usage does not add up!\n"
+      babl_log5 ("memory usage does not add up!\n"
                 "%s\n"
                 "\tbalance: %i-%i=%i\n",
                 mem_stats (), (strdups + mallocs + callocs), frees, (strdups + mallocs + callocs) - frees);
Index: babl/babl-model.c
===================================================================
--- babl/babl-model.c.orig
+++ babl/babl-model.c
@@ -105,13 +105,13 @@ babl_model_new (void *first_argument,
 
                 if (components >= BABL_MAX_COMPONENTS)
                   {
-                    babl_log ("maximum number of components (%i) exceeded for %s",
+                    babl_log3 ("maximum number of components (%i) exceeded for %s",
                               BABL_MAX_COMPONENTS, name);
                   }
                 break;
 
               case BABL_MODEL:
-                babl_log ("submodels not handled yet");
+                babl_log1 ("submodels not handled yet");
                 break;
 
               case BABL_TYPE:
@@ -132,7 +132,7 @@ babl_model_new (void *first_argument,
               case BABL_FISH_PATH:
               case BABL_IMAGE:
               case BABL_EXTENSION:
-                babl_log ("%s unexpected", babl_class_name (babl->class_type));
+                babl_log2 ("%s unexpected", babl_class_name (babl->class_type));
                 break;
 
               case BABL_SKY: /* shut up compiler */
@@ -152,7 +152,7 @@ babl_model_new (void *first_argument,
 
       else
         {
-          babl_fatal ("unhandled argument '%s' for babl_model '%s'", arg, name);
+          babl_fatal3 ("unhandled argument '%s' for babl_model '%s'", arg, name);
         }
 
       arg = va_arg (varg, char *);
@@ -301,16 +301,16 @@ babl_model_is_symmetric (Babl *babl)
             }
         if (log && log < 5)
           {
-            babl_log ("%s", babl->instance.name);
-            babl_log ("\ttest:     %2.3f %2.3f %2.3f %2.3f", test [i *4 + 0],
+            babl_log2 ("%s", babl->instance.name);
+            babl_log5 ("\ttest:     %2.3f %2.3f %2.3f %2.3f", test [i *4 + 0],
                       test [i * 4 + 1],
                       test [i * 4 + 2],
                       test [i * 4 + 3]);
-            babl_log ("\tclipped:  %2.3f %2.3f %2.3f %2.3f", clipped [i *4 + 0],
+            babl_log5 ("\tclipped:  %2.3f %2.3f %2.3f %2.3f", clipped [i *4 + 0],
                       clipped [i * 4 + 1],
                       clipped [i * 4 + 2],
                       clipped [i * 4 + 3]);
-            babl_log ("\ttrnsfrmd: %2.3f %2.3f %2.3f %2.3f", transformed [i *4 + 0],
+            babl_log5 ("\ttrnsfrmd: %2.3f %2.3f %2.3f %2.3f", transformed [i *4 + 0],
                       transformed [i * 4 + 1],
                       transformed [i * 4 + 2],
                       transformed [i * 4 + 3]);
Index: babl/babl-sampling.c
===================================================================
--- babl/babl-sampling.c.orig
+++ babl/babl-sampling.c
@@ -36,7 +36,7 @@ babl_sampling (int horizontal,
       horizontal <= 4)
     return (Babl *) &sampling_db [ (vertical - 1) * 4 + (horizontal - 1)];
   else
-    babl_log ("babl_samping(%i,%i): arguments out of bounds",
+    babl_log3 ("babl_samping(%i,%i): arguments out of bounds",
               horizontal, vertical);
   return NULL;
 }
Index: babl/babl-sanity.c
===================================================================
--- babl/babl-sanity.c.orig
+++ babl/babl-sanity.c
@@ -55,7 +55,7 @@ type_sanity (Babl *babl,
   if (!ok)
     {
       OK = 0;
-      babl_log ("lack of sanity! type '%s' has no conversion to double",
+      babl_log2 ("lack of sanity! type '%s' has no conversion to double",
                 babl->instance.name);
     }
 
@@ -88,7 +88,7 @@ model_sanity (Babl *babl,
   if (!ok)
     {
       OK = 0;
-      babl_log ("lack of sanity! model '%s' has no conversion to 'rgba'",
+      babl_log2 ("lack of sanity! model '%s' has no conversion to 'rgba'",
                 babl->instance.name);
     }
 
@@ -104,7 +104,7 @@ id_sanity (Babl *babl,
       !strcmp (BABL (babl->instance.creator)->instance.name, "BablBase"))
     {
       OK = 0;
-      babl_log ("%s\t'%s' has id==0",
+      babl_log3 ("%s\t'%s' has id==0",
                 babl_class_name (babl->class_type), babl->instance.name);
     }
   return 0;
Index: babl/babl-type.c
===================================================================
--- babl/babl-type.c.orig
+++ babl/babl-type.c
@@ -85,7 +85,7 @@ babl_type_new (void *first_arg,
 #ifdef BABL_LOG
           Babl *babl = (Babl *) arg;
 
-          babl_log ("%s unexpected", babl_class_name (babl->class_type));
+          babl_log2 ("%s unexpected", babl_class_name (babl->class_type));
 #endif
         }
       /* if we didn't point to a babl, we assume arguments to be strings */
@@ -123,7 +123,7 @@ babl_type_new (void *first_arg,
 
       else
         {
-          babl_fatal ("unhandled argument '%s' for format '%s'", arg, first_arg);
+          babl_fatal3 ("unhandled argument '%s' for format '%s'", arg, first_arg);
         }
     }
 
@@ -236,7 +236,7 @@ babl_type_is_symmetric (Babl *babl)
         if (fabs (clipped[i] - transformed[i]) > TOLERANCE)
           {
             if (cnt++ < 4)
-              babl_log ("%s:  %f %f %f)",
+              babl_log5 ("%s:  %f %f %f)",
                         babl->instance.name, test[i], clipped[i], transformed[i]
               );
             is_symmetrical = 0;
Index: tests/babl_class_name.c
===================================================================
--- tests/babl_class_name.c.orig
+++ tests/babl_class_name.c
@@ -54,7 +54,7 @@ test (void)
       if (strcmp (reference[i].name, babl_class_name (reference[i].klass)))
         {
           OK = 0;
-          babl_log ("'%s'!='%s'\n", reference[i].name, babl_class_name (reference[i].klass));
+          babl_log3 ("'%s'!='%s'\n", reference[i].name, babl_class_name (reference[i].klass));
         }
       i++;
     }
Index: tests/conversions.c
===================================================================
--- tests/conversions.c.orig
+++ tests/conversions.c
@@ -17,7 +17,7 @@ each_conversion (Babl *babl,
 
   if (error >= ERROR_TOLERANCE)
     {
-      babl_log ("%s\terror:%f", babl->instance.name, error);
+      babl_log3 ("%s\terror:%f", babl->instance.name, error);
       OK = 0;
     }
   return 0;
Index: tests/formats.c
===================================================================
--- tests/formats.c.orig
+++ tests/formats.c
@@ -9,7 +9,7 @@
 static int format_check (Babl *babl,
                          void *userdata)
 {
-  babl_log ("%s\tloss: %f", babl->instance.name, babl->format.loss);
+  babl_log3 ("%s\tloss: %f", babl->instance.name, babl->format.loss);
   return 0;
 }
 
Index: tests/grayscale_to_rgb.c
===================================================================
--- tests/grayscale_to_rgb.c.orig
+++ tests/grayscale_to_rgb.c
@@ -60,7 +60,7 @@ test (void)
     {
       if (rgb_buf[i] != rgb_buf_ref[i])
         {
-          babl_log ("index %i is problematic", i);
+          babl_log2 ("index %i is problematic", i);
           OK = 0;
         }
     }
Index: tests/models.c
===================================================================
--- tests/models.c.orig
+++ tests/models.c
@@ -13,7 +13,7 @@ static int model_check (Babl *babl,
 {
   if (!babl_model_is_symmetric (babl))
     {
-      babl_log ("%s is not symmetric", babl->instance.name);
+      babl_log2 ("%s is not symmetric", babl->instance.name);
       OK = 0;
     }
   return 0;
Index: tests/rgb_to_bgr.c
===================================================================
--- tests/rgb_to_bgr.c.orig
+++ tests/rgb_to_bgr.c
@@ -67,7 +67,7 @@ test (void)
     {
       if (abs (destination_buf[i] - reference_buf[i]) > TOLERANCE)
         {
-          babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i",
+          babl_log8 ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i",
                     i, i, i % 3, i, i / 3, destination_buf[i], reference_buf[i]);
           OK = 0;
         }
Index: tests/rgb_to_ycbcr.c
===================================================================
--- tests/rgb_to_ycbcr.c.orig
+++ tests/rgb_to_ycbcr.c
@@ -74,7 +74,7 @@ test (void)
     {
       if (fabs (destination_buf[i] - reference_buf[i]) > TOLERANCE)
         {
-          babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %f should be %f",
+          babl_log8 ("%2i (%2i%%3=%i, %2i/3=%i) is %f should be %f",
                     i, i, i % 3, i, i / 3, destination_buf[i], reference_buf[i]);
           OK = 0;
         }
Index: tests/srgb_to_lab_u8.c
===================================================================
--- tests/srgb_to_lab_u8.c.orig
+++ tests/srgb_to_lab_u8.c
@@ -54,7 +54,7 @@ test (void)
     {
       if (abs (destination_buf[i] - reference_buf[i]) > TOLERANCE)
         {
-          babl_log ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i",
+          babl_log8 ("%2i (%2i%%3=%i, %2i/3=%i) is %i should be %i",
                     i, i, i % 3, i, i / 3, destination_buf[i], reference_buf[i]);
           OK = 0;
         }
Index: tests/types.c
===================================================================
--- tests/types.c.orig
+++ tests/types.c
@@ -8,7 +8,7 @@ static int type_check (Babl *babl,
 {
   if (!babl_type_is_symmetric (babl))
     {
-      babl_log ("%s is not symmetric", babl->instance.name);
+      babl_log2 ("%s is not symmetric", babl->instance.name);
       OK = 0;
     }
   return 0;
Index: babl/babl-ids.h
===================================================================
--- babl/babl-ids.h.orig
+++ babl/babl-ids.h
@@ -106,7 +106,7 @@ enum {
   BABL_YCBCR420,
   BABL_FORMAT_LAST_INTERNAL,
 
-  BABL_PIXEL_USER_BASE,
+  BABL_PIXEL_USER_BASE
 };
 
 
Index: babl/babl-cpuaccel.h
===================================================================
--- babl/babl-cpuaccel.h.orig
+++ babl/babl-cpuaccel.h
@@ -24,7 +24,7 @@ typedef enum
   BABL_CPU_ACCEL_NONE        = 0x0,
 
   /* x86 accelerations */
-  BABL_CPU_ACCEL_X86_MMX     = 0x80000000,
+  BABL_CPU_ACCEL_X86_MMX     = 0x01000000,
   BABL_CPU_ACCEL_X86_3DNOW   = 0x40000000,
   BABL_CPU_ACCEL_X86_MMXEXT  = 0x20000000,
   BABL_CPU_ACCEL_X86_SSE     = 0x10000000,
Index: babl/base/model-rgb.c
===================================================================
--- babl/base/model-rgb.c.orig
+++ babl/base/model-rgb.c
@@ -474,7 +474,6 @@ static void
 formats (void)
 {
   babl_format_new (
-    //"name", "srgb",
     "id", BABL_SRGB,
     babl_model_id (BABL_RGB_GAMMA_2_2),
     babl_type_id (BABL_U8),
Index: babl/base/rgb-constants.h
===================================================================
--- babl/base/rgb-constants.h.orig
+++ babl/base/rgb-constants.h
@@ -16,7 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
-//#define CONTEMPORARY_MONITOR
+/*#define CONTEMPORARY_MONITOR /**/
 
 #ifdef CONTEMPORARY_MONITOR
   /* source: http://www.poynton.com/ColorFAQ.html */
Index: babl/babl-fish-stats.c
===================================================================
--- babl/babl-fish-stats.c.orig
+++ babl/babl-fish-stats.c
@@ -22,9 +22,6 @@ static FILE *output_file = NULL;
 static int   qux         = 0;
 
 static char *utf8_bar[] = { " ", "·", "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" };
-//static char *utf8_bar[]=  {"!","▁","▃","▅","▇","█","!","!","!"};
-//static char *utf8_bar[]={"·", "█", "▇", "▆", "▅", "▄", "▃", "▂", "▁", };
-//static char *utf8_bar[]={" ","1","2","3","4","5","6","7","8"};
 
 static int
 table_destination_each (Babl *babl,
Index: babl/babl-fish-path.c
===================================================================
--- babl/babl-fish-path.c.orig
+++ babl/babl-fish-path.c
@@ -371,7 +371,7 @@ test_create (void)
   return test;
 }
 
-// FishPath instrumentation
+/* FishPath instrumentation */
 
 static Babl   *fmt_rgba_double = NULL;
 static double *test = NULL;
Index: tests/babl_fish_path_fitness.c
===================================================================
--- tests/babl_fish_path_fitness.c.orig
+++ tests/babl_fish_path_fitness.c
@@ -25,9 +25,6 @@ test_init (void)
 static int   qux = 0;
 
 static char *utf8_bar[] = { " ", "·", "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" };
-//static char *utf8_bar[]=  {"!","▁","▃","▅","▇","█","!","!","!"};
-//static char *utf8_bar[]={"·", "█", "▇", "▆", "▅", "▄", "▃", "▂", "▁", };
-//static char *utf8_bar[]={" ","1","2","3","4","5","6","7","8"};
 
 static int destination_each (Babl *babl,
                              void *userdata)
Index: acinclude.m4
===================================================================
--- acinclude.m4.orig
+++ acinclude.m4
@@ -3,6 +3,7 @@ dnl Detect if the compiler supports a se
 
 AC_DEFUN([BABL_DETECT_CFLAGS],
 [
+if eval "test x$GCC = xyes"; then
   $1=
   for flag in $2; do
     if test -z "[$]$1"; then
@@ -17,4 +18,5 @@ AC_DEFUN([BABL_DETECT_CFLAGS],
       fi
     fi
   done
+fi
 ])
Index: docs/tools/xml_insert.sh
===================================================================
--- docs/tools/xml_insert.sh.orig
+++ docs/tools/xml_insert.sh
@@ -11,13 +11,93 @@
 #
 # FIXME: add argument checking / error handling
 
-which tempfile > /dev/null && TMP_FILE=`tempfile` || TMP_FILE="/tmp/temp_file"
+: ${AWK="awk"}
+: ${ECHO="echo"}
+: ${MKDIR="mkdir"}
+: ${SED="sed"}
+: ${Xsed="$SED -e 1s/^X//"}
 
-cp $1 $TMP_FILE
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
 
-SPLIT=`grep -n "<\!--$2-->" $TMP_FILE|head -n 1|sed -e "s/:.*//"`;
-head -n $SPLIT $TMP_FILE > $1
+dirname="s,/[[^/]]*$,,"
+basename="s,^.*/,,"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+# In the unlikely event $progname began with a '-', it would play havoc with
+# func_echo (imagine progname=-n), so we prepend ./ in that case:
+progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $ECHO "$progname: "${1+"$@"} 1>&2
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$opt_dry_run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+        save_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$my_tmpdir"
+        umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || \
+        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+    fi
+
+    $ECHO "X$my_tmpdir" | $Xsed
+}
+
+tmp_dir="`func_mktempdir`"
+tmp_file="$tmp_dir/one"
+
+cp $1 $tmp_file
+
+numlines=`wc -l $tmp_file | $AWK '{print $1;}'`
+splitno=`$AWK "/<\!--$2-->/ { print NR; exit 0; }" $tmp_file`
+tailno=`expr $numlines - $splitno`
+
+head -$splitno $tmp_file > $1
 cat $3 >> $1
-tail -n $((`wc -l $TMP_FILE | sed -e "s/ .*//"` - $SPLIT )) $TMP_FILE >> $1
+tail -$tailno $tmp_file >> $1
+
+rm -rf $tmp_dir
 
-rm $TMP_FILE
+exit $?
Index: babl.pc.in
===================================================================
--- babl.pc.in.orig
+++ babl.pc.in
@@ -6,5 +6,5 @@ includedir=@includedir@
 Name: babl
 Description: Dynamic, any to any, pixel format conversion library
 Version: @BABL_REAL_VERSION@
-Cflags: -I${includedir}/@PACKAGE_NAME@-@BABL_API_VERSION@
-Libs: -L${libdir} -l@PACKAGE_NAME@-@BABL_API_VERSION@ @MATH_LIB@
+Cflags: -I${includedir}
+Libs: -L${libdir} -l@PACKAGE_NAME@ @MATH_LIB@
Index: babl/babl-component.c
===================================================================
--- babl/babl-component.c.orig
+++ babl/babl-component.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 #include "babl-db.h"
 #include <string.h>
Index: babl/babl-conversion.c
===================================================================
--- babl/babl-conversion.c.orig
+++ babl/babl-conversion.c
@@ -17,6 +17,7 @@
  */
 
 
+#include <config.h>
 #include <string.h>
 #include <stdarg.h>
 #include <math.h>
Index: babl/babl-core.c
===================================================================
--- babl/babl-core.c.orig
+++ babl/babl-core.c
@@ -15,6 +15,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include "babl-internal.h"
 #include "babl-ids.h"
Index: babl/babl-cpuaccel.c
===================================================================
--- babl/babl-cpuaccel.c.orig
+++ babl/babl-cpuaccel.c
@@ -27,8 +27,7 @@
  * Copyright (C) 1999-2001 Aaron Holtzman <aholtzma@xxxxxxxxxxxxxxxx>
  */
 
-#include "config.h"
-
+#include <config.h>
 #include <string.h>
 #include <signal.h>
 #include <setjmp.h>
Index: babl/babl-db.c
===================================================================
--- babl/babl-db.c.orig
+++ babl/babl-db.c
@@ -23,6 +23,7 @@
 
 #define _BABL_DB_C
 
+#include <config.h>
 #include <string.h>
 #include "babl-internal.h"
 
Index: babl/babl-extension.c
===================================================================
--- babl/babl-extension.c.orig
+++ babl/babl-extension.c
@@ -18,9 +18,7 @@
 
 #define BABL_DYNAMIC_EXTENSIONS
 
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
+#include <config.h>
 
 #define BABL_PATH              LIBDIR BABL_DIR_SEPARATOR BABL_LIBRARY
 
Index: babl/babl-fish-path.c
===================================================================
--- babl/babl-fish-path.c.orig
+++ babl/babl-fish-path.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <math.h>
 #include "babl-internal.h"
 
Index: babl/babl-fish-reference.c
===================================================================
--- babl/babl-fish-reference.c.orig
+++ babl/babl-fish-reference.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 static Babl *
Index: babl/babl-fish-simple.c
===================================================================
--- babl/babl-fish-simple.c.orig
+++ babl/babl-fish-simple.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 static char *
Index: babl/babl-fish-stats.c
===================================================================
--- babl/babl-fish-stats.c.orig
+++ babl/babl-fish-stats.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 static FILE *output_file = NULL;
Index: babl/babl-fish.c
===================================================================
--- babl/babl-fish.c.orig
+++ babl/babl-fish.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 #include <string.h>
 #include <stdarg.h>
Index: babl/babl-format.c
===================================================================
--- babl/babl-format.c.orig
+++ babl/babl-format.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <stdarg.h>
 #include <math.h>
Index: babl/babl-hash-table.c
===================================================================
--- babl/babl-hash-table.c.orig
+++ babl/babl-hash-table.c
@@ -20,6 +20,7 @@
  * Copyright (C) 2008, Jan Heller
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 #define BABL_HASH_TABLE_INITIAL_MASK   0x7F
Index: babl/babl-image.c
===================================================================
--- babl/babl-image.c.orig
+++ babl/babl-image.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <stdarg.h>
 
Index: babl/babl-internal.c
===================================================================
--- babl/babl-internal.c.orig
+++ babl/babl-internal.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <stdlib.h>
 #include "babl-internal.h"
 
Index: babl/babl-introspect.c
===================================================================
--- babl/babl-introspect.c.orig
+++ babl/babl-introspect.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"    /* for babl_log */
 
 #define BABL_LOG
Index: babl/babl-list.c
===================================================================
--- babl/babl-list.c.orig
+++ babl/babl-list.c
@@ -20,6 +20,7 @@
  * Copyright (C) 2008, Jan Heller
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 #define BABL_LIST_INITIAL_SIZE 0x7F
Index: babl/babl-memory.c
===================================================================
--- babl/babl-memory.c.orig
+++ babl/babl-memory.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
Index: babl/babl-model.c
===================================================================
--- babl/babl-model.c.orig
+++ babl/babl-model.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <stdarg.h>
 #include <math.h>
Index: babl/babl-sampling.c
===================================================================
--- babl/babl-sampling.c.orig
+++ babl/babl-sampling.c
@@ -21,6 +21,7 @@
 #define VERTICAL_MIN      1
 #define VERTICAL_MAX      4
 
+#include <config.h>
 #include "babl-internal.h"
 
 static BablSampling sampling_db[(HORIZONTAL_MAX - HORIZONTAL_MIN + 1) *
Index: babl/babl-sanity.c
===================================================================
--- babl/babl-sanity.c.orig
+++ babl/babl-sanity.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 static int OK;
Index: babl/babl-type.c
===================================================================
--- babl/babl-type.c.orig
+++ babl/babl-type.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <stdarg.h>
 #include <math.h>
Index: babl/babl-util.c
===================================================================
--- babl/babl-util.c.orig
+++ babl/babl-util.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <math.h>
 #include "babl-internal.h"
 
Index: babl/babl-version.c
===================================================================
--- babl/babl-version.c.orig
+++ babl/babl-version.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 
Index: babl/babl.c
===================================================================
--- babl/babl.c.orig
+++ babl/babl.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 static int ref_count = 0;
Index: babl/base/babl-base.c
===================================================================
--- babl/base/babl-base.c.orig
+++ babl/base/babl-base.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-base.h"
 
 extern int babl_hmpf_on_name_lookups;
Index: babl/base/formats.c
===================================================================
--- babl/base/formats.c.orig
+++ babl/base/formats.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl.h"
 #include "babl-ids.h"
 #include "babl-base.h"
Index: babl/base/model-gray.c
===================================================================
--- babl/base/model-gray.c.orig
+++ babl/base/model-gray.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl.h"
 #include "babl-ids.h"
 #include "util.h"
Index: babl/base/model-rgb.c
===================================================================
--- babl/base/model-rgb.c.orig
+++ babl/base/model-rgb.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <math.h>
 #include "babl.h"
 #include "babl-ids.h"
Index: babl/base/model-ycbcr.c
===================================================================
--- babl/base/model-ycbcr.c.orig
+++ babl/base/model-ycbcr.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <math.h>
 #include <assert.h>
Index: babl/base/type-float.c
===================================================================
--- babl/base/type-float.c.orig
+++ babl/base/type-float.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <assert.h>
 
Index: babl/base/type-u16.c
===================================================================
--- babl/base/type-u16.c.orig
+++ babl/base/type-u16.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <stdint.h>
 #include <assert.h>
Index: babl/base/type-u32.c
===================================================================
--- babl/base/type-u32.c.orig
+++ babl/base/type-u32.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <stdint.h>
 #include <assert.h>
Index: babl/base/type-u8.c
===================================================================
--- babl/base/type-u8.c.orig
+++ babl/base/type-u8.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <assert.h>
 #include <stdint.h>
Index: babl/gettimeofday.c
===================================================================
--- babl/gettimeofday.c.orig
+++ babl/gettimeofday.c
@@ -6,6 +6,7 @@
  * By Wu Yongwei
  *
  */
+#include <config.h>
 
 #ifdef _WIN32
 
Index: extensions/CIE-Lab.c
===================================================================
--- extensions/CIE-Lab.c.orig
+++ extensions/CIE-Lab.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <math.h>
 #include <string.h>
 
Index: extensions/gegl-fixups.c
===================================================================
--- extensions/gegl-fixups.c.orig
+++ extensions/gegl-fixups.c
@@ -39,6 +39,7 @@
  * TODO: error diffusion,
  */
 
+#include <config.h>
 #include "babl.h"
 
 #include "base/util.h"
Index: extensions/gggl-lies.c
===================================================================
--- extensions/gggl-lies.c.orig
+++ extensions/gggl-lies.c
@@ -23,6 +23,7 @@
  *  Copyright 2003, 2004, 2005 Øyvind Kolås <pippin@xxxxxxxx>
  */
 
+#include <config.h>
 #include <math.h>
 #include <string.h>
 
Index: extensions/gggl.c
===================================================================
--- extensions/gggl.c.orig
+++ extensions/gggl.c
@@ -21,6 +21,7 @@
  *  Copyright 2003, 2004, 2005 Øyvind Kolås <pippin@xxxxxxxx>
  */
 
+#include <config.h>
 #include <math.h>
 #include <string.h>
 
Index: extensions/gimp-8bit.c
===================================================================
--- extensions/gimp-8bit.c.orig
+++ extensions/gimp-8bit.c
@@ -19,6 +19,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <stdio.h>
 
 #include "babl.h"
Index: extensions/naive-CMYK.c
===================================================================
--- extensions/naive-CMYK.c.orig
+++ extensions/naive-CMYK.c
@@ -16,8 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
-#include "config.h"
-
+#include <config.h>
 #include <math.h>
 #include <string.h>
 
Index: extensions/sse-fixups.c
===================================================================
--- extensions/sse-fixups.c.orig
+++ extensions/sse-fixups.c
@@ -19,7 +19,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
-#include "config.h"
+#include <config.h>
 
 #if defined(__GNUC__) && (__GNUC__ >= 4) && defined(USE_SSE) && defined(USE_MMX)
 
Index: tests/babl-html-dump.c
===================================================================
--- tests/babl-html-dump.c.orig
+++ tests/babl-html-dump.c
@@ -17,6 +17,7 @@
  *
  */
 
+#include <config.h>
 #include "babl-internal.h"    /* needed for babl_log */
 
 static void model_html (Babl *babl);
Index: tests/babl_class_name.c
===================================================================
--- tests/babl_class_name.c.orig
+++ tests/babl_class_name.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <string.h>
 #include <stdio.h>
 #include "babl-internal.h"
Index: tests/babl_fish_path_dhtml.c
===================================================================
--- tests/babl_fish_path_dhtml.c.orig
+++ tests/babl_fish_path_dhtml.c
@@ -1,3 +1,4 @@
+#include <config.h>
 #include <stdlib.h>
 #include "babl-internal.h"
 
Index: tests/babl_fish_path_fitness.c
===================================================================
--- tests/babl_fish_path_fitness.c.orig
+++ tests/babl_fish_path_fitness.c
@@ -1,6 +1,7 @@
 /* perform a symmetricality of conversion test on a set of randomized
  * RGBA data */
 
+#include <config.h>
 #include <stdlib.h>
 #include <math.h>
 #include "babl-internal.h"
Index: tests/conversions.c
===================================================================
--- tests/conversions.c.orig
+++ tests/conversions.c
@@ -1,6 +1,7 @@
 /* perform a symmetricality of conversion test on a set of randomized
  * RGBA data */
 
+#include <config.h>
 #include <stdlib.h>
 #include <math.h>
 #include "babl-internal.h"
Index: tests/formats.c
===================================================================
--- tests/formats.c.orig
+++ tests/formats.c
@@ -1,6 +1,7 @@
 /* perform a symmetricality of conversion test on a set of randomized
  * RGBA data */
 
+#include <config.h>
 #include <stdlib.h>
 #include <math.h>
 #include "babl-internal.h"
Index: tests/grayscale_to_rgb.c
===================================================================
--- tests/grayscale_to_rgb.c.orig
+++ tests/grayscale_to_rgb.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 #define PIXELS    5
Index: tests/introspect.c
===================================================================
--- tests/introspect.c.orig
+++ tests/introspect.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 int
Index: tests/models.c
===================================================================
--- tests/models.c.orig
+++ tests/models.c
@@ -1,6 +1,7 @@
 /* perform a symmetricality of conversion test on a set of randomized
  * RGBA data */
 
+#include <config.h>
 #include <stdlib.h>
 #include <math.h>
 #include "babl-internal.h"
Index: tests/nop.c
===================================================================
--- tests/nop.c.orig
+++ tests/nop.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl.h"
 
 int
Index: tests/rgb_to_bgr.c
===================================================================
--- tests/rgb_to_bgr.c.orig
+++ tests/rgb_to_bgr.c
@@ -17,6 +17,7 @@
  */
 
 
+#include <config.h>
 #include <math.h>
 #include "babl-internal.h"
 
Index: tests/rgb_to_ycbcr.c
===================================================================
--- tests/rgb_to_ycbcr.c.orig
+++ tests/rgb_to_ycbcr.c
@@ -17,6 +17,7 @@
  */
 
 
+#include <config.h>
 #include <math.h>
 #include "babl-internal.h"
 
Index: tests/sanity.c
===================================================================
--- tests/sanity.c.orig
+++ tests/sanity.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include "babl-internal.h"
 
 int
Index: tests/srgb_to_lab_u8.c
===================================================================
--- tests/srgb_to_lab_u8.c.orig
+++ tests/srgb_to_lab_u8.c
@@ -16,6 +16,7 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include <config.h>
 #include <math.h>
 #include "babl-internal.h"
 
Index: tests/types.c
===================================================================
--- tests/types.c.orig
+++ tests/types.c
@@ -1,3 +1,4 @@
+#include <config.h>
 #include <math.h>
 #include "babl-internal.h"
 
Index: lib/Makefile.am
===================================================================
--- /dev/null
+++ lib/Makefile.am
@@ -0,0 +1,159 @@
+## DO NOT EDIT! GENERATED AUTOMATICALLY!
+## Process this file with automake to produce Makefile.in.
+# Copyright (C) 2002-2009 Free Software Foundation, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License.  As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --libtool --macro-prefix=gl stdint
+
+AUTOMAKE_OPTIONS = 1.5 gnits
+
+SUBDIRS =
+noinst_HEADERS =
+noinst_LIBRARIES =
+noinst_LTLIBRARIES =
+EXTRA_DIST =
+BUILT_SOURCES =
+SUFFIXES =
+MOSTLYCLEANFILES = core *.stackdump
+MOSTLYCLEANDIRS =
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+
+AM_CPPFLAGS =
+
+noinst_LTLIBRARIES += libgnu.la
+
+libgnu_la_SOURCES =
+libgnu_la_LIBADD = $(gl_LTLIBOBJS)
+libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS)
+EXTRA_libgnu_la_SOURCES =
+libgnu_la_LDFLAGS = $(AM_LDFLAGS)
+
+## begin gnulib module link-warning
+
+LINK_WARNING_H=$(top_srcdir)/./link-warning.h
+
+EXTRA_DIST += $(top_srcdir)/./link-warning.h
+
+## end   gnulib module link-warning
+
+## begin gnulib module stdint
+
+BUILT_SOURCES += $(STDINT_H)
+
+# We need the following in order to create <stdint.h> when the system
+# doesn't have one that works with the given compiler.
+stdint.h: stdint.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+	      -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+	      -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+	      -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+	      -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+	      -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+	      -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+	      -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+	      -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+	      -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+	      -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+	      -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+	      -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+	      -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+	      -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+	      -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+	      -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+	      -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+	      -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+	      -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+	      < $(srcdir)/stdint.in.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += stdint.h stdint.h-t
+
+EXTRA_DIST += stdint.in.h
+
+## end   gnulib module stdint
+
+## begin gnulib module wchar
+
+BUILT_SOURCES += $(WCHAR_H)
+
+# We need the following in order to create <wchar.h> when the system
+# version does not work standalone.
+wchar.h: wchar.in.h
+	rm -f $@-t $@
+	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+	  sed -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+	      -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+	      -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \
+	      -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \
+	      -e 's|@''GNULIB_BTOWC''@|$(GNULIB_BTOWC)|g' \
+	      -e 's|@''GNULIB_WCTOB''@|$(GNULIB_WCTOB)|g' \
+	      -e 's|@''GNULIB_MBSINIT''@|$(GNULIB_MBSINIT)|g' \
+	      -e 's|@''GNULIB_MBRTOWC''@|$(GNULIB_MBRTOWC)|g' \
+	      -e 's|@''GNULIB_MBRLEN''@|$(GNULIB_MBRLEN)|g' \
+	      -e 's|@''GNULIB_MBSRTOWCS''@|$(GNULIB_MBSRTOWCS)|g' \
+	      -e 's|@''GNULIB_MBSNRTOWCS''@|$(GNULIB_MBSNRTOWCS)|g' \
+	      -e 's|@''GNULIB_WCRTOMB''@|$(GNULIB_WCRTOMB)|g' \
+	      -e 's|@''GNULIB_WCSRTOMBS''@|$(GNULIB_WCSRTOMBS)|g' \
+	      -e 's|@''GNULIB_WCSNRTOMBS''@|$(GNULIB_WCSNRTOMBS)|g' \
+	      -e 's|@''GNULIB_WCWIDTH''@|$(GNULIB_WCWIDTH)|g' \
+	      -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \
+	      -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \
+	      -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \
+	      -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \
+	      -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \
+	      -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \
+	      -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \
+	      -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \
+	      -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \
+	      -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \
+	      -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
+	      -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+	      -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \
+	      -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \
+	      -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \
+	      -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \
+	      -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \
+	      -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \
+	      -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \
+	      -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \
+	      -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \
+	      -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \
+	      -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \
+	      -e '/definition of GL_LINK_WARNING/r $(LINK_WARNING_H)' \
+	    < $(srcdir)/wchar.in.h; \
+	} > $@-t
+	mv $@-t $@
+MOSTLYCLEANFILES += wchar.h wchar.h-t
+
+EXTRA_DIST += wchar.in.h
+
+## end   gnulib module wchar
+
+## begin gnulib module dummy
+
+libgnu_la_SOURCES += dummy.c
+
+## end   gnulib module dummy
+
+
+mostlyclean-local: mostlyclean-generic
+	@for dir in '' $(MOSTLYCLEANDIRS); do \
+	  if test -n "$$dir" && test -d $$dir; then \
+	    echo "rmdir $$dir"; rmdir $$dir; \
+	  fi; \
+	done; \
+	:
Index: lib/dummy.c
===================================================================
--- /dev/null
+++ lib/dummy.c
@@ -0,0 +1,42 @@
+/* A dummy file, to prevent empty libraries from breaking builds.
+   Copyright (C) 2004, 2007 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Some systems, reportedly OpenBSD and Mac OS X, refuse to create
+   libraries without any object files.  You might get an error like:
+
+   > ar cru .libs/libgl.a
+   > ar: no archive members specified
+
+   Compiling this file, and adding its object file to the library, will
+   prevent the library from being empty.  */
+
+/* Some systems, such as Solaris with cc 5.0, refuse to work with libraries
+   that don't export any symbol.  You might get an error like:
+
+   > cc ... libgnu.a
+   > ild: (bad file) garbled symbol table in archive ../gllib/libgnu.a
+
+   Compiling this file, and adding its object file to the library, will
+   prevent the library from exporting no symbols.  */
+
+#ifdef __sun
+/* This declaration ensures that the library will export at least 1 symbol.  */
+int gl_dummy_symbol;
+#else
+/* This declaration is solely to ensure that after preprocessing
+   this file is never empty.  */
+typedef int dummy;
+#endif
Index: lib/stdint.in.h
===================================================================
--- /dev/null
+++ lib/stdint.in.h
@@ -0,0 +1,567 @@
+/* Copyright (C) 2001-2002, 2004-2009 Free Software Foundation, Inc.
+   Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
+   This file is part of gnulib.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/*
+ * ISO C 99 <stdint.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/stdint.h.html>
+ */
+
+#ifndef _GL_STDINT_H
+
+/* When including a system file that in turn includes <inttypes.h>,
+   use the system <inttypes.h>, not our substitute.  This avoids
+   problems with (for example) VMS, whose <sys/bitypes.h> includes
+   <inttypes.h>.  */
+#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Get those types that are already defined in other system include
+   files, so that we can "#define int8_t signed char" below without
+   worrying about a later system include file containing a "typedef
+   signed char int8_t;" that will get messed up by our macro.  Our
+   macros should all be consistent with the system versions, except
+   for the "fast" types and macros, which we recommend against using
+   in public interfaces due to compiler differences.  */
+
+#if @HAVE_STDINT_H@
+# if defined __sgi && ! defined __c99
+   /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
+      with "This header file is to be used only for c99 mode compilations"
+      diagnostics.  */
+#  define __STDINT_H__
+# endif
+  /* Other systems may have an incomplete or buggy <stdint.h>.
+     Include it before <inttypes.h>, since any "#include <stdint.h>"
+     in <inttypes.h> would reinclude us, skipping our contents because
+     _GL_STDINT_H is defined.
+     The include_next requires a split double-inclusion guard.  */
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+#endif
+
+#if ! defined _GL_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+#define _GL_STDINT_H
+
+/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
+   IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
+   AIX 5.2 <sys/types.h> isn't needed and causes troubles.
+   MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+   relies on the system <stdint.h> definitions, so include
+   <sys/types.h> after @NEXT_STDINT_H@.  */
+#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
+# include <sys/types.h>
+#endif
+
+/* Get LONG_MIN, LONG_MAX, ULONG_MAX.  */
+#include <limits.h>
+
+#if @HAVE_INTTYPES_H@
+  /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
+     int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
+     <inttypes.h> also defines intptr_t and uintptr_t.  */
+# include <inttypes.h>
+#elif @HAVE_SYS_INTTYPES_H@
+  /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
+     the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX.  */
+# include <sys/inttypes.h>
+#endif
+
+#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
+  /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
+     int{8,16,32,64}_t and __BIT_TYPES_DEFINED__.  In libc5 >= 5.2.2 it is
+     included by <sys/types.h>.  */
+# include <sys/bitypes.h>
+#endif
+
+#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Minimum and maximum values for a integer type under the usual assumption.
+   Return an unspecified value if BITS == 0, adding a check to pacify
+   picky compilers.  */
+
+#define _STDINT_MIN(signed, bits, zero) \
+  ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
+
+#define _STDINT_MAX(signed, bits, zero) \
+  ((signed) \
+   ? ~ _STDINT_MIN (signed, bits, zero) \
+   : /* The expression for the unsigned case.  The subtraction of (signed) \
+	is a nop in the unsigned case and avoids "signed integer overflow" \
+	warnings in the signed case.  */ \
+     ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
+
+/* 7.18.1.1. Exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits.  */
+
+#undef int8_t
+#undef uint8_t
+typedef signed char gl_int8_t;
+typedef unsigned char gl_uint8_t;
+#define int8_t gl_int8_t
+#define uint8_t gl_uint8_t
+
+#undef int16_t
+#undef uint16_t
+typedef short int gl_int16_t;
+typedef unsigned short int gl_uint16_t;
+#define int16_t gl_int16_t
+#define uint16_t gl_uint16_t
+
+#undef int32_t
+#undef uint32_t
+typedef int gl_int32_t;
+typedef unsigned int gl_uint32_t;
+#define int32_t gl_int32_t
+#define uint32_t gl_uint32_t
+
+/* Do not undefine int64_t if gnulib is not being used with 64-bit
+   types, since otherwise it breaks platforms like Tandem/NSK.  */
+#if LONG_MAX >> 31 >> 31 == 1
+# undef int64_t
+typedef long int gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+#elif defined _MSC_VER
+# undef int64_t
+typedef __int64 gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+#elif @HAVE_LONG_LONG_INT@
+# undef int64_t
+typedef long long int gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+#endif
+
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# undef uint64_t
+typedef unsigned long int gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+#elif defined _MSC_VER
+# undef uint64_t
+typedef unsigned __int64 gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# undef uint64_t
+typedef unsigned long long int gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+#endif
+
+/* Avoid collision with Solaris 2.5.1 <pthread.h> etc.  */
+#define _UINT8_T
+#define _UINT32_T
+#define _UINT64_T
+
+
+/* 7.18.1.2. Minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+   are the same as the corresponding N_t types.  */
+
+#undef int_least8_t
+#undef uint_least8_t
+#undef int_least16_t
+#undef uint_least16_t
+#undef int_least32_t
+#undef uint_least32_t
+#undef int_least64_t
+#undef uint_least64_t
+#define int_least8_t int8_t
+#define uint_least8_t uint8_t
+#define int_least16_t int16_t
+#define uint_least16_t uint16_t
+#define int_least32_t int32_t
+#define uint_least32_t uint32_t
+#ifdef GL_INT64_T
+# define int_least64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_least64_t uint64_t
+#endif
+
+/* 7.18.1.3. Fastest minimum-width integer types */
+
+/* Note: Other <stdint.h> substitutes may define these types differently.
+   It is not recommended to use these types in public header files. */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+   are taken from the same list of types.  Assume that 'long int'
+   is fast enough for all narrower integers.  */
+
+#undef int_fast8_t
+#undef uint_fast8_t
+#undef int_fast16_t
+#undef uint_fast16_t
+#undef int_fast32_t
+#undef uint_fast32_t
+#undef int_fast64_t
+#undef uint_fast64_t
+typedef long int gl_int_fast8_t;
+typedef unsigned long int gl_uint_fast8_t;
+typedef long int gl_int_fast16_t;
+typedef unsigned long int gl_uint_fast16_t;
+typedef long int gl_int_fast32_t;
+typedef unsigned long int gl_uint_fast32_t;
+#define int_fast8_t gl_int_fast8_t
+#define uint_fast8_t gl_uint_fast8_t
+#define int_fast16_t gl_int_fast16_t
+#define uint_fast16_t gl_uint_fast16_t
+#define int_fast32_t gl_int_fast32_t
+#define uint_fast32_t gl_uint_fast32_t
+#ifdef GL_INT64_T
+# define int_fast64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_fast64_t uint64_t
+#endif
+
+/* 7.18.1.4. Integer types capable of holding object pointers */
+
+#undef intptr_t
+#undef uintptr_t
+typedef long int gl_intptr_t;
+typedef unsigned long int gl_uintptr_t;
+#define intptr_t gl_intptr_t
+#define uintptr_t gl_uintptr_t
+
+/* 7.18.1.5. Greatest-width integer types */
+
+/* Note: These types are compiler dependent. It may be unwise to use them in
+   public header files. */
+
+#undef intmax_t
+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+typedef long long int gl_intmax_t;
+# define intmax_t gl_intmax_t
+#elif defined GL_INT64_T
+# define intmax_t int64_t
+#else
+typedef long int gl_intmax_t;
+# define intmax_t gl_intmax_t
+#endif
+
+#undef uintmax_t
+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+typedef unsigned long long int gl_uintmax_t;
+# define uintmax_t gl_uintmax_t
+#elif defined GL_UINT64_T
+# define uintmax_t uint64_t
+#else
+typedef unsigned long int gl_uintmax_t;
+# define uintmax_t gl_uintmax_t
+#endif
+
+/* Verify that intmax_t and uintmax_t have the same size.  Too much code
+   breaks if this is not the case.  If this check fails, the reason is likely
+   to be found in the autoconf macros.  */
+typedef int _verify_intmax_size[2 * (sizeof (intmax_t) == sizeof (uintmax_t)) - 1];
+
+/* 7.18.2. Limits of specified-width integer types */
+
+#if ! defined __cplusplus || defined __STDC_LIMIT_MACROS
+
+/* 7.18.2.1. Limits of exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits.  */
+
+#undef INT8_MIN
+#undef INT8_MAX
+#undef UINT8_MAX
+#define INT8_MIN  (~ INT8_MAX)
+#define INT8_MAX  127
+#define UINT8_MAX  255
+
+#undef INT16_MIN
+#undef INT16_MAX
+#undef UINT16_MAX
+#define INT16_MIN  (~ INT16_MAX)
+#define INT16_MAX  32767
+#define UINT16_MAX  65535
+
+#undef INT32_MIN
+#undef INT32_MAX
+#undef UINT32_MAX
+#define INT32_MIN  (~ INT32_MAX)
+#define INT32_MAX  2147483647
+#define UINT32_MAX  4294967295U
+
+#undef INT64_MIN
+#undef INT64_MAX
+#ifdef GL_INT64_T
+/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
+   evaluates the latter incorrectly in preprocessor expressions.  */
+# define INT64_MIN  (- INTMAX_C (1) << 63)
+# define INT64_MAX  INTMAX_C (9223372036854775807)
+#endif
+
+#undef UINT64_MAX
+#ifdef GL_UINT64_T
+# define UINT64_MAX  UINTMAX_C (18446744073709551615)
+#endif
+
+/* 7.18.2.2. Limits of minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+   are the same as the corresponding N_t types.  */
+
+#undef INT_LEAST8_MIN
+#undef INT_LEAST8_MAX
+#undef UINT_LEAST8_MAX
+#define INT_LEAST8_MIN  INT8_MIN
+#define INT_LEAST8_MAX  INT8_MAX
+#define UINT_LEAST8_MAX  UINT8_MAX
+
+#undef INT_LEAST16_MIN
+#undef INT_LEAST16_MAX
+#undef UINT_LEAST16_MAX
+#define INT_LEAST16_MIN  INT16_MIN
+#define INT_LEAST16_MAX  INT16_MAX
+#define UINT_LEAST16_MAX  UINT16_MAX
+
+#undef INT_LEAST32_MIN
+#undef INT_LEAST32_MAX
+#undef UINT_LEAST32_MAX
+#define INT_LEAST32_MIN  INT32_MIN
+#define INT_LEAST32_MAX  INT32_MAX
+#define UINT_LEAST32_MAX  UINT32_MAX
+
+#undef INT_LEAST64_MIN
+#undef INT_LEAST64_MAX
+#ifdef GL_INT64_T
+# define INT_LEAST64_MIN  INT64_MIN
+# define INT_LEAST64_MAX  INT64_MAX
+#endif
+
+#undef UINT_LEAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_LEAST64_MAX  UINT64_MAX
+#endif
+
+/* 7.18.2.3. Limits of fastest minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+   are taken from the same list of types.  */
+
+#undef INT_FAST8_MIN
+#undef INT_FAST8_MAX
+#undef UINT_FAST8_MAX
+#define INT_FAST8_MIN  LONG_MIN
+#define INT_FAST8_MAX  LONG_MAX
+#define UINT_FAST8_MAX  ULONG_MAX
+
+#undef INT_FAST16_MIN
+#undef INT_FAST16_MAX
+#undef UINT_FAST16_MAX
+#define INT_FAST16_MIN  LONG_MIN
+#define INT_FAST16_MAX  LONG_MAX
+#define UINT_FAST16_MAX  ULONG_MAX
+
+#undef INT_FAST32_MIN
+#undef INT_FAST32_MAX
+#undef UINT_FAST32_MAX
+#define INT_FAST32_MIN  LONG_MIN
+#define INT_FAST32_MAX  LONG_MAX
+#define UINT_FAST32_MAX  ULONG_MAX
+
+#undef INT_FAST64_MIN
+#undef INT_FAST64_MAX
+#ifdef GL_INT64_T
+# define INT_FAST64_MIN  INT64_MIN
+# define INT_FAST64_MAX  INT64_MAX
+#endif
+
+#undef UINT_FAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_FAST64_MAX  UINT64_MAX
+#endif
+
+/* 7.18.2.4. Limits of integer types capable of holding object pointers */
+
+#undef INTPTR_MIN
+#undef INTPTR_MAX
+#undef UINTPTR_MAX
+#define INTPTR_MIN  LONG_MIN
+#define INTPTR_MAX  LONG_MAX
+#define UINTPTR_MAX  ULONG_MAX
+
+/* 7.18.2.5. Limits of greatest-width integer types */
+
+#undef INTMAX_MIN
+#undef INTMAX_MAX
+#ifdef INT64_MAX
+# define INTMAX_MIN  INT64_MIN
+# define INTMAX_MAX  INT64_MAX
+#else
+# define INTMAX_MIN  INT32_MIN
+# define INTMAX_MAX  INT32_MAX
+#endif
+
+#undef UINTMAX_MAX
+#ifdef UINT64_MAX
+# define UINTMAX_MAX  UINT64_MAX
+#else
+# define UINTMAX_MAX  UINT32_MAX
+#endif
+
+/* 7.18.3. Limits of other integer types */
+
+/* ptrdiff_t limits */
+#undef PTRDIFF_MIN
+#undef PTRDIFF_MAX
+#if @APPLE_UNIVERSAL_BUILD@
+# if _LP64
+#  define PTRDIFF_MIN  _STDINT_MIN (1, 64, 0l)
+#  define PTRDIFF_MAX  _STDINT_MAX (1, 64, 0l)
+# else
+#  define PTRDIFF_MIN  _STDINT_MIN (1, 32, 0)
+#  define PTRDIFF_MAX  _STDINT_MAX (1, 32, 0)
+# endif
+#else
+# define PTRDIFF_MIN  \
+    _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+# define PTRDIFF_MAX  \
+    _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+#endif
+
+/* sig_atomic_t limits */
+#undef SIG_ATOMIC_MIN
+#undef SIG_ATOMIC_MAX
+#define SIG_ATOMIC_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+		0@SIG_ATOMIC_T_SUFFIX@)
+#define SIG_ATOMIC_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+		0@SIG_ATOMIC_T_SUFFIX@)
+
+
+/* size_t limit */
+#undef SIZE_MAX
+#if @APPLE_UNIVERSAL_BUILD@
+# if _LP64
+#  define SIZE_MAX  _STDINT_MAX (0, 64, 0ul)
+# else
+#  define SIZE_MAX  _STDINT_MAX (0, 32, 0ul)
+# endif
+#else
+# define SIZE_MAX  _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
+#endif
+
+/* wchar_t limits */
+/* Get WCHAR_MIN, WCHAR_MAX.
+   This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested
+   includes <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
+   <stdint.h> and assumes its types are already defined.  */
+#if ! (defined WCHAR_MIN && defined WCHAR_MAX)
+# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
+# include <wchar.h>
+# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
+#endif
+#undef WCHAR_MIN
+#undef WCHAR_MAX
+#define WCHAR_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+#define WCHAR_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+
+/* wint_t limits */
+#undef WINT_MIN
+#undef WINT_MAX
+#define WINT_MIN  \
+   _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+#define WINT_MAX  \
+   _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+
+#endif /* !defined __cplusplus || defined __STDC_LIMIT_MACROS */
+
+/* 7.18.4. Macros for integer constants */
+
+#if ! defined __cplusplus || defined __STDC_CONSTANT_MACROS
+
+/* 7.18.4.1. Macros for minimum-width integer constants */
+/* According to ISO C 99 Technical Corrigendum 1 */
+
+/* Here we assume a standard architecture where the hardware integer
+   types have 8, 16, 32, optionally 64 bits, and int is 32 bits.  */
+
+#undef INT8_C
+#undef UINT8_C
+#define INT8_C(x) x
+#define UINT8_C(x) x
+
+#undef INT16_C
+#undef UINT16_C
+#define INT16_C(x) x
+#define UINT16_C(x) x
+
+#undef INT32_C
+#undef UINT32_C
+#define INT32_C(x) x
+#define UINT32_C(x) x ## U
+
+#undef INT64_C
+#undef UINT64_C
+#if LONG_MAX >> 31 >> 31 == 1
+# define INT64_C(x) x##L
+#elif defined _MSC_VER
+# define INT64_C(x) x##i64
+#elif @HAVE_LONG_LONG_INT@
+# define INT64_C(x) x##LL
+#endif
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# define UINT64_C(x) x##UL
+#elif defined _MSC_VER
+# define UINT64_C(x) x##ui64
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# define UINT64_C(x) x##ULL
+#endif
+
+/* 7.18.4.2. Macros for greatest-width integer constants */
+
+#undef INTMAX_C
+#if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define INTMAX_C(x)   x##LL
+#elif defined GL_INT64_T
+# define INTMAX_C(x)   INT64_C(x)
+#else
+# define INTMAX_C(x)   x##L
+#endif
+
+#undef UINTMAX_C
+#if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define UINTMAX_C(x)  x##ULL
+#elif defined GL_UINT64_T
+# define UINTMAX_C(x)  UINT64_C(x)
+#else
+# define UINTMAX_C(x)  x##UL
+#endif
+
+#endif /* !defined __cplusplus || defined __STDC_CONSTANT_MACROS */
+
+#endif /* _GL_STDINT_H */
+#endif /* !defined _GL_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
Index: lib/wchar.in.h
===================================================================
--- /dev/null
+++ lib/wchar.in.h
@@ -0,0 +1,306 @@
+/* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
+
+   Copyright (C) 2007-2009 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software Foundation,
+   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+
+/* Written by Eric Blake.  */
+
+/*
+ * ISO C 99 <wchar.h> for platforms that have issues.
+ * <http://www.opengroup.org/susv3xbd/wchar.h.html>
+ *
+ * For now, this just ensures proper prerequisite inclusion order and
+ * the declaration of wcwidth().
+ */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+
+#if defined __need_mbstate_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H
+/* Special invocation convention:
+   - Inside uClibc header files.
+   - On HP-UX 11.00 we have a sequence of nested includes
+     <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>,
+     once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h>
+     and once directly.  In both situations 'wint_t' is not yet defined,
+     therefore we cannot provide the function overrides; instead include only
+     the system's <wchar.h>.
+   - On IRIX 6.5, similarly, we have an include <wchar.h> -> <wctype.h>, and
+     the latter includes <wchar.h>.  But here, we have no way to detect whether
+     <wctype.h> is completely included or is still being included.  */
+
+#@INCLUDE_NEXT@ @NEXT_WCHAR_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _GL_WCHAR_H
+
+#define _GL_ALREADY_INCLUDING_WCHAR_H
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+   included before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+
+/* Include the original <wchar.h> if it exists.
+   Some builds of uClibc lack it.  */
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_WCHAR_H@
+# @INCLUDE_NEXT@ @NEXT_WCHAR_H@
+#endif
+
+#undef _GL_ALREADY_INCLUDING_WCHAR_H
+
+#ifndef _GL_WCHAR_H
+#define _GL_WCHAR_H
+
+/* The definition of GL_LINK_WARNING is copied here.  */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Define wint_t.  (Also done in wctype.in.h.)  */
+#if !@HAVE_WINT_T@ && !defined wint_t
+# define wint_t int
+# ifndef WEOF
+#  define WEOF -1
+# endif
+#endif
+
+
+/* Override mbstate_t if it is too small.
+   On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for
+   implementing mbrtowc for encodings like UTF-8.  */
+#if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@
+typedef int rpl_mbstate_t;
+# undef mbstate_t
+# define mbstate_t rpl_mbstate_t
+# define GNULIB_defined_mbstate_t 1
+#endif
+
+
+/* Convert a single-byte character to a wide character.  */
+#if @GNULIB_BTOWC@
+# if @REPLACE_BTOWC@
+#  undef btowc
+#  define btowc rpl_btowc
+# endif
+# if !@HAVE_BTOWC@ || @REPLACE_BTOWC@
+extern wint_t btowc (int c);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef btowc
+# define btowc(c) \
+    (GL_LINK_WARNING ("btowc is unportable - " \
+                      "use gnulib module btowc for portability"), \
+     btowc (c))
+#endif
+
+
+/* Convert a wide character to a single-byte character.  */
+#if @GNULIB_WCTOB@
+# if @REPLACE_WCTOB@
+#  undef wctob
+#  define wctob rpl_wctob
+# endif
+# if (!defined wctob && !@HAVE_DECL_WCTOB@) || @REPLACE_WCTOB@
+/* wctob is provided by gnulib, or wctob exists but is not declared.  */
+extern int wctob (wint_t wc);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wctob
+# define wctob(w) \
+    (GL_LINK_WARNING ("wctob is unportable - " \
+                      "use gnulib module wctob for portability"), \
+     wctob (w))
+#endif
+
+
+/* Test whether *PS is in the initial state.  */
+#if @GNULIB_MBSINIT@
+# if @REPLACE_MBSINIT@
+#  undef mbsinit
+#  define mbsinit rpl_mbsinit
+# endif
+# if !@HAVE_MBSINIT@ || @REPLACE_MBSINIT@
+extern int mbsinit (const mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbsinit
+# define mbsinit(p) \
+    (GL_LINK_WARNING ("mbsinit is unportable - " \
+                      "use gnulib module mbsinit for portability"), \
+     mbsinit (p))
+#endif
+
+
+/* Convert a multibyte character to a wide character.  */
+#if @GNULIB_MBRTOWC@
+# if @REPLACE_MBRTOWC@
+#  undef mbrtowc
+#  define mbrtowc rpl_mbrtowc
+# endif
+# if !@HAVE_MBRTOWC@ || @REPLACE_MBRTOWC@
+extern size_t mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbrtowc
+# define mbrtowc(w,s,n,p) \
+    (GL_LINK_WARNING ("mbrtowc is unportable - " \
+                      "use gnulib module mbrtowc for portability"), \
+     mbrtowc (w, s, n, p))
+#endif
+
+
+/* Recognize a multibyte character.  */
+#if @GNULIB_MBRLEN@
+# if @REPLACE_MBRLEN@
+#  undef mbrlen
+#  define mbrlen rpl_mbrlen
+# endif
+# if !@HAVE_MBRLEN@ || @REPLACE_MBRLEN@
+extern size_t mbrlen (const char *s, size_t n, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbrlen
+# define mbrlen(s,n,p) \
+    (GL_LINK_WARNING ("mbrlen is unportable - " \
+                      "use gnulib module mbrlen for portability"), \
+     mbrlen (s, n, p))
+#endif
+
+
+/* Convert a string to a wide string.  */
+#if @GNULIB_MBSRTOWCS@
+# if @REPLACE_MBSRTOWCS@
+#  undef mbsrtowcs
+#  define mbsrtowcs rpl_mbsrtowcs
+# endif
+# if !@HAVE_MBSRTOWCS@ || @REPLACE_MBSRTOWCS@
+extern size_t mbsrtowcs (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbsrtowcs
+# define mbsrtowcs(d,s,l,p) \
+    (GL_LINK_WARNING ("mbsrtowcs is unportable - " \
+                      "use gnulib module mbsrtowcs for portability"), \
+     mbsrtowcs (d, s, l, p))
+#endif
+
+
+/* Convert a string to a wide string.  */
+#if @GNULIB_MBSNRTOWCS@
+# if @REPLACE_MBSNRTOWCS@
+#  undef mbsnrtowcs
+#  define mbsnrtowcs rpl_mbsnrtowcs
+# endif
+# if !@HAVE_MBSNRTOWCS@ || @REPLACE_MBSNRTOWCS@
+extern size_t mbsnrtowcs (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef mbsnrtowcs
+# define mbsnrtowcs(d,s,n,l,p) \
+    (GL_LINK_WARNING ("mbsnrtowcs is unportable - " \
+                      "use gnulib module mbsnrtowcs for portability"), \
+     mbsnrtowcs (d, s, n, l, p))
+#endif
+
+
+/* Convert a wide character to a multibyte character.  */
+#if @GNULIB_WCRTOMB@
+# if @REPLACE_WCRTOMB@
+#  undef wcrtomb
+#  define wcrtomb rpl_wcrtomb
+# endif
+# if !@HAVE_WCRTOMB@ || @REPLACE_WCRTOMB@
+extern size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcrtomb
+# define wcrtomb(s,w,p) \
+    (GL_LINK_WARNING ("wcrtomb is unportable - " \
+                      "use gnulib module wcrtomb for portability"), \
+     wcrtomb (s, w, p))
+#endif
+
+
+/* Convert a wide string to a string.  */
+#if @GNULIB_WCSRTOMBS@
+# if @REPLACE_WCSRTOMBS@
+#  undef wcsrtombs
+#  define wcsrtombs rpl_wcsrtombs
+# endif
+# if !@HAVE_WCSRTOMBS@ || @REPLACE_WCSRTOMBS@
+extern size_t wcsrtombs (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcsrtombs
+# define wcsrtombs(d,s,l,p) \
+    (GL_LINK_WARNING ("wcsrtombs is unportable - " \
+                      "use gnulib module wcsrtombs for portability"), \
+     wcsrtombs (d, s, l, p))
+#endif
+
+
+/* Convert a wide string to a string.  */
+#if @GNULIB_WCSNRTOMBS@
+# if !@HAVE_WCSNRTOMBS@
+extern size_t wcsnrtombs (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcsnrtombs
+# define wcsnrtombs(d,s,n,l,p) \
+    (GL_LINK_WARNING ("wcsnrtombs is unportable - " \
+                      "use gnulib module wcsnrtombs for portability"), \
+     wcsnrtombs (d, s, n, l, p))
+#endif
+
+
+/* Return the number of screen columns needed for WC.  */
+#if @GNULIB_WCWIDTH@
+# if @REPLACE_WCWIDTH@
+#  undef wcwidth
+#  define wcwidth rpl_wcwidth
+extern int wcwidth (wchar_t);
+# else
+#  if !defined wcwidth && !@HAVE_DECL_WCWIDTH@
+/* wcwidth exists but is not declared.  */
+extern int wcwidth (int /* actually wchar_t */);
+#  endif
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcwidth
+# define wcwidth(w) \
+    (GL_LINK_WARNING ("wcwidth is unportable - " \
+                      "use gnulib module wcwidth for portability"), \
+     wcwidth (w))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _GL_WCHAR_H */
+#endif /* _GL_WCHAR_H */
+#endif
Index: link-warning.h
===================================================================
--- /dev/null
+++ link-warning.h
@@ -0,0 +1,28 @@
+/* GL_LINK_WARNING("literal string") arranges to emit the literal string as
+   a linker warning on most glibc systems.
+   We use a linker warning rather than a preprocessor warning, because
+   #warning cannot be used inside macros.  */
+#ifndef GL_LINK_WARNING
+  /* This works on platforms with GNU ld and ELF object format.
+     Testing __GLIBC__ is sufficient for asserting that GNU ld is in use.
+     Testing __ELF__ guarantees the ELF object format.
+     Testing __GNUC__ is necessary for the compound expression syntax.  */
+# if defined __GLIBC__ && defined __ELF__ && defined __GNUC__
+#  define GL_LINK_WARNING(message) \
+     GL_LINK_WARNING1 (__FILE__, __LINE__, message)
+#  define GL_LINK_WARNING1(file, line, message) \
+     GL_LINK_WARNING2 (file, line, message)  /* macroexpand file and line */
+#  define GL_LINK_WARNING2(file, line, message) \
+     GL_LINK_WARNING3 (file ":" #line ": warning: " message)
+#  define GL_LINK_WARNING3(message) \
+     ({ static const char warning[sizeof (message)]		\
+          __attribute__ ((__unused__,				\
+                          __section__ (".gnu.warning"),		\
+                          __aligned__ (1)))			\
+          = message "\n";					\
+        (void)0;						\
+     })
+# else
+#  define GL_LINK_WARNING(message) ((void) 0)
+# endif
+#endif
Index: m4/00gnulib.m4
===================================================================
--- /dev/null
+++ m4/00gnulib.m4
@@ -0,0 +1,30 @@
+# 00gnulib.m4 serial 2
+dnl Copyright (C) 2009 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This file must be named something that sorts before all other
+dnl gnulib-provided .m4 files.  It is needed until such time as we can
+dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics.
+
+# AC_DEFUN_ONCE([NAME], VALUE)
+# ----------------------------
+# Define NAME to expand to VALUE on the first use (whether by direct
+# expansion, or by AC_REQUIRE), and to nothing on all subsequent uses.
+# Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier.  This
+# definition is slower than the version in Autoconf 2.64, because it
+# can only use interfaces that existed since 2.59; but it achieves the
+# same effect.  Quoting is necessary to avoid confusing Automake.
+m4_version_prereq([2.63.263], [],
+[m4_define([AC][_DEFUN_ONCE],
+  [AC][_DEFUN([$1],
+    [AC_REQUIRE([_gl_DEFUN_ONCE([$1])],
+      [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl
+[AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])])
+
+# gl_00GNULIB
+# -----------
+# Witness macro that this file has been included.  Needed to force
+# Automake to include this file prior to all other gnulib .m4 files.
+AC_DEFUN([gl_00GNULIB])
Index: m4/gnulib-cache.m4
===================================================================
--- /dev/null
+++ m4/gnulib-cache.m4
@@ -0,0 +1,35 @@
+# Copyright (C) 2002-2009 Free Software Foundation, Inc.
+#
+# This file is free software, distributed under the terms of the GNU
+# General Public License.  As a special exception to the GNU General
+# Public License, this file may be distributed as part of a program
+# that contains a configuration script generated by Autoconf, under
+# the same distribution terms as the rest of that program.
+#
+# Generated by gnulib-tool.
+#
+# This file represents the specification of how gnulib-tool is used.
+# It acts as a cache: It is written and read by gnulib-tool.
+# In projects using CVS, this file is meant to be stored in CVS,
+# like the configure.ac and various Makefile.am files.
+
+
+# Specification in the form of a command-line invocation:
+#   gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=. --libtool --macro-prefix=gl stdint
+
+# Specification in the form of a few gnulib-tool.m4 macro invocations:
+gl_LOCAL_DIR([])
+gl_MODULES([
+  stdint
+])
+gl_AVOID([])
+gl_SOURCE_BASE([lib])
+gl_M4_BASE([m4])
+gl_PO_BASE([])
+gl_DOC_BASE([doc])
+gl_TESTS_BASE([tests])
+gl_LIB([libgnu])
+gl_MAKEFILE_NAME([])
+gl_LIBTOOL
+gl_MACRO_PREFIX([gl])
+gl_PO_DOMAIN([])
Index: m4/gnulib-common.m4
===================================================================
--- /dev/null
+++ m4/gnulib-common.m4
@@ -0,0 +1,111 @@
+# gnulib-common.m4 serial 10
+dnl Copyright (C) 2007-2009 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# gl_COMMON
+# is expanded unconditionally through gnulib-tool magic.
+AC_DEFUN([gl_COMMON], [
+  dnl Use AC_REQUIRE here, so that the code is expanded once only.
+  AC_REQUIRE([gl_00GNULIB])
+  AC_REQUIRE([gl_COMMON_BODY])
+])
+AC_DEFUN([gl_COMMON_BODY], [
+  AH_VERBATIM([isoc99_inline],
+[/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+   the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+   earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+   __APPLE__ && __MACH__ test for MacOS X.
+   __APPLE_CC__ tests for the Apple compiler and its version.
+   __STDC_VERSION__ tests for the C99 mode.  */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif])
+  AH_VERBATIM([unused_parameter],
+[/* Define as a marker that can be attached to function parameter declarations
+   for parameters that are not used.  This helps to reduce warnings, such as
+   from GCC -Wunused-parameter.  */
+#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
+# define _UNUSED_PARAMETER_ __attribute__ ((__unused__))
+#else
+# define _UNUSED_PARAMETER_
+#endif
+])
+])
+
+# gl_MODULE_INDICATOR([modulename])
+# defines a C macro indicating the presence of the given module.
+AC_DEFUN([gl_MODULE_INDICATOR],
+[
+  AC_DEFINE([GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1],
+    [Define to 1 when using the gnulib module ]$1[.])
+])
+
+# m4_foreach_w
+# is a backport of autoconf-2.59c's m4_foreach_w.
+# Remove this macro when we can assume autoconf >= 2.60.
+m4_ifndef([m4_foreach_w],
+  [m4_define([m4_foreach_w],
+    [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
+
+# AC_PROG_MKDIR_P
+# is a backport of autoconf-2.60's AC_PROG_MKDIR_P.
+# Remove this macro when we can assume autoconf >= 2.60.
+m4_ifdef([AC_PROG_MKDIR_P], [], [
+  AC_DEFUN_ONCE([AC_PROG_MKDIR_P],
+    [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+     MKDIR_P='$(mkdir_p)'
+     AC_SUBST([MKDIR_P])])])
+
+# AC_C_RESTRICT
+# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
+# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
+# works.
+# This definition can be removed once autoconf >= 2.62 can be assumed.
+AC_DEFUN([AC_C_RESTRICT],
+[AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict],
+  [ac_cv_c_restrict=no
+   # The order here caters to the fact that C++ does not require restrict.
+   for ac_kw in __restrict __restrict__ _Restrict restrict; do
+     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+      [[typedef int * int_ptr;
+	int foo (int_ptr $ac_kw ip) {
+	return ip[0];
+       }]],
+      [[int s[1];
+	int * $ac_kw t = s;
+	t[0] = 0;
+	return foo(t)]])],
+      [ac_cv_c_restrict=$ac_kw])
+     test "$ac_cv_c_restrict" != no && break
+   done
+  ])
+ AH_VERBATIM([restrict],
+[/* Define to the equivalent of the C99 'restrict' keyword, or to
+   nothing if this is not supported.  Do not define if restrict is
+   supported directly.  */
+#undef restrict
+/* Work around a bug in Sun C++: it does not support _Restrict, even
+   though the corresponding Sun C compiler does, which causes
+   "#define restrict _Restrict" in the previous line.  Perhaps some future
+   version of Sun C++ will work with _Restrict; if so, it'll probably
+   define __RESTRICT, just as Sun C does.  */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+#endif])
+ case $ac_cv_c_restrict in
+   restrict) ;;
+   no) AC_DEFINE([restrict], []) ;;
+   *)  AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;;
+ esac
+])
+
+# gl_BIGENDIAN
+# is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd.
+# Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some
+# macros invoke AC_C_BIGENDIAN with arguments.
+AC_DEFUN([gl_BIGENDIAN],
+[
+  AC_C_BIGENDIAN
+])
Index: m4/include_next.m4
===================================================================
--- /dev/null
+++ m4/include_next.m4
@@ -0,0 +1,172 @@
+# include_next.m4 serial 10
+dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert and Derek Price.
+
+dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER.
+dnl
+dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to
+dnl 'include' otherwise.
+dnl
+dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler
+dnl supports it in the special case that it is the first include directive in
+dnl the given file, or to 'include' otherwise.
+dnl
+dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next,
+dnl so as to avoid GCC warnings when the gcc option -pedantic is used.
+dnl '#pragma GCC system_header' has the same effect as if the file was found
+dnl through the include search path specified with '-isystem' options (as
+dnl opposed to the search path specified with '-I' options). Namely, gcc
+dnl does not warn about some things, and on some systems (Solaris and Interix)
+dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side
+dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead
+dnl of plain '__STDC__'.
+
+AC_DEFUN([gl_INCLUDE_NEXT],
+[
+  AC_LANG_PREPROC_REQUIRE()
+  AC_CACHE_CHECK([whether the preprocessor supports include_next],
+    [gl_cv_have_include_next],
+    [rm -rf conftestd1a conftestd1b conftestd2
+     mkdir conftestd1a conftestd1b conftestd2
+     dnl The include of <stdio.h> is because IBM C 9.0 and 10.1
+     dnl (without Jan 2009 PTF, Feb 2009 PTF, respectively) supports
+     dnl include_next when used as first preprocessor directive in a
+     dnl file, but not when preceded by another include directive.
+     dnl Additionally, with this same compiler, include_next is a
+     dnl no-op when used in a header file that was included by
+     dnl specifying its absolute file name. Despite these two bugs,
+     dnl include_next is used in the compiler's <math.h>. By virtue of
+     dnl the second bug, we need to use include_next as well in this
+     dnl case.
+     cat <<EOF > conftestd1a/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+     cat <<EOF > conftestd1b/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include <stdio.h>
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+     cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+     gl_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
+     AC_COMPILE_IFELSE([#include <conftest.h>],
+       [gl_cv_have_include_next=yes],
+       [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
+        AC_COMPILE_IFELSE([#include <conftest.h>],
+          [gl_cv_have_include_next=buggy],
+          [gl_cv_have_include_next=no])
+       ])
+     CPPFLAGS="$gl_save_CPPFLAGS"
+     rm -rf conftestd1a conftestd1b conftestd2
+    ])
+  PRAGMA_SYSTEM_HEADER=
+  if test $gl_cv_have_include_next = yes; then
+    INCLUDE_NEXT=include_next
+    INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+    if test -n "$GCC"; then
+      PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
+    fi
+  else
+    if test $gl_cv_have_include_next = buggy; then
+      INCLUDE_NEXT=include
+      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+    else
+      INCLUDE_NEXT=include
+      INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
+    fi
+  fi
+  AC_SUBST([INCLUDE_NEXT])
+  AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE])
+  AC_SUBST([PRAGMA_SYSTEM_HEADER])
+])
+
+# gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...)
+# ------------------------------------------
+# For each arg foo.h, if #include_next works, define NEXT_FOO_H to be
+# '<foo.h>'; otherwise define it to be
+# '"///usr/include/foo.h"', or whatever other absolute file name is suitable.
+# That way, a header file with the following line:
+#	#@INCLUDE_NEXT@ @NEXT_FOO_H@
+# behaves (after sed substitution) as if it contained
+#	#include_next <foo.h>
+# even if the compiler does not support include_next.
+# The three "///" are to pacify Sun C 5.8, which otherwise would say
+# "warning: #include of /usr/include/... may be non-portable".
+# Use `""', not `<>', so that the /// cannot be confused with a C99 comment.
+# Note: This macro assumes that the header file is not empty after
+# preprocessing, i.e. it does not only define preprocessor macros but also
+# provides some type/enum definitions or function/variable declarations.
+AC_DEFUN([gl_CHECK_NEXT_HEADERS],
+[
+  AC_REQUIRE([gl_INCLUDE_NEXT])
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_CHECK_HEADERS_ONCE([$1])
+
+  m4_foreach_w([gl_HEADER_NAME], [$1],
+    [AS_VAR_PUSHDEF([gl_next_header],
+		    [gl_cv_next_]m4_quote(m4_defn([gl_HEADER_NAME])))
+     if test $gl_cv_have_include_next = yes; then
+       AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+     else
+       AC_CACHE_CHECK(
+	 [absolute name of <]m4_quote(m4_defn([gl_HEADER_NAME]))[>],
+	 m4_quote(m4_defn([gl_next_header])),
+	 [AS_VAR_PUSHDEF([gl_header_exists],
+			 [ac_cv_header_]m4_quote(m4_defn([gl_HEADER_NAME])))
+	  if test AS_VAR_GET(gl_header_exists) = yes; then
+	    AC_LANG_CONFTEST(
+	      [AC_LANG_SOURCE(
+		 [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]]
+	       )])
+	    dnl AIX "xlc -E" and "cc -E" omit #line directives for header files
+	    dnl that contain only a #include of other header files and no
+	    dnl non-comment tokens of their own. This leads to a failure to
+	    dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h>
+	    dnl and others. The workaround is to force preservation of comments
+	    dnl through option -C. This ensures all necessary #line directives
+	    dnl are present. GCC supports option -C as well.
+	    case "$host_os" in
+	      aix*) gl_absname_cpp="$ac_cpp -C" ;;
+	      *)    gl_absname_cpp="$ac_cpp" ;;
+	    esac
+	    dnl eval is necessary to expand gl_absname_cpp.
+	    dnl Ultrix and Pyramid sh refuse to redirect output of eval,
+	    dnl so use subshell.
+	    AS_VAR_SET([gl_next_header],
+	      ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+	       sed -n '\#/]m4_quote(m4_defn([gl_HEADER_NAME]))[#{
+		 s#.*"\(.*/]m4_quote(m4_defn([gl_HEADER_NAME]))[\)".*#\1#
+		 s#^/[^/]#//&#
+		 p
+		 q
+	       }'`'"'])
+	  else
+	    AS_VAR_SET([gl_next_header], ['<'gl_HEADER_NAME'>'])
+	  fi
+	  AS_VAR_POPDEF([gl_header_exists])])
+     fi
+     AC_SUBST(
+       AS_TR_CPP([NEXT_]m4_quote(m4_defn([gl_HEADER_NAME]))),
+       [AS_VAR_GET([gl_next_header])])
+     AS_VAR_POPDEF([gl_next_header])])
+])
Index: m4/longlong.m4
===================================================================
--- /dev/null
+++ m4/longlong.m4
@@ -0,0 +1,106 @@
+# longlong.m4 serial 14
+dnl Copyright (C) 1999-2007, 2009 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert.
+
+# Define HAVE_LONG_LONG_INT if 'long long int' works.
+# This fixes a bug in Autoconf 2.61, but can be removed once we
+# assume 2.62 everywhere.
+
+# Note: If the type 'long long int' exists but is only 32 bits large
+# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
+# defined. In this case you can treat 'long long int' like 'long int'.
+
+AC_DEFUN([AC_TYPE_LONG_LONG_INT],
+[
+  AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+    [AC_LINK_IFELSE(
+       [_AC_TYPE_LONG_LONG_SNIPPET],
+       [dnl This catches a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+	dnl If cross compiling, assume the bug isn't important, since
+	dnl nobody cross compiles for this platform as far as we know.
+	AC_RUN_IFELSE(
+	  [AC_LANG_PROGRAM(
+	     [[@%:@include <limits.h>
+	       @%:@ifndef LLONG_MAX
+	       @%:@ define HALF \
+			(1LL << (sizeof (long long int) * CHAR_BIT - 2))
+	       @%:@ define LLONG_MAX (HALF - 1 + HALF)
+	       @%:@endif]],
+	     [[long long int n = 1;
+	       int i;
+	       for (i = 0; ; i++)
+		 {
+		   long long int m = n << i;
+		   if (m >> i != n)
+		     return 1;
+		   if (LLONG_MAX / 2 < m)
+		     break;
+		 }
+	       return 0;]])],
+	  [ac_cv_type_long_long_int=yes],
+	  [ac_cv_type_long_long_int=no],
+	  [ac_cv_type_long_long_int=yes])],
+       [ac_cv_type_long_long_int=no])])
+  if test $ac_cv_type_long_long_int = yes; then
+    AC_DEFINE([HAVE_LONG_LONG_INT], [1],
+      [Define to 1 if the system has the type `long long int'.])
+  fi
+])
+
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.61, but can be removed once we
+# assume 2.62 everywhere.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+[
+  AC_CACHE_CHECK([for unsigned long long int],
+    [ac_cv_type_unsigned_long_long_int],
+    [AC_LINK_IFELSE(
+       [_AC_TYPE_LONG_LONG_SNIPPET],
+       [ac_cv_type_unsigned_long_long_int=yes],
+       [ac_cv_type_unsigned_long_long_int=no])])
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
+      [Define to 1 if the system has the type `unsigned long long int'.])
+  fi
+])
+
+# Expands to a C program that can be used to test for simultaneous support
+# of 'long long' and 'unsigned long long'. We don't want to say that
+# 'long long' is available if 'unsigned long long' is not, or vice versa,
+# because too many programs rely on the symmetry between signed and unsigned
+# integer types (excluding 'bool').
+AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET],
+[
+  AC_LANG_PROGRAM(
+    [[/* For now, do not test the preprocessor; as of 2007 there are too many
+	 implementations with broken preprocessors.  Perhaps this can
+	 be revisited in 2012.  In the meantime, code should not expect
+	 #if to work with literals wider than 32 bits.  */
+      /* Test literals.  */
+      long long int ll = 9223372036854775807ll;
+      long long int nll = -9223372036854775807LL;
+      unsigned long long int ull = 18446744073709551615ULL;
+      /* Test constant expressions.   */
+      typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll)
+		     ? 1 : -1)];
+      typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+		     ? 1 : -1)];
+      int i = 63;]],
+    [[/* Test availability of runtime routines for shift and division.  */
+      long long int llmax = 9223372036854775807ll;
+      unsigned long long int ullmax = 18446744073709551615ull;
+      return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
+	      | (llmax / ll) | (llmax % ll)
+	      | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i)
+	      | (ullmax / ull) | (ullmax % ull));]])
+])
Index: m4/multiarch.m4
===================================================================
--- /dev/null
+++ m4/multiarch.m4
@@ -0,0 +1,66 @@
+# multiarch.m4 serial 4
+dnl Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Determine whether the compiler is or may be producing universal binaries.
+#
+# On MacOS X 10.5 and later systems, the user can create libraries and
+# executables that work on multiple system types--known as "fat" or
+# "universal" binaries--by specifying multiple '-arch' options to the
+# compiler but only a single '-arch' option to the preprocessor.  Like
+# this:
+#
+#     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+#                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+#                 CPP="gcc -E" CXXCPP="g++ -E"
+#
+# Detect this situation and set the macro AA_APPLE_UNIVERSAL_BUILD at the
+# beginning of config.h and set APPLE_UNIVERSAL_BUILD accordingly.
+
+dnl This macro must pass through AC_REQUIRE (never directly invoke it).
+AC_DEFUN_ONCE([gl_MULTIARCH],
+[
+  dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN.
+  gl_cv_c_multiarch=no
+  AC_COMPILE_IFELSE(
+    [AC_LANG_SOURCE(
+      [[#ifndef __APPLE_CC__
+         not a universal capable compiler
+        #endif
+        typedef int dummy;
+      ]])],
+    [
+     dnl Check for potential -arch flags.  It is not universal unless
+     dnl there are at least two -arch flags with different values.
+     arch=
+     prev=
+     for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
+       if test -n "$prev"; then
+         case $word in
+           i?86 | x86_64 | ppc | ppc64)
+             if test -z "$arch" || test "$arch" = "$word"; then
+               arch="$word"
+             else
+               gl_cv_c_multiarch=yes
+             fi
+             ;;
+         esac
+         prev=
+       else
+         if test "x$word" = "x-arch"; then
+           prev=arch
+         fi
+       fi
+     done
+    ])
+  if test $gl_cv_c_multiarch = yes; then
+    AC_DEFINE([AA_APPLE_UNIVERSAL_BUILD], [1],
+      [Define if the compiler is building for multiple architectures of Apple platforms at once.])
+    APPLE_UNIVERSAL_BUILD=1
+  else
+    APPLE_UNIVERSAL_BUILD=0
+  fi
+  AC_SUBST([APPLE_UNIVERSAL_BUILD])
+])
Index: m4/onceonly.m4
===================================================================
--- /dev/null
+++ m4/onceonly.m4
@@ -0,0 +1,90 @@
+# onceonly.m4 serial 6
+dnl Copyright (C) 2002-2003, 2005-2006, 2008 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License.  As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl This file defines some "once only" variants of standard autoconf macros.
+dnl   AC_CHECK_HEADERS_ONCE          like  AC_CHECK_HEADERS
+dnl   AC_CHECK_FUNCS_ONCE            like  AC_CHECK_FUNCS
+dnl   AC_CHECK_DECLS_ONCE            like  AC_CHECK_DECLS
+dnl   AC_REQUIRE([AC_FUNC_STRCOLL])  like  AC_FUNC_STRCOLL
+dnl The advantage is that the check for each of the headers/functions/decls
+dnl will be put only once into the 'configure' file. It keeps the size of
+dnl the 'configure' file down, and avoids redundant output when 'configure'
+dnl is run.
+dnl The drawback is that the checks cannot be conditionalized. If you write
+dnl   if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
+dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
+dnl empty, and the check will be inserted before the body of the AC_DEFUNed
+dnl function.
+
+dnl The original code implemented AC_CHECK_HEADERS_ONCE and AC_CHECK_FUNCS_ONCE
+dnl in terms of AC_DEFUN and AC_REQUIRE. This implementation uses diversions to
+dnl named sections DEFAULTS and INIT_PREPARE in order to check all requested
+dnl headers at once, thus reducing the size of 'configure'. It is known to work
+dnl with autoconf 2.57..2.62 at least . The size reduction is ca. 9%.
+
+dnl Autoconf version 2.59 plus gnulib is required; this file is not needed
+dnl with Autoconf 2.60 or greater. But note that autoconf's implementation of
+dnl AC_CHECK_DECLS_ONCE expects a comma-separated list of symbols as first
+dnl argument!
+AC_PREREQ([2.59])
+
+# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
+# AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
+AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
+  :
+  m4_foreach_w([gl_HEADER_NAME], [$1], [
+    AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
+                                                 [./-], [___])), [
+      m4_divert_text([INIT_PREPARE],
+        [gl_header_list="$gl_header_list gl_HEADER_NAME"])
+      gl_HEADERS_EXPANSION
+      AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_HEADER_NAME])),
+        [Define to 1 if you have the <]m4_defn([gl_HEADER_NAME])[> header file.])
+    ])
+    AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
+                                                   [./-], [___])))
+  ])
+])
+m4_define([gl_HEADERS_EXPANSION], [
+  m4_divert_text([DEFAULTS], [gl_header_list=])
+  AC_CHECK_HEADERS([$gl_header_list])
+  m4_define([gl_HEADERS_EXPANSION], [])
+])
+
+# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
+# AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
+AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
+  :
+  m4_foreach_w([gl_FUNC_NAME], [$1], [
+    AC_DEFUN([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]), [
+      m4_divert_text([INIT_PREPARE],
+        [gl_func_list="$gl_func_list gl_FUNC_NAME"])
+      gl_FUNCS_EXPANSION
+      AH_TEMPLATE(AS_TR_CPP([HAVE_]m4_defn([gl_FUNC_NAME])),
+        [Define to 1 if you have the `]m4_defn([gl_FUNC_NAME])[' function.])
+    ])
+    AC_REQUIRE([gl_CHECK_FUNC_]m4_defn([gl_FUNC_NAME]))
+  ])
+])
+m4_define([gl_FUNCS_EXPANSION], [
+  m4_divert_text([DEFAULTS], [gl_func_list=])
+  AC_CHECK_FUNCS([$gl_func_list])
+  m4_define([gl_FUNCS_EXPANSION], [])
+])
+
+# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
+# AC_CHECK_DECLS(DECL1, DECL2, ...).
+AC_DEFUN([AC_CHECK_DECLS_ONCE], [
+  :
+  m4_foreach_w([gl_DECL_NAME], [$1], [
+    AC_DEFUN([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]), [
+      AC_CHECK_DECLS(m4_defn([gl_DECL_NAME]))
+    ])
+    AC_REQUIRE([gl_CHECK_DECL_]m4_defn([gl_DECL_NAME]))
+  ])
+])
Index: m4/stdint.m4
===================================================================
--- /dev/null
+++ m4/stdint.m4
@@ -0,0 +1,404 @@
+# stdint.m4 serial 33
+dnl Copyright (C) 2001-2009 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Paul Eggert and Bruno Haible.
+dnl Test whether <stdint.h> is supported or must be substituted.
+
+AC_DEFUN([gl_STDINT_H],
+[
+  AC_PREREQ([2.59])dnl
+
+  dnl Check for long long int and unsigned long long int.
+  AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+  if test $ac_cv_type_long_long_int = yes; then
+    HAVE_LONG_LONG_INT=1
+  else
+    HAVE_LONG_LONG_INT=0
+  fi
+  AC_SUBST([HAVE_LONG_LONG_INT])
+  AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+  if test $ac_cv_type_unsigned_long_long_int = yes; then
+    HAVE_UNSIGNED_LONG_LONG_INT=1
+  else
+    HAVE_UNSIGNED_LONG_LONG_INT=0
+  fi
+  AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
+
+  dnl Check for <inttypes.h>.
+  dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
+  if test $ac_cv_header_inttypes_h = yes; then
+    HAVE_INTTYPES_H=1
+  else
+    HAVE_INTTYPES_H=0
+  fi
+  AC_SUBST([HAVE_INTTYPES_H])
+
+  dnl Check for <sys/types.h>.
+  dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h.
+  if test $ac_cv_header_sys_types_h = yes; then
+    HAVE_SYS_TYPES_H=1
+  else
+    HAVE_SYS_TYPES_H=0
+  fi
+  AC_SUBST([HAVE_SYS_TYPES_H])
+
+  gl_CHECK_NEXT_HEADERS([stdint.h])
+  if test $ac_cv_header_stdint_h = yes; then
+    HAVE_STDINT_H=1
+  else
+    HAVE_STDINT_H=0
+  fi
+  AC_SUBST([HAVE_STDINT_H])
+
+  dnl Now see whether we need a substitute <stdint.h>.
+  if test $ac_cv_header_stdint_h = yes; then
+    AC_CACHE_CHECK([whether stdint.h conforms to C99],
+      [gl_cv_header_working_stdint_h],
+      [gl_cv_header_working_stdint_h=no
+       AC_COMPILE_IFELSE([
+         AC_LANG_PROGRAM([[
+#define __STDC_LIMIT_MACROS 1 /* to make it work also in C++ mode */
+#define __STDC_CONSTANT_MACROS 1 /* to make it work also in C++ mode */
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+]
+gl_STDINT_INCLUDES
+[
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))
+#define TYPE_MAXIMUM(t) \
+  ((t) ((t) 0 < (t) -1 ? (t) -1 : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))))
+struct s {
+  int check_PTRDIFF:
+      PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+      && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+      ? 1 : -1;
+  /* Detect bug in FreeBSD 6.0 / ia64.  */
+  int check_SIG_ATOMIC:
+      SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+      && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+      ? 1 : -1;
+  int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+  int check_WCHAR:
+      WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+      && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+      ? 1 : -1;
+  /* Detect bug in mingw.  */
+  int check_WINT:
+      WINT_MIN == TYPE_MINIMUM (wint_t)
+      && WINT_MAX == TYPE_MAXIMUM (wint_t)
+      ? 1 : -1;
+
+  /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others.  */
+  int check_UINT8_C:
+        (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+  int check_UINT16_C:
+        (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+  /* Detect bugs in OpenBSD 3.9 stdint.h.  */
+#ifdef UINT8_MAX
+  int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+  int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+  int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+  int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+  int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+  int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+  int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+  int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+  int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+  int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+  int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+  int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+  int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+  int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+  int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+         ]])],
+         [gl_cv_header_working_stdint_h=yes])])
+  fi
+  if test "$gl_cv_header_working_stdint_h" = yes; then
+    STDINT_H=
+  else
+    dnl Check for <sys/inttypes.h>, and for
+    dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
+    AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
+    if test $ac_cv_header_sys_inttypes_h = yes; then
+      HAVE_SYS_INTTYPES_H=1
+    else
+      HAVE_SYS_INTTYPES_H=0
+    fi
+    AC_SUBST([HAVE_SYS_INTTYPES_H])
+    if test $ac_cv_header_sys_bitypes_h = yes; then
+      HAVE_SYS_BITYPES_H=1
+    else
+      HAVE_SYS_BITYPES_H=0
+    fi
+    AC_SUBST([HAVE_SYS_BITYPES_H])
+
+    dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
+    dnl character support).
+    AC_CHECK_HEADERS_ONCE([wchar.h])
+
+    gl_STDINT_TYPE_PROPERTIES
+    STDINT_H=stdint.h
+  fi
+  AC_SUBST([STDINT_H])
+])
+
+dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
+dnl Determine the size of each of the given types in bits.
+AC_DEFUN([gl_STDINT_BITSIZEOF],
+[
+  dnl Use a shell loop, to avoid bloating configure, and
+  dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+  dnl   config.h.in,
+  dnl - extra AC_SUBST calls, so that the right substitutions are made.
+  m4_foreach_w([gltype], [$1],
+    [AH_TEMPLATE([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+       [Define to the number of bits in type ']gltype['.])])
+  for gltype in $1 ; do
+    AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
+      [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT],
+         [$2
+#include <limits.h>], [result=unknown])
+       eval gl_cv_bitsizeof_${gltype}=\$result
+      ])
+    eval result=\$gl_cv_bitsizeof_${gltype}
+    if test $result = unknown; then
+      dnl Use a nonempty default, because some compilers, such as IRIX 5 cc,
+      dnl do a syntax check even on unused #if conditions and give an error
+      dnl on valid C code like this:
+      dnl   #if 0
+      dnl   # if  > 32
+      dnl   # endif
+      dnl   #endif
+      result=0
+    fi
+    GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
+    eval BITSIZEOF_${GLTYPE}=\$result
+  done
+  m4_foreach_w([gltype], [$1],
+    [AC_SUBST([BITSIZEOF_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+])
+
+dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES)
+dnl Determine the signedness of each of the given types.
+dnl Define HAVE_SIGNED_TYPE if type is signed.
+AC_DEFUN([gl_CHECK_TYPES_SIGNED],
+[
+  dnl Use a shell loop, to avoid bloating configure, and
+  dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+  dnl   config.h.in,
+  dnl - extra AC_SUBST calls, so that the right substitutions are made.
+  m4_foreach_w([gltype], [$1],
+    [AH_TEMPLATE([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+       [Define to 1 if ']gltype[' is a signed integer type.])])
+  for gltype in $1 ; do
+    AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM([$2[
+            int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])],
+         result=yes, result=no)
+       eval gl_cv_type_${gltype}_signed=\$result
+      ])
+    eval result=\$gl_cv_type_${gltype}_signed
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    if test "$result" = yes; then
+      AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1])
+      eval HAVE_SIGNED_${GLTYPE}=1
+    else
+      eval HAVE_SIGNED_${GLTYPE}=0
+    fi
+  done
+  m4_foreach_w([gltype], [$1],
+    [AC_SUBST([HAVE_SIGNED_]translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+])
+
+dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES)
+dnl Determine the suffix to use for integer constants of the given types.
+dnl Define t_SUFFIX for each such type.
+AC_DEFUN([gl_INTEGER_TYPE_SUFFIX],
+[
+  dnl Use a shell loop, to avoid bloating configure, and
+  dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+  dnl   config.h.in,
+  dnl - extra AC_SUBST calls, so that the right substitutions are made.
+  m4_foreach_w([gltype], [$1],
+    [AH_TEMPLATE(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
+       [Define to l, ll, u, ul, ull, etc., as suitable for
+        constants of type ']gltype['.])])
+  for gltype in $1 ; do
+    AC_CACHE_CHECK([for $gltype integer literal suffix],
+      [gl_cv_type_${gltype}_suffix],
+      [eval gl_cv_type_${gltype}_suffix=no
+       eval result=\$gl_cv_type_${gltype}_signed
+       if test "$result" = yes; then
+         glsufu=
+       else
+         glsufu=u
+       fi
+       for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do
+         case $glsuf in
+           '')  gltype1='int';;
+           l)	gltype1='long int';;
+           ll)	gltype1='long long int';;
+           i64)	gltype1='__int64';;
+           u)	gltype1='unsigned int';;
+           ul)	gltype1='unsigned long int';;
+           ull)	gltype1='unsigned long long int';;
+           ui64)gltype1='unsigned __int64';;
+         esac
+         AC_COMPILE_IFELSE(
+           [AC_LANG_PROGRAM([$2[
+              extern $gltype foo;
+              extern $gltype1 foo;]])],
+           [eval gl_cv_type_${gltype}_suffix=\$glsuf])
+         eval result=\$gl_cv_type_${gltype}_suffix
+         test "$result" != no && break
+       done])
+    GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+    eval result=\$gl_cv_type_${gltype}_suffix
+    test "$result" = no && result=
+    eval ${GLTYPE}_SUFFIX=\$result
+    AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result])
+  done
+  m4_foreach_w([gltype], [$1],
+    [AC_SUBST(translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
+])
+
+dnl gl_STDINT_INCLUDES
+AC_DEFUN([gl_STDINT_INCLUDES],
+[[
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
+]])
+
+dnl gl_STDINT_TYPE_PROPERTIES
+dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t
+dnl of interest to stdint.in.h.
+AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
+[
+  AC_REQUIRE([gl_MULTIARCH])
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
+    gl_STDINT_BITSIZEOF([ptrdiff_t size_t],
+      [gl_STDINT_INCLUDES])
+  fi
+  gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t],
+    [gl_STDINT_INCLUDES])
+  gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t],
+    [gl_STDINT_INCLUDES])
+  gl_cv_type_ptrdiff_t_signed=yes
+  gl_cv_type_size_t_signed=no
+  if test $APPLE_UNIVERSAL_BUILD = 0; then
+    gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t],
+      [gl_STDINT_INCLUDES])
+  fi
+  gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t],
+    [gl_STDINT_INCLUDES])
+])
+
+dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+dnl Remove this when we can assume autoconf >= 2.61.
+m4_ifdef([AC_COMPUTE_INT], [], [
+  AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+])
+
+# Hey Emacs!
+# Local Variables:
+# indent-tabs-mode: nil
+# End:
Index: m4/wchar.m4
===================================================================
--- /dev/null
+++ m4/wchar.m4
@@ -0,0 +1,99 @@
+dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
+
+dnl Copyright (C) 2007-2008 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl Written by Eric Blake.
+
+# wchar.m4 serial 22
+
+AC_DEFUN([gl_WCHAR_H],
+[
+  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+  AC_CACHE_CHECK([whether <wchar.h> is standalone],
+    [gl_cv_header_wchar_h_standalone],
+    [AC_COMPILE_IFELSE([[#include <wchar.h>
+wchar_t w;]],
+      [gl_cv_header_wchar_h_standalone=yes],
+      [gl_cv_header_wchar_h_standalone=no])])
+
+  AC_REQUIRE([gt_TYPE_WINT_T])
+  if test $gt_cv_c_wint_t = yes; then
+    HAVE_WINT_T=1
+  else
+    HAVE_WINT_T=0
+  fi
+  AC_SUBST([HAVE_WINT_T])
+
+  if test $gl_cv_header_wchar_h_standalone != yes || test $gt_cv_c_wint_t != yes; then
+    WCHAR_H=wchar.h
+  fi
+
+  dnl Prepare for creating substitute <wchar.h>.
+  dnl Do it always: WCHAR_H may be empty here but can be set later.
+  dnl Check for <wchar.h> (missing in Linux uClibc when built without wide
+  dnl character support).
+  AC_CHECK_HEADERS_ONCE([wchar.h])
+  if test $ac_cv_header_wchar_h = yes; then
+    HAVE_WCHAR_H=1
+  else
+    HAVE_WCHAR_H=0
+  fi
+  AC_SUBST([HAVE_WCHAR_H])
+  gl_CHECK_NEXT_HEADERS([wchar.h])
+])
+
+dnl Unconditionally enables the replacement of <wchar.h>.
+AC_DEFUN([gl_REPLACE_WCHAR_H],
+[
+  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+  WCHAR_H=wchar.h
+])
+
+AC_DEFUN([gl_WCHAR_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+  GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
+])
+
+AC_DEFUN([gl_WCHAR_H_DEFAULTS],
+[
+  GNULIB_BTOWC=0;      AC_SUBST([GNULIB_BTOWC])
+  GNULIB_WCTOB=0;      AC_SUBST([GNULIB_WCTOB])
+  GNULIB_MBSINIT=0;    AC_SUBST([GNULIB_MBSINIT])
+  GNULIB_MBRTOWC=0;    AC_SUBST([GNULIB_MBRTOWC])
+  GNULIB_MBRLEN=0;     AC_SUBST([GNULIB_MBRLEN])
+  GNULIB_MBSRTOWCS=0;  AC_SUBST([GNULIB_MBSRTOWCS])
+  GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS])
+  GNULIB_WCRTOMB=0;    AC_SUBST([GNULIB_WCRTOMB])
+  GNULIB_WCSRTOMBS=0;  AC_SUBST([GNULIB_WCSRTOMBS])
+  GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS])
+  GNULIB_WCWIDTH=0;    AC_SUBST([GNULIB_WCWIDTH])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_BTOWC=1;        AC_SUBST([HAVE_BTOWC])
+  HAVE_MBSINIT=1;      AC_SUBST([HAVE_MBSINIT])
+  HAVE_MBRTOWC=1;      AC_SUBST([HAVE_MBRTOWC])
+  HAVE_MBRLEN=1;       AC_SUBST([HAVE_MBRLEN])
+  HAVE_MBSRTOWCS=1;    AC_SUBST([HAVE_MBSRTOWCS])
+  HAVE_MBSNRTOWCS=1;   AC_SUBST([HAVE_MBSNRTOWCS])
+  HAVE_WCRTOMB=1;      AC_SUBST([HAVE_WCRTOMB])
+  HAVE_WCSRTOMBS=1;    AC_SUBST([HAVE_WCSRTOMBS])
+  HAVE_WCSNRTOMBS=1;   AC_SUBST([HAVE_WCSNRTOMBS])
+  HAVE_DECL_WCTOB=1;   AC_SUBST([HAVE_DECL_WCTOB])
+  HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH])
+  REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T])
+  REPLACE_BTOWC=0;     AC_SUBST([REPLACE_BTOWC])
+  REPLACE_WCTOB=0;     AC_SUBST([REPLACE_WCTOB])
+  REPLACE_MBSINIT=0;   AC_SUBST([REPLACE_MBSINIT])
+  REPLACE_MBRTOWC=0;   AC_SUBST([REPLACE_MBRTOWC])
+  REPLACE_MBRLEN=0;    AC_SUBST([REPLACE_MBRLEN])
+  REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS])
+  REPLACE_MBSNRTOWCS=0;AC_SUBST([REPLACE_MBSNRTOWCS])
+  REPLACE_WCRTOMB=0;   AC_SUBST([REPLACE_WCRTOMB])
+  REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS])
+  REPLACE_WCWIDTH=0;   AC_SUBST([REPLACE_WCWIDTH])
+  WCHAR_H='';          AC_SUBST([WCHAR_H])
+])
Index: m4/wint_t.m4
===================================================================
--- /dev/null
+++ m4/wint_t.m4
@@ -0,0 +1,28 @@
+# wint_t.m4 serial 4 (gettext-0.18)
+dnl Copyright (C) 2003, 2007-2009 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible.
+dnl Test whether <wchar.h> has the 'wint_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WINT_T],
+[
+  AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
+    [AC_TRY_COMPILE([
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+   <wchar.h>.
+   BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
+   before <wchar.h>.  */
+#include <stddef.h>
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+       wint_t foo = (wchar_t)'\0';], ,
+       [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])])
+  if test $gt_cv_c_wint_t = yes; then
+    AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.])
+  fi
+])
_______________________________________________
Gegl-developer mailing list
Gegl-developer@xxxxxxxxxxxxxxxxxxxxxx
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gegl-developer

[Index of Archives]     [Yosemite News]     [Yosemite Photos]     [gtk]     [GIMP Users]     [KDE]     [Gimp's Home]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux