kc3-lang/freetype/src/tools

Branch :


Log

Author Commit Date CI Message
8502c98b 2015-06-22 06:35:23 Fix Savannah bug #45097. We no longer `pollute' the namespace of possible header file names; instead we move `ft2build.h' up by one level so that it gets installed in the default include directory (e.g., /usr/local/include). After this commit, only `ft2build.h' stays in the compiler's include path. No visible changes for the user who follows the standard FreeType header inclusion rules. * include/*: Move to ... * include/freetype2/*: This directory, except `ft2build.h'. * CMakeLists.txt (PUBLIC_HEADERS, PUBLIC_CONFIG_HEADERS, PRIVATE_HEADERS), Jamfile (HDRMACRO, RefDoc), autogen.sh: Updated. * builds/amiga/include/config/ftconfig.h, builds/freetype.mk (PUBLIC_DIR), builds/symbian/bld.inf, builds/toplevel.mk (work), builds/unix/install.mk (install, uninstall), builds/unix/freetype2.in: Updated. * builds/unix/freetype-config.in: Updated. Emit -I directory only if it is not `/usr/include'. * builds/wince/*, builds/windows/*: Updated. * devel/ft2build.h, include/ft2build.h: Updated. * include/freetype2/config/ftheader.h, include/freetype2/internal/ftserv.h, include/freetype2/internal/internal.h: Update all header file macros. * src/tools/chktrcmp.py (TRACE_DEF_FILES): Updated. * docs/*: Updated.
366b2ea7 2015-05-28 10:58:40 * src/tools/apinames.c (names_dump): Fix invalid reference. Problem reported by Guzman Mosqueda, Jose R <jose.r.guzman.mosqueda@intel.com>.
772a5e5d 2015-03-20 09:40:10 Update links to Apple's TrueType specification.
3e587796 2015-03-11 07:14:15 Minor copyright and e-mail address issues.
cb0f7b65 2015-03-11 06:51:27 Fix automatic copyright updating. * src/tools/update-copyright: Make scanning of `no-copyright' actually work. * src/tools/no-copyright: Don't include README in general.
272e3cd0 2015-02-18 11:38:46 [psaux, type1] Fix minor AFM issues. * include/internal/t1types.h (AFM_KernPairRec): Make indices unsigned. Update users. (AFM_FontInfoRec): Make element counters unsigned. Update users. * src/psaux/afmparse.h (AFM_ValueRec): Add union member for unsigned int. * src/psaux/afmparse.c (afm_parse_track_kern, afm_parse_kern_pairs): Reject negative values for number of kerning elements. * src/type1/t1afm.c, src/tools/test_afm.c: Updated.
f57fc59e 2015-01-17 20:41:43 Run `src/tools/update-copyright'.
50be00d3 2015-01-17 20:38:31 Add some tools to handle yearly copyright notice updates. We are now following the GNU guidelines: A new release automatically means that the copyright year of all affected files gets updated; it is no longer used to track years of modification changes. * src/tools/update-copyright-year: New Perl script. * src/tools/update-copyright: New shell script that calls `update-copyright-year' on all files. * src/tools/no-copyright: Exceptions that should not be handled by `update-copyright'
36a46761 2014-12-22 03:31:32 Remove C-isms in Python code.
0098d550 2014-12-07 11:03:57 Uppercase all hex digits for orthogonality.
9870d6da 2014-12-07 09:40:47 */*: Decorate hex constants with `U' and `L' where appropriate.
ca1f5cc7 2014-12-02 22:49:25 [docmaker] Always handle `<Order>' section elements. Previously, those elements were handled only for sections present in a `<Sections>' chapter element. * src/tools/docmaker/content.py (ContentProcessor::finish): Implement it.
ef6a3523 2014-12-02 21:16:59 [docmaker] Properly handle empty rows in Synopsis. * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit `&nbsp;' for empty fields.
0e96f050 2014-12-02 11:08:31 [docmaker] Thinko. * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): Emit `/empty/' string for first element also.
102d4a76 2014-12-02 10:27:40 [docmaker] Honour empty lines in `<Order>' section element. This greatly improves the readability of the `Synopsis' links. * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): Insert string `/empty/' between items. * src/tools/docmaker/formatter.py (Formatter::section_dump): Make it robust against nonexistent keys. * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Emit empty <td> elements for `/empty/'.
2af25ac0 2014-12-02 08:38:57 [docmaker] Ensure Python 3 compatibility. * src/tools/docmaker/content.py (ContentProcessor::set_section, ContentProcessor::finish): Replace `has_key' function with `in' keyword. * src/tools/docmaker/formatter.py (Formatter::__init__): Replace sorting function with a key generator. (Formatter::add_identifier): Replace `has_key' function with `in' keyword. * src/tools/docmaker/tohtml.py (HtmlFormatter::html_source_quote): Replace `has_key' function with `in' keyword. (HtmlFormatter::index_exit, HtmlFormatter::section_enter): Use integer division. s/<>/>/. * src/tools/docmaker/utils.py: Import `itertools'. (index_sort): Replaced by... (index_key): ... this new key generator (doing exactly the same).
80bfeb1c 2014-12-01 10:07:52 [docmaker] Don't output a block multiple times. This bug was hidden by not processing all lines of `<Order>' blocks. * src/tools/docmaker/formatter.py (Formatter::section_dump): Filter out field names.
0dbad763 2014-12-01 08:44:48 [docmaker] Use field values as HTML link targets where possible. * src/tools/docmaker/tohtml.py (HtmlFormatter::make_block_url): Accept second, optional argument to specify a name. (HtmlFormatter::html_source_quote): Link to field ID if possible. (HtmlFormatter::print_html_field_list): Emit `id' attribute.
785b1d08 2014-11-30 22:16:34 [docmaker] Allow empty lines in `<Order>' blocks. Before this patch, the suggested order of entries stopped at the first empty line. Obviously, nobody noticed that this problem caused a much reduced set of links in the `Synopsis' sections; in particular, the `<Order>' blocks contain a lot of entries that wouldn't be listed otherwise... * src/tools/docmaker/content.py (DocBlock::get_markup_words_all): New function to iterate over all items. (DocSection::process): Use it.
16b3e620 2014-11-30 20:58:27 * src/tools/docmaker/sources.py (column) [Format 2]: Fix regexp. After the single asterisk there must be no other immediately following asterisk.
aaffbf85 2014-11-29 23:26:46 Minor.
434bc695 2014-11-29 23:12:55 * src/tools/docmaker/tohtml.py: Improve CSS for vertical spacing.
51987eaf 2014-11-29 22:19:29 [docmaker] Improve HTML code for table of contents.. * src/toold/docmaker/tohtml.py: Introduce a new table class `toc', together with proper CSS.
aa834ce5 2014-11-29 20:08:29 [docmaker] Provide higher-level markup and simplify HTML. * src/tools/docmaker/tohtml.py: Instead of using extraneous `<div>' elements, use CSS descendants (of class `section') to format the data. Also remove reduntant <p> and <br> elements, replacing them with proper CSS. Globally reduce page width to 75%. (block_header): Rename <div> class to `section'.
3bb97023 2014-11-29 16:12:37 [docmaker] Add `top' links after blocks. * src/tools/docmaker/tohtml.py (block_footer_middle): Implement it.
a31f9715 2014-11-29 07:18:44 * src/tools/docmaker/tohtml.py: Improve CSS for fields. Make fields align horizotnally relative to full line width.
8f795118 2014-11-29 06:49:15 * src/tools/docmaker/tohtml.py: Fix index and TOC templates. This thinko was introduced 2014-11-27.
ba1ba0ca 2014-11-28 22:04:14 [docmaker] Format field lists with CSS. This also simplifies the inserted HTML code. * src/tools/docmaker/tohtml.py (HtmlFormatter::print_html_field_list): Do it.
46d4dc86 2014-11-28 05:49:56 [docmaker] Replace empty `<td>' with CSS.. * src/tools/docmaker/tohtml.py (HtmlFormatter::section_enter): Do it.
984e0717 2014-11-28 05:33:58 [docmaker] Replace some `<table>' tags with `<h4>' and `<div>'. * src/tools/docmaker/tohtml.py (marker_*): Use `<h4>'. (source_*): Use `<div>'. (HtmlFormatter::block_enter): s/<h4>/<h3>/.
7ea36340 2014-11-27 19:38:31 * src/tools/docmaker/tohtml.py: Usee more CSS for index.
edcf817e 2014-11-27 19:28:48 [docmaker] Replace `name' attribute of `<a>' with `id'. * src/tools/docmaker/tohtml.py (HtmlFormatter::block_enter): Do it.
26d699ed 2014-11-27 19:22:52 * src/tools/docmaker/tohtml.py: Remove remaining `width' attributes. For `Index' and `TOC' links, we now simply use the `text-align' CSS property of `<td>' to enforce flush-left and flush-right, eliminating the hack with an empty, full-width `<td>' element inbetween. The change also enforces the same (smaller) size for all index and TOC links.
dd3fee07 2014-11-27 13:20:52 * src/tools/docmaker/tohtml.py: More HTML table refactoring. Replace some `<table>' tags with `<div>' to simplify structure. Move `bgcolor' attribute to CSS. Replace most `width' attributes with CSS. The remaining instances (providing a similar effect as LaTeX's `\hfill' command) are removed in a later patch.
339d830e 2014-11-27 12:03:17 [docmaker] Typos.
a5ad26af 2014-11-27 10:52:24 * src/tools/docmaker/tohtml.py: Replace <font> with CSS.
ba67c619 2014-11-27 10:51:49 * src/tools/docmaker/tohtml.py: Center <table> with CSS.
5594fa54 2014-11-27 10:50:50 * src/tools/docmaker/tohtml.py: Replace `<center>' with `<div>'.
433295ab 2014-11-27 10:07:06 Sort CSS entries.
8585cf56 2014-11-27 10:49:05 * src/tools/docmaker/tohtml.py: Remove redundant `<center>' tags. This starts a series of commits into the direction of generating valid HTML 5 code, especially using much more CSS.
c52882ab 2014-11-27 08:01:25 [docmaker] Produce better HTML code. * src/tools/docmaker/tohtml.py: Always use double quotes for attribute values. (source_footer): Close `td' and `tr' groups.
4e7f89e3 2014-11-27 07:00:10 [docmaker] Cosmetics.
e8a5c33e 2014-11-27 06:48:37 * src/tools/docmaker/sources.py (re_bold, re_italic): Use non-grouping parentheses. * src/tools/docmaker/tohtml.py (HtmlFormatter::make_html_word): Updated.
a7a4207d 2014-11-24 06:44:45 [docmaker] Formatting, copyright, improved documentation. * src/tools/docmaker/*: No code changes besides trivial modifications.
181fd071 2014-04-15 16:47:05 [afblue.pl]: Minor improvements. * src/tools/afblue.pl: Allow whitespace before comments. Ignore whitespace in strings.
6dce1369 2014-02-05 15:40:47 Fix problems with perl 5.8.8 as distributed with current MinGW. * src/tools/afblue.pl: Work-around for Perl bug #63402. (string_re): Avoid `possessive quantifiers', which have been introduced in Perl version 5.10.
741f7366 2014-02-05 14:51:51 Work-around for Perl bug #63402.
c46fa86b 2014-01-08 08:45:40 [autofit] Fix Savannah bug #41138, part 1. * src/tools/afblue.pl <Handling #endif>: Produce correct auxiliary enumeration names for generated `#else'. * src/autofit/afblue.h: Regenerated.
991cbcce 2014-01-05 13:24:56 [autofit] Minor fixes for `afblue.pl'. * src/tools/afblue.pl (aux_name): Don't use `reverse'. <Handling #endif>: Use proper indentation for generated `#else'. * src/autofit/afblue.h: Regenerated.
fae38207 2013-11-13 08:55:46 Simplify header file hierarchy. This large patch changes the header file directory layout from `include/freetype/...' to `include/...', effectively removing one level. Since the file `ft2build.h' is also located in `include' (and it stays there even after installation), all FreeType header files are now in a single directory. Applications that use (a) `freetype-config' or FreeType's `pkg-config' file to get the include directory for the compiler, and (b) the documented way for header inclusion like #include <ft2build.h> #include FT_FREETYPE_H ... don't need any change to the source code. * include/freetype/*: Move up to... * include/*: ... this directory. * builds/amiga/include/freetype/*: Move up to... * builds/amiga/include/*: ... this directory. */*: Essentially do `s@/freetype/@/@' where appropriate. * CMakeList.txt: Simplify. * builds/unix/freetype-config.in, builds/unix/freetype2.in: For `--cflags', return a single directory. * builds/unix/install.mk (install): No longer try to remove `cache' and `internal' subdirectories; instead, remove the `freetype' subdirectory.
8b8be783 2013-08-25 08:01:41 [autofit] Introduce data file for blue strings. The idea is to have a central file which gets processed by a Perl script to create proper `.c' and `.h' files using templates. There are two other reasons to do that: . The data file should be easily readable. We use UTF-8 encoding which then gets converted to single bytes. . Since the number of supported scripts will increase soon, the current usage of blue string arrays is a waste of space. Using the Perl script it is possible to imitate jagged arrays, defining enumeration constants as offsets into the arrays. This commit only adds files without changing any functionality. * src/autofit/afblue.dat: New data file. * src/tools/afblue.pl: New Perl script for processing `afblue.dat'. * src/autofit/afblue.cin, src/autofit/afblue.hin: New template files for... * src/autofit/afblue.c, src/autofit/afblue.c: New source files. To avoid a dependency on Perl, we add them too.
89ca1fd6 2013-06-25 23:28:02 [cff] Add `darkening-parameters' property. * include/freetype/ftcffdrv.h: Document it. * src/cff/cffdrivr.c (cff_property_set, cff_property_get): Handle `darkening-parameters' property. * src/cff/cf2font.h (CF2_FontRec): Add `darkenParams' array. * src/cff/cf2font.c (cf2_computeDarkening): Add `darkenParams' argument and use it. Update all callers. * src/cff/cf2ft.c (cf2_decoder_parse_charstrings): Copy `darken_params' values. * src/cff/cffobjs.h (CFF_DriverRec): Add `darken_params' array. * src/cff/cffobjs.c (cff_driver_init): Set default values for `darken_params'.
fad93267 2013-06-25 10:41:37 [docmaker] Code shuffling. * src/tools/docmaker/tohtml.py (re_url): Move regexp... * src/tools/docmaker/sources.py: ... to this file.
8bdc4071 2013-06-25 10:20:53 [docmaker] Remove unused functions. * src/tools/docmaker/content.py (DocMarkup.get_start, DocBlock.get_markup_name): Removed. * src/tools/docmaker/tohtml.py (html_quote0, dump_html_code, HtmlFormatter.make_html_words): Removed.
c7cc9ebe 2013-06-25 07:24:02 [docmaker] Recognise URLs. * src/tools/docmaker/tohtml.py (re_url): New regular expression. (make_html_para): Use it.
8d8508e4 2013-06-04 13:09:01 Missed some cppcheck items.
dc624ca4 2013-06-04 10:30:48 Apply fixes for cppcheck nitpicks. http://cppcheck.sourceforge.net/ Note that the current version heavily chokes on FreeType, delivering even wrong results. I will report those issues to the cppcheck team so that a newer version gives improved results hopefully. */* Improve variable scopes. */* Remove redundant initializations which get overwritten. * src/base/ftmac.c ,builds/mac/ftmac.c (count_faces_scalable): Remove unused variable. * src/base/ftdbgmem.c (ft_mem_table_destroy): `table' can't be zero. * src/gxvalid/gxvkern.c (gxv_kern_subtable_fmt1_entry_validate): Remove functionless code. * src/tools/ftrandom.c (main): Fix memory leak.
41e4480e 2013-05-24 11:38:09 Apply Savannah patch #8055. Make `apinames' create an import file for NetWare. * src/tools/apinames.c (PROGRAM_VERSION): Set to 0.2. (OutputFormat): Add `OUTPUT_NETWARE_IMP'. (names_dump): Handle it. (usage): Updated. (main): Handle new command line flag `-wN'.
89f50647 2013-03-14 17:50:49 */*: Use FT_ERR_EQ, FT_ERR_NEQ, and FT_ERR where appropriate. FT_Err_XXX and friends are no longer directly used in the source code.
0e536676 2013-02-18 20:41:56 [tools] Update BBox testing tool. * src/tools/test_bbox.c: Add another cubic outline with exact BBox. (REPEAT): Increase the number of benchmarking cycles. (profile_outline): Tweak output formatting.
4cd5fd46 2013-01-24 13:33:06 Remove trailing whitespace.
a692170a 2013-01-12 19:17:05 Call it fixed-point.
b4ac30b0 2013-01-02 22:21:37 [base] Reduce trigonometric algorithms. After we get within 45 degrees by means of true 90-degree rotations, we can remove initial 45-degree CORDIC iteration and start from atan(1/2) pseudorotation, reducing expansion factor thereby. * src/base/fttrigon.c (FT_TRIG_SCALE, FT_TRIG_COSCALE): Update macros. (ft_trig_pseudo_rotate, ft_trig_pseudo_polarize): Update. * src/tools/cordic.py: Bring up to date with trigonometric core. * docs/CHANGES: Old typo.
cbf3fb39 2012-12-21 14:20:25 * src/tools/cordic.py: Bring up to date with trigonometric core.
590344cd 2012-08-29 09:16:56 [docmaker] Allow `-' in tags and identifiers. * src/tools/docmaker/content.py (re_identifier), src/tools/docmaker/sources.py (re_markup_tag1, re_markup_tag2, re_crossref): Add `-' in patterns.
22fff253 2012-02-26 08:47:20 Whitespace.
eba2781a 2011-11-30 22:40:43 [apinames] Fix the overflow of signed integer hash. * src/tools/apinames.c (names_add): Change the type of `h' from int to unsigned int, to prevent undefined behaviour in the overflow of signed integers (overflow of unsigned int is defined to be wrap around). Found by clang test suggested by Sean McBride.
c52f44d4 2011-11-30 10:46:53 Whitespace.
6ae8bde4 2011-10-01 08:55:20 [psnames] Handle zapfdingbats. Problem reported by Nicolas Rougier <Nicolas.Rougier@inria.fr>. * src/tools/glnames.py (adobe_glyph_list): Add data from AGL's `zapfdingbats.txt' file. * src/psnames/pstables.h: Regenerated.
f3e2a97d 2011-06-14 08:32:13 Fix URLs.
ebfd454a 2010-07-11 09:28:21 Fix C++ compilation issue. * src/tools/apinames.c (names_dump) <OUTPUT_WATCOM_LBC>: Fix typo of `dot' variable.
f0760ca6 2010-01-23 16:19:33 We no longer use CVS.
c6e4180c 2009-11-04 12:18:48 Remove compiler warning. Reported by Sean McBride <sean@rogue-research.com>. * src/tools/apinames.c (read_header_file)<STATE_TYPE>: Use a cast to `int', as specified in the printf(3) man page.
d1ee3785 2009-08-01 00:30:16 type1: Use size_t variable to pass the string length.
313d4f4c 2009-07-13 00:01:57 Add a script to check the undefined and unused trace macros.
7bb1005d 2009-03-16 20:42:38 docmaker: Don't ignore single-line code blocks. * src/tools/docmaker/content.py (DocBlock::_init__): Fix change from 2009-01-31.
763ae208 2009-01-30 23:45:53 Minor docmaker improvements. * src/tools/docmaker/content.py (DocBlock::__init__): Ignore empty code blocks.
76fffcd8 2008-12-05 18:37:44 * include/freetype/freetype.h (FT_LOAD_ADVANCE_ONLY): Use value 0x100 instead of 0x10000; the latter value is already occupied by FT_LOAD_TARGET_LIGHT. Bug reported by James Cloos. Handle SFNT with neither outlines nor bitmaps. This fixes Savannah bug #25010. * src/base/ftobjs.c (FT_Load_Glyph): Reject fonts with neither outlines nor bitmaps. * src/sfnt/sfobjs.c (sfnt_load_face): Don't return an error if there is no table with glyphs. * src/sfnt/ttload.c (tt_face_lookup_table): Improve debugging message. Other minor cosmetics.
1a5d561d 2008-11-29 22:50:24 * src/autofit/afcjk.c, src/base/ftoutln.c, src/base/ftrfork.c, src/bdf/bdfdrivr.c, src/gxvalid/gxvmorx.c, src/otvalid/otvmath.c, src/pcf/pcfdrivr.c, src/psnames/pstables.h, src/smooth/ftgrays.c, src/tools/glnames.py, src/truetype/ttinterp.c, src/type1/t1load.c, src/type42/t42objs.c, src/winfonts/winfnt.c: Fix compiler warnings (Atari PureC).
ed6c0e06 2008-09-15 07:49:40 Fix Savannah bug #24179, reported by Bram Tassyns. * src/type1/t1load.c (mm_axis_unmap, T1_Get_MM_Var): Fix computation of default values. * src/tools/glnames.py (main): Surround `ft_get_adobe_glyph_index' and `ft_adobe_glyph_list' with FT_CONFIG_OPTION_ADOBE_GLYPH_LIST to prevent unconditional definition. This fixes Savannah bug #24241. * src/psnames/pstables.h: Regenerated.
8a9b6391 2008-06-26 19:56:51 Improve navigation in API reference. * src/tools/docmaker/tohtml.py (html_header_3): Renamed to... (html_header_6): This. (html_header_3, html_header_3i, html_header_4, html_header_5, html_header_5t): New strings. (toc_footer_start, toc_footer_end): New strings. (HtmlFormatter::html_header): Updated. (HtmlFormatter::html_index_header, HtmlFormatter::html_toc_header): New strings. (HtmlFormatter::index_enter): Use `html_index_header'. (HtmlFormatter::index_exit): Print `html_footer'. (HtmlFormatter::toc_enter): Use `html_toc_header'. (HtmlFormatter::toc_exit): Print proper footer. Convert ~ to non-breakable space. * src/tools/docmaker/tohtml.py (make_html_para): Implement it. Update header files accordingly. Many other minor documentation fixes.
8e3539bf 2008-06-02 13:53:54 Emit header info for defined FreeType objects in reference. * src/tools/docmaker/content.py (re_header_macro): New regexp. (ContentProcessor::__init__): Initialize new dictionary `headers'. (DocBlock::__init__): Collect macro header definitions. * src/tools/docmaker/tohtml.py (header_location_header, header_location_footer): New strings. (HtmlFormatter::__init__): Pass `headers' dictionary. (HtmlFormatter::print_html_field): Don't emit paragraph tags. (HtmlFormatter::print_html_field_list): Emit empty paragraph. (HtmlFormatter::block_enter): Emit header info.
2b0b4221 2008-05-28 22:17:28 Cosmetic code changes.
de0d0055 2008-05-28 21:51:15 * src/tools/docmaker/sources.py (SourceBlock::__init__): While looking for markup tags, return immediately as soon a single one is found.
8f7d17bf 2008-05-28 06:39:33 formatting
35a90b79 2008-05-27 18:16:03 * src/tools/docmaker/tohtml.py (block_footer_start, block_footer_middle): Beautify output.
61d83d09 2008-01-18 05:19:20 Oops!
250c01d4 2008-01-18 05:16:09 whitespace
53286c09 2008-01-18 05:14:13 more formatting and whitespace
4af139d2 2008-01-18 04:53:28 formatting, whitespace
66842577 2007-10-20 16:17:28 * src/tools/docmaker/tohtml.py (html_header_2): Fix typo. Add `td.left' element to CSS. (toc_section_enter): Use it.
e12ed563 2007-06-17 05:31:23 * src/tools/ftrandom.c (font_size): New global variable. (TestFace): Use it. (main): Handle new option `--size' to set `font_size'. (Usage): Updated. Formatting.
ad18b367 2007-06-04 07:04:05 * src/cid/cidgload.c (cid_load_glyph): Check `fd_select'. * src/tools/ftrandom/Makefile: Depend on `libfreetype.a'.
25b14229 2007-06-03 19:53:02 More OBJ_DIR.
f2ff7329 2007-06-03 19:50:57 Some explanations, taken from an email sent by George.
2fdb70e9 2007-06-03 19:38:59 Fold fttest.c into ftrandom.c (as it was orginally).
99a320b4 2007-06-03 19:21:26 * src/tools/ftrandom/*: Add the `ftrandom' test program written by George Williams (with some modifications).
4b2e83d5 2007-02-01 07:58:02 A new set of spelling fixes from Alexei. Add some copyright messages.
9b774e28 2007-01-16 06:11:27 Remove trailing whitespace. From Alexei.
15c29503 2006-12-09 07:29:54 * src/tools/apinames (State): Remove final comma in structure -- xlc v5 under AIX 4.3 doesn't like this.