diff --git a/ChangeLog b/ChangeLog index 8e26261b0..0760dd996 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,47 @@ +2004-08-11 Danny + + * src/base/ftstream.c (FT_Stream_Close): Don't reset stream->close + to NULL. This allows custom close functions to delete the FT_STREAM + object. + +2004-08-11 Werner Lemberg + + Add API to get information about SFNT tables. + + * include/freetype/internal/services/svsfnt.h + (FT_SFNT_Table_Info_Func): New typedef. + (SFNT_Table): Add it. + + * src/base/ftobjs (FT_Sfnt_Table_Info): New function. + + * include/freetype/tttables.h: Updated. + + * src/sfnt/sfdriver.c (sfnt_table_info): New function. + (sfnt_service_sfnt_table): Add it. + + * docs/CHANGES: Updated. + + + * include/freetype/freetype.h (FREETYPE_PATCH): Set to 10. + + * builds/unix/configure.ac (version_info): Set to 9:8:3. + * builds/unix/configure: Updated. + + * builds/win32/visualc/index.html, + builds/win32/visualc/freetype.dsp, + builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/. + + * builds/freetype.mk (refdoc), README, Jamfile (RefDoc): + s/2.1.8/2.1.9/. + + * docs/CHANGES, docs/VERSION.DLL: Updated. + +2004-08-11 Detlef Würkner + + * src/base/ftrfork.c (FT_Raccess_Guess) + [!FT_CONFIG_OPTION_GUESSING_EMBEDDED_FORK]: Remove compiler + warnings. + 2004-08-06 Adam Piotrowski * src/pfr/pfrload.c (pfr_sort_kerning_pairs): Single-byte diff --git a/Jamfile b/Jamfile index 54fe154e8..9d2637498 100644 --- a/Jamfile +++ b/Jamfile @@ -148,7 +148,7 @@ if $(DEBUG_HINTER) actions RefDoc { - python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.1.9 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h $(FT2_INCLUDE)/freetype/cache/*.h + python $(FT2_SRC)/tools/docmaker/docmaker.py --prefix=ft2 --title=FreeType-2.1.10 --output=$(DOC_DIR) $(FT2_INCLUDE)/freetype/*.h $(FT2_INCLUDE)/freetype/config/*.h $(FT2_INCLUDE)/freetype/cache/*.h } RefDoc refdoc ; diff --git a/README b/README index 354d67d1c..81740b109 100644 --- a/README +++ b/README @@ -9,8 +9,8 @@ is called `libttf'. They are *not* compatible! - FreeType 2.1.9 - ============== + FreeType 2.1.10 + =============== Please read the docs/CHANGES file, it contains IMPORTANT INFORMATION. @@ -19,9 +19,9 @@ Note that the FreeType 2 documentation is now available as a separate package from our sites. See: - ftp://ftp.freetype.org/freetype/freetype2/ftdocs-2.1.9.tar.bz2 - ftp://ftp.freetype.org/freetype/freetype2/ftdocs-2.1.9.tar.gz - ftp://ftp.freetype.org/freetype/freetype2/ftdoc219.zip + ftp://ftp.freetype.org/freetype/freetype2/ftdocs-2.1.10.tar.bz2 + ftp://ftp.freetype.org/freetype/freetype2/ftdocs-2.1.10.tar.gz + ftp://ftp.freetype.org/freetype/freetype2/ftdoc2110.zip Bugs diff --git a/builds/freetype.mk b/builds/freetype.mk index 00325d6fc..ff1b19e79 100644 --- a/builds/freetype.mk +++ b/builds/freetype.mk @@ -254,7 +254,7 @@ library: $(PROJECT_LIBRARY) refdoc: python $(SRC_DIR)/tools/docmaker/docmaker.py \ --prefix=ft2 \ - --title=FreeType-2.1.9 \ + --title=FreeType-2.1.10 \ --output=$(DOC_DIR) \ $(PUBLIC_DIR)/*.h \ $(PUBLIC_DIR)/config/*.h \ diff --git a/builds/unix/configure b/builds/unix/configure index d08ac9d6a..cc8efc0dc 100644 --- a/builds/unix/configure +++ b/builds/unix/configure @@ -1720,7 +1720,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # Don't forget to update docs/VERSION.DLL! -version_info='9:7:3' +version_info='9:8:3' ft_version=`echo $version_info | tr : .` diff --git a/builds/unix/configure.ac b/builds/unix/configure.ac index 71a04ce90..feb4e50e2 100644 --- a/builds/unix/configure.ac +++ b/builds/unix/configure.ac @@ -8,7 +8,7 @@ AC_CONFIG_SRCDIR([ftconfig.in]) # Don't forget to update docs/VERSION.DLL! -version_info='9:7:3' +version_info='9:8:3' AC_SUBST([version_info]) ft_version=`echo $version_info | tr : .` AC_SUBST([ft_version]) diff --git a/builds/win32/visualc/freetype.dsp b/builds/win32/visualc/freetype.dsp index 5e88deb38..76a5f318c 100644 --- a/builds/win32/visualc/freetype.dsp +++ b/builds/win32/visualc/freetype.dsp @@ -54,7 +54,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype2110.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Debug" @@ -78,7 +78,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype2110_D.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Debug Multithreaded" @@ -103,7 +103,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo /out:"lib\freetype200b8_D.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219MT_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype2110MT_D.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Release Multithreaded" @@ -127,7 +127,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo /out:"lib\freetype200b8.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219MT.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype2110MT.lib" !ELSEIF "$(CFG)" == "freetype - Win32 Release Singlethreaded" @@ -152,7 +152,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype206.lib" -# ADD LIB32 /out:"..\..\..\objs\freetype219ST.lib" +# ADD LIB32 /out:"..\..\..\objs\freetype2110ST.lib" # SUBTRACT LIB32 /nologo !ELSEIF "$(CFG)" == "freetype - Win32 Debug Singlethreaded" @@ -178,7 +178,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LIB32=link.exe -lib # ADD BASE LIB32 /nologo /out:"..\..\..\objs\freetype206_D.lib" -# ADD LIB32 /nologo /out:"..\..\..\objs\freetype219ST_D.lib" +# ADD LIB32 /nologo /out:"..\..\..\objs\freetype2110ST_D.lib" !ENDIF diff --git a/builds/win32/visualc/freetype.vcproj b/builds/win32/visualc/freetype.vcproj index 4967e582a..7e4c58f06 100644 --- a/builds/win32/visualc/freetype.vcproj +++ b/builds/win32/visualc/freetype.vcproj @@ -41,7 +41,7 @@ Name="VCCustomBuildTool"/> @@ -94,7 +94,7 @@ Name="VCCustomBuildTool"/> @@ -147,7 +147,7 @@ Name="VCCustomBuildTool"/> + OutputFile="..\..\..\objs\freetype2110ST.lib"/> @@ -248,7 +248,7 @@ Name="VCCustomBuildTool"/> @@ -299,7 +299,7 @@ Name="VCCustomBuildTool"/> diff --git a/builds/win32/visualc/index.html b/builds/win32/visualc/index.html index 9454d4c24..459e3e92c 100644 --- a/builds/win32/visualc/index.html +++ b/builds/win32/visualc/index.html @@ -12,14 +12,14 @@

This directory contains a project files for Visual C++, named freetype.dsp, and Visual Studio, called freetype.sln. It -will compile the following libraries from the FreeType 2.1.9 sources:

+will compile the following libraries from the FreeType 2.1.10 sources:

    -    freetype219.lib     - release build; single threaded
    -    freetype219_D.lib   - debug build;   single threaded
    -    freetype219MT.lib   - release build; multi-threaded
    -    freetype219MT_D.lib - debug build;   multi-threaded
    + freetype2110.lib - release build; single threaded + freetype2110_D.lib - debug build; single threaded + freetype2110MT.lib - release build; multi-threaded + freetype2110MT_D.lib - debug build; multi-threaded

Be sure to extract the files with the Windows (CR+LF) line endings. ZIP diff --git a/docs/CHANGES b/docs/CHANGES index 5b11097c1..9ca43f96e 100644 --- a/docs/CHANGES +++ b/docs/CHANGES @@ -20,6 +20,9 @@ LATEST CHANGES BETWEEN 2.1.10 and 2.1.9 setting family and style in SFNT fonts (patch from Kornfeld Eliyahu Peter). + - A new API `FT_Sfnt_Table_Info' (in FT_TRUETYPE_TABLES_H) has + been added to retrieve name and size information of SFNT tables. + LATEST CHANGES BETWEEN 2.1.9 and 2.1.8 diff --git a/docs/VERSION.DLL b/docs/VERSION.DLL index 9e27a57d2..a143d290d 100644 --- a/docs/VERSION.DLL +++ b/docs/VERSION.DLL @@ -52,6 +52,7 @@ systems, but not all of them: release libtool so ------------------------------- + 2.1.10 9.8.3 6.3.8 2.1.9 9.7.3 6.3.7 2.1.8 9.6.3 6.3.6 2.1.7 9.5.3 6.3.5 diff --git a/include/freetype/freetype.h b/include/freetype/freetype.h index 3780a2836..d9f934487 100644 --- a/include/freetype/freetype.h +++ b/include/freetype/freetype.h @@ -44,7 +44,7 @@ /* */ #define FREETYPE_MAJOR 2 #define FREETYPE_MINOR 1 -#define FREETYPE_PATCH 9 +#define FREETYPE_PATCH 10 #include diff --git a/include/freetype/internal/services/svsfnt.h b/include/freetype/internal/services/svsfnt.h index 06a5b1c23..cdd07518d 100644 --- a/include/freetype/internal/services/svsfnt.h +++ b/include/freetype/internal/services/svsfnt.h @@ -4,7 +4,7 @@ /* */ /* The FreeType PostScript name services (specification). */ /* */ -/* Copyright 2003 by */ +/* Copyright 2003, 2004 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -50,11 +50,22 @@ FT_BEGIN_HEADER (*FT_SFNT_TableGetFunc)( FT_Face face, FT_Sfnt_Tag tag ); - + + /* + * Used to implement FT_Sfnt_Table_Info(). + */ + typedef FT_Error + (*FT_SFNT_TableInfoFunc)( FT_Face face, + FT_UInt idx, + FT_ULong *tag, + FT_ULong *length ); + + FT_DEFINE_SERVICE( SFNT_Table ) { FT_SFNT_TableLoadFunc load_table; FT_SFNT_TableGetFunc get_table; + FT_SFNT_TableInfoFunc table_info; }; /* */ diff --git a/include/freetype/tttables.h b/include/freetype/tttables.h index 26e66b977..ccf43c68c 100644 --- a/include/freetype/tttables.h +++ b/include/freetype/tttables.h @@ -663,6 +663,43 @@ FT_BEGIN_HEADER FT_ULong* length ); + /************************************************************************** + * + * + * FT_Sfnt_Table_Info + * + * + * Returns information on an SFNT table. + * + * + * face :: + * A handle to the source face. + * + * table_index :: + * The index of an SFNT table. The function returns + * FT_Err_Table_Missing for an invalid value. + * + * + * tag :: + * The name tag of the SFNT table. + * + * length :: + * The length of the SFNT table. + * + * + * FreeType error code. 0 means success. + * + * + * SFNT tables with length zero are treated as missing by Windows. + * + */ + FT_EXPORT( FT_Error ) + FT_Sfnt_Table_Info( FT_Face face, + FT_UInt table_index, + FT_ULong *tag, + FT_ULong *length ); + + /*************************************************************************/ /* */ /* */ diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index bd9636775..b18e8ed43 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -2508,6 +2508,28 @@ } + /* documentation is in tttables.h */ + + FT_EXPORT_DEF( FT_Error ) + FT_Sfnt_Table_Info( FT_Face face, + FT_UInt table_index, + FT_ULong *tag, + FT_ULong *length ) + { + FT_Service_SFNT_Table service; + + + if ( !face || !FT_IS_SFNT( face ) ) + return FT_Err_Invalid_Face_Handle; + + FT_FACE_FIND_SERVICE( face, service, SFNT_TABLE ); + if ( service == NULL ) + return FT_Err_Unimplemented_Feature; + + return service->table_info( face, table_index, tag, length ); + } + + FT_EXPORT_DEF( FT_ULong ) FT_Get_CMap_Language_ID( FT_CharMap charmap ) { diff --git a/src/base/ftrfork.c b/src/base/ftrfork.c index cf790ccc0..c9dbe4a3d 100644 --- a/src/base/ftrfork.c +++ b/src/base/ftrfork.c @@ -701,6 +701,10 @@ { int i; + FT_UNUSED( library ); + FT_UNUSED( stream ); + FT_UNUSED( base_name ); + for ( i = 0; i < FT_RACCESS_N_RULES; i++ ) { diff --git a/src/base/ftstream.c b/src/base/ftstream.c index 932fe1b40..4fb933ef4 100644 --- a/src/base/ftstream.c +++ b/src/base/ftstream.c @@ -49,10 +49,7 @@ FT_Stream_Close( FT_Stream stream ) { if ( stream && stream->close ) - { stream->close( stream ); - stream->close = NULL; - } } diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c index 7da53d2f1..05f62995a 100644 --- a/src/sfnt/sfdriver.c +++ b/src/sfnt/sfdriver.c @@ -92,10 +92,30 @@ } + static FT_Error + sfnt_table_info( TT_Face face, + FT_UInt idx, + FT_ULong *tag, + FT_ULong *length ) + { + if ( !tag || !length ) + return SFNT_Err_Invalid_Argument; + + if ( idx >= face->num_tables ) + return SFNT_Err_Table_Missing; + + *tag = face->dir_tables[idx].Tag; + *length = face->dir_tables[idx].Length; + + return SFNT_Err_Ok; + } + + static const FT_Service_SFNT_TableRec sfnt_service_sfnt_table = { (FT_SFNT_TableLoadFunc)tt_face_load_any, - (FT_SFNT_TableGetFunc) get_sfnt_table + (FT_SFNT_TableGetFunc) get_sfnt_table, + (FT_SFNT_TableInfoFunc)sfnt_table_info };