aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-12-06 02:13:20 +0000
committerUlrich Drepper <drepper@redhat.com>2008-12-06 02:13:20 +0000
commit8680179fdbaa69ba5c3d6056adf32c68d98e171a (patch)
treeb3d4087f34cf4508a1088532d80d5e6c256b3541
parent71885b7a9149b5e54906204491b64d5ad0a48e9d (diff)
downloadglibc-8680179fdbaa69ba5c3d6056adf32c68d98e171a.tar
glibc-8680179fdbaa69ba5c3d6056adf32c68d98e171a.tar.gz
glibc-8680179fdbaa69ba5c3d6056adf32c68d98e171a.tar.bz2
glibc-8680179fdbaa69ba5c3d6056adf32c68d98e171a.zip
2008-12-05 Joseph Myers <joseph@codesourcery.com>
Ulrich Drepper <drepper@redhat.com> * scripts/firstversion.awk: Use custom comparison function to compare version numbers. * scripts/versions.awk: Use sort invocation which can handle multi-digit sub-version numbers.
-rw-r--r--ChangeLog8
-rw-r--r--localedata/ChangeLog5
-rw-r--r--localedata/locales/hne_IN180
-rw-r--r--scripts/firstversions.awk31
-rw-r--r--scripts/versions.awk8
5 files changed, 223 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 004af8fd49..ab3454f96d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2008-12-05 Joseph Myers <joseph@codesourcery.com>
+ Ulrich Drepper <drepper@redhat.com>
+
+ * scripts/firstversion.awk: Use custom comparison function to compare
+ version numbers.
+ * scripts/versions.awk: Use sort invocation which can handle
+ multi-digit sub-version numbers.
+
2008-12-04 Ulrich Drepper <drepper@redhat.com>
* locale/programs/ld-address.c (DEFINE_LANGUAGE_CODE2): Define.
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index bc339ff17a..754d880f40 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-05 Ulrich Drepper <drepper@redhat.com>
+
+ * locales/hne_IN: New file.
+ Contributed by Pravin Satpute <psatpute@redhat.com>.
+
2008-10-31 Ulrich Drepper <drepper@redhat.com>
[BZ #6920]
diff --git a/localedata/locales/hne_IN b/localedata/locales/hne_IN
new file mode 100644
index 0000000000..b32398aec4
--- /dev/null
+++ b/localedata/locales/hne_IN
@@ -0,0 +1,180 @@
+comment_char %
+escape_char /
+% Chhattisgarhi language locale for India.
+% Contributed by Pravin Satpute <psatpute@redhat.com> and
+% Ravishankar Shrivastava <raviratlami@gmail.com>.
+
+LC_IDENTIFICATION
+title "Chhattisgarhi language locale for India"
+source "Red Hat, Pune"
+address "Marisfot III, Marigold Premises, East-Wing, Kalyaninagar, Pune, India-411014"
+contact ""
+email "bug-glibc-locales@gnu.org"
+tel ""
+fax ""
+language "Chhattisgarhi"
+territory "India"
+revision "1.0"
+date "2008-12-03"
+%
+category "hne_IN:2008";LC_IDENTIFICATION
+category "hne_IN:2008";LC_CTYPE
+category "hne_IN:2008";LC_COLLATE
+category "hne_IN:2008";LC_TIME
+category "hne_IN:2008";LC_NUMERIC
+category "hne_IN:2008";LC_MONETARY
+category "hne_IN:2008";LC_MESSAGES
+category "hne_IN:2008";LC_PAPER
+category "hne_IN:2008";LC_NAME
+category "hne_IN:2008";LC_ADDRESS
+category "hne_IN:2008";LC_TELEPHONE
+
+END LC_IDENTIFICATION
+
+LC_CTYPE
+copy "hi_IN"
+END LC_CTYPE
+
+LC_COLLATE
+copy "hi_IN"
+END LC_COLLATE
+
+LC_MONETARY
+copy "hi_IN"
+END LC_MONETARY
+
+
+LC_NUMERIC
+copy "hi_IN"
+END LC_NUMERIC
+
+
+LC_TIME
+% This is the POSIX Locale definition for the LC_TIME category.
+% These are generated based on XML base Locale difintion file
+% for IBM Class for Unicode/Java
+%
+% Abbreviated weekday names (%a)
+abday "<U0907><U0924><U0020>";/
+ "<U0938><U094B><U092E><U0020>";/
+ "<U092E><U0902><U0917><U0020>";/
+ "<U092C><U0941><U0927><U0020>";/
+ "<U092C><U093F><U0930><U0020>";/
+ "<U0938><U0941><U0915>";/
+ "<U0938><U0928><U093F>"
+%
+% Full weekday names (%A)
+day "<U0907><U0924><U0935><U093E><U0930><U0020>";/
+ "<U0938><U094B><U092E><U0935><U093E><U0930><U0020>";/
+ "<U092E><U0902><U0917><U0932><U0935><U093E><U0930><U0020>";/
+ "<U092C><U0941><U0927><U0935><U093E><U0930><U0020>";/
+ "<U092C><U093F><U0930><U0938><U092A><U0924><U0020>";/
+ "<U0938><U0941><U0915><U0930><U0935><U093E><U0930><U0020>";/
+ "<U0938><U0928><U093F><U0935><U093E><U0930><U0020>"
+%
+% Abbreviated month names (%b)
+abmon "<U091C><U0928>";/
+ "<U092B><U0930>";/
+ "<U092E><U093E><U0930><U094D><U091A>";/
+ "<U0905><U092A>";/
+ "<U092E><U0908>";"<U091C><U0942><U0928>";/
+ "<U091C><U0941><U0932><U093E>";/
+ "<U0905><U0917>";/
+ "<U0938><U093F><U0924>";/
+ "<U0905><U0915><U091F><U0942>";/
+ "<U0928><U0935>";/
+ "<U0926><U093F><U0938>"
+%
+% Full month names (%B)
+mon "<U091C><U0928><U0935><U0930><U0940>";/
+ "<U092B><U0930><U0935><U0930><U0940>";/
+ "<U092E><U093E><U0930><U094D><U091A>";/
+ "<U0905><U092A><U0930><U0947><U0932>";/
+ "<U092E><U0908>";"<U091C><U0942><U0928>";/
+ "<U091C><U0941><U0932><U093E><U0908>";/
+ "<U0905><U0917><U0938><U094D><U0924>";/
+ "<U0938><U093F><U0924><U092E><U092C><U0930>";/
+ "<U0905><U0915><U091F><U0942><U092C><U0930>";/
+ "<U0928><U0935><U092E><U092C><U0930>";/
+ "<U0926><U093F><U0938><U092E><U092C><U0930>"
+%
+% Equivalent of AM PM
+am_pm "<U092C><U093F><U0939><U093F><U0928><U093F><U092F><U093E><U0901>";/
+ "<U092E><U0902><U091D><U0928><U093F><U092F><U093E><U0901>"
+%
+% Appropriate date and time representation
+% %A %d %b %Y%I:%M:%S %Z
+d_t_fmt "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059><U0020><U0025><U0049><U003A><U0025><U004D><U003A>/
+<U0025><U0053><U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+% Appropriate date representation
+% %A %d %b %Y
+d_fmt "<U0025><U0041><U0020><U0025><U0064><U0020><U0025><U0062>/
+<U0020><U0025><U0059>"
+%
+% Appropriate time representation
+% %I:%M:%S %Z
+t_fmt "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0020><U0025><U005A>"
+%
+% Appropriate 12 h time representation (%r)
+t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>/
+<U0020><U0025><U0070><U0020><U0025><U005A>"
+%
+date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+<U0025><U005A><U0020><U0025><U0059>"
+END LC_TIME
+
+
+LC_MESSAGES
+yesexpr "<U005E><U005B><U0939><U0935><U0079><U0059><U005D>"
+noexpr "<U005E><U005B><U0928><U0907><U006E><U004E><U005D>"
+yesstr "<U0939><U0935>"
+nostr "<U0928><U0907>"
+END LC_MESSAGES
+
+
+LC_PAPER
+copy "hi_IN"
+END LC_PAPER
+
+
+LC_NAME
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_NAME category.
+%
+name_fmt "<U0025><U0070><U0025><U0074><U0025><U0066><U0025><U0074>/
+<U0025><U0067>"
+name_gen ""
+name_mr "<U0938><U093F><U0930><U0940><U092E><U093E><U0928>"
+name_mrs "<U0938><U093F><U0930><U0940><U092E><U0924><U0940>"
+name_miss "<U0915><U0941><U0902><U0935><U093E><U0930><U0940>"
+name_ms "<U0915><U0941><U0902>"
+
+END LC_NAME
+
+
+LC_ADDRESS
+% This is the ISO_IEC TR14652 Locale definition for the
+% LC_ADDRESS
+postal_fmt "<U0025><U007A><U0025><U0063><U0025><U0054><U0025><U0073>/
+<U0025><U0062><U0025><U0065><U0025><U0072>"
+
+country_ab2 "<U0049><U004E>"
+country_ab3 "<U0049><U004E><U0044>"
+country_num 356
+lang_term "<U0068><U006E><U0065>"
+
+END LC_ADDRESS
+
+
+LC_TELEPHONE
+copy "hi_IN"
+END LC_TELEPHONE
+
+
+LC_MEASUREMENT
+copy "hi_IN"
+END LC_MEASUREMENT
diff --git a/scripts/firstversions.awk b/scripts/firstversions.awk
index 8da92ae485..4a20fc0f9d 100644
--- a/scripts/firstversions.awk
+++ b/scripts/firstversions.awk
@@ -1,6 +1,31 @@
# Script to preprocess Versions.all lists based on "earliest version"
# specifications in the shlib-versions file.
+# Return -1, 0 or 1 according to whether v1 is less than, equal to or
+# greater than v2 as a version string. Simplified from GNU Autoconf
+# version; this one does not need to handle .0x fraction-style versions.
+function vers_compare (v1, v2)
+{
+ while (length(v1) && length(v2)) {
+ if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
+ for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue;
+ for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue;
+ d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1);
+ d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1);
+ d1 += 0;
+ d2 += 0;
+ } else {
+ d1 = substr(v1, 1, 1); v1 = substr(v1, 2);
+ d2 = substr(v2, 1, 1); v2 = substr(v2, 2);
+ }
+ if (d1 < d2) return -1;
+ if (d1 > d2) return 1;
+ }
+ if (length(v2)) return -1;
+ if (length(v1)) return 1;
+ return 0;
+}
+
NF > 2 && $2 == ":" {
for (i = 0; i <= NF - 3; ++i)
firstversion[$1, i] = $(3 + i);
@@ -25,10 +50,8 @@ $1 == "}" {
{
if ((thislib, idx[thislib]) in firstversion) {
- # XXX relative string comparison loses if we ever have multiple digits
- # between dots in GLIBC_x.y[.z] names.
f = v = firstversion[thislib, idx[thislib]];
- while ($1 >= v) {
+ while (vers_compare($1, v) >= 0) {
delete firstversion[thislib, idx[thislib]];
idx[thislib]++;
if ((thislib, idx[thislib]) in firstversion)
@@ -39,7 +62,7 @@ $1 == "}" {
if ($1 == v || $1 == f)
# This version was the specified earliest version itself.
print;
- else if ($1 < v) {
+ else if (vers_compare($1, v) < 0) {
# This version is older than the specified earliest version.
print " " $1, "=", v;
# Record that V has been referred to, so we will be sure to emit it
diff --git a/scripts/versions.awk b/scripts/versions.awk
index e642b3d16e..22b1c8edc8 100644
--- a/scripts/versions.awk
+++ b/scripts/versions.awk
@@ -28,10 +28,8 @@ BEGIN {
close(defsfile);
tmpfile = buildroot "Versions.tmp";
- # Note this sorting presumes only single digits between dots for proper
- # numeric ordering. sort -n doesn't do quite the right thing either,
- # and in some non-GNU sort implementations does not sort at all.
- sort = "sort > " tmpfile;
+ # POSIX sort needed.
+ sort = "sort -t. -k 1,1 -k 2n,2n -k 3 > " tmpfile;
}
# Remove comment lines.
@@ -135,5 +133,5 @@ END {
printf("\n");
closeversion(oldver, veryoldver);
close_and_move(outfile, real_outfile);
- system("rm -f " tmpfile);
+ #system("rm -f " tmpfile);
}