[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]