convert the body twice. [ruby-core:08828]
* lib/rexml/encoding.rb (REXML::Encoding::encoding):
Encoding#encoding= to return boolean value to tell if the body
is really converted or not.
* lib/rexml/encoding.rb (REXML::Encoding::encoding): Specific
conversion library (e.g. rexml/encodings/UTF-16.rb) to have
higher preceding.
* lib/rexml/encodings/UTF-16.rb (REXML::Encoding::decode_utf16):
UTF-16#decode_utf16 should work strings without BOM.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
passes all of REXML's native tests as well as a couple of others, and should
fix potential threading issues.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* The main purpose for this change is to get a fix in for nasty bug in XPath.
In the new code for the descendant-or-self axis, the document order code
was calling the wrong method to do node comparisons, causing a terrible
overhead that slowed the axis down to the point where it was unusable.
This is a common axis, also known as '//', so this fix is critical.
* Using Element#text= on a non-Text, non-String argument caused an error.
This has been changed so that the behavior is like puts() -- to_s() is
called on the object first.
* Refactored the pretty-printing code a little.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
@@ SAX2 listener bug fixes @@
@@ Undid a code change that caused a 10x speed regression @@
@@ Indentation fixes, and a new word wrapping feature for text nodes
was contributed by Devin Bayer (documentation forthcoming; see the
change logs for now) @@
The XPath bug fix is really ugly and inefficient, but I spent two days hacking
at it and this was the best I could come up with.
The SAX2 listener fixes had to do with crashes in certain conditions, like when
there was a carriage return at the end of a document
Several people submitted patches for the speed regression; it is embarrassing
how long it took me to get around to looking at this. To this day, I don't
know where the offending code came from.
Encoding fixes
Added a contributed word wrapping option for text formatting. Devin Bayer
contributed this. Here's his comment:
"Setting :wordwrapping to :all, wordwraps all text nodes longer than 60
characters.
Setting :indentstyle to aString, make aString used as indentation,
instead of the default ' '.
And as long as :respect_whitespace isn't set for the element,
multiline text nodes will be indented."
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
[ruby-dev:22329]
* io.c (rb_io_ungetc): need fflush before ungetc if write buffer
is filled. [ruby-dev:22330]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5259 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/ruby/test_system.rb: num of asserts depended on running dir.
* test/xsd/test_noencoding.rb: rexml + without iconv/uconv cannot
handle euc-jp. install iconv, uconv or xmlscan.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Took out the duplicate Shift-JIS entries, for OSes that don't understand
case sensitive file names.
* Fixed some bugs in the encodings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
are deprecated, but I need some Shift-JIS encoded documents to test against
before I remove them.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5145 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
should be deprecated, but I need a Shift-JIS encoded XML file to test
against, first.
* Added support for maintaining external entity occurances in DTDs
* Deprecated the use of Document::DECLARATION. The new default declaration
can be gotten with XMLDecl::default()
* Refactored the encoding support code. It should be more robust now,
and fixes a few bugs.
* The XPath string() function now deals with Element nodes properly.
* Serialization with Output objects now works as would be expected.
* Various code cleanups, some reducing the number of warnings that Ruby 1.8.x
produces with REXML.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5144 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
for encoding changes. This should be the case on all 1.8 installations.
When it isn't found (<1.6), the native REXML encoding mechanism is used.
This cleaned out some files, and tightened up the code a bit; and iconv
should be faster than the pure Ruby code.
* Changed deprecated assert_not_nil to assert throughout the tests.
* Parse exceptions are a little more verbose, and extend RuntimeError.
* Bug fixes to XPathParser
* The Light API is still shifting, like the sands of the desert.
* Fixed a new Ruby 1.8.0 warning, added some speed optimizations, and
tightened error reporting in the base parser
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
section. [ruby-dev:20490]
* eval.c (compile): put rb_compile_string() in a thread critical
section.
* variable.c (rb_const_get_0): should not warn if constant is not
defined. (ruby-bugs-ja PR#509)
* bignum.c (rb_big2dbl): give a warning on overflow.
(ruby-bugs-ja PR#510)
* util.c (ruby_strtod): change MDMAXEXPT from 511 to 308.
* pack.c (utf8_to_uv): long is sufficient. LONG_LONG is not
required.
* bignum.c (rb_big2str): support 32 bit (without `long long' type)
machines. (ruby-bugs-ja PR#512)
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e