Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Jun 2008 01:23:05 +0900 (JST)
From:      KIMURA Yasuhiro <yasu@utahime.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/124837: [PATCH] lang/ruby18: update to 1.8.7-p17
Message-ID:  <20080621162305.89AE017013@showtime.home.utahime.org>
Resent-Message-ID: <200806211630.m5LGU4qI090853@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         124837
>Category:       ports
>Synopsis:       [PATCH] lang/ruby18: update to 1.8.7-p17
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jun 21 16:30:04 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     KIMURA Yasuhiro
>Release:        FreeBSD 7.0-RELEASE-p2 i386
>Organization:
>Environment:
System: FreeBSD xxxx 7.0-RELEASE-p2 FreeBSD 7.0-RELEASE-p2 #0: Sat Jun 21 22:06:22 JST 2008 xxxx i386


	
>Description:
	Update to latest version 1.8.7-p17.

	
>How-To-Repeat:
	
>Fix:

	

--- patch-ruby18 begins here ---
Index: Mk/bsd.ruby.mk
===================================================================
RCS file: /usr1/freebsd/cvsroot/ports/Mk/bsd.ruby.mk,v
retrieving revision 1.168
diff -u -r1.168 bsd.ruby.mk
--- Mk/bsd.ruby.mk	6 Apr 2008 10:29:53 -0000	1.168
+++ Mk/bsd.ruby.mk	21 Jun 2008 14:01:32 -0000
@@ -166,10 +166,10 @@
 #
 # Ruby 1.8
 #
-RUBY_RELVERSION=	1.8.6
-RUBY_PORTREVISION=	2
+RUBY_RELVERSION=	1.8.7
+RUBY_PORTREVISION=	0
 RUBY_PORTEPOCH=		1
-RUBY_PATCHLEVEL=	111
+RUBY_PATCHLEVEL=	17
 
 .  if ${RUBY_PATCHLEVEL} == 0
 RUBY_VERSION?=		${RUBY_RELVERSION}
Index: lang/ruby18/Makefile
===================================================================
RCS file: /usr1/freebsd/cvsroot/ports/lang/ruby18/Makefile,v
retrieving revision 1.134
diff -u -r1.134 Makefile
--- lang/ruby18/Makefile	30 Oct 2007 11:24:58 -0000	1.134
+++ lang/ruby18/Makefile	21 Jun 2008 15:03:38 -0000
@@ -126,7 +126,6 @@
 
 EXTDOCS=	bigdecimal/bigdecimal_*.html	\
 		dl/doc/dl.txt			\
-		enumerator/enumerator.txt	\
 		etc/etc.txt*			\
 		pty/README*			\
 		readline/README*		\
Index: lang/ruby18/distinfo
===================================================================
RCS file: /usr1/freebsd/cvsroot/ports/lang/ruby18/distinfo,v
retrieving revision 1.68
diff -u -r1.68 distinfo
--- lang/ruby18/distinfo	30 Oct 2007 11:24:58 -0000	1.68
+++ lang/ruby18/distinfo	21 Jun 2008 14:31:36 -0000
@@ -1,3 +1,3 @@
-MD5 (ruby/ruby-1.8.6-p111.tar.bz2) = e1d38b7d4f1be55726d6927a3395ce3b
-SHA256 (ruby/ruby-1.8.6-p111.tar.bz2) = 85c694678313818a5083bcfd66ae389fc053b506d93b5ad46f3764981c120fbb
-SIZE (ruby/ruby-1.8.6-p111.tar.bz2) = 3919396
+MD5 (ruby/ruby-1.8.7-p17.tar.bz2) = 4bbcf952fad200f4d265cb77a123d2fc
+SHA256 (ruby/ruby-1.8.7-p17.tar.bz2) = f205c586764ffbd944b4ec6439bd08286e3e7b27bc9448e74949e76c63f6016b
+SIZE (ruby/ruby-1.8.7-p17.tar.bz2) = 4114057
Index: lang/ruby18/pkg-plist
===================================================================
RCS file: /usr1/freebsd/cvsroot/ports/lang/ruby18/pkg-plist,v
retrieving revision 1.62
diff -u -r1.62 pkg-plist
--- lang/ruby18/pkg-plist	6 Apr 2008 10:29:53 -0000	1.62
+++ lang/ruby18/pkg-plist	21 Jun 2008 15:50:26 -0000
@@ -29,7 +29,6 @@
 %%PORTDOCS%%%%RUBY_DOCDIR%%/bigdecimal/bigdecimal_en.html
 %%PORTDOCS%%%%RUBY_DOCDIR%%/bigdecimal/bigdecimal_ja.html
 %%PORTDOCS%%%%RUBY_DOCDIR%%/dl/dl.txt
-%%PORTDOCS%%%%RUBY_DOCDIR%%/enumerator/enumerator.txt
 %%PORTDOCS%%%%RUBY_DOCDIR%%/etc/etc.txt
 %%PORTDOCS%%%%RUBY_DOCDIR%%/etc/etc.txt.ja
 %%PORTDOCS%%%%RUBY_DOCDIR%%/forwardable.rd
@@ -53,7 +52,6 @@
 %%PORTDOCS%%@dirrm %%RUBY_DOCDIR%%/pty
 %%PORTDOCS%%@dirrm %%RUBY_DOCDIR%%/irb
 %%PORTDOCS%%@dirrm %%RUBY_DOCDIR%%/etc
-%%PORTDOCS%%@dirrm %%RUBY_DOCDIR%%/enumerator
 %%PORTDOCS%%@dirrm %%RUBY_DOCDIR%%/dl
 %%PORTDOCS%%@dirrm %%RUBY_DOCDIR%%/bigdecimal
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/README
@@ -123,6 +121,7 @@
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/drb/speeds.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/dualstack-fetch.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/dualstack-httpd.rb
+%%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/erb/erb4html.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/eval.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/export.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/exyacc.rb
@@ -136,7 +135,6 @@
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/from.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/fullpath.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/getopts.test
-%%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/goodfriday.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/less.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/list.rb
 %%PORTDOCS%%%%RUBY_EXAMPLESDIR%%/list2.rb
@@ -208,6 +206,7 @@
 %%PORTDOCS%%@dirrm %%RUBY_EXAMPLESDIR%%/optparse
 %%PORTDOCS%%@dirrm %%RUBY_EXAMPLESDIR%%/openssl
 %%PORTDOCS%%@dirrm %%RUBY_EXAMPLESDIR%%/logger
+%%PORTDOCS%%@dirrm %%RUBY_EXAMPLESDIR%%/erb
 %%PORTDOCS%%@dirrm %%RUBY_EXAMPLESDIR%%/drb
 %%PORTDOCS%%@dirrm %%RUBY_EXAMPLESDIR%%/dl
 %%PORTDOCS%%@dirrm %%RUBY_EXAMPLESDIR%%/curses
@@ -292,7 +291,6 @@
 %%RUBY_LIBDIR%%/%%RUBY_ARCH%%/dl.so
 %%RUBY_LIBDIR%%/%%RUBY_ARCH%%/dlconfig.h
 %%RUBY_LIBDIR%%/%%RUBY_ARCH%%/dln.h
-%%RUBY_LIBDIR%%/%%RUBY_ARCH%%/enumerator.so
 %%RUBY_LIBDIR%%/%%RUBY_ARCH%%/env.h
 %%RUBY_LIBDIR%%/%%RUBY_ARCH%%/etc.so
 %%RUBY_LIBDIR%%/%%RUBY_ARCH%%/fcntl.so
@@ -394,6 +392,7 @@
 %%RUBY_LIBDIR%%/openssl/buffering.rb
 %%RUBY_LIBDIR%%/openssl/cipher.rb
 %%RUBY_LIBDIR%%/openssl/digest.rb
+%%RUBY_LIBDIR%%/openssl/pkcs7.rb
 %%RUBY_LIBDIR%%/openssl/ssl.rb
 %%RUBY_LIBDIR%%/openssl/x509.rb
 %%RUBY_LIBDIR%%/openssl.rb
@@ -532,17 +531,31 @@
 %%RUBY_LIBDIR%%/rss/0.9.rb
 %%RUBY_LIBDIR%%/rss/1.0.rb
 %%RUBY_LIBDIR%%/rss/2.0.rb
+%%RUBY_LIBDIR%%/rss/atom.rb
 %%RUBY_LIBDIR%%/rss/content.rb
 %%RUBY_LIBDIR%%/rss/converter.rb
 %%RUBY_LIBDIR%%/rss/dublincore.rb
 %%RUBY_LIBDIR%%/rss/image.rb
+%%RUBY_LIBDIR%%/rss/itunes.rb
+%%RUBY_LIBDIR%%/rss/slash.rb
+%%RUBY_LIBDIR%%/rss/xml.rb
+%%RUBY_LIBDIR%%/rss/content/1.0.rb
+%%RUBY_LIBDIR%%/rss/content/2.0.rb
+%%RUBY_LIBDIR%%/rss/dublincore/1.0.rb
+%%RUBY_LIBDIR%%/rss/dublincore/2.0.rb
+%%RUBY_LIBDIR%%/rss/dublincore/atom.rb
 %%RUBY_LIBDIR%%/rss/maker/0.9.rb
 %%RUBY_LIBDIR%%/rss/maker/1.0.rb
 %%RUBY_LIBDIR%%/rss/maker/2.0.rb
+%%RUBY_LIBDIR%%/rss/maker/atom.rb
 %%RUBY_LIBDIR%%/rss/maker/base.rb
 %%RUBY_LIBDIR%%/rss/maker/content.rb
 %%RUBY_LIBDIR%%/rss/maker/dublincore.rb
+%%RUBY_LIBDIR%%/rss/maker/entry.rb
+%%RUBY_LIBDIR%%/rss/maker/feed.rb
 %%RUBY_LIBDIR%%/rss/maker/image.rb
+%%RUBY_LIBDIR%%/rss/maker/itunes.rb
+%%RUBY_LIBDIR%%/rss/maker/slash.rb
 %%RUBY_LIBDIR%%/rss/maker/syndication.rb
 %%RUBY_LIBDIR%%/rss/maker/taxonomy.rb
 %%RUBY_LIBDIR%%/rss/maker/trackback.rb
@@ -567,6 +580,7 @@
 %%RUBY_LIBDIR%%/runit/testsuite.rb
 %%RUBY_LIBDIR%%/runit/topublic.rb
 %%RUBY_LIBDIR%%/scanf.rb
+%%RUBY_LIBDIR%%/securerandom.rb
 %%RUBY_LIBDIR%%/set.rb
 %%RUBY_LIBDIR%%/sha1.rb
 %%RUBY_LIBDIR%%/shell/builtin-command.rb
@@ -655,6 +669,7 @@
 %%RUBY_LIBDIR%%/uri/http.rb
 %%RUBY_LIBDIR%%/uri/https.rb
 %%RUBY_LIBDIR%%/uri/ldap.rb
+%%RUBY_LIBDIR%%/uri/ldaps.rb
 %%RUBY_LIBDIR%%/uri/mailto.rb
 %%RUBY_LIBDIR%%/uri.rb
 %%RUBY_LIBDIR%%/weakref.rb
@@ -833,6 +848,8 @@
 @dirrm %%RUBY_LIBDIR%%/shell
 @dirrm %%RUBY_LIBDIR%%/runit/cui
 @dirrm %%RUBY_LIBDIR%%/runit
+@dirrm %%RUBY_LIBDIR%%/rss/dublincore
+@dirrm %%RUBY_LIBDIR%%/rss/content
 @dirrm %%RUBY_LIBDIR%%/rss/maker
 @dirrm %%RUBY_LIBDIR%%/rss
 @dirrm %%RUBY_LIBDIR%%/rinda
@@ -882,4 +899,7 @@
 @dirrmtry %%RUBY_SITEARCHLIBDIR%%
 @dirrmtry %%RUBY_SITELIBDIR%%
 @dirrmtry lib/ruby/site_ruby
+@dirrmtry lib/ruby/vendor_ruby/%%RUBY_VER%%/%%RUBY_ARCH%%
+@dirrmtry lib/ruby/vendor_ruby/%%RUBY_VER%%
+@dirrmtry lib/ruby/vendor_ruby
 @dirrmtry lib/ruby
Index: lang/ruby18/files/patch-io.c
===================================================================
RCS file: /usr1/freebsd/cvsroot/ports/lang/ruby18/files/patch-io.c,v
retrieving revision 1.1
diff -u -r1.1 patch-io.c
--- lang/ruby18/files/patch-io.c	2 May 2006 12:15:24 -0000	1.1
+++ lang/ruby18/files/patch-io.c	21 Jun 2008 14:11:22 -0000
@@ -1,6 +1,6 @@
---- io.c.orig	Thu Mar  2 22:15:47 2006
-+++ io.c	Thu Mar  2 22:16:58 2006
-@@ -4682,8 +4682,9 @@
+--- io.c.orig	2008-06-09 03:20:37.000000000 +0900
++++ io.c	2008-06-21 23:10:15.000000000 +0900
+@@ -4970,8 +4970,9 @@
  #if !defined(MSDOS) && !defined(__human68k__)
  static int
  io_cntl(fd, cmd, narg, io_p)
@@ -11,12 +11,12 @@
  {
      int retval;
  
-@@ -4713,7 +4714,7 @@
+@@ -5001,7 +5002,7 @@
      int io_p;
  {
  #if !defined(MSDOS) && !defined(__human68k__)
 -    int cmd = NUM2ULONG(req);
 +    unsigned long cmd = NUM2ULONG(req);
-     OpenFile *fptr;
+     rb_io_t *fptr;
      long len = 0;
      long narg = 0;
Index: lang/ruby18/files/patch-lib_webrick_httpservlet_filehandler.rb
===================================================================
RCS file: lang/ruby18/files/patch-lib_webrick_httpservlet_filehandler.rb
diff -N lang/ruby18/files/patch-lib_webrick_httpservlet_filehandler.rb
--- lang/ruby18/files/patch-lib_webrick_httpservlet_filehandler.rb	6 Apr 2008 10:29:54 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,51 +0,0 @@
---- lib/webrick/httpservlet/filehandler.rb	2007-02-13 02:01:19.000000000 +0300
-+++ lib/webrick/httpservlet/filehandler.rb	2008-03-03 17:36:04.000000000 +0300
-@@ -163,6 +163,7 @@
-             end
-           end
-         end
-+        prevent_directory_traversal(req, res)
-         super(req, res)
-       end
- 
-@@ -198,6 +199,22 @@
- 
-       private
- 
-+      def prevent_directory_traversal(req, res)
-+        # Preventing directory traversal on DOSISH platforms;
-+        # Backslashes (0x5c) in path_info are not interpreted as special
-+        # character in URI notation. So the value of path_info should be
-+        # normalize before accessing to the filesystem.
-+        if File::ALT_SEPARATOR
-+          # File.expand_path removes the trailing path separator.
-+          # Adding a character is a workaround to save it.
-+          #  File.expand_path("/aaa/")        #=> "/aaa"
-+          #  File.expand_path("/aaa/" + "x")  #=> "/aaa/x"
-+          expanded = File.expand_path(req.path_info + "x")
-+          expanded[-1, 1] = ""  # remove trailing "x"
-+          req.path_info = expanded
-+        end
-+      end
-+
-       def exec_handler(req, res)
-         raise HTTPStatus::NotFound, "`#{req.path}' not found" unless @root
-         if set_filename(req, res)
-@@ -256,7 +273,7 @@
- 
-       def check_filename(req, res, name)
-         @options[:NondisclosureName].each{|pattern|
--          if File.fnmatch("/#{pattern}", name)
-+          if File.fnmatch("/#{pattern}", name, File::FNM_CASEFOLD)
-             @logger.warn("the request refers nondisclosure name `#{name}'.")
-             raise HTTPStatus::NotFound, "`#{req.path}' not found."
-           end
-@@ -310,7 +327,7 @@
- 
-       def nondisclosure_name?(name)
-         @options[:NondisclosureName].each{|pattern|
--          if File.fnmatch(pattern, name)
-+          if File.fnmatch(pattern, name, File::FNM_CASEFOLD)
-             return true
-           end
-         }
Index: lang/ruby18/files/patch-mkmf.rb
===================================================================
RCS file: /usr1/freebsd/cvsroot/ports/lang/ruby18/files/patch-mkmf.rb,v
retrieving revision 1.6
diff -u -r1.6 patch-mkmf.rb
--- lang/ruby18/files/patch-mkmf.rb	1 Oct 2006 19:10:48 -0000	1.6
+++ lang/ruby18/files/patch-mkmf.rb	21 Jun 2008 14:25:04 -0000
@@ -1,20 +1,20 @@
---- lib/mkmf.rb.orig	Thu Aug 17 09:47:50 2006
-+++ lib/mkmf.rb	Wed Aug 30 13:14:44 2006
-@@ -113,8 +113,12 @@
+--- lib/mkmf.rb.orig	2008-05-29 20:23:36.000000000 +0900
++++ lib/mkmf.rb	2008-06-21 23:21:27.000000000 +0900
+@@ -132,8 +132,12 @@
  
  topdir = File.dirname(libdir = File.dirname(__FILE__))
  extdir = File.expand_path("ext", topdir)
 +setuparchdir = topdir + \
 +  "/#{Config::CONFIG["ruby_version"]}/#{Config::CONFIG["arch"]}"
  $extmk = File.expand_path($0)[0, extdir.size+1] == extdir+"/"
--if not $extmk and File.exist?(Config::CONFIG["archdir"] + "/ruby.h")
+-if not $extmk and File.exist?(($hdrdir = Config::CONFIG["archdir"]) + "/ruby.h")
 +if not $extmk and File.exist?(setuparchdir + "/ruby.h")
 +  $hdrdir = $topdir = setuparchdir
-+elsif not $extmk and File.exist?(Config::CONFIG["archdir"] + "/ruby.h")
-   $hdrdir = $topdir = Config::CONFIG["archdir"]
- elsif File.exist?(($top_srcdir ||= topdir)  + "/ruby.h") and
++elsif not $extmk and File.exist?(($hdrdir = Config::CONFIG["archdir"]) + "/ruby.h")
+   $topdir = $hdrdir
+ elsif File.exist?(($hdrdir = ($top_srcdir ||= topdir))  + "/ruby.h") and
      File.exist?(($topdir ||= Config::CONFIG["topdir"]) + "/config.h")
-@@ -1281,7 +1285,7 @@
+@@ -1554,7 +1558,7 @@
  
    mfile.print <<-SITEINSTALL
  
Index: lang/ruby18/files/patch-rexml-update
===================================================================
RCS file: lang/ruby18/files/patch-rexml-update
diff -N lang/ruby18/files/patch-rexml-update
--- lang/ruby18/files/patch-rexml-update	6 Apr 2008 10:29:54 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,345 +0,0 @@
-diff -ruN ruby-1.8.6-p111/lib/rexml/attribute.rb ruby-1.8.6-p114/lib/rexml/attribute.rb
---- lib/rexml/attribute.rb	2007-07-28 06:46:08.000000000 +0400
-+++ lib/rexml/attribute.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -50,7 +50,7 @@
- 					@element = first.element
- 				end
- 			elsif first.kind_of? String
--				@element = parent if parent.kind_of? Element
-+				@element = parent
- 				self.name = first
- 				@normalized = second.to_s
- 			else
-diff -ruN ruby-1.8.6-p111/lib/rexml/document.rb ruby-1.8.6-p114/lib/rexml/document.rb
---- lib/rexml/document.rb	2007-07-28 06:46:08.000000000 +0400
-+++ lib/rexml/document.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -66,6 +66,7 @@
- 		def add( child )
- 			if child.kind_of? XMLDecl
- 				@children.unshift child
-+        child.parent = self
- 			elsif child.kind_of? DocType
-         # Find first Element or DocType node and insert the decl right 
-         # before it.  If there is no such node, just insert the child at the
-@@ -183,7 +184,7 @@
-         output = Output.new( output, xml_decl.encoding )
-       end
-       formatter = if indent > -1
--          if transitive
-+          if trans
-             REXML::Formatters::Transitive.new( indent, ie_hack )
-           else
-             REXML::Formatters::Pretty.new( indent, ie_hack )
-diff -ruN ruby-1.8.6-p111/lib/rexml/element.rb ruby-1.8.6-p114/lib/rexml/element.rb
---- lib/rexml/element.rb	2007-07-28 06:46:08.000000000 +0400
-+++ lib/rexml/element.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -553,6 +553,7 @@
-     def attribute( name, namespace=nil )
-       prefix = nil
-       prefix = namespaces.index(namespace) if namespace
-+      prefix = nil if prefix == 'xmlns'
-       attributes.get_attribute( "#{prefix ? prefix + ':' : ''}#{name}" )
-     end
- 
-@@ -854,15 +855,15 @@
-     #   Source (see Element.initialize).  If not supplied or nil, a
-     #   new, default Element will be constructed
-     # Returns:: the added Element
--    #  a = Element.new 'a'
--    #  a.elements.add Element.new 'b'  #-> <a><b/></a>
--    #  a.elements.add 'c'              #-> <a><b/><c/></a>
-+    #  a = Element.new('a')
-+    #  a.elements.add(Element.new('b'))  #-> <a><b/></a>
-+    #  a.elements.add('c')               #-> <a><b/><c/></a>
-     def add element=nil
-       rv = nil
-       if element.nil?
--        Element.new "", self, @element.context
-+        Element.new("", self, @element.context)
-       elsif not element.kind_of?(Element)
--        Element.new element, self, @element.context
-+        Element.new(element, self, @element.context)
-       else
-         @element << element
-         element.context = @element.context
-diff -ruN ruby-1.8.6-p111/lib/rexml/encoding.rb ruby-1.8.6-p114/lib/rexml/encoding.rb
---- lib/rexml/encoding.rb	2007-07-28 06:46:08.000000000 +0400
-+++ lib/rexml/encoding.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -56,8 +56,13 @@
- 
-     def check_encoding str
-       # We have to recognize UTF-16, LSB UTF-16, and UTF-8
--      return UTF_16 if /\A\xfe\xff/n =~ str
--      return UNILE if /\A\xff\xfe/n =~ str
-+      if str[0] == 0xfe && str[1] == 0xff
-+        str[0,2] = ""
-+        return UTF_16
-+      elsif str[0] == 0xff && str[1] == 0xfe
-+        str[0,2] = ""
-+        return UNILE
-+      end
-       str =~ /^\s*<\?xml\s+version\s*=\s*(['"]).*?\1\s+encoding\s*=\s*(["'])(.*?)\2/um
-       return $3.upcase if $3
-       return UTF_8
-diff -ruN ruby-1.8.6-p111/lib/rexml/parsers/baseparser.rb ruby-1.8.6-p114/lib/rexml/parsers/baseparser.rb
---- lib/rexml/parsers/baseparser.rb	2007-07-28 06:46:08.000000000 +0400
-+++ lib/rexml/parsers/baseparser.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -1,5 +1,7 @@
- require 'rexml/parseexception'
-+require 'rexml/undefinednamespaceexception'
- require 'rexml/source'
-+require 'set'
- 
- module REXML
-   module Parsers
-@@ -24,7 +26,8 @@
-     # Nat Price gave me some good ideas for the API.
-     class BaseParser
-       NCNAME_STR= '[\w:][\-\w\d.]*'
--      NAME_STR= "(?:#{NCNAME_STR}:)?#{NCNAME_STR}"
-+      NAME_STR= "(?:(#{NCNAME_STR}):)?(#{NCNAME_STR})"
-+      UNAME_STR= "(?:#{NCNAME_STR}:)?#{NCNAME_STR}"
- 
-       NAMECHAR = '[\-\w\d\.:]'
-       NAME = "([\\w:]#{NAMECHAR}*)"
-@@ -35,7 +38,7 @@
- 
-       DOCTYPE_START = /\A\s*<!DOCTYPE\s/um
-       DOCTYPE_PATTERN = /\s*<!DOCTYPE\s+(.*?)(\[|>)/um
--      ATTRIBUTE_PATTERN = /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\2/um
-+      ATTRIBUTE_PATTERN = /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\4/um
-       COMMENT_START = /\A<!--/u
-       COMMENT_PATTERN = /<!--(.*?)-->/um
-       CDATA_START = /\A<!\[CDATA\[/u
-@@ -45,7 +48,7 @@
-       XMLDECL_PATTERN = /<\?xml\s+(.*?)\?>/um
-       INSTRUCTION_START = /\A<\?/u
-       INSTRUCTION_PATTERN = /<\?(.*?)(\s+.*?)?\?>/um
--      TAG_MATCH = /^<((?>#{NAME_STR}))\s*((?>\s+#{NAME_STR}\s*=\s*(["']).*?\3)*)\s*(\/)?>/um
-+      TAG_MATCH = /^<((?>#{NAME_STR}))\s*((?>\s+#{UNAME_STR}\s*=\s*(["']).*?\5)*)\s*(\/)?>/um
-       CLOSE_MATCH = /^\s*<\/(#{NAME_STR})\s*>/um
- 
-       VERSION = /\bversion\s*=\s*["'](.*?)['"]/um
-@@ -133,6 +136,7 @@
-         @tags = []
-         @stack = []
-         @entities = []
-+        @nsstack = []
-       end
- 
-       def position
-@@ -188,6 +192,7 @@
-         end
-         return [ :end_document ] if empty?
-         return @stack.shift if @stack.size > 0
-+        #STDERR.puts @source.encoding
-         @source.read if @source.buffer.size<2
-         #STDERR.puts "BUFFER = #{@source.buffer.inspect}"
-         if @document_status == nil
-@@ -213,6 +218,7 @@
-             return [ :processing_instruction, *@source.match(INSTRUCTION_PATTERN, true)[1,2] ]
-           when DOCTYPE_START
-             md = @source.match( DOCTYPE_PATTERN, true )
-+            @nsstack.unshift(curr_ns=Set.new)
-             identity = md[1]
-             close = md[2]
-             identity =~ IDENTITY
-@@ -288,6 +294,9 @@
-                 val = attdef[3]
-                 val = attdef[4] if val == "#FIXED "
-                 pairs[attdef[0]] = val
-+                if attdef[0] =~ /^xmlns:(.*)/
-+                  @nsstack[0] << $1
-+                end
-               end
-             end
-             return [ :attlistdecl, element, pairs, contents ]
-@@ -312,6 +321,7 @@
-         begin
-           if @source.buffer[0] == ?<
-             if @source.buffer[1] == ?/
-+              @nsstack.shift
-               last_tag = @tags.pop
-               #md = @source.match_to_consume( '>', CLOSE_MATCH)
-               md = @source.match( CLOSE_MATCH, true )
-@@ -345,19 +355,47 @@
-                 raise REXML::ParseException.new("missing attribute quote", @source) if @source.match(MISSING_ATTRIBUTE_QUOTES )
-                 raise REXML::ParseException.new("malformed XML: missing tag start", @source) 
-               end
--              attrs = []
--              if md[2].size > 0
--                attrs = md[2].scan( ATTRIBUTE_PATTERN )
-+              attributes = {}
-+              prefixes = Set.new
-+              prefixes << md[2] if md[2]
-+              @nsstack.unshift(curr_ns=Set.new)
-+              if md[4].size > 0
-+                attrs = md[4].scan( ATTRIBUTE_PATTERN )
-                 raise REXML::ParseException.new( "error parsing attributes: [#{attrs.join ', '}], excess = \"#$'\"", @source) if $' and $'.strip.size > 0
-+                attrs.each { |a,b,c,d,e| 
-+                  if b == "xmlns"
-+                    if c == "xml"
-+                      if d != "http://www.w3.org/XML/1998/namespace"
-+                        msg = "The 'xml' prefix must not be bound to any other namespace "+
-+                        "(http://www.w3.org/TR/REC-xml-names/#ns-decl)"
-+                        raise REXML::ParseException.new( msg, @source, self )
-+                      end
-+                    elsif c == "xmlns"
-+                      msg = "The 'xmlns' prefix must not be declared "+
-+                      "(http://www.w3.org/TR/REC-xml-names/#ns-decl)"
-+                      raise REXML::ParseException.new( msg, @source, self)
-+                    end
-+                    curr_ns << c
-+                  elsif b
-+                    prefixes << b unless b == "xml"
-+                  end
-+                  attributes[a] = e 
-+                }
-               end
-         
--              if md[4]
-+              # Verify that all of the prefixes have been defined
-+              for prefix in prefixes
-+                unless @nsstack.find{|k| k.member?(prefix)}
-+                  raise UndefinedNamespaceException.new(prefix,@source,self)
-+                end
-+              end
-+
-+              if md[6]
-                 @closed = md[1]
-+                @nsstack.shift
-               else
-                 @tags.push( md[1] )
-               end
--              attributes = {}
--              attrs.each { |a,b,c| attributes[a] = c }
-               return [ :start_element, md[1], attributes ]
-             end
-           else
-@@ -371,6 +409,8 @@
-             # return PullEvent.new( :text, md[1], unnormalized )
-             return [ :text, md[1] ]
-           end
-+        rescue REXML::UndefinedNamespaceException
-+          raise
-         rescue REXML::ParseException
-           raise
-         rescue Exception, NameError => error
-diff -ruN ruby-1.8.6-p111/lib/rexml/parsers/treeparser.rb ruby-1.8.6-p114/lib/rexml/parsers/treeparser.rb
---- lib/rexml/parsers/treeparser.rb	2007-02-13 02:01:19.000000000 +0300
-+++ lib/rexml/parsers/treeparser.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -1,4 +1,5 @@
- require 'rexml/validation/validationexception'
-+require 'rexml/undefinednamespaceexception'
- 
- module REXML
-   module Parsers
-@@ -29,8 +30,7 @@
-               return
-             when :start_element
-               tag_stack.push(event[1])
--              # find the observers for namespaces
--              @build_context = @build_context.add_element( event[1], event[2] )
-+              el = @build_context = @build_context.add_element( event[1], event[2] )
-             when :end_element
-               tag_stack.pop
-               @build_context = @build_context.parent
-@@ -86,6 +86,8 @@
-           end
-         rescue REXML::Validation::ValidationException
-           raise
-+        rescue REXML::UndefinedNamespaceException
-+          raise
-         rescue
-           raise ParseException.new( $!.message, @parser.source, @parser, $! )
-         end
-diff -ruN ruby-1.8.6-p111/lib/rexml/rexml.rb ruby-1.8.6-p114/lib/rexml/rexml.rb
---- lib/rexml/rexml.rb	2007-07-28 17:24:46.000000000 +0400
-+++ lib/rexml/rexml.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -1,3 +1,4 @@
-+# -*- encoding: utf-8 -*-
- # REXML is an XML toolkit for Ruby[http://www.ruby-lang.org], in Ruby.
- #
- # REXML is a _pure_ Ruby, XML 1.0 conforming,
-@@ -10,8 +11,9 @@
- #
- # Main page:: http://www.germane-software.com/software/rexml
- # Author:: Sean Russell <serATgermaneHYPHENsoftwareDOTcom>
--# Version:: 3.1.7.1
--# Date:: 2007/209
-+# Version:: 3.1.7.2
-+# Date:: 2007/275
-+# Revision:: $Revision: 13815 $
- # 
- # This API documentation can be downloaded from the REXML home page, or can
- # be accessed online[http://www.germane-software.com/software/rexml_doc]
-@@ -20,10 +22,10 @@
- # or can be accessed 
- # online[http://www.germane-software.com/software/rexml/docs/tutorial.html]
- module REXML
--  COPYRIGHT = "Copyright © 2001-2007 Sean Russell <ser@germane-software.com>"
--  DATE = "2007/209"
--  VERSION = "3.1.7.1"
--  REVISION = "$Revision: 1270$".gsub(/\$Revision:|\$/,'').strip
-+  COPYRIGHT = "Copyright \xC2\xA9 2001-2006 Sean Russell <ser@germane-software.com>"
-+  VERSION = "3.1.7.2"
-+  DATE = "2007/275"
-+  REVISION = "$Revision: 13815 $".gsub(/\$Revision:|\$/,'').strip
- 
-   Copyright = COPYRIGHT
-   Version = VERSION
-diff -ruN ruby-1.8.6-p111/lib/rexml/source.rb ruby-1.8.6-p114/lib/rexml/source.rb
---- lib/rexml/source.rb	2007-07-28 06:46:08.000000000 +0400
-+++ lib/rexml/source.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -17,8 +17,8 @@
-       elsif arg.kind_of? Source
-         arg
-       else
--        raise "#{source.class} is not a valid input stream.  It must walk \n"+
--        "like either a String, IO, or Source."
-+        raise "#{arg.class} is not a valid input stream.  It must walk \n"+
-+          "like either a String, an IO, or a Source."
-       end
-     end
-   end
-@@ -134,6 +134,7 @@
-     def initialize(arg, block_size=500, encoding=nil)
-       @er_source = @source = arg
-       @to_utf = false
-+
-       # Determining the encoding is a deceptively difficult issue to resolve.
-       # First, we check the first two bytes for UTF-16.  Then we
-       # assume that the encoding is at least ASCII enough for the '>', and
-@@ -145,13 +146,16 @@
-       str = @source.read( 2 )
-       if encoding
-         self.encoding = encoding
--      elsif /\A(?:\xfe\xff|\xff\xfe)/n =~ str
--        self.encoding = check_encoding( str )
--      elsif (0xef == str[0] && 0xbb == str[1])
-+      elsif 0xfe == str[0] && 0xff == str[1]
-+        @line_break = "\000>"
-+      elsif 0xff == str[0] && 0xfe == str[1]
-+        @line_break = ">\000"
-+      elsif 0xef == str[0] && 0xbb == str[1]
-         str += @source.read(1)
-         str = '' if (0xbf == str[2])
-+        @line_break = ">"
-       else
--        @line_break = '>'
-+        @line_break = ">"
-       end
-       super str+@source.readline( @line_break )
-     end
-diff -ruN ruby-1.8.6-p111/lib/rexml/undefinednamespaceexception.rb ruby-1.8.6-p114/lib/rexml/undefinednamespaceexception.rb
---- lib/rexml/undefinednamespaceexception.rb	1970-01-01 03:00:00.000000000 +0300
-+++ lib/rexml/undefinednamespaceexception.rb	2007-11-04 07:50:15.000000000 +0300
-@@ -0,0 +1,8 @@
-+require 'rexml/parseexception'
-+module REXML
-+  class UndefinedNamespaceException < ParseException
-+    def initialize( prefix, source, parser )
-+      super( "Undefined prefix #{prefix} found" )
-+    end
-+  end
-+end
Index: lang/ruby-mode.el/pkg-plist
===================================================================
RCS file: /usr1/freebsd/cvsroot/ports/lang/ruby-mode.el/pkg-plist,v
retrieving revision 1.6
diff -u -r1.6 pkg-plist
--- lang/ruby-mode.el/pkg-plist	3 Apr 2007 21:57:48 -0000	1.6
+++ lang/ruby-mode.el/pkg-plist	21 Jun 2008 16:05:41 -0000
@@ -6,9 +6,9 @@
 lib/xemacs/site-lisp/rubydb3x.el
 %%RUBY_ELISPDIR%%/README
 %%RUBY_ELISPDIR%%/inf-ruby.el
-%%RUBY_ELISPDIR%%/rdebug.el
 %%RUBY_ELISPDIR%%/ruby-electric.el
 %%RUBY_ELISPDIR%%/ruby-mode.el
+%%RUBY_ELISPDIR%%/ruby-style.el
 %%RUBY_ELISPDIR%%/rubydb2x.el
 %%RUBY_ELISPDIR%%/rubydb3x.el
 @dirrmtry lib/xemacs/site-lisp
--- patch-ruby18 ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080621162305.89AE017013>