Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Update.
2002-04-30  Jakub Jelinek  <jakub@redhat.com>

	* locale/programs/locarchive.c (create_archive): Add archivefname
	argument, create fname from it.
	(enlarge_archive): Honour output_prefix.
	(open_archive): Likewise.

2002-04-30  Jakub Jelinek  <jakub@redhat.com>

	* locale/programs/locarchive.c (add_locales_to_archive): Don't nest
	too many stpcpy macros.

2002-04-26  Bruno Haible  <bruno@clisp.org>

	* locale/programs/ld-collate.c (collate_read): Cast first argument
	for "%.*s" to int.

2002-04-26  Bruno Haible  <bruno@clisp.org>

	* include/libintl.h (__ngettext, __dngettext, __dcngettext,
	__dcngettext_internal): New declarations.
	(__gettext, __dgettext, __dcgettext, __dcgettext_internal): Add
	attribute declarations.
  • Loading branch information
Ulrich Drepper committed May 1, 2002
1 parent 3e992af commit 531bafd
Show file tree
Hide file tree
Showing 9 changed files with 66 additions and 21 deletions.
24 changes: 24 additions & 0 deletions ChangeLog
@@ -1,3 +1,27 @@
2002-04-30 Jakub Jelinek <jakub@redhat.com>

* locale/programs/locarchive.c (create_archive): Add archivefname
argument, create fname from it.
(enlarge_archive): Honour output_prefix.
(open_archive): Likewise.

2002-04-30 Jakub Jelinek <jakub@redhat.com>

* locale/programs/locarchive.c (add_locales_to_archive): Don't nest
too many stpcpy macros.

2002-04-26 Bruno Haible <bruno@clisp.org>

* locale/programs/ld-collate.c (collate_read): Cast first argument
for "%.*s" to int.

2002-04-26 Bruno Haible <bruno@clisp.org>

* include/libintl.h (__ngettext, __dngettext, __dcngettext,
__dcngettext_internal): New declarations.
(__gettext, __dgettext, __dcgettext, __dcgettext_internal): Add
attribute declarations.

2002-04-30 Roland McGrath <roland@frob.com>

Removed old GNU stdio implementation; GNU libio is now the only option.
Expand Down
3 changes: 0 additions & 3 deletions intl/Versions
Expand Up @@ -19,9 +19,6 @@ libc {
textdomain;
}
GLIBC_2.2 {
# functions used in inline functions or macros
__dcngettext;

# b*
bind_textdomain_codeset;

Expand Down
1 change: 0 additions & 1 deletion intl/dcngettext.c
Expand Up @@ -57,6 +57,5 @@ DCNGETTEXT (domainname, msgid1, msgid2, n, category)

#ifdef _LIBC
/* Alias for function name in GNU C Library. */
INTDEF(__dcngettext)
weak_alias (__dcngettext, dcngettext);
#endif
2 changes: 1 addition & 1 deletion intl/dngettext.c
Expand Up @@ -38,7 +38,7 @@
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define DNGETTEXT __dngettext
# define DCNGETTEXT INTUSE(__dcngettext)
# define DCNGETTEXT __dcngettext
#else
# define DNGETTEXT dngettext__
# define DCNGETTEXT dcngettext__
Expand Down
2 changes: 1 addition & 1 deletion intl/ngettext.c
Expand Up @@ -45,7 +45,7 @@
prefix. So we have to make a difference here. */
#ifdef _LIBC
# define NGETTEXT __ngettext
# define DCNGETTEXT INTUSE(__dcngettext)
# define DCNGETTEXT __dcngettext
#else
# define NGETTEXT ngettext__
# define DCNGETTEXT dcngettext__
Expand Down
4 changes: 4 additions & 0 deletions linuxthreads/ChangeLog
@@ -1,3 +1,7 @@
2002-04-30 Jakub Jelinek <jakub@redhat.com>

* sysdeps/unix/sysv/linux/x86_64/Makefile: New file.

2002-04-08 Ulrich Drepper <drepper@redhat.com>

* sysdeps/pthread/timer_getoverr.c: Return real overrun.
Expand Down
9 changes: 9 additions & 0 deletions linuxthreads/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -0,0 +1,9 @@
ifeq ($(subdir),linuxthreads)
# gcc -m64 has /usr/lib64/crti.o hardcoded in the specs file, because otherwise
# it would normally find 32bit crti.o.
LDFLAGS-pthread.so += -specs=$(objpfx)specs
before-compile += $(objpfx)specs
generated += specs
$(objpfx)specs:
$(CC) $(CFLAGS) $(CPPFLAGS) -dumpspecs | sed 's_/usr/lib64/crti.o_crti.o_g' > $@
endif
2 changes: 1 addition & 1 deletion locale/programs/ld-collate.c
Expand Up @@ -3505,7 +3505,7 @@ error while adding equivalent collating symbol"));
else
{
lr_error (ldfile, _("%s: bad symbol <%.*s>"), "LC_COLLATE",
ldfile->token.val.str.lenmb,
(int) ldfile->token.val.str.lenmb,
ldfile->token.val.str.startmb);
break;
}
Expand Down
40 changes: 26 additions & 14 deletions locale/programs/locarchive.c
Expand Up @@ -45,8 +45,9 @@
#include "simple-hash.h"
#include "localedef.h"

extern const char *output_prefix;

static const char archivefname[] = LOCALEDIR "/locale-archive";
#define ARCHIVE_NAME LOCALEDIR "/locale-archive"

static const char *locnames[] =
{
Expand All @@ -65,14 +66,16 @@ static const char *locnames[] =


static void
create_archive (struct locarhandle *ah)
create_archive (const char *archivefname, struct locarhandle *ah)
{
int fd;
char fname[] = LOCALEDIR "/locale-archive.XXXXXX";
char fname[strlen (archivefname) + sizeof (".XXXXXX")];
struct locarhead head;
void *p;
size_t total;

strcpy (stpcpy (fname, archivefname), ".XXXXXX");

/* Create a temporary file in the correct directory. */
fd = mkstemp (fname);
if (fd == -1)
Expand Down Expand Up @@ -169,14 +172,21 @@ enlarge_archive (struct locarhandle *ah, const struct locarhead *head)
{
struct stat64 st;
int fd;
char fname[] = LOCALEDIR "/locale-archive.XXXXXX";
struct locarhead newhead;
size_t total;
void *p;
unsigned int cnt;
struct namehashent *oldnamehashtab;
struct locrecent *oldlocrectab;
struct locarhandle new_ah;
size_t prefix_len = output_prefix ? strlen (output_prefix) : 0;
char archivefname[prefix_len + sizeof (ARCHIVE_NAME)];
char fname[prefix_len + sizeof (ARCHIVE_NAME) + sizeof (".XXXXXX") - 1];

if (output_prefix)
memcpy (archivefname, output_prefix, prefix_len);
strcpy (archivefname + prefix_len, ARCHIVE_NAME);
strcpy (stpcpy (fname, archivefname), ".XXXXXX");

/* Not all of the old file has to be mapped. Change this now this
we will have to access the whole content. */
Expand Down Expand Up @@ -331,6 +341,12 @@ open_archive (struct locarhandle *ah)
int fd;
struct locarhead head;
int retry = 0;
size_t prefix_len = output_prefix ? strlen (output_prefix) : 0;
char archivefname[prefix_len + sizeof (ARCHIVE_NAME)];

if (output_prefix)
memcpy (archivefname, output_prefix, prefix_len);
strcpy (archivefname + prefix_len, ARCHIVE_NAME);

again:
/* Open the archive. We must have exclusive write access. */
Expand All @@ -340,7 +356,7 @@ open_archive (struct locarhandle *ah)
/* Maybe the file does not yet exist. */
if (errno == ENOENT)
{
create_archive (ah);
create_archive (archivefname, ah);
return;
}
else
Expand Down Expand Up @@ -711,11 +727,8 @@ add_locales_to_archive (nlist, list, replace)
directory and it therefore must contain a
regular file with the same name except a
"SYS_" prefix. */
strcpy (stpcpy (stpcpy (stpcpy (stpcpy (fullname,
fname),
"/"),
d->d_name),
"/SYS_"),
char *t = stpcpy (stpcpy (fullname, fname), "/");
strcpy (stpcpy (stpcpy (t, d->d_name), "/SYS_"),
d->d_name);

if (stat64 (fullname, &st) == -1)
Expand Down Expand Up @@ -765,11 +778,10 @@ add_locales_to_archive (nlist, list, replace)

if (S_ISDIR (st.st_mode))
{
char *t;
close (fd);
strcpy (stpcpy (stpcpy (stpcpy (stpcpy (fullname, fname),
"/"),
locnames[cnt]),
"/SYS_"),
t = stpcpy (stpcpy (fullname, fname), "/");
strcpy (stpcpy (stpcpy (t, locnames[cnt]), "/SYS_"),
locnames[cnt]);

fd = open64 (fullname, O_RDONLY);
Expand Down

0 comments on commit 531bafd

Please sign in to comment.