ruby-changes:7547
From: akr <ko1@a...>
Date: Tue, 2 Sep 2008 21:02:53 +0900 (JST)
Subject: [ruby-changes:7547] Ruby:r19068 (trunk): * enc/trans/make_transdb.rb: check foo.c only if foo.trans exists.
akr 2008-09-02 20:57:49 +0900 (Tue, 02 Sep 2008) New Revision: 19068 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=19068 Log: * enc/trans/make_transdb.rb: check foo.c only if foo.trans exists. Modified files: trunk/ChangeLog trunk/enc/trans/make_transdb.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 19067) +++ ChangeLog (revision 19068) @@ -1,3 +1,7 @@ +Tue Sep 2 20:57:14 2008 Tanaka Akira <akr@f...> + + * enc/trans/make_transdb.rb: check foo.c only if foo.trans exists. + Tue Sep 2 19:19:55 2008 Tanaka Akira <akr@f...> * enc/trans/make_transdb.rb: error message improved. Index: enc/trans/make_transdb.rb =================================================================== --- enc/trans/make_transdb.rb (revision 19067) +++ enc/trans/make_transdb.rb (revision 19068) @@ -11,10 +11,23 @@ transdirs = ARGV.dup outhdr = transdirs.shift || 'transdb.h' transdirs << 'enc/trans' if transdirs.empty? + +transdirs = transdirs.sort_by {|td| + td.length +}.inject([]) {|tds, td| + next tds unless File.directory?(td) + tds << td if tds.all? {|td2| !File.identical?(td2, td) } + tds +} + files = {} transdirs.each do |transdir| - next unless File.directory?(transdir) - Dir.open(transdir) {|d| d.grep(/.+\.[ch]\z/) }.sort_by {|e| + names = Dir.entries(transdir) + names_t = names.map {|n| /(?!\A)\.trans\z/ =~ n ? $` : nil }.compact + names_c = names.map {|n| /(?!\A)\.c\z/ =~ n ? $` : nil }.compact + (names_t & names_c).map {|n| + "#{n}.c" + }.sort_by {|e| e.scan(/(\d+)|(\D+)/).map {|n,a| a||[n.size,n.to_i]}.flatten }.each do |fn| next if files[fn] -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/