1997-01-07 06:07:28 +08:00
|
|
|
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
|
|
|
This file is part of the GNU C Library.
|
|
|
|
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
|
1997-01-07 06:07:28 +08:00
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU Library General Public License as
|
|
|
|
published by the Free Software Foundation; either version 2 of the
|
|
|
|
License, or (at your option) any later version.
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
|
1997-01-07 06:07:28 +08:00
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
Library General Public License for more details.
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
|
1997-01-07 06:07:28 +08:00
|
|
|
You should have received a copy of the GNU Library General Public
|
|
|
|
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
|
|
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
|
|
Boston, MA 02111-1307, USA. */
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
# include <config.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <ctype.h>
|
|
|
|
#include <endian.h>
|
|
|
|
#include <errno.h>
|
|
|
|
#include <error.h>
|
|
|
|
#include <fcntl.h>
|
|
|
|
#include <getopt.h>
|
1996-08-02 13:27:50 +08:00
|
|
|
#include <locale.h>
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
#include <libintl.h>
|
|
|
|
#include <limits.h>
|
|
|
|
#include <nl_types.h>
|
|
|
|
#include <obstack.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
|
|
|
#include "version.h"
|
|
|
|
|
|
|
|
#include "catgetsinfo.h"
|
|
|
|
|
|
|
|
|
|
|
|
#define SWAPU32(w) \
|
|
|
|
(((w) << 24) | (((w) & 0xff00) << 8) | (((w) >> 8) & 0xff00) | ((w) >> 24))
|
|
|
|
|
|
|
|
struct message_list
|
|
|
|
{
|
|
|
|
int number;
|
|
|
|
const char *message;
|
|
|
|
|
|
|
|
const char *fname;
|
|
|
|
size_t line;
|
|
|
|
const char *symbol;
|
|
|
|
|
|
|
|
struct message_list *next;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct set_list
|
|
|
|
{
|
|
|
|
int number;
|
|
|
|
int deleted;
|
|
|
|
struct message_list *messages;
|
|
|
|
int last_message;
|
|
|
|
|
|
|
|
const char *fname;
|
|
|
|
size_t line;
|
|
|
|
const char *symbol;
|
|
|
|
|
|
|
|
struct set_list *next;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct catalog
|
|
|
|
{
|
|
|
|
struct set_list *all_sets;
|
|
|
|
struct set_list *current_set;
|
|
|
|
size_t total_messages;
|
|
|
|
char quote_char;
|
|
|
|
int last_set;
|
|
|
|
|
|
|
|
struct obstack mem_pool;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/* If non-zero force creation of new file, not using existing one. */
|
|
|
|
static int force_new;
|
|
|
|
|
|
|
|
/* Long options. */
|
|
|
|
static const struct option long_options[] =
|
|
|
|
{
|
|
|
|
{ "header", required_argument, NULL, 'H' },
|
|
|
|
{ "help", no_argument, NULL, 'h' },
|
|
|
|
{ "new", no_argument, &force_new, 1 },
|
|
|
|
{ "output", required_argument, NULL, 'o' },
|
|
|
|
{ "version", no_argument, NULL, 'V' },
|
|
|
|
{ NULL, 0, NULL, 0 }
|
|
|
|
};
|
|
|
|
|
|
|
|
/* Wrapper functions with error checking for standard functions. */
|
|
|
|
extern void *xmalloc (size_t n);
|
|
|
|
|
|
|
|
/* Prototypes for local functions. */
|
|
|
|
static void usage (int status) __attribute__ ((noreturn));
|
|
|
|
static void error_print (void);
|
|
|
|
static struct catalog *read_input_file (struct catalog *current,
|
|
|
|
const char *fname);
|
|
|
|
static void write_out (struct catalog *result, const char *output_name,
|
|
|
|
const char *header_name);
|
|
|
|
static struct set_list *find_set (struct catalog *current, int number);
|
|
|
|
static void normalize_line (const char *fname, size_t line, char *string,
|
|
|
|
char quote_char);
|
|
|
|
static void read_old (struct catalog *catalog, const char *file_name);
|
|
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
main (int argc, char *argv[])
|
|
|
|
{
|
|
|
|
struct catalog *result;
|
|
|
|
const char *output_name;
|
|
|
|
const char *header_name;
|
|
|
|
int do_help;
|
|
|
|
int do_version;
|
|
|
|
int opt;
|
|
|
|
|
|
|
|
/* Set program name for messages. */
|
|
|
|
error_print_progname = error_print;
|
|
|
|
|
|
|
|
/* Set locale via LC_ALL. */
|
|
|
|
setlocale (LC_ALL, "");
|
|
|
|
|
|
|
|
/* Set the text message domain. */
|
|
|
|
textdomain (PACKAGE);
|
|
|
|
|
|
|
|
/* Initialize local variables. */
|
|
|
|
do_help = 0;
|
|
|
|
do_version = 0;
|
|
|
|
output_name = NULL;
|
|
|
|
header_name = NULL;
|
|
|
|
result = NULL;
|
|
|
|
|
|
|
|
while ((opt = getopt_long (argc, argv, "hH:o:V", long_options, NULL)) != EOF)
|
|
|
|
switch (opt)
|
|
|
|
{
|
|
|
|
case '\0': /* Long option. */
|
|
|
|
break;
|
|
|
|
case 'h':
|
|
|
|
do_help = 1;
|
|
|
|
break;
|
|
|
|
case 'H':
|
|
|
|
header_name = optarg;
|
|
|
|
break;
|
|
|
|
case 'o':
|
|
|
|
output_name = optarg;
|
|
|
|
break;
|
|
|
|
case 'V':
|
|
|
|
do_version = 1;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
usage (EXIT_FAILURE);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Version information is requested. */
|
|
|
|
if (do_version)
|
|
|
|
{
|
1996-10-02 09:40:17 +08:00
|
|
|
printf ("gencat (GNU %s) %s\n", PACKAGE, VERSION);
|
|
|
|
printf (_("\
|
1996-09-23 08:24:55 +08:00
|
|
|
Copyright (C) %s Free Software Foundation, Inc.\n\
|
|
|
|
This is free software; see the source for copying conditions. There is NO\n\
|
|
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
|
1997-01-07 06:07:28 +08:00
|
|
|
"), "1996, 1997");
|
1996-10-02 09:40:17 +08:00
|
|
|
printf (_("Written by %s.\n"), "Ulrich Drepper");
|
1996-09-23 08:24:55 +08:00
|
|
|
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
exit (EXIT_SUCCESS);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Help is requested. */
|
|
|
|
if (do_help)
|
|
|
|
usage (EXIT_SUCCESS);
|
|
|
|
|
|
|
|
/* Determine output file. */
|
|
|
|
if (output_name == NULL)
|
|
|
|
output_name = optind < argc ? argv[optind++] : "-";
|
|
|
|
|
|
|
|
/* Process all input files. */
|
|
|
|
setlocale (LC_CTYPE, "C");
|
|
|
|
if (optind < argc)
|
|
|
|
do
|
|
|
|
result = read_input_file (result, argv[optind]);
|
|
|
|
while (++optind < argc);
|
|
|
|
else
|
|
|
|
result = read_input_file (NULL, "-");
|
|
|
|
|
|
|
|
/* Write out the result. */
|
|
|
|
if (result != NULL)
|
|
|
|
write_out (result, output_name, header_name);
|
|
|
|
|
|
|
|
exit (EXIT_SUCCESS);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
usage (int status)
|
|
|
|
{
|
|
|
|
if (status != EXIT_SUCCESS)
|
|
|
|
fprintf (stderr, gettext ("Try `%s --help' for more information.\n"),
|
|
|
|
program_invocation_name);
|
|
|
|
else
|
1996-09-13 11:21:39 +08:00
|
|
|
{
|
1996-10-02 09:40:17 +08:00
|
|
|
printf (gettext ("\
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
Usage: %s [OPTION]... -o OUTPUT-FILE [INPUT-FILE]...\n\
|
|
|
|
%s [OPTION]... [OUTPUT-FILE [INPUT-FILE]...]\n\
|
|
|
|
Mandatory arguments to long options are mandatory for short options too.\n\
|
|
|
|
-H, --header create C header file containing symbol definitions\n\
|
|
|
|
-h, --help display this help and exit\n\
|
|
|
|
--new do not use existing catalog, force new output file\n\
|
|
|
|
-o, --output=NAME write output to file NAME\n\
|
|
|
|
-V, --version output version information and exit\n\
|
|
|
|
If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n\
|
1996-09-13 11:21:39 +08:00
|
|
|
is -, output is written to standard output.\n"),
|
1996-10-02 09:40:17 +08:00
|
|
|
program_invocation_name, program_invocation_name);
|
1997-01-07 06:07:28 +08:00
|
|
|
fputs (gettext ("\
|
|
|
|
Report bugs using the `glibcbug' script to <bugs@gnu.ai.mit.edu>.\n"),
|
update from main archive
Mon Sep 23 15:31:04 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* hurd/Makefile ($(includedir)/rpc/netdb.h): There is no make
variable `top_srcdir' in libc; use $(..) instead.
* sysdeps/mach/hurd/Makefile (rtld-installed-name): Delete special
definition. It was a *Mistake*. (With a capital M.)
* sysdeps/mach/getsysstats.c (__get_nprocs): Renamed from
__get_nproc.
(__get_nprocs_conf): Renamed from __get_nproc_conf.
Fri Sep 27 03:49:56 1996 Ulrich Drepper <drepper@cygnus.com>
Add support for cancelable system calls.
* csu/initfini.c: Make in crti.o reference to symbol
__libc_force_cancel_wrapper when compiling reentrant version.
* misc/Makefile (routines): Add force-wrapper.
* misc/force-wrapper.c: New file.
* posix/system.c: Rename function to __libc_system and make system
a weak alias.
* sysdeps/stub/system.c: Likewise.
* posix/wait.c: Rename function to __libc_wait and make __wait a
weak alias. De-ANSI-fy.
* sysdeps/standalone/read.c: Rename function to __libc_read and
make __read a weak alias.
* sysdeps/stub/read.c: Likewise.
* sysdeps/standalone/write.c: Rename function to __libc_write and
make __write a weak alias.
* sysdeps/stub/write.c: Likewise.
* sysdeps/stub/tcdrain.c: Rename function to __libc_tcdrain and
make tcdrain a weak alias.
* sysdeps/unix/bsd/tcdrain.c: Likewise.
* sysdeps/unix/bsd/bsd4.4/tcdrain.c: Likewise.
* sysdeps/unix/sysv/tcdrain.c: Likewise.
* sysdeps/unix/sysv/linux/tcdrain.c: Likewise.
* sysdeps/unix/bsd/bsd4.4/wait.c: Rename function to __libc_wait
and make __wait a weak alias.
* sysdeps/stub/waitpid.c: Rename function to __libc_waitpid and
make __waitpid a weak alias.
* sysdeps/unix/bsd/bsd4.4/waitpid.c: Likewise.
* sysdeps/unix/sysv/linux/waitpid.c: Likewise.
* sysdeps/unix/sysv/sysv4/waitpid.c: Likewise.
* sysdeps/unix/common/pause.c: Rename function to __libc_pause
and make pause a weak alias. De-ANSI-fy.
* sysdeps/unix/syscalls.list: Change name for close, fcntl, fsync,
lseek, open, read, and write to have __libc_ prefix and make old
names a weak alias.
* sysdeps/unix/mman/syscalls.list: Likewise for msync.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise for nanosleep.
* io/creat.c: De-ANSI-fy.
* sysdeps/unix/sysv/linux/syscalls.list: Add pause.
Thu Sep 26 19:15:55 1996 Ulrich Drepper <drepper@cygnus.com>
* misc/mntent.h: Add MNTTYPE_* and MNTOPT_* macros.
Reported by Hans Grobler <grobh@nolian.ee.sun.ac.za>.
Thu Sep 26 14:40:10 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/posix/pathconf.c: Pass descriptor for just opened file
to fpathconf.
Reported by Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>.
Thu Sep 26 04:02:43 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/programs/locfile.c (write_locale_data): Allocate room
even for file name for LC_MESSAGES locale.
(locafile_read): `tok_era' must be handled as a string list.
* locale/programs/ld-time.c: Finish correction of handling `era'.
* locale/C-time.c (_nl_C_LC_TIME): Add initializer for new fields.
* locale/categories.def: Add postload function for LC_TIME.
* locale/setlocale.c: Make lock global and rename to
__libc_setlocale_lock.
* locale/localeinfo.h (struct era_entry): New type. Used in strftime.
Add prototypes for _nl_get_era_entry and _nl_get_alt_digit.
* locale/lc-time.c (_nl_postload_time): New function. Initialize
lazy intialization.
(_nl_get_era_entry): New function. Return era entry which corresponds
to given year.
(_nl_get_alt_digit): New function. Return string with alternate
digit representation for given number.
* time/strftime.c (strftime): Use _nl_get_alt_digit to get
string representing alternate digit notation.
Wed Sep 25 17:31:55 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/generic/waitstatus.h (union wait): Add w_status field.
Reported by Hans Grobler <grobh@nolian.ee.sun.ac.za>.
* elf/rtld.c (dl_main): Process LD_PRELOAD before loading
ld.so.preload. Suggested by David Engel <david@elo.ods.com>.
Wed Sep 25 13:10:57 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/gencat.c (main): Change --version again because RMS wants
the package name in parentheses.
* db/makedb.c: Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/localedef.c: Likewise.
Tue Sep 24 01:28:05 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(objpfx)sysd-dirs): Depend on Subdirs files, command
rewritten.
($(objpfx)version-info.h): Depend on Banner files, command
rewritten.
Wed Sep 25 02:44:41 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/sleep.c: New file. Based on nanosleep.
Tue Sep 24 21:46:02 1996 Ulrich Drepper <drepper@cygnus.com>
* shadow/lckpwdf.c (PWD_LOCKFILE): Change to /etc/lock.pwd to be
on the same device as the password file.
* shadow/shadow.h (struct spwd): Change type of numeric fields
to `long int' since there value are days, not seconds.
* shadow/putspent.c: Change casts from time_t to `long int'.
* shadow/sgetspent_r.c (LINE_READER): Likewise.
Mon Sep 23 23:05:24 1996 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/errnos.h: Define __set_errno to make
sure the thread specific variable is set as well as the global
variable.
* sysdeps/mach/hurd/errnos.awk: Define macro for source code
compatibility.
* sysdeps/stub/errnos.h: Likewise.
* sysdeps/unix/bsd/bsd4.4/errnos.h: Likewise.
* shadow/putspent.c: Don't include <errno.h>.
* dirent/scandir.c (scandir): Use __set_errno to set errno
variable.
* elf/dl-load.c (open_path): Likewise.
* inet/rcmd.c (rcmd): Likewise.
(rresvport): Likewise.
* intl/dcgettext.c [!__set_errno]: Define __set_errno.
(DCGETTEXT): Use __set_errno to set errno variable.
* io/fts.c (fts_open): Likewise.
(fts_close): Likewise.
(fts_read): Likewise.
(fts_set): Likewise.
(fts_children): Likewise.
(fts_build): Likewise.
(fts_stat): Likewise.
* io/ftw.c (ftw_dir): Likewise.
(ftw): Likewise.
* io/getwd.c (getwd): Likewise.
* io/lockf.c (lockf): Likewise.
* libio/libioP.h [EINVAL]: Use __set_errno to define MAYBE_SET_EINVAL.
* libio/iofdopen.c (_IO_fdopen): Use MAYBE_SET_EINVAL to errno.
* libio/iogetdelim.c (_IO_getdelim): Likewise.
* libio/fileops.c (_IO_file_open): Use __set_errno to set errno
variable.
* libio/iofgetpos.c (_IO_fgetpos): Likewise.
* libio/iofsetpos.c (_IO_fsetpos): Likewise.
* libio/ioftell.c (_IO_ftell): Likewise.
* locale/loadlocale.c (_nl_load_locale): Likewise.
* locale/nl_langinfo.c (nl_langinfo): Likewise.
* locale/setlocale.c (ERROR_RETURN): Likewise.
* login/getutid_r (__getutid_r): Likewise.
* login/getutline_r (__getutline_r): Likewise.
* login/login.c (tty_name): Likewise.
* login/oututline_r.c (__pututline_r): Likewise.
* malloc/malloc.c (morecore): Likewise.
* misc/efgcvt_r.c (fcvt_r): Likewise.
* misc/hsearch_r.c (hcreate_r): Likewise.
(hdestroy_r): Likewise.
(hsearch_r): Likewise.
* nss/nsswitch.c (__nss_configure_lookup): Likewise.
* nss/nss_dns/dns-host.c (_nss_dns_gethostbyname2_r): Likewise.
(_nss_dns_gethostbyaddr_r): Likewise.
* nss/nss_files/files-XXX.c (internal_getent): Likewise.
* nss/nss_files/files-parse.c (parse_list): Likewise.
* posix/confstr.c (confstr): Likewise. De-ANSI-fy.
* posix/execvp.c (execvp): Likewise.
* posix/glob.c: Define __set_errno.
(glob): Use __set_errno to set errno variable.
(glob_in_dir): Likewise.
* pwd/getpw.c: Likewise. De-ANSI-fy.
* pwd/putpwent.c: Likewise.
* resolv/inet_net_ntop.c: Likewise.
* resolv/inet_net_pton.c: Likewise.
* resolv/inet_neta.c: Likewise.
* resolv/inet_ntop.c: Likewise.
* resolv/inet_pton.c: Likewise.
* resolv/res_query.c (res_search): Likewise.
* resolv/res_send.c (Aerror): Likewise.
(Perror): Likewise.
(res_send): Likewise.
* signal/sigaddset.c: Likewise. De-ANSI-fy.
* signal/sigdelset.c: Likewise.
* signal/sigempty.c: Likewise.
* signal/sigfillset.c: Likewise.
* signal/sigismem.c: Likewise.
* stdio/fclose.c: Likewise.
* stdio/feof.c: Likewise.
* stdio/ferror.c: Likewise.
* stdio/fflush.c: Likewise.
* stdio/fgetc.c: Likewise.
* stdio/fgetpos.c: Likewise.
* stdio/fgets.c: Likewise.
* stdio/fileno.c: Likewise.
* stdio/fmemopen.c: Likewise.
* stdio/fopen.c: Likewise.
* stdio/fputc.c: Likewise.
* stdio/fread.c: Likewise.
* stdio/freopen.c: Likewise.
* stdio/fseek.c: Likewise.
* stdio/fsetpos.c: Likewise.
* stdio/ftell.c: Likewise.
* stdio/fwrite.c: Likewise.
* stdio/getdelim.c: Likewise.
* stdio/gets.c: Likewise.
* stdio/glue.c: Likewise.
* stdio/internals.c: Likewise.
* stdio/memstream.c: Likewise.
* stdio/setvbuf.c: Likewise.
* stdio/ungetc.c: Likewise.
* stdio/vsscanf.c: Likewise.
* stdio-common/reg-printf.c: Likewise.
* stdio-common/vfprintf.c: Likewise.
* stdio-common/vfscanf.c: Likewise.
* stdlib/canonicalize.c: Likewise.
* stdlib/msort.c: Likewise.
* stdlib/random_r.c: Likewise.
* stdlib/strfmon.c: Likewise.
* stdlib/strtod.c: Likewise.
* stdlib/strtol.c: Likewise.
* sunrpc/bindrsvprt.c: Likewise.
* time/asctime.c: Likewise.
* time/localtime.c: Likewise.
* wcsmbs/mbrtowc.c: Likewise.
* wcsmbs/mbsnrtowcs.c: Likewise.
* wcsmbs/mbsrtowcs.c: Likewise.
* wcsmbs/wcrtomb.c: Likewise.
* wcsmbs/wcsnrtombs.c: Likewise.
* wcsmbs/wcsrtombs.c: Likewise.
* wcsmbs/wcstok.c: Likewise.
* sysdeps/generic/ftime.c: Likewise.
* sysdeps/generic/pty.c: Likewise.
* sysdeps/generic/setenv.c: Likewise.
* sysdeps/generic/speed.c: Likewise.
* sysdeps/generic/sysd-stdio.c: Likewise.
* sysdeps/generic/uname.c: Likewise.
* sysdeps/generic/vlimit.c: Likewise.
* sysdeps/libm-ieee754/k_standard.c: Likewise.
* sysdeps/libm-ieee754/s_ldexp.c: Likewise.
* sysdeps/libm-ieee754/s_ldexpf.c: Likewise.
* sysdeps/libm-ieee754/s_ldexpl.c: Likewise.
* sysdeps/libm-ieee754/w_scalb.c: Likewise.
* sysdeps/libm-ieee754/w_scalbf.c: Likewise.
* sysdeps/libm-ieee754/w_scalbl.c: Likewise.
* sysdeps/posix/dup2.c: Likewise.
* sysdeps/posix/euidaccess.c: Likewise.
* sysdeps/posix/fdopen.c: Likewise.
* sysdeps/posix/flock.c: Likewise.
* sysdeps/posix/fpathconf.c: Likewise.
* sysdeps/posix/getcwd.c: Likewise.
* sysdeps/posix/gettimeofday.c: Likewise.
* sysdeps/posix/isatty.c: Likewise.
* sysdeps/posix/isfdtype.c: Likewise.
* sysdeps/posix/killpg.c: Likewise.
* sysdeps/posix/mkstemp.c: Likewise.
* sysdeps/posix/mktemp.c: Likewise.
* sysdeps/posix/pathconf.c: Likewise.
* sysdeps/posix/pipestream.c: Likewise.
* sysdeps/posix/remove.c: Likewise.
* sysdeps/posix/rename.c: Likewise.
* sysdeps/posix/sigintr.c: Likewise.
* sysdeps/posix/signal.c: Likewise.
* sysdeps/posix/sigsuspend.c: Likewise.
* sysdeps/posix/sigvec.c: Likewise.
* sysdeps/posix/sleep.c: Likewise.
* sysdeps/posix/sysconf.c: Likewise.
* sysdeps/posix/system.c: Likewise.
* sysdeps/posix/tempname.c: Likewise.
* sysdeps/posix/truncate.c: Likewise.
* sysdeps/posix/ttyname.c: Likewise.
* sysdeps/posix/ttyname_r.c: Likewise.
* sysdeps/posix/wait3.c: Likewise.
* sysdeps/standalone/close.c: Likewise.
* sysdeps/standalone/open.c: Likewise.
* sysdeps/standalone/read.c: Likewise.
* sysdeps/standalone/write.c: Likewise.
* sysdeps/stub/__longjmp.c: Likewise.
* sysdeps/stub/accept.c: Likewise.
* sysdeps/stub/access.c: Likewise.
* sysdeps/stub/acct.c: Likewise.
* sysdeps/stub/adjtime.c: Likewise.
* sysdeps/stub/alarm.c: Likewise.
* sysdeps/stub/bind.c: Likewise.
* sysdeps/stub/brk.c: Likewise.
* sysdeps/stub/chdir.c: Likewise.
* sysdeps/stub/chflags.c: Likewise.
* sysdeps/stub/chmod.c: Likewise.
* sysdeps/stub/chown.c: Likewise.
* sysdeps/stub/chroot.c: Likewise.
* sysdeps/stub/clock.c: Likewise.
* sysdeps/stub/close.c: Likewise.
* sysdeps/stub/closedir.c: Likewise.
* sysdeps/stub/connect.c: Likewise.
* sysdeps/stub/ctermid.c: Likewise.
* sysdeps/stub/cuserid.c: Likewise.
* sysdeps/stub/dirfd.c: Likewise.
* sysdeps/stub/dup.c: Likewise.
* sysdeps/stub/dup2.c: Likewise.
* sysdeps/stub/euidaccess.c: Likewise.
* sysdeps/stub/execve.c: Likewise.
* sysdeps/stub/fchdir.c: Likewise.
* sysdeps/stub/fchflags.c: Likewise.
* sysdeps/stub/fchmod.c: Likewise.
* sysdeps/stub/fchown.c: Likewise.
* sysdeps/stub/fcntl.c: Likewise.
* sysdeps/stub/fdopen.c: Likewise.
* sysdeps/stub/fexecve.c: Likewise.
* sysdeps/stub/flock.c: Likewise.
* sysdeps/stub/fork.c: Likewise.
* sysdeps/stub/fpathconf.c: Likewise.
* sysdeps/stub/fstatfs.c: Likewise.
* sysdeps/stub/fsync.c: Likewise.
* sysdeps/stub/ftruncate.c: Likewise.
* sysdeps/stub/fxstat.c: Likewise.
* sysdeps/stub/getcwd.c: Likewise.
* sysdeps/stub/getdents.c: Likewise.
* sysdeps/stub/getdomain.c: Likewise.
* sysdeps/stub/getdtsz.c: Likewise.
* sysdeps/stub/getegid.c: Likewise.
* sysdeps/stub/getenv.c: Likewise.
* sysdeps/stub/geteuid.c: Likewise.
* sysdeps/stub/getgid.c: Likewise.
* sysdeps/stub/getgroups.c: Likewise.
* sysdeps/stub/gethostid.c: Likewise.
* sysdeps/stub/gethostname.c: Likewise.
* sysdeps/stub/getitimer.c: Likewise.
* sysdeps/stub/getlogin.c: Likewise.
* sysdeps/stub/getlogin_r.c: Likewise.
* sysdeps/stub/getpagesize.c: Likewise.
* sysdeps/stub/getpeername.c: Likewise.
* sysdeps/stub/getpid.c: Likewise.
* sysdeps/stub/getppid.c: Likewise.
* sysdeps/stub/getpriority.c: Likewise.
* sysdeps/stub/getrlimit.c: Likewise.
* sysdeps/stub/getrusage.c: Likewise.
* sysdeps/stub/getsid.c: Likewise.
* sysdeps/stub/getsockname.c: Likewise.
* sysdeps/stub/getsockopt.c: Likewise.
* sysdeps/stub/getsysstats.c: Likewise.
* sysdeps/stub/gettimeofday.c: Likewise.
* sysdeps/stub/getuid.c: Likewise.
* sysdeps/stub/gtty.c: Likewise.
* sysdeps/stub/ioctl.c: Likewise.
* sysdeps/stub/isatty.c: Likewise.
* sysdeps/stub/isfdtype.c: Likewise.
* sysdeps/stub/kill.c: Likewise.
* sysdeps/stub/killpg.c: Likewise.
* sysdeps/stub/link.c: Likewise.
* sysdeps/stub/listen.c: Likewise.
* sysdeps/stub/lseek.c: Likewise.
* sysdeps/stub/lxstat.c: Likewise.
* sysdeps/stub/madvice.c: Likewise.
* sysdeps/stub/mkdir.c: Likewise.
* sysdeps/stub/mkfifo.c: Likewise.
* sysdeps/stub/mkstemp.c: Likewise.
* sysdeps/stub/mktemp.c: Likewise.
* sysdeps/stub/mmap.c: Likewise.
* sysdeps/stub/morecore.c: Likewise.
* sysdeps/stub/mprotect.c: Likewise.
* sysdeps/stub/msgctl.c: Likewise.
* sysdeps/stub/msgget.c: Likewise.
* sysdeps/stub/msgrcv.c: Likewise.
* sysdeps/stub/msgsnd.c: Likewise.
* sysdeps/stub/msync.c: Likewise.
* sysdeps/stub/munmap.c: Likewise.
* sysdeps/stub/nanosleep.c: Likewise.
* sysdeps/stub/nice.c: Likewise.
* sysdeps/stub/nlist.c: Likewise.
* sysdeps/stub/open.c: Likewise.
* sysdeps/stub/opendir.c: Likewise.
* sysdeps/stub/pathconf.c: Likewise.
* sysdeps/stub/pause.c: Likewise.
* sysdeps/stub/pipe.c: Likewise.
* sysdeps/stub/pipestream.c: Likewise.
* sysdeps/stub/poll.c: Likewise.
* sysdeps/stub/profil.c: Likewise.
* sysdeps/stub/ptrace.c: Likewise.
* sysdeps/stub/putenv.c: Likewise.
* sysdeps/stub/raise.c: Likewise.
* sysdeps/stub/read.c: Likewise.
* sysdeps/stub/readdir.c: Likewise.
* sysdeps/stub/readlink.c: Likewise.
* sysdeps/stub/readv.c: Likewise.
* sysdeps/stub/reboot.c: Likewise.
* sysdeps/stub/recv.c: Likewise.
* sysdeps/stub/recvfrom.c: Likewise.
* sysdeps/stub/recvmsg.c: Likewise.
* sysdeps/stub/remove.c: Likewise.
* sysdeps/stub/rename.c: Likewise.
* sysdeps/stub/revoke.c: Likewise.
* sysdeps/stub/rewinddir.c: Likewise.
* sysdeps/stub/rmdir.c: Likewise.
* sysdeps/stub/sbrk.c: Likewise.
* sysdeps/stub/sched_getp.c: Likewise.
* sysdeps/stub/sched_gets.c: Likewise.
* sysdeps/stub/sched_primax.c: Likewise.
* sysdeps/stub/sched_primin.c: Likewise.
* sysdeps/stub/sched_rr_gi.c: Likewise.
* sysdeps/stub/sched_setp.c: Likewise.
* sysdeps/stub/sched_sets.c: Likewise.
* sysdeps/stub/sched_yield.c: Likewise.
* sysdeps/stub/seekdir.c: Likewise.
* sysdeps/stub/select.c: Likewise.
* sysdeps/stub/semctl.c: Likewise.
* sysdeps/stub/semget.c: Likewise.
* sysdeps/stub/semop.c: Likewise.
* sysdeps/stub/send.c: Likewise.
* sysdeps/stub/sendmsg.c: Likewise.
* sysdeps/stub/sendto.c: Likewise.
* sysdeps/stub/setdomain.c: Likewise.
* sysdeps/stub/setegid.c: Likewise.
* sysdeps/stub/setenv.c: Likewise.
* sysdeps/stub/seteuid.c: Likewise.
* sysdeps/stub/setgid.c: Likewise.
* sysdeps/stub/setgroups.c: Likewise.
* sysdeps/stub/sethostid.c: Likewise.
* sysdeps/stub/sethostname.c: Likewise.
* sysdeps/stub/setitimer.c: Likewise.
* sysdeps/stub/setjmp.c: Likewise.
* sysdeps/stub/setlogin.c: Likewise.
* sysdeps/stub/setpgid.c: Likewise.
* sysdeps/stub/setpriority.c: Likewise.
* sysdeps/stub/setregid.c: Likewise.
* sysdeps/stub/setreuid.c: Likewise.
* sysdeps/stub/setrlimit.c: Likewise.
* sysdeps/stub/setsid.c: Likewise.
* sysdeps/stub/setsockopt.c: Likewise.
* sysdeps/stub/settimeofday.c: Likewise.
* sysdeps/stub/setuid.c: Likewise.
* sysdeps/stub/shmat.c: Likewise.
* sysdeps/stub/shmctl.c: Likewise.
* sysdeps/stub/shmdt.c: Likewise.
* sysdeps/stub/shmget.c: Likewise.
* sysdeps/stub/shutdown.c: Likewise.
* sysdeps/stub/sigaction.c: Likewise.
* sysdeps/stub/sigaltstack.c: Likewise.
* sysdeps/stub/sigblock.c: Likewise.
* sysdeps/stub/sigintr.c: Likewise.
* sysdeps/stub/signal.c: Likewise.
* sysdeps/stub/sigpause.c: Likewise.
* sysdeps/stub/sigpending.c: Likewise.
* sysdeps/stub/sigprocmask.c: Likewise.
* sysdeps/stub/sigreturn.c: Likewise.
* sysdeps/stub/sigsetmask.c: Likewise.
* sysdeps/stub/sigstack.c: Likewise.
* sysdeps/stub/sigsuspend.c: Likewise.
* sysdeps/stub/sigvec.c: Likewise.
* sysdeps/stub/sleep.c: Likewise.
* sysdeps/stub/socket.c: Likewise.
* sysdeps/stub/socketpair.c: Likewise.
* sysdeps/stub/sstk.c: Likewise.
* sysdeps/stub/statfs.c: Likewise.
* sysdeps/stub/stime.c: Likewise.
* sysdeps/stub/stty.c: Likewise.
* sysdeps/stub/swapoff.c: Likewise.
* sysdeps/stub/swapon.c: Likewise.
* sysdeps/stub/symlink.c: Likewise.
* sysdeps/stub/sync.c: Likewise.
* sysdeps/stub/syscall.c: Likewise.
* sysdeps/stub/sysconf.c: Likewise.
* sysdeps/stub/sysd-stdio.c: Likewise.
* sysdeps/stub/system.c: Likewise.
* sysdeps/stub/tcdrain.c: Likewise.
* sysdeps/stub/tcflow.c: Likewise.
* sysdeps/stub/tcflush.c: Likewise.
* sysdeps/stub/tcgetattr.c: Likewise.
* sysdeps/stub/tcgetpgrp.c: Likewise.
* sysdeps/stub/tcsendbrk.c: Likewise.
* sysdeps/stub/tcsetattr.c: Likewise.
* sysdeps/stub/tcsetpgrp.c: Likewise.
* sysdeps/stub/telldir.c: Likewise.
* sysdeps/stub/tempname.c: Likewise.
* sysdeps/stub/time.c: Likewise.
* sysdeps/stub/times.c: Likewise.
* sysdeps/stub/truncate.c: Likewise.
* sysdeps/stub/ttyname.c: Likewise.
* sysdeps/stub/ttyname_r.c: Likewise.
* sysdeps/stub/ualarm.c: Likewise.
* sysdeps/stub/ulimit.c: Likewise.
* sysdeps/stub/umask.c: Likewise.
* sysdeps/stub/unlink.c: Likewise.
* sysdeps/stub/usleep.c: Likewise.
* sysdeps/stub/ustat.c: Likewise.
* sysdeps/stub/utime.c: Likewise.
* sysdeps/stub/utimes.c: Likewise.
* sysdeps/stub/vhangup.c: Likewise.
* sysdeps/stub/wait.c: Likewise.
* sysdeps/stub/wait3.c: Likewise.
* sysdeps/stub/wait4.c: Likewise.
* sysdeps/stub/waitpid.c: Likewise.
* sysdeps/stub/write.c: Likewise.
* sysdeps/stub/writev.c: Likewise.
* sysdeps/stub/xmknod.c: Likewise.
* sysdeps/stub/xstat.c: Likewise.
* sysdeps/unix/closedir.c: Likewise.
* sysdeps/unix/fxstat.c: Likewise.
* sysdeps/unix/getlogin.c: Likewise.
* sysdeps/unix/getlogin_r.c: Likewise.
* sysdeps/unix/mkdir.c: Likewise.
* sysdeps/unix/nice.c: Likewise.
* sysdeps/unix/nlist.c: Likewise.
* sysdeps/unix/opendir.c: Likewise.
* sysdeps/unix/readdir.c: Likewise.
* sysdeps/unix/rmdir.c: Likewise.
* sysdeps/unix/stime.c: Likewise.
* sysdeps/unix/xmknod.c: Likewise.
* sysdeps/unix/xstat.c: Likewise.
* sysdeps/unix/bsd/isatty.c: Likewise.
* sysdeps/unix/bsd/setegid.c: Likewise.
* sysdeps/unix/bsd/seteuid.c: Likewise.
* sysdeps/unix/bsd/setsid.c: Likewise.
* sysdeps/unix/bsd/sigaction.c: Likewise.
* sysdeps/unix/bsd/sigprocmask.c: Likewise.
* sysdeps/unix/bsd/sigsuspend.c: Likewise.
* sysdeps/unix/bsd/tcflow.c: Likewise.
* sysdeps/unix/bsd/tcflush.c: Likewise.
* sysdeps/unix/bsd/tcgetattr.c: Likewise.
* sysdeps/unix/bsd/tcsetattr.c: Likewise.
* sysdeps/unix/bsd/times.c: Likewise.
* sysdeps/unix/bsd/ulimit.c: Likewise.
* sysdeps/unix/common/lxstat.c: Likewise.
* sysdeps/unix/common/tcsendbrk.c: Likewise.
* sysdeps/unix/sysv/setrlimit.c: Likewise.
* sysdeps/unix/sysv/settimeofday.c: Likewise.
* sysdeps/unix/sysv/sigaction.c: Likewise.
* sysdeps/unix/sysv/tcflow.c: Likewise.
* sysdeps/unix/sysv/tcflush.c: Likewise.
* sysdeps/unix/sysv/tcgetattr.c: Likewise.
* sysdeps/unix/sysv/tcsendbrk.c: Likewise.
* sysdeps/unix/sysv/tcsetattr.c: Likewise.
* sysdeps/unix/bsd/ultrix4/sysconf.c: Likewise.
* sysdeps/unix/sysv/irix4/getpriority.c: Likewise.
* sysdeps/unix/sysv/irix4/setpriority.c: Likewise.
* sysdeps/unix/sysv/linux/adjtime.c: Likewise.
* sysdeps/unix/sysv/linux/gethostid.c: Likewise.
* sysdeps/unix/sysv/linux/gethostname.c: Likewise.
* sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
* sysdeps/unix/sysv/linux/ptrace.c: Likewise.
* sysdeps/unix/sysv/linux/speed.c: Likewise.
* sysdeps/unix/sysv/linux/ulimit.c: Likewise.
* sysdeps/unix/sysv/sysv4/sigaction.c: Likewise.
* sysdeps/unix/sysv/sysv4/sysconf.c: Likewise.
* sysdeps/unix/bsd/sun/m68k/sigtramp.c: Likewise.
* sysdeps/unix/bsd/sun/sparc/sigtramp.c: Likewise.
* sysdeps/unix/bsd/sun/sunos4/speed.c: Likewise.
* sysdeps/unix/bsd/sun/sunos4/tcsetattr.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/ioperm.c: Likewise.
* sysdeps/unix/sysv/linux/i386/brk.c: Likewise.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/m68k/brk.c: Likewise.
* sunrpc/clnt_tcp.c: Protect declaration of errno by #ifndef.
* sunrpc/clnt_udp.c: Likewise.
* sunrpc/bindrsvprt.c: Likewise.
* sunrpc/pm_getmaps.c: Likewise.
* sunrpc/pmap_rmt.c: Likewise.
* sunrpc/svc.c: Likewise.
* sunrpc/svc_run.c: Likewise.
* sunrpc/svc_tcp.c: Likewise.
* sunrpc/svc_udp.c: Likewise.
* sysdeps/generic/strtok.c: Don't check argument, just crash.
* sysdeps/generic/strtok_r.c: Likewise.
* sysdeps/stub/start.c: Make __errno a strong alias of errno.
* sysdeps/unix/start.c: Likewise. De-ANSI-fy.
* sysdeps/unix/sparc/start.c: Likewise.
* sysdeps/standalone/m68k/m68020/start.S: Likewise.
* sysdeps/unix/sysv/irix4/start.c: Likewise.
* sysdeps/unix/bsd/ultrix4/mips/start.S: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.S: Likewise.
* sysdeps/unix/sysv/linux/m68k/sysdep.S: Likewise.
Mon Sep 23 17:54:57 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/gencat.c (main): Put package name in --version message
in parantheses. Reported by Jim Meyering.
* db/makedb.c: Likewise.
* locale/programs/locale.c: Likewise.
* locale/programs/localedef.c: Likewise.
* sysdeps/i386/fpu/__math.h (tan): Make sure gcc knows we use
two registers. Patch by John Bowman.
Sat Sep 21 15:08:25 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/mach/libc-lock.h: Fix comment.
* sysdeps/stubs/libc-lock.h: Likewise.
Sat Sep 21 13:50:40 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/genops.c (_IO_init) [_IO_MTSAFE_IO]: Dereference pointer
to lock when passing it to __libc_lock_init macro.
(_IO_default_finish) [_IO_MTSAFE_IO]: Dereference pointer to lock
when passing it to __libc_lock_fini macro.
Sat Sep 21 14:35:40 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/m68k/sysdep.h (SYSCALL_ERROR_HANDLER)
[_LIBC_REENTRANT]: Add missing semicolon.
* sysdeps/unix/sysv/linux/m68k/sysdep.S: Move inclusion of
sysdep.h to the top outside of #ifndef PIC. Don't include errnos.h.
Use the ENTRY macro.
Sat Sep 21 14:33:41 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* libio/Makefile: Make `all' the default target.
* po/Makefile: Likewise.
Mon Sep 23 15:49:47 1996 Ulrich Drepper <drepper@cygnus.com>
* stdlib/test-canon.c: Correct patch from Thu Sep 12 23:01:16 1996.
I applied it incorrectly.
* sysdeps/m68k/fpu/s_scalbn.c: Likewise.
* sysdeps/m68k/fpu/s_scalbnf.c: Likewise.
* sysdeps/m68k/fpu/s_scalbnl.c: Likewise.
Mon Sep 23 03:00:10 1996 Ulrich Drepper <drepper@cygnus.com>
* shadow/sgetspent_r.c (LINE_PARSER): Accept empty 9th field.
Patch by NIIBE Yutaka <gniibe@mri.co.jp>.
* shadow/sgetspent_r.c (LINE_PARSER): Don't accept any chars after
9th field.
* sysdeps/unix/sysv/linux/Makefile [$(subdir)==misc]
(sysdep_headers): Add sys/debugreg.h, sys/kd.h, sys/soundcard.h,
and sys/vt.h.
* sysdeps/unix/sysv/linux/sys/debugreg.h: New file.
* sysdeps/unix/sysv/linux/sys/kd.h: New file.
* sysdeps/unix/sysv/linux/sys/soundcard.h: New file.
* sysdeps/unix/sysv/linux/sys/vt.h: New file.
Reported by NIIBE Yutaka <gniibe@mri.co.jp>.
1996-09-27 11:45:24 +08:00
|
|
|
stdout);
|
1996-09-13 11:21:39 +08:00
|
|
|
}
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
|
|
|
|
exit (status);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* The address of this function will be assigned to the hook in the
|
|
|
|
error functions. */
|
|
|
|
static void
|
|
|
|
error_print ()
|
|
|
|
{
|
|
|
|
/* We don't want the program name to be printed in messages. Emacs'
|
|
|
|
compile.el does not like this. */
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static struct catalog *
|
|
|
|
read_input_file (struct catalog *current, const char *fname)
|
|
|
|
{
|
|
|
|
FILE *fp;
|
|
|
|
char *buf;
|
|
|
|
size_t len;
|
|
|
|
size_t line_number;
|
|
|
|
|
|
|
|
if (strcmp (fname, "-") == 0 || strcmp (fname, "/dev/stdin") == 0)
|
|
|
|
{
|
|
|
|
fp = stdin;
|
|
|
|
fname = gettext ("*standard input*");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
fp = fopen (fname, "r");
|
|
|
|
if (fp == NULL)
|
|
|
|
{
|
|
|
|
error (0, errno, gettext ("cannot open input file `%s'"), fname);
|
|
|
|
return current;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* If we haven't seen anything yet, allocate result structure. */
|
|
|
|
if (current == NULL)
|
|
|
|
{
|
|
|
|
current = (struct catalog *) xmalloc (sizeof (*current));
|
|
|
|
|
|
|
|
current->all_sets = NULL;
|
|
|
|
current->total_messages = 0;
|
|
|
|
current->last_set = 0;
|
|
|
|
current->current_set = find_set (current, NL_SETD);
|
|
|
|
|
1997-01-07 06:07:28 +08:00
|
|
|
#define obstack_chunk_alloc malloc
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
#define obstack_chunk_free free
|
|
|
|
obstack_init (¤t->mem_pool);
|
|
|
|
}
|
|
|
|
|
|
|
|
buf = NULL;
|
|
|
|
len = 0;
|
|
|
|
line_number = 0;
|
|
|
|
while (!feof (fp))
|
|
|
|
{
|
|
|
|
int continued;
|
|
|
|
int used;
|
|
|
|
size_t start_line = line_number + 1;
|
|
|
|
char *this_line;
|
|
|
|
|
|
|
|
do
|
|
|
|
{
|
|
|
|
int act_len;
|
|
|
|
|
|
|
|
act_len = getline (&buf, &len, fp);
|
|
|
|
if (act_len <= 0)
|
|
|
|
break;
|
|
|
|
++line_number;
|
|
|
|
|
|
|
|
/* It the line continued? */
|
|
|
|
if (buf[act_len - 1] == '\n')
|
|
|
|
{
|
|
|
|
--act_len;
|
|
|
|
continued = buf[act_len - 1] == '\\';
|
|
|
|
if (continued)
|
|
|
|
--act_len;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
continued = 0;
|
|
|
|
|
|
|
|
/* Append to currently selected line. */
|
|
|
|
obstack_grow (¤t->mem_pool, buf, act_len);
|
|
|
|
}
|
|
|
|
while (continued);
|
|
|
|
|
|
|
|
obstack_1grow (¤t->mem_pool, '\0');
|
|
|
|
this_line = (char *) obstack_finish (¤t->mem_pool);
|
|
|
|
|
|
|
|
used = 0;
|
|
|
|
if (this_line[0] == '$')
|
|
|
|
{
|
|
|
|
if (isspace (this_line[1]))
|
|
|
|
/* This is a comment line. Do nothing. */;
|
|
|
|
else if (strncmp (&this_line[1], "set", 3) == 0)
|
|
|
|
{
|
|
|
|
int cnt = sizeof ("cnt");
|
Fri Jun 28 02:41:08 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* nss/Makefile (databases): New variable.
(routines, libnss_files-routines): Use it.
(subdir-dirs): Compute from $(services).
* sysdeps/unix/sysv/linux/syscalls.list (create_module, delete_module,
init_module, klogctl): Use EXTRA in the "caller" column so these get
added to unix-extra-syscalls and thus compiled in misc.
* string/Makefile (routines): Add strndup.
* string/strndup.c: New file.
* string/string.h: Declare strndup.
(strndupa): New macro.
* string/string.h: Declare __strdup.
* string/strdup.c: Deansideclized. Define __ name and weak alias.
* string/string.h: Don't define memccpy as macro for [__OPTIMIZE__].
Thu Jun 27 23:43:22 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/dl-machine.h (elf_machine_rela): The Alpha's
address-of operation and plt format conspire to require all
dynamic relocs to be resolved to actual symbols not plt entries.
Thu Jun 27 02:49:28 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/gencat.c: Add casts to avoid signed<->unsigned warnings.
* grp/initgroups.c (initgroups): De-ansi-fy.
Move declaration of NGROUPS and GROUPS outside #if so that
the code compiles for NGROUPS_MAX != 0.
* inet/Makefile (headers): Add netinet/ether.h and netinet/if_ether.h.
(routines): Add ether_aton, ether_aton_r, ether_hton, ether_line,
ether_ntoa, ether_ntoa_r, and ether_ntoh.
* inet/ether_aton.c, inet/ether_aton_r.c, inet/ether_hton.c,
inet/ether_line.c, inet/ether_ntoa.c, inet/ether_ntoa_r.c,
inet/ether_ntoh.c: New files. Implementation of functions to
handle Ethernet address to host mapping.
* inet/netinet/ether.h: New file. Declare ether_* functions.
* netinet/ether.h: Wrapper around inet/netinet/ether.h for glibc
compilation.
* nss/ethers-lookup.c: New file. Lookup function for ethers database.
* nss/Makefile (routines): Add ethers-lookup.
(libnss_files-routines): Add files-ethers.
* nss/getXXent_r.c: Don't define set*ent and end*ent function
with _r suffix.
* nss/nss_files/files-XXX.c (internal_endent): Don't reset
KEEP_STREAM every time called.
(_nss_files_end): Reset KEEP_STREAM here instead.
(internal_getent): If STREAM == NULL try to open instead of
signalling error.
Use cast to prevent warning.
Terminate read line in case the buffer is too small.
* nss/nss_files/files-ethers.c: New file. Implementation of
Ethernet adress<->hostname lookup through files interface.
* stdlib/mbstowcs.c: Define based on mbsrtowcs().
* stdlib/mbtowc.c: Define based on mbrtowc().
* stdlib/wcstombs.c: Define based on wcsrtombs().
* stdlib/wctomb.c: Define based on wcrtomb().
* sunrpc/xdr.c (xdr_u_int): Avoid bogus call to
unexpected_sizes_in_xdr_u_int.
* sysdeps/generic/netinet/if_ether.h: New file. Generic declaration
of `struct ether_addr'.
* sysdeps/unix/sysv/linux/netinet/if_ether.h: New file. Linux specific
declaration of `struct ether_addr'.
* wcsmbs/mbrtowc.c: Handle case where argument PS is NULL.
* wcsmbs/mbsrtowcs.c: Ditto.
* wcsmbs/wcrtomb.c: Ditto.
* wcsmbs/wcsrtombs.c: Ditto.
* wcsmbs/mbsinit.c: Prepare for PS being NULL.
1996-06-28 16:56:59 +08:00
|
|
|
int set_number;
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
const char *symbol = NULL;
|
|
|
|
while (isspace (this_line[cnt]))
|
|
|
|
++cnt;
|
|
|
|
|
|
|
|
if (isdigit (this_line[cnt]))
|
|
|
|
{
|
|
|
|
set_number = atol (&this_line[cnt]);
|
|
|
|
|
|
|
|
/* If the given number for the character set is
|
|
|
|
higher than any we used for symbolic set names
|
|
|
|
avoid clashing by using only higher numbers for
|
|
|
|
the following symbolic definitions. */
|
|
|
|
if (set_number > current->last_set)
|
|
|
|
current->last_set = set_number;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
/* See whether it is a reasonable identifier. */
|
|
|
|
int start = cnt;
|
|
|
|
while (isalnum (this_line[cnt]) || this_line[cnt] == '_')
|
|
|
|
++cnt;
|
|
|
|
|
|
|
|
if (cnt == start)
|
|
|
|
{
|
|
|
|
/* No correct character found. */
|
|
|
|
error_at_line (0, 0, fname, start_line,
|
|
|
|
gettext ("illegal set number"));
|
|
|
|
set_number = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
1996-12-20 09:39:50 +08:00
|
|
|
/* We have found seomthing that looks like a
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
correct identifier. */
|
|
|
|
struct set_list *runp;
|
|
|
|
|
|
|
|
this_line[cnt] = '\0';
|
|
|
|
used = 1;
|
|
|
|
symbol = &this_line[start];
|
|
|
|
|
|
|
|
/* Test whether the identifier was already used. */
|
|
|
|
runp = current->all_sets;
|
|
|
|
while (runp != 0)
|
|
|
|
if (runp->symbol != NULL
|
|
|
|
&& strcmp (runp->symbol, symbol) == 0)
|
|
|
|
break;
|
|
|
|
else
|
|
|
|
runp = runp->next;
|
|
|
|
|
|
|
|
if (runp != NULL)
|
|
|
|
{
|
|
|
|
/* We cannot allow duplicate identifiers for
|
|
|
|
message sets. */
|
|
|
|
error_at_line (0, 0, fname, start_line,
|
|
|
|
gettext ("duplicate set definition"));
|
|
|
|
error_at_line (0, 0, runp->fname, runp->line,
|
|
|
|
gettext ("\
|
|
|
|
this is the first definition"));
|
|
|
|
set_number = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
/* Allocate next free message set for identifier. */
|
|
|
|
set_number = ++current->last_set;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (set_number != 0)
|
|
|
|
{
|
|
|
|
/* We found a legal set number. */
|
|
|
|
current->current_set = find_set (current, set_number);
|
|
|
|
if (symbol != NULL)
|
|
|
|
used = 1;
|
|
|
|
current->current_set->symbol = symbol;
|
|
|
|
current->current_set->fname = fname;
|
|
|
|
current->current_set->line = start_line;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (strncmp (&this_line[1], "delset", 6) == 0)
|
|
|
|
{
|
|
|
|
int cnt = sizeof ("delset");
|
|
|
|
size_t set_number;
|
|
|
|
while (isspace (this_line[cnt]))
|
|
|
|
++cnt;
|
|
|
|
|
|
|
|
if (isdigit (this_line[cnt]))
|
|
|
|
{
|
|
|
|
size_t set_number = atol (&this_line[cnt]);
|
|
|
|
struct set_list *set;
|
|
|
|
|
|
|
|
/* Mark the message set with the given number as
|
|
|
|
deleted. */
|
|
|
|
set = find_set (current, set_number);
|
|
|
|
set->deleted = 1;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
/* See whether it is a reasonable identifier. */
|
|
|
|
int start = cnt;
|
|
|
|
while (isalnum (this_line[cnt]) || this_line[cnt] == '_')
|
|
|
|
++cnt;
|
|
|
|
|
|
|
|
if (cnt == start)
|
|
|
|
{
|
|
|
|
error_at_line (0, 0, fname, start_line,
|
|
|
|
gettext ("illegal set number"));
|
|
|
|
set_number = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
const char *symbol;
|
|
|
|
struct set_list *runp;
|
|
|
|
|
|
|
|
this_line[cnt] = '\0';
|
|
|
|
used = 1;
|
|
|
|
symbol = &this_line[start];
|
|
|
|
|
|
|
|
/* We have a symbolic set name. This name must
|
|
|
|
appear somewhere else in the catalogs read so
|
|
|
|
far. */
|
|
|
|
set_number = 0;
|
|
|
|
for (runp = current->all_sets; runp != NULL;
|
|
|
|
runp = runp->next)
|
|
|
|
{
|
|
|
|
if (strcmp (runp->symbol, symbol) == 0)
|
|
|
|
{
|
|
|
|
runp->deleted = 1;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (runp == NULL)
|
|
|
|
/* Name does not exist before. */
|
|
|
|
error_at_line (0, 0, fname, start_line,
|
|
|
|
gettext ("unknown set `%s'"), symbol);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (strncmp (&this_line[1], "quote", 5) == 0)
|
|
|
|
{
|
|
|
|
int cnt = sizeof ("quote");
|
|
|
|
while (isspace (this_line[cnt]))
|
|
|
|
++cnt;
|
|
|
|
/* Yes, the quote char can be '\0'; this means no quote
|
|
|
|
char. */
|
|
|
|
current->quote_char = this_line[cnt];
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
int cnt;
|
|
|
|
cnt = 2;
|
|
|
|
while (this_line[cnt] != '\0' && !isspace (this_line[cnt]))
|
|
|
|
++cnt;
|
|
|
|
this_line[cnt] = '\0';
|
|
|
|
error_at_line (0, 0, fname, start_line,
|
|
|
|
gettext ("unknown directive `%s': line ignored"),
|
|
|
|
&this_line[1]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (isalnum (this_line[0]) || this_line[0] == '_')
|
|
|
|
{
|
|
|
|
const char *ident = this_line;
|
|
|
|
int message_number;
|
|
|
|
|
|
|
|
do
|
|
|
|
++this_line;
|
|
|
|
while (this_line[0] != '\0' && !isspace (this_line[0]));;
|
|
|
|
this_line[0] = '\0'; /* Terminate the identifier. */
|
|
|
|
|
|
|
|
do
|
|
|
|
++this_line;
|
|
|
|
while (isspace (this_line[0]));
|
|
|
|
/* Now we found the beginning of the message itself. */
|
|
|
|
|
|
|
|
if (isdigit (ident[0]))
|
|
|
|
{
|
|
|
|
struct message_list *runp;
|
|
|
|
|
|
|
|
message_number = atoi (ident);
|
|
|
|
|
|
|
|
/* Find location to insert the new message. */
|
|
|
|
runp = current->current_set->messages;
|
|
|
|
while (runp != NULL)
|
|
|
|
if (runp->number == message_number)
|
|
|
|
break;
|
|
|
|
else
|
|
|
|
runp = runp->next;
|
|
|
|
if (runp != NULL)
|
|
|
|
{
|
|
|
|
/* Oh, oh. There is already a message with this
|
|
|
|
number is the message set. */
|
|
|
|
error_at_line (0, 0, fname, start_line,
|
|
|
|
gettext ("duplicated message number"));
|
|
|
|
error_at_line (0, 0, runp->fname, runp->line,
|
|
|
|
gettext ("this is the first definition"));
|
|
|
|
message_number = 0;
|
|
|
|
}
|
|
|
|
ident = NULL; /* We don't have a symbol. */
|
|
|
|
|
|
|
|
if (message_number != 0
|
|
|
|
&& message_number > current->current_set->last_message)
|
|
|
|
current->current_set->last_message = message_number;
|
|
|
|
}
|
|
|
|
else if (ident[0] != '\0')
|
|
|
|
{
|
|
|
|
struct message_list *runp;
|
|
|
|
runp = current->current_set->messages;
|
|
|
|
|
|
|
|
/* Test whether the symbolic name was not used for
|
|
|
|
another message in this message set. */
|
|
|
|
while (runp != NULL)
|
|
|
|
if (runp->symbol != NULL && strcmp (ident, runp->symbol) == 0)
|
|
|
|
break;
|
|
|
|
else
|
|
|
|
runp = runp->next;
|
|
|
|
if (runp != NULL)
|
|
|
|
{
|
|
|
|
/* The name is already used. */
|
|
|
|
error_at_line (0, 0, fname, start_line,
|
|
|
|
gettext ("duplicated message identifier"));
|
|
|
|
error_at_line (0, 0, runp->fname, runp->line,
|
|
|
|
gettext ("this is the first definition"));
|
|
|
|
message_number = 0;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
/* Give the message the next unused number. */
|
|
|
|
message_number = ++current->current_set->last_message;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
message_number = 0;
|
|
|
|
|
|
|
|
if (message_number != 0)
|
|
|
|
{
|
|
|
|
struct message_list *newp;
|
|
|
|
|
|
|
|
used = 1; /* Yes, we use the line. */
|
|
|
|
|
|
|
|
/* Strip quote characters, change escape sequences into
|
|
|
|
correct characters etc. */
|
|
|
|
normalize_line (fname, start_line, this_line,
|
|
|
|
current->quote_char);
|
|
|
|
|
|
|
|
newp = (struct message_list *) xmalloc (sizeof (*newp));
|
|
|
|
newp->number = message_number;
|
|
|
|
newp->message = this_line;
|
|
|
|
/* Remember symbolic name; is NULL if no is given. */
|
|
|
|
newp->symbol = ident;
|
|
|
|
/* Remember where we found the character. */
|
|
|
|
newp->fname = fname;
|
|
|
|
newp->line = start_line;
|
|
|
|
|
|
|
|
/* Find place to insert to message. We keep them in a
|
|
|
|
sorted single linked list. */
|
|
|
|
if (current->current_set->messages == NULL
|
|
|
|
|| current->current_set->messages->number > message_number)
|
|
|
|
{
|
|
|
|
newp->next = current->current_set->messages;
|
|
|
|
current->current_set->messages = newp;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
struct message_list *runp;
|
|
|
|
runp = current->current_set->messages;
|
|
|
|
while (runp->next != NULL)
|
|
|
|
if (runp->next->number > message_number)
|
|
|
|
break;
|
|
|
|
else
|
|
|
|
runp = runp->next;
|
|
|
|
newp->next = runp->next;
|
|
|
|
runp->next = newp;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
++current->total_messages;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
size_t cnt;
|
|
|
|
|
|
|
|
cnt = 0;
|
|
|
|
/* See whether we have any non-white space character in this
|
|
|
|
line. */
|
|
|
|
while (this_line[cnt] != '\0' && isspace (this_line[cnt]))
|
|
|
|
++cnt;
|
|
|
|
|
|
|
|
if (this_line[cnt] != '\0')
|
|
|
|
/* Yes, some unknown characters found. */
|
|
|
|
error_at_line (0, 0, fname, start_line,
|
|
|
|
gettext ("malformed line ignored"));
|
|
|
|
}
|
|
|
|
|
|
|
|
/* We can save the memory for the line if it was not used. */
|
|
|
|
if (!used)
|
|
|
|
obstack_free (¤t->mem_pool, this_line);
|
|
|
|
}
|
|
|
|
|
|
|
|
if (fp != stdin)
|
|
|
|
fclose (fp);
|
|
|
|
return current;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
write_out (struct catalog *catalog, const char *output_name,
|
|
|
|
const char *header_name)
|
|
|
|
{
|
|
|
|
/* Computing the "optimal" size. */
|
|
|
|
struct set_list *set_run;
|
|
|
|
size_t best_total, best_size, best_depth;
|
|
|
|
size_t act_size, act_depth;
|
|
|
|
struct catalog_obj obj;
|
|
|
|
struct obstack string_pool;
|
|
|
|
const char *strings;
|
|
|
|
size_t strings_size;
|
|
|
|
u_int32_t *array1, *array2;
|
|
|
|
size_t cnt;
|
|
|
|
int fd;
|
|
|
|
|
|
|
|
/* If not otherwise told try to read file with existing
|
|
|
|
translations. */
|
|
|
|
if (!force_new)
|
|
|
|
read_old (catalog, output_name);
|
|
|
|
|
|
|
|
/* Initialize best_size with a very high value. */
|
|
|
|
best_total = best_size = best_depth = UINT_MAX;
|
|
|
|
|
|
|
|
/* We need some start size for testing. Let's start with
|
|
|
|
TOTAL_MESSAGES / 5, which theoretically provides a mean depth of
|
|
|
|
5. */
|
|
|
|
act_size = 1 + catalog->total_messages / 5;
|
|
|
|
|
|
|
|
/* We determine the size of a hash table here. Because the message
|
|
|
|
numbers can be chosen arbitrary by the programmer we cannot use
|
|
|
|
the simple method of accessing the array using the message
|
|
|
|
number. The algorithm is based on the trivial hash function
|
|
|
|
NUMBER % TABLE_SIZE, where collisions are stored in a second
|
|
|
|
dimension up to TABLE_DEPTH. We here compute TABLE_SIZE so that
|
|
|
|
the needed space (= TABLE_SIZE * TABLE_DEPTH) is minimal. */
|
|
|
|
while (act_size <= best_total)
|
|
|
|
{
|
|
|
|
size_t deep[act_size];
|
|
|
|
|
|
|
|
act_depth = 1;
|
|
|
|
memset (deep, '\0', act_size * sizeof (size_t));
|
|
|
|
set_run = catalog->all_sets;
|
|
|
|
while (set_run != NULL)
|
|
|
|
{
|
|
|
|
struct message_list *message_run;
|
|
|
|
|
|
|
|
message_run = set_run->messages;
|
|
|
|
while (message_run != NULL)
|
|
|
|
{
|
|
|
|
size_t idx = (message_run->number * set_run->number) % act_size;
|
|
|
|
|
|
|
|
++deep[idx];
|
|
|
|
if (deep[idx] > act_depth)
|
|
|
|
{
|
|
|
|
act_depth = deep[idx];
|
|
|
|
if (act_depth * act_size > best_total)
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
message_run = message_run->next;
|
|
|
|
}
|
|
|
|
set_run = set_run->next;
|
|
|
|
}
|
|
|
|
|
1996-07-12 08:20:03 +08:00
|
|
|
if (act_depth * act_size <= best_total)
|
|
|
|
{
|
|
|
|
/* We have found a better solution. */
|
|
|
|
best_total = act_depth * act_size;
|
|
|
|
best_size = act_size;
|
|
|
|
best_depth = act_depth;
|
|
|
|
}
|
|
|
|
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
++act_size;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* let's be prepared for an empty message file. */
|
|
|
|
if (best_size == UINT_MAX)
|
|
|
|
{
|
|
|
|
best_size = 1;
|
|
|
|
best_depth = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* OK, now we have the size we will use. Fill in the header, build
|
|
|
|
the table and the second one with swapped byte order. */
|
|
|
|
obj.magic = CATGETS_MAGIC;
|
|
|
|
obj.plane_size = best_size;
|
|
|
|
obj.plane_depth = best_depth;
|
|
|
|
|
|
|
|
/* Allocate room for all needed arrays. */
|
|
|
|
array1 =
|
|
|
|
(u_int32_t *) alloca (best_size * best_depth * sizeof (u_int32_t) * 3);
|
|
|
|
memset (array1, '\0', best_size * best_depth * sizeof (u_int32_t) * 3);
|
|
|
|
array2
|
|
|
|
= (u_int32_t *) alloca (best_size * best_depth * sizeof (u_int32_t) * 3);
|
|
|
|
obstack_init (&string_pool);
|
|
|
|
|
|
|
|
set_run = catalog->all_sets;
|
|
|
|
while (set_run != NULL)
|
|
|
|
{
|
|
|
|
struct message_list *message_run;
|
|
|
|
|
|
|
|
message_run = set_run->messages;
|
|
|
|
while (message_run != NULL)
|
|
|
|
{
|
|
|
|
size_t idx = (((message_run->number * set_run->number) % best_size)
|
|
|
|
* 3);
|
|
|
|
/* Determine collision depth. */
|
|
|
|
while (array1[idx] != 0)
|
|
|
|
idx += best_size * 3;
|
|
|
|
|
|
|
|
/* Store set number, message number and pointer into string
|
|
|
|
space, relative to the first string. */
|
|
|
|
array1[idx + 0] = set_run->number;
|
|
|
|
array1[idx + 1] = message_run->number;
|
|
|
|
array1[idx + 2] = obstack_object_size (&string_pool);
|
|
|
|
|
|
|
|
/* Add current string to the continuous space containing all
|
|
|
|
strings. */
|
|
|
|
obstack_grow0 (&string_pool, message_run->message,
|
|
|
|
strlen (message_run->message));
|
|
|
|
|
|
|
|
message_run = message_run->next;
|
|
|
|
}
|
|
|
|
|
|
|
|
set_run = set_run->next;
|
|
|
|
}
|
|
|
|
strings_size = obstack_object_size (&string_pool);
|
|
|
|
strings = obstack_finish (&string_pool);
|
|
|
|
|
|
|
|
/* Compute ARRAY2 by changing the byte order. */
|
|
|
|
for (cnt = 0; cnt < best_size * best_depth * 3; ++cnt)
|
|
|
|
array2[cnt] = SWAPU32 (array1[cnt]);
|
|
|
|
|
|
|
|
/* Now we can write out the whole data. */
|
|
|
|
if (strcmp (output_name, "-") == 0
|
|
|
|
|| strcmp (output_name, "/dev/stdout") == 0)
|
|
|
|
fd = STDOUT_FILENO;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
fd = creat (output_name, 0666);
|
|
|
|
if (fd < 0)
|
|
|
|
error (EXIT_FAILURE, errno, gettext ("cannot open output file `%s'"),
|
|
|
|
output_name);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Write out header. */
|
|
|
|
write (fd, &obj, sizeof (obj));
|
|
|
|
|
|
|
|
/* We always write out the little endian version of the index
|
|
|
|
arrays. */
|
|
|
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
|
|
|
write (fd, array1, best_size * best_depth * sizeof (u_int32_t) * 3);
|
|
|
|
write (fd, array2, best_size * best_depth * sizeof (u_int32_t) * 3);
|
|
|
|
#elif __BYTE_ORDER == __BIG_ENDIAN
|
|
|
|
write (fd, array2, best_size * best_depth * sizeof (u_int32_t) * 3);
|
|
|
|
write (fd, array1, best_size * best_depth * sizeof (u_int32_t) * 3);
|
|
|
|
#else
|
|
|
|
# error Cannot handle __BYTE_ORDER byte order
|
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Finally write the strings. */
|
|
|
|
write (fd, strings, strings_size);
|
|
|
|
|
|
|
|
if (fd != STDOUT_FILENO)
|
|
|
|
close (fd);
|
|
|
|
|
|
|
|
/* If requested now write out the header file. */
|
|
|
|
if (header_name != NULL)
|
|
|
|
{
|
|
|
|
int first = 1;
|
|
|
|
FILE *fp;
|
|
|
|
|
|
|
|
/* Open output file. "-" or "/dev/stdout" means write to
|
|
|
|
standard output. */
|
|
|
|
if (strcmp (header_name, "-") == 0
|
|
|
|
|| strcmp (header_name, "/dev/stdout") == 0)
|
|
|
|
fp = stdout;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
fp = fopen (header_name, "w");
|
|
|
|
if (fp == NULL)
|
|
|
|
error (EXIT_FAILURE, errno,
|
|
|
|
gettext ("cannot open output file `%s'"), header_name);
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Iterate over all sets and all messages. */
|
|
|
|
set_run = catalog->all_sets;
|
|
|
|
while (set_run != NULL)
|
|
|
|
{
|
|
|
|
struct message_list *message_run;
|
|
|
|
|
|
|
|
/* If the current message set has a symbolic name write this
|
|
|
|
out first. */
|
|
|
|
if (set_run->symbol != NULL)
|
1996-06-25 21:56:54 +08:00
|
|
|
fprintf (fp, "%s#define %sSet %#x\t/* %s:%Zu */\n",
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
first ? "" : "\n", set_run->symbol, set_run->number - 1,
|
|
|
|
set_run->fname, set_run->line);
|
|
|
|
first = 0;
|
|
|
|
|
|
|
|
message_run = set_run->messages;
|
|
|
|
while (message_run != NULL)
|
|
|
|
{
|
|
|
|
/* If the current message has a symbolic name write
|
|
|
|
#define out. But we have to take care for the set
|
|
|
|
not having a symbolic name. */
|
|
|
|
if (message_run->symbol != NULL)
|
|
|
|
if (set_run->symbol == NULL)
|
1996-06-25 21:56:54 +08:00
|
|
|
fprintf (fp, "#define AutomaticSet%d%s %#x\t/* %s:%Zu */\n",
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
set_run->number, message_run->symbol,
|
|
|
|
message_run->number, message_run->fname,
|
|
|
|
message_run->line);
|
|
|
|
else
|
1996-06-25 21:56:54 +08:00
|
|
|
fprintf (fp, "#define %s%s %#x\t/* %s:%Zu */\n",
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
set_run->symbol, message_run->symbol,
|
|
|
|
message_run->number, message_run->fname,
|
|
|
|
message_run->line);
|
|
|
|
|
|
|
|
message_run = message_run->next;
|
|
|
|
}
|
|
|
|
|
|
|
|
set_run = set_run->next;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (fp != stdout)
|
|
|
|
fclose (fp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static struct set_list *
|
|
|
|
find_set (struct catalog *current, int number)
|
|
|
|
{
|
|
|
|
struct set_list *result = current->all_sets;
|
|
|
|
|
|
|
|
/* We must avoid set number 0 because a set of this number signals
|
|
|
|
in the tables that the entry is not occupied. */
|
|
|
|
++number;
|
|
|
|
|
|
|
|
while (result != NULL)
|
|
|
|
if (result->number == number)
|
|
|
|
return result;
|
|
|
|
else
|
|
|
|
result = result->next;
|
|
|
|
|
|
|
|
/* Prepare new message set. */
|
|
|
|
result = (struct set_list *) xmalloc (sizeof (*result));
|
|
|
|
result->number = number;
|
|
|
|
result->deleted = 0;
|
|
|
|
result->messages = NULL;
|
|
|
|
result->next = current->all_sets;
|
|
|
|
current->all_sets = result;
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* Normalize given string *in*place* by processing escape sequences
|
|
|
|
and quote characters. */
|
|
|
|
static void
|
|
|
|
normalize_line (const char *fname, size_t line, char *string, char quote_char)
|
|
|
|
{
|
|
|
|
int is_quoted;
|
|
|
|
char *rp = string;
|
|
|
|
char *wp = string;
|
|
|
|
|
|
|
|
if (quote_char != '\0' && *rp == quote_char)
|
|
|
|
{
|
|
|
|
is_quoted = 1;
|
|
|
|
++rp;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
is_quoted = 0;
|
|
|
|
|
|
|
|
while (*rp != '\0')
|
|
|
|
if (*rp == quote_char)
|
|
|
|
/* We simply end the string when we find the first time an
|
|
|
|
not-escaped quote character. */
|
|
|
|
break;
|
|
|
|
else if (*rp == '\\')
|
|
|
|
{
|
|
|
|
++rp;
|
|
|
|
if (quote_char != '\0' && *rp == quote_char)
|
|
|
|
/* This is an extension to XPG. */
|
|
|
|
*wp++ = *rp++;
|
|
|
|
else
|
|
|
|
/* Recognize escape sequences. */
|
|
|
|
switch (*rp)
|
|
|
|
{
|
|
|
|
case 'n':
|
|
|
|
*wp++ = '\n';
|
|
|
|
++rp;
|
|
|
|
break;
|
|
|
|
case 't':
|
|
|
|
*wp++ = '\t';
|
|
|
|
++rp;
|
|
|
|
break;
|
|
|
|
case 'v':
|
|
|
|
*wp++ = '\v';
|
|
|
|
++rp;
|
|
|
|
break;
|
|
|
|
case 'b':
|
|
|
|
*wp++ = '\b';
|
|
|
|
++rp;
|
|
|
|
break;
|
|
|
|
case 'r':
|
|
|
|
*wp++ = '\r';
|
|
|
|
++rp;
|
|
|
|
break;
|
|
|
|
case 'f':
|
|
|
|
*wp++ = '\f';
|
|
|
|
++rp;
|
|
|
|
break;
|
|
|
|
case '\\':
|
|
|
|
*wp++ = '\\';
|
|
|
|
++rp;
|
|
|
|
break;
|
|
|
|
case '0' ... '7':
|
|
|
|
{
|
|
|
|
int number = *rp++ - '0';
|
|
|
|
while (number <= (255 / 8) && *rp >= '0' && *rp <= '7')
|
|
|
|
{
|
|
|
|
number *= 8;
|
|
|
|
number += *rp++ - '0';
|
|
|
|
}
|
|
|
|
*wp++ = (char) number;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
/* Simply ignore the backslash character. */
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
*wp++ = *rp++;
|
|
|
|
|
|
|
|
/* If we saw a quote character at the beginning we expect another
|
|
|
|
one at the end. */
|
|
|
|
if (is_quoted && *rp != quote_char)
|
|
|
|
error (0, 0, fname, line, gettext ("unterminated message"));
|
|
|
|
|
|
|
|
/* Terminate string. */
|
|
|
|
*wp = '\0';
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
read_old (struct catalog *catalog, const char *file_name)
|
|
|
|
{
|
|
|
|
struct catalog_info old_cat_obj;
|
|
|
|
struct set_list *set = NULL;
|
|
|
|
int last_set = -1;
|
|
|
|
size_t cnt;
|
|
|
|
|
|
|
|
old_cat_obj.status = closed;
|
|
|
|
old_cat_obj.cat_name = file_name;
|
|
|
|
|
|
|
|
/* Try to open catalog, but don't look through the NLSPATH. */
|
|
|
|
__open_catalog (&old_cat_obj, 0);
|
|
|
|
|
1996-12-20 09:39:50 +08:00
|
|
|
if (old_cat_obj.status != mmapped && old_cat_obj.status != malloced)
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
if (errno == ENOENT)
|
|
|
|
/* No problem, the catalog simply does not exist. */
|
|
|
|
return;
|
|
|
|
else
|
|
|
|
error (EXIT_FAILURE, errno, gettext ("while opening old catalog file"));
|
|
|
|
|
|
|
|
/* OK, we have the catalog loaded. Now read all messages and merge
|
|
|
|
them. When set and message number clash for any message the new
|
|
|
|
one is used. */
|
|
|
|
for (cnt = 0; cnt < old_cat_obj.plane_size * old_cat_obj.plane_depth; ++cnt)
|
|
|
|
{
|
|
|
|
struct message_list *message, *last;
|
|
|
|
|
|
|
|
if (old_cat_obj.name_ptr[cnt * 3 + 0] == 0)
|
|
|
|
/* No message in this slot. */
|
|
|
|
continue;
|
|
|
|
|
Fri Jun 28 02:41:08 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* nss/Makefile (databases): New variable.
(routines, libnss_files-routines): Use it.
(subdir-dirs): Compute from $(services).
* sysdeps/unix/sysv/linux/syscalls.list (create_module, delete_module,
init_module, klogctl): Use EXTRA in the "caller" column so these get
added to unix-extra-syscalls and thus compiled in misc.
* string/Makefile (routines): Add strndup.
* string/strndup.c: New file.
* string/string.h: Declare strndup.
(strndupa): New macro.
* string/string.h: Declare __strdup.
* string/strdup.c: Deansideclized. Define __ name and weak alias.
* string/string.h: Don't define memccpy as macro for [__OPTIMIZE__].
Thu Jun 27 23:43:22 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/dl-machine.h (elf_machine_rela): The Alpha's
address-of operation and plt format conspire to require all
dynamic relocs to be resolved to actual symbols not plt entries.
Thu Jun 27 02:49:28 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/gencat.c: Add casts to avoid signed<->unsigned warnings.
* grp/initgroups.c (initgroups): De-ansi-fy.
Move declaration of NGROUPS and GROUPS outside #if so that
the code compiles for NGROUPS_MAX != 0.
* inet/Makefile (headers): Add netinet/ether.h and netinet/if_ether.h.
(routines): Add ether_aton, ether_aton_r, ether_hton, ether_line,
ether_ntoa, ether_ntoa_r, and ether_ntoh.
* inet/ether_aton.c, inet/ether_aton_r.c, inet/ether_hton.c,
inet/ether_line.c, inet/ether_ntoa.c, inet/ether_ntoa_r.c,
inet/ether_ntoh.c: New files. Implementation of functions to
handle Ethernet address to host mapping.
* inet/netinet/ether.h: New file. Declare ether_* functions.
* netinet/ether.h: Wrapper around inet/netinet/ether.h for glibc
compilation.
* nss/ethers-lookup.c: New file. Lookup function for ethers database.
* nss/Makefile (routines): Add ethers-lookup.
(libnss_files-routines): Add files-ethers.
* nss/getXXent_r.c: Don't define set*ent and end*ent function
with _r suffix.
* nss/nss_files/files-XXX.c (internal_endent): Don't reset
KEEP_STREAM every time called.
(_nss_files_end): Reset KEEP_STREAM here instead.
(internal_getent): If STREAM == NULL try to open instead of
signalling error.
Use cast to prevent warning.
Terminate read line in case the buffer is too small.
* nss/nss_files/files-ethers.c: New file. Implementation of
Ethernet adress<->hostname lookup through files interface.
* stdlib/mbstowcs.c: Define based on mbsrtowcs().
* stdlib/mbtowc.c: Define based on mbrtowc().
* stdlib/wcstombs.c: Define based on wcsrtombs().
* stdlib/wctomb.c: Define based on wcrtomb().
* sunrpc/xdr.c (xdr_u_int): Avoid bogus call to
unexpected_sizes_in_xdr_u_int.
* sysdeps/generic/netinet/if_ether.h: New file. Generic declaration
of `struct ether_addr'.
* sysdeps/unix/sysv/linux/netinet/if_ether.h: New file. Linux specific
declaration of `struct ether_addr'.
* wcsmbs/mbrtowc.c: Handle case where argument PS is NULL.
* wcsmbs/mbsrtowcs.c: Ditto.
* wcsmbs/wcrtomb.c: Ditto.
* wcsmbs/wcsrtombs.c: Ditto.
* wcsmbs/mbsinit.c: Prepare for PS being NULL.
1996-06-28 16:56:59 +08:00
|
|
|
if (old_cat_obj.name_ptr[cnt * 3 + 0] - 1 != (u_int32_t) last_set)
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
{
|
|
|
|
last_set = old_cat_obj.name_ptr[cnt * 3 + 0] - 1;
|
|
|
|
set = find_set (catalog, old_cat_obj.name_ptr[cnt * 3 + 0] - 1);
|
|
|
|
}
|
|
|
|
|
|
|
|
last = NULL;
|
|
|
|
message = set->messages;
|
|
|
|
while (message != NULL)
|
|
|
|
{
|
Fri Jun 28 02:41:08 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* nss/Makefile (databases): New variable.
(routines, libnss_files-routines): Use it.
(subdir-dirs): Compute from $(services).
* sysdeps/unix/sysv/linux/syscalls.list (create_module, delete_module,
init_module, klogctl): Use EXTRA in the "caller" column so these get
added to unix-extra-syscalls and thus compiled in misc.
* string/Makefile (routines): Add strndup.
* string/strndup.c: New file.
* string/string.h: Declare strndup.
(strndupa): New macro.
* string/string.h: Declare __strdup.
* string/strdup.c: Deansideclized. Define __ name and weak alias.
* string/string.h: Don't define memccpy as macro for [__OPTIMIZE__].
Thu Jun 27 23:43:22 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/dl-machine.h (elf_machine_rela): The Alpha's
address-of operation and plt format conspire to require all
dynamic relocs to be resolved to actual symbols not plt entries.
Thu Jun 27 02:49:28 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/gencat.c: Add casts to avoid signed<->unsigned warnings.
* grp/initgroups.c (initgroups): De-ansi-fy.
Move declaration of NGROUPS and GROUPS outside #if so that
the code compiles for NGROUPS_MAX != 0.
* inet/Makefile (headers): Add netinet/ether.h and netinet/if_ether.h.
(routines): Add ether_aton, ether_aton_r, ether_hton, ether_line,
ether_ntoa, ether_ntoa_r, and ether_ntoh.
* inet/ether_aton.c, inet/ether_aton_r.c, inet/ether_hton.c,
inet/ether_line.c, inet/ether_ntoa.c, inet/ether_ntoa_r.c,
inet/ether_ntoh.c: New files. Implementation of functions to
handle Ethernet address to host mapping.
* inet/netinet/ether.h: New file. Declare ether_* functions.
* netinet/ether.h: Wrapper around inet/netinet/ether.h for glibc
compilation.
* nss/ethers-lookup.c: New file. Lookup function for ethers database.
* nss/Makefile (routines): Add ethers-lookup.
(libnss_files-routines): Add files-ethers.
* nss/getXXent_r.c: Don't define set*ent and end*ent function
with _r suffix.
* nss/nss_files/files-XXX.c (internal_endent): Don't reset
KEEP_STREAM every time called.
(_nss_files_end): Reset KEEP_STREAM here instead.
(internal_getent): If STREAM == NULL try to open instead of
signalling error.
Use cast to prevent warning.
Terminate read line in case the buffer is too small.
* nss/nss_files/files-ethers.c: New file. Implementation of
Ethernet adress<->hostname lookup through files interface.
* stdlib/mbstowcs.c: Define based on mbsrtowcs().
* stdlib/mbtowc.c: Define based on mbrtowc().
* stdlib/wcstombs.c: Define based on wcsrtombs().
* stdlib/wctomb.c: Define based on wcrtomb().
* sunrpc/xdr.c (xdr_u_int): Avoid bogus call to
unexpected_sizes_in_xdr_u_int.
* sysdeps/generic/netinet/if_ether.h: New file. Generic declaration
of `struct ether_addr'.
* sysdeps/unix/sysv/linux/netinet/if_ether.h: New file. Linux specific
declaration of `struct ether_addr'.
* wcsmbs/mbrtowc.c: Handle case where argument PS is NULL.
* wcsmbs/mbsrtowcs.c: Ditto.
* wcsmbs/wcrtomb.c: Ditto.
* wcsmbs/wcsrtombs.c: Ditto.
* wcsmbs/mbsinit.c: Prepare for PS being NULL.
1996-06-28 16:56:59 +08:00
|
|
|
if ((u_int32_t) message->number >= old_cat_obj.name_ptr[cnt * 3 + 1])
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
break;
|
|
|
|
last = message;
|
|
|
|
message = message->next;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (message == NULL
|
Fri Jun 28 02:41:08 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* nss/Makefile (databases): New variable.
(routines, libnss_files-routines): Use it.
(subdir-dirs): Compute from $(services).
* sysdeps/unix/sysv/linux/syscalls.list (create_module, delete_module,
init_module, klogctl): Use EXTRA in the "caller" column so these get
added to unix-extra-syscalls and thus compiled in misc.
* string/Makefile (routines): Add strndup.
* string/strndup.c: New file.
* string/string.h: Declare strndup.
(strndupa): New macro.
* string/string.h: Declare __strdup.
* string/strdup.c: Deansideclized. Define __ name and weak alias.
* string/string.h: Don't define memccpy as macro for [__OPTIMIZE__].
Thu Jun 27 23:43:22 1996 Richard Henderson <rth@tamu.edu>
* sysdeps/alpha/dl-machine.h (elf_machine_rela): The Alpha's
address-of operation and plt format conspire to require all
dynamic relocs to be resolved to actual symbols not plt entries.
Thu Jun 27 02:49:28 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/gencat.c: Add casts to avoid signed<->unsigned warnings.
* grp/initgroups.c (initgroups): De-ansi-fy.
Move declaration of NGROUPS and GROUPS outside #if so that
the code compiles for NGROUPS_MAX != 0.
* inet/Makefile (headers): Add netinet/ether.h and netinet/if_ether.h.
(routines): Add ether_aton, ether_aton_r, ether_hton, ether_line,
ether_ntoa, ether_ntoa_r, and ether_ntoh.
* inet/ether_aton.c, inet/ether_aton_r.c, inet/ether_hton.c,
inet/ether_line.c, inet/ether_ntoa.c, inet/ether_ntoa_r.c,
inet/ether_ntoh.c: New files. Implementation of functions to
handle Ethernet address to host mapping.
* inet/netinet/ether.h: New file. Declare ether_* functions.
* netinet/ether.h: Wrapper around inet/netinet/ether.h for glibc
compilation.
* nss/ethers-lookup.c: New file. Lookup function for ethers database.
* nss/Makefile (routines): Add ethers-lookup.
(libnss_files-routines): Add files-ethers.
* nss/getXXent_r.c: Don't define set*ent and end*ent function
with _r suffix.
* nss/nss_files/files-XXX.c (internal_endent): Don't reset
KEEP_STREAM every time called.
(_nss_files_end): Reset KEEP_STREAM here instead.
(internal_getent): If STREAM == NULL try to open instead of
signalling error.
Use cast to prevent warning.
Terminate read line in case the buffer is too small.
* nss/nss_files/files-ethers.c: New file. Implementation of
Ethernet adress<->hostname lookup through files interface.
* stdlib/mbstowcs.c: Define based on mbsrtowcs().
* stdlib/mbtowc.c: Define based on mbrtowc().
* stdlib/wcstombs.c: Define based on wcsrtombs().
* stdlib/wctomb.c: Define based on wcrtomb().
* sunrpc/xdr.c (xdr_u_int): Avoid bogus call to
unexpected_sizes_in_xdr_u_int.
* sysdeps/generic/netinet/if_ether.h: New file. Generic declaration
of `struct ether_addr'.
* sysdeps/unix/sysv/linux/netinet/if_ether.h: New file. Linux specific
declaration of `struct ether_addr'.
* wcsmbs/mbrtowc.c: Handle case where argument PS is NULL.
* wcsmbs/mbsrtowcs.c: Ditto.
* wcsmbs/wcrtomb.c: Ditto.
* wcsmbs/wcsrtombs.c: Ditto.
* wcsmbs/mbsinit.c: Prepare for PS being NULL.
1996-06-28 16:56:59 +08:00
|
|
|
|| (u_int32_t) message->number > old_cat_obj.name_ptr[cnt * 3 + 1])
|
Fri Apr 19 00:49:44 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* stdlib/rpmatch.c (rpmatch: try): Take new arg NOMATCH, return value
for nonmatching nonerror (instead of !MATCH).
(rpmatch): Use it, so we return -1 when NOEXPR doesn't match either.
* resolv/getnetnamadr.c (getnetbyaddr): Use u_int32_t instead of
unsigned long for variable NET2.
* time/etcetera, time/europe, time/solar89: Updated from ADO's 96e.
Tue Apr 9 14:37:31 1996 Ulrich Drepper <drepper@cygnus.com>
* catgets/Makefile, catgets/catgets.c, catgets/catgetsinfo.h,
catgets/config.h, catgets/gencat.c, catgets/nl_types.h,
catgets/open_catalog.c: New files. Implementation of XPG4
compliant catgets() function and needed tools.
* Makefile (subdirs): Add catgets.
Thu Apr 18 23:36:11 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* math/Makefile (CPPFLAGS): Append -D__NO_MATH_INLINES.
Wed Apr 10 20:48:43 1996 Ulrich Drepper <drepper@cygnus.com>
* stdio-common/vfprintf.c: Correct some typos.
* sysdeps/libm-ieee754/w_gammaf.c, sysdeps/libm-ieee754/w_lgamma.c,
sysdeps/libm-ieee754/w_lgammaf.c: Reference signgam instead of
__signgam.
Thu Apr 18 21:07:27 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (no-whole-archive): New variable.
(build-shlib): Use it.
* elf/Makefile (libdl.so): Use it.
* configure.in (libc_cv_ld_no_whole_archive): New check for
--no-whole-archive.
* config.make.in (have-no-whole-archive): New variable.
* stdio-common/printf_fp.c: Increase fudge factor for BIGNUM_SIZE calc
from 3 to 4.
* Make-dist: Include version.mk.
(version, release): Variables removed.
* Makeconfig (version.mk): New target.
Fri Apr 19 01:42:18 1996 Ulrich Drepper <drepper@cygnus.com>
* locale/Makefile (headers): Add langinfo.h.
(CPPFLAGS): Remove -Iliblib.
1996-04-20 08:05:25 +08:00
|
|
|
{
|
|
|
|
/* We have found a message which is not yet in the catalog.
|
|
|
|
Insert it at the right position. */
|
|
|
|
struct message_list *newp;
|
|
|
|
|
|
|
|
newp = (struct message_list *) xmalloc (sizeof(*newp));
|
|
|
|
newp->number = old_cat_obj.name_ptr[cnt * 3 + 1];
|
|
|
|
newp->message =
|
|
|
|
&old_cat_obj.strings[old_cat_obj.name_ptr[cnt * 3 + 2]];
|
|
|
|
newp->fname = NULL;
|
|
|
|
newp->line = 0;
|
|
|
|
newp->symbol = NULL;
|
|
|
|
newp->next = message;
|
|
|
|
|
|
|
|
if (last == NULL)
|
|
|
|
set->messages = newp;
|
|
|
|
else
|
|
|
|
last->next = newp;
|
|
|
|
|
|
|
|
++catalog->total_messages;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|