1999-11-10 Andreas Jaeger <aj@suse.de>
* string/strsignal.c (strsignal): Correct check for snprintf
return value.
* argp/argp-fmtstream.c (__argp_fmtstream_printf): Likewise.
* misc/efgcvt_r.c (APPEND): Correct check for too small buffer
according to changed snprintf return value.
Reported by Lawrence K. Chen <lchen@opentext.com>.
* misc/tst-efgcvt.c (special): Add tests for a too small buffer
for ecvt_r and fcvt_r.
1999-11-09 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-load.c (_dl_dst_count): Allow $ORIGIN to point to
directory with the reference since this is as secure as using the
object with the dependency.
(_dl_dst_substitute): Likewise.
* elf/dl-load.c (_dl_dst_count): Change strings in first two
strncmp calls to allow reuse.
(_dl_dst_substitute): Likewise.
1999-11-01 Arnold D. Robbins <arnold@skeeve.com>
* posix/regex.c (init_syntax_once): move below definition of
ISALNUM etc., then use ISALNUM to init the table, so that
the word ops will work if i18n'ed.
(SYNTAX): And subscript with 0xFF for 8bit character sets.
1999-11-09 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/getlogin_r.c (getlogin_r): Sync with getlogin
implementation for ttyname_r call; fix inverted condition; return
ut_user. Closes PR libc/1438.
1999-11-09 Ulrich Drepper <drepper@cygnus.com>
* timezone/checktab.awk: Update from tzcode1999h.
* timezone/africa: Update from tzdata1999i.
* timezone/asia: Likewise.
* timezone/australasia: Likewise.
* timezone/backward: Likewise.
* timezone/europe: Likewise.
* timezone/northamerica: Likewise.
* timezone/southamerica: Likewise.
* timezone/iso3166.tab: Likewise.
* timezone/zone.tab: Likewise.
* sysdeps/unix/sysv/linux/bits/resource.h: Define values also as
macros. Patch by brg@csua.berkeley.edu [PR libc/1439].
1999-11-09 Andreas Jaeger <aj@suse.de>
* posix/Makefile (tests): Added tst-getlogin.
* posix/tst-getlogin.c: New file, contains simple tests for
getlogin and getlogin_r.
1999-11-09 Andreas Schwab <schwab@suse.de>
* misc/syslog.c: For LOG_PERROR only append a newline if
necessary.
1999-11-08 Andreas Jaeger <aj@suse.de>
* locale/findlocale.c (_nl_find_locale): Free normalized_codeset;
this fixes a memory leak (closes PR libc/1435).
* intl/l10nflist.c (_nl_normalize_codeset): Update comment to
reflect memory allocation.
* intl/loadinfo.h: Comment _nl_normalize_codeset, comment memory
allocation in _nl_explode_name.
1999-11-06 Andreas Jaeger <aj@suse.de>
* time/tzset.c: Use __libc_lock_define_initialized for tzset_lock
to initialize it.
Reported by wes@surety.com, closes PR libc/1432.
1999-11-05 Geoff Keating <geoffk@cygnus.com>
* sysdeps/powerpc/fpu/bits/fenv.h: Don't put commas at the end of
enumerator lists (-pedantic complains).
(feraiseexcept): Use i#*X as the constraint. Fix a bug in the
test for 'one bit set'.
(feclearexcept): Likewise.
1999-11-05 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/bits/resource.h (RLIM_INFINITY): Adjust
for kernel changes.
* sysdeps/unix/sysv/linux/bits/types.h (__rlim_t, __rlim64_t): Make
unsigned.
1999-10-04 Tim Waugh <twaugh@redhat.com>
* posix/wordexp-test.c: More tests.
* posix/wordexp.c (wordexp): Explicit null words should be kept.
1999-11-04 Shinya Hanataka <hanataka@abyss.rim.or.jp>
* locale/programs/linereader.c (get_string): Correct type of buf2
variable.
* locale/programs/ld-ctype.c (ctype_output): Store index correctly
for _NL_CTYPE_INDIGITS_MB_LEN, _NL_CTYPE_INDIGITS_WC_LEN,
_NL_CTYPE_INDIGITS*_MB, _NL_CTYPE_OUTDIGIT*_MB, and
_NL_CTYPE_OUTDIGIT*_WC.
(allocate_arrays): Completely initialize mapping tables.
* locale/programs/ld-time.c (time_startup): We need the wide car
string.
(time_finish): Correct handling of era.
(time_output): Fix a few array indeces.
(time_read): Pass the repertoire map to lr_token.
1999-09-11 Paul Eggert <eggert@twinsun.com>
* posix/glob.h (glob): If #defining to glob64, do this before
declaring it, so that all declarations and uses match, and do not
declare glob64, to avoid a declaration clash.
(globfree): Likewise with globfree64.
1999-09-08 Eli Zaretskii <eliz@is.elta.co.il>
* sysdeps/generic/glob.c (prefix_array) [__MSDOS__,WINDOWS32]:
Keep the trailing slash unless DIRNAME is just "x:/".
1999-10-30 Ulrich Drepper <drepper@cygnus.com>
* manual/time.texi (Formatting Date and Time): Revise comments about
origins of the formats with ISO C99 references.
1999-10-30 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/ifreq.h: New file.
1999-10-29 Andreas Jaeger <aj@suse.de>
* manual/arith.texi (Parsing of Floats): Document the hexadecimal
input format; mention that strtof and strtold are part of ISO C99.
* manual/math.texi (Errors in Math Functions): New section.
* math/libm-err-tab.pl: Moved to...
* manual/libm-err-tab.pl: ...here.
* manual/Makefile: Add rules for math function error table generation.
1999-10-27 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/ifreq.h: New file.
* resolv/res_hconf.c: Add missing includes to get all prototypes.
(_res_hconf_reorder_addrs): Rewrite. This never worked before.
Reported by John DiMarco <jdd@cs.toronto.edu>.
(_res_hconf_reorder_addrs): Made thread safe.
(free_mem): New function, needed for malloc debugging.
1999-10-29 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/if_index.c (opensock): Move function to ...
* sysdeps/generic/opensock.c (__opensock): ...here in a new file.
* sysdeps/unix/sysv/linux/if_index.c: Change all callers of
opensock to use __opensock.
* socket/Makefile (routines): Add opensock.
* include/sys/socket.h (__opensock): Add prototype declaration.
1999-10-29 Andreas Jaeger <aj@suse.de>
* math/gen-libm-test.pl: New file to generate a table of
libm-test-ulps values.
1999-10-29 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sparc/sys/ptrace.h: New file.
* sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h: Expect
struct sigcontext* object as second parameter for profil_counter.
Patches by Jakub Jelinek <jakub@redhat.com>.
1999-10-29 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/fpathconf.c (__fpathconf): Handle reiserfs.
* sysdeps/unix/sysv/linux/pathconf.c: Likewise.
* sysdeps/unix/sysv/linux/linux_fsinfo.h: Add values for devpts,
efs, qnx4 and reiser file systems.
1999-10-29 Andreas Jaeger <aj@suse.de>
* locale/Makefile (others): Set to localedef and locale for make
clean.
* debug/Makefile (generated): Add xtrace for make clean to work.
1999-10-29 Andreas Jaeger <aj@suse.de>
* stdlib/tst-strtod.c: Add two testcases for hexadecimal input.
1999-10-25 Andreas Jaeger <aj@suse.de>
* math/libm-test.inc: Added code to ignore the given max ulps.
(print_max_error): Check for ignore_max_ulp.
(check_float_internal): Likewise.
(parse_opt): Parse --ignore-max-ulp.
(main): Initialize ignore_max_ulp.
1999-10-26 Andreas Jaeger <aj@suse.de>
* stdlib/msort.c: Include <alloca.h> for prototype.
Remove K&R compatibility and _quicksort prototype.
* stdlib/qsort.c: Make code and comments 64 bit clean; clarify
some comments.
Reported by Bernd Löchner <loechner@informatik.uni-kl.de>.
Remove K&R compatibility.
Move prototype declaration to include/stdlib.h.
Include <alloca.h> for prototype; include <limits.h> for CHAR_BIT.
* include/stdlib.h: Prototype declaration for _quicksort.
1999-10-27 Andreas Jaeger <aj@suse.de>
* stdlib/rand_r.c (rand_r): Really use 31 bits, the result was
shifted a bit too much.
Reported by Eugen Dedu <dedu@ese-metz.fr>.
1999-10-25 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/fpu/libm-test-ulps: Remove entries caused by +-0
problems.
* md5-crypt/md5.h: Remove prototypes for public interface. md5 is
only used internally.
1999-10-25 Thorsten Kukuk <kukuk@suse.de>
* md5-crypt/md5.h: Remove prototypes for public interface. md5 is
used only internal.
* md5-crypt/md5-crypt.c: Use internal names for md5 functions,
remove weak alias for public names.
* md5-crypt/md5.c: Remove weak aliase.
1999-10-25 Andreas Jaeger <aj@suse.de>
* math/README.libm-test: New file, documents libm-test.inc.
1999-10-25 Andreas Jaeger <aj@suse.de>
* math/gen-libm-test.pl: Only generate a new ulps file when -n is
given.
(print_ulps_file): Fix loops to not read @tests and @functions
since those are not initialized with -n now.
(parse_ulps): Set $results{..}{"kind"}.
1999-10-20 Andreas Jaeger <aj@suse.de>
* manual/socket.texi (Address Formats): Describe usage of AF_UNIX
versus AF_LOCAL.
Patch by Robert Bihlmeyer <robbe@orcus.priv.at>.
* sysdeps/ieee754/ldbl-96/s_nexttoward.c: If x == y, return y.
* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Don't handle -Inf special.
* sysdeps/ieee754/dbl-64/e_gamma_r.c (__ieee754_gamma_r): Check
for -Inf and return NaN.
1999-10-21 Andreas Jaeger <aj@suse.de>
* math/libm-test.inc (cimag_test): New function, tests cimag.
(creal_test): New function, tests creal.
(conj_test): New function, tests conj.
(main): Add new functions.
1999-10-20 Andreas Jaeger <aj@suse.de>
* math/libm-test.inc: Rewrite to allow different deltas for real
and imaginary part of complex functions.
* math/gen-libm-test.pl: Likewise.
1999-10-19 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/fpu/s_nextafterl.c: Add __nextafterl and nextafterl
aliases.
* sysdeps/ieee754/flt-32/e_lgammaf_r.c: Don't handle -Inf special.
* sysdeps/ieee754/flt-32/e_gammaf_r.c (__ieee754_gammaf_r): Check
for -Inf and return NaN.
* math/gen-libm-test.pl: Fix program name in help message.
* math/libm-test.inc (check_complex): It's Imaginary, not Complex.
* math/libm-test.inc (gamma_test): Result of gamma(-inf) is +inf.
* sysdeps/i386/Implies: Correct order of libm directories.
1999-10-18 Andreas Jaeger <aj@suse.de>
Added improved math testsuite:
* math/libm-test.inc: New file, contains all tests from
libm-test.c but in a different form.
* math/libm-test.c: Removed.
* sysdeps/generic/libm-test-ulps: New file: Fallback ulps file.
* math/gen-libm-test.pl: New file: Preprocessor.
* math/test-double.c: Adopted to new testsuite.
* math/test-idouble.c: Likewise.
* math/test-float.c: Likewise.
* math/test-ifloat.c: Likewise.
* math/test-ldouble.c: Likewise.
* math/test-ildoubl.c: Likewise.
* math/Makefile: Added rules to generate new suite.
1999-10-13 Ulrich Drepper <drepper@cygnus.com>
* td_ta_thr_iter.c: Use size of descriptor from *TA.
Don't return manager thread before it's actually running.
Actually use state parameter to distingusih at least a few states.
* td_thr_get_info.c: Handle manager thread special. Fill in ti_lid,
ti_state fields, and ti_startfunc fields.
1999-10-12 Andreas Jaeger <aj@suse.de>
* stdlib/tst-environ.c: Include <string.h> for strcpy declaration.
* math/basic-test.c: Fix typo.
* locale/programs/xstrdup.c: Include string.h for glibc
compilation to get string prototypes.
* sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Add definition of
gregset_t and fpregset_t.
* sysdeps/generic/s_nexttowardf.c: Add parenthesis to shut up gcc
warnings. Correct value for x == 0.
* argp/argp-help.c: Remove broken definition of flockfile and
funlockfile.
1999-10-12 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Update to match
generic Linux version.
1999-10-12 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/bits/sigaction.h: Remove K&R compatibility.
* stdlib/atexit.c (initial): New variable. Use to initialize
__exit_funcs.
* stdlib/exit.c (exit): Beware to not free statically allocale
list element [PR libc/1305].
1999-10-10 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/powerpc/sysdep.h: New file.
* sysdeps/unix/powerpc/sysdep.h: New file.
* sysdeps/unix/sysv/linux/powerpc/sysdep.h: Include
sysdeps/unix/powerpc/sysdep.h, not sysdeps/unix/sysdep.h.
* sysdeps/powerpc/fpu/s_copysign.S: Use symbolic names for registers
instead of bare numbers.
* sysdeps/powerpc/fpu/s_fabs.S: Likewise.
* sysdeps/powerpc/fpu/s_fmax.S: Likewise.
* sysdeps/powerpc/fpu/s_fmin.S: Likewise.
* sysdeps/hppa/sysdep.h: New file.
1999-10-05 Andreas Jaeger <aj@suse.de>
* manual/message.texi (The message catalog files): Fix description
to match gencat implementation and Unix98: Message fields are
separated by a single blank space.
1999-10-05 Andreas Jaeger <aj@suse.de>
* manual/string.texi (Search Functions): Add missing end for
memrchr description.
1999-10-04 Ulrich Drepper <drepper@cygnus.com>
* malloc/Makefile: Add rule to generate memprof script.
* malloc/memprof.sh: New file.
* elf/ldd.bash.in: Add "Usage: " in help message to comply with
GNU standard.
1999-10-04 Andreas Jaeger <aj@suse.de>
* timezone/README: Change wording to not mention the current
version. This way we can't forget to update the file.
1999-10-04 Andreas Jaeger <aj@suse.de>
* manual/time.texi (Basic CPU Time): Fix typo.
Reported by Ben Pfaff <pfaffben@msu.edu>.
1999-10-04 Ulrich Drepper <drepper@cygnus.com>
* string/string.h: Move __memrchr declaration to ...
* include/string.h: ...here.
1999-10-04 Ulrich Drepper <drepper@cygnus.com>
* include/string.h: Add __memrchr declaration.
* string/string.h: Moce __memrchr declaration to include/string.h.
1999-10-03 Ulrich Drepper <drepper@cygnus.com>
* string/Makefile (routines): Add memrchr.
* sysdeps/generic/memrchr.c: Don't undef memchr, undef memrchr.
Correct order of tests for matching bytes.
* string/tester.c: Add tests for memrchr.
* sysdeps/i386/i486/bits/string.h (__memrchr): Correct implementation.
Start from the last character and take decrement not increment
into account for correction in return line. Add memrchr alias.
* sysdeps/i386/bits/string.h: Likewise.
1999-10-03 Ulrich Drepper <drepper@cygnus.com>
* configure.in: Accept --with-gd option and set all libgd-LDFLAGS,
CFLAGS-memprofstat.c, and LIBGD variables.
* config.make.in: Add LIBGD.
* malloc/Makefile: Add rules to generate libmemprof.so and
memprofstat.
* malloc/memprof.c: New file.
* malloc/memprofstat.c: New file.
1999-10-02 Ulrich Drepper <drepper@cygnus.com>
* resolv/tst-aton.c (main): Add more tests.
* resolv/inet_addr.c (inet_aton): Correct some problems with to
large numbers. Optimize a bit.
1999-10-01 Ulrich Drepper <drepper@cygnus.com>
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Align
handling of IPv6 tunnel address handling with bind 8.2.1. Allow
len argument to be greater than needed address size.
1999-09-27 Andreas Jaeger <aj@suse.de>
* resolv/netdb.h: Remove declaration of getnodebyname. It has
been renamed to getipnodebyname. Move flags around.
1999-09-27 Andreas Schwab <schwab@suse.de>
* manual/message.texi (Locating gettext catalog): Fix typos.
1999-09-27 Andreas Jaeger <aj@suse.de>
* manual/socket.texi (Out-of-Band Data): Correct example program,
rename some variables for clarity.
Reported by James Antill <james@and.org>, close PR libc/1329.
1999-09-26 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/ld-ctype.c (charclass_symbolic_ellipsis): Fix
error message printing. Correctly test whether all characters of
current token are used.
(ctype_read): NUL terminate last_str.
1999-09-24 Ulrich Drepper <drepper@cygnus.com>
* nis/nss_nisplus/nisplus-parser.c (_nss_nisplus_parse_grent): Do
not ovverwrite last group member with NULL pointer.
Reported by Thomas Winder <thomas.winder@newlogic.at>.
1999-09-24 Andreas Jaeger <aj@suse.de>
* stdio-common/tst-printf.c (main): Add a testcase for large
precision. Reported by Tymm Twillman <tymm@coe.missouri.edu>.
1999-09-24 Andreas Schwab <schwab@suse.de>
* math/bits/mathcalls.h: Fix last change. Also declare __finite.
1999-09-24 Andreas Jaeger <aj@suse.de>
* intl/finddomain.c (_nl_find_domain): Fix memory leak: Free
normalized_codeset. Reported by Belicky Zsolt <zsolt@prolan.hu>.
1999-09-23 Mark Kettenis <kettenis@gnu.org>
* sysdeps/unix/sysv/linux/Makefile [malloc] (CFLAGS-malloc.c): New
variable. Define MORECORE_CLEARS to 2.
* malloc/malloc.c (cALLOc): Correctly handle systems where sbrk
doesn't clear the contents of memory that is reallocated after
decrementing the break value first. Update comment about
MORECORE_CLEARS, explaining the meaning of the values it can be
set to.
1999-09-22 Andreas Jaeger <aj@suse.de>
* stdio-common/tstscanf.c (main): Add test case from PR libc/1313
reported by Ben Caradoc-Davies <bmcd@physics.otago.ac.nz>.
1999-09-22 Andreas Schwab <schwab@suse.de>
* stdio-common/vfscanf.c: Fix width handling when scanning floats.
1999-04-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* elf/Makefile (CFLAGS-multiload.c): Change to allow building in
the source directory. Fixes PR libc/1059.
1999-09-20 Jean-Louis Martineau <martinea@IRO.UMontreal.CA>
* nis/nss_compat/compat-pwd.c (getpwuid_plusgroup): Correct
returned errno value in some cases.
1999-080-25 H.J. Lu <hjl@gnu.org>
* manual/filesys.texi (Testing File Access): Correct description of
SUID.
1999-08025 H.J. Lu <hjl@gnu.org>
* csu/defs.awk (.end): Only match with leading white spaces.
(.align): Likewise.
1999-09-19 Ulrich Drepper <drepper@cygnus.com>
1999-09-19 Ulrich Drepper <drepper@cygnus.com>
* po/pl.po: Updated.
1999-09-17 Andreas Schwab <schwab@suse.de>
* Makefile (clean): Also remove $(postclean) files.
1999-09-15 Andreas Jaeger <aj@suse.de>
* pwd/Makefile (otherlibs): Add for building with static-nss.
* inet/Makefile (otherlibs): Likewise.
1999-09-15 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/aio_sigqueue.c (__aio_sigqueue): Use old style
function definition to avoid a compilation failure.
1999-09-15 Andreas Jaeger <aj@suse.de>
* stdlib/tst-environ.c (main): Add getenv regression test for
environment variable that's one character long.
1999-09-15 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/i386/sigaction.c: Protect real time
signal definitions to let glibc compile with older Linux versions
(2.0.10 to 2.1.100 or so).
* sysdeps/mach/hurd/wait4.c (__wait4): When proc_wait returns EAGAIN,
return zero to indicate no children died yet (assuming WNOHANG).
* sysdeps/mach/hurd/setsid.c: #include <hurd/fd.h>.
1999-09-17 Roland McGrath <roland@baalperazim.frob.com>
* hurd/port2fd.c (_hurd_port2fd): Never change CTTYID port.
* sysdeps/mach/hurd/setsid.c (__setsid): Fix return type -> pid_t.
Return _hurd_pgrp instead of 0.
1999-09-18 Ulrich Drepper <drepper@cygnus.com>
* nis/nss_compat/compat-grp.c (getgrgid_plusgroup): Correct
returned errno value in some cases.
struct user_fp. These were added in version 2.2.12 of the
1999-09-17 Andreas Jaeger <aj@suse.de>
* sysdeps/i386/Makefile (CFLAGS-initfini.s): Add also -mcpu=i386
to override user settings.
1999-09-17 Andreas Schwab <schwab@suse.de>
* sysdeps/unix/sysv/linux/semctl.c: Copy the argument instead of
using a pointer to it.
1999-08-09 Scott Bambrough <scottb@netwinder.org>
* sysdeps/unix/sysv/linux/arm/sys/user.h: Added members
'unsigned char ftype[8]', and 'unsigned int init_flag' to
struct user_fp. Tnese were added in version 2.2.12 of the
ARM Linux kernel.
* sysdeps/unix/sysv/linux/arm/sys/elf.h: New file.
* sysdeps/unix/sysv/linux/arm/sys/procfs.h: New file.
The generic procfs.h included <asm/elf.h>. This causes
structure redefinition errors when <sys/user.h> and <sys/procfs.h>
are included in the same source file. Found when building GDB.
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): If res_search
fails don't rely on errno value.
(getanswer_r): Set *ERRNOP in error cases.
* sysdeps/posix/getaddrinfo.c (gaih_local): Test protocol and socktype.
(gaih_inet_serv): Return EIA_NODATA if name is known but has no
associated data. Test for matching numeric address and family.
(getaddrinfo): Remember EAI_NODATA result and return this in case
everything fails.
Reported by Arkadiusz Miskiewicz <misiek@misiek.eu.org>.
1999-09-12 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/ld-address.c: Fix handling of non-existing
definitions for this category. Correctly ignore content of this
category is this is necessary.
* locale/programs/ld-collate.c: Likewise.
* locale/programs/ld-ctype.c: Likewise.
* locale/programs/ld-identification.c: Likewise.
* locale/programs/ld-measurement.c: Likewise.
* locale/programs/ld-messages.c: Likewise.
* locale/programs/ld-monetary.c: Likewise.
* locale/programs/ld-name.c: Likewise.
* locale/programs/ld-numeric.c: Likewise.
* locale/programs/ld-paper.c: Likewise.
* locale/programs/ld-telephone.c: Likewise.
* locale/programs/ld-time.c: Likewise.
* locale/programs/locfile.h (handle_copy): Take extra parameter
with result pointer. Fill in name of locale from which to copy.
Correctly read token after `END'.
* locale/programs/localedef.c (main): Correct handling copy.
(add_to_readlist): Take extra parameter which says whether we
are supposed to read the file or not.
(find_locale): Call add_to_readlist with extra parameter set to 0.
* locale/programs/localedef.h (struct localedef_t): Use __LC_LAST
instead of wrong number in array definitions.
(add_to_readlist): Update prototype.
* locale/programs/locfile.c (locfile_read): Mark categories not
available in source file as read.
(write_all_categories): Fix typo.