1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-08-23 09:47:59 +00:00

20 Commits

Author SHA1 Message Date
Eric Blake bbfcd2f1a9 strtoumax: fix another typo in previous commit
I missed one in the last commit...

* modules/strtoumax (configure.ac): Fix typo.
* modules/strtoimax (configure.ac): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-10-10 13:35:19 -06:00
Eric Blake fa1db0dd22 strtoumax: fix typo in previous commit.
Tom G. Christensen reported:

> I see this in the configure output:
> ./configure: line 7680: test: =: unary operator expected
>
> $ sed -n 7680p configure
>   if test $HAVE_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1; then

and indeed, we're only setting HAVE_DECL_STRTOUMAX.

* modules/strtoumax (Depends-on): Fix typo.
* modules/strtoimax (Depends-on): Likewise.

Signed-off-by: Eric Blake <eblake@redhat.com>
2013-10-10 12:24:59 -06:00
Paul Eggert 82f7e927e2 strtoimax: eliminate need for stdint.h, inttypes.h checks
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Don't use
gl_AC_HEADER_STDINT_H or gl_AC_HEADER_INTTYPES_H.  This reduces
the prerequisites for a recently-introduced strtoimax test.
I guess this might cause strtoimax to be replaced when not
strictly necessary on older hosts, but this shouldn't introduce
any bugs and it should make Emacs 'configure' faster on typical
modern hosts.  Problem discovered when importing the latest gnulib
to an Emacs test version.
* modules/strtoimax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4.
2012-01-28 13:31:37 -08:00
Bruno Haible 0b030ddbec strtoimax: Work around AIX 5.1 bug.
* lib/inttypes.in.h (strtoimax): Allow overriding the system's
definition.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Check against the AIX 5.1 bug.
Set HAVE_STRTOIMAX.
* m4/inttypes.m4 (gl_INTTYPES_H_DEFAULTS): Initialize
REPLACE_STRTOIMAX.
* modules/inttypes-incomplete (Makefile.am): Substitute
REPLACE_STRTOIMAX.
* modules/strtoimax (Files): Add m4/stdint_h.m4, m4/inttypes_h.m4.
(configure.ac): Test HAVE_STRTOIMAX, REPLACE_STRTOIMAX.
(Depends-on): Update conditions.
* tests/test-strtoimax.c (main): Add tests for large values.
* doc/posix-functions/strtoimax.texi: Mention the AIX 5.1 bug.
2012-01-05 18:47:38 +01:00
Bruno Haible ae006b4d5d strtoimax: Avoid link error on OSF/1 with DTK cc.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Always test whether strtoimax is
defined as a function.
* modules/strtoimax (Depends-on, configure.ac): Test only whether
strtoimax is defined, not whether it is declared.
2011-09-02 01:35:53 +02:00
Bruno Haible 2956c60417 strtoimax: Move AC_LIBOBJ invocations to module description.
* m4/strtoimax.m4 (gl_FUNC_STRTOIMAX): Call AC_CHECK_FUNCS instead of
AC_REPLACE_FUNCS. Move AC_LIBOBJ and gl_PREREQ_STRTOIMAX invocations
from here...
* modules/strtoimax (configure.ac): ... to here.
2011-06-16 00:06:58 +02:00
Bruno Haible bddbd5db0c strtoimax, strtoumax: Relicense under LGPL.
* modules/strtoimax (License): Change to LGPL.
* modules/strtoumax (License): Likewise.
With permission from Jim Meyering, Paul Eggert:
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00124.html>
<http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00109.html>
2011-05-05 19:31:30 +02:00
Bruno Haible 7cbbd8a31a Avoid unnecessary compilation units, through conditional dependencies.
* modules/accept (Depends-on): Add conditions to the dependencies.
* modules/acosl (Depends-on): Likewise.
* modules/argz (Depends-on): Likewise.
* modules/asinl (Depends-on): Likewise.
* modules/atanl (Depends-on): Likewise.
* modules/atoll (Depends-on): Likewise.
* modules/bind (Depends-on): Likewise.
* modules/btowc (Depends-on): Likewise.
* modules/canonicalize-lgpl (Depends-on): Likewise.
* modules/ceil (Depends-on): Likewise.
* modules/ceilf (Depends-on): Likewise.
* modules/ceill (Depends-on): Likewise.
* modules/chdir-long (Depends-on): Likewise.
* modules/chown (Depends-on): Likewise.
* modules/close (Depends-on): Likewise.
* modules/connect (Depends-on): Likewise.
* modules/cosl (Depends-on): Likewise.
* modules/dirfd (Depends-on): Likewise.
* modules/dprintf (Depends-on): Likewise.
* modules/dprintf-posix (Depends-on): Likewise.
* modules/error (Depends-on): Likewise.
* modules/euidaccess (Depends-on): Likewise.
* modules/expl (Depends-on): Likewise.
* modules/faccessat (Depends-on): Likewise.
* modules/fchdir (Depends-on): Likewise.
* modules/fclose (Depends-on): Likewise.
* modules/fcntl (Depends-on): Likewise.
* modules/fdopendir (Depends-on): Likewise.
* modules/fflush (Depends-on): Likewise.
* modules/floor (Depends-on): Likewise.
* modules/floorf (Depends-on): Likewise.
* modules/floorl (Depends-on): Likewise.
* modules/fnmatch (Depends-on): Likewise.
* modules/fopen (Depends-on): Likewise.
* modules/fprintf-posix (Depends-on): Likewise.
* modules/frexp (Depends-on): Likewise.
* modules/frexp-nolibm (Depends-on): Likewise.
* modules/frexpl (Depends-on): Likewise.
* modules/frexpl-nolibm (Depends-on): Likewise.
* modules/fseek (Depends-on): Likewise.
* modules/fsusage (Depends-on): Likewise.
* modules/ftell (Depends-on): Likewise.
* modules/ftello (Depends-on): Likewise.
* modules/futimens (Depends-on): Likewise.
* modules/getcwd (Depends-on): Likewise.
* modules/getcwd-lgpl (Depends-on): Likewise.
* modules/getdelim (Depends-on): Likewise.
* modules/getdomainname (Depends-on): Likewise.
* modules/getgroups (Depends-on): Likewise.
* modules/gethostname (Depends-on): Likewise.
* modules/getline (Depends-on): Likewise.
* modules/getlogin_r (Depends-on): Likewise.
* modules/getopt-posix (Depends-on): Likewise.
* modules/getpeername (Depends-on): Likewise.
* modules/getsockname (Depends-on): Likewise.
* modules/getsockopt (Depends-on): Likewise.
* modules/getsubopt (Depends-on): Likewise.
* modules/getusershell (Depends-on): Likewise.
* modules/glob (Depends-on): Likewise.
* modules/grantpt (Depends-on): Likewise.
* modules/iconv_open (Depends-on): Likewise.
* modules/iconv_open-utf (Depends-on): Likewise.
* modules/inet_ntop (Depends-on): Likewise.
* modules/inet_pton (Depends-on): Likewise.
* modules/ioctl (Depends-on): Likewise.
* modules/isapipe (Depends-on): Likewise.
* modules/isfinite (Depends-on): Likewise.
* modules/isinf (Depends-on): Likewise.
* modules/lchown (Depends-on): Likewise.
* modules/ldexpl (Depends-on): Likewise.
* modules/link (Depends-on): Likewise.
* modules/linkat (Depends-on): Likewise.
* modules/listen (Depends-on): Likewise.
* modules/logl (Depends-on): Likewise.
* modules/lstat (Depends-on): Likewise.
* modules/mbrlen (Depends-on): Likewise.
* modules/mbrtowc (Depends-on): Likewise.
* modules/mbsinit (Depends-on): Likewise.
* modules/mbsnrtowcs (Depends-on): Likewise.
* modules/mbsrtowcs (Depends-on): Likewise.
* modules/mbtowc (Depends-on): Likewise.
* modules/memcmp (Depends-on): Likewise.
* modules/mkdir (Depends-on): Likewise.
* modules/mkdtemp (Depends-on): Likewise.
* modules/mkfifo (Depends-on): Likewise.
* modules/mkfifoat (Depends-on): Likewise.
* modules/mknod (Depends-on): Likewise.
* modules/mkostemp (Depends-on): Likewise.
* modules/mkostemps (Depends-on): Likewise.
* modules/mkstemp (Depends-on): Likewise.
* modules/mkstemps (Depends-on): Likewise.
* modules/mktime (Depends-on): Likewise.
* modules/nanosleep (Depends-on): Likewise.
* modules/open (Depends-on): Likewise.
* modules/openat (Depends-on): Likewise.
* modules/perror (Depends-on): Likewise.
* modules/poll (Depends-on): Likewise.
* modules/popen (Depends-on): Likewise.
* modules/posix_spawn (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addclose (Depends-on): Likewise.
* modules/posix_spawn_file_actions_adddup2 (Depends-on): Likewise.
* modules/posix_spawn_file_actions_addopen (Depends-on): Likewise.
* modules/posix_spawnp (Depends-on): Likewise.
* modules/pread (Depends-on): Likewise.
* modules/printf-posix (Depends-on): Likewise.
* modules/ptsname (Depends-on): Likewise.
* modules/putenv (Depends-on): Likewise.
* modules/pwrite (Depends-on): Likewise.
* modules/readline (Depends-on): Likewise.
* modules/readlink (Depends-on): Likewise.
* modules/readlinkat (Depends-on): Likewise.
* modules/recv (Depends-on): Likewise.
* modules/recvfrom (Depends-on): Likewise.
* modules/regex (Depends-on): Likewise.
* modules/remove (Depends-on): Likewise.
* modules/rename (Depends-on): Likewise.
* modules/renameat (Depends-on): Likewise.
* modules/rmdir (Depends-on): Likewise.
* modules/round (Depends-on): Likewise.
* modules/roundf (Depends-on): Likewise.
* modules/roundl (Depends-on): Likewise.
* modules/rpmatch (Depends-on): Likewise.
* modules/select (Depends-on): Likewise.
* modules/send (Depends-on): Likewise.
* modules/sendto (Depends-on): Likewise.
* modules/setenv (Depends-on): Likewise.
* modules/setlocale (Depends-on): Likewise.
* modules/setsockopt (Depends-on): Likewise.
* modules/shutdown (Depends-on): Likewise.
* modules/sigaction (Depends-on): Likewise.
* modules/signbit (Depends-on): Likewise.
* modules/sigprocmask (Depends-on): Likewise.
* modules/sinl (Depends-on): Likewise.
* modules/sleep (Depends-on): Likewise.
* modules/snprintf (Depends-on): Likewise.
* modules/snprintf-posix (Depends-on): Likewise.
* modules/socket (Depends-on): Likewise.
* modules/sprintf-posix (Depends-on): Likewise.
* modules/sqrtl (Depends-on): Likewise.
* modules/stat (Depends-on): Likewise.
* modules/strchrnul (Depends-on): Likewise.
* modules/strdup-posix (Depends-on): Likewise.
* modules/strerror (Depends-on): Likewise.
* modules/strerror_r-posix (Depends-on): Likewise.
* modules/strndup (Depends-on): Likewise.
* modules/strnlen (Depends-on): Likewise.
* modules/strptime (Depends-on): Likewise.
* modules/strsep (Depends-on): Likewise.
* modules/strsignal (Depends-on): Likewise.
* modules/strstr-simple (Depends-on): Likewise.
* modules/strtod (Depends-on): Likewise.
* modules/strtoimax (Depends-on): Likewise.
* modules/strtok_r (Depends-on): Likewise.
* modules/strtoumax (Depends-on): Likewise.
* modules/symlink (Depends-on): Likewise.
* modules/symlinkat (Depends-on): Likewise.
* modules/tanl (Depends-on): Likewise.
* modules/tcgetsid (Depends-on): Likewise.
* modules/tmpfile (Depends-on): Likewise.
* modules/trunc (Depends-on): Likewise.
* modules/truncf (Depends-on): Likewise.
* modules/truncl (Depends-on): Likewise.
* modules/uname (Depends-on): Likewise.
* modules/unlink (Depends-on): Likewise.
* modules/unlockpt (Depends-on): Likewise.
* modules/unsetenv (Depends-on): Likewise.
* modules/usleep (Depends-on): Likewise.
* modules/utimensat (Depends-on): Likewise.
* modules/vasprintf (Depends-on): Likewise.
* modules/vdprintf (Depends-on): Likewise.
* modules/vdprintf-posix (Depends-on): Likewise.
* modules/vfprintf-posix (Depends-on): Likewise.
* modules/vprintf-posix (Depends-on): Likewise.
* modules/vsnprintf (Depends-on): Likewise.
* modules/vsnprintf-posix (Depends-on): Likewise.
* modules/vsprintf-posix (Depends-on): Likewise.
* modules/wcrtomb (Depends-on): Likewise.
* modules/wcscasecmp (Depends-on): Likewise.
* modules/wcscspn (Depends-on): Likewise.
* modules/wcsdup (Depends-on): Likewise.
* modules/wcsncasecmp (Depends-on): Likewise.
* modules/wcsnrtombs (Depends-on): Likewise.
* modules/wcspbrk (Depends-on): Likewise.
* modules/wcsrtombs (Depends-on): Likewise.
* modules/wcsspn (Depends-on): Likewise.
* modules/wcsstr (Depends-on): Likewise.
* modules/wcstok (Depends-on): Likewise.
* modules/wcswidth (Depends-on): Likewise.
* modules/wctob (Depends-on): Likewise.
* modules/wctomb (Depends-on): Likewise.
* modules/wctype (Depends-on): Likewise.
* modules/wcwidth (Depends-on): Likewise.
* modules/write (Depends-on): Likewise.
2011-05-03 23:38:19 +02:00
Paul Eggert 23e09df46a inttypes-incomplete: new module
* m4/inttypes.m4 (gl_INTTYPES_INCOMPLETE): New macro, containing
all but the PRI* and SCN* parts of gl_INTTYPES_H.
(gl_INTTYPES_PRI_SCN): New macro, containing the PRI* and SCN* parts
of gl_INTTYPES_H.
(gl_INTTYPES_H): Rewrite in terms of these new macros.
(gl_INTTYPES_H_DEFAULTS): Provide defaults for the PRI* and SCN*
parts, in case gl_INTTYPE_PRI_SCN is not invoked.
* modules/imaxabs, modules/imaxdiv, modules/strtoimax (Depends-on):
* modules/strtoumax, modules/xstrtol (Depends-on):
Depend on inttypes-incomplete, not inttypes.
* modules/inttypes-incomplete: New module, containing the contents
of the old modules/inttypes module, except that the Files: section
omits m4/inttypes-pri.m4, and the configure.ac section invokes
gl_INTTYPES_INCOMPLETE rather than gl_INTTYPES_H.
* modules/inttypes (Files): Remove lib/inttypes.in.h, m4/inttypes.m4.
(Depends-on): Depend only on inttypes-incomplete.
(Makefile.am): Remove everything; this is now in inttypes-incomplete.
2011-04-26 12:18:14 -07:00
Bruno Haible 9cf3ad7e96 Mention the include file. 2007-04-13 01:46:18 +00:00
Bruno Haible 738e912a0f Use GL_LINK_WARNING in the generated inttypes.h. 2007-02-18 02:02:26 +00:00
Bruno Haible 5eeec029e8 gnulib-tool now synthesizes the EXTRA_DIST line. 2006-10-13 12:40:22 +00:00
Bruno Haible e8684643a2 Distribute all lib/* source files through EXTRA_DIST. 2006-10-12 18:52:30 +00:00
Paul Eggert 82ff49b554 Add and change modules to make it easier for coreutils to use
gnulib-tool.

* lib/cycle-check.h: Include <stdint.h> unconditionally, since we
now assume the stdint module.  Do not include inttypes.h.
* lib/fsusage.h: Likewise.
* lib/getndelim2.c: Likewise.
* lib/human.h: Likewise.
* lib/inttostr.h: Likewise.
* lib/obstack.c: Likewise.
* lib/regex_internal.h: Likewise.
* lib/tempname.c: Likewise.
* lib/utimecmp.c: Likewise.
* lib/xstrtol.h: Likewise.

* lib/stat_.h: Fix typo: HAVE_FUNC_LSTAT -> HAVE_LSTAT.

* lib/strtoimax.c: Adjust to macro name changes in Autoconf,
e.g., HAVE_LONG_LONG -> HAVE_LONG_LONG_INT.
* lib/xtime.h: Likewise.

Remove files that are no longer needed by their respective modules.
* m4/obstack.m4: Remove.
* m4/strerror_r.m4: Remove.
* m4/uint32_t.m4: Remove.
* m4/uintptr_t.m4: Remove.
* m4/ullong_max.m4: Remove.
* m4/xstrtoimax.m4: Remove.
* m4/xstrtoumax.m4: Remove.

* cycle-check.m4 (gl_CYCLE_CHECK): Do not require gl_AC_TYPE_UINTMAX_T,
gl_STRUCT_DEV_INO, or gl_SAME_INODE, since gnulib dependencies now
capture this.

* cycle-check.m4 (gl_CYCLE_CHECK):
Do not use AC_LIBSOURCES, since gnulib modules now do this.
* fsusage.m4 (gl_FSUSAGE): Likewise.
* human.m4 (gl_HUMAN): Likewise.
* inttostr.m4 (gl_INTTOSTR): Likewise.
* xstrtol.m4 (gl_XSTRTOL): Likewise.

* filemode.m4 (gl_FILEMODE): Require AC_STRUCT_ST_DM_MODE.

* filemode.m4 (gl_PREREQ_FSUSAGE_EXTRA): Do not require
gl_AC_TYPE_INTMAX_T or gl_AC_TYPE_UINTMAX_T, since we now require
stdint.
* human.m4 (gl_HUMAN): Likewise.
* inttostr.m4 (gl_PREREQ_INTTOSTR): Likewise.
* mkstemp.m4 (gl_PREREQ_TEMPNAME): Likewise.
* strtoimax.m4 (gl_PREREQ_STRTOIMAX): Likewise.
* strtoumax.m4 (gl_PREREQ_STRTOUMAX): Likewise.
* xstrtol (gl_XSTRTOL): Likewise.

* gethrxtime.m4 (gl_XTIME): gl_AC_TYPE_LONG_LONG ->
AC_TYPE_LONG_LONG_INT.
* strtoimax.m4 (gl_PREREQ_STRTOIMAX): Likewise.
* strtoll.m4 (gl_FUNC_STRTOLL): Likewise.
* strtoull.m4 (gl_FUNC_STRTOULL): Likewise, for unsigned long.
* strtoumax.m4 (gl_PREREQ_STRTOUMAX): Likewise.

* human.m4 (gl_HUMAN): Do not require AM_STDBOOL_H since we depend
on stdbool.

* xstrtol.m4 (gl_PREREQ_XSTRTOL_H, gl_PREREQ_XSTRTOL): Remove.
(gl_PREREQ_XSTRTOUL): Remove.

* ls-mntd-fs.m4 (gl_LIST_MOUNTED_FILE_SYSTEMS): Check for hasmntopt.

* posixver.m4: Fix comment since head -1 now works even in POSIX mode.

* modules/backupfile (Files): Remove m4/d-ino.m4.
(Depends-on): Add d-ino.
* modules/cycle-check (Depends-on): Add stdint.
(lib_SOURCES): Add cycle-check.h.
* modules/d-ino: New module.
* modules/d-type: New module.
* modules/error (Files): Remove m4/strerror_r.m4.
* modules/filemode (Files): Add m4/st_dm_mode.m4.
* modules/fsuage (Files): Remove m4/ulonglong.m4, m4/stdint_h.m4,
m4/inttypes_h.m4, m4/uintmax_t.m4.
(Depends-on): Add stdint.
(lib_SOURCES): Add fsusage.h.
* modules/getcwd (Files): Remove d-ino.m4.
(Depends-on): Add d-ino.
* modules/getndelim2 (Depends-on): Add stdint.
* modules/glob (Files): Remove m4/d-type.m4.
(Depends-on): Add d-type.
* modules/host-os: New module.
* modules/human (Files):  Remove m4/ulonglong.m4, m4/stdint_h.m4,
m4/inttypes_h.m4, m4/uintmax_t.m4.
* Depends-on: Add stdint.
(lib_SOURCES): Add human.h.
* modules/inttostr (Files): Remove m4/intmax_t.m4,
m4/inttostr.m4, m4/inttypes_h.m4, m4/longlong.m4, m4/stdint_h.m4,
m4/uintmax_t.m4, m4/ulonglong.m4.
(Depends-on): Add stdint.
(EXTRA_DIST): Add inttostr.h.
* modules/lchmod: New module.
* modules/link-follow: New module.
* modules/mkdir-p (Files): Remove lib/lchmod.h, m4/lchmod.m4.
(Depends-on): Add lchmod.
* modules/mkstemp (Files): Remove m4/ulonglong.m4,
m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4.
(Depends-on): Add stdint.
* modules/obstack (Files): Remove m4/inttypes_h.m4, m4/obstack.m4,
m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4.
(Depends-on): Add stdint.
(configure.ac): Change gl_OBSTACK to AC_FUNC_OBSTACK.
* modules/perl: New module.
* modules/regex (Depends-on): Add stdint.
* modules/rmdir-errno: New module.
* modules/strtoimax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4,
m4/intmax_t.m4.
(Depends-on): Add stdint.
* modules/strtoumax (Files): Remove m4/stdint_h.m4, m4/inttypes_h.m4,
m4/uintmax_t.m4.
(Depends-on): Add stdint.
* modules/unlink-busy: New module.
* modules/utimecmp (Depends-on): Add stdint.
* modules/uptime: New module.
* modules/winsz-ioctl: New module.
* modules/winsz-termios: New module.
* modules/xnanosleep (Depends-on): Add nanosleep.
* modules/ullong_max: Remove.
* modules/xstrtoimax (Files): Remove m4/xstrtoimax.m4.
(configure.ac): Remove gl_XSTRTOIMAX; no action needed now.
* modules/xstrtol (Files): Remove m4/ulonglong.m4, m4/longlong.m4,
m4/stdint_h.m4, m4/inttypes_h.m4, m4/uintmax_t.m4, m4/intmax_t.m4.
(Depends-on): Add inttypes.
(lib_SOURCES): Add xstrtol.h.
* modules/xstrtoumax (Files): Remove m4/xstrtoumax.m4.
(configure.ac): Remove gl_XSTRTOUMAX; no action needed now.
* MODULES.html.sh: Move 'assert' into the assert section.
Move 'dummy' into the linking section.
Remove ullong_max.
Add section for compatibility checks for POSIX:2001 functions,
and put d-ino, d-type, link-follow, rmdir-errno, unlink-busy,
winsz-ioctl, and winsz-termios into it.
Add lchmod.
Add top-level Misc section and put host-os, perl, and uptime
into it.
2006-08-21 06:11:26 +00:00
Derek R. Price d58cf1a8bf * modules/inttypes: New file.
* modules/strtoimax, modules/strtoumax: Depend on inttypes.
* lib/inttypes.h: New file.
* lib/strtoimax.c: Assume <inttypes.h>.
* m4/_inttypes_h.m4, m4/full-header-path.m4, m4/include_next: New
files.
2006-04-18 17:20:47 +00:00
Paul Eggert 52116d1510 * modules/exclude (Depends-on): Depend on verify.
* modules/strtoimax (Depends-on): Likewise.
* modules/utimecmp (Depends-on): Likewise.
* lib/exclude.c: Include verify.h.
(verify): Remove.  All callers changed to use verify.h's version.
* lib/strtoimax.c: Likewise.
* lib/utimecmp.c: Likewis.e
2005-10-02 22:44:15 +00:00
Bruno Haible 5143f4e91f Add a license tag to every module. 2004-09-22 15:11:04 +00:00
Bruno Haible 6f99528a90 Add a Maintainer. 2003-01-20 10:02:37 +00:00
Bruno Haible 2e82f91f46 Add module descriptions. 2003-01-13 16:07:17 +00:00
Bruno Haible 740e9a30ef Module description. 2002-12-31 13:46:30 +00:00