Werner Lemberg
1039234c39
Adding some comments.
2002-08-18 07:15:52 +00:00
Werner Lemberg
f25ce9d0b3
* src/cff/cffgload.c (cff_free_glyph_data),
...
src/cff/cffload.c (cff_font_load): Use FT_UNUSED.
* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Initialize `error'.
* src/sfnt/sfobjs.c (SFNT_Load_Face): Fix compiler warning.
2002-08-15 23:07:18 +00:00
Werner Lemberg
3c403e4c17
Some formatting.
...
* src/cff/cffcmap.c: Remove compiler warnings.
* src/cache/ftccache.c, src/cache/ftccache.i,
src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
* src/cff/cffload.c: s/select/fdselect/.
* src/raster/ftraster.c: s/wait/waiting/.
2002-08-06 21:47:40 +00:00
Graham Asher
ce12182cfc
Modified incremental loading interface to be closer to David Turner's
...
preferences. The header freetype.h is not now affected, the interface is
specified via an FT_Parameter, the pointer to the interface is hidden in an
internal part of the face record, and all the definitions are in ftincrem.h.
2002-08-01 15:29:17 +00:00
Werner Lemberg
bdb10748a7
* src/sfnt/ttload.c (sfnt_dir_check): Make it work with TTCs.
2002-07-27 22:51:28 +00:00
Werner Lemberg
7f74a52a21
Fixing ChangeLog entries.
...
Some formatting.
* src/truetype/ttgload.c (load_truetype_glyph)
[FT_CONFIG_OPTION_INCREMENTAL]: s/memset/ft_memset/.
* src/autohint/ahhint.c (ah_hint_edges_3): Fix compiler warning.
* src/cff/cffload.c (cff_encoding_load): Remove `memory' variable.
* src/cff/cffcmap.c (cff_cmap_encoding_init): Remove `psnames'
variable.
* src/truetype/ttgload.c (load_truetype_glyph): Remove statement
without effect.
* src/truetype/ttdriver (Get_Char_Index, Get_Next_Char): Removed.
2002-07-26 09:09:10 +00:00
Graham Asher
320da730d4
More work on supporting fonts passed from GhostScript:
...
sfnt_dir_check now ignores the tables 'glyx' and 'locx' which are hacked-out
versions of 'glyf' and 'loca' in some PostScript Type 42 fonts, and will
generally be invalid.
2002-07-19 11:40:51 +00:00
Graham Asher
cd0d1dfa04
Changes to support incremental Type 42 fonts: assume a font has glyphs if it
...
has an incremental interface object.
2002-07-18 16:38:07 +00:00
David Turner
fed59b7cc2
* src/sfnt/ttload.c (TT_Load_SFNT_Header): fixed a recent bug that prevented
...
OpenType fonts to be recognized by FreeType
2002-07-17 22:51:06 +00:00
David Turner
3e19d85dd4
* include/freetype/config/ftoption.h, include/freetype/internal/tttypes.h,
...
src/base/ftobjs.c, src/bdf/bdfdrivr.c, src/cff/cffobjs.c,
src/pcf/pcfdrivr.c, src/sfnt/sfobjs.c, src/sfnt/ttcmap0.c,
src/sfnt/ttcmap0.h, src/sfnt/ttload.c, src/type1/t1objs.c,
src/type42/t42objs.c, src/winfonts/winfnt.c: code cleanup,
FT_CONFIG_OPTION_USE_CMAPS is now the default
2002-07-17 21:52:20 +00:00
David Turner
b55464fafd
small fix
2002-07-11 23:55:18 +00:00
David Turner
3314a975b9
small fix
2002-07-11 23:51:44 +00:00
David Turner
7acd73fd6a
* src/sfnt/ttload.c, src/sfnt/ttload.h, src/sfnt/ttdriver.c: changing
...
the SFNT loader to check for SFNT-based font files differently. We now
ignore the range "helper" fields and check the "head" table's magic
number instead.
2002-07-11 23:41:14 +00:00
David Turner
6ec3f34765
* src/sfnt/ttcmap0.c: fixing the cmap 8 and 12 parsing routines
2002-07-01 21:50:12 +00:00
David Turner
a1e45652be
* builds/win32/ftdebug.c: added a missing #endif
...
* src/sfnt/ttload.c, src/bdf/bdflib.c: removing compiler warnings
* src/type42/t42objs.c: removed the bug that prevented un-hinted
outlines to be loaded
2002-06-11 20:35:58 +00:00
David Turner
25a6e3a167
* include/freetype/internal/ftobjs.h, src/autohint/ahglyph.c,
...
src/base/ftobjs.c, src/objs/fttype1.c, src/sfnt/ttcmap0.c,
src/smooth/ftgrays.c: changed uses of "setjmp" and "longjmp"
to "ft_setjmp" and "ft_lonjmp". Removed direct references to
<stdio.h> and <setjmp.h> when appropriate, to eventually replace
them with a FT_CONFIG_STANDARD_LIBRARY_H. Useful for the XFree86
Font Server backend based on FT2.
2002-06-10 23:03:35 +00:00
Werner Lemberg
877ff67887
* src/base/ftnames.c (FT_Get_Sfnt_Name): Don't use FT_STREAM_READ_AT
...
but FT_STREAM_READ.
Declare `stream' variable.
2002-05-28 06:03:10 +00:00
David Turner
791d83a612
* include/freetype/internal/tttypes.h, src/sfnt/ttload.c,
...
src/sfnt/sfobjs.c, src/sfnt/sfdriver.c, src/base/ftnames.c:
fixing the SFNT name table loader to support various buggy fonts.
it now ignores empty name entries, entries with invalid pointer
offsets and certain fonts containing tables with broken "storageOffset"
fields.
name strings are now loaded on demand, which reduces the memory
requirements for a given FT_Face tremendously (for example, the
name table of Arial.ttf is about 10Kb and contains 70 names !!)
finally, this is a _quick_ fix. The whole name table loader and
interface will be rewritten in a much more cleanly way shortly,
once CSEH have been introduced in the sources.
2002-05-27 23:52:01 +00:00
Werner Lemberg
bd889e5de9
* src/sfnt/ttload.c (TT_LookUp_Table): Protect against tables
...
with a zero length value.
* builds/beos/beos.mk: Include `link-std.mk'.
* src/type1/t1load.h (T1_Loader): Renamed to...
(T1_LoaderRec): This.
(T1_Loader): Now pointer to T1_LoaderRec.
* src/type1/t1load.c: Updated.
* include/freetype/internal/t1types.h, src/type1/t1load.c,
src/type1/t1objs.c:
s/T1_ENCODING_TYPE_EXPORT/T1_ENCODING_TYPE_EXPERT/.
2002-05-12 19:59:17 +00:00
Werner Lemberg
948ee807e1
* src/sfnt/ttcmap0.c (tt_cmap4_char_index): Fix serious typo
...
(0xFFFU -> 0xFFFFU).
* docs/INSTALL: Fix URL of makepp.
formatting
2002-05-02 06:50:58 +00:00
David Turner
2062286fa8
removed compiler warning
2002-05-01 08:48:35 +00:00
David Turner
3c5a3e45c9
* src/sfnt/ttcmap0.c (tt_cmap4_validate):
...
fixed over-restrictive validation test. the charmap validator
now accepts overlapping ranges in format 4 charmaps.
* src/sfnt/ttcmap0.c (tt_cmap4_char_index):
switched to a binary search algorithm. Certain fonts contain
more than 170 distinct segments !!
2002-05-01 08:40:32 +00:00
David Turner
af48e32c17
* src/sfnt/ttload.c (TT_Load_Names): applied a small work-around to
...
manage fonts containing a broken name table (e.g. "hya6gb.ttf")
2002-05-01 08:38:08 +00:00
David Turner
df689c25ce
* src/sfnt/sfobjs.c (tt_face_get_name): fixing a bug that
...
caused FreeType to crash when certain broken fonts (like
"hya6gb.ttf") were opened.
2002-05-01 08:36:12 +00:00
Werner Lemberg
5f0ee94c06
`interface' is reserved on the Mac.
...
* include/freetype/ftoutln.h, include/freetype/internal/sfnt.h,
src/base/ftoutln.c: s/interface/func_interface/.
* src/base/ftbbox.c (FT_Outline_Get_BBox):
s/interface/bbox_interface/.
* src/cff/cffdrivr.c: s/interface/module_interface/.
* src/cff/cffload.c, src/cff/cffload.h:
s/interface/psnames_interface/.
* src/cid/cidriver.c: s/interface/cid_interface/.
* src/sfnt/sfdriver.c: s/interface/module_interface/.
* src/smooth/ftgrays.c: s/interface/func_interface/.
* src/truetype/ttdriver.c: s/interface/tt_interface/.
* src/type1/t1driver.c: s/interface/t1_interface/.
2002-04-30 06:37:52 +00:00
Werner Lemberg
1573adf971
* src/pcf/pcfdriver.c (PCF_Face_Init) [!FT_CONFIG_OPTION_USE_CMAPS]:
...
`root' -> `face->root'.
* src/sfnt/ttcmap0.c (TT_Build_CMaps) [!FT_CONFIG_OPTION_USE_CMAPS]:
Removed.
* src/sfnt/ttcmap0.c: Declare TT_Build_CMaps only for
FT_CONFIG_OPTION_USE_CMAPS.
2002-04-28 12:25:31 +00:00
Werner Lemberg
b658ac9e63
* src/pfr/pfrerror.h: New file.
...
* include/freetype/ftmoderr.h: Add PFR error codes.
* src/pfr/pfrgload.c: Include pfrerror.h.
Use PCF error codes.
(pfr_extra_item_load_stem_snaps): Fix debug message.
* src/pfr/pfrgload.c: Include pfrerror.h.
Use PCF error codes.
(pfr_extra_item_load_bitmap_info, pfr_glyph_load_simple,
pfr_glyph_load_compound): Fix debug message.
* src/pfr/pfrobjs.c: Include pfrerror.h.
Use PCF error codes.
(pfr_face_init): Return PFR_Err_Unknown_File_Format.
* src/pfr/rules.mk (PFR_DRV_H): Include pfrerror.h.
2002-04-28 10:25:55 +00:00
Werner Lemberg
94ffae5239
* src/cff/cffgload.c (CFF_Parse_CharStrings): s/rand/Rand/ to avoid
...
compiler warning.
formatting/fixing ChangeLog
2002-04-14 00:54:32 +00:00
David Turner
d15bc0d13a
* README.UNX: updated the Unix-specific quick-compilation guide to
...
warn about the GNU Make requirement at compile time..
* include/freetype/config/ftstdlib.h,
include/freetype/config/ftconfig.h,
include/freetype/config/ftheader.h,
include/freetype/internal/ftmemory.h,
include/freetype/internal/ftobjs.h,
src/autohint/ahoptim.c,
src/base/ftdbgmem.c, src/base/ftdebug.c,
src/base/ftmac.c, src/base/ftobjs.c,
src/base/ftsystem.c,
src/cache/ftcimage.c, src/cache/ftcsbits.c,
src/cff/cffdriver.c, src/cff/cffload.c, src/cff/cffobjs.c,
src/cid/cidload.c, src/cid/cidparse.c, src/cid/cidriver.c,
src/pcf/pcfdriver.c, src/pcf/pcfread.c,
src/psaux/t1cmap.c, src/psaux/t1decode.c,
src/pshinter/pshalgo1.c, src/pshinter/pshalgo2.c,
src/pshinter/pshrec.c,
src/psnames/psmodule.c,
src/raster/ftraster.c,
src/sfnt/sfdriver.c, src/sfnt/ttload.c, src/sfnt/ttpost.c,
src/smooth/ftgrays.c,
src/type1/t1afm.c, src/type1/t1driver.c, src/type1/t1gload.c,
src/type1/t1load.c, src/type1/t1objs.c, src/type1/t1parse.c:
added the new configuration file "ftstdlib.h" used to define
aliases for all ISO C library functions used by the engine
(e.g. strlen, qsort, setjmp, etc...)
this eases the porting of FreeType 2 to exotic environments like
XFree86 modules/extensions..
also removed many #include <string.h>, #include <stdlib.h>, etc...
from the engine's sources where they're not needed..
2002-04-12 09:31:48 +00:00
Werner Lemberg
04728a8bbe
Fixes from the stable branch:
...
* include/freetype/config/ftoption.h (FT_CONFIG_OPTION_OLD_CALCS):
Removed.
[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
* include/freetype/internal/ftcalc.h, src/base/ftcalc.c
[FT_CONFIG_OPTION_OLD_CALCS]: Removed.
* src/base/fttrigon.c (FT_Vector_Length): Change algorithm to match
output of FreeType 1.
* src/pshinter/pshglob.c (psh_globals_scale_widths): Fixed a small
bug that created un-even stem widths when hinting Postscript fonts.
formatting, updating copyright
2002-04-02 14:50:31 +00:00
Werner Lemberg
91db04cb9c
* src/truetype/ttgload.c: 16bit fixes.
...
(TT_Load_Simple_Glyph): Improve debug messages.
(load_truetype_glyph): Remove dead code.
* src/truetype/ttinterp.c: 16bit fixes.
* src/truetype/ttobjs.c: Ditto.
* include/freetype/ftsnames.h, include/freetype/internal/sfnt.h,
src/cff/cffload.h, src/psaux/psobjs.h, src/truetype/ttinterp.[ch],
src/sfnt/ttpost.h: s/index/idx/.
formatting, copyright updates.
2002-04-01 14:25:28 +00:00
Werner Lemberg
b7b163cb07
* src/sfnt/ttcmap.c: 16bit fixes (0xFFFF -> 0xFFFFU).
...
* src/sfnt/ttcmap0.c: 16bit fixes.
(TT_Build_CMaps): Simplify debug messages.
(tt_cmap12_char_next): Fix offset.
* src/sfnt/ttload.c (TT_Load_Names, TT_Load_CMap): Fix debug
messages.
(TT_Load_OS2): 16bit fix.
2002-03-31 18:48:24 +00:00
Werner Lemberg
48c984b5bb
* src/cff/cffdrivr.c (cff_get_glyph_name): Fix debug message.
...
* src/cff/cffobjs.c (CFF_Driver_Init, CFF_Driver_Done)
[TT_CONFIG_OPTION_EXTEND_ENGINE]: Removed.
* src/cff/sfobjs.c (SFNT_Load_Face)
[TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
* src/truetype/ttobjs.c (TT_Init_Driver, TT_Done_Driver)
[TT_CONFIG_OPTION_EXTEND_ENGINE]: Ditto.
* src/truetype/ttdriver.c, src/truetype/ttobjs.c,
src/truetype/ttobjs.h: Renaming driver functions to the
FT_<Subject>_<Action> scheme:
TT_Init_Driver => TT_Driver_Init
TT_Done_Driver => TT_Driver_Done
TT_Init_Face => TT_Face_Init
TT_Done_Face => TT_Face_Done
TT_Init_Size => TT_Size_Init
TT_Done_Size => TT_Size_Done
TT_Reset_Size => TT_Size_Reset
2002-03-30 16:41:09 +00:00
David Turner
56054f310b
fixing the function that computes an ASCII face name
2002-03-30 16:32:47 +00:00
David Turner
d76050abd7
removing compiler warnings
2002-03-30 16:14:48 +00:00
Werner Lemberg
2282f341d6
* src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fix serious typos.
2002-03-28 14:21:15 +00:00
Werner Lemberg
1305f2616d
* include/freetype/internal/psaux.h (PSAux_ServiceRec): Fix
...
compiler warnings.
* include/freetype/internal/t1types.h (T1_FaceRec): Use `const' for
some members.
* src/base/ftapi.c (FT_New_Memory_Stream): Fix typos.
* src/psaux/t1cmap.c (t1_cmap_std_init, t1_cmap_unicode_init): Add
cast.
(t1_cmap_{standard,expert,custom,unicode}_class_rec): Use
`FT_CALLBACK_TABLE_DEF'.
* src/psaux/t1cmap.h: Updated.
* src/sfnt/ttcmap0.c (TT_Build_CMaps): Use `ft_encoding_none'
instead of zero.
* src/type1/t1objs.c (T1_Face_Init): Use casts.
2002-03-28 08:07:16 +00:00
David Turner
94dbf7f022
fixed a small bug in FT_CMaps support
2002-03-26 02:38:39 +00:00
David Turner
2ded2c1d30
* src/base/ftobjs.c, src/sfnt/ttcmap0.c, src/type1/t1objs.c:
...
various fixes to make the FT_CMaps support work correctly
(more tests are still needed)
2002-03-22 22:37:40 +00:00
David Turner
ed54f28e4a
various fixes to the FT_CMaps support
2002-03-22 17:09:52 +00:00
David Turner
fd88e7c7c8
* include/freetype/internal/ftobjs.h,
...
src/sfnt/Jamfile, src/sfnt/rules.mk,
src/sfnt/sfnt.c, src/sfnt/sfobjs.c,
src/sfnt/ttload.c, src/sfnt/ttcmap0.c, src/sfnt/ttcmap0.h:
updated the SFNT charmap support to use FT_CMaps
2002-03-22 15:02:38 +00:00
David Turner
e459d742e6
* include/freetype/internal/ftmemory.h, and a lot of other files !!:
...
changed the names of memory macros. Examples:
MEM_Set => FT_MEM_SET
MEM_Copy => FT_MEM_COPY
MEM_Move => FT_MEM_MOVE
ALLOC => FT_ALLOC
FREE => FT_FREE
REALLOC = >FT_REALLOC
FT_NEW was introduced to allocate a new object from a _typed_
pointer..
note that ALLOC_ARRAY and REALLOC_ARRAY have been replaced
by FT_NEW_ARRAY and FT_RENEW_ARRAY which take _typed_ pointer
arguments.
This results in _lots_ of sources being changed, but makes the
code more generic and less error-prone..
2002-03-22 13:52:37 +00:00
David Turner
a890c29cb0
* include/freetype/internal/ftstream.h,
...
src/base/ftstream.c, src/cff/cffload.c, src/pcf/pcfread.c,
src/sfnt/ttcmap.c, src/sfnt/ttcmap0.c, src/sfnt/ttload.c,
src/sfnt/ttpost.c, src/sfnt/ttsbit.c,
src/truetype/ttgload.c, src/truetype/ttpload.c,
src/winfonts/winfnt.c:
changed the definitions of stream macros. Examples:
NEXT_Byte => FT_NEXT_BYTE
NEXT_Short => FT_NEXT_SHORT
NEXT_UShortLE => FT_NEXT_USHORT_LE
READ_Short => FT_READ_SHORT
GET_Long => FT_GET_LONG
etc..
also introduced the FT_PEEK_XXXX functions..
2002-03-22 12:55:23 +00:00
David Turner
7d3a26425b
* renaming stream macros. Examples:
...
FILE_Skip => FT_STREAM_SKIP
FILE_Read => FT_STREAM_READ
ACCESS_Frame => FT_FRAME_ENTER
FORGET_Frame => FT_FRAME_EXIT
etc...
2002-03-20 10:49:31 +00:00
David Turner
678e0d46cd
* src/sfnt/sfdriver.c (get_sfnt_postscript_name): fixed memory leak
2002-03-20 10:47:38 +00:00
David Turner
b5713c54c3
* include/freetype/internal/psglobals.h (removed),
...
include/freetype/internal/pshints.h,
src/pshinter/pshglob.h: removing obsolete file
* include/freetype/internal/tttypes.h,
include/freetype/internal/sfnt.h,
src/base/ftnames.c, src/cff/cffdrivr.c,
src/sfnt/*.c, src/truetype/*.c: updated SFNT/TrueType type
definitions
2002-03-14 11:26:29 +00:00
Werner Lemberg
0d9165e1d6
* src/base/ftdbgmem.c (ft_mem_table_resize, ft_mem_table_new,
...
ft_mem_table_set, ft_mem_debug_alloc, ft_mem_debug_free,
ft_mem_debug_realloc, ft_mem_debug_done, FT_Alloc_Debug,
FT_Realloc_Debug, FT_Free_Debug): Fix compiler warnings.
* src/base/ftcalc.c (FT_MulFix): Ditto.
* src/cff/cffdrivr.c (cff_get_name_index): Ditto.
* src/cff/cffobjs.c (CFF_Size_Get_Global_Funcs, CFF_Size_Init,
CFF_GlyphSlot_Init): Ditto.
* src/cid/cidobjs.c (CID_GlyphSlot_Init,
CID_Size_Get_Globals_Funcs): Ditto.
* src/type1/t1objs.c (T1_Size_Get_Globals_Funcs, T1_GlyphSlot_Init):
Ditto.
* src/pshinter/pshmod.c (pshinter_interface): Use `static const'.
* src/winfonts/winfnt.c (FNT_Get_Next_Char): Remove unused
variables.
* include/freetype/internal/psaux.h (T1_Builder_Funcs): Renamed
to...
(T1_Builder_FuncsRec): This.
(T1_Builder_Funcs): New typedef.
(PSAux_Interface): Remove compiler warnings.
* src/psaux/psauxmod.c (t1_builder_funcs), src/psaux/psobjs.h
(t1_builder_funcs): Updated.
* src/pshinter/pshglob.h (PSH_Blue_Align): Replaced with ...
(PSH_BLUE_ALIGN_{NONE,TOP,BOT}): New defines.
(PSH_AlignmentRec): Updated.
* include/freetype/internal/ftstream.h (GET_Char, GET_Byte): Fix
typo.
* include/freetype/internal/ftgloadr.h (FT_SubGlyph): Ditto.
* src/base/ftstream (FT_Get_Char): Rename to...
(FT_Stream_Get_Char): This.
* src/base/ftnames.c (FT_Get_Sfnt_Name): s/index/idx/ -- `index' is
a built-in function in gcc, causing warning messages with gcc 3.0.
* src/autohint/ahglyph.c (ah_outline_load): Ditto.
* src/autohint/ahglobal.c (ah_hinter_compute_blues): Ditto.
* src/cache/ftcmanag.c (ftc_family_table_alloc,
ftc_family_table_free, FTC_Manager_Done, FTC_Manager_Register_Cache):
Ditto.
* src/cff/cffload.c (cff_new_index, cff_done_index,
cff_explicit_index, CFF_Access_Element, CFF_Forget_Element,
CFF_Get_Name, CFF_Get_String, CFF_Load_SubFont, CFF_Load_Font,
CFF_Done_Font): Ditto.
* src/psaux/psobjs.c (PS_Table_Add, PS_Parser_LoadField): Ditto.
* src/psaux/t1decode.c (T1_Decoder_Parse_Charstrings): Ditto.
* src/pshinter/pshrec.c (ps_mask_test_bit, ps_mask_clear_bit,
ps_mask_set_bit, ps_dimension_add_t1stem, ps_hints_t1stem3,
* src/pshinter/pshalgo1.c (psh1_hint_table_record,
psh1_hint_table_record_mask, psh1_hint_table_activate_mask): Ditto.
* src/pshinter/pshalgo2.c (psh2_hint_table_record,
psh2_hint_table_record_mask, psh2_hint_table_activate_mask): Ditto.
* src/sfnt/ttpost.c (Load_Format_20, Load_Format_25,
TT_Get_PS_Name): Ditto.
* src/truetype/ttgload.c (TT_Get_Metrics, Get_HMetrics,
load_truetype_glyph): Ditto.
* src/type1/t1load.c (parse_subrs, T1_Open_Face): Ditto.
* src/type1/t1afm.c (T1_Get_Kerning): Ditto.
* include/freetype/cache/ftcmanag.h (ftc_family_table_free): Ditto.
2002-03-07 21:59:59 +00:00
David Turner
28ea6f67c3
* src/sfnt/ttload.c (TT_Load_Names), src/sfnt/sfobjs.c (Get_Name),
...
src/sfnt/sfdriver.c (get_sfnt_postscript_name): Fixed the loader so
that it accepts broken fonts like "foxjump.ttf", which made FreeType
crash when trying to load them.
Also improved the name table parser to be able to load
Windows-encoded entries before Macintosh or Unicode ones, since it
seems some fonts don't have reliable values here anyway.
2002-03-05 16:12:57 +00:00
David Turner
bc82f1bbef
* include/freetype/ftconfig.h: changed FT_LOCAL xxxx to FT_LOCAL( xxxx )
...
everywhere in the source. Sames goes for FT_LOCAL_DEF xxxx translated
into FT_LOCAL_DEF( xxxxx )
2002-03-01 02:26:22 +00:00
David Turner
4e7eeeec7b
yet another logical transformation of the internals to make them
...
more consistent and understandable..
mainly, changing things like PS_Table => PS_TableRec + *PS_Table
2002-02-28 16:10:29 +00:00