Add instructions for doing a release
clean up .spec file; perhaps this will be useful to somebody...
Update to 2.2.93
Make 'scanopen' static so GCC doesn't whine about lacking prototype
Add WARN_CFLAGS to pass -W flags for GCC systems
Change various char types around to match across function calls. Fixed bug
    in using available_sizes[i].height which is in pixels, not 64ths of a
    pixel.
diff --git a/ChangeLog b/ChangeLog
index 0462630..311e4d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2004-04-14  Keith Packard  <keithp@keithp.com>
+
+	* INSTALL:
+	Add instructions for doing a release
+	
+	* fontconfig.spec.in:
+	clean up .spec file; perhaps this will be useful to somebody...
+
+	* README:
+	* configure.in:
+	* fontconfig/fontconfig.h:
+	Update to 2.2.93
+	
+	* fc-lang/fc-lang.c:
+	Make 'scanopen' static so GCC doesn't whine about lacking prototype
+	
+	* fc-glyphname/Makefile.am:
+	* fc-lang/Makefile.am:
+	* fc-list/Makefile.am:
+	* fc-match/Makefile.am:
+	* src/Makefile.am:
+	Add WARN_CFLAGS to pass -W flags for GCC systems
+	
+	* src/fcfreetype.c: (FcNoticeFoundry), (FcVendorMatch),
+	(FcVendorFoundry), (FcGetPixelSize), (FcFreeTypeQuery):
+	Change various char types around to match across
+	function calls.
+	Fixed bug in using available_sizes[i].height which 
+	is in pixels, not 64ths of a pixel.
+
 2004-03-06  Keith Packard  <keithp@keithp.com>
 
 	* src/fcfreetype.c: (FcFreeTypeQuery):
diff --git a/INSTALL b/INSTALL
index 86cf4f9..dcd6b3f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -7,3 +7,16 @@
 	$ make
 	$ make install
 
+If you're going to package fontconfig for release, there are several
+important steps:
+
+ 1.	Update the version numbers
+ 		configure.in
+		fontconfig/fontconfig.h
+ 2.	Fix the README
+ 		Change version number
+		Set the date
+ 3.	Commit those changes
+ 4.	tag the tree
+ 		cvs tag fc-2_2_xx
+ 5.	make dist
diff --git a/README b/README
index 5fceba8..381eee7 100644
--- a/README
+++ b/README
@@ -1,7 +1,30 @@
 			Fontconfig
 	Font configuration and customization library
-		      Version 2.2
-		        2003-3-1
+		      Version 2.2.92
+		        2004-2-19
+
+2.2.93
+
+This is the third prerelease of fontconfig 2.3.  Significant changes from
+2.2.92 are:
+
+ o	Use new FreeType #include syntax
+ o	use y_ppem field instead of 'height' in bitmap sizes rec -
+ 	FreeType changed the semantics.  Still uses height for
+	older versions of FreeType
+ o	Don't construct program manuals unless docbook is available
+
+2.2.92
+
+ o	make distcheck work
+
+2.2.91
+
+ o	Switch to SGML manuals
+ o	Add FC_DUAL width spacing value
+ o	Add FcFini to close out fontconfig and release all memory
+ 
+2.2
 
 This is the third public release of fontconfig, a font configuration and
 customization library.  Fontconfig is designed to locate fonts within the
diff --git a/configure.in b/configure.in
index 100d7b9..910ac28 100644
--- a/configure.in
+++ b/configure.in
@@ -33,7 +33,8 @@
 dnl version.  This same version number must appear in fontconfig/fontconfig.h
 dnl Yes, it is a pain to synchronize version numbers.  Unfortunately, it's
 dnl not possible to extract the version number here from fontconfig.h
-AM_INIT_AUTOMAKE(fontconfig, 2.2.92)
+AM_INIT_AUTOMAKE(fontconfig, 2.2.93)
+AM_MAINTAINER_MODE
 
 dnl libtool versioning
 
@@ -76,6 +77,15 @@
 fi
 AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes)
 
+WARN_CFLAGS=""
+
+if test "x$GCC" = "xyes"; then
+	WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \
+	-Wmissing-prototypes -Wmissing-declarations \
+	-Wnested-externs -fno-strict-aliasing"
+fi
+AC_SUBST(WARN_CFLAGS)
+
 dnl ==========================================================================
 
 # Checks for header files.
@@ -132,6 +142,8 @@
 #include FT_FREETYPE_H])
 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM,
 		   [FT_Bitmap_Size structure includes y_ppem field])
+CFLAGS="$fontconfig_save_cflags"
+LIBS="$fontconfig_save_libs"
 
 #
 # Check expat configuration
diff --git a/fc-glyphname/Makefile.am b/fc-glyphname/Makefile.am
index d741f4e..25dbdff 100644
--- a/fc-glyphname/Makefile.am
+++ b/fc-glyphname/Makefile.am
@@ -22,7 +22,7 @@
 # PERFORMANCE OF THIS SOFTWARE.
 #
 
-INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS)
+INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
 
 TMPL=fcglyphname.tmpl.h
 STMPL=${top_srcdir}/fc-glyphname/${TMPL}
diff --git a/fc-lang/Makefile.am b/fc-lang/Makefile.am
index 3544545..d97e52e 100644
--- a/fc-lang/Makefile.am
+++ b/fc-lang/Makefile.am
@@ -22,7 +22,7 @@
 # PERFORMANCE OF THIS SOFTWARE.
 #
 
-INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS)
+INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
 
 TMPL=fclang.tmpl.h
 STMPL=${top_srcdir}/fc-lang/fclang.tmpl.h
diff --git a/fc-lang/fc-lang.c b/fc-lang/fc-lang.c
index edfad3b..31d708b 100644
--- a/fc-lang/fc-lang.c
+++ b/fc-lang/fc-lang.c
@@ -77,7 +77,7 @@
 
 char	*dir = 0;
 
-FILE *
+static FILE *
 scanopen (char *file)
 {
     FILE    *f;
diff --git a/fc-list/Makefile.am b/fc-list/Makefile.am
index 427ab18..1a50948 100644
--- a/fc-list/Makefile.am
+++ b/fc-list/Makefile.am
@@ -29,7 +29,7 @@
 
 bin_PROGRAMS=fc-list
 
-INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS)
+INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
 
 EXTRA_DIST=$(SGML)
 
diff --git a/fc-match/Makefile.am b/fc-match/Makefile.am
index 80629fc..7a32e34 100644
--- a/fc-match/Makefile.am
+++ b/fc-match/Makefile.am
@@ -25,7 +25,7 @@
 
 man_MANS=fc-match.1
 
-INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS)
+INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS)
 
 EXTRA_DIST=$(man_MANS)
 
diff --git a/fontconfig.spec.in b/fontconfig.spec.in
index 47e80aa..9037352 100644
--- a/fontconfig.spec.in
+++ b/fontconfig.spec.in
@@ -38,22 +38,31 @@
 Install fontconfig-devel if you want to develop programs which 
 will use fontconfig.
 
+# Some rpm specific directories. Prefix 'my' hopefully does not collide with anything.
+%define my_docdir         %{_datadir}/doc/%{name}-%{version}
+%define my_develdocdir    %{_datadir}/doc/%{name}-devel-%{version}
+%define my_tmpdocdir      $RPM_BUILD_ROOT%{my_docdir}
+%define my_tmpdeveldocdir $RPM_BUILD_ROOT%{my_develdocdir}
+
 %prep
 %setup -q
 
 %build
-%configure --with-x-fonts=/usr/X11R6/lib/X11/fonts --disable-gtk-doc --disable-docs
+%configure --with-x-fonts=/usr/X11R6/lib/X11/fonts --disable-gtk-doc \
+	--with-docdir=%{my_docdir}
 make %{_smp_mflags}
 
 %install
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
 {
-  %makeinstall
-  # fontconfig is currently installing these in improper location for RPM
-  # based Linux distributions, so we remove what it installs here, and let
-  # RPM pick up the same files with 'doc' directives in the file lists as
-  # a workaround
-  rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/fontconfig
+  %makeinstall docdir=%{my_tmpdocdir} 
+
+  # The make does not distinguish the base and devel packages
+  mkdir -p %{my_tmpdeveldocdir}
+  mv -f %{my_tmpdocdir}/*devel* %{my_tmpdeveldocdir}
+
+  # Use a more informative directory name:
+  mv -f %{my_tmpdeveldocdir}/fontconfig-devel %{my_tmpdeveldocdir}/html
 }
 
 %clean
@@ -70,20 +79,23 @@
 
 %files
 %defattr(-, root, root)
-%doc README AUTHORS COPYING ChangeLog doc/fontconfig-*.{html,txt}
+%doc README AUTHORS COPYING ChangeLog doc/fontconfig-user.{html,txt}
+%{my_docdir}/*
 %dir %{_sysconfdir}/fonts
 %{_sysconfdir}/fonts/fonts.conf
 %{_sysconfdir}/fonts/fonts.dtd
 %config %{_sysconfdir}/fonts/local.conf
 %{_bindir}/fc-*
 %{_libdir}/libfontconfig*.so.*
+%{_mandir}/man1/*
 %{_mandir}/man5/*
 
 %files devel
 %defattr(-, root, root)
-%doc doc/fontconfig-devel.txt doc/fontconfig-devel/*
+#%doc doc/fontconfig-devel.txt doc/fontconfig-devel/*
+%{my_develdocdir}
 %dir %{_includedir}/fontconfig
-%{_includedir}/fontconfig
+%{_includedir}/fontconfig/*
 %{_libdir}/*.a
 %{_libdir}/*.la
 %{_libdir}/libfontconfig.so
@@ -91,6 +103,16 @@
 %{_mandir}/man3/*
 
 %changelog
+* Wed Mar 20 2004 Enrique Perez-Terron <enrio@online.no>
+- Added mandir /man1/* to main file list
+- Added missing '/*' after includedir/fontconfig to avoid "listed twice" error.
+- Removed configure option --disable-docs since its problem is solved, see below.
+- Added option to makeinstall to have it install docs in the proper directory.
+  Notice though that the %doc macro deletes and recreates the docs directory.
+- Cleaner separation of devel docs.
+- Renamed doc/fontconfig-devel-*/fontconfig-devel subdirectory to 'html'.
+- Removed %doc macro from devel filelist, since it deletes installed files.
+
 * Fri Mar  7 2003 Mike A. Harris <mharris@redhat.com> 2.1.92-1
 - Removed man1/* and added man5/* to main package and man3/* to devel package
 - Added missing defattr(-, root, root) to main package
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
index 8894219..75c16d3 100644
--- a/fontconfig/fontconfig.h
+++ b/fontconfig/fontconfig.h
@@ -40,7 +40,7 @@
 
 #define FC_MAJOR	2
 #define FC_MINOR	2
-#define FC_REVISION	92
+#define FC_REVISION	93
 
 #define FC_VERSION	((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
 
diff --git a/src/Makefile.am b/src/Makefile.am
index 7890e96..0e42b24 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -44,6 +44,7 @@
 INCLUDES = 						\
 	$(FREETYPE_CFLAGS)				\
 	$(EXPAT_CFLAGS)					\
+	$(WARN_CFLAGS)					\
 	-DFONTCONFIG_PATH='"$(CONFDIR)"'		\
 	-I$(top_srcdir)					\
 	-I$(top_srcdir)/src
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index 6248595..816f08a 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -158,31 +158,34 @@
    URW++, and both strings appear in the notice. */
 
 static const struct {
-    const FcChar8   *notice;
+    const FT_String *notice;
     const FcChar8   *foundry;
 } FcNoticeFoundries[] = {
-    { (const FcChar8*) "Bigelow",	(const FcChar8 *) "b&h" },
-    { (const FcChar8*) "Adobe",		(const FcChar8 *) "adobe" },
-    { (const FcChar8*) "Bitstream",	(const FcChar8 *) "bitstream" },
-    { (const FcChar8*) "Monotype",	(const FcChar8 *) "monotype" },
-    { (const FcChar8*) "Linotype",	(const FcChar8 *) "linotype" },
-    { (const FcChar8*) "LINOTYPE-HELL", (const FcChar8 *) "linotype" },
-    { (const FcChar8*) "IBM",		(const FcChar8 *) "ibm" },
-    { (const FcChar8*) "URW",		(const FcChar8 *) "urw" },
-    { (const FcChar8*) "International Typeface Corporation", 
+    { (const FT_String *) "Bigelow",	(const FcChar8 *) "b&h" },
+    { (const FT_String *) "Adobe",	(const FcChar8 *) "adobe" },
+    { (const FT_String *) "Bitstream",	(const FcChar8 *) "bitstream" },
+    { (const FT_String *) "Monotype",	(const FcChar8 *) "monotype" },
+    { (const FT_String *) "Linotype",	(const FcChar8 *) "linotype" },
+    { (const FT_String *) "LINOTYPE-HELL",
+					(const FcChar8 *) "linotype" },
+    { (const FT_String *) "IBM",	(const FcChar8 *) "ibm" },
+    { (const FT_String *) "URW",	(const FcChar8 *) "urw" },
+    { (const FT_String *) "International Typeface Corporation", 
 					(const FcChar8 *) "itc" },
-    { (const FcChar8*) "Tiro Typeworks",(const FcChar8 *) "tiro" },
-    { (const FcChar8*) "XFree86",	(const FcChar8 *) "xfree86" },
-    { (const FcChar8*) "Microsoft",	(const FcChar8 *) "microsoft" },
-    { (const FcChar8*) "Omega",		(const FcChar8 *) "omega" },
-    { (const FcChar8*) "Font21",	(const FcChar8 *) "hwan" },
-    { (const FcChar8*) "HanYang System",(const FcChar8 *) "hanyang" }
+    { (const FT_String *) "Tiro Typeworks",
+					(const FcChar8 *) "tiro" },
+    { (const FT_String *) "XFree86",	(const FcChar8 *) "xfree86" },
+    { (const FT_String *) "Microsoft",	(const FcChar8 *) "microsoft" },
+    { (const FT_String *) "Omega",	(const FcChar8 *) "omega" },
+    { (const FT_String *) "Font21",	(const FcChar8 *) "hwan" },
+    { (const FT_String *) "HanYang System",
+					(const FcChar8 *) "hanyang" }
 };
 
 #define NUM_NOTICE_FOUNDRIES	(sizeof (FcNoticeFoundries) / sizeof (FcNoticeFoundries[0]))
 
 static const FcChar8 *
-FcNoticeFoundry(const char *notice)
+FcNoticeFoundry(const FT_String *notice)
 {
     int i;
 
@@ -194,7 +197,7 @@
 }
 
 static FcBool
-FcVendorMatch(const char *vendor, const char *vendor_string)
+FcVendorMatch(const FT_Char vendor[4], const FT_Char *vendor_string)
 {
     /* vendor is not necessarily NUL-terminated. */
     int i, len;
@@ -214,44 +217,44 @@
    entries for padding both with spaces and NULs. */
 
 static const struct {
-    const FcChar8   *vendor;
+    const FT_Char   *vendor;
     const FcChar8   *foundry;
 } FcVendorFoundries[] = {
-    { (const FcChar8*) "ADBE", (const FcChar8 *) "adobe"},
-    { (const FcChar8*) "AGFA", (const FcChar8 *) "agfa"},
-    { (const FcChar8*) "ALTS", (const FcChar8 *) "altsys"},
-    { (const FcChar8*) "APPL", (const FcChar8 *) "apple"},
-    { (const FcChar8*) "ARPH", (const FcChar8 *) "arphic"},
-    { (const FcChar8*) "ATEC", (const FcChar8 *) "alltype"},
-    { (const FcChar8*) "B&H",  (const FcChar8 *) "b&h"},
-    { (const FcChar8*) "BITS", (const FcChar8 *) "bitstream"},
-    { (const FcChar8*) "CANO", (const FcChar8 *) "cannon"},
-    { (const FcChar8*) "DYNA", (const FcChar8 *) "dynalab"},
-    { (const FcChar8*) "EPSN", (const FcChar8 *) "epson"},
-    { (const FcChar8*) "FJ",   (const FcChar8 *) "fujitsu"},
-    { (const FcChar8*) "IBM",  (const FcChar8 *) "ibm"},
-    { (const FcChar8*) "ITC",  (const FcChar8 *) "itc"},
-    { (const FcChar8*) "IMPR", (const FcChar8 *) "impress"},
-    { (const FcChar8*) "LARA", (const FcChar8 *) "larabiefonts"},
-    { (const FcChar8*) "LEAF", (const FcChar8 *) "interleaf"},
-    { (const FcChar8*) "LETR", (const FcChar8 *) "letraset"},
-    { (const FcChar8*) "LINO", (const FcChar8 *) "linotype"},
-    { (const FcChar8*) "MACR", (const FcChar8 *) "macromedia"},
-    { (const FcChar8*) "MONO", (const FcChar8 *) "monotype"},
-    { (const FcChar8*) "MS",   (const FcChar8 *) "microsoft"},
-    { (const FcChar8*) "MT",   (const FcChar8 *) "monotype"},
-    { (const FcChar8*) "NEC",  (const FcChar8 *) "nec"},
-    { (const FcChar8*) "PARA", (const FcChar8 *) "paratype"},
-    { (const FcChar8*) "QMSI", (const FcChar8 *) "qms"},
-    { (const FcChar8*) "RICO", (const FcChar8 *) "ricoh"},
-    { (const FcChar8*) "URW",  (const FcChar8 *) "urw"},
-    { (const FcChar8*) "Y&Y",  (const FcChar8 *) "y&y"}
+    { (const FT_Char *) "ADBE", (const FcChar8 *) "adobe"},
+    { (const FT_Char *) "AGFA", (const FcChar8 *) "agfa"},
+    { (const FT_Char *) "ALTS", (const FcChar8 *) "altsys"},
+    { (const FT_Char *) "APPL", (const FcChar8 *) "apple"},
+    { (const FT_Char *) "ARPH", (const FcChar8 *) "arphic"},
+    { (const FT_Char *) "ATEC", (const FcChar8 *) "alltype"},
+    { (const FT_Char *) "B&H",  (const FcChar8 *) "b&h"},
+    { (const FT_Char *) "BITS", (const FcChar8 *) "bitstream"},
+    { (const FT_Char *) "CANO", (const FcChar8 *) "cannon"},
+    { (const FT_Char *) "DYNA", (const FcChar8 *) "dynalab"},
+    { (const FT_Char *) "EPSN", (const FcChar8 *) "epson"},
+    { (const FT_Char *) "FJ",   (const FcChar8 *) "fujitsu"},
+    { (const FT_Char *) "IBM",  (const FcChar8 *) "ibm"},
+    { (const FT_Char *) "ITC",  (const FcChar8 *) "itc"},
+    { (const FT_Char *) "IMPR", (const FcChar8 *) "impress"},
+    { (const FT_Char *) "LARA", (const FcChar8 *) "larabiefonts"},
+    { (const FT_Char *) "LEAF", (const FcChar8 *) "interleaf"},
+    { (const FT_Char *) "LETR", (const FcChar8 *) "letraset"},
+    { (const FT_Char *) "LINO", (const FcChar8 *) "linotype"},
+    { (const FT_Char *) "MACR", (const FcChar8 *) "macromedia"},
+    { (const FT_Char *) "MONO", (const FcChar8 *) "monotype"},
+    { (const FT_Char *) "MS",   (const FcChar8 *) "microsoft"},
+    { (const FT_Char *) "MT",   (const FcChar8 *) "monotype"},
+    { (const FT_Char *) "NEC",  (const FcChar8 *) "nec"},
+    { (const FT_Char *) "PARA", (const FcChar8 *) "paratype"},
+    { (const FT_Char *) "QMSI", (const FcChar8 *) "qms"},
+    { (const FT_Char *) "RICO", (const FcChar8 *) "ricoh"},
+    { (const FT_Char *) "URW",  (const FcChar8 *) "urw"},
+    { (const FT_Char *) "Y&Y",  (const FcChar8 *) "y&y"}
 };
 
 #define NUM_VENDOR_FOUNDRIES	(sizeof (FcVendorFoundries) / sizeof (FcVendorFoundries[0]))
 
 static const FcChar8 *
-FcVendorFoundry(const char *vendor)
+FcVendorFoundry(const FT_Char vendor[4])
 {
     int i;
     
@@ -263,8 +266,8 @@
 }
 
 typedef struct _FcStringConst {
-    const char	*name;
-    int		value;
+    const FcChar8   *name;
+    int		    value;
 } FcStringConst;
 
 static int
@@ -361,7 +364,7 @@
 #if HAVE_FT_BITMAP_SIZE_Y_PPEM
     return (double) face->available_sizes[i].y_ppem / 64.0;
 #else
-    return (double) face->available_sizes[i].height / 64.0;
+    return (double) face->available_sizes[i].height;
 #endif
 }
 
@@ -670,7 +673,7 @@
         case TT_NAME_ID_MANUFACTURER:
 	    /* If the foundry wasn't found in the OS/2 table, look here */
             if(!foundry)
-                foundry = FcNoticeFoundry(utf8);
+                foundry = FcNoticeFoundry((FT_String *) utf8);
             break;
 	}
 	if (utf8)