diff options
| author | Ulrich Drepper <drepper@redhat.com> | 2003-03-03 21:11:12 +0000 |
|---|---|---|
| committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-03 21:11:12 +0000 |
| commit | 7ce5c1640cbeb86d2094d992f30438ddda40ac14 (patch) | |
| tree | 63f44821134b350f7eef50c06f75b4a4caf5b71b | |
| parent | 625f22fc7f8e0d61e3e6cff2c65468b91dbad426 (diff) | |
| download | glibc-7ce5c1640cbeb86d2094d992f30438ddda40ac14.tar.xz glibc-7ce5c1640cbeb86d2094d992f30438ddda40ac14.zip | |
Update.
2003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
* atomic.h (atomic_exchange_and_add): Return newval, not oldval.
* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
Fix handling of cancellation and failing pthread_mutex_unlock call.
* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
(__pthread_cond_wait): Likewise.
* sysdeps/pthread/pthread_rwlock_timedrdlock.c
(pthread_rwlock_timedrdlock): Fix clobber of result variable by
lll_futex_timed_wait call.
* sysdeps/pthread/pthread_rwlock_timedwrlock.c
(pthread_rwlock_timedwrlock): Likewise.
* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
* sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
check of lll_futex_wake return value.
| -rw-r--r-- | nptl/ChangeLog | 22 | ||||
| -rw-r--r-- | nptl/atomic.h | 2 | ||||
| -rw-r--r-- | nptl/sysdeps/pthread/pthread_cond_timedwait.c | 23 | ||||
| -rw-r--r-- | nptl/sysdeps/pthread/pthread_cond_wait.c | 42 | ||||
| -rw-r--r-- | nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c | 8 | ||||
| -rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c | 25 | ||||
| -rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c | 2 | ||||
| -rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/sem_post.c | 2 | ||||
| -rw-r--r-- | po/gl.po | 521 | ||||
| -rw-r--r-- | po/sv.po | 6 |
10 files changed, 377 insertions, 276 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index d6ca84806c..740d6ff1f8 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,25 @@ +2003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * atomic.h (atomic_exchange_and_add): Return newval, not oldval. + + * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait): + Fix handling of cancellation and failing pthread_mutex_unlock call. + * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise. + (__pthread_cond_wait): Likewise. + + * sysdeps/pthread/pthread_rwlock_timedrdlock.c + (pthread_rwlock_timedrdlock): Fix clobber of result variable by + lll_futex_timed_wait call. + * sysdeps/pthread/pthread_rwlock_timedwrlock.c + (pthread_rwlock_timedwrlock): Likewise. + + * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock): + Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so. + * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments. + + * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix + check of lll_futex_wake return value. + 2003-03-03 Roland McGrath <roland@redhat.com> * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl. diff --git a/nptl/atomic.h b/nptl/atomic.h index 4279235a71..813fb80a03 100644 --- a/nptl/atomic.h +++ b/nptl/atomic.h @@ -60,7 +60,7 @@ while (atomic_compare_and_exchange_acq (__memp, __oldval + __value, \ __oldval)); \ \ - __oldval; }) + __oldval + __value; }) #endif diff --git a/nptl/sysdeps/pthread/pthread_cond_timedwait.c b/nptl/sysdeps/pthread/pthread_cond_timedwait.c index 797d244cf7..3b29cb4ea6 100644 --- a/nptl/sysdeps/pthread/pthread_cond_timedwait.c +++ b/nptl/sysdeps/pthread/pthread_cond_timedwait.c @@ -31,6 +31,12 @@ extern void __condvar_cleanup (void *arg) __attribute__ ((visibility ("hidden"))); +struct _condvar_cleanup_buffer +{ + int oldtype; + pthread_cond_t *cond; + pthread_mutex_t *mutex; +}; int __pthread_cond_timedwait (cond, mutex, abstime) @@ -39,6 +45,7 @@ __pthread_cond_timedwait (cond, mutex, abstime) const struct timespec *abstime; { struct _pthread_cleanup_buffer buffer; + struct _condvar_cleanup_buffer cbuffer; int result = 0; /* Catch invalid parameters. */ @@ -54,9 +61,13 @@ __pthread_cond_timedwait (cond, mutex, abstime) /* We have one new user of the condvar. */ ++cond->__data.__total_seq; + /* Prepare structure passed to cancellation handler. */ + cbuffer.cond = cond; + cbuffer.mutex = mutex; + /* Before we block we enable cancellation. Therefore we have to install a cancellation handler. */ - __pthread_cleanup_push (&buffer, __condvar_cleanup, cond); + __pthread_cleanup_push (&buffer, __condvar_cleanup, &cbuffer); /* The current values of the wakeup counter. The "woken" counter must exceed this value. */ @@ -76,6 +87,8 @@ __pthread_cond_timedwait (cond, mutex, abstime) while (1) { + int err; + /* Get the current time. So far we support only one clock. */ struct timeval tv; (void) gettimeofday (&tv, NULL); @@ -104,14 +117,14 @@ __pthread_cond_timedwait (cond, mutex, abstime) lll_mutex_unlock (cond->__data.__lock); /* Enable asynchronous cancellation. Required by the standard. */ - int oldtype = __pthread_enable_asynccancel (); + cbuffer.oldtype = __pthread_enable_asynccancel (); /* Wait until woken by signal or broadcast. Note that we truncate the 'val' value to 32 bits. */ - result = lll_futex_timed_wait (futex, (unsigned int) val, &rt); + err = lll_futex_timed_wait (futex, (unsigned int) val, &rt); /* Disable asynchronous cancellation. */ - __pthread_disable_asynccancel (oldtype); + __pthread_disable_asynccancel (cbuffer.oldtype); /* We are going to look at shared data again, so get the lock. */ lll_mutex_lock(cond->__data.__lock); @@ -123,7 +136,7 @@ __pthread_cond_timedwait (cond, mutex, abstime) break; /* Not woken yet. Maybe the time expired? */ - if (result == -ETIMEDOUT) + if (err == -ETIMEDOUT) { /* Yep. Adjust the counters. */ ++cond->__data.__wakeup_seq; diff --git a/nptl/sysdeps/pthread/pthread_cond_wait.c b/nptl/sysdeps/pthread/pthread_cond_wait.c index d0b63bd8df..d96444f49b 100644 --- a/nptl/sysdeps/pthread/pthread_cond_wait.c +++ b/nptl/sysdeps/pthread/pthread_cond_wait.c @@ -27,22 +27,35 @@ #include <shlib-compat.h> +struct _condvar_cleanup_buffer +{ + int oldtype; + pthread_cond_t *cond; + pthread_mutex_t *mutex; +}; + void __attribute__ ((visibility ("hidden"))) __condvar_cleanup (void *arg) { - pthread_cond_t *cond = (pthread_cond_t *) arg; + struct _condvar_cleanup_buffer *cbuffer = + (struct _condvar_cleanup_buffer *) arg; /* We are going to modify shared data. */ - lll_mutex_lock (cond->__data.__lock); + lll_mutex_lock (cbuffer->cond->__data.__lock); /* This thread is not waiting anymore. Adjust the sequence counters appropriately. */ - ++cond->__data.__wakeup_seq; - ++cond->__data.__woken_seq; + ++cbuffer->cond->__data.__wakeup_seq; + ++cbuffer->cond->__data.__woken_seq; /* We are done. */ - lll_mutex_unlock (cond->__data.__lock); + lll_mutex_unlock (cbuffer->cond->__data.__lock); + + /* Get the mutex before returning unless asynchronous cancellation + is in effect. */ + if (!(cbuffer->oldtype & CANCELTYPE_BITMASK)) + __pthread_mutex_lock_internal (cbuffer->mutex); } @@ -52,19 +65,30 @@ __pthread_cond_wait (cond, mutex) pthread_mutex_t *mutex; { struct _pthread_cleanup_buffer buffer; + struct _condvar_cleanup_buffer cbuffer; + int err; /* Make sure we are along. */ lll_mutex_lock (cond->__data.__lock); /* Now we can release the mutex. */ - __pthread_mutex_unlock_internal (mutex); + err = __pthread_mutex_unlock_internal (mutex); + if (err) + { + lll_mutex_unlock (cond->__data.__lock); + return err; + } /* We have one new user of the condvar. */ ++cond->__data.__total_seq; + /* Prepare structure passed to cancellation handler. */ + cbuffer.cond = cond; + cbuffer.mutex = mutex; + /* Before we block we enable cancellation. Therefore we have to install a cancellation handler. */ - __pthread_cleanup_push (&buffer, __condvar_cleanup, cond); + __pthread_cleanup_push (&buffer, __condvar_cleanup, &cbuffer); /* The current values of the wakeup counter. The "woken" counter must exceed this value. */ @@ -88,14 +112,14 @@ __pthread_cond_wait (cond, mutex) lll_mutex_unlock (cond->__data.__lock); /* Enable asynchronous cancellation. Required by the standard. */ - int oldtype = __pthread_enable_asynccancel (); + cbuffer.oldtype = __pthread_enable_asynccancel (); /* Wait until woken by signal or broadcast. Note that we truncate the 'val' value to 32 bits. */ lll_futex_wait (futex, (unsigned int) val); /* Disable asynchronous cancellation. */ - __pthread_disable_asynccancel (oldtype); + __pthread_disable_asynccancel (cbuffer.oldtype); /* We are going to look at shared data again, so get the lock. */ lll_mutex_lock(cond->__data.__lock); diff --git a/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c b/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c index fb6382544e..9c1815570f 100644 --- a/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c +++ b/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c @@ -37,6 +37,8 @@ pthread_rwlock_timedrdlock (rwlock, abstime) while (1) { + int err; + /* Get the rwlock if there is no writer... */ if (rwlock->__data.__writer == 0 /* ...and if either no writer is waiting or we prefer readers. */ @@ -111,14 +113,14 @@ pthread_rwlock_timedrdlock (rwlock, abstime) lll_mutex_unlock (rwlock->__data.__lock); /* Wait for the writer to finish. */ - result = lll_futex_timed_wait (&rwlock->__data.__readers_wakeup, - waitval, &rt); + err = lll_futex_timed_wait (&rwlock->__data.__readers_wakeup, + waitval, &rt); /* Get the lock. */ lll_mutex_lock (rwlock->__data.__lock); /* Did the futex call time out? */ - if (result == -ETIMEDOUT) + if (err == -ETIMEDOUT) { /* Yep, report it. */ result = ETIMEDOUT; diff --git a/nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c b/nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c index 40b5c3e441..7035479c1a 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c +++ b/nptl/sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c @@ -17,5 +17,26 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -/* No difference to lowlevellock.c */ -#include "lowlevellock.c" +#include <errno.h> +#include <sysdep.h> +#include <lowlevellock.h> +#include <sys/time.h> + + +void +___lll_lock (futex, newval) + int *futex; + int newval; +{ + do + { + int oldval; + + lll_futex_wait (futex, newval); + lll_compare_and_swap (futex, oldval, newval, "lr %2,%1; ahi %2,-1"); + } + while (newval != 0); + + *futex = -1; +} +hidden_proto (___lll_lock) diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c index bc501c7ee4..f98e163ae1 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c +++ b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.c @@ -42,7 +42,6 @@ ___lll_lock (futex, newval) hidden_proto (___lll_lock) -/* XXX Should not be in libc.so */ int lll_unlock_wake_cb (futex) int *futex; @@ -58,7 +57,6 @@ lll_unlock_wake_cb (futex) hidden_proto (lll_unlock_wake_cb) -/* XXX Should not be in libc.so */ int ___lll_timedwait_tid (ptid, abstime) int *ptid; diff --git a/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c b/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c index df64c03ba6..b573532a32 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c +++ b/nptl/sysdeps/unix/sysv/linux/s390/sem_post.c @@ -34,7 +34,7 @@ __new_sem_post (sem_t *sem) lll_compare_and_swap ((int *) sem, oldval, newval, "lr %2,%1; ahi %2,1"); err = lll_futex_wake(((int *) sem), newval); - if (err != 0) + if (err < 0) { __set_errno(-err); return -1; @@ -4,9 +4,9 @@ # msgid "" msgstr "" -"Project-Id-Version: libc 2.3\n" -"POT-Creation-Date: 2002-10-02 17:22-0700\n" -"PO-Revision-Date: 2002-10-05 15:13+0200\n" +"Project-Id-Version: libc 2.3.2\n" +"POT-Creation-Date: 2003-02-22 15:34-0800\n" +"PO-Revision-Date: 2003-03-03 20:13+0100\n" "Last-Translator: Jacobo Tarrio <jtarrio@trasno.net>\n" "Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n" "MIME-Version: 1.0\n" @@ -259,8 +259,8 @@ msgstr "non se pode abri-lo ficheiro de saída" #: iconv/iconv_prog.c:241 #, c-format -msgid "conversions from `%s' and to `%s' are not supported" -msgstr "as conversións de `%s' a `%s' non están soportadas" +msgid "conversion from `%s' and to `%s' are not supported" +msgstr "as conversións de `%s' e a `%s' non están soportadas" #: iconv/iconv_prog.c:246 #, c-format @@ -285,15 +285,15 @@ msgstr "non se puido comeza-lo procesamento de conversión" msgid "error while closing output file" msgstr "erro ao pecha-lo ficheiro de saída" -#: iconv/iconv_prog.c:407 iconv/iconvconfig.c:355 locale/programs/locale.c:268 +#: iconv/iconv_prog.c:407 iconv/iconvconfig.c:357 locale/programs/locale.c:274 #: locale/programs/localedef.c:372 catgets/gencat.c:233 #: malloc/memusagestat.c:602 debug/pcprofiledump.c:199 msgid "Report bugs using the `glibcbug' script to <bugs@gnu.org>.\n" msgstr "Informe dos erros usando o script `glibcbug' a <bugs@gnu.org>.\n" -#: iconv/iconv_prog.c:421 iconv/iconvconfig.c:369 locale/programs/locale.c:281 -#: locale/programs/localedef.c:386 catgets/gencat.c:246 posix/getconf.c:904 -#: nss/getent.c:74 nscd/nscd.c:279 nscd/nscd_nischeck.c:90 elf/ldconfig.c:259 +#: iconv/iconv_prog.c:421 iconv/iconvconfig.c:371 locale/programs/locale.c:287 +#: locale/programs/localedef.c:386 catgets/gencat.c:246 posix/getconf.c:910 +#: nss/getent.c:74 nscd/nscd.c:330 nscd/nscd_nischeck.c:90 elf/ldconfig.c:271 #: elf/sprof.c:349 #, c-format msgid "" @@ -305,9 +305,9 @@ msgstr "" "Isto é software libre; vexa o código fonte polas condicións de copia. NON hai\n" "garantía; nin sequera de COMERCIABILIDADE ou APTITUDE PARA UN FIN DETERMINADO.\n" -#: iconv/iconv_prog.c:426 iconv/iconvconfig.c:374 locale/programs/locale.c:286 -#: locale/programs/localedef.c:391 catgets/gencat.c:251 posix/getconf.c:909 -#: nss/getent.c:79 nscd/nscd.c:284 nscd/nscd_nischeck.c:95 elf/ldconfig.c:264 +#: iconv/iconv_prog.c:426 iconv/iconvconfig.c:376 locale/programs/locale.c:292 +#: locale/programs/localedef.c:391 catgets/gencat.c:251 posix/getconf.c:915 +#: nss/getent.c:79 nscd/nscd.c:335 nscd/nscd_nischeck.c:95 elf/ldconfig.c:276 #: elf/sprof.c:355 #, c-format msgid "Written by %s.\n" @@ -359,15 +359,15 @@ msgstr "[DIR...]" msgid "Prefix used for all file accesses" msgstr "Prefixo a empregar para tódolos accesos a ficheiro" -#: iconv/iconvconfig.c:325 locale/programs/localedef.c:292 +#: iconv/iconvconfig.c:327 locale/programs/localedef.c:292 msgid "no output file produced because warning were issued" msgstr "non se producíu un ficheiro de saída porque se deron avisos" -#: iconv/iconvconfig.c:403 +#: iconv/iconvconfig.c:405 msgid "while inserting in search tree" msgstr "ao inserir na árbore de busca" -#: iconv/iconvconfig.c:1202 +#: iconv/iconvconfig.c:1204 msgid "cannot generate output file" msgstr "non se pode xera-lo ficheiro de saída" @@ -1277,7 +1277,7 @@ msgstr "lixo á fin da especificación do código de caracteres" msgid "unterminated symbolic name" msgstr "nome simbólico non rematado" -#: locale/programs/linereader.c:537 catgets/gencat.c:1166 +#: locale/programs/linereader.c:537 catgets/gencat.c:1195 msgid "invalid escape sequence" msgstr "secuencia de escape non válida" @@ -1307,39 +1307,39 @@ msgstr "o símbolo `%.*s' non está no mapa de repertorios" msgid "trailing garbage at end of line" msgstr "lixo na fin da liña" -#: locale/programs/locale.c:73 +#: locale/programs/locale.c:75 msgid "System information:" msgstr "Información do sistema:" -#: locale/programs/locale.c:75 +#: locale/programs/locale.c:77 msgid "Write names of available locales" msgstr "Escribi-los nomes dos `locales' dispoñibles" -#: locale/programs/locale.c:77 +#: locale/programs/locale.c:79 msgid "Write names of available charmaps" msgstr "Escribi-los nomes dos mapas de caracteres dispoñibles" -#: locale/programs/locale.c:78 +#: locale/programs/locale.c:80 msgid "Modify output format:" msgstr "Modifica-lo formato de saída:" -#: locale/programs/locale.c:79 +#: locale/programs/locale.c:81 msgid "Write names of selected categories" msgstr "Escribi-los nomes das categorías seleccionadas" -#: locale/programs/locale.c:80 +#: locale/programs/locale.c:82 msgid "Write names of selected keywords" msgstr "Escribi-los nomes das claves seleccionadas" -#: locale/programs/locale.c:81 +#: locale/programs/locale.c:83 msgid "Print more information" msgstr "Amosar máis información" -#: locale/programs/locale.c:86 +#: locale/programs/locale.c:88 msgid "Get locale-specific information." msgstr "Obter información específica do `locale'." -#: locale/programs/locale.c:89 +#: locale/programs/locale.c:91 msgid "" "NAME\n" "[-a|-m]" @@ -1347,7 +1347,7 @@ msgstr "" "NOME\n" "[-a|-m]" -#: locale/programs/locale.c:488 +#: locale/programs/locale.c:512 msgid "while preparing output" msgstr "ao prepara-la saída" @@ -1478,16 +1478,16 @@ msgstr "non se pode engadi-lo locale xa lido `%s' outra vez" msgid "cannot create temporary file" msgstr "non se pode crea-lo ficheiro temporal" -#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:302 +#: locale/programs/locarchive.c:118 locale/programs/locarchive.c:305 msgid "cannot initialize archive file" msgstr "non se pode inicializa-lo ficheiro de arquivo" -#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:309 +#: locale/programs/locarchive.c:125 locale/programs/locarchive.c:312 msgid "cannot resize archive file" msgstr "non se pode cambia-lo tamaño do ficheiro de arquivo" -#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:318 -#: locale/programs/locarchive.c:508 +#: locale/programs/locarchive.c:134 locale/programs/locarchive.c:321 +#: locale/programs/locarchive.c:511 msgid "cannot map archive header" msgstr "non se pode mapea-la cabeceira do arquivo" @@ -1503,88 +1503,88 @@ msgstr "non se pode cambia-lo modo do novo arquivo de locales" msgid "cannot map locale archive file" msgstr "non se pode mapea-lo ficheiro de arquivo de locales" -#: locale/programs/locarchive.c:326 +#: locale/programs/locarchive.c:329 msgid "cannot lock new archive" msgstr "non se pode bloquea-lo novo arquivo" -#: locale/programs/locarchive.c:377 +#: locale/programs/locarchive.c:380 msgid "cannot extend locale archive file" msgstr "non se pode extende-lo ficheiro de arquivo de locales" -#: locale/programs/locarchive.c:386 +#: locale/programs/locarchive.c:389 msgid "cannot change mode of resized locale archive" msgstr "non se pode cambia-lo modo do arquivo de locales co novo tamaño" -#: locale/programs/locarchive.c:394 +#: locale/programs/locarchive.c:397 msgid "cannot rename new archive" msgstr "non se pode renomea-lo novo arquivo" -#: locale/programs/locarchive.c:447 +#: locale/programs/locarchive.c:450 #, c-format msgid "cannot open locale archive \"%s\"" msgstr "non se pode abri-lo arquivo de locales \"%s\"" -#: locale/programs/locarchive.c:452 +#: locale/programs/locarchive.c:455 #, c-format msgid "cannot stat locale archive \"%s\"" msgstr "non se pode facer stat do arquivo de locales \"%s\"" -#: locale/programs/locarchive.c:471 +#: locale/programs/locarchive.c:474 #, c-format msgid "cannot lock locale archive \"%s\"" msgstr "non se pode bloquea-lo arquivo de locales \"%s\"" -#: locale/programs/locarchive.c:494 +#: locale/programs/locarchive.c:497 msgid "cannot read archive header" msgstr "non se pode le-la cabeceira do arquivo" -#: locale/programs/locarchive.c:554 +#: locale/programs/locarchive.c:557 #, c-format msgid "locale '%s' already exists" msgstr "o locale '%s' xa existe" -#: locale/programs/locarchive.c:784 locale/programs/locarchive.c:799 -#: locale/programs/locarchive.c:811 locale/programs/locarchive.c:823 +#: locale/programs/locarchive.c:788 locale/programs/locarchive.c:803 +#: locale/programs/locarchive.c:815 locale/programs/locarchive.c:827 #: locale/programs/locfile.c:343 msgid "cannot add to locale archive" msgstr "non se pode engadir no arquivo de locales" -#: locale/programs/locarchive.c:976 +#: locale/programs/locarchive.c:982 #, c-format msgid "locale alias file `%s' not found" msgstr "non se atopou o ficheiro de alias de locales `%s'" -#: locale/programs/locarchive.c:1118 +#: locale/programs/locarchive.c:1126 #, c-format msgid "Adding %s\n" msgstr "Engadindo %s\n" -#: locale/programs/locarchive.c:1124 +#: locale/programs/locarchive.c:1132 #, c-format msgid "stat of \"%s\" failed: %s: ignored" msgstr "a chamada a stat de \"%s\" fallou: %s: ignórase" -#: locale/programs/locarchive.c:1130 +#: locale/programs/locarchive.c:1138 #, c-format msgid "\"%s\" is no directory; ignored" msgstr "\"%s\" non é un directorio; ignórase" -#: locale/programs/locarchive.c:1137 +#: locale/programs/locarchive.c:1145 #, c-format msgid "cannot open directory \"%s\": %s: ignored" msgstr "non se pode abr-lo directorio \"%s\": %s: ignorado" -#: locale/programs/locarchive.c:1209 +#: locale/programs/locarchive.c:1217 #, c-format msgid "incomplete set of locale files in \"%s\"" msgstr "conxunto de ficheiros de locale incompleto en \"%s\"" -#: locale/programs/locarchive.c:1273 +#: locale/programs/locarchive.c:1281 #, c-format msgid "cannot read all files in \"%s\": ignored" msgstr "non se poden ler tódolos ficheiros de \"%s\": ignorado" |
