+2003-03-17 Ulrich Drepper <drepper@redhat.com>
+
+ * localedata/en_ZA: hanged %x for LC_TIME to use dd/mm/ccyy.
+ Added ^ to LC_MESSAGES regex "^[yY].*".
+ Confirmed LC_PAPER adn LC_MEASUREMENT settings.
+ Added country and language names to LC_ADDRESS.
+ Added missing info for LC_TELEPHONE.
+ Patch by Dwayne Bailey <dwayne@obsidian.co.za>.
+
2003-03-14 Ulrich Drepper <drepper@redhat.com>
* localedata/mn_MN: New file.
comment_char %
% English language locale for South Africa
-% Source: RAP
-% Email: nic@sig.co.za
-% Tel: +27 83 7659503
-% Fax: +27 12 3478098
+% Source: Zuza Software Foundation
+% Email: dwayne@translate.org.za
+% Tel: +27 21 4487827
+% Fax: +27 21 4489574
% Language: en
% Territory: ZA
-% Revision: 1.0
-% Date: 1999-03-28
+% Revision: 1.1
+% Date: 2003-03-14
% Users: general
% Repertoiremap: mnemonic,ds
% Charset: ISO-8859-1
% Distribution and use is free, also
% for commercial purposes.
+%
+% Changelog
+% 1.1 (2003-03-14):
+% - Updated maintainer to Zuza Sofware Foundation
+% - Changed %x for LC_TIME to use dd/mm/ccyy
+% - Added ^ to LC_MESSAGES regex "^[yY].*"
+% - Confirmed LC_PAPER and LC_MEASUREMENT settings
+% - Added country and language names to LC_ADDRESS
+% - Added missing info for LC_TELEPHONE
LC_IDENTIFICATION
title "English locale for South Africa"
-source "RAP"
-address ""
-contact ""
-email "bug-glibc@gnu.org"
-tel ""
-fax ""
+source "Zuza Software Foundation"
+address "Box 13412, Mowbray, 7701, South Africa"
+contact "Dwayne Bailey"
+email "dwayne@translate.org.za"
+tel "+27 21 448 7827"
+fax "+27 21 448 9574"
language "English"
territory "South Africa"
-revision "1.0"
-date "2000-06-29"
+revision "1.1"
+date "2003-03-14"
%
-category "en_ZA:2000";LC_IDENTIFICATION
+category "en_ZA:2003";LC_IDENTIFICATION
category "en_ZA:2000";LC_CTYPE
category "en_ZA:2000";LC_COLLATE
-category "en_ZA:2000";LC_TIME
+category "en_ZA:2003";LC_TIME
category "en_ZA:2000";LC_NUMERIC
category "en_ZA:2000";LC_MONETARY
-category "en_ZA:2000";LC_MESSAGES
+category "en_ZA:2003";LC_MESSAGES
category "en_ZA:2000";LC_PAPER
+category "en_ZA:2000";LC_MEASUREMENT
category "en_ZA:2000";LC_NAME
-category "en_ZA:2000";LC_ADDRESS
-category "en_ZA:2000";LC_TELEPHONE
+category "en_ZA:2003";LC_ADDRESS
+category "en_ZA:2003";LC_TELEPHONE
END LC_IDENTIFICATION
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
-d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
t_fmt "<U0025><U0054>"
am_pm "";""
t_fmt_ampm ""
END LC_TIME
LC_MESSAGES
-yesexpr "<U005B><U0079><U0059><U005D><U002E><U002A>"
-noexpr "<U005B><U006E><U004E><U005D><U002E><U002A>"
+yesexpr "<U005E><U005B><U0079><U0059><U005D><U002E><U002A>"
+noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
END LC_MESSAGES
LC_PAPER
-% FIXME
height 297
-% FIXME
width 210
END LC_PAPER
LC_TELEPHONE
tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
<U006C>"
+tel_dom_fmt "<U0028><U0025><U0041><U0029><U0020><U0025><U006C>"
+int_select "<U0030><U0039>"
int_prefix "<U0032><U0037>"
+
END LC_TELEPHONE
LC_MEASUREMENT
-% FIXME
measurement 1
END LC_MEASUREMENT
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
+country_name "<U0053><U006F><U0075><U0074><U0068><U0020>/
+<U0041><U0066><U0072><U0069><U0063><U0061>"
+lang_name "<U0045><U006E><U0067><U006C><U0069><U0073><U0068>"
END LC_ADDRESS
/* Check whether we are eligible for wakeup. */
val = cond->__data.__wakeup_seq;
- if (cond->__data.__woken_seq >= seq
- && cond->__data.__woken_seq < val)
+ if (val > seq && cond->__data.__woken_seq < val)
break;
/* Not woken yet. Maybe the time expired? */
# error "No valid byte order"
#endif
- while (1)
+ do
{
/* Prepare to wait. Release the condvar futex. */
lll_mutex_unlock (cond->__data.__lock);
/* Check whether we are eligible for wakeup. */
val = cond->__data.__wakeup_seq;
- if (cond->__data.__woken_seq >= seq
- && cond->__data.__woken_seq < val)
- break;
}
+ while (! (val > seq && cond->__data.__woken_seq < val));
/* Another thread woken up. */
++cond->__data.__woken_seq;
movl wakeup_seq(%ebx), %edi
movl wakeup_seq+4(%ebx), %edx
- cmpl 24(%esp), %ecx
+ cmpl 24(%esp), %edx
ja 7f
jb 15f
- cmpl 20(%esp), %eax
- jb 15f
+ cmpl 20(%esp), %edi
+ jbe 15f
7: cmpl %ecx, %edx
ja 9f
movl wakeup_seq(%ebx), %edi
movl wakeup_seq+4(%ebx), %edx
- cmpl 16(%esp), %ecx
+ cmpl 16(%esp), %edx
ja 7f
jb 8b
- cmpl 12(%esp), %eax
- jb 8b
+ cmpl 12(%esp), %edi
+ jbe 8b
7: cmpl %ecx, %edx
ja 9f
#endif
jne 10f
-11: addl $READERS_WAKEUP-MUTEX, %ebx
+11: addl $READERS_WAKEUP, %ebx
movl %esi, %ecx /* movl $FUTEX_WAIT, %ecx */
movl $SYS_futex, %eax
ENTER_KERNEL
- subl $READERS_WAKEUP-MUTEX, %ebx
+ subl $READERS_WAKEUP, %ebx
/* Reget the lock. */
movl $1, %eax
#endif
jne 10f
-11: addl $WRITERS_WAKEUP-MUTEX, %ebx
+11: addl $WRITERS_WAKEUP, %ebx
movl %esi, %ecx /* movl $FUTEX_WAIT, %ecx */
movl $SYS_futex, %eax
ENTER_KERNEL
- subl $WRITERS_WAKEUP-MUTEX, %ebx
+ subl $WRITERS_WAKEUP, %ebx
/* Reget the lock. */
movl $1, %eax
"testl %0, %0\n\t" \
"jne 1f\n\t" \
".subsection 1\n" \
- "1:\tleaq %2, %%rsi\n\t" \
+ "1:\tleaq %2, %%rdi\n\t" \
"subq $128, %%rsp\n\t" \
"callq __lll_mutex_lock_wait\n\t" \
"addq $128, %%rsp\n\t" \
"2:" \
: "=S" (ignore1), "=&D" (ignore2), "=m" (futex) \
: "0" (1), "2" (futex) \
- : "memory"); })
-
+ : "cx", "r11", "cc", "memory"); })
#define lll_mutex_timedlock(futex, timeout) \
({ int result, ignore1, ignore2, ignore3; \
: "=a" (result), "=&D" (ignore1), "=&S" (ignore2), \
"=&d" (ignore3), "=m" (futex) \
: "0" (1), "4" (futex), "m" (timeout) \
- : "memory", "cx", "cc", "r10"); \
+ : "memory", "cx", "cc", "r10", "r11"); \
result; })
"2:" \
: "=m" (futex), "=&D" (ignore) \
: "0" (futex) \
- : "memory"); })
+ : "cx", "r11", "cc", "memory"); })
#define lll_mutex_islocked(futex) \
"2:" \
: "=S" (ignore1), "=&D" (ignore2), "=m" (futex) \
: "0" (-1), "2" (futex) \
- : "memory"); })
+ : "cx", "r11", "cc", "memory"); })
# define lll_unlock(futex) \
"2:" \
: "=m" (futex), "=&D" (ignore) \
: "0" (futex) \
- : "memory"); })
+ : "cx", "r11", "cc", "memory"); })
#else
/* Special versions of the macros for use in libc itself. They avoid
the lock prefix when the thread library is not used.
"2:" \
: "=S" (ignore1), "=&D" (ignore2), "=m" (futex) \
: "0" (-1), "2" (futex) \
- : "memory"); })
+ : "cx", "r11", "cc", "memory"); })
# define lll_unlock(futex) \
"2:" \
: "=m" (futex), "=&D" (ignore) \
: "0" (futex) \
- : "memory"); })
+ : "cx", "r11", "cc", "memory"); })
#endif
register __typeof (tid) _tid asm ("edx") = (tid); \
if (_tid != 0) \
__asm __volatile ("xorq %%r10, %%r10\n\t" \
- "1:\tmovq %3, %%rax\n\t" \
+ "1:\tmovq %2, %%rax\n\t" \
"syscall\n\t" \
"cmpl $0, (%%rdi)\n\t" \
"jne 1b" \
movq wakeup_seq(%rdi), %r12
- cmpq 40(%rsp), %rax
- jb 15f
+ cmpq 40(%rsp), %r12
+ jbe 15f
cmpq %rax, %r12
ja 9f
jne 8b
13: incq wakeup_seq(%rdi)
- movq $ETIMEDOUT, %rsi
+ movq $ETIMEDOUT, %r14
jmp 14f
-9: xorq %rsi, %rsi
+9: xorq %r14, %r14
14: incq woken_seq(%rdi)
LOCK
callq __pthread_mutex_lock_internal
testq %rax, %rax
- cmoveq %rsi, %rax
+ cmoveq %r14, %rax
18: addq $80, %rsp
popq %r14
movq wakeup_seq(%rdi), %r12
- cmpq 24(%rsp), %rax
- jb 8b
+ cmpq 24(%rsp), %r12
+ jbe 8b
cmpq %rax, %r12
jna 8b
LOCK
#if MUTEX == 0
- incl (%rdi)
+ decl (%rdi)
#else
- incl MUTEX(%rdi)
+ decl MUTEX(%rdi)
#endif
jne 10f
-11: addq $READERS_WAKEUP-MUTEX, %rdi
+11: addq $READERS_WAKEUP, %rdi
movq %r10, %rsi /* movq $FUTEX_WAIT, %rsi */
movq $SYS_futex, %rax
syscall
- subq $READERS_WAKEUP-MUTEX, %rdi
+ subq $READERS_WAKEUP, %rdi
/* Reget the lock. */
movl $1, %esi
#include <lowlevelrwlock.h>
-#define SYS_futex 240
+#define SYS_futex 202
#define FUTEX_WAIT 0
#define FUTEX_WAKE 1
5: movq $0, WRITER(%rdi)
movq $1, %rsi
- leaq WRITERS_WAKEUP(%rdi), %r11
+ leaq WRITERS_WAKEUP(%rdi), %r10
movq %rsi, %rdx
cmpl $0, WRITERS_QUEUED(%rdi)
jne 0f
cmpl $0, READERS_QUEUED(%rdi)
je 6f
- movq $0x7fffffff, %rdx
- leaq READERS_WAKEUP(%rdi), %r11
+ movl $0x7fffffff, %edx
+ leaq READERS_WAKEUP(%rdi), %r10
-0: incl (%r11)
+0: incl (%r10)
LOCK
#if MUTEX == 0
decl (%rdi)
jne 7f
8: movq $SYS_futex, %rax
- movq %r11, %rdi
+ movq %r10, %rdi
syscall
xorq %rax, %rax
addq $MUTEX, %rdi
#endif
callq __lll_mutex_unlock_wake
-#if MUTEX != 0
- subq $MUTEX, %rdi
-#endif
jmp 4b
7:
addq $MUTEX, %rdi
#endif
callq __lll_mutex_unlock_wake
-#if MUTEX != 0
- subq $MUTEX, %rdi
-#endif
jmp 8b
.size __pthread_rwlock_unlock,.-__pthread_rwlock_unlock
#endif
jne 10f
-11: addq $WRITERS_WAKEUP-MUTEX, %rdi
+11: addq $WRITERS_WAKEUP, %rdi
movq %r10, %rsi /* movq $FUTEX_WAIT, %rsi */
movq $SYS_futex, %rax
syscall
- subq $WRITERS_WAKEUP-MUTEX, %rdi
+ subq $WRITERS_WAKEUP, %rdi
/* Reget the lock. */
movl $1, %esi
#if MUTEX == 0
decl (%rdi)
#else
- decl $MUTEX(%rdi)
+ decl MUTEX(%rdi)
#endif
jne 6f
7: