Codebase list ruby-debian / 50161ac
stop using regexps for lists of packages, that doesn't work for large numbers (Closes: #552125) Ryan Niebur 14 years ago
2 changed file(s) with 8 addition(s) and 14 deletion(s). Raw diff Collapse all Expand all
22 * adopt package (Closes: #532927)
33 * add Vcs-* fields
44 * fix parsing .deb files, thanks to Junichi Uekawa (Closes: #390262)
5
6 -- Ryan Niebur <ryan@debian.org> Sun, 01 Nov 2009 03:08:15 -0800
5 * stop using regexps for lists of packages, that doesn't work for
6 large numbers (Closes: #552125)
7
8 -- Ryan Niebur <ryan@debian.org> Sun, 01 Nov 2009 03:28:19 -0800
79
810 dpkg-ruby (0.3.2) unstable; urgency=low
911
873873
874874 def [](package) @lists[package]; end
875875 def package(package) @lists[package]; end
876
877 def pkgs_re_escape(pkgs)
878 return pkgs.map{|p| Regexp.escape(p)}.join('|')
879 end
880876 end
881877
882878 ################################################################
883879 class Sources < Archives
884880 def initialize(file = "", pkgs = [], fields = [])
885 unless pkgs.empty?
886 pkgre = Regexp.new("(Package|Source):\\s(#{pkgs_re_escape(pkgs)})\n")
887 end
888881 @lists = Archives.parseArchiveFile(file) {|info|
889 if !pkgre || pkgre =~ info
882 info =~ /(?:Package|Source):\s(.*)$/;
883 if pkgs.empty? || pkgs.include?($1)
890884 d = Dsc.new(info,fields)
891885 if block_given?
892886 yield d
900894 ################################################################
901895 class Packages < Archives
902896 def initialize(file = "", pkgs = [], fields = [])
903 unless pkgs.empty?
904 pkgre = Regexp.new("Package:\\s(#{pkgs_re_escape(pkgs)})\n")
905 end
906897 @provides = {}
907898 @file = [file]
908899 @lists = Archives.parseArchiveFile(file) {|info|
909 if !pkgre || pkgre =~ info
900 info =~ /Package:\s(.*)$/;
901 if pkgs.empty? || pkgs.include?($1)
910902 d = Deb.new(info,fields)
911903 add_provides(d)
912904 if block_given?