Skip to content
Snippets Groups Projects
  1. Mar 19, 2015
  2. Mar 18, 2015
    • Arseny Kapoulkine's avatar
      Do not emit surrounding whitespace for text nodes · 5f996eba
      Arseny Kapoulkine authored
      Previously we omitted extra whitespace for single PCDATA/CDATA children, but in
      mixed content there was extra indentation before/after text nodes.
      
      One of the problems with that is that the text that you saved is not exactly
      the same as the parsing result using default flags (parse_trim_pcdata helps).
      
      Another problem is that parse-format cycles do not have a fixed point for mixed
      content - the result expands indefinitely. Some XML libraries, like Python
      minidom, have the same issue, but this is definitely a problem.
      
      Pretty-printing mixed content is hard. It seems that the only other sensible
      choice is to switch mixed content nodes to raw formatting. In a way the code in
      this change is a weaker version of that - it removes indentation around text
      nodes but still keeps it around element siblings/children.
      
      Thus we can switch to mixed-raw formatting at some point later, which will be
      a superset of the current behavior.
      
      To do this we have to either switch at the first text node (.NET XmlDocument
      does that), or scan the children of each element for a possible text node and
      switch before we output the first child.
      
      The former behavior seems non-intuitive (and a bit broken); unfortunately, the
      latter behavior can cost up to 20% of the output time for trees *without* mixed
      content.
      
      Fixes #13.
      5f996eba
  3. Mar 14, 2015
    • Arseny Kapoulkine's avatar
      tests: Fix truncation test · 51da129b
      Arseny Kapoulkine authored
      data/truncation.xml was corrupted at some point and was not actually valid.
      Fix the file and make the test fail if we can't parse truncation.xml at all.
      51da129b
  4. Mar 13, 2015
  5. Mar 10, 2015
  6. Mar 05, 2015
  7. Mar 04, 2015
    • Arseny Kapoulkine's avatar
      tests: Fix XPath string comparison · 5a848de0
      Arseny Kapoulkine authored
      Also add new tests for translate. These are technically redundant since other
      tests would catch the bug with the fixed comparison, but more tests is better.
      5a848de0
    • Arseny Kapoulkine's avatar
      Fix string length for translate and normalize-space · cb04ab27
      Arseny Kapoulkine authored
      The implementations generated a string with an internal null terminator; this
      went unnoticed since unit test string verification did not perform string
      equality check properly (it compared XPath string result as a C-string, thus
      stopping at the first null terminator).
      
      Fixes #36.
      cb04ab27
  8. Mar 02, 2015
  9. Feb 12, 2015
  10. Jan 24, 2015
  11. Jan 18, 2015
  12. Jan 17, 2015
  13. Jan 16, 2015
  14. Jan 10, 2015
    • Arseny Kapoulkine's avatar
      Simplify header-only mode usage · f3e42969
      Arseny Kapoulkine authored
      It's sufficient to define PUGIXML_HEADER_ONLY anywhere now, source is included
      automatically.
      
      This is a second attempt; this time it includes a workaround for QMake bug
      that caused it to generate incorrect Makefile.
      f3e42969
  15. Jan 06, 2015
  16. Dec 14, 2014
    • Arseny Kapoulkine's avatar
      Don't use off64_t/_wfopen on MinGW32 in C++11 mode · ff16dbdd
      Arseny Kapoulkine authored
      Unfortunately, standard headers on MinGW32 insist on undefining off64_t
      and _wfopen extensions if __STRICT_ANSI__ is true (e.g. C++11 mode). This
      leads to compilation errors since b7a1fecc started to use _wfopen in strict
      mode. That change erroneously checked GCC version - however, the version
      itself is irrelevant; the actual criteria is whether mingw64 runtime is
      used.
      
      off64_t is not useful on MinGW32 since we only need it to open large files
      on 64-bit platforms; unfortunately, the lack of _wfopen means we won't be
      able to support wide-char paths on Windows for MinGW32.
      
      Fixes #24.
      v1.5
      ff16dbdd
  17. Nov 27, 2014
  18. Nov 26, 2014
  19. Nov 25, 2014
  20. Nov 21, 2014
    • Arseny Kapoulkine's avatar
      Fix node_declaration copying with empty name · 125aa550
      Arseny Kapoulkine authored
      node_copy_string relied on the fact that target node had an empty name and
      value. Normally this is a safe assumption (and a good one to make since it
      makes copying faster), however it was not checked and there was one case when
      it did not hold.
      
      Since we're reusing the logic for inserting nodes, newly inserted declaration
      nodes had the name set automatically to xml, which in our case violates the
      assumption and is counter-productive since we'll override the name right after
      setting it.
      
      For now the best solution is to do the same insertion manually - that results
      in some code duplication that we can refactor later (same logic is partially
      shared by _move variants anyway so on a level duplicating is not that bad).
      125aa550
    • Arseny Kapoulkine's avatar
      Refactor node type checks for attribute insertion · a0dc4681
      Arseny Kapoulkine authored
      Add allow_insert_attribute (similar to allow_insert_child).
      a0dc4681
Loading