public inbox for newlib-cvs@sourceware.org
help / color / mirror / Atom feed
* [newlib-cygwin] fix and amend scripts and makefile rules to generate Unicode data
@ 2021-07-06 13:43 Corinna Vinschen
  0 siblings, 0 replies; only message in thread
From: Corinna Vinschen @ 2021-07-06 13:43 UTC (permalink / raw)
  To: newlib-cvs

https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=204ee3cf6aca29652272d943946f9809060d054d

commit 204ee3cf6aca29652272d943946f9809060d054d
Author: Thomas Wolff <towo@towo.net>
Date:   Sat Apr 17 00:00:00 2021 +0200

    fix and amend scripts and makefile rules to generate Unicode data

Diff:
---
 newlib/Makefile.am           |  4 ----
 newlib/Makefile.in           |  4 ----
 newlib/libc/Makefile.unidata | 11 +++++++++++
 newlib/libc/ctype/mkunidata  |  4 +++-
 newlib/libc/string/mkunidata |  6 ++++--
 newlib/libc/string/uniset    | 29 +++++++++++++++--------------
 6 files changed, 33 insertions(+), 25 deletions(-)

diff --git a/newlib/Makefile.am b/newlib/Makefile.am
index 03390cd17..3a8b99fce 100644
--- a/newlib/Makefile.am
+++ b/newlib/Makefile.am
@@ -420,10 +420,6 @@ endif
 
 # Generate Unicode data tables for libc/string/wcwidth and libc/ctype/??w*
 unidata:
-	cd $(srcdir)/libc/string; ./mkunidata
-	cd $(srcdir)/libc/ctype; ./mkunidata
-
-unidate-download:
 	cd $(srcdir)/libc/string; ./mkunidata -u
 	cd $(srcdir)/libc/ctype; ./mkunidata -u
 
diff --git a/newlib/Makefile.in b/newlib/Makefile.in
index fdaf34586..a4eba9120 100644
--- a/newlib/Makefile.in
+++ b/newlib/Makefile.in
@@ -1168,10 +1168,6 @@ install-data-local:	install-toollibLIBRARIES
 
 # Generate Unicode data tables for libc/string/wcwidth and libc/ctype/??w*
 unidata:
-	cd $(srcdir)/libc/string; ./mkunidata
-	cd $(srcdir)/libc/ctype; ./mkunidata
-
-unidate-download:
 	cd $(srcdir)/libc/string; ./mkunidata -u
 	cd $(srcdir)/libc/ctype; ./mkunidata -u
 
diff --git a/newlib/libc/Makefile.unidata b/newlib/libc/Makefile.unidata
new file mode 100644
index 000000000..c85c428f2
--- /dev/null
+++ b/newlib/libc/Makefile.unidata
@@ -0,0 +1,11 @@
+# Generate Unicode data tables for string/wcwidth and ctype/??w*
+# Download Unicode data files
+unidata:
+	cd string; ./mkunidata -u
+	cd ctype; ./mkunidata -u
+
+# Generate Unicode data tables for string/wcwidth and ctype/??w*
+# Use installed Unicode data files from package unicode-ucd
+unidata-local:
+	cd string; ./mkunidata -i
+	cd ctype; ./mkunidata -i
diff --git a/newlib/libc/ctype/mkunidata b/newlib/libc/ctype/mkunidata
index 4bdf3bc81..4adf667ef 100755
--- a/newlib/libc/ctype/mkunidata
+++ b/newlib/libc/ctype/mkunidata
@@ -20,7 +20,9 @@ case "$1" in
 	;;
 -u)
 	wget () {
-		curl -R -O --connect-timeout 55 -z "`basename $1`" "$1"
+		ref=`basename $1`
+		ref=`ls "$ref" 2> /dev/null || echo 01-Jan-1970`
+		curl -R -O --connect-timeout 55 -z "$ref" "$1"
 	}
 
 	echo downloading data from unicode.org
diff --git a/newlib/libc/string/mkunidata b/newlib/libc/string/mkunidata
index 7ebebeb07..7b6135f8d 100755
--- a/newlib/libc/string/mkunidata
+++ b/newlib/libc/string/mkunidata
@@ -21,11 +21,13 @@ case "$1" in
 	;;
 -u)
 	wget () {
-		curl -R -O --connect-timeout 55 -z "`basename $1`" "$1"
+		ref=`basename $1`
+		ref=`ls "$ref" 2> /dev/null || echo 01-Jan-1970`
+		curl -R -O --connect-timeout 55 -z "$ref" "$1"
 	}
 
 	echo downloading uniset tool
-	wget http://www.cl.cam.ac.uk/~mgk25/download/uniset.tar.gz
+	wget https://www.cl.cam.ac.uk/~mgk25/download/uniset.tar.gz
 	gzip -dc uniset.tar.gz | tar xvf - uniset
 
 	echo downloading data from unicode.org
diff --git a/newlib/libc/string/uniset b/newlib/libc/string/uniset
index 85d3b2a6f..b118dd663 100755
--- a/newlib/libc/string/uniset
+++ b/newlib/libc/string/uniset
@@ -2,7 +2,7 @@
 # Uniset -- Unicode subset manager -- Markus Kuhn
 # http://www.cl.cam.ac.uk/~mgk25/download/uniset.tar.gz
 
-require 5.008;
+require 5.014;
 use open ':utf8';
 use FindBin qw($RealBin);  # to find directory where this file is located
 
@@ -147,11 +147,12 @@ sub is_unicode {
     return exists $name{$ucs};
 }
 
-my @search_path;
-push @search_path, "$ENV{HOME}/local/share/uniset"
-    if -d "$ENV{HOME}/local/share/uniset";
-push @search_path, "/usr/share/uniset" if -d "/usr/share/uniset";
-push @search_path, $RealBin unless $RealBin =~ m|^/usr/bin|;
+my @search_path = ();
+if ($RealBin =~ m|^(.*)/bin\z| && -d "$1/share/uniset") {
+    push @search_path, "$1/share/uniset";
+} else {
+    push @search_path, $RealBin;
+}
 
 sub search_open {
     my ($mode, $fn) = @_;
@@ -186,7 +187,7 @@ while (<$data>) {
 	$category{$ucs} = $3;
         $comment{$ucs} = $12;
     } else {
-        die("Syntax error in line '$_' in file '$unicodedata'");
+        die("Syntax error in line '$_' in file '$unicodedata'\n");
     }
 }
 close($data);
@@ -209,7 +210,7 @@ while (<$data>) {
     } elsif (/^\s*\#/ || /^\s*$/) {
 	# ignore comments and empty lines
     } else {
-        die("Syntax error in line '$_' in file '$blockdata'");
+        die("Syntax error in line '$_' in file '$blockdata'\n");
     }
 }
 close($data);
@@ -231,16 +232,16 @@ while ($_ = shift(@ARGV)) {
 	$image = 1;
     } elsif (/^template$/) {
 	$template = shift(@ARGV);
-	open(TEMPLATE, $template) || die("Can't open template file '$template': '$!'");
+	open(TEMPLATE, $template) || die("Can't open template file '$template': $!\n");
 	while (<TEMPLATE>) {
 	    if (/^\#\s*include\s+\"([^\"]*)\"\s*$/) {
-		open(INCLUDE, $1) || die("Can't open template include file '$1': '$!'");
+		open(INCLUDE, $1) || die("Can't open template include file '$1': $!\n");
 		while (<INCLUDE>) {
 		    print $_;
 		}
 		close(INCLUDE);
 	    } elsif (/^\#\s*quote\s+\"([^\"]*)\"\s*$/) {
-		open(INCLUDE, $1) || die("Can't open template include file '$1': '$!'");
+		open(INCLUDE, $1) || die("Can't open template include file '$1': $!\n");
 		while (<INCLUDE>) {
 		    s/&/&amp;/g;
 		    s/</&lt;/g;
@@ -275,7 +276,7 @@ while ($_ = shift(@ARGV)) {
 	$setfile = $2;
 	$setfile = shift(@ARGV) if $setfile eq "";
 	push(@SETS, $setfile);
-	open(SET, $setfile) || die("Can't open set file '$setfile': '$!'");
+	open(SET, $setfile) || die("Can't open set file '$setfile': $!\n");
 	$setname = $setfile;
 	while (<SET>) {
 	    while ($_) {
@@ -303,7 +304,7 @@ while ($_ = shift(@ARGV)) {
 	$setfile = shift(@ARGV) if $setfile eq "";
 	push(@SETS, $setfile);
 	my $setf = search_open('<', $setfile);
-	die("Can't open set file '$setfile': '$!'") unless $setf;
+	die("Can't open set file '$setfile': $!\n") unless $setf;
 	$cedf = ($setfile =~ /cedf/); # detect Kosta Kosti's trans CEDF format by path name
 	$setname = $setfile;
 	$setname =~ s/([^.\[\]]*)\..*/$1/;
@@ -691,6 +692,6 @@ while ($_ = shift(@ARGV)) {
 	    delete $used{$i} if is_unicode($i);
 	}
     } else {
-	die("Unknown command line command '$_'");
+	die("Unknown command line command '$_'\n");
     };
 }


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-07-06 13:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-06 13:43 [newlib-cygwin] fix and amend scripts and makefile rules to generate Unicode data Corinna Vinschen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).