@ 260915.5

230818.1 · 73694bf7e3c1608f77b62214ea70e587d47d26e9

released 4.0.0

improved and optimized internals: faster async output, removed redundant binary file checking, removed "rest line" buffering, enlarged input buffer, faster '' pattern matching, removed redundant color escape code output, -Q=DELAY instead of -QDELAY so -Q2 is -Q -2 as expected, and --index search

reading declarations

README.md

@@ -1,18 +1,19 @@ [![build status][ci-image]][ci-url] [![license][bsd-3-image]][bsd-3-url] -New ultra-fast ugrep 3.12 with more features---------------------------------------------+New ugrep 4.0+-------------  Ugrep is like grep, but faster, user-friendly, and equipped with must-have features.  Ugrep's speed and features beat grep, ripgrep, silver searcher, ack, sift, etc. -New faster ugrep 3.12.6 and new **ugrep-indexer** tool to accelerate search with file system indexing.  Visit [GitHub ugrep-indexer](https://github.com/Genivia/ugrep-indexer) for details.+New faster ugrep 4.0 and new **ugrep-indexer** tool to speed up search with file system indexing.  Visit [GitHub ugrep-indexer](https://github.com/Genivia/ugrep-indexer) for details. -See [how to install ugrep](#install) on your system.+See [how to install ugrep](#install) on your system.  Ugrep is always free.  The ugrep tools include the following powerful commands:+ - **ug** for interactive use with a .ugrep configuration file with your preferences located in the working directory or home directory (run 'ug --save-config' to create a .ugrep file you can edit)-- **ug+** for interactive use, also searches pdfs, documents, e-books, image metadata - **ugrep** for batch use+- **ug+** for interactive use, also searches pdfs, documents, e-books, image metadata - **ugrep+** for batch use, also searches pdfs, documents, e-books, image metadata  *Option -Q opens a query TUI to search files as you type!*@@ -23,36 +24,38 @@ Development roadmap -------------------  - my highest priority is testing and quality assurance to continue to make sure ugrep has no bugs and is reliable-- make ugrep even faster, see [my latest blog article](https://www.genivia.com/ugrep.html) demonstrating with a reproducible benchmark that ugrep beats GNU grep and ripgrep in terms of raw performance-- listen to users to continue to improve ugrep with new and updated features-- share reproducible performance data with the community+- listen to users to continue to add new and updated features - improve the interactive TUI with a split screen+- make ugrep even faster and report on progress, see [my latest article](https://www.genivia.com/ugrep.html)+- share reproducible performance data with the community - add file indexing to speed up cold search performance, see [ugrep-indexer](https://github.com/Genivia/ugrep-indexer)  Overview -------- -- Supports all GNU/BSD grep standard options; ugrep is a faster [compatible replacement](#grep) for GNU/BSD grep+Why use ugrep?++- Compatible with the GNU grep command options and output, but faster and with a lot more features -- Matches Unicode patterns by default in UTF-8, UTF-16, UTF-32 encoded files+- Matches Unicode patterns by default and automatically searches UTF-8, UTF-16 and UTF-32 encoded files  - Matches multiple lines with `\n` or `\R` in regex patterns, *no special options are required to do so!*  - Built-in help: `ug --help`, where `ug --help WHAT` displays options related to `WHAT` you are looking for -  💡**ProTip** try `ug --help regex`, `ug --help globs`, `ug --help fuzzy`, `ug --help format`.+  💡 try `ug --help regex`, `ug --help globs`, `ug --help fuzzy`, `ug --help format`.  - User-friendly with sensible defaults and customizable [configuration files](#config) used by the `ug` command intended for interactive use that loads a .ugrep configuration file with your preferences        ug PATTERN ...                         ugrep --config PATTERN ... -  💡**ProTip** `ug --save-config ...options-you-want-to-save...` saves a .ugrep config file in the working directory.+  💡 `ug --save-config ...options-you-want-to-save...` saves a .ugrep config file in the working directory.  - Interactive [query TUI](#query), press F1 or CTRL-Z for help and TAB/SHIFT-TAB to navigate to dirs and files        ug -Q                                  ug -Q -e PATTERN     -  💡**ProTip** `-Q` replaces `PATTERN` on the command line to type your patterns interactively instead.  Specify `-e PATTERN` to search and edit the `PATTERN` in the TUI.  For quicker search responses to keypresses, try `-Q1` (fast, 100ms delay) to `-Q5` (default 500ms delay).+  💡 `-Q` replaces `PATTERN` on the command line to let you enter patterns interactively.  Specify `-e PATTERN` to search and edit the `PATTERN` in the TUI.  Best is `-Qle PATTERN` to view a list of matching files.  - Search with Google-like [Boolean query patterns](#bool) using `--bool` patterns with `AND` (or just space), `OR` (or a bar `|`), `NOT` (or a dash `-`), using quotes to match exactly, and grouping with `( )`; or with options `-e` (as an "or"), `--and`, `--andnot`, and `--not` regex patterns @@ -64,13 +67,13 @@ Overview    where `A`, `B` and `C` are arbitrary regex patterns (use option `-F` to search strings) -  💡**ProTip** specify `--files --bool` to apply the Boolean query to files as a whole: a file matches if all Boolean conditions are satisfied by matching patterns file-wide.  Otherwise, Boolean conditions apply to single lines by default, since grep utilities are generally line-based pattern matchers.  Option `--stats` displays the query in human-readable form after the search completes.+  💡 specify `--files --bool` to apply the Boolean query to files as a whole: a file matches if all Boolean conditions are satisfied by matching patterns file-wide.  Otherwise, Boolean conditions apply to single lines by default, since grep utilities are generally line-based pattern matchers.  Option `--stats` displays the query in human-readable form after the search completes.  - Search the contents of [archives](#archives) (cpio, jar, tar, pax, zip) and [compressed files](#archives) (zip, gz, Z, bz, bz2, lzma, xz, lz4, zstd)        ug -z PATTERN ...                      ug -z --zmax=2 PATTERN ... -  💡**ProTip** specify `-z --zmax=2` to search compressed files and archives nested within archives, e.g. to search zip files stored in (compressed) tar files.  The `--zmax` argument may range from 1 (default) to 99 for up to 99 decompression and de-archiving steps, far more than you will ever need!  Larger `--zmax` slows searching.+  💡 specify `-z --zmax=2` to search compressed files and archives stored within archives.  The `--zmax` argument may range from 1 (default) to 99 for up to 99 decompression and de-archiving steps to search nested archives, far more than you will ever need!  Larger `--zmax` slows searching.  - Search pdf, doc, docx, e-book, and more with `ug+` [using filters](#filter) associated with filename extensions: @@ -83,19 +86,19 @@ Overview       ug --filter='latin1:iconv -f LATIN1 -t UTF-8' PATTERN ...       ug --filter='7z:7z x -so -si' PATTERN ... -  💡**ProTip** the `ug+` command is the same as the `ug` command, but also uses filters to search PDFs, documents, and image metadata, when the [`pdftotext`](https://pypi.org/project/pdftotext), [`antiword`](https://github.com/rsdoiel/antiword), [`pandoc`](https://pandoc.org), and [`exiftool`](https://exiftool.sourceforge.net) are installed (optionally, not used when not installed).+  💡 the `ug+` command is the same as the `ug` command, but also uses filters to search PDFs, documents, and image metadata, when the [`pdftotext`](https://pypi.org/project/pdftotext), [`antiword`](https://github.com/rsdoiel/antiword), [`pandoc`](https://pandoc.org), and [`exiftool`](https://exiftool.sourceforge.net) are installed (optionally, not used when not installed).  - Find approximate pattern matches with [fuzzy search](#fuzzy), within the specified Levenshtein distance        ug -Z PATTERN ...                      ug -Z3 PATTTERN ... -  💡**ProTip** `-Zn` matches up to `n` extra, missing or replaced characters, `-Z+n` matches up to `n` extra characters, `-Z-n` matches with up to `n` missing characters and `-Z~n` matches up to `n` replaced characters.  `-Z` defaults to `-Z1`.+  💡 `-Zn` matches up to `n` extra, missing or replaced characters, `-Z+n` matches up to `n` extra characters, `-Z-n` matches with up to `n` missing characters and `-Z~n` matches up to `n` replaced characters.  `-Z` defaults to `-Z1`.  - Fzf-like search with regex (or fixed strings with `-F`), fuzzy matching with up to 4 extra characters with `-Z+4` and words only with `-w`, using `--files --bool` for file-wide Boolean searches        ug -Q1 --files --bool -l -w -Z+4 --sort=best -  💡**ProTip** `-l` lists the matching files in the TUI, press `TAB` then `ALT-y` to view a file, `SHIFT-TAB` and `Alt-l` to go back to view the list of matching files ordered by best match+  💡 `-l` lists the matching files in the TUI, press `TAB` then `ALT-y` to view a file, `SHIFT-TAB` and `Alt-l` to go back to view the list of matching files ordered by best match  - Search [binary files](#binary) and display hexdumps with binary pattern matches (Unicode text or `-U` for byte patterns) @@ -103,11 +106,7 @@ Overview       ug -X -U BYTEPATTERN ...               ug -X TEXTPATTERN ...       ug -W -U BYTEPATTERN ...               ug -W TEXTPATTERN ... -  💡**ProTip** `--hexdump=4chC1` displays `4` columns of hex without a character column `c`, no hex spacing `h`, and with one extra hex line `C1` before and after a match.  Option `-X` is the same as `--hexdump=2C` with `2` columns of hex and the whole matching line as `C` context in hex.--- Include files to search by [filename extensions](#magic) or exclude them with `^`--      ug -O EXT PATTERN ...                  ug -O ^EXT PATTERN ...+  💡 `--hexdump=4chC1` displays `4` columns of hex without a character column `c`, no hex spacing `h`, and with one extra hex line `C1` before and after a match.  Option `-X` is the same as `--hexdump=2C` with `2` columns of hex and the whole matching line as `C` context in hex.  - Include files to search by [file types or file "magic bytes"](#magic) or exclude them with `^` @@ -121,6 +120,10 @@ Overview       ug -g 'PATH/FILEGLOB' PATTERN ...      ug -g '^PATH/FILEGLOB' PATTERN ...       ug -g 'PATH/DIRGLOB/' PATTERN ...      ug -g '^PATH/DIRGLOB/' PATTERN ... +- Include files to search by [filename extensions](#magic) (suffix) or exclude them with `^`, a shorthand for `-g"*.EXT"`++      ug -O EXT PATTERN ...                  ug -O ^EXT PATTERN ...+ - Include [hidden files (dotfiles) and directories](#hidden) to search (omitted by default)        ug -. PATTERN ...                      ug -g'.*,.*/' PATTERN ...@@ -150,7 +153,7 @@ Overview       ug --csv PATTERN ...                   ug --json PATTERN ...       ug --xml PATTERN ...                   ug --format='file=%f line=%n match=%O%~' PATTERN ... -  💡**ProTip** `ug --help format` displays help on format `%` fields.+  💡 `ug --help format` displays help on format `%` fields.  - Search with PCRE's Perl-compatible regex patterns and display or replace [subpattern matches](#replace) @@ -162,7 +165,7 @@ Overview       ug --replace='(%m:%o)' PATTERN ...     ug -y --replace='(%m:%o)' PATTERN ...       ug -P --replace='%1' PATTERN ...       ug -y -P --replace='%1' PATTERN ... -  💡**ProTip** `ug --help format` displays help on format `%` fields to optionally use with `--replace`.+  💡 `ug --help format` displays help on format `%` fields to optionally use with `--replace`.  - Search files with a specific [encoding](#encoding) format such as ISO-8859-1 thru 16, CP 437, CP 850, MACROMAN, KOI8, etc. @@ -173,7 +176,7 @@ Overview Table of contents ----------------- -- [Download and install](#install)+- [How to install](#install) - [Performance comparisons](#speed) - [Using ugrep within Vim](#vim) - [Using ugrep within Emacs](#emacs)@@ -226,8 +229,8 @@ Table of contents  <a name="install"/> -Download and install---------------------+How to install+--------------  ### Homebrew for MacOS (and Linux) @@ -1212,7 +1215,7 @@ The configuration is written to standard output when `FILE` is a `-`.  ### Interactive search with -Q -    -Q[DELAY], --query[=DELAY]+    -Q[=DELAY], --query[=DELAY]             Query mode: user interface to perform interactive searches.  This             mode requires an ANSI capable terminal.  An optional DELAY argument             may be specified to reduce or increase the response time to execute@@ -4569,7 +4572,7 @@ in markdown:                   When output is sent to a terminal, enables --color, --heading, -n,                   --sort, --tree and -T when not explicitly disabled. -           -Q[DELAY], --query[=DELAY]+           -Q[=DELAY], --query[=DELAY]                   Query mode: user interface to perform interactive searches.  This                   mode requires an ANSI capable terminal.  An optional DELAY                   argument may be specified to reduce or increase the response time@@ -5333,7 +5336,7 @@ in markdown:             Interactive fuzzy search with Boolean search queries: -                  $ ugrep -Q --bool -Z3 --sort=best+                  $ ugrep -Q -l --bool -Z3 --sort=best             Display all words in a MacRoman-encoded file that has CR newlines: @@ -5358,7 +5361,7 @@ in markdown:   -    ugrep 3.12.7                     August 14, 2023                        UGREP(1)+    ugrep 4.0.0                      August 18, 2023                        UGREP(1)  🔝 [Back to table of contents](#toc) 

bin/win32/README.md

new file mode 100644@@ -0,0 +1,10 @@+Windows 32 bit executables+==========================++`ugrep.exe` offers the same functionality as ugrep (and ug when renamed).++`ug.exe` must be created manually by copying `ugrep.exe` to `ug.exe` (it is the same file, but renamed).++If you want ugrep to emulate GNU grep, then copy `ugrep.exe` to `grep.exe` and to `egrep.exe`, `fgrep.exe`.  ++The executables detect SSE2 and AVX2 automatically for optimized searching.

bin/win32/ugrep.exe

Binary file changed

bin/win64/README.md

new file mode 100644@@ -0,0 +1,10 @@+Windows 64 bit executables+==========================++`ugrep.exe` offers the same functionality as ugrep (and ug when renamed).++`ug.exe` must be created manually by copying `ugrep.exe` to `ug.exe` (it is the same file, but renamed).++If you want ugrep to emulate GNU grep, then copy `ugrep.exe` to `grep.exe` and to `egrep.exe`, `fgrep.exe`.  ++The executables detect SSE2 and AVX2 automatically for optimized searching.

bin/win64/ugrep.exe

Binary file changed

include/reflex/absmatcher.h

@@ -110,12 +110,12 @@ class AbstractMatcher {     static const int EOB      = EOF;        ///< end of buffer meta-char marker     static const size_t BLOCK = 4096;       ///< minimum remaining unused space in the buffer, to prevent excessive shifting #ifndef REFLEX_BUFSZ-    static const size_t BUFSZ = (64*1024);  ///< initial buffer size, at least 4096 bytes+    static const size_t BUFSZ = (128*1024); ///< initial buffer size, at least 4096 bytes #else     static const size_t BUFSZ = REFLEX_BUFSZ; #endif #ifndef REFLEX_BOLSZ-    static const size_t BOLSZ = (3*BUFSZ);  ///< max begin of line size till match to retain in memory by growing the buffer+    static const size_t BOLSZ = BUFSZ;      ///< max begin of line size till match to retain in memory by growing the buffer #else     static const size_t BOLSZ = REFLEX_BOLSZ; #endif@@ -662,60 +662,33 @@ class AbstractMatcher {       size_t n = 0; #if defined(HAVE_AVX512BW) && (!defined(_MSC_VER) || defined(_WIN64))       if (have_HW_AVX512BW())-      {-        n += simd_nlcount_avx512bw(s, t);-      }+        n = simd_nlcount_avx512bw(s, t);       else if (have_HW_AVX2())-      {-        n += simd_nlcount_avx2(s, t);-      }+        n = simd_nlcount_avx2(s, t);       else-      {-        __m128i vlcn = _mm_set1_epi8('\n');-        while (s + 16 <= t)-        {-          __m128i vlcm = _mm_loadu_si128(reinterpret_cast<const __m128i*>(s));-          __m128i vlceq = _mm_cmpeq_epi8(vlcm, vlcn);-          uint32_t mask = _mm_movemask_epi8(vlceq);-          n += popcount(mask);-          s += 16;-        }-      }+        n = simd_nlcount_sse2(s, t); #elif defined(HAVE_AVX2)       if (have_HW_AVX2())-      {-        n += simd_nlcount_avx2(s, t);-      }+        n = simd_nlcount_avx2(s, t);       else-      {-        __m128i vlcn = _mm_set1_epi8('\n');-        while (s + 16 <= t)-        {-          __m128i vlcm = _mm_loadu_si128(reinterpret_cast<const __m128i*>(s));-          __m128i vlceq = _mm_cmpeq_epi8(vlcm, vlcn);-          uint32_t mask = _mm_movemask_epi8(vlceq);-          n += popcount(mask);-          s += 16;-        }-      }+        n = simd_nlcount_sse2(s, t); #elif defined(HAVE_SSE2)-      __m128i vlcn = _mm_set1_epi8('\n');-      while (s + 16 <= t)-      {-        __m128i vlcm = _mm_loadu_si128(reinterpret_cast<const __m128i*>(s));-        __m128i vlceq = _mm_cmpeq_epi8(vlcm, vlcn);-        uint32_t mask = _mm_movemask_epi8(vlceq);-        n += popcount(mask);-        s += 16;-      }-#elif defined(HAVE_NEON)+      n = simd_nlcount_sse2(s, t);+#endif+#if defined(HAVE_NEON)+      // no ARM AArch64/NEON SIMD optimized loop? - no code that runs faster than the code below?!+      uint32_t n0 = 0, n1 = 0;+      while (s < t - 1)       {-        // ARM AArch64/NEON SIMD optimized loop? - no code that runs faster than the code below?+        n0 += s[0] == '\n';+        n1 += s[1] == '\n';+        s += 2;       }-#endif-      uint32_t n0 = 0, n1 = 0, n2 = 0, n3 = 0;+      n += n0 + n1 + (s < t && *s == '\n');+#else       // clang/gcc 4-way auto-vectorizable loop-      while (s + 3 < t)+      uint32_t n0 = 0, n1 = 0, n2 = 0, n3 = 0;+      while (s < t - 3)       {         n0 += s[0] == '\n';         n1 += s[1] == '\n';@@ -735,13 +708,14 @@ class AbstractMatcher {             n += *s == '\n';         }       }+#endif       // if newlines are detected, then find begin of the last line to adjust bol       if (n > 0)       {         lno_ += n;         s = lpb_;         // clang/gcc 4-way auto-vectorizable loop-        while (t - 4 >= s)+        while (t >= s + 4)         {           if ((t[-1] == '\n') | (t[-2] == '\n') | (t[-3] == '\n') | (t[-4] == '\n'))             break;@@ -1428,7 +1402,7 @@ class AbstractMatcher { #if WITH_SPAN     (void)lineno();     cno_ = 0;-    if (bol_ + Const::BOLSZ - buf_ < txt_ - bol_ && evh_ == NULL)+    if (bol_ + Const::BOLSZ - buf_ < txt_ - bol_)     {       // this line is very long, so shift all the way to the match instead of to the begin of the last line       DBGLOG("Line in buffer is too long to shift, moving bol position to text match position");

include/reflex/linematcher.h

new file mode 100644@@ -0,0 +1,146 @@+/******************************************************************************\+* Copyright (c) 2016, Robert van Engelen, Genivia Inc. All rights reserved.    *+*                                                                              *+* Redistribution and use in source and binary forms, with or without           *+* modification, are permitted provided that the following conditions are met:  *+*                                                                              *+*   (1) Redistributions of source code must retain the above copyright notice, *+*       this list of conditions and the following disclaimer.                  *+*                                                                              *+*   (2) Redistributions in binary form must reproduce the above copyright      *+*       notice, this list of conditions and the following disclaimer in the    *+*       documentation and/or other materials provided with the distribution.   *+*                                                                              *+*   (3) The name of the author may not be used to endorse or promote products  *+*       derived from this software without specific prior written permission.  *+*                                                                              *+* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED *+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF         *+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO   *+* EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,       *+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *+* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;  *+* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,     *+* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR      *+* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF       *+* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                                   *+\******************************************************************************/++/**+@file      linematcher.h+@brief     a matcher engine to match lines and nothing else+@author    Robert van Engelen - engelen@genivia.com+@copyright (c) 2016-2023, Robert van Engelen, Genivia Inc. All rights reserved.+@copyright (c) BSD-3 License - see LICENSE.txt+*/++#ifndef REFLEX_LINEMATCHER_H+#define REFLEX_LINEMATCHER_H++#include <reflex/absmatcher.h>++namespace reflex {++/// Line matcher engine class implements reflex::PatternMatcher pattern matching interface with scan, find, split functors and iterators for matching lines only, use option 'A' to include newline with FIND, option 'N' to also FIND empty lines and option 'W' to only FIND empty lines+class LineMatcher : public AbstractMatcher {+ public:+  /// Construct matcher engine from an input character sequence.+  LineMatcher(+      const Input& input = Input(), ///< input character sequence for this matcher+      const char  *opt = NULL)      ///< option string of the form `(A|N|T(=[[:digit:]])?|;)*`+    :+      AbstractMatcher(input, opt)+  { }+  /// Copy constructor.+  LineMatcher(const LineMatcher& matcher) ///< matcher to copy+    :+      AbstractMatcher(matcher.in, matcher.opt_)+  { }+  /// Delete matcher.+  virtual ~LineMatcher()+  { }+  /// Assign a matcher.+  LineMatcher& operator=(const LineMatcher& matcher) ///< matcher to copy+  {+    AbstractMatcher::operator=(matcher);+    return *this;+  }+  /// Polymorphic cloning.+  virtual LineMatcher *clone()+  {+    return new LineMatcher(*this);+  }+  /// Reset this matcher's state to the initial state and when assigned new input.+  using AbstractMatcher::reset;+  /// Returns a pair <text(),size() for any n+  virtual std::pair<const char*,size_t> operator[](size_t) ///< ignored+    /// @returns pair.+    const+  {+    return std::pair<const char*,size_t>(txt_, len_);+  }+  /// Returns (0,NULL)+  virtual std::pair<size_t,const char*> group_id()+    /// @returns a pair of size_t and string+  {+    return std::pair<size_t,const char*>(0, static_cast<const char*>(NULL)); // cast to appease MSVC 2010+  }+  /// Returns (0,NULL)+  virtual std::pair<size_t,const char*> group_next_id()+    /// @returns a pair of size_t and string+  {+    return std::pair<size_t,const char*>(0, static_cast<const char*>(NULL)); // cast to appease MSVC 2010+  }+ protected:+  /// The match method Const::SCAN, Const::FIND, Const::SPLIT, or Const::MATCH+  virtual size_t match(Method method) ///< match method Const::SCAN, Const::FIND, Const::SPLIT, or Const::MATCH+    /// @returns nonzero when input matched a line+  {+    DBGLOG("BEGIN LineMatcher::match(%d)", method);+    reset_text();+find:+    txt_ = buf_ + pos_;+    cur_ = txt_ - buf_;+    len_ = 0;+    cap_ = !at_end();+    if (cap_)+    {+      const char *end = eol(true);+      if (end == txt_)+        return cap_ = 0;+      pos_ = end - buf_;+      len_ = end - txt_;+      size_t n;+      switch (method)+      {+        case Const::SCAN:+          break;+        case Const::FIND:+          n = len_ - (*--end == '\n');+          // option A includes the terminating \n in the match, when present+          if (!opt_.A)+            len_ = n;+          // option N also finds empty lines+          if (n == 0 && !opt_.N)+            goto find;+          // option W only finds empty lines+          if (n > 0 && opt_.W)+            goto find;+          break;+        case Const::SPLIT:+          txt_ += len_ - (*--end == '\n');+          cur_ = txt_ - buf_;+          len_ = pos_ - cur_;+          break;+        case Const::MATCH:+          cap_ = eof_;+          break;+      }+    }+    return cap_;+  }+};++} // namespace reflex++#endif

include/reflex/simd.h

@@ -128,6 +128,7 @@ inline uint32_t popcountl(uint64_t x) #endif  // Partially count newlines in string b up to and including position e in b, updates b close to e with uncounted part+extern size_t simd_nlcount_sse2(const char*& b, const char *e); extern size_t simd_nlcount_avx2(const char*& b, const char *e); extern size_t simd_nlcount_avx512bw(const char*& b, const char *e); 

lib/matcher.cpp

@@ -2770,8 +2770,6 @@ bool Matcher::advance()       {         loc = s - buf_;         set_current(loc);-        if (min == 0)-          return true;         if (min >= 4)         {           if (s + 1 + min > e || Pattern::predict_match(pmh, s + 1, min))@@ -2779,7 +2777,7 @@ bool Matcher::advance()         }         else         {-          if (s > e - 5 || Pattern::predict_match(pma, s + 1) == 0)+          if (min == 0 || s > e - 5 || Pattern::predict_match(pma, s + 1) == 0)             return true;         }         ++loc;@@ -2820,8 +2818,6 @@ bool Matcher::advance()           {             loc = s - lcp + offset - buf_;             set_current(loc);-            if (min == 0)-              return true;             if (min >= 4)             {               if (loc + len + min > end_ || Pattern::predict_match(pmh, &buf_[loc + len], min))@@ -2829,7 +2825,7 @@ bool Matcher::advance()             }             else             {-              if (loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)+              if (min == 0 || loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)                 return true;             }           }@@ -2856,8 +2852,6 @@ bool Matcher::advance()           {             loc = s - lcp + offset - buf_;             set_current(loc);-            if (min == 0)-              return true;             if (min >= 4)             {               if (loc + len + min > end_ || Pattern::predict_match(pmh, &buf_[loc + len], min))@@ -2865,7 +2859,7 @@ bool Matcher::advance()             }             else             {-              if (loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)+              if (min == 0 || loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)                 return true;             }           }@@ -2892,8 +2886,6 @@ bool Matcher::advance()           {             loc = s - lcp + offset - buf_;             set_current(loc);-            if (min == 0)-              return true;             if (min >= 4)             {               if (loc + len + min > end_ || Pattern::predict_match(pmh, &buf_[loc + len], min))@@ -2901,7 +2893,7 @@ bool Matcher::advance()             }             else             {-              if (loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)+              if (min == 0 || loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)                 return true;             }           }@@ -2914,65 +2906,91 @@ bool Matcher::advance()       // enhanced with least frequent character matching       uint8x16_t vlcp = vdupq_n_u8(chr[lcp]);       uint8x16_t vlcs = vdupq_n_u8(chr[lcs]);-      while (s <= e - 16)+      if (min >= 4)       {-        uint8x16_t vlcpm = vld1q_u8(reinterpret_cast<const uint8_t*>(s));-        uint8x16_t vlcsm = vld1q_u8(reinterpret_cast<const uint8_t*>(s) + lcs - lcp);-        uint8x16_t vlcpeq = vceqq_u8(vlcp, vlcpm);-        uint8x16_t vlcseq = vceqq_u8(vlcs, vlcsm);-        uint8x16_t vmask8 = vandq_u8(vlcpeq, vlcseq);-        uint64x2_t vmask64 = vreinterpretq_u64_u8(vmask8);-        uint64_t mask = vgetq_lane_u64(vmask64, 0);-        if (mask != 0)+        while (s <= e - 16)         {-          for (int i = 0; i < 8; ++i)+          uint8x16_t vlcpm = vld1q_u8(reinterpret_cast<const uint8_t*>(s));+          uint8x16_t vlcsm = vld1q_u8(reinterpret_cast<const uint8_t*>(s) + lcs - lcp);+          uint8x16_t vlcpeq = vceqq_u8(vlcp, vlcpm);+          uint8x16_t vlcseq = vceqq_u8(vlcs, vlcsm);+          uint8x16_t vmask8 = vandq_u8(vlcpeq, vlcseq);+          uint64x2_t vmask64 = vreinterpretq_u64_u8(vmask8);+          uint64_t mask = vgetq_lane_u64(vmask64, 0);+          if (mask != 0)           {-            if ((mask & 0xff) && std::memcmp(s - lcp + i, chr, len) == 0)+            for (int i = 0; i < 8; ++i)             {-              loc = s - lcp + i - buf_;-              set_current(loc);-              if (min == 0)-                return true;-              if (min >= 4)+              if ((mask & 0xff) && std::memcmp(s - lcp + i, chr, len) == 0)               {+                loc = s - lcp + i - buf_;+                set_current(loc);                 if (loc + len + min > end_ || Pattern::predict_match(pmh, &buf_[loc + len], min))                   return true;               }-              else+              mask >>= 8;+            }+          }+          mask = vgetq_lane_u64(vmask64, 1);+          if (mask != 0)+          {+            for (int i = 0; i < 8; ++i)+            {+              if ((mask & 0xff) && std::memcmp(s - lcp + i + 8, chr, len) == 0)               {-                if (loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)+                loc = s - lcp + i + 8 - buf_;+                set_current(loc);+                if (loc + len + min > end_ || Pattern::predict_match(pmh, &buf_[loc + len], min))                   return true;               }+              mask >>= 8;             }-            mask >>= 8;           }+          s += 16;         }-        mask = vgetq_lane_u64(vmask64, 1);-        if (mask != 0)+      }+      else+      {+        while (s <= e - 16)         {-          for (int i = 0; i < 8; ++i)+          uint8x16_t vlcpm = vld1q_u8(reinterpret_cast<const uint8_t*>(s));+          uint8x16_t vlcsm = vld1q_u8(reinterpret_cast<const uint8_t*>(s) + lcs - lcp);+          uint8x16_t vlcpeq = vceqq_u8(vlcp, vlcpm);+          uint8x16_t vlcseq = vceqq_u8(vlcs, vlcsm);+          uint8x16_t vmask8 = vandq_u8(vlcpeq, vlcseq);+          uint64x2_t vmask64 = vreinterpretq_u64_u8(vmask8);+          uint64_t mask = vgetq_lane_u64(vmask64, 0);+          if (mask != 0)           {-            if ((mask & 0xff) && std::memcmp(s - lcp + i + 8, chr, len) == 0)+            for (int i = 0; i < 8; ++i)             {-              loc = s - lcp + i + 8 - buf_;-              set_current(loc);-              if (min == 0)-                return true;-              if (min >= 4)+              if ((mask & 0xff) && std::memcmp(s - lcp + i, chr, len) == 0)               {-                if (loc + len + min > end_ || Pattern::predict_match(pmh, &buf_[loc + len], min))+                loc = s - lcp + i - buf_;+                set_current(loc);+                if (min == 0 || loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)                   return true;               }-              else+              mask >>= 8;+            }+          }+          mask = vgetq_lane_u64(vmask64, 1);+          if (mask != 0)+          {+            for (int i = 0; i < 8; ++i)+            {+              if ((mask & 0xff) && std::memcmp(s - lcp + i + 8, chr, len) == 0)               {-                if (loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)+                loc = s - lcp + i + 8 - buf_;+                set_current(loc);+                if (min == 0 || loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)                   return true;               }+              mask >>= 8;             }-            mask >>= 8;           }+          s += 16;         }-        s += 16;       } #endif       while (s < e)@@ -3038,8 +3056,6 @@ bool Matcher::advance()         {           loc = q - buf_ + 1;           set_current(loc);-          if (min == 0)-            return true;           if (min >= 4)           {             if (loc + len + min > end_ || Pattern::predict_match(pmh, &buf_[loc + len], min))@@ -3047,7 +3063,7 @@ bool Matcher::advance()           }           else           {-            if (loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)+            if (min == 0 || loc + len + 4 > end_ || Pattern::predict_match(pma, &buf_[loc + len]) == 0)               return true;           }         }

lib/matcher_avx2.cpp

@@ -34,8 +34,8 @@ @copyright (c) BSD-3 License - see LICENSE.txt */ -#if defined(HAVE_AVX2) || defined(HAVE_AVX512BW)-# if !defined(__AVX2__) || defined(__AVX512BW__)+#if defined(HAVE_AVX2)+# if !defined(__AVX2__) #  error matcher_avx2.cpp must be compiled with -mavx2 or /arch:avx2. # endif #endif

lib/simd_avx2.cpp

@@ -28,7 +28,7 @@  /** @file      simd_avx2.cpp-@brief     RE/flex SIMD intrinsics compiled with -mavx2+@brief     RE/flex SIMD primitives compiled with -mavx2 (and/or -msse2) @author    Robert van Engelen - engelen@genivia.com @copyright (c) 2016-2022, Robert van Engelen, Genivia Inc. All rights reserved. @copyright (c) BSD-3 License - see LICENSE.txt@@ -41,23 +41,73 @@ namespace reflex { // Partially count newlines in string b up to and including position e in b, updates b close to e with uncounted part size_t simd_nlcount_avx2(const char*& b, const char *e) {+#if defined(HAVE_AVX2)   const char *s = b;+  e -= 128;+  if (s > e)+    return 0;   size_t n = 0;-#if defined(HAVE_AVX2)+  // align on 32 bytes+  while ((reinterpret_cast<ptrdiff_t>(s) & 0x1f) != 0)+    n += (*s++ == '\n');   __m256i vlcn = _mm256_set1_epi8('\n');-  while (s + 32 <= e)+  while (s <= e)   {-    __m256i vlcm = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(s));-    __m256i vlceq = _mm256_cmpeq_epi8(vlcm, vlcn);-    uint32_t mask = _mm256_movemask_epi8(vlceq);-    n += popcount(mask);-    s += 32;+    __m256i vlcm1 = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(s));+    __m256i vlcm2 = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(s + 32));+    __m256i vlcm3 = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(s + 64));+    __m256i vlcm4 = _mm256_loadu_si256(reinterpret_cast<const __m256i*>(s + 96));+    n += popcount(_mm256_movemask_epi8(_mm256_cmpeq_epi8(vlcm1, vlcn)))+      +  popcount(_mm256_movemask_epi8(_mm256_cmpeq_epi8(vlcm2, vlcn)))+      +  popcount(_mm256_movemask_epi8(_mm256_cmpeq_epi8(vlcm3, vlcn)))+      +  popcount(_mm256_movemask_epi8(_mm256_cmpeq_epi8(vlcm4, vlcn)));+    s += 128;   }+  b = s;+  return n; #else+  (void)b;   (void)e;+  return 0; #endif+}++// Partially count newlines in string b up to and including position e in b, updates b close to e with uncounted part+size_t simd_nlcount_sse2(const char*& b, const char *e)+{+#if defined(HAVE_SSE2)+  const char *s = b;+  e -= 64;+  if (s > e)+    return 0;+  size_t n = 0;+  // align on 16 bytes+  while ((reinterpret_cast<ptrdiff_t>(s) & 0x0f) != 0)+    n += (*s++ == '\n');+  __m128i vlcn = _mm_set1_epi8('\n');+  while (s <= e)+  {+    __m128i vlcm1 = _mm_loadu_si128(reinterpret_cast<const __m128i*>(s));+    __m128i vlcm2 = _mm_loadu_si128(reinterpret_cast<const __m128i*>(s + 16));+    __m128i vlcm3 = _mm_loadu_si128(reinterpret_cast<const __m128i*>(s + 32));+    __m128i vlcm4 = _mm_loadu_si128(reinterpret_cast<const __m128i*>(s + 48));+    __m128i vlceq1 = _mm_cmpeq_epi8(vlcm1, vlcn);+    __m128i vlceq2 = _mm_cmpeq_epi8(vlcm2, vlcn);+    __m128i vlceq3 = _mm_cmpeq_epi8(vlcm3, vlcn);+    __m128i vlceq4 = _mm_cmpeq_epi8(vlcm4, vlcn);+    n += popcount(_mm_movemask_epi8(vlceq1))+      +  popcount(_mm_movemask_epi8(vlceq2))+      +  popcount(_mm_movemask_epi8(vlceq3))+      +  popcount(_mm_movemask_epi8(vlceq4));+    s += 64;+  }   b = s;   return n;+#else+  (void)b;+  (void)e;+  return 0;+#endif }  } // namespace reflex

lib/simd_avx512bw.cpp

@@ -28,7 +28,7 @@  /** @file      simd_avx512bw.cpp-@brief     RE/flex SIMD intrinsics compiled with -mavx512bw+@brief     RE/flex SIMD primitives compiled with -mavx512bw @author    Robert van Engelen - engelen@genivia.com @copyright (c) 2016-2022, Robert van Engelen, Genivia Inc. All rights reserved. @copyright (c) BSD-3 License - see LICENSE.txt@@ -41,22 +41,30 @@ namespace reflex { // Partially count newlines in string b up to and including position e in b, updates b close to e with uncounted part size_t simd_nlcount_avx512bw(const char*& b, const char *e) {+#if defined(HAVE_AVX512BW) && (!defined(_MSC_VER) || defined(_WIN64))   const char *s = b;+  e -= 128;+  if (s > e)+    return 0;   size_t n = 0;-#if defined(HAVE_AVX512BW) && (!defined(_MSC_VER) || defined(_WIN64))+  // align on 64 bytes+  while ((reinterpret_cast<ptrdiff_t>(s) & 0x3f) != 0)+    n += (*s++ == '\n');   __m512i vlcn = _mm512_set1_epi8('\n');-  while (s + 64 <= e)+  while (s <= e)   {-    __m512i vlcm = _mm512_loadu_si512(reinterpret_cast<const __m512i*>(s));-    uint64_t mask = _mm512_cmpeq_epi8_mask(vlcm, vlcn);-    n += popcountl(mask);-    s += 64;+    __m512i vlcm1 = _mm512_loadu_si512(reinterpret_cast<const __m512i*>(s));+    __m512i vlcm2 = _mm512_loadu_si512(reinterpret_cast<const __m512i*>(s + 64));+    n += popcountl(_mm512_cmpeq_epi8_mask(vlcm1, vlcn)) + popcountl(_mm512_cmpeq_epi8_mask(vlcm2, vlcn));+    s += 128;   }+  b = s;+  return n; #else+  (void)b;   (void)e;+  return 0; #endif-  b = s;-  return n; }  } // namespace reflex

man.sh

@@ -649,7 +649,7 @@ $ tail -f /var/log/system.log | ugrep -u -i -w bug .PP Interactive fuzzy search with Boolean search queries: .IP-$ ugrep -Q --bool -Z3 --sort=best+$ ugrep -Q -l --bool -Z3 --sort=best .PP Display all words in a MacRoman-encoded file that has CR newlines: .IP

man/ugrep.1

@@ -1,4 +1,4 @@-.TH UGREP "1" "August 14, 2023" "ugrep 3.12.7" "User Commands"+.TH UGREP "1" "August 18, 2023" "ugrep 4.0.0" "User Commands" .SH NAME \fBugrep\fR, \fBug\fR -- file pattern searcher .SH SYNOPSIS@@ -676,7 +676,7 @@ and \fB\-\-line\-buffered\fR. When output is sent to a terminal, enables \fB\-\-color\fR, \fB\-\-heading\fR, \fB\-n\fR, \fB\-\-sort\fR, \fB\-\-tree\fR and \fB\-T\fR when not explicitly disabled. .TP-\fB\-Q\fR[\fIDELAY\fR], \fB\-\-query\fR[=\fIDELAY\fR]+\fB\-Q\fR[=\fIDELAY\fR], \fB\-\-query\fR[=\fIDELAY\fR] Query mode: user interface to perform interactive searches.  This mode requires an ANSI capable terminal.  An optional DELAY argument may be specified to reduce or increase the response time to execute@@ -1392,7 +1392,7 @@ $ tail -f /var/log/system.log | ugrep -u -i -w bug .PP Interactive fuzzy search with Boolean search queries: .IP-$ ugrep -Q --bool -Z3 --sort=best+$ ugrep -Q -l --bool -Z3 --sort=best .PP Display all words in a MacRoman-encoded file that has CR newlines: .IP

src/cnf.cpp

@@ -56,6 +56,9 @@ void CNF::OpTree::parse1(const char *& pattern) {   skip_space(pattern); +  if (*pattern == '\0' && flag_line_regexp)+    pattern = "^$";+   while (*pattern != '\0' && *pattern != ')')   {     list.emplace_back(OR);@@ -612,7 +615,6 @@ void CNF::report(FILE *output) const    fprintf(output, flag_files ? "Files " : "Lines "); -   if (flag_fuzzy > 0)   {     fprintf(output, "fuzzy-matched ");

src/cnf.hpp

@@ -283,14 +283,6 @@ class CNF {     // patterns that start with ^ or end with $ are already anchored     if (!pattern.empty() && (pattern.front() == '^' || pattern.back() == '$'))     {-      if (!flag_line_regexp && flag_word_regexp)-      {-        if (pattern.front() != '^')-          pattern.insert(0, wleft);-        else if (pattern.back() != '$')-          pattern.append(wright);-      }-       // enable -Y to match empty       flag_empty = true;     }

src/output.cpp

@@ -98,7 +98,7 @@ void Output::Dump::line()       }       if (flag_hex_hbr || (i == 0 && flag_hex_cbr))         out.chr(' ');-      out.str("--");+      out.str("--", 2);       if (flag_hex_cbr && (i & 7) == 7)         out.chr(' ');     }@@ -157,18 +157,18 @@ void Output::Dump::line()         {           if (byte < 0x20)           {-            out.str("\033[7m");+            out.str("\033[7m", 4);             out.chr('@' + byte);             inverted = true;           }           else if (byte == 0x7f)           {-            out.str("\033[7m~");+            out.str("\033[7m~", 5);             inverted = true;           }           else if (byte > 0x7f)           {-            out.str("\033[7m.");+            out.str("\033[7m.", 5);             inverted = true;           }           else if (inverted)@@ -241,7 +241,7 @@ void Output::header(const char *pathname, const std::string& partname, bool& hea   {     str(color_hl);     str(flag_hyperlink_prefix);-    str("://");+    str("://", 3);     uri(flag_hyperlink_path);     chr('/');     uri(pathname);@@ -295,7 +295,7 @@ void Output::header(const char *pathname, const std::string& partname, bool& hea       {         str(color_hl);         str(flag_hyperlink_prefix);-        str("://");+        str("://", 3);         uri(flag_hyperlink_path);         chr('/');         uri(pathname);@@ -501,7 +501,7 @@ void Output::header(const char *pathname, const std::string& partname)     {       str(color_hl);       str(flag_hyperlink_prefix);-      str("://");+      str("://", 3);       uri(flag_hyperlink_path);       chr('/');       uri(pathname);@@ -528,7 +528,7 @@ void Output::header(const char *pathname, const std::string& partname)     {       str(color_hl);       str(flag_hyperlink_prefix);-      str("://");+      str("://", 3);       uri(flag_hyperlink_path);       chr('/');       uri(pathname);@@ -567,14 +567,14 @@ void Output::binary_file_matches(const char *pathname, const std::string& partna     return;    str(color_off);-  str("Binary file ");+  str("Binary file ", 12);   str(color_fn);    if (pathname != LABEL_STANDARD_INPUT && color_hl != NULL)   {     str(color_hl);     str(flag_hyperlink_prefix);-    str("://");+    str("://", 3);     uri(flag_hyperlink_path);     chr('/');     uri(pathname);@@ -593,12 +593,12 @@ void Output::binary_file_matches(const char *pathname, const std::string& partna   {     chr('{');     str(partname);-    str("} ");+    str("} ", 2);   }    str(color_off); -  str(" matches");+  str(" matches", 8);   nl();    mode_ |= BINARY;@@ -1800,7 +1800,7 @@ void Output::csv(const char *data, size_t size)       {         str(t, s - t);         t = s + 1;-        str("\"\"");+        str("\"\"", 2);       }       else if ((c < 0x20 && c != '\t') || c == '\\')       {@@ -1837,7 +1837,7 @@ void Output::csv(const char *data, size_t size)         }         else         {-          str("\\x");+          str("\\x", 2);           hex(c, 2);         }       }@@ -1899,7 +1899,7 @@ void Output::json(const char *data, size_t size)         }         else         {-          str("\\u");+          str("\\u", 2);           hex(c, 4);         }       }@@ -1929,31 +1929,31 @@ void Output::xml(const char *data, size_t size)         case '&':           str(t, s - t);           t = s + 1;-          str("&amp;");+          str("&amp;", 5);           break;          case '<':           str(t, s - t);           t = s + 1;-          str("&lt;");+          str("&lt;", 4);           break;          case '>':           str(t, s - t);           t = s + 1;-          str("&gt;");+          str("&gt;", 4);           break;          case '"':           str(t, s - t);           t = s + 1;-          str("&quot;");+          str("&quot;", 6);           break;          case 0x7f:           str(t, s - t);           t = s + 1;-          str("&#x7f;");+          str("&#x7f;", 6);           break;          default:@@ -1961,7 +1961,7 @@ void Output::xml(const char *data, size_t size)           {             str(t, s - t);             t = s + 1;-            str("&#");+            str("&#", 2);             num(c);             chr(';');           }

src/output.hpp

@@ -334,63 +334,75 @@ class Output {   }    // output a character c-  void chr(int c)+  inline void chr(int c)   {     if (cur_ >= buf_->data + SIZE)       next();     *cur_++ = c;   } -  // output a string s-  void str(const std::string& s)+  // output a std::string s+  inline void str(const std::string& s)   {     str(s.c_str(), s.size());   } -  // output a string s-  void str(const char *s)+  // output a \0-terminated string s+  inline void str(const char *s)   {-    while (*s != '\0')-      chr(*s++);+    if (s[0] != '\0')+    {+      if (s[1] != '\0')+        str(s, strlen(s));+      else+        chr(s[0]);+    }   } -  // output a string s up to n single byte characters-  void str(const char *s, size_t n)+  // output a string s of byte length n+  inline void str(const char *s, size_t n)   {-    while (n-- > 0)-      chr(*s++);+    while (cur_ + n >= buf_->data + SIZE)+    {+      size_t k = static_cast<size_t>(buf_->data + SIZE - cur_);+      memcpy(cur_, s, k);+      s += k;+      n -= k;+      cur_ += k;+      next();+    }+    memcpy(cur_, s, n);+    cur_ += n;   }    // output a UTF-8 multibyte string s of byte length n for up to k UTF-8-encoded characters-  void utf8strn(const char *s, size_t n, size_t k)+  inline void utf8strn(const char *s, size_t n, size_t k)   {+    const char *t = s;     while (n-- > 0 && k-- > 0)-    {-      do-        chr(*s++);-      while ((*s & 0xc0) == 0x80 && n-- > 0);-    }+      while ((*++s & 0xc0) == 0x80 && n-- > 0)+        continue;+    str(t, t - s);   }    // output a UTF-8 multibyte string s (\0-terminated) for up to k Unicode characters-  void utf8str(const char *s, size_t k)+  inline void utf8str(const char *s, size_t k)   {+    const char *t = s;     while (*s != '\0' && k-- > 0)-    {-      do-        chr(*s++);-      while ((*s & 0xc0) == 0x80);-    }+      while ((*++s & 0xc0) == 0x80)+        continue;+    str(t, t - s);   }    // output a URI-encoded string s-  void uri(const std::string& s)+  inline void uri(const std::string& s)   {     uri(s.c_str());   }    // output a URI-encoded string s-  void uri(const char *s)+  inline void uri(const char *s)   {     while (*s != '\0')     {@@ -401,13 +413,13 @@ class Output {       else       {         chr('%');-        hex(static_cast<unsigned char>(*s++), 2);+        hex(static_cast<uint8_t>(*s++), 2);       }     }   }    // output a match-  void mat(reflex::AbstractMatcher *matcher)+  inline void mat(reflex::AbstractMatcher *matcher)   {     if (flag_only_matching)     {@@ -422,7 +434,7 @@ class Output {   }    // output a quoted match with escapes for \ and "-  void quote(reflex::AbstractMatcher *matcher)+  inline void quote(reflex::AbstractMatcher *matcher)   {     if (flag_only_matching)     {@@ -437,7 +449,7 @@ class Output {   }    // output a match as a string in C/C++-  void cpp(reflex::AbstractMatcher *matcher)+  inline void cpp(reflex::AbstractMatcher *matcher)   {     if (flag_only_matching)     {@@ -452,7 +464,7 @@ class Output {   }    // output a match as a quoted string in CSV-  void csv(reflex::AbstractMatcher *matcher)+  inline void csv(reflex::AbstractMatcher *matcher)   {     if (flag_only_matching)     {@@ -467,7 +479,7 @@ class Output {   }    // output a match as a quoted string in JSON-  void json(reflex::AbstractMatcher *matcher)+  inline void json(reflex::AbstractMatcher *matcher)   {     if (flag_only_matching)     {@@ -482,7 +494,7 @@ class Output {   }    // output a match in XML-  void xml(reflex::AbstractMatcher *matcher)+  inline void xml(reflex::AbstractMatcher *matcher)   {     if (flag_only_matching)     {@@ -496,42 +508,44 @@ class Output {     }   } -  // output a number with field width w (padded with spaces)-  void num(size_t i, size_t w = 1)+  // output an unsigned integer i with field width w (padded with spaces)+  inline void num(size_t i, size_t w = 1)   {     char tmp[24];-    size_t n = 0;+    size_t k = sizeof(tmp);      do-      tmp[n++] = i % 10 + '0';+      tmp[--k] = i % 10 + '0';     while ((i /= 10) > 0); +    size_t n = sizeof(tmp) - k;+     while (w-- > n)       chr(' '); -    while (n > 0)-      chr(tmp[--n]);+    str(&tmp[k], n);   }    // output a number in hex with width w (padded with digit '0')-  void hex(size_t i, size_t w = 1)+  inline void hex(size_t i, size_t w = 1)   {     char tmp[16];-    size_t n = 0;+    size_t k = sizeof(tmp);      do-      tmp[n++] = "0123456789abcdef"[i % 16];-    while ((i /= 16) > 0);+      tmp[--k] = "0123456789abcdef"[i & 0xf];+    while ((i >>= 4) > 0);++    size_t n = sizeof(tmp) - k;      while (w-- > n)       chr('0'); -    while (n > 0)-      chr(tmp[--n]);+    str(&tmp[k], n);   } -  // output a byte in octal-  void oct(int i)+  // output a single byte in octal+  inline void oct(int i)   {     uint8_t b = static_cast<uint8_t>(i);     chr('0' + (b >> 6));@@ -540,7 +554,7 @@ class Output {   }    // output a newline (platform-specific conditional "\r\n" or "\n"); flush if --line-buffered.-  void nl(bool lf_only = false)+  inline void nl(bool lf_only = false)   {     if (!lf_only) #ifdef OS_WIN

src/ugrep.cpp

@@ -75,6 +75,7 @@ After this, you may want to test ugrep and install it (optional): #include "query.hpp" #include "stats.hpp" #include <reflex/matcher.h>+#include <reflex/linematcher.h> #include <reflex/fuzzymatcher.h> #include <iomanip> #include <cctype>@@ -604,7 +605,7 @@ inline bool is_binary(const char *s, size_t n)   if (memchr(s, '\0', n) != NULL)     return true; -  // not -U or -W with -U: file is binary if it has UTF-8+  // not -U or -W: file is binary if it has invalid UTF-8   if (!flag_binary || flag_with_hex)   {     if (n == 1)@@ -2150,6 +2151,17 @@ struct Grep {     size_t&      matches;  // grep::search matches local variable     bool&        stop;     // grep::search stop local variable +    // define a reflex::AbstractMatcher functor to handle buffer shifts by moving restline string from the buffer to a temporary string buffer+    virtual void operator()(reflex::AbstractMatcher&, const char*, size_t, size_t) override+    {+      // if the rest of the line was not output yet, then save it in a temporary string buffer to output later+      if (grep.restline_data != NULL)+      {+        grep.restline.assign(grep.restline_data, grep.restline_size);+        grep.restline_data = grep.restline.c_str();+      }+    }+     // get the start of the before context, if present     void begin_before(reflex::AbstractMatcher& matcher, const char *buf, size_t len, size_t num, const char*& ptr, size_t& size, size_t& offset)     {@@ -2263,7 +2275,7 @@ struct Grep {         if (flag_with_hex)           binary = false; -        binary = binary || flag_hex || (!flag_text && is_binary(ptr, size));+        binary = binary || flag_hex || (flag_with_hex && is_binary(ptr, size));          if (binfile || (binary && !flag_hex && !flag_with_hex))           break;@@ -2364,12 +2376,9 @@ struct Grep {   // extend event GrepHandler to output any context lines for -y   struct AnyLineGrepHandler : public GrepHandler { -    AnyLineGrepHandler(Grep& grep, const char*& pathname, size_t& lineno, bool& heading, bool& binfile, bool& hex, bool& binary, size_t& matches, bool& stop, const char*& rest_line_data, size_t& rest_line_size, size_t& rest_line_last)+    AnyLineGrepHandler(Grep& grep, const char*& pathname, size_t& lineno, bool& heading, bool& binfile, bool& hex, bool& binary, size_t& matches, bool& stop)       :-        GrepHandler(grep, pathname, lineno, heading, binfile, hex, binary, matches, stop),-        rest_line_data(rest_line_data),-        rest_line_size(rest_line_size),-        rest_line_last(rest_line_last)+        GrepHandler(grep, pathname, lineno, heading, binfile, hex, binary, matches, stop)     { }      // functor invoked by the reflex::AbstractMatcher when the buffer contents are shifted out, also called explicitly in grep::search@@ -2382,31 +2391,36 @@ struct Grep {       begin_before(matcher, buf, len, num, ptr, size, offset);        // display the rest of the matching line before the context lines-      if (rest_line_data != NULL && (lineno != matcher.lineno() || flag_ungroup))+      if (grep.restline_data != NULL && (lineno != matcher.lineno() || flag_ungroup))       {         if (binary)         {-          grep.out.dump.hex(flag_invert_match ? Output::Dump::HEX_CONTEXT_LINE : Output::Dump::HEX_LINE, rest_line_last, rest_line_data, rest_line_size);+          grep.out.dump.hex(flag_invert_match ? Output::Dump::HEX_CONTEXT_LINE : Output::Dump::HEX_LINE, grep.restline_last, grep.restline_data, grep.restline_size);           grep.out.dump.done();         }         else         {           bool lf_only = false;-          if (rest_line_size > 0)+          if (grep.restline_size > 0)           {-            lf_only = rest_line_data[rest_line_size - 1] == '\n';-            rest_line_size -= lf_only;-            if (rest_line_size > 0)+            lf_only = grep.restline_data[grep.restline_size - 1] == '\n';+            grep.restline_size -= lf_only;+            if (grep.restline_size > 0)             {               grep.out.str(flag_invert_match ? color_cx : color_sl);-              grep.out.str(rest_line_data, rest_line_size);+              grep.out.str(grep.restline_data, grep.restline_size);               grep.out.str(color_off);             }           }           grep.out.nl(lf_only);         } -        rest_line_data = NULL;+        grep.restline_data = NULL;+      }+      else+      {+        // save restline before the buffer shifts+        GrepHandler::operator()(matcher, buf, len, num);       }        // context colors with or without -v@@ -2447,7 +2461,7 @@ struct Grep {         if (flag_invert_match)           ++matches; -        binary = binary || flag_hex || (!flag_text && is_binary(ptr, size));+        binary = binary || flag_hex || (flag_with_hex && is_binary(ptr, size));          if (binfile || (binary && !flag_hex && !flag_with_hex))           break;@@ -2484,14 +2498,9 @@ struct Grep {         next_before(buf, len, num, ptr, size, offset);       }     }--    const char*& rest_line_data;-    size_t&      rest_line_size;-    size_t&      rest_line_last;-   }; -  // extend event AnyLineGrepHandler to output specific context lines for -A, -B and -C+  // extend event AnyLineGrepHandler to output specific context lines for -ABC   struct ContextGrepHandler : public AnyLineGrepHandler {      // context state to track context lines before and after a match@@ -2519,9 +2528,9 @@ struct Grep {      }; -    ContextGrepHandler(Grep& grep, const char*& pathname, size_t& lineno, bool& heading, bool& binfile, bool& hex, bool& binary, size_t& matches, bool& stop, const char*& rest_line_data, size_t& rest_line_size, size_t& rest_line_last)+    ContextGrepHandler(Grep& grep, const char*& pathname, size_t& lineno, bool& heading, bool& binfile, bool& hex, bool& binary, size_t& matches, bool& stop)       :-        AnyLineGrepHandler(grep, pathname, lineno, heading, binfile, hex, binary, matches, stop, rest_line_data, rest_line_size, rest_line_last)+        AnyLineGrepHandler(grep, pathname, lineno, heading, binfile, hex, binary, matches, stop)     { }      // display the before context@@ -2609,30 +2618,35 @@ struct Grep {       begin_before(matcher, buf, len, num, ptr, size, offset);        // display the rest of the matching line before the context lines-      if (rest_line_data != NULL && (lineno != matcher.lineno() || flag_ungroup))+      if (grep.restline_data != NULL && (lineno != matcher.lineno() || flag_ungroup))       {         if (binary)         {-          grep.out.dump.hex(flag_invert_match ? Output::Dump::HEX_CONTEXT_LINE : Output::Dump::HEX_LINE, rest_line_last, rest_line_data, rest_line_size);+          grep.out.dump.hex(flag_invert_match ? Output::Dump::HEX_CONTEXT_LINE : Output::Dump::HEX_LINE, grep.restline_last, grep.restline_data, grep.restline_size);         }         else         {           bool lf_only = false;-          if (rest_line_size > 0)+          if (grep.restline_size > 0)           {-            lf_only = rest_line_data[rest_line_size - 1] == '\n';-            rest_line_size -= lf_only;-            if (rest_line_size > 0)+            lf_only = grep.restline_data[grep.restline_size - 1] == '\n';+            grep.restline_size -= lf_only;+            if (grep.restline_size > 0)             {               grep.out.str(flag_invert_match ? color_cx : color_sl);-              grep.out.str(rest_line_data, rest_line_size);+              grep.out.str(grep.restline_data, grep.restline_size);               grep.out.str(color_off);             }           }           grep.out.nl(lf_only);         } -        rest_line_data = NULL;+        grep.restline_data = NULL;+      }+      else+      {+        // save restline before the buffer shifts+        GrepHandler::operator()(matcher, buf, len, num);       }        while (ptr != NULL)@@ -2668,7 +2682,7 @@ struct Grep {         if (flag_with_hex)           binary = false; -        binary = binary || flag_hex || (!flag_text && is_binary(ptr, size));+        binary = binary || flag_hex || (flag_with_hex && is_binary(ptr, size));          if (binfile || (binary && !flag_hex && !flag_with_hex))           break;@@ -2729,7 +2743,7 @@ struct Grep {    }; -  // extend event AnyLineGrepHandler to output specific context lines for -A, -B and -C with -v+  // extend event AnyLineGrepHandler to output specific context lines for -ABC with -v   struct InvertContextGrepHandler : public AnyLineGrepHandler {      struct InvertContextMatch {@@ -2776,9 +2790,9 @@ struct Grep {      }; -    InvertContextGrepHandler(Grep& grep, const char*& pathname, size_t& lineno, bool& heading, bool& binfile, bool& hex, bool& binary, size_t& matches, bool& stop, const char*& rest_line_data, size_t& rest_line_size, size_t& rest_line_last)+    InvertContextGrepHandler(Grep& grep, const char*& pathname, size_t& lineno, bool& heading, bool& binfile, bool& hex, bool& binary, size_t& matches, bool& stop)       :-        AnyLineGrepHandler(grep, pathname, lineno, heading, binfile, hex, binary, matches, stop, rest_line_data, rest_line_size, rest_line_last)+        AnyLineGrepHandler(grep, pathname, lineno, heading, binfile, hex, binary, matches, stop)     { }      // display the before context@@ -2920,30 +2934,35 @@ struct Grep {       begin_before(matcher, buf, len, num, ptr, size, offset);        // display the rest of the "after" matching line-      if (rest_line_data != NULL && (lineno != matcher.lineno() || flag_ungroup))+      if (grep.restline_data != NULL && (lineno != matcher.lineno() || flag_ungroup))       {         if (binary)         {-          grep.out.dump.hex(Output::Dump::HEX_CONTEXT_LINE, rest_line_last, rest_line_data, rest_line_size);+          grep.out.dump.hex(Output::Dump::HEX_CONTEXT_LINE, grep.restline_last, grep.restline_data, grep.restline_size);         }         else         {           bool lf_only = false;-          if (rest_line_size > 0)+          if (grep.restline_size > 0)           {-            lf_only = rest_line_data[rest_line_size - 1] == '\n';-            rest_line_size -= lf_only;-            if (rest_line_size > 0)+            lf_only = grep.restline_data[grep.restline_size - 1] == '\n';+            grep.restline_size -= lf_only;+            if (grep.restline_size > 0)             {               grep.out.str(color_cx);-              grep.out.str(rest_line_data, rest_line_size);+              grep.out.str(grep.restline_data, grep.restline_size);               grep.out.str(color_off);             }           }           grep.out.nl(lf_only);         } -        rest_line_data = NULL;+        grep.restline_data = NULL;+      }+      else+      {+        // save restline before the buffer shifts+        GrepHandler::operator()(matcher, buf, len, num);       }        if (ptr != NULL)@@ -2983,7 +3002,7 @@ struct Grep {         if (flag_with_hex)           binary = false; -        binary = binary || flag_hex || (!flag_text && is_binary(ptr, size));+        binary = binary || flag_hex || (flag_with_hex && is_binary(ptr, size));          if (binfile || (binary && !flag_hex && !flag_with_hex))           break;@@ -3042,9 +3061,7 @@ struct Grep {     , stream(NULL) #endif #endif-  {-    restline.reserve(256); // pre-reserve a "rest line" of input to display matches to limit heap allocs-  }+  { }    virtual ~Grep()   {@@ -3719,15 +3736,21 @@ struct Grep {     return true;   } -  // after opening a file with init_read, check if its initial part (64K or what could be read) is binary+  // after opening a file with init_read, check if its initial part (up to 64K or what could be read) is binary   bool init_is_binary()   {-    return is_binary(matcher->begin(), matcher->avail());+    size_t avail = matcher->avail();+    if (avail > 65536)+      avail = 65536;+    return is_binary(matcher->begin(), avail);   }    const char                    *filename;      // the name of the file being searched   std::string                    partname;      // the name of an extracted file from an archive   std::string                    restline;      // a buffer to store the rest of a line to search+  const char                    *restline_data; // rest of the line data pointer or NULL+  size_t                         restline_size; // rest of the line size+  size_t                         restline_last; // rest of the line last byte offset   Output                         out;           // asynchronous output   reflex::AbstractMatcher       *matcher;       // the pattern matcher we're using, never NULL   Matchers                      *matchers;      // the CNF of AND/OR/NOT matchers or NULL@@ -5376,16 +5399,15 @@ void options(std::list<std::pair<CNF::PATTERN,const char*>>& pattern_args, int a             break;            case 'Q':-            ++arg;-            if (*arg == '=' || isdigit(*arg))+            if (arg[1] == '=')             {-              flag_query = strtopos(&arg[*arg == '='], "invalid argument -Q=");+              ++arg;+              flag_query = strtopos(arg + 1, "invalid argument -Q=");               is_grouped = false;             }             else             {               flag_query = DEFAULT_QUERY_DELAY;-              --arg;             }             break; @@ -7225,20 +7247,20 @@ void ugrep()       // an empty pattern specified matches every line, including empty lines       if (regex.empty())       {-        if (flag_count)+        if (bcnf.empty())         {-          // regex optimized for speed, but match count needs adjustment later when last line has no \n-          regex = "\\n";+          if (!flag_hex)+            flag_only_matching = false;         }         else if (!flag_quiet && !flag_files_with_matches && !flag_files_without_match)         {           if (flag_hex)-            regex = ".*\\n?"; // include trailing \n of a line when outputting hex+            regex.assign("(?-u)[^\\n]*\\n?"); // include trailing \n of a line when outputting hex per line           else-            regex = "^.*"; // use ^.* to prevent -o from reporting an extra empty match+            regex.assign("(?-u)[^\\n]*");         } -        // an empty pattern matches every line+        // an empty pattern matches every line, including empty lines         flag_empty = true;         flag_dotall = false;       }@@ -7246,7 +7268,6 @@ void ugrep()       // CNF is empty if all patterns are empty, i.e. match anything unless -f FILE specified       if (bcnf.empty())       {-        // match every line         flag_match = true;         flag_dotall = false;       }@@ -7257,20 +7278,15 @@ void ugrep()        if (bcnf.first_empty())       {-        if (flag_count)-        {-          // regex optimized for speed, but match count needs adjustment later when last line has no \n-          regex = "\\n";-        }-        else if (!flag_quiet && !flag_files_with_matches && !flag_files_without_match)+        if (!flag_quiet && !flag_files_with_matches && !flag_files_without_match)         {           if (flag_hex)-            regex = ".*\\n?";+            regex.assign("(?-u)[^\\n]*\\n?"); // include trailing \n of a line when outputting hex per line           else-            regex = "^.*"; // use ^.* to prevent -o from reporting an extra empty match+            regex.assign("(?-u)[^\\n]*");         } -        // an empty pattern specified with -e '' matches every line+        // an empty pattern specified with -e '' matches every line, including empty lines         flag_empty = true;       }       else@@ -7281,14 +7297,6 @@ void ugrep()     }   } -  // -x or --match: enable -Y and disable --dotall and -w-  if (flag_line_regexp || flag_match)-  {-    flag_empty = true;-    flag_dotall = false;-    flag_word_regexp = false;-  }-   // -f: get patterns from file   if (!flag_file.empty())   {@@ -7364,26 +7372,29 @@ void ugrep()      if (regex.empty())     {-      if (flag_count)+      if (bcnf.empty())       {-        // regex optimized for speed, but match count needs adjustment later when last line has no \n-        regex = "\\n";+        if (!flag_hex)+          flag_only_matching = false;       }       else if (!flag_quiet && !flag_files_with_matches && !flag_files_without_match)       {         if (flag_hex)-          regex = ".*\\n?"; // include trailing \n of a line when outputting hex+          regex.assign("(?-u)[^\\n]*\\n?"); // include trailing \n of a line when outputting hex per line         else-          regex = "^.*"; // use ^.* to prevent -o from reporting an extra empty match+          regex.assign("(?-u)[^\\n]*");       } -      // an empty pattern matches every line+      // an empty pattern matches every line, including empty lines       flag_empty = true;       flag_dotall = false;        // CNF is empty if all patterns are empty       if (bcnf.empty())+      {         flag_match = true;+        flag_word_regexp = false;+      }     }     else     {@@ -7393,22 +7404,54 @@ void ugrep()         regex.pop_back();     } -    // -G requires \( \) instead of ( ) and -P requires (?<!\w) (?!\w) instead of \< and \>-    const char *xleft = flag_basic_regexp ? "^\\(" : "^(?:";-    const char *xright = flag_basic_regexp ? "\\)$" : ")$";+    // -x or -w: if no PATTERN is specified, then apply -x or -w to all -f FILE patterns+    if (regex.empty())+    {+      if (line_regexp)+        regex.assign("^$");+    }+    else+    {+      // -G requires \( \) instead of ( ) and -P requires (?<!\w) (?!\w) instead of \< and \>+      const char *xleft = flag_basic_regexp ? "^\\(" : "^(?:";+      const char *xright = flag_basic_regexp ? "\\)$" : ")$"; #if defined(HAVE_PCRE2)-    const char *wleft = flag_basic_regexp ? "\\<\\(" : flag_perl_regexp ? "(?<!\\w)(?:" : "\\<(";-    const char *wright = flag_basic_regexp ? "\\)\\>" : flag_perl_regexp ? ")(?!\\w)" : ")\\>";+      const char *wleft = flag_basic_regexp ? "\\<\\(" : flag_perl_regexp ? "(?<!\\w)(?:" : "\\<(";+      const char *wright = flag_basic_regexp ? "\\)\\>" : flag_perl_regexp ? ")(?!\\w)" : ")\\>"; #else // Boost.Regex-    const char *wleft = flag_basic_regexp ? "\\<\\(" : flag_perl_regexp ? "(?<![[:word:]])(?:" : "\\<(";-    const char *wright = flag_basic_regexp ? "\\)\\>" : flag_perl_regexp ? ")(?![[:word:]])" : ")\\>";+      const char *wleft = flag_basic_regexp ? "\\<\\(" : flag_perl_regexp ? "(?<![[:word:]])(?:" : "\\<(";+      const char *wright = flag_basic_regexp ? "\\)\\>" : flag_perl_regexp ? ")(?![[:word:]])" : ")\\>"; #endif -    // -x or -w: if no PATTERN is specified, then apply -x or -w to -f FILE patterns-    if (line_regexp)-      regex.insert(0, xleft).append(xright); // make the regex line-anchored-    else if (word_regexp)-      regex.insert(0, wleft).append(wright); // make the regex word-anchored+      if (line_regexp)+        regex.insert(0, xleft).append(xright); // make the regex line-anchored+      else if (word_regexp)+        regex.insert(0, wleft).append(wright); // make the regex word-anchored+    }+  }++  // patterns ^, $ and ^$ are special cases to optimize for search+  if (!flag_fixed_strings && bcnf.singleton_or_undefined())+  {+    if (regex == "^$")+    {+      regex.clear();+      flag_match = true;+      flag_line_regexp = true;+    }+    else if (regex == "^" || regex == "$")+    {+      flag_match = true;+      regex.clear();+    }+  }++  // -x or --match: enable -Y and disable --dotall and -w+  if (flag_line_regexp || flag_match)+  {+    flag_empty = true;+    flag_dotall = false;+    flag_word_regexp = false;   }    // --match: adjust color highlighting to show matches as selected lines without color@@ -7479,14 +7522,18 @@ void ugrep()   if (flag_invert_match || flag_any_line)     flag_only_matching = flag_ungroup = false; -  // --match: when matching everything disable -A, -B and -C unless -o+  // --match: when matching everything disable -ABC unless -o   if (flag_match && !flag_only_matching)     flag_after_context = flag_before_context = 0; -  // -y: disable -A, -B and -C+  // -y: disable -ABC   if (flag_any_line)     flag_after_context = flag_before_context = 0; +  // -o and --replace: disable -ABC+  if (flag_only_matching && flag_replace != NULL)+    flag_after_context = flag_before_context = 0;+   // --depth: if -R or -r is not specified then enable -r   if ((flag_min_depth > 0 || flag_max_depth > 0) && flag_directories_action == Action::UNSP)     flag_directories_action = Action::RECURSE;@@ -7601,7 +7648,7 @@ void ugrep()   // reflex::Matcher options   std::string matcher_options; -  // -Y: permit empty pattern matches and match closing ) when no opening ( unless -P and -F+  // -Y: permit empty pattern matches and literally match closing ) when not paired with ( unless -P or -F   if (flag_empty)   {     if (!flag_perl_regexp && !flag_fixed_strings)@@ -7657,9 +7704,45 @@ void ugrep()   size_t words_time = 0;   size_t hashing_time = 0; -  // -P: Perl matching with PCRE2 or Boost.Regex-  if (flag_perl_regexp)+  if (flag_match)   {+    // --match: match lines++    if (flag_line_regexp)+    {+      // -xv and --match: don't match empty lines (remove LineMatcher option N)+      if (flag_invert_match)+        matcher_options.clear();+      else // -x and --match: only match empty lines (set LineMatcher option W)+        matcher_options.push_back('W');++      // do not invert when searching+      flag_invert_match = false;+    }++    // -X (--hex) and --match: also output terminating \n in hexdumps (set LineMatcher option A)+    if (flag_hex)+      matcher_options.push_back('A');++    // --match: match lines with the RE/flex Line Matcher+    reflex::LineMatcher matcher(reflex::Input(), matcher_options.c_str());++    if (threads > 1)+    {+      GrepMaster grep(output, &matcher, NULL);+      grep.ugrep();+    }+    else+    {+      Grep grep(output, &matcher, NULL);+      set_grep_handle(&grep);+      grep.ugrep();+      clear_grep_handle();+    }+  }+  else if (flag_perl_regexp)+  {+    // -P: Perl matching with PCRE2 or Boost.Regex #if defined(HAVE_PCRE2)     // construct the PCRE2 JIT-optimized NFA-based Perl pattern matcher     std::string pattern(flag_binary ? reflex::PCRE2Matcher::convert(regex, convert_flags) : reflex::PCRE2UTFMatcher::convert(regex, convert_flags));@@ -9311,10 +9394,6 @@ void Grep::search(const char *pathname, uint16_t cost)                 --matches;             }           }--          // --match: adjust match count when the last line has no \n line ending-          if (flag_match && matcher->last() > 0 && *(matcher->eol(true) - 1) != '\n')-            ++matches;         }          // --min-count: require at least min-count matches@@ -9391,7 +9470,7 @@ void Grep::search(const char *pathname, uint16_t cost)           // construct event handler functor with captured *this and some of the locals           FormatInvertMatchGrepHandler invert_match_handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop); -          // register an event handler to display non-matching lines+          // register the event handler to display non-matching lines           matcher->set_handler(&invert_match_handler);            // to get the context from the invert_match handler explicitly@@ -9541,27 +9620,231 @@ void Grep::search(const char *pathname, uint16_t cost)         if (matches > 0 && flag_format_close != NULL)           out.format(flag_format_close, pathname, partname, Stats::found_parts(), NULL, matcher, heading, false, Stats::found_parts() > 1);       }+      else if (flag_only_matching && flag_before_context == 0 && flag_after_context == 0)+      {+        // option -o without -ABC++        size_t lineno = 0;+        size_t matching = 0;+        bool heading = flag_with_filename;+        bool binfile = !flag_text && !flag_hex && !flag_with_hex && !flag_binary_without_match && init_is_binary();+        bool hex = false;+        bool binary = false;+        bool nl = false;++        while (matcher->find())+        {+          const char *begin = matcher->begin();+          size_t size = matcher->size();++          binary = flag_hex || (flag_with_hex && is_binary(begin, size));++          if (hex && !binary)+          {+            out.dump.done();+          }+          else if (!hex && binary && nl)+          {+            out.nl();+            nl = false;+          }++          size_t current_lineno = matcher->lineno();++          if (nl)+          {+            out.nl();+            nl = false;+          }++          // --range: max line exceeded?+          if (flag_max_line > 0 && current_lineno > flag_max_line)+            break;++          // output blocked?+          if (out.eof)+            goto exit_search;++          if (matchers != NULL)+          {+            const char *eol = matcher->eol(true); // warning: call eol() before bol() and end()+            const char *bol = matcher->bol();++            // check CNF AND/OR/NOT matching+            if (!cnf_matching(bol, eol))+              continue;+          }++          if (lineno != current_lineno || flag_ungroup)+          {+            ++matches;++            // --min-count: require at least min-count matches+            if (flag_min_count > 0 && matches < flag_min_count)+            {+              lineno = current_lineno;+              continue;+            }++            // --max-count: max number of matches reached?+            if (flag_max_count > 0 && matches > flag_max_count)+              break;++            if (matches == flag_min_count + (flag_min_count == 0) && (!flag_files || matchers == NULL))+            {+              // --max-files: max reached?+              if (!Stats::found_part())+                goto exit_search;+            }+          }++          if (binfile || (binary && !flag_hex && !flag_with_hex))+          {+            if (flag_binary_without_match)+            {+              matches = 0;+            }+            else+            {+              out.binary_file_matches(pathname, partname);+              matches = 1;+            }++            if (flag_files && matchers != NULL && out.holding())+              continue;++            goto done_search;+          }++          if (!flag_no_header)+          {+            const char *separator = lineno != current_lineno ? flag_separator : flag_separator_plus;+            out.header(pathname, partname, heading, current_lineno, matcher, matcher->first(), separator, binary);+          }++          lineno = current_lineno;++          // --min-count: require at least min-count matches+          if (flag_min_count > 0 && matches < flag_min_count)+            continue;++          hex = binary;++          if (binary)+          {+            if (flag_hex || flag_with_hex)+            {+              out.dump.next(matcher->first());+              out.dump.hex(Output::Dump::HEX_MATCH, matcher->first(), begin, size);+            }+            else+            {+              if (flag_binary_without_match)+              {+                matches = 0;+              }+              else+              {+                out.binary_file_matches(pathname, partname);+                matches = 1;+              }++              if (flag_files && matchers != NULL && out.holding())+                continue;++              goto done_search;+            }++            lineno += matcher->lines() - 1;+          }+          else if (flag_replace != NULL)+          {+            // output --replace=FORMAT+            out.str(match_ms);+            out.format(flag_replace, pathname, partname, matches, &matching, matcher, heading, matches > 1, matches > 1);+            out.str(match_off);+          }+          else+          {+            // echo multi-line matches line-by-line++            const char *from = begin;+            const char *to;++            while ((to = static_cast<const char*>(memchr(from, '\n', size - (from - begin)))) != NULL)+            {+              out.str(match_ms);+              out.str(from, to - from);+              out.str(match_off);+              out.chr('\n');++              out.header(pathname, partname, heading, ++lineno, NULL, matcher->first() + (to - begin) + 1, flag_separator_bar, false);++              from = to + 1;+            }++            size -= from - begin;++            if (size > 0)+            {+              bool lf_only = from[size - 1] == '\n';+              size -= lf_only;+              if (size > 0)+              {+                out.str(match_ms);+                out.str(from, size);+                out.str(match_off);+              }+              out.nl(lf_only);+            }+            else+            {+              nl = true;+            }+          }+        }++        // --min-count: require at least min-count matches+        if (flag_min_count > 0 && matches < flag_min_count)+          goto exit_search;++        if (nl)+          out.nl();++        if (hex)+          out.dump.done();+      }       else if (flag_only_matching)       {-        // option -o+        // option -o with -ABC specified          size_t count = 0;         size_t width = flag_before_context + flag_after_context;         size_t lineno = 0;-        size_t matching = 0;         bool heading = flag_with_filename;         bool binfile = !flag_text && !flag_hex && !flag_with_hex && !flag_binary_without_match && init_is_binary();         bool hex = false;+        bool binary = false;         bool nl = false;-        const char *restline_data = NULL;-        size_t restline_size = 0;-        size_t restline_last = 0;+        bool stop = false;++        // construct event handler functor with captured *this and some of the locals+        GrepHandler handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop);++        // register the event handler to update restline on buffer shift+        matcher->set_handler(&handler);++        // the rest of the matching line+        restline_data = NULL;+        restline_size = 0;+        restline_last = 0;          while (matcher->find())         {           const char *begin = matcher->begin();           size_t size = matcher->size();-          bool binary = flag_hex || (!flag_text && is_binary(begin, size));++          binary = flag_hex || (flag_with_hex && is_binary(begin, size));            if (hex && !binary)           {@@ -9585,7 +9868,7 @@ void Grep::search(const char *pathname, uint16_t cost)                 out.utf8strn(restline_data, restline_size, width);                 out.str(color_off);                 out.str(color_se);-                out.str("...");+                out.str("...", 3);               }               else               {@@ -9598,12 +9881,12 @@ void Grep::search(const char *pathname, uint16_t cost)             if (count > 0)             {               out.str(color_se);-              out.str("...");+              out.str("...", 3);               out.str(color_off);               out.str(color_cn);-              out.str("[+");+              out.str("[+", 2);               out.num(count);-              out.str(" more]");+              out.str(" more]", 6);               out.str(color_off);             } @@ -9714,13 +9997,6 @@ void Grep::search(const char *pathname, uint16_t cost)              lineno += matcher->lines() - 1;           }-          else if (flag_replace != NULL)-          {-            // output --replace=FORMAT-            out.str(match_ms);-            out.format(flag_replace, pathname, partname, matches, &matching, matcher, heading, matches > 1, matches > 1);-            out.str(match_off);-          }           else if (flag_before_context + flag_after_context > 0)           {             if (restline_size > 0)@@ -9785,7 +10061,7 @@ void Grep::search(const char *pathname, uint16_t cost)                 if (margin > before)                 {                   out.str(color_se);-                  out.str("...");+                  out.str("...", 3);                   out.str(color_off);                   out.str(color_cx);                   out.utf8strn(utf8skipn(bol, border, margin - before), border, before);@@ -9794,9 +10070,12 @@ void Grep::search(const char *pathname, uint16_t cost)                 }                 else                 {-                  out.str(color_cx);-                  out.str(bol, border);-                  out.str(color_off);+                  if (border > 0)+                  {+                    out.str(color_cx);+                    out.str(bol, border);+                    out.str(color_off);+                  }                   width -= margin;                 }               }@@ -9809,18 +10088,17 @@ void Grep::search(const char *pathname, uint16_t cost)               else               {                 out.utf8strn(begin, size, fit_length);-                out.str("[+");+                out.str("[+", 2);                 out.num(length - fit_length);-                out.str("]");+                out.chr(']');               }               out.str(match_off);                const char *eol = matcher->eol(); // warning: call eol() before bol() and end()               const char *end = matcher->end(); -              restline.assign(end, eol - end);-              restline_data = restline.c_str();-              restline_size = restline.size();+              restline_data = end;+              restline_size = eol - end;               restline_last = matcher->last();             } @@ -9880,7 +10158,7 @@ void Grep::search(const char *pathname, uint16_t cost)               out.utf8strn(restline_data, restline_size, width);               out.str(color_off);               out.str(color_se);-              out.str("...");+              out.str("...", 3);             }             else             {@@ -9893,12 +10171,12 @@ void Grep::search(const char *pathname, uint16_t cost)           if (count > 0)           {             out.str(color_se);-            out.str("...");+            out.str("...", 3);             out.str(color_off);             out.str(color_cn);-            out.str("[+");+            out.str("[+", 2);             out.num(count);-            out.str(" more]");+            out.str(" more]", 6);             out.str(color_off);           } @@ -9910,7 +10188,7 @@ void Grep::search(const char *pathname, uint16_t cost)       }       else if (flag_before_context == 0 && flag_after_context == 0 && !flag_any_line && !flag_invert_match)       {-        // options -A, -B, -C, -y, -v are not specified+        // options -ABC, -y, -v are not specified          size_t lineno = 0;         size_t matching = 0;@@ -9918,9 +10196,18 @@ void Grep::search(const char *pathname, uint16_t cost)         bool binfile = !flag_text && !flag_hex && !flag_with_hex && !flag_binary_without_match && init_is_binary();         bool hex = false;         bool binary = false;-        const char *restline_data = NULL;-        size_t restline_size = 0;-        size_t restline_last = 0;+        bool stop = false;++        // construct event handler functor with captured *this and some of the locals+        GrepHandler handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop);++        // register the event handler to update restline on buffer shift+        matcher->set_handler(&handler);++        // the rest of the matching line+        restline_data = NULL;+        restline_size = 0;+        restline_last = 0;          while (matcher->find())         {@@ -9999,7 +10286,7 @@ void Grep::search(const char *pathname, uint16_t cost)                 goto exit_search;             } -            binary = flag_hex || (!flag_text && is_binary(bol, eol - bol));+            binary = flag_hex || (flag_with_hex && is_binary(bol, eol - bol));              if (binfile || (binary && !flag_hex && !flag_with_hex))             {@@ -10067,9 +10354,8 @@ void Grep::search(const char *pathname, uint16_t cost)               }               else               {-                restline.assign(end, eol - end);-                restline_data = restline.c_str();-                restline_size = restline.size();+                restline_data = end;+                restline_size = eol - end;                 restline_last = matcher->last();               } @@ -10077,9 +10363,12 @@ void Grep::search(const char *pathname, uint16_t cost)             }             else             {-              out.str(color_sl);-              out.str(bol, border);-              out.str(color_off);+              if (border > 0)+              {+                out.str(color_sl);+                out.str(bol, border);+                out.str(color_off);+              }                if (flag_replace != NULL)               {@@ -10140,9 +10429,8 @@ void Grep::search(const char *pathname, uint16_t cost)               }               else               {-                restline.assign(end, eol - end);-                restline_data = restline.c_str();-                restline_size = restline.size();+                restline_data = end;+                restline_size = eol - end;                 restline_last = matcher->last();               }             }@@ -10254,7 +10542,7 @@ void Grep::search(const char *pathname, uint16_t cost)                   const char *eol = matcher->eol(true); // warning: call eol() before end()                   const char *end = matcher->end(); -                  binary = flag_hex || (!flag_text && is_binary(end, eol - end));+                  binary = flag_hex || (flag_with_hex && is_binary(end, eol - end));                    if (hex && !binary)                     out.dump.done();@@ -10306,9 +10594,8 @@ void Grep::search(const char *pathname, uint16_t cost)                   }                   else                   {-                    restline.assign(end, eol - end);-                    restline_data = restline.c_str();-                    restline_size = restline.size();+                    restline_data = end;+                    restline_size = eol - end;                     restline_last = last;                   } @@ -10361,7 +10648,7 @@ void Grep::search(const char *pathname, uint16_t cost)       }       else if (flag_before_context == 0 && flag_after_context == 0 && !flag_any_line)       {-        // option -v without -A, -B, -C, -y+        // option -v without -ABC, -y          // InvertMatchHandler requires lineno to be set precisely, i.e. after skipping --range lines         size_t lineno = flag_min_line > 0 ? flag_min_line - 1 : 0;@@ -10374,7 +10661,7 @@ void Grep::search(const char *pathname, uint16_t cost)         // construct event handler functor with captured *this and some of the locals         InvertMatchGrepHandler invert_match_handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop); -        // register an event handler to display non-matching lines+        // register the event handler to display non-matching lines         matcher->set_handler(&invert_match_handler);          // to get the context from the invert_match handler explicitly@@ -10460,14 +10747,14 @@ void Grep::search(const char *pathname, uint16_t cost)         bool stop = false;          // to display the rest of the matching line-        const char *restline_data = NULL;-        size_t restline_size = 0;-        size_t restline_last = 0;+        restline_data = NULL;+        restline_size = 0;+        restline_last = 0;          // construct event handler functor with captured *this and some of the locals-        AnyLineGrepHandler any_line_handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop, restline_data, restline_size, restline_last);+        AnyLineGrepHandler any_line_handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop); -        // register an event handler functor to display non-matching lines+        // register the event handler functor to display non-matching lines         matcher->set_handler(&any_line_handler);          // to display colors with or without -v@@ -10579,7 +10866,7 @@ void Grep::search(const char *pathname, uint16_t cost)             if (out.eof)               goto exit_search; -            binary = flag_hex || (!flag_text && is_binary(bol, eol - bol));+            binary = flag_hex || (flag_with_hex && is_binary(bol, eol - bol));              if (binfile || (binary && !flag_hex && !flag_with_hex))             {@@ -10635,9 +10922,8 @@ void Grep::search(const char *pathname, uint16_t cost)               }               else               {-                restline.assign(end, eol - end);-                restline_data = restline.c_str();-                restline_size = restline.size();+                restline_data = end;+                restline_size = eol - end;                 restline_last = matcher->last();               } @@ -10645,9 +10931,12 @@ void Grep::search(const char *pathname, uint16_t cost)             }             else             {-              out.str(v_color_sl);-              out.str(bol, border);-              out.str(color_off);+              if (border > 0)+              {+                out.str(v_color_sl);+                out.str(bol, border);+                out.str(color_off);+              }                if (flag_replace != NULL)               {@@ -10708,9 +10997,8 @@ void Grep::search(const char *pathname, uint16_t cost)               }               else               {-                restline.assign(end, eol - end);-                restline_data = restline.c_str();-                restline_size = restline.size();+                restline_data = end;+                restline_size = eol - end;                 restline_last = matcher->last();               }             }@@ -10795,7 +11083,7 @@ void Grep::search(const char *pathname, uint16_t cost)                   const char *eol = matcher->eol(true); // warning: call eol() before end()                   const char *end = matcher->end(); -                  binary = flag_hex || (!flag_text && is_binary(end, eol - end));+                  binary = flag_hex || (flag_with_hex && is_binary(end, eol - end));                    if (hex && !binary)                     out.dump.done();@@ -10840,9 +11128,8 @@ void Grep::search(const char *pathname, uint16_t cost)                   }                   else                   {-                    restline.assign(end, eol - end);-                    restline_data = restline.c_str();-                    restline_size = restline.size();+                    restline_data = end;+                    restline_size = eol - end;                     restline_last = last;                   } @@ -10902,7 +11189,7 @@ void Grep::search(const char *pathname, uint16_t cost)       }       else if (!flag_invert_match)       {-        // options -A, -B, -C without -v+        // options -ABC without -v          // ContextGrepHandler requires lineno to be set precisely, i.e. after skipping --range lines         size_t lineno = flag_min_line > 0 ? flag_min_line - 1 : 0;@@ -10914,14 +11201,14 @@ void Grep::search(const char *pathname, uint16_t cost)         bool stop = false;          // to display the rest of the matching line-        const char *restline_data = NULL;-        size_t restline_size = 0;-        size_t restline_last = 0;+        restline_data = NULL;+        restline_size = 0;+        restline_last = 0;          // construct event handler functor with captured *this and some of the locals-        ContextGrepHandler context_handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop, restline_data, restline_size, restline_last);+        ContextGrepHandler context_handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop); -        // register an event handler functor to display non-matching lines+        // register the event handler functor to display non-matching lines         matcher->set_handler(&context_handler);          // to get the context from the any_line handler explicitly@@ -11031,7 +11318,7 @@ void Grep::search(const char *pathname, uint16_t cost)             if (out.eof)               goto exit_search; -            binary = flag_hex || (!flag_text && is_binary(bol, eol - bol));+            binary = flag_hex || (flag_with_hex && is_binary(bol, eol - bol));              if (binfile || (binary && !flag_hex && !flag_with_hex))             {@@ -11092,9 +11379,8 @@ void Grep::search(const char *pathname, uint16_t cost)               }               else               {-                restline.assign(end, eol - end);-                restline_data = restline.c_str();-                restline_size = restline.size();+                restline_data = end;+                restline_size = eol - end;                 restline_last = matcher->last();               } @@ -11102,9 +11388,12 @@ void Grep::search(const char *pathname, uint16_t cost)             }             else             {-              out.str(color_sl);-              out.str(bol, border);-              out.str(color_off);+              if (border > 0)+              {+                out.str(color_sl);+                out.str(bol, border);+                out.str(color_off);+              }                if (flag_replace != NULL)               {@@ -11165,9 +11454,8 @@ void Grep::search(const char *pathname, uint16_t cost)               }               else               {-                restline.assign(end, eol - end);-                restline_data = restline.c_str();-                restline_size = restline.size();+                restline_data = end;+                restline_size = eol - end;                 restline_last = matcher->last();               }             }@@ -11252,7 +11540,7 @@ void Grep::search(const char *pathname, uint16_t cost)                   const char *eol = matcher->eol(true); // warning: call eol() before end()                   const char *end = matcher->end(); -                  binary = flag_hex || (!flag_text && is_binary(end, eol - end));+                  binary = flag_hex || (flag_with_hex && is_binary(end, eol - end));                    if (hex && !binary)                     out.dump.done();@@ -11297,9 +11585,8 @@ void Grep::search(const char *pathname, uint16_t cost)                   }                   else                   {-                    restline.assign(end, eol - end);-                    restline_data = restline.c_str();-                    restline_size = restline.size();+                    restline_data = end;+                    restline_size = eol - end;                     restline_last = last;                   } @@ -11364,7 +11651,7 @@ void Grep::search(const char *pathname, uint16_t cost)       }       else       {-        // options -A, -B, -C with -v+        // options -ABC with -v          // InvertContextGrepHandler requires lineno to be set precisely, i.e. after skipping --range lines         size_t lineno = flag_min_line > 0 ? flag_min_line - 1 : 0;@@ -11378,14 +11665,14 @@ void Grep::search(const char *pathname, uint16_t cost)         bool stop = false;          // to display the rest of the matching line-        const char *restline_data = NULL;-        size_t restline_size = 0;-        size_t restline_last = 0;+        restline_data = NULL;+        restline_size = 0;+        restline_last = 0;          // construct event handler functor with captured *this and some of the locals-        InvertContextGrepHandler invert_context_handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop, restline_data, restline_size, restline_last);+        InvertContextGrepHandler invert_context_handler(*this, pathname, lineno, heading, binfile, hex, binary, matches, stop); -        // register an event handler functor to display non-matching lines+        // register the event handler functor to display non-matching lines         matcher->set_handler(&invert_context_handler);          // to get the context from the handler explicitly@@ -11491,7 +11778,7 @@ void Grep::search(const char *pathname, uint16_t cost)              if (after < flag_after_context)             {-              binary = flag_hex || (!flag_text && is_binary(bol, eol - bol));+              binary = flag_hex || (flag_with_hex && is_binary(bol, eol - bol));                if (binfile || (binary && !flag_hex && !flag_with_hex))               {@@ -11536,17 +11823,19 @@ void Grep::search(const char *pathname, uint16_t cost)                   out.dump.hex(Output::Dump::HEX_CONTEXT_LINE, first - border, bol, border);                   out.dump.hex(Output::Dump::HEX_CONTEXT_MATCH, first, begin, size); -                  restline.assign(end, eol - end);-                  restline_data = restline.c_str();-                  restline_size = restline.size();+                  restline_data = end;+                  restline_size = eol - end;                   restline_last = matcher->last();                 }               }               else               {-                out.str(color_cx);-                out.str(bol, border);-                out.str(color_off);+                if (border > 0)+                {+                  out.str(color_cx);+                  out.str(bol, border);+                  out.str(color_off);+                }                  if (flag_replace != NULL)                 {@@ -11587,15 +11876,14 @@ void Grep::search(const char *pathname, uint16_t cost)                   out.str(match_off);                 } -                restline.assign(end, eol - end);-                restline_data = restline.c_str();-                restline_size = restline.size();+                restline_data = end;+                restline_size = eol - end;                 restline_last = matcher->last();               }             }             else if (flag_before_context > 0)             {-              binary = flag_hex || (!flag_text && is_binary(bol, eol - bol));+              binary = flag_hex || (flag_with_hex && is_binary(bol, eol - bol));                if (binfile || (binary && !flag_hex && !flag_with_hex))               {@@ -11733,7 +12021,7 @@ void Grep::search(const char *pathname, uint16_t cost)                   const char *eol = matcher->eol(true); // warning: call eol() before end()                   const char *end = matcher->end(); -                  binary = flag_hex || (!flag_text && is_binary(end, eol - end));+                  binary = flag_hex || (flag_with_hex && is_binary(end, eol - end));                    if (hex && !binary)                     out.dump.done();@@ -11745,9 +12033,8 @@ void Grep::search(const char *pathname, uint16_t cost)                    hex = binary; -                  restline.assign(end, eol - end);-                  restline_data = restline.c_str();-                  restline_size = restline.size();+                  restline_data = end;+                  restline_size = eol - end;                   restline_last = last;                 }               }@@ -11799,7 +12086,7 @@ void Grep::search(const char *pathname, uint16_t cost)                  const char *end = matcher->end(); -                binary = flag_hex || (!flag_text && is_binary(end, eol - end));+                binary = flag_hex || (flag_with_hex && is_binary(end, eol - end));                  if (binfile || (binary && !flag_hex && !flag_with_hex))                 {@@ -12810,7 +13097,7 @@ void help(std::ostream& out)     --pretty\n\             When output is sent to a terminal, enables --color, --heading, -n,\n\             --sort, --tree and -T when not explicitly disabled.\n\-    -Q[DELAY], --query[=DELAY]\n\+    -Q[=DELAY], --query[=DELAY]\n\             Query mode: user interface to perform interactive searches.  This\n\             mode requires an ANSI capable terminal.  An optional DELAY argument\n\             may be specified to reduce or increase the response time to execute\n\

src/ugrep.hpp

@@ -38,7 +38,7 @@ #define UGREP_HPP  // ugrep version-#define UGREP_VERSION "3.12.7"+#define UGREP_VERSION "4.0.0"  // disable mmap because mmap is almost always slower than the file reading speed improvements since 3.0.0 #define WITH_NO_MMAP

tests/archive.gz

Binary file changed

tests/archive.tar.zip

Binary file changed

tests/archive.tgz

Binary file changed

tests/archive2.tgz

Binary file changed

tests/archive3.tgz

Binary file changed

tests/out/Hello--and--not.out

@@ -1,3 +1,3 @@ Hello.java:public class Hello // prints a Hello World! greeting Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello--andnot.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_--bool-C2.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_--bool-o.out

@@ -2,7 +2,7 @@ Hello.bat:echo "Hello World!" Binary file Hello.class matches Hello.java:import java.lang.*;-Hello.java:+Hello.java: Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");@@ -12,4 +12,4 @@ Hello.sh:#!/bin/sh Hello.sh:echo "Hello World!" Hello.txt:Hello-emptyline.txt:+emptyline.txt:

tests/out/Hello_--bool-y.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_--bool.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_--files--bool-C2.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_--files--bool-o.out

@@ -2,7 +2,7 @@ Hello.bat:echo "Hello World!" Binary file Hello.class matches Hello.java:import java.lang.*;-Hello.java:+Hello.java: Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");@@ -12,4 +12,4 @@ Hello.sh:#!/bin/sh Hello.sh:echo "Hello World!" Hello.txt:Hello-emptyline.txt:+emptyline.txt:

tests/out/Hello_--files--bool-y.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_--files--bool.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_--replace.out

@@ -1,15 +1,15 @@-Hello.bat:(1:#!/bin/sh)-Hello.bat:(2:echo "Hello World!")+Hello.bat:(1:#!/bin/sh)+Hello.bat:(2:echo "Hello World!") Binary file Hello.class matches-Hello.java:(1:import java.lang.*;)-Hello.java:(2:)-Hello.java:(3:public class Hello // prints a Hello World! greeting)-Hello.java:(4:{ public static void main(String[] arg))-Hello.java:(5:  { System.out.println("Hello World!");)-Hello.java:(6:  })-Hello.java:(7:})+Hello.java:(1:import java.lang.*;)+Hello.java:(2:)+Hello.java:(3:public class Hello // prints a Hello World! greeting)+Hello.java:(4:{ public static void main(String[] arg))+Hello.java:(5:  { System.out.println("Hello World!");)+Hello.java:(6:  })+Hello.java:(7:}) Binary file Hello.pdf matches-Hello.sh:(1:#!/bin/sh)-Hello.sh:(2:echo "Hello World!")-Hello.txt:(1:Hello)-emptyline.txt:(1:)+Hello.sh:(1:#!/bin/sh)+Hello.sh:(2:echo "Hello World!")+Hello.txt:(1:Hello)+emptyline.txt:(1:)

tests/out/Hello_-C2.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-F.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-Fw.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-Fx.out

@@ -1,2 +1,2 @@-Hello.java:-emptyline.txt:+Hello.java:+emptyline.txt:

tests/out/Hello_-G.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-Gw.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-Gx.out

@@ -1,2 +1,2 @@-Hello.java:-emptyline.txt:+Hello.java:+emptyline.txt:

tests/out/Hello_-I-C2.out

@@ -1,13 +1,13 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-I-n.out

@@ -1,13 +1,13 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!"+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:}+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-I-nC2.out

@@ -1,13 +1,13 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!"+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:}+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-I-nkbT.out

@@ -1,13 +1,13 @@-Hello.bat:     1:  1:      0:	#!/bin/sh-Hello.bat:     2:  1:     10:	echo "Hello World!"-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting-Hello.java:     4:  1:     74:	{ public static void main(String[] arg)-Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");-Hello.java:     6:  1:    154:	  }-Hello.java:     7:  1:    158:	}-Hello.sh:     1:  1:      0:	#!/bin/sh-Hello.sh:     2:  1:     10:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+Hello.bat:     1:  1:      0:	#!/bin/sh+Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     2:  1:     20:	+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     4:  1:     74:	{ public static void main(String[] arg)+Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");+Hello.java:     6:  1:    154:	  }+Hello.java:     7:  1:    158:	}+Hello.sh:     1:  1:      0:	#!/bin/sh+Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.txt:     1:  1:      0:	Hello+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-I-nvy.out

@@ -1,13 +1,13 @@-Hello.bat-1-#!/bin/sh-Hello.bat-2-echo "Hello World!"-Hello.java-1-import java.lang.*;-Hello.java-2--Hello.java-3-public class Hello // prints a Hello World! greeting-Hello.java-4-{ public static void main(String[] arg)-Hello.java-5-  { System.out.println("Hello World!");-Hello.java-6-  }-Hello.java-7-}-Hello.sh-1-#!/bin/sh-Hello.sh-2-echo "Hello World!"-Hello.txt-1-Hello-emptyline.txt-1-+Hello.bat-1-#!/bin/sh+Hello.bat-2-echo "Hello World!"+Hello.java-1-import java.lang.*;+Hello.java-2-+Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-4-{ public static void main(String[] arg)+Hello.java-5-  { System.out.println("Hello World!");+Hello.java-6-  }+Hello.java-7-}+Hello.sh-1-#!/bin/sh+Hello.sh-2-echo "Hello World!"+Hello.txt-1-Hello+emptyline.txt-1-

tests/out/Hello_-I-ny.out

@@ -1,13 +1,13 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!"+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:}+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-I-o.out

@@ -1,7 +1,7 @@ Hello.bat:#!/bin/sh Hello.bat:echo "Hello World!" Hello.java:import java.lang.*;-Hello.java:+Hello.java: Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");@@ -10,4 +10,4 @@ Hello.sh:#!/bin/sh Hello.sh:echo "Hello World!" Hello.txt:Hello-emptyline.txt:+emptyline.txt:

tests/out/Hello_-I-on.out

@@ -1,7 +1,7 @@ Hello.bat:1:#!/bin/sh Hello.bat:2:echo "Hello World!" Hello.java:1:import java.lang.*;-Hello.java:2:+Hello.java:2: Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!");@@ -10,4 +10,4 @@ Hello.sh:1:#!/bin/sh Hello.sh:2:echo "Hello World!" Hello.txt:1:Hello-emptyline.txt:1:+emptyline.txt:1:

tests/out/Hello_-I-onkbT.out

@@ -1,7 +1,7 @@ Hello.bat:     1:  1:      0:	#!/bin/sh Hello.bat:     2:  1:     10:	echo "Hello World!" Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	+Hello.java:     2:  1:     20:	 Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  1:     74:	{ public static void main(String[] arg) Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");@@ -10,4 +10,4 @@ Hello.sh:     1:  1:      0:	#!/bin/sh Hello.sh:     2:  1:     10:	echo "Hello World!" Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-I-ounkbT.out

@@ -1,7 +1,7 @@ Hello.bat:     1:  1:      0:	#!/bin/sh Hello.bat:     2:  1:     10:	echo "Hello World!" Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	+Hello.java:     2:  1:     20:	 Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  1:     74:	{ public static void main(String[] arg) Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");@@ -10,4 +10,4 @@ Hello.sh:     1:  1:      0:	#!/bin/sh Hello.sh:     2:  1:     10:	echo "Hello World!" Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-I-unkbT.out

@@ -1,13 +1,13 @@-Hello.bat:     1:  1:      0:	#!/bin/sh-Hello.bat:     2:  1:     10:	echo "Hello World!"-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting-Hello.java:     4:  1:     74:	{ public static void main(String[] arg)-Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");-Hello.java:     6:  1:    154:	  }-Hello.java:     7:  1:    158:	}-Hello.sh:     1:  1:      0:	#!/bin/sh-Hello.sh:     2:  1:     10:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+Hello.bat:     1:  1:      0:	#!/bin/sh+Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     2:  1:     20:	+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     4:  1:     74:	{ public static void main(String[] arg)+Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");+Hello.java:     6:  1:    154:	  }+Hello.java:     7:  1:    158:	}+Hello.sh:     1:  1:      0:	#!/bin/sh+Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.txt:     1:  1:      0:	Hello+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-I-vy.out

@@ -1,13 +1,13 @@-Hello.bat-#!/bin/sh-Hello.bat-echo "Hello World!"-Hello.java-import java.lang.*;-Hello.java--Hello.java-public class Hello // prints a Hello World! greeting-Hello.java-{ public static void main(String[] arg)-Hello.java-  { System.out.println("Hello World!");-Hello.java-  }-Hello.java-}-Hello.sh-#!/bin/sh-Hello.sh-echo "Hello World!"-Hello.txt-Hello-emptyline.txt-+Hello.bat-#!/bin/sh+Hello.bat-echo "Hello World!"+Hello.java-import java.lang.*;+Hello.java-+Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-{ public static void main(String[] arg)+Hello.java-  { System.out.println("Hello World!");+Hello.java-  }+Hello.java-}+Hello.sh-#!/bin/sh+Hello.sh-echo "Hello World!"+Hello.txt-Hello+emptyline.txt-

tests/out/Hello_-I-y.out

@@ -1,13 +1,13 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-I.out

@@ -1,13 +1,13 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-IP.out

@@ -1,13 +1,13 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-IPw.out

@@ -1,13 +1,13 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-IPx.out

@@ -1,2 +1,2 @@-Hello.java:-emptyline.txt:+Hello.java:+emptyline.txt:

tests/out/Hello_-Iw.out

@@ -1,13 +1,13 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-Ix.out

@@ -1,2 +1,2 @@-Hello.java:-emptyline.txt:+Hello.java:+emptyline.txt:

tests/out/Hello_-W-C2.out

@@ -1,5 +1,5 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Hello.class: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:@@ -41,20 +41,20 @@ Hello.class: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.pdf:%PDF-1.3+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.pdf:%PDF-1.3 Hello.pdf: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:4 0 obj-Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:4 0 obj+Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:5 0 obj-Hello.pdf:123-Hello.pdf:endobj-Hello.pdf:2 0 obj-Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:>>-Hello.pdf:endobj-Hello.pdf:6 0 obj-Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:>> >>-Hello.pdf:endobj-Hello.pdf:9 0 obj-Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:5 0 obj+Hello.pdf:123+Hello.pdf:endobj+Hello.pdf:2 0 obj+Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf:>>+Hello.pdf:endobj+Hello.pdf:6 0 obj+Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf:>> >>+Hello.pdf:endobj+Hello.pdf:9 0 obj+Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:10 0 obj-Hello.pdf:1116-Hello.pdf:endobj-Hello.pdf:7 0 obj-Hello.pdf:[ /ICCBased 9 0 R ]-Hello.pdf:endobj-Hello.pdf:3 0 obj-Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:endobj-Hello.pdf:11 0 obj-Hello.pdf:<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:endobj-Hello.pdf:8 0 obj-Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:0 0 602 ] >>-Hello.pdf:endobj-Hello.pdf:12 0 obj-Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:>>-Hello.pdf:endobj-Hello.pdf:13 0 obj-Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:10 0 obj+Hello.pdf:1116+Hello.pdf:endobj+Hello.pdf:7 0 obj+Hello.pdf:[ /ICCBased 9 0 R ]+Hello.pdf:endobj+Hello.pdf:3 0 obj+Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf:endobj+Hello.pdf:11 0 obj+Hello.pdf:<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf:endobj+Hello.pdf:8 0 obj+Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:0 0 602 ] >>+Hello.pdf:endobj+Hello.pdf:12 0 obj+Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf:>>+Hello.pdf:endobj+Hello.pdf:13 0 obj+Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:14 0 obj-Hello.pdf:2734-Hello.pdf:endobj-Hello.pdf:15 0 obj-Hello.pdf:(Hello)-Hello.pdf:endobj-Hello.pdf:16 0 obj-Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:endobj-Hello.pdf:17 0 obj-Hello.pdf:(TextEdit)-Hello.pdf:endobj-Hello.pdf:18 0 obj-Hello.pdf:(D:20200124010711Z00'00')-Hello.pdf:endobj-Hello.pdf:19 0 obj-Hello.pdf:()-Hello.pdf:endobj-Hello.pdf:20 0 obj-Hello.pdf:[ ]-Hello.pdf:endobj-Hello.pdf:1 0 obj-Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:endobj-Hello.pdf:xref-Hello.pdf:0 21-Hello.pdf:0000000000 65535 f -Hello.pdf:0000005392 00000 n -Hello.pdf:0000000238 00000 n -Hello.pdf:0000001714 00000 n -Hello.pdf:0000000022 00000 n -Hello.pdf:0000000219 00000 n -Hello.pdf:0000000342 00000 n -Hello.pdf:0000001679 00000 n -Hello.pdf:0000001847 00000 n -Hello.pdf:0000000439 00000 n -Hello.pdf:0000001658 00000 n -Hello.pdf:0000001797 00000 n -Hello.pdf:0000002110 00000 n -Hello.pdf:0000002362 00000 n -Hello.pdf:0000005186 00000 n -Hello.pdf:0000005207 00000 n -Hello.pdf:0000005231 00000 n -Hello.pdf:0000005284 00000 n -Hello.pdf:0000005311 00000 n -Hello.pdf:0000005353 00000 n -Hello.pdf:0000005372 00000 n -Hello.pdf:trailer-Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf:<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf:startxref-Hello.pdf:5536-Hello.pdf:%%EOF-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:14 0 obj+Hello.pdf:2734+Hello.pdf:endobj+Hello.pdf:15 0 obj+Hello.pdf:(Hello)+Hello.pdf:endobj+Hello.pdf:16 0 obj+Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf:endobj+Hello.pdf:17 0 obj+Hello.pdf:(TextEdit)+Hello.pdf:endobj+Hello.pdf:18 0 obj+Hello.pdf:(D:20200124010711Z00'00')+Hello.pdf:endobj+Hello.pdf:19 0 obj+Hello.pdf:()+Hello.pdf:endobj+Hello.pdf:20 0 obj+Hello.pdf:[ ]+Hello.pdf:endobj+Hello.pdf:1 0 obj+Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:endobj+Hello.pdf:xref+Hello.pdf:0 21+Hello.pdf:0000000000 65535 f +Hello.pdf:0000005392 00000 n +Hello.pdf:0000000238 00000 n +Hello.pdf:0000001714 00000 n +Hello.pdf:0000000022 00000 n +Hello.pdf:0000000219 00000 n +Hello.pdf:0000000342 00000 n +Hello.pdf:0000001679 00000 n +Hello.pdf:0000001847 00000 n +Hello.pdf:0000000439 00000 n +Hello.pdf:0000001658 00000 n +Hello.pdf:0000001797 00000 n +Hello.pdf:0000002110 00000 n +Hello.pdf:0000002362 00000 n +Hello.pdf:0000005186 00000 n +Hello.pdf:0000005207 00000 n +Hello.pdf:0000005231 00000 n +Hello.pdf:0000005284 00000 n +Hello.pdf:0000005311 00000 n +Hello.pdf:0000005353 00000 n +Hello.pdf:0000005372 00000 n +Hello.pdf:trailer+Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf:<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf:startxref+Hello.pdf:5536+Hello.pdf:%%EOF+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-W-n.out

@@ -1,5 +1,5 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!" Hello.class:1: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:2:@@ -41,20 +41,20 @@ Hello.class:8: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}-Hello.pdf:1:%PDF-1.3+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:}+Hello.pdf:1:%PDF-1.3 Hello.pdf:2: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:3:4 0 obj-Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf:5:stream+Hello.pdf:3:4 0 obj+Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf:5:stream Hello.pdf:6: 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf:9:endstream-Hello.pdf:10:endobj-Hello.pdf:11:5 0 obj-Hello.pdf:12:123-Hello.pdf:13:endobj-Hello.pdf:14:2 0 obj-Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:16:>>-Hello.pdf:17:endobj-Hello.pdf:18:6 0 obj-Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:20:>> >>-Hello.pdf:21:endobj-Hello.pdf:22:9 0 obj-Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf:24:stream+Hello.pdf:9:endstream+Hello.pdf:10:endobj+Hello.pdf:11:5 0 obj+Hello.pdf:12:123+Hello.pdf:13:endobj+Hello.pdf:14:2 0 obj+Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf:16:>>+Hello.pdf:17:endobj+Hello.pdf:18:6 0 obj+Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf:20:>> >>+Hello.pdf:21:endobj+Hello.pdf:22:9 0 obj+Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf:24:stream Hello.pdf:25: 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf:31:endstream-Hello.pdf:32:endobj-Hello.pdf:33:10 0 obj-Hello.pdf:34:1116-Hello.pdf:35:endobj-Hello.pdf:36:7 0 obj-Hello.pdf:37:[ /ICCBased 9 0 R ]-Hello.pdf:38:endobj-Hello.pdf:39:3 0 obj-Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:41:endobj-Hello.pdf:42:11 0 obj-Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:44:endobj-Hello.pdf:45:8 0 obj-Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:49:0 0 602 ] >>-Hello.pdf:50:endobj-Hello.pdf:51:12 0 obj-Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:55:>>-Hello.pdf:56:endobj-Hello.pdf:57:13 0 obj-Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf:59:stream+Hello.pdf:31:endstream+Hello.pdf:32:endobj+Hello.pdf:33:10 0 obj+Hello.pdf:34:1116+Hello.pdf:35:endobj+Hello.pdf:36:7 0 obj+Hello.pdf:37:[ /ICCBased 9 0 R ]+Hello.pdf:38:endobj+Hello.pdf:39:3 0 obj+Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf:41:endobj+Hello.pdf:42:11 0 obj+Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf:44:endobj+Hello.pdf:45:8 0 obj+Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:49:0 0 602 ] >>+Hello.pdf:50:endobj+Hello.pdf:51:12 0 obj+Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf:55:>>+Hello.pdf:56:endobj+Hello.pdf:57:13 0 obj+Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf:59:stream Hello.pdf:60: 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:79:endstream-Hello.pdf:80:endobj-Hello.pdf:81:14 0 obj-Hello.pdf:82:2734-Hello.pdf:83:endobj-Hello.pdf:84:15 0 obj-Hello.pdf:85:(Hello)-Hello.pdf:86:endobj-Hello.pdf:87:16 0 obj-Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:89:endobj-Hello.pdf:90:17 0 obj-Hello.pdf:91:(TextEdit)-Hello.pdf:92:endobj-Hello.pdf:93:18 0 obj-Hello.pdf:94:(D:20200124010711Z00'00')-Hello.pdf:95:endobj-Hello.pdf:96:19 0 obj-Hello.pdf:97:()-Hello.pdf:98:endobj-Hello.pdf:99:20 0 obj-Hello.pdf:100:[ ]-Hello.pdf:101:endobj-Hello.pdf:102:1 0 obj-Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:105:endobj-Hello.pdf:106:xref-Hello.pdf:107:0 21-Hello.pdf:108:0000000000 65535 f -Hello.pdf:109:0000005392 00000 n -Hello.pdf:110:0000000238 00000 n -Hello.pdf:111:0000001714 00000 n -Hello.pdf:112:0000000022 00000 n -Hello.pdf:113:0000000219 00000 n -Hello.pdf:114:0000000342 00000 n -Hello.pdf:115:0000001679 00000 n -Hello.pdf:116:0000001847 00000 n -Hello.pdf:117:0000000439 00000 n -Hello.pdf:118:0000001658 00000 n -Hello.pdf:119:0000001797 00000 n -Hello.pdf:120:0000002110 00000 n -Hello.pdf:121:0000002362 00000 n -Hello.pdf:122:0000005186 00000 n -Hello.pdf:123:0000005207 00000 n -Hello.pdf:124:0000005231 00000 n -Hello.pdf:125:0000005284 00000 n -Hello.pdf:126:0000005311 00000 n -Hello.pdf:127:0000005353 00000 n -Hello.pdf:128:0000005372 00000 n -Hello.pdf:129:trailer-Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf:131:<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf:132:startxref-Hello.pdf:133:5536-Hello.pdf:134:%%EOF-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.pdf:79:endstream+Hello.pdf:80:endobj+Hello.pdf:81:14 0 obj+Hello.pdf:82:2734+Hello.pdf:83:endobj+Hello.pdf:84:15 0 obj+Hello.pdf:85:(Hello)+Hello.pdf:86:endobj+Hello.pdf:87:16 0 obj+Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf:89:endobj+Hello.pdf:90:17 0 obj+Hello.pdf:91:(TextEdit)+Hello.pdf:92:endobj+Hello.pdf:93:18 0 obj+Hello.pdf:94:(D:20200124010711Z00'00')+Hello.pdf:95:endobj+Hello.pdf:96:19 0 obj+Hello.pdf:97:()+Hello.pdf:98:endobj+Hello.pdf:99:20 0 obj+Hello.pdf:100:[ ]+Hello.pdf:101:endobj+Hello.pdf:102:1 0 obj+Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:105:endobj+Hello.pdf:106:xref+Hello.pdf:107:0 21+Hello.pdf:108:0000000000 65535 f +Hello.pdf:109:0000005392 00000 n +Hello.pdf:110:0000000238 00000 n +Hello.pdf:111:0000001714 00000 n +Hello.pdf:112:0000000022 00000 n +Hello.pdf:113:0000000219 00000 n +Hello.pdf:114:0000000342 00000 n +Hello.pdf:115:0000001679 00000 n +Hello.pdf:116:0000001847 00000 n +Hello.pdf:117:0000000439 00000 n +Hello.pdf:118:0000001658 00000 n +Hello.pdf:119:0000001797 00000 n +Hello.pdf:120:0000002110 00000 n +Hello.pdf:121:0000002362 00000 n +Hello.pdf:122:0000005186 00000 n +Hello.pdf:123:0000005207 00000 n +Hello.pdf:124:0000005231 00000 n +Hello.pdf:125:0000005284 00000 n +Hello.pdf:126:0000005311 00000 n +Hello.pdf:127:0000005353 00000 n +Hello.pdf:128:0000005372 00000 n +Hello.pdf:129:trailer+Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf:131:<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf:132:startxref+Hello.pdf:133:5536+Hello.pdf:134:%%EOF+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-W-nC2.out

@@ -1,5 +1,5 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!" Hello.class:1: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:2:@@ -41,20 +41,20 @@ Hello.class:8: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}-Hello.pdf:1:%PDF-1.3+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:}+Hello.pdf:1:%PDF-1.3 Hello.pdf:2: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:3:4 0 obj-Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf:5:stream+Hello.pdf:3:4 0 obj+Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf:5:stream Hello.pdf:6: 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf:9:endstream-Hello.pdf:10:endobj-Hello.pdf:11:5 0 obj-Hello.pdf:12:123-Hello.pdf:13:endobj-Hello.pdf:14:2 0 obj-Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:16:>>-Hello.pdf:17:endobj-Hello.pdf:18:6 0 obj-Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:20:>> >>-Hello.pdf:21:endobj-Hello.pdf:22:9 0 obj-Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf:24:stream+Hello.pdf:9:endstream+Hello.pdf:10:endobj+Hello.pdf:11:5 0 obj+Hello.pdf:12:123+Hello.pdf:13:endobj+Hello.pdf:14:2 0 obj+Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf:16:>>+Hello.pdf:17:endobj+Hello.pdf:18:6 0 obj+Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf:20:>> >>+Hello.pdf:21:endobj+Hello.pdf:22:9 0 obj+Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf:24:stream Hello.pdf:25: 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf:31:endstream-Hello.pdf:32:endobj-Hello.pdf:33:10 0 obj-Hello.pdf:34:1116-Hello.pdf:35:endobj-Hello.pdf:36:7 0 obj-Hello.pdf:37:[ /ICCBased 9 0 R ]-Hello.pdf:38:endobj-Hello.pdf:39:3 0 obj-Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:41:endobj-Hello.pdf:42:11 0 obj-Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:44:endobj-Hello.pdf:45:8 0 obj-Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:49:0 0 602 ] >>-Hello.pdf:50:endobj-Hello.pdf:51:12 0 obj-Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:55:>>-Hello.pdf:56:endobj-Hello.pdf:57:13 0 obj-Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf:59:stream+Hello.pdf:31:endstream+Hello.pdf:32:endobj+Hello.pdf:33:10 0 obj+Hello.pdf:34:1116+Hello.pdf:35:endobj+Hello.pdf:36:7 0 obj+Hello.pdf:37:[ /ICCBased 9 0 R ]+Hello.pdf:38:endobj+Hello.pdf:39:3 0 obj+Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf:41:endobj+Hello.pdf:42:11 0 obj+Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf:44:endobj+Hello.pdf:45:8 0 obj+Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:49:0 0 602 ] >>+Hello.pdf:50:endobj+Hello.pdf:51:12 0 obj+Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf:55:>>+Hello.pdf:56:endobj+Hello.pdf:57:13 0 obj+Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf:59:stream Hello.pdf:60: 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:79:endstream-Hello.pdf:80:endobj-Hello.pdf:81:14 0 obj-Hello.pdf:82:2734-Hello.pdf:83:endobj-Hello.pdf:84:15 0 obj-Hello.pdf:85:(Hello)-Hello.pdf:86:endobj-Hello.pdf:87:16 0 obj-Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:89:endobj-Hello.pdf:90:17 0 obj-Hello.pdf:91:(TextEdit)-Hello.pdf:92:endobj-Hello.pdf:93:18 0 obj-Hello.pdf:94:(D:20200124010711Z00'00')-Hello.pdf:95:endobj-Hello.pdf:96:19 0 obj-Hello.pdf:97:()-Hello.pdf:98:endobj-Hello.pdf:99:20 0 obj-Hello.pdf:100:[ ]-Hello.pdf:101:endobj-Hello.pdf:102:1 0 obj-Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:105:endobj-Hello.pdf:106:xref-Hello.pdf:107:0 21-Hello.pdf:108:0000000000 65535 f -Hello.pdf:109:0000005392 00000 n -Hello.pdf:110:0000000238 00000 n -Hello.pdf:111:0000001714 00000 n -Hello.pdf:112:0000000022 00000 n -Hello.pdf:113:0000000219 00000 n -Hello.pdf:114:0000000342 00000 n -Hello.pdf:115:0000001679 00000 n -Hello.pdf:116:0000001847 00000 n -Hello.pdf:117:0000000439 00000 n -Hello.pdf:118:0000001658 00000 n -Hello.pdf:119:0000001797 00000 n -Hello.pdf:120:0000002110 00000 n -Hello.pdf:121:0000002362 00000 n -Hello.pdf:122:0000005186 00000 n -Hello.pdf:123:0000005207 00000 n -Hello.pdf:124:0000005231 00000 n -Hello.pdf:125:0000005284 00000 n -Hello.pdf:126:0000005311 00000 n -Hello.pdf:127:0000005353 00000 n -Hello.pdf:128:0000005372 00000 n -Hello.pdf:129:trailer-Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf:131:<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf:132:startxref-Hello.pdf:133:5536-Hello.pdf:134:%%EOF-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.pdf:79:endstream+Hello.pdf:80:endobj+Hello.pdf:81:14 0 obj+Hello.pdf:82:2734+Hello.pdf:83:endobj+Hello.pdf:84:15 0 obj+Hello.pdf:85:(Hello)+Hello.pdf:86:endobj+Hello.pdf:87:16 0 obj+Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf:89:endobj+Hello.pdf:90:17 0 obj+Hello.pdf:91:(TextEdit)+Hello.pdf:92:endobj+Hello.pdf:93:18 0 obj+Hello.pdf:94:(D:20200124010711Z00'00')+Hello.pdf:95:endobj+Hello.pdf:96:19 0 obj+Hello.pdf:97:()+Hello.pdf:98:endobj+Hello.pdf:99:20 0 obj+Hello.pdf:100:[ ]+Hello.pdf:101:endobj+Hello.pdf:102:1 0 obj+Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:105:endobj+Hello.pdf:106:xref+Hello.pdf:107:0 21+Hello.pdf:108:0000000000 65535 f +Hello.pdf:109:0000005392 00000 n +Hello.pdf:110:0000000238 00000 n +Hello.pdf:111:0000001714 00000 n +Hello.pdf:112:0000000022 00000 n +Hello.pdf:113:0000000219 00000 n +Hello.pdf:114:0000000342 00000 n +Hello.pdf:115:0000001679 00000 n +Hello.pdf:116:0000001847 00000 n +Hello.pdf:117:0000000439 00000 n +Hello.pdf:118:0000001658 00000 n +Hello.pdf:119:0000001797 00000 n +Hello.pdf:120:0000002110 00000 n +Hello.pdf:121:0000002362 00000 n +Hello.pdf:122:0000005186 00000 n +Hello.pdf:123:0000005207 00000 n +Hello.pdf:124:0000005231 00000 n +Hello.pdf:125:0000005284 00000 n +Hello.pdf:126:0000005311 00000 n +Hello.pdf:127:0000005353 00000 n +Hello.pdf:128:0000005372 00000 n +Hello.pdf:129:trailer+Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf:131:<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf:132:startxref+Hello.pdf:133:5536+Hello.pdf:134:%%EOF+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-W-nkbT.out

@@ -1,5 +1,5 @@-Hello.bat:     1:  1:      0:	#!/bin/sh-Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.bat:     1:  1:      0:	#!/bin/sh+Hello.bat:     2:  1:     10:	echo "Hello World!" Hello.class:     1:  1:      0:	 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:     2:  1:     11:	@@ -41,20 +41,20 @@ Hello.class:     8:  1:    396:	 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting-Hello.java:     4:  1:     74:	{ public static void main(String[] arg)-Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");-Hello.java:     6:  1:    154:	  }-Hello.java:     7:  1:    158:	}-Hello.pdf:     1:  1:      0:	%PDF-1.3+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     2:  1:     20:	+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     4:  1:     74:	{ public static void main(String[] arg)+Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");+Hello.java:     6:  1:    154:	  }+Hello.java:     7:  1:    158:	}+Hello.pdf:     1:  1:      0:	%PDF-1.3 Hello.pdf:     2:  1:      9:	 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:     3:  1:     22:	4 0 obj-Hello.pdf:     4:  1:     30:	<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf:     5:  1:     71:	stream+Hello.pdf:     3:  1:     22:	4 0 obj+Hello.pdf:     4:  1:     30:	<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf:     5:  1:     71:	stream Hello.pdf:     6:  1:     78:	 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf:     9:  1:    202:	endstream-Hello.pdf:    10:  1:    212:	endobj-Hello.pdf:    11:  1:    219:	5 0 obj-Hello.pdf:    12:  1:    227:	123-Hello.pdf:    13:  1:    231:	endobj-Hello.pdf:    14:  1:    238:	2 0 obj-Hello.pdf:    15:  1:    246:	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:    16:  1:    332:	>>-Hello.pdf:    17:  1:    335:	endobj-Hello.pdf:    18:  1:    342:	6 0 obj-Hello.pdf:    19:  1:    350:	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:    20:  1:    426:	>> >>-Hello.pdf:    21:  1:    432:	endobj-Hello.pdf:    22:  1:    439:	9 0 obj-Hello.pdf:    23:  1:    447:	<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf:    24:  1:    517:	stream+Hello.pdf:     9:  1:    202:	endstream+Hello.pdf:    10:  1:    212:	endobj+Hello.pdf:    11:  1:    219:	5 0 obj+Hello.pdf:    12:  1:    227:	123+Hello.pdf:    13:  1:    231:	endobj+Hello.pdf:    14:  1:    238:	2 0 obj+Hello.pdf:    15:  1:    246:	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf:    16:  1:    332:	>>+Hello.pdf:    17:  1:    335:	endobj+Hello.pdf:    18:  1:    342:	6 0 obj+Hello.pdf:    19:  1:    350:	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf:    20:  1:    426:	>> >>+Hello.pdf:    21:  1:    432:	endobj+Hello.pdf:    22:  1:    439:	9 0 obj+Hello.pdf:    23:  1:    447:	<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf:    24:  1:    517:	stream Hello.pdf:    25:  1:    524:	 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf:    31:  1:   1641:	endstream-Hello.pdf:    32:  1:   1651:	endobj-Hello.pdf:    33:  1:   1658:	10 0 obj-Hello.pdf:    34:  1:   1667:	1116-Hello.pdf:    35:  1:   1672:	endobj-Hello.pdf:    36:  1:   1679:	7 0 obj-Hello.pdf:    37:  1:   1687:	[ /ICCBased 9 0 R ]-Hello.pdf:    38:  1:   1707:	endobj-Hello.pdf:    39:  1:   1714:	3 0 obj-Hello.pdf:    40:  1:   1722:	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:    41:  1:   1790:	endobj-Hello.pdf:    42:  1:   1797:	11 0 obj-Hello.pdf:    43:  1:   1806:	<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:    44:  1:   1840:	endobj-Hello.pdf:    45:  1:   1847:	8 0 obj-Hello.pdf:    46:  1:   1855:	<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:    47:  1:   1937:	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:    48:  1:   2014:	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:    49:  1:   2090:	0 0 602 ] >>-Hello.pdf:    50:  1:   2103:	endobj-Hello.pdf:    51:  1:   2110:	12 0 obj-Hello.pdf:    52:  1:   2119:	<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf:    53:  1:   2196:	[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf:    54:  1:   2273:	/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:    55:  1:   2352:	>>-Hello.pdf:    56:  1:   2355:	endobj-Hello.pdf:    57:  1:   2362:	13 0 obj-Hello.pdf:    58:  1:   2371:	<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf:    59:  1:   2427:	stream+Hello.pdf:    31:  1:   1641:	endstream+Hello.pdf:    32:  1:   1651:	endobj+Hello.pdf:    33:  1:   1658:	10 0 obj+Hello.pdf:    34:  1:   1667:	1116+Hello.pdf:    35:  1:   1672:	endobj+Hello.pdf:    36:  1:   1679:	7 0 obj+Hello.pdf:    37:  1:   1687:	[ /ICCBased 9 0 R ]+Hello.pdf:    38:  1:   1707:	endobj+Hello.pdf:    39:  1:   1714:	3 0 obj+Hello.pdf:    40:  1:   1722:	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf:    41:  1:   1790:	endobj+Hello.pdf:    42:  1:   1797:	11 0 obj+Hello.pdf:    43:  1:   1806:	<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf:    44:  1:   1840:	endobj+Hello.pdf:    45:  1:   1847:	8 0 obj+Hello.pdf:    46:  1:   1855:	<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf:    47:  1:   1937:	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:    48:  1:   2014:	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:    49:  1:   2090:	0 0 602 ] >>+Hello.pdf:    50:  1:   2103:	endobj+Hello.pdf:    51:  1:   2110:	12 0 obj+Hello.pdf:    52:  1:   2119:	<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf:    53:  1:   2196:	[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf:    54:  1:   2273:	/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf:    55:  1:   2352:	>>+Hello.pdf:    56:  1:   2355:	endobj+Hello.pdf:    57:  1:   2362:	13 0 obj+Hello.pdf:    58:  1:   2371:	<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf:    59:  1:   2427:	stream Hello.pdf:    60:  1:   2434:	 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:    79:  1:   5169:	endstream-Hello.pdf:    80:  1:   5179:	endobj-Hello.pdf:    81:  1:   5186:	14 0 obj-Hello.pdf:    82:  1:   5195:	2734-Hello.pdf:    83:  1:   5200:	endobj-Hello.pdf:    84:  1:   5207:	15 0 obj-Hello.pdf:    85:  1:   5216:	(Hello)-Hello.pdf:    86:  1:   5224:	endobj-Hello.pdf:    87:  1:   5231:	16 0 obj-Hello.pdf:    88:  1:   5240:	(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:    89:  1:   5277:	endobj-Hello.pdf:    90:  1:   5284:	17 0 obj-Hello.pdf:    91:  1:   5293:	(TextEdit)-Hello.pdf:    92:  1:   5304:	endobj-Hello.pdf:    93:  1:   5311:	18 0 obj-Hello.pdf:    94:  1:   5320:	(D:20200124010711Z00'00')-Hello.pdf:    95:  1:   5346:	endobj-Hello.pdf:    96:  1:   5353:	19 0 obj-Hello.pdf:    97:  1:   5362:	()-Hello.pdf:    98:  1:   5365:	endobj-Hello.pdf:    99:  1:   5372:	20 0 obj-Hello.pdf:   100:  1:   5381:	[ ]-Hello.pdf:   101:  1:   5385:	endobj-Hello.pdf:   102:  1:   5392:	1 0 obj-Hello.pdf:   103:  1:   5400:	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:   104:  1:   5480:	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:   105:  1:   5529:	endobj-Hello.pdf:   106:  1:   5536:	xref-Hello.pdf:   107:  1:   5541:	0 21-Hello.pdf:   108:  1:   5546:	0000000000 65535 f -Hello.pdf:   109:  1:   5566:	0000005392 00000 n -Hello.pdf:   110:  1:   5586:	0000000238 00000 n -Hello.pdf:   111:  1:   5606:	0000001714 00000 n -Hello.pdf:   112:  1:   5626:	0000000022 00000 n -Hello.pdf:   113:  1:   5646:	0000000219 00000 n -Hello.pdf:   114:  1:   5666:	0000000342 00000 n -Hello.pdf:   115:  1:   5686:	0000001679 00000 n -Hello.pdf:   116:  1:   5706:	0000001847 00000 n -Hello.pdf:   117:  1:   5726:	0000000439 00000 n -Hello.pdf:   118:  1:   5746:	0000001658 00000 n -Hello.pdf:   119:  1:   5766:	0000001797 00000 n -Hello.pdf:   120:  1:   5786:	0000002110 00000 n -Hello.pdf:   121:  1:   5806:	0000002362 00000 n -Hello.pdf:   122:  1:   5826:	0000005186 00000 n -Hello.pdf:   123:  1:   5846:	0000005207 00000 n -Hello.pdf:   124:  1:   5866:	0000005231 00000 n -Hello.pdf:   125:  1:   5886:	0000005284 00000 n -Hello.pdf:   126:  1:   5906:	0000005311 00000 n -Hello.pdf:   127:  1:   5926:	0000005353 00000 n -Hello.pdf:   128:  1:   5946:	0000005372 00000 n -Hello.pdf:   129:  1:   5966:	trailer-Hello.pdf:   130:  1:   5974:	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf:   131:  1:   6052:	<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf:   132:  1:   6092:	startxref-Hello.pdf:   133:  1:   6102:	5536-Hello.pdf:   134:  1:   6107:	%%EOF-Hello.sh:     1:  1:      0:	#!/bin/sh-Hello.sh:     2:  1:     10:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+Hello.pdf:    79:  1:   5169:	endstream+Hello.pdf:    80:  1:   5179:	endobj+Hello.pdf:    81:  1:   5186:	14 0 obj+Hello.pdf:    82:  1:   5195:	2734+Hello.pdf:    83:  1:   5200:	endobj+Hello.pdf:    84:  1:   5207:	15 0 obj+Hello.pdf:    85:  1:   5216:	(Hello)+Hello.pdf:    86:  1:   5224:	endobj+Hello.pdf:    87:  1:   5231:	16 0 obj+Hello.pdf:    88:  1:   5240:	(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf:    89:  1:   5277:	endobj+Hello.pdf:    90:  1:   5284:	17 0 obj+Hello.pdf:    91:  1:   5293:	(TextEdit)+Hello.pdf:    92:  1:   5304:	endobj+Hello.pdf:    93:  1:   5311:	18 0 obj+Hello.pdf:    94:  1:   5320:	(D:20200124010711Z00'00')+Hello.pdf:    95:  1:   5346:	endobj+Hello.pdf:    96:  1:   5353:	19 0 obj+Hello.pdf:    97:  1:   5362:	()+Hello.pdf:    98:  1:   5365:	endobj+Hello.pdf:    99:  1:   5372:	20 0 obj+Hello.pdf:   100:  1:   5381:	[ ]+Hello.pdf:   101:  1:   5385:	endobj+Hello.pdf:   102:  1:   5392:	1 0 obj+Hello.pdf:   103:  1:   5400:	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf:   104:  1:   5480:	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:   105:  1:   5529:	endobj+Hello.pdf:   106:  1:   5536:	xref+Hello.pdf:   107:  1:   5541:	0 21+Hello.pdf:   108:  1:   5546:	0000000000 65535 f +Hello.pdf:   109:  1:   5566:	0000005392 00000 n +Hello.pdf:   110:  1:   5586:	0000000238 00000 n +Hello.pdf:   111:  1:   5606:	0000001714 00000 n +Hello.pdf:   112:  1:   5626:	0000000022 00000 n +Hello.pdf:   113:  1:   5646:	0000000219 00000 n +Hello.pdf:   114:  1:   5666:	0000000342 00000 n +Hello.pdf:   115:  1:   5686:	0000001679 00000 n +Hello.pdf:   116:  1:   5706:	0000001847 00000 n +Hello.pdf:   117:  1:   5726:	0000000439 00000 n +Hello.pdf:   118:  1:   5746:	0000001658 00000 n +Hello.pdf:   119:  1:   5766:	0000001797 00000 n +Hello.pdf:   120:  1:   5786:	0000002110 00000 n +Hello.pdf:   121:  1:   5806:	0000002362 00000 n +Hello.pdf:   122:  1:   5826:	0000005186 00000 n +Hello.pdf:   123:  1:   5846:	0000005207 00000 n +Hello.pdf:   124:  1:   5866:	0000005231 00000 n +Hello.pdf:   125:  1:   5886:	0000005284 00000 n +Hello.pdf:   126:  1:   5906:	0000005311 00000 n +Hello.pdf:   127:  1:   5926:	0000005353 00000 n +Hello.pdf:   128:  1:   5946:	0000005372 00000 n +Hello.pdf:   129:  1:   5966:	trailer+Hello.pdf:   130:  1:   5974:	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf:   131:  1:   6052:	<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf:   132:  1:   6092:	startxref+Hello.pdf:   133:  1:   6102:	5536+Hello.pdf:   134:  1:   6107:	%%EOF+Hello.sh:     1:  1:      0:	#!/bin/sh+Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.txt:     1:  1:      0:	Hello+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-W-nvy.out

@@ -1,5 +1,5 @@-Hello.bat-1-#!/bin/sh-Hello.bat-2-echo "Hello World!"+Hello.bat-1-#!/bin/sh+Hello.bat-2-echo "Hello World!" Hello.class-1- 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class-2-@@ -41,20 +41,20 @@ Hello.class-8- 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java-1-import java.lang.*;-Hello.java-2--Hello.java-3-public class Hello // prints a Hello World! greeting-Hello.java-4-{ public static void main(String[] arg)-Hello.java-5-  { System.out.println("Hello World!");-Hello.java-6-  }-Hello.java-7-}-Hello.pdf-1-%PDF-1.3+Hello.java-1-import java.lang.*;+Hello.java-2-+Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-4-{ public static void main(String[] arg)+Hello.java-5-  { System.out.println("Hello World!");+Hello.java-6-  }+Hello.java-7-}+Hello.pdf-1-%PDF-1.3 Hello.pdf-2- 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf-3-4 0 obj-Hello.pdf-4-<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf-5-stream+Hello.pdf-3-4 0 obj+Hello.pdf-4-<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf-5-stream Hello.pdf-6- 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf-9-endstream-Hello.pdf-10-endobj-Hello.pdf-11-5 0 obj-Hello.pdf-12-123-Hello.pdf-13-endobj-Hello.pdf-14-2 0 obj-Hello.pdf-15-<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf-16->>-Hello.pdf-17-endobj-Hello.pdf-18-6 0 obj-Hello.pdf-19-<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf-20->> >>-Hello.pdf-21-endobj-Hello.pdf-22-9 0 obj-Hello.pdf-23-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf-24-stream+Hello.pdf-9-endstream+Hello.pdf-10-endobj+Hello.pdf-11-5 0 obj+Hello.pdf-12-123+Hello.pdf-13-endobj+Hello.pdf-14-2 0 obj+Hello.pdf-15-<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf-16->>+Hello.pdf-17-endobj+Hello.pdf-18-6 0 obj+Hello.pdf-19-<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf-20->> >>+Hello.pdf-21-endobj+Hello.pdf-22-9 0 obj+Hello.pdf-23-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf-24-stream Hello.pdf-25- 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf-31-endstream-Hello.pdf-32-endobj-Hello.pdf-33-10 0 obj-Hello.pdf-34-1116-Hello.pdf-35-endobj-Hello.pdf-36-7 0 obj-Hello.pdf-37-[ /ICCBased 9 0 R ]-Hello.pdf-38-endobj-Hello.pdf-39-3 0 obj-Hello.pdf-40-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf-41-endobj-Hello.pdf-42-11 0 obj-Hello.pdf-43-<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf-44-endobj-Hello.pdf-45-8 0 obj-Hello.pdf-46-<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf-47-12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf-48-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf-49-0 0 602 ] >>-Hello.pdf-50-endobj-Hello.pdf-51-12 0 obj-Hello.pdf-52-<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf-53-[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf-54-/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf-55->>-Hello.pdf-56-endobj-Hello.pdf-57-13 0 obj-Hello.pdf-58-<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf-59-stream+Hello.pdf-31-endstream+Hello.pdf-32-endobj+Hello.pdf-33-10 0 obj+Hello.pdf-34-1116+Hello.pdf-35-endobj+Hello.pdf-36-7 0 obj+Hello.pdf-37-[ /ICCBased 9 0 R ]+Hello.pdf-38-endobj+Hello.pdf-39-3 0 obj+Hello.pdf-40-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf-41-endobj+Hello.pdf-42-11 0 obj+Hello.pdf-43-<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf-44-endobj+Hello.pdf-45-8 0 obj+Hello.pdf-46-<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf-47-12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf-48-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf-49-0 0 602 ] >>+Hello.pdf-50-endobj+Hello.pdf-51-12 0 obj+Hello.pdf-52-<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf-53-[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf-54-/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf-55->>+Hello.pdf-56-endobj+Hello.pdf-57-13 0 obj+Hello.pdf-58-<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf-59-stream Hello.pdf-60- 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf-79-endstream-Hello.pdf-80-endobj-Hello.pdf-81-14 0 obj-Hello.pdf-82-2734-Hello.pdf-83-endobj-Hello.pdf-84-15 0 obj-Hello.pdf-85-(Hello)-Hello.pdf-86-endobj-Hello.pdf-87-16 0 obj-Hello.pdf-88-(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf-89-endobj-Hello.pdf-90-17 0 obj-Hello.pdf-91-(TextEdit)-Hello.pdf-92-endobj-Hello.pdf-93-18 0 obj-Hello.pdf-94-(D:20200124010711Z00'00')-Hello.pdf-95-endobj-Hello.pdf-96-19 0 obj-Hello.pdf-97-()-Hello.pdf-98-endobj-Hello.pdf-99-20 0 obj-Hello.pdf-100-[ ]-Hello.pdf-101-endobj-Hello.pdf-102-1 0 obj-Hello.pdf-103-<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf-104-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf-105-endobj-Hello.pdf-106-xref-Hello.pdf-107-0 21-Hello.pdf-108-0000000000 65535 f -Hello.pdf-109-0000005392 00000 n -Hello.pdf-110-0000000238 00000 n -Hello.pdf-111-0000001714 00000 n -Hello.pdf-112-0000000022 00000 n -Hello.pdf-113-0000000219 00000 n -Hello.pdf-114-0000000342 00000 n -Hello.pdf-115-0000001679 00000 n -Hello.pdf-116-0000001847 00000 n -Hello.pdf-117-0000000439 00000 n -Hello.pdf-118-0000001658 00000 n -Hello.pdf-119-0000001797 00000 n -Hello.pdf-120-0000002110 00000 n -Hello.pdf-121-0000002362 00000 n -Hello.pdf-122-0000005186 00000 n -Hello.pdf-123-0000005207 00000 n -Hello.pdf-124-0000005231 00000 n -Hello.pdf-125-0000005284 00000 n -Hello.pdf-126-0000005311 00000 n -Hello.pdf-127-0000005353 00000 n -Hello.pdf-128-0000005372 00000 n -Hello.pdf-129-trailer-Hello.pdf-130-<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf-131-<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf-132-startxref-Hello.pdf-133-5536-Hello.pdf-134-%%EOF-Hello.sh-1-#!/bin/sh-Hello.sh-2-echo "Hello World!"-Hello.txt-1-Hello-emptyline.txt-1-+Hello.pdf-79-endstream+Hello.pdf-80-endobj+Hello.pdf-81-14 0 obj+Hello.pdf-82-2734+Hello.pdf-83-endobj+Hello.pdf-84-15 0 obj+Hello.pdf-85-(Hello)+Hello.pdf-86-endobj+Hello.pdf-87-16 0 obj+Hello.pdf-88-(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf-89-endobj+Hello.pdf-90-17 0 obj+Hello.pdf-91-(TextEdit)+Hello.pdf-92-endobj+Hello.pdf-93-18 0 obj+Hello.pdf-94-(D:20200124010711Z00'00')+Hello.pdf-95-endobj+Hello.pdf-96-19 0 obj+Hello.pdf-97-()+Hello.pdf-98-endobj+Hello.pdf-99-20 0 obj+Hello.pdf-100-[ ]+Hello.pdf-101-endobj+Hello.pdf-102-1 0 obj+Hello.pdf-103-<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf-104-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf-105-endobj+Hello.pdf-106-xref+Hello.pdf-107-0 21+Hello.pdf-108-0000000000 65535 f +Hello.pdf-109-0000005392 00000 n +Hello.pdf-110-0000000238 00000 n +Hello.pdf-111-0000001714 00000 n +Hello.pdf-112-0000000022 00000 n +Hello.pdf-113-0000000219 00000 n +Hello.pdf-114-0000000342 00000 n +Hello.pdf-115-0000001679 00000 n +Hello.pdf-116-0000001847 00000 n +Hello.pdf-117-0000000439 00000 n +Hello.pdf-118-0000001658 00000 n +Hello.pdf-119-0000001797 00000 n +Hello.pdf-120-0000002110 00000 n +Hello.pdf-121-0000002362 00000 n +Hello.pdf-122-0000005186 00000 n +Hello.pdf-123-0000005207 00000 n +Hello.pdf-124-0000005231 00000 n +Hello.pdf-125-0000005284 00000 n +Hello.pdf-126-0000005311 00000 n +Hello.pdf-127-0000005353 00000 n +Hello.pdf-128-0000005372 00000 n +Hello.pdf-129-trailer+Hello.pdf-130-<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf-131-<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf-132-startxref+Hello.pdf-133-5536+Hello.pdf-134-%%EOF+Hello.sh-1-#!/bin/sh+Hello.sh-2-echo "Hello World!"+Hello.txt-1-Hello+emptyline.txt-1-

tests/out/Hello_-W-ny.out

@@ -1,5 +1,5 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!" Hello.class:1: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:2:@@ -41,20 +41,20 @@ Hello.class:8: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}-Hello.pdf:1:%PDF-1.3+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:}+Hello.pdf:1:%PDF-1.3 Hello.pdf:2: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:3:4 0 obj-Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf:5:stream+Hello.pdf:3:4 0 obj+Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf:5:stream Hello.pdf:6: 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf:9:endstream-Hello.pdf:10:endobj-Hello.pdf:11:5 0 obj-Hello.pdf:12:123-Hello.pdf:13:endobj-Hello.pdf:14:2 0 obj-Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:16:>>-Hello.pdf:17:endobj-Hello.pdf:18:6 0 obj-Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:20:>> >>-Hello.pdf:21:endobj-Hello.pdf:22:9 0 obj-Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf:24:stream+Hello.pdf:9:endstream+Hello.pdf:10:endobj+Hello.pdf:11:5 0 obj+Hello.pdf:12:123+Hello.pdf:13:endobj+Hello.pdf:14:2 0 obj+Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf:16:>>+Hello.pdf:17:endobj+Hello.pdf:18:6 0 obj+Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf:20:>> >>+Hello.pdf:21:endobj+Hello.pdf:22:9 0 obj+Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf:24:stream Hello.pdf:25: 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf:31:endstream-Hello.pdf:32:endobj-Hello.pdf:33:10 0 obj-Hello.pdf:34:1116-Hello.pdf:35:endobj-Hello.pdf:36:7 0 obj-Hello.pdf:37:[ /ICCBased 9 0 R ]-Hello.pdf:38:endobj-Hello.pdf:39:3 0 obj-Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:41:endobj-Hello.pdf:42:11 0 obj-Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:44:endobj-Hello.pdf:45:8 0 obj-Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:49:0 0 602 ] >>-Hello.pdf:50:endobj-Hello.pdf:51:12 0 obj-Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:55:>>-Hello.pdf:56:endobj-Hello.pdf:57:13 0 obj-Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf:59:stream+Hello.pdf:31:endstream+Hello.pdf:32:endobj+Hello.pdf:33:10 0 obj+Hello.pdf:34:1116+Hello.pdf:35:endobj+Hello.pdf:36:7 0 obj+Hello.pdf:37:[ /ICCBased 9 0 R ]+Hello.pdf:38:endobj+Hello.pdf:39:3 0 obj+Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf:41:endobj+Hello.pdf:42:11 0 obj+Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf:44:endobj+Hello.pdf:45:8 0 obj+Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:49:0 0 602 ] >>+Hello.pdf:50:endobj+Hello.pdf:51:12 0 obj+Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf:55:>>+Hello.pdf:56:endobj+Hello.pdf:57:13 0 obj+Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf:59:stream Hello.pdf:60: 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:79:endstream-Hello.pdf:80:endobj-Hello.pdf:81:14 0 obj-Hello.pdf:82:2734-Hello.pdf:83:endobj-Hello.pdf:84:15 0 obj-Hello.pdf:85:(Hello)-Hello.pdf:86:endobj-Hello.pdf:87:16 0 obj-Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:89:endobj-Hello.pdf:90:17 0 obj-Hello.pdf:91:(TextEdit)-Hello.pdf:92:endobj-Hello.pdf:93:18 0 obj-Hello.pdf:94:(D:20200124010711Z00'00')-Hello.pdf:95:endobj-Hello.pdf:96:19 0 obj-Hello.pdf:97:()-Hello.pdf:98:endobj-Hello.pdf:99:20 0 obj-Hello.pdf:100:[ ]-Hello.pdf:101:endobj-Hello.pdf:102:1 0 obj-Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:105:endobj-Hello.pdf:106:xref-Hello.pdf:107:0 21-Hello.pdf:108:0000000000 65535 f -Hello.pdf:109:0000005392 00000 n -Hello.pdf:110:0000000238 00000 n -Hello.pdf:111:0000001714 00000 n -Hello.pdf:112:0000000022 00000 n -Hello.pdf:113:0000000219 00000 n -Hello.pdf:114:0000000342 00000 n -Hello.pdf:115:0000001679 00000 n -Hello.pdf:116:0000001847 00000 n -Hello.pdf:117:0000000439 00000 n -Hello.pdf:118:0000001658 00000 n -Hello.pdf:119:0000001797 00000 n -Hello.pdf:120:0000002110 00000 n -Hello.pdf:121:0000002362 00000 n -Hello.pdf:122:0000005186 00000 n -Hello.pdf:123:0000005207 00000 n -Hello.pdf:124:0000005231 00000 n -Hello.pdf:125:0000005284 00000 n -Hello.pdf:126:0000005311 00000 n -Hello.pdf:127:0000005353 00000 n -Hello.pdf:128:0000005372 00000 n -Hello.pdf:129:trailer-Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf:131:<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf:132:startxref-Hello.pdf:133:5536-Hello.pdf:134:%%EOF-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.pdf:79:endstream+Hello.pdf:80:endobj+Hello.pdf:81:14 0 obj+Hello.pdf:82:2734+Hello.pdf:83:endobj+Hello.pdf:84:15 0 obj+Hello.pdf:85:(Hello)+Hello.pdf:86:endobj+Hello.pdf:87:16 0 obj+Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf:89:endobj+Hello.pdf:90:17 0 obj+Hello.pdf:91:(TextEdit)+Hello.pdf:92:endobj+Hello.pdf:93:18 0 obj+Hello.pdf:94:(D:20200124010711Z00'00')+Hello.pdf:95:endobj+Hello.pdf:96:19 0 obj+Hello.pdf:97:()+Hello.pdf:98:endobj+Hello.pdf:99:20 0 obj+Hello.pdf:100:[ ]+Hello.pdf:101:endobj+Hello.pdf:102:1 0 obj+Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:105:endobj+Hello.pdf:106:xref+Hello.pdf:107:0 21+Hello.pdf:108:0000000000 65535 f +Hello.pdf:109:0000005392 00000 n +Hello.pdf:110:0000000238 00000 n +Hello.pdf:111:0000001714 00000 n +Hello.pdf:112:0000000022 00000 n +Hello.pdf:113:0000000219 00000 n +Hello.pdf:114:0000000342 00000 n +Hello.pdf:115:0000001679 00000 n +Hello.pdf:116:0000001847 00000 n +Hello.pdf:117:0000000439 00000 n +Hello.pdf:118:0000001658 00000 n +Hello.pdf:119:0000001797 00000 n +Hello.pdf:120:0000002110 00000 n +Hello.pdf:121:0000002362 00000 n +Hello.pdf:122:0000005186 00000 n +Hello.pdf:123:0000005207 00000 n +Hello.pdf:124:0000005231 00000 n +Hello.pdf:125:0000005284 00000 n +Hello.pdf:126:0000005311 00000 n +Hello.pdf:127:0000005353 00000 n +Hello.pdf:128:0000005372 00000 n +Hello.pdf:129:trailer+Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf:131:<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf:132:startxref+Hello.pdf:133:5536+Hello.pdf:134:%%EOF+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-W-o.out

@@ -1,20 +1,20 @@ Hello.bat:#!/bin/sh Hello.bat:echo "Hello World!" Hello.class:-00000000  ca fe ba be 00 00 00 34  00 1d -- -- -- -- -- --  |....@@@4@]------|+00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class: 00000000  -- -- -- -- -- -- -- --  -- -- -- 00 06 00 0f 09  |-----------@F@OI|-00000010  00 10 00 11 08 00 12 --  -- -- -- -- -- -- -- --  |@P@QH@R---------|+00000010  00 10 00 11 08 00 12 0a  -- -- -- -- -- -- -- --  |@P@QH@RJ--------| Hello.class: 00000010  -- -- -- -- -- -- -- --  00 13 00 14 07 00 15 07  |--------@S@TG@UG| 00000020  00 16 01 00 06 3c 69 6e  69 74 3e 01 00 03 28 29  |@VA@F<init>A@C()| 00000030  56 01 00 04 43 6f 64 65  01 00 0f 4c 69 6e 65 4e  |VA@DCodeA@OLineN| 00000040  75 6d 62 65 72 54 61 62  6c 65 01 00 04 6d 61 69  |umberTableA@Dmai| 00000050  6e 01 00 16 28 5b 4c 6a  61 76 61 2f 6c 61 6e 67  |nA@V([Ljava/lang|-00000060  2f 53 74 72 69 6e 67 3b  29 56 01 00 -- -- -- --  |/String;)VA@----|+00000060  2f 53 74 72 69 6e 67 3b  29 56 01 00 0a -- -- --  |/String;)VA@J---| Hello.class: 00000060  -- -- -- -- -- -- -- --  -- -- -- -- -- 53 6f 75  |-------------Sou|-00000070  72 63 65 46 69 6c 65 01  00 -- -- -- -- -- -- --  |rceFileA@-------|+00000070  72 63 65 46 69 6c 65 01  00 0a -- -- -- -- -- --  |rceFileA@J------| Hello.class: 00000070  -- -- -- -- -- -- -- --  -- -- 48 65 6c 6c 6f 2e  |----------Hello.| 00000080  6a 61 76 61 0c 00 07 00  08 07 00 17 0c 00 18 00  |javaL@G@HG@WL@X@|@@ -30,19 +30,19 @@ 00000120  6e 67 2f 53 74 72 69 6e  67 3b 29 56 00 21 00 05  |ng/String;)V@!@E| 00000130  00 06 00 00 00 00 00 02  00 01 00 07 00 08 00 01  |@F@@@@@B@A@G@H@A| 00000140  00 09 00 00 00 1d 00 01  00 01 00 00 00 05 2a b7  |@I@@@]@A@A@@@E*.|-00000150  00 01 b1 00 00 00 01 00  -- -- -- -- -- -- -- --  |@A.@@@A@--------|+00000150  00 01 b1 00 00 00 01 00  0a -- -- -- -- -- -- --  |@A.@@@A@J-------| Hello.class: 00000150  -- -- -- -- -- -- -- --  -- 00 00 00 06 00 01 00  |---------@@@F@A@| 00000160  00 00 03 00 09 00 0b 00  0c 00 01 00 09 00 00 00  |@@C@I@K@L@A@I@@@| 00000170  25 00 02 00 01 00 00 00  09 b2 00 02 12 03 b6 00  |%@B@A@@@I.@BRC.@|-00000180  04 b1 00 00 00 01 00 --  -- -- -- -- -- -- -- --  |D.@@@A@---------|+00000180  04 b1 00 00 00 01 00 0a  -- -- -- -- -- -- -- --  |D.@@@A@J--------| Hello.class:-00000180  -- -- -- -- -- -- -- --  00 00 00 -- -- -- -- --  |--------@@@-----|+00000180  -- -- -- -- -- -- -- --  00 00 00 0a -- -- -- --  |--------@@@J----| Hello.class: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N| Hello.java:import java.lang.*;-Hello.java:+Hello.java: Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");@@ -51,24 +51,24 @@ Hello.pdf:%PDF-1.3 Hello.pdf: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......|-00000010  f3 a0 d0 c4 c6 -- -- --  -- -- -- -- -- -- -- --  |.....-----------|+00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------| Hello.pdf:4 0 obj Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:stream Hello.pdf: 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA|-00000050  45 8e bb -- -- -- -- --  -- -- -- -- -- -- -- --  |E..-------------|+00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------| Hello.pdf: 00000050  -- -- -- -- 02 31 14 44  7b bf e2 94 5a 98 bd 89  |----B1TD{...Z...| 00000060  79 98 56 11 6c 17 2e f8  01 61 2d 64 d7 65 cd ff  |y.VQlW..Aa-d.e..| 00000070  83 17 2c ac 86 99 39 0c  b3 31 b2 51 02 b9 46 97  |.W,...9L.1.QB.F.|-00000080  e2 a9 12 f3 99 90 5c 4c  59 -- -- -- -- -- -- --  |..R...\LY-------|+00000080  e2 a9 12 f3 99 90 5c 4c  59 0a -- -- -- -- -- --  |..R...\LYJ------| Hello.pdf: 00000080  -- -- -- -- -- -- -- --  -- -- 9f 89 07 6f 86 6b  |----------..Go.k| 00000090  f7 b4 8e d0 9b e1 e2 6a  a9 52 6a b2 40 38 fe ad  |.......j.Rj.@8..| 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W|-000000c0  37 b5 37 e3 17 4e ff 20  a5 -- -- -- -- -- -- --  |7.7.WN. .-------|+000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf:endstream Hello.pdf:endobj Hello.pdf:5 0 obj@@ -91,7 +91,7 @@ 00000220  b4 83 3f 6d 09 e9 32 89  56 13 8b b5 db 4d ba 49  |..?mI.2.VS...M.I| 00000230  13 b7 eb 66 53 9b 2a ca  74 76 36 3b cd 64 66 9c  |S..fS.*.tv6;.df.| 00000240  99 dd 26 a1 4f a5 e0 9b  16 04 e9 ab a0 3e c6 82  |..&.O...VD...>..|-00000250  08 b6 2a 36 2f f6 a5 a5  c5 92 4a 35 0f -- -- --  |H.*6/.....J5O---|+00000250  08 b6 2a 36 2f f6 a5 a5  c5 92 4a 35 0f 0a -- --  |H.*6/.....J5OJ--| Hello.pdf: 00000250  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 11 5a  |--------------QZ| 00000260  8c 20 28 7d 52 f0 3b 33  db 64 76 41 32 c3 9d f9  |. (}R.;3.dvA2...|@@ -119,7 +119,7 @@ 000003c0  3f 72 e8 d9 d1 de 7a 11  78 c9 6f 94 39 f6 3d c0  |?r....zQx.o.9.=.| 000003d0  6b ba 3f 52 00 86 cd cc  63 55 7d 98 79 7e 01 78  |k.?R@...cU}.y~Ax| 000003e0  80 4e a4 74 32 c9 a5 d3  f8 1a e4 d0 bf 88 37 20  |.N.t2....Z....7 |-000003f0  8b 9a 11 f2 c8 c7 58 0d  7d 9b -- -- -- -- -- --  |..Q...XM}.------|+000003f0  8b 9a 11 f2 c8 c7 58 0d  7d 9b 0a -- -- -- -- --  |..Q...XM}.J-----| Hello.pdf: 000003f0  -- -- -- -- -- -- -- --  -- -- -- d0 70 d0 7c f4  |-----------.p.|.| 00000400  0c 68 15 80 74 5a 00 2a  25 b4 4c f4 58 27 9e a3  |LhU.tZ@*%.L.X'..|@@ -134,7 +134,7 @@ 00000490  de 3f ef bf 63 19 b7 3e  f8 b3 8d bd 00 fa 31 27  |.?..cY.>....@.1'| 000004a0  bf c1 a2 0b 6b 26 25 e6  5e 3f f7 4d 4f c2 43 75  |...Kk&%.^?.MO.Cu| 000004b0  45 7c f5 d6 9d ee eb e7  e8 78 32 4b 51 de aa 9d  |E|.......x2KQ...|-000004c0  59 92 d7 e4 fb f2 -- --  -- -- -- -- -- -- -- --  |Y.....----------|+000004c0  59 92 d7 e4 fb f2 0a --  -- -- -- -- -- -- -- --  |Y.....J---------| Hello.pdf: 000004c0  -- -- -- -- -- -- -- be  f7 e4 d5 a4 0d f9 67 79  |-------.....M.gy| 000004d0  15 ef bd b6 5c 3d ca 0b  ff 93 b9 cd 21 46 3b 92  |U...\=.K....!F;.|@@ -146,6 +146,7 @@ 00000530  57 a4 ab d2 0d 52 a5 6b  d2 b2 f4 9d f4 bd f4 b9  |W...MR.k........| 00000540  f4 35 7a 5f 40 ba 2c 5d  e9 d8 49 71 ec 1b bb 07  |.5z_@.,]..Iq.[.G| 00000550  7e c6 7b d6 68 ed 30 66  86 b3 14 10 f3 c2 da cc  |~.{.h.0f..TP....|+00000560  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf: 00000560  -- 4b 1f f1 77 06 63 9b  f9 33 a1 d5 5e 03 9d bb  |-K_.wFc..3..^C..| 00000570  7f 63 2d e5 88 b2 53 79  46 19 56 76 2b cf 29 13  |~c-...SyFYVv+.)S|@@ -161,11 +162,11 @@ 00000610  33 cb 31 ff 9b 35 c4 67  18 ef 1d e6 a8 09 6c a3  |3.1..5.gX.]..Il.| 00000620  87 5b 2b 34 e7 71 df 11  e5 5d 6f c1 b7 66 ea a1  |.[+4.q.Q.]o..f..| 00000630  3a a0 69 2f a9 39 5c af  a6 3a e6 18 d9 3e 55 b7  |:.i/.9\..:.X.>U.|-00000640  6d 35 1a -- -- -- -- --  -- -- -- -- -- -- -- --  |m5Z-------------|+00000640  6d 35 1a 0a -- -- -- --  -- -- -- -- -- -- -- --  |m5ZJ------------| Hello.pdf: 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T|-00000660  ea 26 d1 7f b7 8f 93 34  -- -- -- -- -- -- -- --  |.&.~...4--------|+00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf:endstream Hello.pdf:endobj Hello.pdf:10 0 obj@@ -200,7 +201,7 @@ 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...| 000009a0  52 16 48 78 88 20 2f eb  2e 88 f2 48 20 28 21 08  |RVHx. /....H (!H| 000009b0  41 b4 31 90 4a 51 09 c1  40 85 08 48 7d 15 51 a9  |A.1.JQI.@.HH}UQ.|-000009c0  b5 2b 45 5d 09 c4 54 a4  62 23 45 84 a0 02 -- --  |.+E]I.T.b#E..B--|+000009c0  b5 2b 45 5d 09 c4 54 a4  62 23 45 84 a0 02 0a --  |.+E]I.T.b#E..BJ-| Hello.pdf: 000009c0  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- f8  |---------------.| 000009d0  a2 68 8a 14 21 d8 00 43  cf bd 1b fd 3e ed d7 ef  |.h.T!.@C..[.>...|@@ -233,14 +234,14 @@ 00000b80  5a e1 cb 0c 7c a1 f0 f9  5d f8 4c e1 d3 3a 9c 3a  |Z..L|...].L..:.:| 00000b90  99 2e 4f b5 e2 64 3a 4e  d4 e2 13 85 8f 15 8e 1f  |..O..d:N..S..U._| 00000ba0  4b 91 c7 15 8e a5 e0 68  2d 3e fa 30 45 7e a4 f0  |K..U...h->.0E~..|-00000bb0  e1 ea 04 f9 61 -- -- --  -- -- -- -- -- -- -- --  |..D.a-----------|+00000bb0  e1 ea 04 f9 61 0a -- --  -- -- -- -- -- -- -- --  |..D.aJ----------| Hello.pdf: 00000bb0  -- -- -- -- -- -- 3e a8  c0 91 41 68 62 a1 69 10  |------>...Ahb.iP| 00000bc0  0e 2b 1c 7a 3f 5e 1e 52  78 3f 1e 07 15 de 53 38  |N+\z?^^Rx?^GU.S8| 00000bd0  50 e5 94 07 32 f1 d7 54  ec 57 78 b7 16 8d ab 7c  |P..G2..T.Wx.V..||-00000be0  b2 51 e1 2f -- -- -- --  -- -- -- -- -- -- -- --  |.Q./------------|+00000be0  b2 51 e1 2f 0a -- -- --  -- -- -- -- -- -- -- --  |.Q./J-----------| Hello.pdf:-00000be0  -- -- -- -- -- ef 54 60  9f c2 db -- -- -- -- --  |-----.T`...-----|+00000be0  -- -- -- -- -- ef 54 60  9f c2 db 0a -- -- -- --  |-----.T`...J----| Hello.pdf: 00000be0  -- -- -- -- -- -- -- --  -- -- -- -- 7f 56 d8 bb  |------------~V..| 00000bf0  29 51 be a5 b0 47 e1 4d  85 3f 29 34 b0 bd 06 17  |)Q...G.M.?)4..FW|@@ -248,12 +249,12 @@ 00000c10  95 fa ae 3a 9f dc 35 0d  bb 02 7a 9d 0f 3b 15 5e  |...:..5M.Bz.O;U^| 00000c20  af 45 a4 66 a8 7c 4d e1  55 1e 5e 6d c5 2b 6c 6b  |.E.f.|M.U^^m.+lk| 00000c30  87 c2 1f 0b b1 bd 10 2f  db 10 4e c2 1f 14 5e 52  |.._K..P/.PN._T^R|-00000c40  81 ab f8 bd c2 8b -- --  -- -- -- -- -- -- -- --  |......----------|+00000c40  81 ab f8 bd c2 8b 0a --  -- -- -- -- -- -- -- --  |......J---------| Hello.pdf: 00000c40  -- -- -- -- -- -- -- bf  4b c2 36 85 17 9e b7 c9  |-------.K.6.W...| 00000c50  17 72 f1 bc 0d cf 6d 75  ca e7 ba 61 ab 13 cf 6e  |Wr..M.mu...a.S.n| 00000c60  f1 cb 67 2b b0 c5 8f df  2a 3c a3 f0 b4 c2 53 4f  |..g+....*<....SO|-00000c70  a6 cb a7 -- -- -- -- --  -- -- -- -- -- -- -- --  |...-------------|+00000c70  a6 cb a7 0a -- -- -- --  -- -- -- -- -- -- -- --  |...J------------| Hello.pdf: 00000c70  -- -- -- -- f1 e4 13 0e  f9 64 3a 9e 70 e0 37 f1  |----..SN.d:.p.7.| 00000c80  d8 ac f0 38 3b 79 5c 61  53 22 36 6e e8 29 37 2a  |...8;y\aS"6n.)7*|@@ -262,20 +263,20 @@ 00000cb0  8f 2a fc 5a 61 2d cb 6b  eb b0 c6 87 1a 2e 46 cd  |.*.Za-.k....Z.F.| 00000cc0  50 3c c2 d9 3e e2 c2 ea  04 54 33 50 5d 88 55 5c  |P<..>...DT3P].U\| 00000cd0  b4 55 3e 54 39 b1 52 e1  61 85 87 14 1e 5c e1 94  |.U>T9.R.a..T^\..|-00000ce0  0f 2a ac 70 e2 57 -- --  -- -- -- -- -- -- -- --  |O*.p.W----------|+00000ce0  0f 2a ac 70 e2 57 0a --  -- -- -- -- -- -- -- --  |O*.p.WJ---------| Hello.pdf: 00000ce0  -- -- -- -- -- -- -- cb  15 1e 70 0e 93 0f 4c c2  |-------.U^pN.OL.|-00000cf0  2f 15 2a ef c5 b2 a5 15  72 99 c2 d2 -- -- -- --  |/U*....Ur...----|+00000cf0  2f 15 2a ef c5 b2 a5 15  72 99 c2 d2 0a -- -- --  |/U*....Ur...J---| Hello.pdf: 00000cf0  -- -- -- -- -- -- -- --  -- -- -- -- -- 54 74 c4  |-------------Tt.|-00000d00  fd -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |.---------------|+00000d00  fd 0a -- -- -- -- -- --  -- -- -- -- -- -- -- --  |.J--------------| Hello.pdf:-00000d00  -- -- e5 36 fc 42 61 89  c2 3d -- -- -- -- -- --  |--.6.Ba..=------|+00000d00  -- -- e5 36 fc 42 61 89  c2 3d 0a -- -- -- -- --  |--.6.Ba..=J-----| Hello.pdf: 00000d00  -- -- -- -- -- -- -- --  -- -- -- 8b cb ac 72 b1  |-----------...r.| 00000d10  1d 8b 23 82 02 47 f5 32  2b ca 1a f4 45 49 58 14  |].#.BG.2+.Z.EIXT| 00000d20  d0 17 2a dc ad b0 40 a1  74 fe 24 59 5a 8b f9 25  |.W*...@.t.$YZ..%|-00000d30  dd e4 fc 49 28 e9 86 79  -- -- -- -- -- -- -- --  |...I(..y--------|+00000d30  dd e4 fc 49 28 e9 86 79  0a -- -- -- -- -- -- --  |...I(..yJ-------| Hello.pdf: 00000d30  -- -- -- -- -- -- -- --  -- 77 e5 e2 4e 85 b9 b9  |---------w..N...| 00000d40  28 6e c5 9c 3a cc 56 28  52 28 54 98 35 b3 a3 9c  |(n..:.V(R(T.5...|@@ -289,7 +290,7 @@ 00000dc0  cc 29 87 27 61 78 44 0b  04 e2 f4 61 43 ed 72 98  |.).'axDKD..aC.r.| 00000dd0  13 c3 22 1a b1 34 34 60  93 43 ed 18 1a 11 0d 2c  |S."Z.44`.C.XZQM,| 00000de0  05 86 58 65 c0 86 40 44  54 b2 34 c4 1a 27 87 58  |E.Xe..@DT.4.Z'.X|-00000df0  31 24 22 02 81 42 fd 67  -- -- -- -- -- -- -- --  |1$"B.B.g--------|+00000df0  31 24 22 02 81 42 fd 67  0a -- -- -- -- -- -- --  |1$"B.B.gJ-------| Hello.pdf: 00000df0  -- -- -- -- -- -- -- --  -- 83 39 84 c1 ad b8 41  |---------.9....A| 00000e00  e1 fa 6e 18 a4 30 90 0b  3c b0 10 03 7a b7 97 03  |..nX.0.K<.PCz..C|@@ -298,9 +299,9 @@ 00000e30  a3 57 7b e4 30 97 93 86  9e 71 a9 b2 67 1d fc d9  |.W{.0....q..g]..| 00000e40  c9 d2 ef 82 3f a2 19 6e  b3 1d 4e 99 9d 8c 6c 23  |....?.Yn.]N...l#| 00000e50  dc 5a 3d ab 87 4f 66 29  f4 60 cd 1e 3e 74 d7 06  |.Z=..Of).`.^>t.F|-00000e60  c9 ee -- -- -- -- -- --  -- -- -- -- -- -- -- --  |..--------------|+00000e60  c9 ee 0a -- -- -- -- --  -- -- -- -- -- -- -- --  |..J-------------| Hello.pdf:-00000e60  -- -- -- dd 14 ba 2a 74  b1 c3 97 3a 4c fa -- --  |---.T.*t...:L.--|+00000e60  -- -- -- dd 14 ba 2a 74  b1 c3 97 3a 4c fa 0a --  |---.T.*t...:L.J-| Hello.pdf: 00000e60  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- 70  |---------------p| 00000e70  9d 1d 5e 85 ce 76 bb ec  ac e0 71 fb a5 a7 02 6e  |.]^..v....q...Bn|@@ -310,13 +311,13 @@ 00000eb0  bd 64 17 92 78 7d 92 82  93 33 77 0e 83 83 3d 38  |.dW.x}...3wN..=8| 00000ec0  9c 70 44 6b 67 b7 59 a5  dd 0e 7b b4 76 b6 c4 78  |.pDkg.Y..N{.v..x| 00000ed0  69 b3 c2 16 ad 5d 22 d7  2e 31 1e 89 5c bb 1d ba  |i..V.]"..1^.\.].|-00000ee0  35 0e 56 e3 d9 ea af 27  28 c4 73 26 f1 -- -- --  |5NV....'(.s&.---|+00000ee0  35 0e 56 e3 d9 ea af 27  28 c4 73 26 f1 0a -- --  |5NV....'(.s&.J--| Hello.pdf: 00000ee0  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 71 a9  |--------------q.|-00000ef0  88 75 20 46 c1 c2 a6 2d  -- -- -- -- -- -- -- --  |.u F...---------|+00000ef0  88 75 20 46 c1 c2 a6 2d  0a -- -- -- -- -- -- --  |.u F...-J-------| Hello.pdf: 00000ef0  -- -- -- -- -- -- -- --  -- d2 05 70 72 68 85 c6  |---------.Eprh..|-00000f00  80 36 08 82 03 10 7e 90  03 22 22 -- -- -- -- --  |.6H.CP~.C""-----|+00000f00  80 36 08 82 03 10 7e 90  03 22 22 0a -- -- -- --  |.6H.CP~.C""J----| Hello.pdf: 00000f00  -- -- -- -- -- -- -- --  -- -- -- -- 57 ac 16 59  |------------W.VY| 00000f10  ff 3f 8d fe c7 53 e1 4f  67 84 1a cd be 4d ac e5  |.?...S.Og.Z..M..|@@ -361,7 +362,7 @@ 00001180  31 ee 30 ba 8c 0f 4e 08  86 2b f3 33 c2 81 fc 50  |1.0..ONH.+.3...P| 00001190  86 c7 e3 2e 08 37 8c 0f  86 1b f2 33 3c a1 10 6b  |....H7.O.[.3<.Pk| 000011a0  d9 7e 88 94 23 ae 98 9b  d6 16 b3 9d 63 b6 f5 e0  |.~..#....V..c...|-000011b0  79 47 d4 -- -- -- -- --  -- -- -- -- -- -- -- --  |yG.-------------|+000011b0  79 47 d4 0a -- -- -- --  -- -- -- -- -- -- -- --  |yG.J------------| Hello.pdf: 000011b0  -- -- -- -- 97 28 90 11  a6 50 55 95 61 73 52 d0  |----.(.Q.PU.asR.| 000011c0  eb 09 57 56 55 65 54 71  1e 6d 72 84 1a 7e 02 08  |.IWVUeTq^mr.Z~BH|@@ -403,6 +404,7 @@ 00001400  3f 6e 92 c5 2c 7e 7e 6f  a6 89 cc 09 3e 3a 46 75  |?n..,~~o...I>:Fu| 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.|+00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:endstream Hello.pdf:endobj Hello.pdf:14 0 obj@@ -462,4 +464,4 @@ Hello.sh:#!/bin/sh Hello.sh:echo "Hello World!" Hello.txt:Hello-emptyline.txt:+emptyline.txt:

tests/out/Hello_-W-on.out

@@ -1,20 +1,20 @@ Hello.bat:1:#!/bin/sh Hello.bat:2:echo "Hello World!" Hello.class:1:-00000000  ca fe ba be 00 00 00 34  00 1d -- -- -- -- -- --  |....@@@4@]------|+00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:2: 00000000  -- -- -- -- -- -- -- --  -- -- -- 00 06 00 0f 09  |-----------@F@OI|-00000010  00 10 00 11 08 00 12 --  -- -- -- -- -- -- -- --  |@P@QH@R---------|+00000010  00 10 00 11 08 00 12 0a  -- -- -- -- -- -- -- --  |@P@QH@RJ--------| Hello.class:3: 00000010  -- -- -- -- -- -- -- --  00 13 00 14 07 00 15 07  |--------@S@TG@UG| 00000020  00 16 01 00 06 3c 69 6e  69 74 3e 01 00 03 28 29  |@VA@F<init>A@C()| 00000030  56 01 00 04 43 6f 64 65  01 00 0f 4c 69 6e 65 4e  |VA@DCodeA@OLineN| 00000040  75 6d 62 65 72 54 61 62  6c 65 01 00 04 6d 61 69  |umberTableA@Dmai| 00000050  6e 01 00 16 28 5b 4c 6a  61 76 61 2f 6c 61 6e 67  |nA@V([Ljava/lang|-00000060  2f 53 74 72 69 6e 67 3b  29 56 01 00 -- -- -- --  |/String;)VA@----|+00000060  2f 53 74 72 69 6e 67 3b  29 56 01 00 0a -- -- --  |/String;)VA@J---| Hello.class:4: 00000060  -- -- -- -- -- -- -- --  -- -- -- -- -- 53 6f 75  |-------------Sou|-00000070  72 63 65 46 69 6c 65 01  00 -- -- -- -- -- -- --  |rceFileA@-------|+00000070  72 63 65 46 69 6c 65 01  00 0a -- -- -- -- -- --  |rceFileA@J------| Hello.class:5: 00000070  -- -- -- -- -- -- -- --  -- -- 48 65 6c 6c 6f 2e  |----------Hello.| 00000080  6a 61 76 61 0c 00 07 00  08 07 00 17 0c 00 18 00  |javaL@G@HG@WL@X@|@@ -30,19 +30,19 @@ 00000120  6e 67 2f 53 74 72 69 6e  67 3b 29 56 00 21 00 05  |ng/String;)V@!@E| 00000130  00 06 00 00 00 00 00 02  00 01 00 07 00 08 00 01  |@F@@@@@B@A@G@H@A| 00000140  00 09 00 00 00 1d 00 01  00 01 00 00 00 05 2a b7  |@I@@@]@A@A@@@E*.|-00000150  00 01 b1 00 00 00 01 00  -- -- -- -- -- -- -- --  |@A.@@@A@--------|+00000150  00 01 b1 00 00 00 01 00  0a -- -- -- -- -- -- --  |@A.@@@A@J-------| Hello.class:6: 00000150  -- -- -- -- -- -- -- --  -- 00 00 00 06 00 01 00  |---------@@@F@A@| 00000160  00 00 03 00 09 00 0b 00  0c 00 01 00 09 00 00 00  |@@C@I@K@L@A@I@@@| 00000170  25 00 02 00 01 00 00 00  09 b2 00 02 12 03 b6 00  |%@B@A@@@I.@BRC.@|-00000180  04 b1 00 00 00 01 00 --  -- -- -- -- -- -- -- --  |D.@@@A@---------|+00000180  04 b1 00 00 00 01 00 0a  -- -- -- -- -- -- -- --  |D.@@@A@J--------| Hello.class:7:-00000180  -- -- -- -- -- -- -- --  00 00 00 -- -- -- -- --  |--------@@@-----|+00000180  -- -- -- -- -- -- -- --  00 00 00 0a -- -- -- --  |--------@@@J----| Hello.class:8: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N| Hello.java:1:import java.lang.*;-Hello.java:2:+Hello.java:2: Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!");@@ -51,24 +51,24 @@ Hello.pdf:1:%PDF-1.3 Hello.pdf:2: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......|-00000010  f3 a0 d0 c4 c6 -- -- --  -- -- -- -- -- -- -- --  |.....-----------|+00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------| Hello.pdf:3:4 0 obj Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:5:stream Hello.pdf:6: 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA|-00000050  45 8e bb -- -- -- -- --  -- -- -- -- -- -- -- --  |E..-------------|+00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------| Hello.pdf:7: 00000050  -- -- -- -- 02 31 14 44  7b bf e2 94 5a 98 bd 89  |----B1TD{...Z...| 00000060  79 98 56 11 6c 17 2e f8  01 61 2d 64 d7 65 cd ff  |y.VQlW..Aa-d.e..| 00000070  83 17 2c ac 86 99 39 0c  b3 31 b2 51 02 b9 46 97  |.W,...9L.1.QB.F.|-00000080  e2 a9 12 f3 99 90 5c 4c  59 -- -- -- -- -- -- --  |..R...\LY-------|+00000080  e2 a9 12 f3 99 90 5c 4c  59 0a -- -- -- -- -- --  |..R...\LYJ------| Hello.pdf:8: 00000080  -- -- -- -- -- -- -- --  -- -- 9f 89 07 6f 86 6b  |----------..Go.k| 00000090  f7 b4 8e d0 9b e1 e2 6a  a9 52 6a b2 40 38 fe ad  |.......j.Rj.@8..| 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W|-000000c0  37 b5 37 e3 17 4e ff 20  a5 -- -- -- -- -- -- --  |7.7.WN. .-------|+000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf:9:endstream Hello.pdf:10:endobj Hello.pdf:11:5 0 obj@@ -91,7 +91,7 @@ 00000220  b4 83 3f 6d 09 e9 32 89  56 13 8b b5 db 4d ba 49  |..?mI.2.VS...M.I| 00000230  13 b7 eb 66 53 9b 2a ca  74 76 36 3b cd 64 66 9c  |S..fS.*.tv6;.df.| 00000240  99 dd 26 a1 4f a5 e0 9b  16 04 e9 ab a0 3e c6 82  |..&.O...VD...>..|-00000250  08 b6 2a 36 2f f6 a5 a5  c5 92 4a 35 0f -- -- --  |H.*6/.....J5O---|+00000250  08 b6 2a 36 2f f6 a5 a5  c5 92 4a 35 0f 0a -- --  |H.*6/.....J5OJ--| Hello.pdf:26: 00000250  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 11 5a  |--------------QZ| 00000260  8c 20 28 7d 52 f0 3b 33  db 64 76 41 32 c3 9d f9  |. (}R.;3.dvA2...|@@ -119,7 +119,7 @@ 000003c0  3f 72 e8 d9 d1 de 7a 11  78 c9 6f 94 39 f6 3d c0  |?r....zQx.o.9.=.| 000003d0  6b ba 3f 52 00 86 cd cc  63 55 7d 98 79 7e 01 78  |k.?R@...cU}.y~Ax| 000003e0  80 4e a4 74 32 c9 a5 d3  f8 1a e4 d0 bf 88 37 20  |.N.t2....Z....7 |-000003f0  8b 9a 11 f2 c8 c7 58 0d  7d 9b -- -- -- -- -- --  |..Q...XM}.------|+000003f0  8b 9a 11 f2 c8 c7 58 0d  7d 9b 0a -- -- -- -- --  |..Q...XM}.J-----| Hello.pdf:27: 000003f0  -- -- -- -- -- -- -- --  -- -- -- d0 70 d0 7c f4  |-----------.p.|.| 00000400  0c 68 15 80 74 5a 00 2a  25 b4 4c f4 58 27 9e a3  |LhU.tZ@*%.L.X'..|@@ -134,7 +134,7 @@ 00000490  de 3f ef bf 63 19 b7 3e  f8 b3 8d bd 00 fa 31 27  |.?..cY.>....@.1'| 000004a0  bf c1 a2 0b 6b 26 25 e6  5e 3f f7 4d 4f c2 43 75  |...Kk&%.^?.MO.Cu| 000004b0  45 7c f5 d6 9d ee eb e7  e8 78 32 4b 51 de aa 9d  |E|.......x2KQ...|-000004c0  59 92 d7 e4 fb f2 -- --  -- -- -- -- -- -- -- --  |Y.....----------|+000004c0  59 92 d7 e4 fb f2 0a --  -- -- -- -- -- -- -- --  |Y.....J---------| Hello.pdf:28: 000004c0  -- -- -- -- -- -- -- be  f7 e4 d5 a4 0d f9 67 79  |-------.....M.gy| 000004d0  15 ef bd b6 5c 3d ca 0b  ff 93 b9 cd 21 46 3b 92  |U...\=.K....!F;.|@@ -146,6 +146,7 @@ 00000530  57 a4 ab d2 0d 52 a5 6b  d2 b2 f4 9d f4 bd f4 b9  |W...MR.k........| 00000540  f4 35 7a 5f 40 ba 2c 5d  e9 d8 49 71 ec 1b bb 07  |.5z_@.,]..Iq.[.G| 00000550  7e c6 7b d6 68 ed 30 66  86 b3 14 10 f3 c2 da cc  |~.{.h.0f..TP....|+00000560  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:29: 00000560  -- 4b 1f f1 77 06 63 9b  f9 33 a1 d5 5e 03 9d bb  |-K_.wFc..3..^C..| 00000570  7f 63 2d e5 88 b2 53 79  46 19 56 76 2b cf 29 13  |~c-...SyFYVv+.)S|@@ -161,11 +162,11 @@ 00000610  33 cb 31 ff 9b 35 c4 67  18 ef 1d e6 a8 09 6c a3  |3.1..5.gX.]..Il.| 00000620  87 5b 2b 34 e7 71 df 11  e5 5d 6f c1 b7 66 ea a1  |.[+4.q.Q.]o..f..| 00000630  3a a0 69 2f a9 39 5c af  a6 3a e6 18 d9 3e 55 b7  |:.i/.9\..:.X.>U.|-00000640  6d 35 1a -- -- -- -- --  -- -- -- -- -- -- -- --  |m5Z-------------|+00000640  6d 35 1a 0a -- -- -- --  -- -- -- -- -- -- -- --  |m5ZJ------------| Hello.pdf:30: 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T|-00000660  ea 26 d1 7f b7 8f 93 34  -- -- -- -- -- -- -- --  |.&.~...4--------|+00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf:31:endstream Hello.pdf:32:endobj Hello.pdf:33:10 0 obj@@ -200,7 +201,7 @@ 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...| 000009a0  52 16 48 78 88 20 2f eb  2e 88 f2 48 20 28 21 08  |RVHx. /....H (!H| 000009b0  41 b4 31 90 4a 51 09 c1  40 85 08 48 7d 15 51 a9  |A.1.JQI.@.HH}UQ.|-000009c0  b5 2b 45 5d 09 c4 54 a4  62 23 45 84 a0 02 -- --  |.+E]I.T.b#E..B--|+000009c0  b5 2b 45 5d 09 c4 54 a4  62 23 45 84 a0 02 0a --  |.+E]I.T.b#E..BJ-| Hello.pdf:61: 000009c0  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- f8  |---------------.| 000009d0  a2 68 8a 14 21 d8 00 43  cf bd 1b fd 3e ed d7 ef  |.h.T!.@C..[.>...|@@ -233,14 +234,14 @@ 00000b80  5a e1 cb 0c 7c a1 f0 f9  5d f8 4c e1 d3 3a 9c 3a  |Z..L|...].L..:.:| 00000b90  99 2e 4f b5 e2 64 3a 4e  d4 e2 13 85 8f 15 8e 1f  |..O..d:N..S..U._| 00000ba0  4b 91 c7 15 8e a5 e0 68  2d 3e fa 30 45 7e a4 f0  |K..U...h->.0E~..|-00000bb0  e1 ea 04 f9 61 -- -- --  -- -- -- -- -- -- -- --  |..D.a-----------|+00000bb0  e1 ea 04 f9 61 0a -- --  -- -- -- -- -- -- -- --  |..D.aJ----------| Hello.pdf:62: 00000bb0  -- -- -- -- -- -- 3e a8  c0 91 41 68 62 a1 69 10  |------>...Ahb.iP| 00000bc0  0e 2b 1c 7a 3f 5e 1e 52  78 3f 1e 07 15 de 53 38  |N+\z?^^Rx?^GU.S8| 00000bd0  50 e5 94 07 32 f1 d7 54  ec 57 78 b7 16 8d ab 7c  |P..G2..T.Wx.V..||-00000be0  b2 51 e1 2f -- -- -- --  -- -- -- -- -- -- -- --  |.Q./------------|+00000be0  b2 51 e1 2f 0a -- -- --  -- -- -- -- -- -- -- --  |.Q./J-----------| Hello.pdf:63:-00000be0  -- -- -- -- -- ef 54 60  9f c2 db -- -- -- -- --  |-----.T`...-----|+00000be0  -- -- -- -- -- ef 54 60  9f c2 db 0a -- -- -- --  |-----.T`...J----| Hello.pdf:64: 00000be0  -- -- -- -- -- -- -- --  -- -- -- -- 7f 56 d8 bb  |------------~V..| 00000bf0  29 51 be a5 b0 47 e1 4d  85 3f 29 34 b0 bd 06 17  |)Q...G.M.?)4..FW|@@ -248,12 +249,12 @@ 00000c10  95 fa ae 3a 9f dc 35 0d  bb 02 7a 9d 0f 3b 15 5e  |...:..5M.Bz.O;U^| 00000c20  af 45 a4 66 a8 7c 4d e1  55 1e 5e 6d c5 2b 6c 6b  |.E.f.|M.U^^m.+lk| 00000c30  87 c2 1f 0b b1 bd 10 2f  db 10 4e c2 1f 14 5e 52  |.._K..P/.PN._T^R|-00000c40  81 ab f8 bd c2 8b -- --  -- -- -- -- -- -- -- --  |......----------|+00000c40  81 ab f8 bd c2 8b 0a --  -- -- -- -- -- -- -- --  |......J---------| Hello.pdf:65: 00000c40  -- -- -- -- -- -- -- bf  4b c2 36 85 17 9e b7 c9  |-------.K.6.W...| 00000c50  17 72 f1 bc 0d cf 6d 75  ca e7 ba 61 ab 13 cf 6e  |Wr..M.mu...a.S.n| 00000c60  f1 cb 67 2b b0 c5 8f df  2a 3c a3 f0 b4 c2 53 4f  |..g+....*<....SO|-00000c70  a6 cb a7 -- -- -- -- --  -- -- -- -- -- -- -- --  |...-------------|+00000c70  a6 cb a7 0a -- -- -- --  -- -- -- -- -- -- -- --  |...J------------| Hello.pdf:66: 00000c70  -- -- -- -- f1 e4 13 0e  f9 64 3a 9e 70 e0 37 f1  |----..SN.d:.p.7.| 00000c80  d8 ac f0 38 3b 79 5c 61  53 22 36 6e e8 29 37 2a  |...8;y\aS"6n.)7*|@@ -262,20 +263,20 @@ 00000cb0  8f 2a fc 5a 61 2d cb 6b  eb b0 c6 87 1a 2e 46 cd  |.*.Za-.k....Z.F.| 00000cc0  50 3c c2 d9 3e e2 c2 ea  04 54 33 50 5d 88 55 5c  |P<..>...DT3P].U\| 00000cd0  b4 55 3e 54 39 b1 52 e1  61 85 87 14 1e 5c e1 94  |.U>T9.R.a..T^\..|-00000ce0  0f 2a ac 70 e2 57 -- --  -- -- -- -- -- -- -- --  |O*.p.W----------|+00000ce0  0f 2a ac 70 e2 57 0a --  -- -- -- -- -- -- -- --  |O*.p.WJ---------| Hello.pdf:67: 00000ce0  -- -- -- -- -- -- -- cb  15 1e 70 0e 93 0f 4c c2  |-------.U^pN.OL.|-00000cf0  2f 15 2a ef c5 b2 a5 15  72 99 c2 d2 -- -- -- --  |/U*....Ur...----|+00000cf0  2f 15 2a ef c5 b2 a5 15  72 99 c2 d2 0a -- -- --  |/U*....Ur...J---| Hello.pdf:68: 00000cf0  -- -- -- -- -- -- -- --  -- -- -- -- -- 54 74 c4  |-------------Tt.|-00000d00  fd -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |.---------------|+00000d00  fd 0a -- -- -- -- -- --  -- -- -- -- -- -- -- --  |.J--------------| Hello.pdf:69:-00000d00  -- -- e5 36 fc 42 61 89  c2 3d -- -- -- -- -- --  |--.6.Ba..=------|+00000d00  -- -- e5 36 fc 42 61 89  c2 3d 0a -- -- -- -- --  |--.6.Ba..=J-----| Hello.pdf:70: 00000d00  -- -- -- -- -- -- -- --  -- -- -- 8b cb ac 72 b1  |-----------...r.| 00000d10  1d 8b 23 82 02 47 f5 32  2b ca 1a f4 45 49 58 14  |].#.BG.2+.Z.EIXT| 00000d20  d0 17 2a dc ad b0 40 a1  74 fe 24 59 5a 8b f9 25  |.W*...@.t.$YZ..%|-00000d30  dd e4 fc 49 28 e9 86 79  -- -- -- -- -- -- -- --  |...I(..y--------|+00000d30  dd e4 fc 49 28 e9 86 79  0a -- -- -- -- -- -- --  |...I(..yJ-------| Hello.pdf:71: 00000d30  -- -- -- -- -- -- -- --  -- 77 e5 e2 4e 85 b9 b9  |---------w..N...| 00000d40  28 6e c5 9c 3a cc 56 28  52 28 54 98 35 b3 a3 9c  |(n..:.V(R(T.5...|@@ -289,7 +290,7 @@ 00000dc0  cc 29 87 27 61 78 44 0b  04 e2 f4 61 43 ed 72 98  |.).'axDKD..aC.r.| 00000dd0  13 c3 22 1a b1 34 34 60  93 43 ed 18 1a 11 0d 2c  |S."Z.44`.C.XZQM,| 00000de0  05 86 58 65 c0 86 40 44  54 b2 34 c4 1a 27 87 58  |E.Xe..@DT.4.Z'.X|-00000df0  31 24 22 02 81 42 fd 67  -- -- -- -- -- -- -- --  |1$"B.B.g--------|+00000df0  31 24 22 02 81 42 fd 67  0a -- -- -- -- -- -- --  |1$"B.B.gJ-------| Hello.pdf:72: 00000df0  -- -- -- -- -- -- -- --  -- 83 39 84 c1 ad b8 41  |---------.9....A| 00000e00  e1 fa 6e 18 a4 30 90 0b  3c b0 10 03 7a b7 97 03  |..nX.0.K<.PCz..C|@@ -298,9 +299,9 @@ 00000e30  a3 57 7b e4 30 97 93 86  9e 71 a9 b2 67 1d fc d9  |.W{.0....q..g]..| 00000e40  c9 d2 ef 82 3f a2 19 6e  b3 1d 4e 99 9d 8c 6c 23  |....?.Yn.]N...l#| 00000e50  dc 5a 3d ab 87 4f 66 29  f4 60 cd 1e 3e 74 d7 06  |.Z=..Of).`.^>t.F|-00000e60  c9 ee -- -- -- -- -- --  -- -- -- -- -- -- -- --  |..--------------|+00000e60  c9 ee 0a -- -- -- -- --  -- -- -- -- -- -- -- --  |..J-------------| Hello.pdf:73:-00000e60  -- -- -- dd 14 ba 2a 74  b1 c3 97 3a 4c fa -- --  |---.T.*t...:L.--|+00000e60  -- -- -- dd 14 ba 2a 74  b1 c3 97 3a 4c fa 0a --  |---.T.*t...:L.J-| Hello.pdf:74: 00000e60  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- 70  |---------------p| 00000e70  9d 1d 5e 85 ce 76 bb ec  ac e0 71 fb a5 a7 02 6e  |.]^..v....q...Bn|@@ -310,13 +311,13 @@ 00000eb0  bd 64 17 92 78 7d 92 82  93 33 77 0e 83 83 3d 38  |.dW.x}...3wN..=8| 00000ec0  9c 70 44 6b 67 b7 59 a5  dd 0e 7b b4 76 b6 c4 78  |.pDkg.Y..N{.v..x| 00000ed0  69 b3 c2 16 ad 5d 22 d7  2e 31 1e 89 5c bb 1d ba  |i..V.]"..1^.\.].|-00000ee0  35 0e 56 e3 d9 ea af 27  28 c4 73 26 f1 -- -- --  |5NV....'(.s&.---|+00000ee0  35 0e 56 e3 d9 ea af 27  28 c4 73 26 f1 0a -- --  |5NV....'(.s&.J--| Hello.pdf:75: 00000ee0  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 71 a9  |--------------q.|-00000ef0  88 75 20 46 c1 c2 a6 2d  -- -- -- -- -- -- -- --  |.u F...---------|+00000ef0  88 75 20 46 c1 c2 a6 2d  0a -- -- -- -- -- -- --  |.u F...-J-------| Hello.pdf:76: 00000ef0  -- -- -- -- -- -- -- --  -- d2 05 70 72 68 85 c6  |---------.Eprh..|-00000f00  80 36 08 82 03 10 7e 90  03 22 22 -- -- -- -- --  |.6H.CP~.C""-----|+00000f00  80 36 08 82 03 10 7e 90  03 22 22 0a -- -- -- --  |.6H.CP~.C""J----| Hello.pdf:77: 00000f00  -- -- -- -- -- -- -- --  -- -- -- -- 57 ac 16 59  |------------W.VY| 00000f10  ff 3f 8d fe c7 53 e1 4f  67 84 1a cd be 4d ac e5  |.?...S.Og.Z..M..|@@ -361,7 +362,7 @@ 00001180  31 ee 30 ba 8c 0f 4e 08  86 2b f3 33 c2 81 fc 50  |1.0..ONH.+.3...P| 00001190  86 c7 e3 2e 08 37 8c 0f  86 1b f2 33 3c a1 10 6b  |....H7.O.[.3<.Pk| 000011a0  d9 7e 88 94 23 ae 98 9b  d6 16 b3 9d 63 b6 f5 e0  |.~..#....V..c...|-000011b0  79 47 d4 -- -- -- -- --  -- -- -- -- -- -- -- --  |yG.-------------|+000011b0  79 47 d4 0a -- -- -- --  -- -- -- -- -- -- -- --  |yG.J------------| Hello.pdf:78: 000011b0  -- -- -- -- 97 28 90 11  a6 50 55 95 61 73 52 d0  |----.(.Q.PU.asR.| 000011c0  eb 09 57 56 55 65 54 71  1e 6d 72 84 1a 7e 02 08  |.IWVUeTq^mr.Z~BH|@@ -403,6 +404,7 @@ 00001400  3f 6e 92 c5 2c 7e 7e 6f  a6 89 cc 09 3e 3a 46 75  |?n..,~~o...I>:Fu| 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.|+00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:79:endstream Hello.pdf:80:endobj Hello.pdf:81:14 0 obj@@ -462,4 +464,4 @@ Hello.sh:1:#!/bin/sh Hello.sh:2:echo "Hello World!" Hello.txt:1:Hello-emptyline.txt:1:+emptyline.txt:1:

tests/out/Hello_-W-onkbT.out

@@ -1,20 +1,20 @@ Hello.bat:     1:  1:      0:	#!/bin/sh Hello.bat:     2:  1:     10:	echo "Hello World!" Hello.class:     1:  1:      0:	-00000000  ca fe ba be 00 00 00 34  00 1d -- -- -- -- -- --  |....@@@4@]------|+00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:     2:  1:     11:	 00000000  -- -- -- -- -- -- -- --  -- -- -- 00 06 00 0f 09  |-----------@F@OI|-00000010  00 10 00 11 08 00 12 --  -- -- -- -- -- -- -- --  |@P@QH@R---------|+00000010  00 10 00 11 08 00 12 0a  -- -- -- -- -- -- -- --  |@P@QH@RJ--------| Hello.class:     3:  1:     24:	 00000010  -- -- -- -- -- -- -- --  00 13 00 14 07 00 15 07  |--------@S@TG@UG| 00000020  00 16 01 00 06 3c 69 6e  69 74 3e 01 00 03 28 29  |@VA@F<init>A@C()| 00000030  56 01 00 04 43 6f 64 65  01 00 0f 4c 69 6e 65 4e  |VA@DCodeA@OLineN| 00000040  75 6d 62 65 72 54 61 62  6c 65 01 00 04 6d 61 69  |umberTableA@Dmai| 00000050  6e 01 00 16 28 5b 4c 6a  61 76 61 2f 6c 61 6e 67  |nA@V([Ljava/lang|-00000060  2f 53 74 72 69 6e 67 3b  29 56 01 00 -- -- -- --  |/String;)VA@----|+00000060  2f 53 74 72 69 6e 67 3b  29 56 01 00 0a -- -- --  |/String;)VA@J---| Hello.class:     4:  1:    109:	 00000060  -- -- -- -- -- -- -- --  -- -- -- -- -- 53 6f 75  |-------------Sou|-00000070  72 63 65 46 69 6c 65 01  00 -- -- -- -- -- -- --  |rceFileA@-------|+00000070  72 63 65 46 69 6c 65 01  00 0a -- -- -- -- -- --  |rceFileA@J------| Hello.class:     5:  1:    122:	 00000070  -- -- -- -- -- -- -- --  -- -- 48 65 6c 6c 6f 2e  |----------Hello.| 00000080  6a 61 76 61 0c 00 07 00  08 07 00 17 0c 00 18 00  |javaL@G@HG@WL@X@|@@ -30,19 +30,19 @@ 00000120  6e 67 2f 53 74 72 69 6e  67 3b 29 56 00 21 00 05  |ng/String;)V@!@E| 00000130  00 06 00 00 00 00 00 02  00 01 00 07 00 08 00 01  |@F@@@@@B@A@G@H@A| 00000140  00 09 00 00 00 1d 00 01  00 01 00 00 00 05 2a b7  |@I@@@]@A@A@@@E*.|-00000150  00 01 b1 00 00 00 01 00  -- -- -- -- -- -- -- --  |@A.@@@A@--------|+00000150  00 01 b1 00 00 00 01 00  0a -- -- -- -- -- -- --  |@A.@@@A@J-------| Hello.class:     6:  1:    345:	 00000150  -- -- -- -- -- -- -- --  -- 00 00 00 06 00 01 00  |---------@@@F@A@| 00000160  00 00 03 00 09 00 0b 00  0c 00 01 00 09 00 00 00  |@@C@I@K@L@A@I@@@| 00000170  25 00 02 00 01 00 00 00  09 b2 00 02 12 03 b6 00  |%@B@A@@@I.@BRC.@|-00000180  04 b1 00 00 00 01 00 --  -- -- -- -- -- -- -- --  |D.@@@A@---------|+00000180  04 b1 00 00 00 01 00 0a  -- -- -- -- -- -- -- --  |D.@@@A@J--------| Hello.class:     7:  1:    392:	-00000180  -- -- -- -- -- -- -- --  00 00 00 -- -- -- -- --  |--------@@@-----|+00000180  -- -- -- -- -- -- -- --  00 00 00 0a -- -- -- --  |--------@@@J----| Hello.class:     8:  1:    396:	 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N| Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	+Hello.java:     2:  1:     20:	 Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  1:     74:	{ public static void main(String[] arg) Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");@@ -51,24 +51,24 @@ Hello.pdf:     1:  1:      0:	%PDF-1.3 Hello.pdf:     2:  1:      9:	 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......|-00000010  f3 a0 d0 c4 c6 -- -- --  -- -- -- -- -- -- -- --  |.....-----------|+00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------| Hello.pdf:     3:  1:     22:	4 0 obj Hello.pdf:     4:  1:     30:	<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:     5:  1:     71:	stream Hello.pdf:     6:  1:     78:	 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA|-00000050  45 8e bb -- -- -- -- --  -- -- -- -- -- -- -- --  |E..-------------|+00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------| Hello.pdf:     7:  1:     84:	 00000050  -- -- -- -- 02 31 14 44  7b bf e2 94 5a 98 bd 89  |----B1TD{...Z...| 00000060  79 98 56 11 6c 17 2e f8  01 61 2d 64 d7 65 cd ff  |y.VQlW..Aa-d.e..| 00000070  83 17 2c ac 86 99 39 0c  b3 31 b2 51 02 b9 46 97  |.W,...9L.1.QB.F.|-00000080  e2 a9 12 f3 99 90 5c 4c  59 -- -- -- -- -- -- --  |..R...\LY-------|+00000080  e2 a9 12 f3 99 90 5c 4c  59 0a -- -- -- -- -- --  |..R...\LYJ------| Hello.pdf:     8:  1:    138:	 00000080  -- -- -- -- -- -- -- --  -- -- 9f 89 07 6f 86 6b  |----------..Go.k| 00000090  f7 b4 8e d0 9b e1 e2 6a  a9 52 6a b2 40 38 fe ad  |.......j.Rj.@8..| 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W|-000000c0  37 b5 37 e3 17 4e ff 20  a5 -- -- -- -- -- -- --  |7.7.WN. .-------|+000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf:     9:  1:    202:	endstream Hello.pdf:    10:  1:    212:	endobj Hello.pdf:    11:  1:    219:	5 0 obj@@ -91,7 +91,7 @@ 00000220  b4 83 3f 6d 09 e9 32 89  56 13 8b b5 db 4d ba 49  |..?mI.2.VS...M.I| 00000230  13 b7 eb 66 53 9b 2a ca  74 76 36 3b cd 64 66 9c  |S..fS.*.tv6;.df.| 00000240  99 dd 26 a1 4f a5 e0 9b  16 04 e9 ab a0 3e c6 82  |..&.O...VD...>..|-00000250  08 b6 2a 36 2f f6 a5 a5  c5 92 4a 35 0f -- -- --  |H.*6/.....J5O---|+00000250  08 b6 2a 36 2f f6 a5 a5  c5 92 4a 35 0f 0a -- --  |H.*6/.....J5OJ--| Hello.pdf:    26:  1:    606:	 00000250  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 11 5a  |--------------QZ| 00000260  8c 20 28 7d 52 f0 3b 33  db 64 76 41 32 c3 9d f9  |. (}R.;3.dvA2...|@@ -119,7 +119,7 @@ 000003c0  3f 72 e8 d9 d1 de 7a 11  78 c9 6f 94 39 f6 3d c0  |?r....zQx.o.9.=.| 000003d0  6b ba 3f 52 00 86 cd cc  63 55 7d 98 79 7e 01 78  |k.?R@...cU}.y~Ax| 000003e0  80 4e a4 74 32 c9 a5 d3  f8 1a e4 d0 bf 88 37 20  |.N.t2....Z....7 |-000003f0  8b 9a 11 f2 c8 c7 58 0d  7d 9b -- -- -- -- -- --  |..Q...XM}.------|+000003f0  8b 9a 11 f2 c8 c7 58 0d  7d 9b 0a -- -- -- -- --  |..Q...XM}.J-----| Hello.pdf:    27:  1:   1019:	 000003f0  -- -- -- -- -- -- -- --  -- -- -- d0 70 d0 7c f4  |-----------.p.|.| 00000400  0c 68 15 80 74 5a 00 2a  25 b4 4c f4 58 27 9e a3  |LhU.tZ@*%.L.X'..|@@ -134,7 +134,7 @@ 00000490  de 3f ef bf 63 19 b7 3e  f8 b3 8d bd 00 fa 31 27  |.?..cY.>....@.1'| 000004a0  bf c1 a2 0b 6b 26 25 e6  5e 3f f7 4d 4f c2 43 75  |...Kk&%.^?.MO.Cu| 000004b0  45 7c f5 d6 9d ee eb e7  e8 78 32 4b 51 de aa 9d  |E|.......x2KQ...|-000004c0  59 92 d7 e4 fb f2 -- --  -- -- -- -- -- -- -- --  |Y.....----------|+000004c0  59 92 d7 e4 fb f2 0a --  -- -- -- -- -- -- -- --  |Y.....J---------| Hello.pdf:    28:  1:   1223:	 000004c0  -- -- -- -- -- -- -- be  f7 e4 d5 a4 0d f9 67 79  |-------.....M.gy| 000004d0  15 ef bd b6 5c 3d ca 0b  ff 93 b9 cd 21 46 3b 92  |U...\=.K....!F;.|@@ -146,6 +146,7 @@ 00000530  57 a4 ab d2 0d 52 a5 6b  d2 b2 f4 9d f4 bd f4 b9  |W...MR.k........| 00000540  f4 35 7a 5f 40 ba 2c 5d  e9 d8 49 71 ec 1b bb 07  |.5z_@.,]..Iq.[.G| 00000550  7e c6 7b d6 68 ed 30 66  86 b3 14 10 f3 c2 da cc  |~.{.h.0f..TP....|+00000560  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:    29:  1:   1377:	 00000560  -- 4b 1f f1 77 06 63 9b  f9 33 a1 d5 5e 03 9d bb  |-K_.wFc..3..^C..| 00000570  7f 63 2d e5 88 b2 53 79  46 19 56 76 2b cf 29 13  |~c-...SyFYVv+.)S|@@ -161,11 +162,11 @@ 00000610  33 cb 31 ff 9b 35 c4 67  18 ef 1d e6 a8 09 6c a3  |3.1..5.gX.]..Il.| 00000620  87 5b 2b 34 e7 71 df 11  e5 5d 6f c1 b7 66 ea a1  |.[+4.q.Q.]o..f..| 00000630  3a a0 69 2f a9 39 5c af  a6 3a e6 18 d9 3e 55 b7  |:.i/.9\..:.X.>U.|-00000640  6d 35 1a -- -- -- -- --  -- -- -- -- -- -- -- --  |m5Z-------------|+00000640  6d 35 1a 0a -- -- -- --  -- -- -- -- -- -- -- --  |m5ZJ------------| Hello.pdf:    30:  1:   1604:	 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T|-00000660  ea 26 d1 7f b7 8f 93 34  -- -- -- -- -- -- -- --  |.&.~...4--------|+00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf:    31:  1:   1641:	endstream Hello.pdf:    32:  1:   1651:	endobj Hello.pdf:    33:  1:   1658:	10 0 obj@@ -200,7 +201,7 @@ 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...| 000009a0  52 16 48 78 88 20 2f eb  2e 88 f2 48 20 28 21 08  |RVHx. /....H (!H| 000009b0  41 b4 31 90 4a 51 09 c1  40 85 08 48 7d 15 51 a9  |A.1.JQI.@.HH}UQ.|-000009c0  b5 2b 45 5d 09 c4 54 a4  62 23 45 84 a0 02 -- --  |.+E]I.T.b#E..B--|+000009c0  b5 2b 45 5d 09 c4 54 a4  62 23 45 84 a0 02 0a --  |.+E]I.T.b#E..BJ-| Hello.pdf:    61:  1:   2511:	 000009c0  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- f8  |---------------.| 000009d0  a2 68 8a 14 21 d8 00 43  cf bd 1b fd 3e ed d7 ef  |.h.T!.@C..[.>...|@@ -233,14 +234,14 @@ 00000b80  5a e1 cb 0c 7c a1 f0 f9  5d f8 4c e1 d3 3a 9c 3a  |Z..L|...].L..:.:| 00000b90  99 2e 4f b5 e2 64 3a 4e  d4 e2 13 85 8f 15 8e 1f  |..O..d:N..S..U._| 00000ba0  4b 91 c7 15 8e a5 e0 68  2d 3e fa 30 45 7e a4 f0  |K..U...h->.0E~..|-00000bb0  e1 ea 04 f9 61 -- -- --  -- -- -- -- -- -- -- --  |..D.a-----------|+00000bb0  e1 ea 04 f9 61 0a -- --  -- -- -- -- -- -- -- --  |..D.aJ----------| Hello.pdf:    62:  1:   2998:	 00000bb0  -- -- -- -- -- -- 3e a8  c0 91 41 68 62 a1 69 10  |------>...Ahb.iP| 00000bc0  0e 2b 1c 7a 3f 5e 1e 52  78 3f 1e 07 15 de 53 38  |N+\z?^^Rx?^GU.S8| 00000bd0  50 e5 94 07 32 f1 d7 54  ec 57 78 b7 16 8d ab 7c  |P..G2..T.Wx.V..||-00000be0  b2 51 e1 2f -- -- -- --  -- -- -- -- -- -- -- --  |.Q./------------|+00000be0  b2 51 e1 2f 0a -- -- --  -- -- -- -- -- -- -- --  |.Q./J-----------| Hello.pdf:    63:  1:   3045:	-00000be0  -- -- -- -- -- ef 54 60  9f c2 db -- -- -- -- --  |-----.T`...-----|+00000be0  -- -- -- -- -- ef 54 60  9f c2 db 0a -- -- -- --  |-----.T`...J----| Hello.pdf:    64:  1:   3052:	 00000be0  -- -- -- -- -- -- -- --  -- -- -- -- 7f 56 d8 bb  |------------~V..| 00000bf0  29 51 be a5 b0 47 e1 4d  85 3f 29 34 b0 bd 06 17  |)Q...G.M.?)4..FW|@@ -248,12 +249,12 @@ 00000c10  95 fa ae 3a 9f dc 35 0d  bb 02 7a 9d 0f 3b 15 5e  |...:..5M.Bz.O;U^| 00000c20  af 45 a4 66 a8 7c 4d e1  55 1e 5e 6d c5 2b 6c 6b  |.E.f.|M.U^^m.+lk| 00000c30  87 c2 1f 0b b1 bd 10 2f  db 10 4e c2 1f 14 5e 52  |.._K..P/.PN._T^R|-00000c40  81 ab f8 bd c2 8b -- --  -- -- -- -- -- -- -- --  |......----------|+00000c40  81 ab f8 bd c2 8b 0a --  -- -- -- -- -- -- -- --  |......J---------| Hello.pdf:    65:  1:   3143:	 00000c40  -- -- -- -- -- -- -- bf  4b c2 36 85 17 9e b7 c9  |-------.K.6.W...| 00000c50  17 72 f1 bc 0d cf 6d 75  ca e7 ba 61 ab 13 cf 6e  |Wr..M.mu...a.S.n| 00000c60  f1 cb 67 2b b0 c5 8f df  2a 3c a3 f0 b4 c2 53 4f  |..g+....*<....SO|-00000c70  a6 cb a7 -- -- -- -- --  -- -- -- -- -- -- -- --  |...-------------|+00000c70  a6 cb a7 0a -- -- -- --  -- -- -- -- -- -- -- --  |...J------------| Hello.pdf:    66:  1:   3188:	 00000c70  -- -- -- -- f1 e4 13 0e  f9 64 3a 9e 70 e0 37 f1  |----..SN.d:.p.7.| 00000c80  d8 ac f0 38 3b 79 5c 61  53 22 36 6e e8 29 37 2a  |...8;y\aS"6n.)7*|@@ -262,20 +263,20 @@ 00000cb0  8f 2a fc 5a 61 2d cb 6b  eb b0 c6 87 1a 2e 46 cd  |.*.Za-.k....Z.F.| 00000cc0  50 3c c2 d9 3e e2 c2 ea  04 54 33 50 5d 88 55 5c  |P<..>...DT3P].U\| 00000cd0  b4 55 3e 54 39 b1 52 e1  61 85 87 14 1e 5c e1 94  |.U>T9.R.a..T^\..|-00000ce0  0f 2a ac 70 e2 57 -- --  -- -- -- -- -- -- -- --  |O*.p.W----------|+00000ce0  0f 2a ac 70 e2 57 0a --  -- -- -- -- -- -- -- --  |O*.p.WJ---------| Hello.pdf:    67:  1:   3303:	 00000ce0  -- -- -- -- -- -- -- cb  15 1e 70 0e 93 0f 4c c2  |-------.U^pN.OL.|-00000cf0  2f 15 2a ef c5 b2 a5 15  72 99 c2 d2 -- -- -- --  |/U*....Ur...----|+00000cf0  2f 15 2a ef c5 b2 a5 15  72 99 c2 d2 0a -- -- --  |/U*....Ur...J---| Hello.pdf:    68:  1:   3325:	 00000cf0  -- -- -- -- -- -- -- --  -- -- -- -- -- 54 74 c4  |-------------Tt.|-00000d00  fd -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |.---------------|+00000d00  fd 0a -- -- -- -- -- --  -- -- -- -- -- -- -- --  |.J--------------| Hello.pdf:    69:  1:   3330:	-00000d00  -- -- e5 36 fc 42 61 89  c2 3d -- -- -- -- -- --  |--.6.Ba..=------|+00000d00  -- -- e5 36 fc 42 61 89  c2 3d 0a -- -- -- -- --  |--.6.Ba..=J-----| Hello.pdf:    70:  1:   3339:	 00000d00  -- -- -- -- -- -- -- --  -- -- -- 8b cb ac 72 b1  |-----------...r.| 00000d10  1d 8b 23 82 02 47 f5 32  2b ca 1a f4 45 49 58 14  |].#.BG.2+.Z.EIXT| 00000d20  d0 17 2a dc ad b0 40 a1  74 fe 24 59 5a 8b f9 25  |.W*...@.t.$YZ..%|-00000d30  dd e4 fc 49 28 e9 86 79  -- -- -- -- -- -- -- --  |...I(..y--------|+00000d30  dd e4 fc 49 28 e9 86 79  0a -- -- -- -- -- -- --  |...I(..yJ-------| Hello.pdf:    71:  1:   3385:	 00000d30  -- -- -- -- -- -- -- --  -- 77 e5 e2 4e 85 b9 b9  |---------w..N...| 00000d40  28 6e c5 9c 3a cc 56 28  52 28 54 98 35 b3 a3 9c  |(n..:.V(R(T.5...|@@ -289,7 +290,7 @@ 00000dc0  cc 29 87 27 61 78 44 0b  04 e2 f4 61 43 ed 72 98  |.).'axDKD..aC.r.| 00000dd0  13 c3 22 1a b1 34 34 60  93 43 ed 18 1a 11 0d 2c  |S."Z.44`.C.XZQM,| 00000de0  05 86 58 65 c0 86 40 44  54 b2 34 c4 1a 27 87 58  |E.Xe..@DT.4.Z'.X|-00000df0  31 24 22 02 81 42 fd 67  -- -- -- -- -- -- -- --  |1$"B.B.g--------|+00000df0  31 24 22 02 81 42 fd 67  0a -- -- -- -- -- -- --  |1$"B.B.gJ-------| Hello.pdf:    72:  1:   3577:	 00000df0  -- -- -- -- -- -- -- --  -- 83 39 84 c1 ad b8 41  |---------.9....A| 00000e00  e1 fa 6e 18 a4 30 90 0b  3c b0 10 03 7a b7 97 03  |..nX.0.K<.PCz..C|@@ -298,9 +299,9 @@ 00000e30  a3 57 7b e4 30 97 93 86  9e 71 a9 b2 67 1d fc d9  |.W{.0....q..g]..| 00000e40  c9 d2 ef 82 3f a2 19 6e  b3 1d 4e 99 9d 8c 6c 23  |....?.Yn.]N...l#| 00000e50  dc 5a 3d ab 87 4f 66 29  f4 60 cd 1e 3e 74 d7 06  |.Z=..Of).`.^>t.F|-00000e60  c9 ee -- -- -- -- -- --  -- -- -- -- -- -- -- --  |..--------------|+00000e60  c9 ee 0a -- -- -- -- --  -- -- -- -- -- -- -- --  |..J-------------| Hello.pdf:    73:  1:   3683:	-00000e60  -- -- -- dd 14 ba 2a 74  b1 c3 97 3a 4c fa -- --  |---.T.*t...:L.--|+00000e60  -- -- -- dd 14 ba 2a 74  b1 c3 97 3a 4c fa 0a --  |---.T.*t...:L.J-| Hello.pdf:    74:  1:   3695:	 00000e60  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- 70  |---------------p| 00000e70  9d 1d 5e 85 ce 76 bb ec  ac e0 71 fb a5 a7 02 6e  |.]^..v....q...Bn|@@ -310,13 +311,13 @@ 00000eb0  bd 64 17 92 78 7d 92 82  93 33 77 0e 83 83 3d 38  |.dW.x}...3wN..=8| 00000ec0  9c 70 44 6b 67 b7 59 a5  dd 0e 7b b4 76 b6 c4 78  |.pDkg.Y..N{.v..x| 00000ed0  69 b3 c2 16 ad 5d 22 d7  2e 31 1e 89 5c bb 1d ba  |i..V.]"..1^.\.].|-00000ee0  35 0e 56 e3 d9 ea af 27  28 c4 73 26 f1 -- -- --  |5NV....'(.s&.---|+00000ee0  35 0e 56 e3 d9 ea af 27  28 c4 73 26 f1 0a -- --  |5NV....'(.s&.J--| Hello.pdf:    75:  1:   3822:	 00000ee0  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 71 a9  |--------------q.|-00000ef0  88 75 20 46 c1 c2 a6 2d  -- -- -- -- -- -- -- --  |.u F...---------|+00000ef0  88 75 20 46 c1 c2 a6 2d  0a -- -- -- -- -- -- --  |.u F...-J-------| Hello.pdf:    76:  1:   3833:	 00000ef0  -- -- -- -- -- -- -- --  -- d2 05 70 72 68 85 c6  |---------.Eprh..|-00000f00  80 36 08 82 03 10 7e 90  03 22 22 -- -- -- -- --  |.6H.CP~.C""-----|+00000f00  80 36 08 82 03 10 7e 90  03 22 22 0a -- -- -- --  |.6H.CP~.C""J----| Hello.pdf:    77:  1:   3852:	 00000f00  -- -- -- -- -- -- -- --  -- -- -- -- 57 ac 16 59  |------------W.VY| 00000f10  ff 3f 8d fe c7 53 e1 4f  67 84 1a cd be 4d ac e5  |.?...S.Og.Z..M..|@@ -361,7 +362,7 @@ 00001180  31 ee 30 ba 8c 0f 4e 08  86 2b f3 33 c2 81 fc 50  |1.0..ONH.+.3...P| 00001190  86 c7 e3 2e 08 37 8c 0f  86 1b f2 33 3c a1 10 6b  |....H7.O.[.3<.Pk| 000011a0  d9 7e 88 94 23 ae 98 9b  d6 16 b3 9d 63 b6 f5 e0  |.~..#....V..c...|-000011b0  79 47 d4 -- -- -- -- --  -- -- -- -- -- -- -- --  |yG.-------------|+000011b0  79 47 d4 0a -- -- -- --  -- -- -- -- -- -- -- --  |yG.J------------| Hello.pdf:    78:  1:   4532:	 000011b0  -- -- -- -- 97 28 90 11  a6 50 55 95 61 73 52 d0  |----.(.Q.PU.asR.| 000011c0  eb 09 57 56 55 65 54 71  1e 6d 72 84 1a 7e 02 08  |.IWVUeTq^mr.Z~BH|@@ -403,6 +404,7 @@ 00001400  3f 6e 92 c5 2c 7e 7e 6f  a6 89 cc 09 3e 3a 46 75  |?n..,~~o...I>:Fu| 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.|+00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:    79:  1:   5169:	endstream Hello.pdf:    80:  1:   5179:	endobj Hello.pdf:    81:  1:   5186:	14 0 obj@@ -462,4 +464,4 @@ Hello.sh:     1:  1:      0:	#!/bin/sh Hello.sh:     2:  1:     10:	echo "Hello World!" Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-W-ounkbT.out

@@ -1,20 +1,20 @@ Hello.bat:     1:  1:      0:	#!/bin/sh Hello.bat:     2:  1:     10:	echo "Hello World!" Hello.class:     1:  1:      0:	-00000000  ca fe ba be 00 00 00 34  00 1d -- -- -- -- -- --  |....@@@4@]------|+00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:     2:  1:     11:	 00000000  -- -- -- -- -- -- -- --  -- -- -- 00 06 00 0f 09  |-----------@F@OI|-00000010  00 10 00 11 08 00 12 --  -- -- -- -- -- -- -- --  |@P@QH@R---------|+00000010  00 10 00 11 08 00 12 0a  -- -- -- -- -- -- -- --  |@P@QH@RJ--------| Hello.class:     3:  1:     24:	 00000010  -- -- -- -- -- -- -- --  00 13 00 14 07 00 15 07  |--------@S@TG@UG| 00000020  00 16 01 00 06 3c 69 6e  69 74 3e 01 00 03 28 29  |@VA@F<init>A@C()| 00000030  56 01 00 04 43 6f 64 65  01 00 0f 4c 69 6e 65 4e  |VA@DCodeA@OLineN| 00000040  75 6d 62 65 72 54 61 62  6c 65 01 00 04 6d 61 69  |umberTableA@Dmai| 00000050  6e 01 00 16 28 5b 4c 6a  61 76 61 2f 6c 61 6e 67  |nA@V([Ljava/lang|-00000060  2f 53 74 72 69 6e 67 3b  29 56 01 00 -- -- -- --  |/String;)VA@----|+00000060  2f 53 74 72 69 6e 67 3b  29 56 01 00 0a -- -- --  |/String;)VA@J---| Hello.class:     4:  1:    109:	 00000060  -- -- -- -- -- -- -- --  -- -- -- -- -- 53 6f 75  |-------------Sou|-00000070  72 63 65 46 69 6c 65 01  00 -- -- -- -- -- -- --  |rceFileA@-------|+00000070  72 63 65 46 69 6c 65 01  00 0a -- -- -- -- -- --  |rceFileA@J------| Hello.class:     5:  1:    122:	 00000070  -- -- -- -- -- -- -- --  -- -- 48 65 6c 6c 6f 2e  |----------Hello.| 00000080  6a 61 76 61 0c 00 07 00  08 07 00 17 0c 00 18 00  |javaL@G@HG@WL@X@|@@ -30,19 +30,19 @@ 00000120  6e 67 2f 53 74 72 69 6e  67 3b 29 56 00 21 00 05  |ng/String;)V@!@E| 00000130  00 06 00 00 00 00 00 02  00 01 00 07 00 08 00 01  |@F@@@@@B@A@G@H@A| 00000140  00 09 00 00 00 1d 00 01  00 01 00 00 00 05 2a b7  |@I@@@]@A@A@@@E*.|-00000150  00 01 b1 00 00 00 01 00  -- -- -- -- -- -- -- --  |@A.@@@A@--------|+00000150  00 01 b1 00 00 00 01 00  0a -- -- -- -- -- -- --  |@A.@@@A@J-------| Hello.class:     6:  1:    345:	 00000150  -- -- -- -- -- -- -- --  -- 00 00 00 06 00 01 00  |---------@@@F@A@| 00000160  00 00 03 00 09 00 0b 00  0c 00 01 00 09 00 00 00  |@@C@I@K@L@A@I@@@| 00000170  25 00 02 00 01 00 00 00  09 b2 00 02 12 03 b6 00  |%@B@A@@@I.@BRC.@|-00000180  04 b1 00 00 00 01 00 --  -- -- -- -- -- -- -- --  |D.@@@A@---------|+00000180  04 b1 00 00 00 01 00 0a  -- -- -- -- -- -- -- --  |D.@@@A@J--------| Hello.class:     7:  1:    392:	-00000180  -- -- -- -- -- -- -- --  00 00 00 -- -- -- -- --  |--------@@@-----|+00000180  -- -- -- -- -- -- -- --  00 00 00 0a -- -- -- --  |--------@@@J----| Hello.class:     8:  1:    396:	 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N| Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	+Hello.java:     2:  1:     20:	 Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  1:     74:	{ public static void main(String[] arg) Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");@@ -51,24 +51,24 @@ Hello.pdf:     1:  1:      0:	%PDF-1.3 Hello.pdf:     2:  1:      9:	 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......|-00000010  f3 a0 d0 c4 c6 -- -- --  -- -- -- -- -- -- -- --  |.....-----------|+00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------| Hello.pdf:     3:  1:     22:	4 0 obj Hello.pdf:     4:  1:     30:	<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:     5:  1:     71:	stream Hello.pdf:     6:  1:     78:	 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA|-00000050  45 8e bb -- -- -- -- --  -- -- -- -- -- -- -- --  |E..-------------|+00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------| Hello.pdf:     7:  1:     84:	 00000050  -- -- -- -- 02 31 14 44  7b bf e2 94 5a 98 bd 89  |----B1TD{...Z...| 00000060  79 98 56 11 6c 17 2e f8  01 61 2d 64 d7 65 cd ff  |y.VQlW..Aa-d.e..| 00000070  83 17 2c ac 86 99 39 0c  b3 31 b2 51 02 b9 46 97  |.W,...9L.1.QB.F.|-00000080  e2 a9 12 f3 99 90 5c 4c  59 -- -- -- -- -- -- --  |..R...\LY-------|+00000080  e2 a9 12 f3 99 90 5c 4c  59 0a -- -- -- -- -- --  |..R...\LYJ------| Hello.pdf:     8:  1:    138:	 00000080  -- -- -- -- -- -- -- --  -- -- 9f 89 07 6f 86 6b  |----------..Go.k| 00000090  f7 b4 8e d0 9b e1 e2 6a  a9 52 6a b2 40 38 fe ad  |.......j.Rj.@8..| 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W|-000000c0  37 b5 37 e3 17 4e ff 20  a5 -- -- -- -- -- -- --  |7.7.WN. .-------|+000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf:     9:  1:    202:	endstream Hello.pdf:    10:  1:    212:	endobj Hello.pdf:    11:  1:    219:	5 0 obj@@ -91,7 +91,7 @@ 00000220  b4 83 3f 6d 09 e9 32 89  56 13 8b b5 db 4d ba 49  |..?mI.2.VS...M.I| 00000230  13 b7 eb 66 53 9b 2a ca  74 76 36 3b cd 64 66 9c  |S..fS.*.tv6;.df.| 00000240  99 dd 26 a1 4f a5 e0 9b  16 04 e9 ab a0 3e c6 82  |..&.O...VD...>..|-00000250  08 b6 2a 36 2f f6 a5 a5  c5 92 4a 35 0f -- -- --  |H.*6/.....J5O---|+00000250  08 b6 2a 36 2f f6 a5 a5  c5 92 4a 35 0f 0a -- --  |H.*6/.....J5OJ--| Hello.pdf:    26:  1:    606:	 00000250  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 11 5a  |--------------QZ| 00000260  8c 20 28 7d 52 f0 3b 33  db 64 76 41 32 c3 9d f9  |. (}R.;3.dvA2...|@@ -119,7 +119,7 @@ 000003c0  3f 72 e8 d9 d1 de 7a 11  78 c9 6f 94 39 f6 3d c0  |?r....zQx.o.9.=.| 000003d0  6b ba 3f 52 00 86 cd cc  63 55 7d 98 79 7e 01 78  |k.?R@...cU}.y~Ax| 000003e0  80 4e a4 74 32 c9 a5 d3  f8 1a e4 d0 bf 88 37 20  |.N.t2....Z....7 |-000003f0  8b 9a 11 f2 c8 c7 58 0d  7d 9b -- -- -- -- -- --  |..Q...XM}.------|+000003f0  8b 9a 11 f2 c8 c7 58 0d  7d 9b 0a -- -- -- -- --  |..Q...XM}.J-----| Hello.pdf:    27:  1:   1019:	 000003f0  -- -- -- -- -- -- -- --  -- -- -- d0 70 d0 7c f4  |-----------.p.|.| 00000400  0c 68 15 80 74 5a 00 2a  25 b4 4c f4 58 27 9e a3  |LhU.tZ@*%.L.X'..|@@ -134,7 +134,7 @@ 00000490  de 3f ef bf 63 19 b7 3e  f8 b3 8d bd 00 fa 31 27  |.?..cY.>....@.1'| 000004a0  bf c1 a2 0b 6b 26 25 e6  5e 3f f7 4d 4f c2 43 75  |...Kk&%.^?.MO.Cu| 000004b0  45 7c f5 d6 9d ee eb e7  e8 78 32 4b 51 de aa 9d  |E|.......x2KQ...|-000004c0  59 92 d7 e4 fb f2 -- --  -- -- -- -- -- -- -- --  |Y.....----------|+000004c0  59 92 d7 e4 fb f2 0a --  -- -- -- -- -- -- -- --  |Y.....J---------| Hello.pdf:    28:  1:   1223:	 000004c0  -- -- -- -- -- -- -- be  f7 e4 d5 a4 0d f9 67 79  |-------.....M.gy| 000004d0  15 ef bd b6 5c 3d ca 0b  ff 93 b9 cd 21 46 3b 92  |U...\=.K....!F;.|@@ -146,6 +146,7 @@ 00000530  57 a4 ab d2 0d 52 a5 6b  d2 b2 f4 9d f4 bd f4 b9  |W...MR.k........| 00000540  f4 35 7a 5f 40 ba 2c 5d  e9 d8 49 71 ec 1b bb 07  |.5z_@.,]..Iq.[.G| 00000550  7e c6 7b d6 68 ed 30 66  86 b3 14 10 f3 c2 da cc  |~.{.h.0f..TP....|+00000560  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:    29:  1:   1377:	 00000560  -- 4b 1f f1 77 06 63 9b  f9 33 a1 d5 5e 03 9d bb  |-K_.wFc..3..^C..| 00000570  7f 63 2d e5 88 b2 53 79  46 19 56 76 2b cf 29 13  |~c-...SyFYVv+.)S|@@ -161,11 +162,11 @@ 00000610  33 cb 31 ff 9b 35 c4 67  18 ef 1d e6 a8 09 6c a3  |3.1..5.gX.]..Il.| 00000620  87 5b 2b 34 e7 71 df 11  e5 5d 6f c1 b7 66 ea a1  |.[+4.q.Q.]o..f..| 00000630  3a a0 69 2f a9 39 5c af  a6 3a e6 18 d9 3e 55 b7  |:.i/.9\..:.X.>U.|-00000640  6d 35 1a -- -- -- -- --  -- -- -- -- -- -- -- --  |m5Z-------------|+00000640  6d 35 1a 0a -- -- -- --  -- -- -- -- -- -- -- --  |m5ZJ------------| Hello.pdf:    30:  1:   1604:	 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T|-00000660  ea 26 d1 7f b7 8f 93 34  -- -- -- -- -- -- -- --  |.&.~...4--------|+00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf:    31:  1:   1641:	endstream Hello.pdf:    32:  1:   1651:	endobj Hello.pdf:    33:  1:   1658:	10 0 obj@@ -200,7 +201,7 @@ 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...| 000009a0  52 16 48 78 88 20 2f eb  2e 88 f2 48 20 28 21 08  |RVHx. /....H (!H| 000009b0  41 b4 31 90 4a 51 09 c1  40 85 08 48 7d 15 51 a9  |A.1.JQI.@.HH}UQ.|-000009c0  b5 2b 45 5d 09 c4 54 a4  62 23 45 84 a0 02 -- --  |.+E]I.T.b#E..B--|+000009c0  b5 2b 45 5d 09 c4 54 a4  62 23 45 84 a0 02 0a --  |.+E]I.T.b#E..BJ-| Hello.pdf:    61:  1:   2511:	 000009c0  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- f8  |---------------.| 000009d0  a2 68 8a 14 21 d8 00 43  cf bd 1b fd 3e ed d7 ef  |.h.T!.@C..[.>...|@@ -233,14 +234,14 @@ 00000b80  5a e1 cb 0c 7c a1 f0 f9  5d f8 4c e1 d3 3a 9c 3a  |Z..L|...].L..:.:| 00000b90  99 2e 4f b5 e2 64 3a 4e  d4 e2 13 85 8f 15 8e 1f  |..O..d:N..S..U._| 00000ba0  4b 91 c7 15 8e a5 e0 68  2d 3e fa 30 45 7e a4 f0  |K..U...h->.0E~..|-00000bb0  e1 ea 04 f9 61 -- -- --  -- -- -- -- -- -- -- --  |..D.a-----------|+00000bb0  e1 ea 04 f9 61 0a -- --  -- -- -- -- -- -- -- --  |..D.aJ----------| Hello.pdf:    62:  1:   2998:	 00000bb0  -- -- -- -- -- -- 3e a8  c0 91 41 68 62 a1 69 10  |------>...Ahb.iP| 00000bc0  0e 2b 1c 7a 3f 5e 1e 52  78 3f 1e 07 15 de 53 38  |N+\z?^^Rx?^GU.S8| 00000bd0  50 e5 94 07 32 f1 d7 54  ec 57 78 b7 16 8d ab 7c  |P..G2..T.Wx.V..||-00000be0  b2 51 e1 2f -- -- -- --  -- -- -- -- -- -- -- --  |.Q./------------|+00000be0  b2 51 e1 2f 0a -- -- --  -- -- -- -- -- -- -- --  |.Q./J-----------| Hello.pdf:    63:  1:   3045:	-00000be0  -- -- -- -- -- ef 54 60  9f c2 db -- -- -- -- --  |-----.T`...-----|+00000be0  -- -- -- -- -- ef 54 60  9f c2 db 0a -- -- -- --  |-----.T`...J----| Hello.pdf:    64:  1:   3052:	 00000be0  -- -- -- -- -- -- -- --  -- -- -- -- 7f 56 d8 bb  |------------~V..| 00000bf0  29 51 be a5 b0 47 e1 4d  85 3f 29 34 b0 bd 06 17  |)Q...G.M.?)4..FW|@@ -248,12 +249,12 @@ 00000c10  95 fa ae 3a 9f dc 35 0d  bb 02 7a 9d 0f 3b 15 5e  |...:..5M.Bz.O;U^| 00000c20  af 45 a4 66 a8 7c 4d e1  55 1e 5e 6d c5 2b 6c 6b  |.E.f.|M.U^^m.+lk| 00000c30  87 c2 1f 0b b1 bd 10 2f  db 10 4e c2 1f 14 5e 52  |.._K..P/.PN._T^R|-00000c40  81 ab f8 bd c2 8b -- --  -- -- -- -- -- -- -- --  |......----------|+00000c40  81 ab f8 bd c2 8b 0a --  -- -- -- -- -- -- -- --  |......J---------| Hello.pdf:    65:  1:   3143:	 00000c40  -- -- -- -- -- -- -- bf  4b c2 36 85 17 9e b7 c9  |-------.K.6.W...| 00000c50  17 72 f1 bc 0d cf 6d 75  ca e7 ba 61 ab 13 cf 6e  |Wr..M.mu...a.S.n| 00000c60  f1 cb 67 2b b0 c5 8f df  2a 3c a3 f0 b4 c2 53 4f  |..g+....*<....SO|-00000c70  a6 cb a7 -- -- -- -- --  -- -- -- -- -- -- -- --  |...-------------|+00000c70  a6 cb a7 0a -- -- -- --  -- -- -- -- -- -- -- --  |...J------------| Hello.pdf:    66:  1:   3188:	 00000c70  -- -- -- -- f1 e4 13 0e  f9 64 3a 9e 70 e0 37 f1  |----..SN.d:.p.7.| 00000c80  d8 ac f0 38 3b 79 5c 61  53 22 36 6e e8 29 37 2a  |...8;y\aS"6n.)7*|@@ -262,20 +263,20 @@ 00000cb0  8f 2a fc 5a 61 2d cb 6b  eb b0 c6 87 1a 2e 46 cd  |.*.Za-.k....Z.F.| 00000cc0  50 3c c2 d9 3e e2 c2 ea  04 54 33 50 5d 88 55 5c  |P<..>...DT3P].U\| 00000cd0  b4 55 3e 54 39 b1 52 e1  61 85 87 14 1e 5c e1 94  |.U>T9.R.a..T^\..|-00000ce0  0f 2a ac 70 e2 57 -- --  -- -- -- -- -- -- -- --  |O*.p.W----------|+00000ce0  0f 2a ac 70 e2 57 0a --  -- -- -- -- -- -- -- --  |O*.p.WJ---------| Hello.pdf:    67:  1:   3303:	 00000ce0  -- -- -- -- -- -- -- cb  15 1e 70 0e 93 0f 4c c2  |-------.U^pN.OL.|-00000cf0  2f 15 2a ef c5 b2 a5 15  72 99 c2 d2 -- -- -- --  |/U*....Ur...----|+00000cf0  2f 15 2a ef c5 b2 a5 15  72 99 c2 d2 0a -- -- --  |/U*....Ur...J---| Hello.pdf:    68:  1:   3325:	 00000cf0  -- -- -- -- -- -- -- --  -- -- -- -- -- 54 74 c4  |-------------Tt.|-00000d00  fd -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |.---------------|+00000d00  fd 0a -- -- -- -- -- --  -- -- -- -- -- -- -- --  |.J--------------| Hello.pdf:    69:  1:   3330:	-00000d00  -- -- e5 36 fc 42 61 89  c2 3d -- -- -- -- -- --  |--.6.Ba..=------|+00000d00  -- -- e5 36 fc 42 61 89  c2 3d 0a -- -- -- -- --  |--.6.Ba..=J-----| Hello.pdf:    70:  1:   3339:	 00000d00  -- -- -- -- -- -- -- --  -- -- -- 8b cb ac 72 b1  |-----------...r.| 00000d10  1d 8b 23 82 02 47 f5 32  2b ca 1a f4 45 49 58 14  |].#.BG.2+.Z.EIXT| 00000d20  d0 17 2a dc ad b0 40 a1  74 fe 24 59 5a 8b f9 25  |.W*...@.t.$YZ..%|-00000d30  dd e4 fc 49 28 e9 86 79  -- -- -- -- -- -- -- --  |...I(..y--------|+00000d30  dd e4 fc 49 28 e9 86 79  0a -- -- -- -- -- -- --  |...I(..yJ-------| Hello.pdf:    71:  1:   3385:	 00000d30  -- -- -- -- -- -- -- --  -- 77 e5 e2 4e 85 b9 b9  |---------w..N...| 00000d40  28 6e c5 9c 3a cc 56 28  52 28 54 98 35 b3 a3 9c  |(n..:.V(R(T.5...|@@ -289,7 +290,7 @@ 00000dc0  cc 29 87 27 61 78 44 0b  04 e2 f4 61 43 ed 72 98  |.).'axDKD..aC.r.| 00000dd0  13 c3 22 1a b1 34 34 60  93 43 ed 18 1a 11 0d 2c  |S."Z.44`.C.XZQM,| 00000de0  05 86 58 65 c0 86 40 44  54 b2 34 c4 1a 27 87 58  |E.Xe..@DT.4.Z'.X|-00000df0  31 24 22 02 81 42 fd 67  -- -- -- -- -- -- -- --  |1$"B.B.g--------|+00000df0  31 24 22 02 81 42 fd 67  0a -- -- -- -- -- -- --  |1$"B.B.gJ-------| Hello.pdf:    72:  1:   3577:	 00000df0  -- -- -- -- -- -- -- --  -- 83 39 84 c1 ad b8 41  |---------.9....A| 00000e00  e1 fa 6e 18 a4 30 90 0b  3c b0 10 03 7a b7 97 03  |..nX.0.K<.PCz..C|@@ -298,9 +299,9 @@ 00000e30  a3 57 7b e4 30 97 93 86  9e 71 a9 b2 67 1d fc d9  |.W{.0....q..g]..| 00000e40  c9 d2 ef 82 3f a2 19 6e  b3 1d 4e 99 9d 8c 6c 23  |....?.Yn.]N...l#| 00000e50  dc 5a 3d ab 87 4f 66 29  f4 60 cd 1e 3e 74 d7 06  |.Z=..Of).`.^>t.F|-00000e60  c9 ee -- -- -- -- -- --  -- -- -- -- -- -- -- --  |..--------------|+00000e60  c9 ee 0a -- -- -- -- --  -- -- -- -- -- -- -- --  |..J-------------| Hello.pdf:    73:  1:   3683:	-00000e60  -- -- -- dd 14 ba 2a 74  b1 c3 97 3a 4c fa -- --  |---.T.*t...:L.--|+00000e60  -- -- -- dd 14 ba 2a 74  b1 c3 97 3a 4c fa 0a --  |---.T.*t...:L.J-| Hello.pdf:    74:  1:   3695:	 00000e60  -- -- -- -- -- -- -- --  -- -- -- -- -- -- -- 70  |---------------p| 00000e70  9d 1d 5e 85 ce 76 bb ec  ac e0 71 fb a5 a7 02 6e  |.]^..v....q...Bn|@@ -310,13 +311,13 @@ 00000eb0  bd 64 17 92 78 7d 92 82  93 33 77 0e 83 83 3d 38  |.dW.x}...3wN..=8| 00000ec0  9c 70 44 6b 67 b7 59 a5  dd 0e 7b b4 76 b6 c4 78  |.pDkg.Y..N{.v..x| 00000ed0  69 b3 c2 16 ad 5d 22 d7  2e 31 1e 89 5c bb 1d ba  |i..V.]"..1^.\.].|-00000ee0  35 0e 56 e3 d9 ea af 27  28 c4 73 26 f1 -- -- --  |5NV....'(.s&.---|+00000ee0  35 0e 56 e3 d9 ea af 27  28 c4 73 26 f1 0a -- --  |5NV....'(.s&.J--| Hello.pdf:    75:  1:   3822:	 00000ee0  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 71 a9  |--------------q.|-00000ef0  88 75 20 46 c1 c2 a6 2d  -- -- -- -- -- -- -- --  |.u F...---------|+00000ef0  88 75 20 46 c1 c2 a6 2d  0a -- -- -- -- -- -- --  |.u F...-J-------| Hello.pdf:    76:  1:   3833:	 00000ef0  -- -- -- -- -- -- -- --  -- d2 05 70 72 68 85 c6  |---------.Eprh..|-00000f00  80 36 08 82 03 10 7e 90  03 22 22 -- -- -- -- --  |.6H.CP~.C""-----|+00000f00  80 36 08 82 03 10 7e 90  03 22 22 0a -- -- -- --  |.6H.CP~.C""J----| Hello.pdf:    77:  1:   3852:	 00000f00  -- -- -- -- -- -- -- --  -- -- -- -- 57 ac 16 59  |------------W.VY| 00000f10  ff 3f 8d fe c7 53 e1 4f  67 84 1a cd be 4d ac e5  |.?...S.Og.Z..M..|@@ -361,7 +362,7 @@ 00001180  31 ee 30 ba 8c 0f 4e 08  86 2b f3 33 c2 81 fc 50  |1.0..ONH.+.3...P| 00001190  86 c7 e3 2e 08 37 8c 0f  86 1b f2 33 3c a1 10 6b  |....H7.O.[.3<.Pk| 000011a0  d9 7e 88 94 23 ae 98 9b  d6 16 b3 9d 63 b6 f5 e0  |.~..#....V..c...|-000011b0  79 47 d4 -- -- -- -- --  -- -- -- -- -- -- -- --  |yG.-------------|+000011b0  79 47 d4 0a -- -- -- --  -- -- -- -- -- -- -- --  |yG.J------------| Hello.pdf:    78:  1:   4532:	 000011b0  -- -- -- -- 97 28 90 11  a6 50 55 95 61 73 52 d0  |----.(.Q.PU.asR.| 000011c0  eb 09 57 56 55 65 54 71  1e 6d 72 84 1a 7e 02 08  |.IWVUeTq^mr.Z~BH|@@ -403,6 +404,7 @@ 00001400  3f 6e 92 c5 2c 7e 7e 6f  a6 89 cc 09 3e 3a 46 75  |?n..,~~o...I>:Fu| 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.|+00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:    79:  1:   5169:	endstream Hello.pdf:    80:  1:   5179:	endobj Hello.pdf:    81:  1:   5186:	14 0 obj@@ -462,4 +464,4 @@ Hello.sh:     1:  1:      0:	#!/bin/sh Hello.sh:     2:  1:     10:	echo "Hello World!" Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-W-unkbT.out

@@ -1,5 +1,5 @@-Hello.bat:     1:  1:      0:	#!/bin/sh-Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.bat:     1:  1:      0:	#!/bin/sh+Hello.bat:     2:  1:     10:	echo "Hello World!" Hello.class:     1:  1:      0:	 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:     2:  1:     11:	@@ -41,20 +41,20 @@ Hello.class:     8:  1:    396:	 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting-Hello.java:     4:  1:     74:	{ public static void main(String[] arg)-Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");-Hello.java:     6:  1:    154:	  }-Hello.java:     7:  1:    158:	}-Hello.pdf:     1:  1:      0:	%PDF-1.3+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     2:  1:     20:	+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     4:  1:     74:	{ public static void main(String[] arg)+Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");+Hello.java:     6:  1:    154:	  }+Hello.java:     7:  1:    158:	}+Hello.pdf:     1:  1:      0:	%PDF-1.3 Hello.pdf:     2:  1:      9:	 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:     3:  1:     22:	4 0 obj-Hello.pdf:     4:  1:     30:	<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf:     5:  1:     71:	stream+Hello.pdf:     3:  1:     22:	4 0 obj+Hello.pdf:     4:  1:     30:	<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf:     5:  1:     71:	stream Hello.pdf:     6:  1:     78:	 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf:     9:  1:    202:	endstream-Hello.pdf:    10:  1:    212:	endobj-Hello.pdf:    11:  1:    219:	5 0 obj-Hello.pdf:    12:  1:    227:	123-Hello.pdf:    13:  1:    231:	endobj-Hello.pdf:    14:  1:    238:	2 0 obj-Hello.pdf:    15:  1:    246:	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:    16:  1:    332:	>>-Hello.pdf:    17:  1:    335:	endobj-Hello.pdf:    18:  1:    342:	6 0 obj-Hello.pdf:    19:  1:    350:	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:    20:  1:    426:	>> >>-Hello.pdf:    21:  1:    432:	endobj-Hello.pdf:    22:  1:    439:	9 0 obj-Hello.pdf:    23:  1:    447:	<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf:    24:  1:    517:	stream+Hello.pdf:     9:  1:    202:	endstream+Hello.pdf:    10:  1:    212:	endobj+Hello.pdf:    11:  1:    219:	5 0 obj+Hello.pdf:    12:  1:    227:	123+Hello.pdf:    13:  1:    231:	endobj+Hello.pdf:    14:  1:    238:	2 0 obj+Hello.pdf:    15:  1:    246:	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf:    16:  1:    332:	>>+Hello.pdf:    17:  1:    335:	endobj+Hello.pdf:    18:  1:    342:	6 0 obj+Hello.pdf:    19:  1:    350:	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf:    20:  1:    426:	>> >>+Hello.pdf:    21:  1:    432:	endobj+Hello.pdf:    22:  1:    439:	9 0 obj+Hello.pdf:    23:  1:    447:	<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf:    24:  1:    517:	stream Hello.pdf:    25:  1:    524:	 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf:    31:  1:   1641:	endstream-Hello.pdf:    32:  1:   1651:	endobj-Hello.pdf:    33:  1:   1658:	10 0 obj-Hello.pdf:    34:  1:   1667:	1116-Hello.pdf:    35:  1:   1672:	endobj-Hello.pdf:    36:  1:   1679:	7 0 obj-Hello.pdf:    37:  1:   1687:	[ /ICCBased 9 0 R ]-Hello.pdf:    38:  1:   1707:	endobj-Hello.pdf:    39:  1:   1714:	3 0 obj-Hello.pdf:    40:  1:   1722:	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:    41:  1:   1790:	endobj-Hello.pdf:    42:  1:   1797:	11 0 obj-Hello.pdf:    43:  1:   1806:	<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:    44:  1:   1840:	endobj-Hello.pdf:    45:  1:   1847:	8 0 obj-Hello.pdf:    46:  1:   1855:	<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:    47:  1:   1937:	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:    48:  1:   2014:	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:    49:  1:   2090:	0 0 602 ] >>-Hello.pdf:    50:  1:   2103:	endobj-Hello.pdf:    51:  1:   2110:	12 0 obj-Hello.pdf:    52:  1:   2119:	<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf:    53:  1:   2196:	[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf:    54:  1:   2273:	/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:    55:  1:   2352:	>>-Hello.pdf:    56:  1:   2355:	endobj-Hello.pdf:    57:  1:   2362:	13 0 obj-Hello.pdf:    58:  1:   2371:	<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf:    59:  1:   2427:	stream+Hello.pdf:    31:  1:   1641:	endstream+Hello.pdf:    32:  1:   1651:	endobj+Hello.pdf:    33:  1:   1658:	10 0 obj+Hello.pdf:    34:  1:   1667:	1116+Hello.pdf:    35:  1:   1672:	endobj+Hello.pdf:    36:  1:   1679:	7 0 obj+Hello.pdf:    37:  1:   1687:	[ /ICCBased 9 0 R ]+Hello.pdf:    38:  1:   1707:	endobj+Hello.pdf:    39:  1:   1714:	3 0 obj+Hello.pdf:    40:  1:   1722:	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf:    41:  1:   1790:	endobj+Hello.pdf:    42:  1:   1797:	11 0 obj+Hello.pdf:    43:  1:   1806:	<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf:    44:  1:   1840:	endobj+Hello.pdf:    45:  1:   1847:	8 0 obj+Hello.pdf:    46:  1:   1855:	<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf:    47:  1:   1937:	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:    48:  1:   2014:	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:    49:  1:   2090:	0 0 602 ] >>+Hello.pdf:    50:  1:   2103:	endobj+Hello.pdf:    51:  1:   2110:	12 0 obj+Hello.pdf:    52:  1:   2119:	<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf:    53:  1:   2196:	[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf:    54:  1:   2273:	/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf:    55:  1:   2352:	>>+Hello.pdf:    56:  1:   2355:	endobj+Hello.pdf:    57:  1:   2362:	13 0 obj+Hello.pdf:    58:  1:   2371:	<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf:    59:  1:   2427:	stream Hello.pdf:    60:  1:   2434:	 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:    79:  1:   5169:	endstream-Hello.pdf:    80:  1:   5179:	endobj-Hello.pdf:    81:  1:   5186:	14 0 obj-Hello.pdf:    82:  1:   5195:	2734-Hello.pdf:    83:  1:   5200:	endobj-Hello.pdf:    84:  1:   5207:	15 0 obj-Hello.pdf:    85:  1:   5216:	(Hello)-Hello.pdf:    86:  1:   5224:	endobj-Hello.pdf:    87:  1:   5231:	16 0 obj-Hello.pdf:    88:  1:   5240:	(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:    89:  1:   5277:	endobj-Hello.pdf:    90:  1:   5284:	17 0 obj-Hello.pdf:    91:  1:   5293:	(TextEdit)-Hello.pdf:    92:  1:   5304:	endobj-Hello.pdf:    93:  1:   5311:	18 0 obj-Hello.pdf:    94:  1:   5320:	(D:20200124010711Z00'00')-Hello.pdf:    95:  1:   5346:	endobj-Hello.pdf:    96:  1:   5353:	19 0 obj-Hello.pdf:    97:  1:   5362:	()-Hello.pdf:    98:  1:   5365:	endobj-Hello.pdf:    99:  1:   5372:	20 0 obj-Hello.pdf:   100:  1:   5381:	[ ]-Hello.pdf:   101:  1:   5385:	endobj-Hello.pdf:   102:  1:   5392:	1 0 obj-Hello.pdf:   103:  1:   5400:	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:   104:  1:   5480:	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:   105:  1:   5529:	endobj-Hello.pdf:   106:  1:   5536:	xref-Hello.pdf:   107:  1:   5541:	0 21-Hello.pdf:   108:  1:   5546:	0000000000 65535 f -Hello.pdf:   109:  1:   5566:	0000005392 00000 n -Hello.pdf:   110:  1:   5586:	0000000238 00000 n -Hello.pdf:   111:  1:   5606:	0000001714 00000 n -Hello.pdf:   112:  1:   5626:	0000000022 00000 n -Hello.pdf:   113:  1:   5646:	0000000219 00000 n -Hello.pdf:   114:  1:   5666:	0000000342 00000 n -Hello.pdf:   115:  1:   5686:	0000001679 00000 n -Hello.pdf:   116:  1:   5706:	0000001847 00000 n -Hello.pdf:   117:  1:   5726:	0000000439 00000 n -Hello.pdf:   118:  1:   5746:	0000001658 00000 n -Hello.pdf:   119:  1:   5766:	0000001797 00000 n -Hello.pdf:   120:  1:   5786:	0000002110 00000 n -Hello.pdf:   121:  1:   5806:	0000002362 00000 n -Hello.pdf:   122:  1:   5826:	0000005186 00000 n -Hello.pdf:   123:  1:   5846:	0000005207 00000 n -Hello.pdf:   124:  1:   5866:	0000005231 00000 n -Hello.pdf:   125:  1:   5886:	0000005284 00000 n -Hello.pdf:   126:  1:   5906:	0000005311 00000 n -Hello.pdf:   127:  1:   5926:	0000005353 00000 n -Hello.pdf:   128:  1:   5946:	0000005372 00000 n -Hello.pdf:   129:  1:   5966:	trailer-Hello.pdf:   130:  1:   5974:	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf:   131:  1:   6052:	<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf:   132:  1:   6092:	startxref-Hello.pdf:   133:  1:   6102:	5536-Hello.pdf:   134:  1:   6107:	%%EOF-Hello.sh:     1:  1:      0:	#!/bin/sh-Hello.sh:     2:  1:     10:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+Hello.pdf:    79:  1:   5169:	endstream+Hello.pdf:    80:  1:   5179:	endobj+Hello.pdf:    81:  1:   5186:	14 0 obj+Hello.pdf:    82:  1:   5195:	2734+Hello.pdf:    83:  1:   5200:	endobj+Hello.pdf:    84:  1:   5207:	15 0 obj+Hello.pdf:    85:  1:   5216:	(Hello)+Hello.pdf:    86:  1:   5224:	endobj+Hello.pdf:    87:  1:   5231:	16 0 obj+Hello.pdf:    88:  1:   5240:	(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf:    89:  1:   5277:	endobj+Hello.pdf:    90:  1:   5284:	17 0 obj+Hello.pdf:    91:  1:   5293:	(TextEdit)+Hello.pdf:    92:  1:   5304:	endobj+Hello.pdf:    93:  1:   5311:	18 0 obj+Hello.pdf:    94:  1:   5320:	(D:20200124010711Z00'00')+Hello.pdf:    95:  1:   5346:	endobj+Hello.pdf:    96:  1:   5353:	19 0 obj+Hello.pdf:    97:  1:   5362:	()+Hello.pdf:    98:  1:   5365:	endobj+Hello.pdf:    99:  1:   5372:	20 0 obj+Hello.pdf:   100:  1:   5381:	[ ]+Hello.pdf:   101:  1:   5385:	endobj+Hello.pdf:   102:  1:   5392:	1 0 obj+Hello.pdf:   103:  1:   5400:	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf:   104:  1:   5480:	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:   105:  1:   5529:	endobj+Hello.pdf:   106:  1:   5536:	xref+Hello.pdf:   107:  1:   5541:	0 21+Hello.pdf:   108:  1:   5546:	0000000000 65535 f +Hello.pdf:   109:  1:   5566:	0000005392 00000 n +Hello.pdf:   110:  1:   5586:	0000000238 00000 n +Hello.pdf:   111:  1:   5606:	0000001714 00000 n +Hello.pdf:   112:  1:   5626:	0000000022 00000 n +Hello.pdf:   113:  1:   5646:	0000000219 00000 n +Hello.pdf:   114:  1:   5666:	0000000342 00000 n +Hello.pdf:   115:  1:   5686:	0000001679 00000 n +Hello.pdf:   116:  1:   5706:	0000001847 00000 n +Hello.pdf:   117:  1:   5726:	0000000439 00000 n +Hello.pdf:   118:  1:   5746:	0000001658 00000 n +Hello.pdf:   119:  1:   5766:	0000001797 00000 n +Hello.pdf:   120:  1:   5786:	0000002110 00000 n +Hello.pdf:   121:  1:   5806:	0000002362 00000 n +Hello.pdf:   122:  1:   5826:	0000005186 00000 n +Hello.pdf:   123:  1:   5846:	0000005207 00000 n +Hello.pdf:   124:  1:   5866:	0000005231 00000 n +Hello.pdf:   125:  1:   5886:	0000005284 00000 n +Hello.pdf:   126:  1:   5906:	0000005311 00000 n +Hello.pdf:   127:  1:   5926:	0000005353 00000 n +Hello.pdf:   128:  1:   5946:	0000005372 00000 n +Hello.pdf:   129:  1:   5966:	trailer+Hello.pdf:   130:  1:   5974:	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf:   131:  1:   6052:	<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf:   132:  1:   6092:	startxref+Hello.pdf:   133:  1:   6102:	5536+Hello.pdf:   134:  1:   6107:	%%EOF+Hello.sh:     1:  1:      0:	#!/bin/sh+Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.txt:     1:  1:      0:	Hello+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-W-vy.out

@@ -1,5 +1,5 @@-Hello.bat-#!/bin/sh-Hello.bat-echo "Hello World!"+Hello.bat-#!/bin/sh+Hello.bat-echo "Hello World!" Hello.class- 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class-@@ -41,20 +41,20 @@ Hello.class- 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java-import java.lang.*;-Hello.java--Hello.java-public class Hello // prints a Hello World! greeting-Hello.java-{ public static void main(String[] arg)-Hello.java-  { System.out.println("Hello World!");-Hello.java-  }-Hello.java-}-Hello.pdf-%PDF-1.3+Hello.java-import java.lang.*;+Hello.java-+Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-{ public static void main(String[] arg)+Hello.java-  { System.out.println("Hello World!");+Hello.java-  }+Hello.java-}+Hello.pdf-%PDF-1.3 Hello.pdf- 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf-4 0 obj-Hello.pdf-<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf-stream+Hello.pdf-4 0 obj+Hello.pdf-<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf-stream Hello.pdf- 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf-endstream-Hello.pdf-endobj-Hello.pdf-5 0 obj-Hello.pdf-123-Hello.pdf-endobj-Hello.pdf-2 0 obj-Hello.pdf-<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf->>-Hello.pdf-endobj-Hello.pdf-6 0 obj-Hello.pdf-<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf->> >>-Hello.pdf-endobj-Hello.pdf-9 0 obj-Hello.pdf-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf-stream+Hello.pdf-endstream+Hello.pdf-endobj+Hello.pdf-5 0 obj+Hello.pdf-123+Hello.pdf-endobj+Hello.pdf-2 0 obj+Hello.pdf-<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf->>+Hello.pdf-endobj+Hello.pdf-6 0 obj+Hello.pdf-<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf->> >>+Hello.pdf-endobj+Hello.pdf-9 0 obj+Hello.pdf-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf-stream Hello.pdf- 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf-endstream-Hello.pdf-endobj-Hello.pdf-10 0 obj-Hello.pdf-1116-Hello.pdf-endobj-Hello.pdf-7 0 obj-Hello.pdf-[ /ICCBased 9 0 R ]-Hello.pdf-endobj-Hello.pdf-3 0 obj-Hello.pdf-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf-endobj-Hello.pdf-11 0 obj-Hello.pdf-<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf-endobj-Hello.pdf-8 0 obj-Hello.pdf-<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf-12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf-0 0 602 ] >>-Hello.pdf-endobj-Hello.pdf-12 0 obj-Hello.pdf-<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf-[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf-/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf->>-Hello.pdf-endobj-Hello.pdf-13 0 obj-Hello.pdf-<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf-stream+Hello.pdf-endstream+Hello.pdf-endobj+Hello.pdf-10 0 obj+Hello.pdf-1116+Hello.pdf-endobj+Hello.pdf-7 0 obj+Hello.pdf-[ /ICCBased 9 0 R ]+Hello.pdf-endobj+Hello.pdf-3 0 obj+Hello.pdf-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf-endobj+Hello.pdf-11 0 obj+Hello.pdf-<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf-endobj+Hello.pdf-8 0 obj+Hello.pdf-<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf-12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf-0 0 602 ] >>+Hello.pdf-endobj+Hello.pdf-12 0 obj+Hello.pdf-<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf-[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf-/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf->>+Hello.pdf-endobj+Hello.pdf-13 0 obj+Hello.pdf-<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf-stream Hello.pdf- 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf-endstream-Hello.pdf-endobj-Hello.pdf-14 0 obj-Hello.pdf-2734-Hello.pdf-endobj-Hello.pdf-15 0 obj-Hello.pdf-(Hello)-Hello.pdf-endobj-Hello.pdf-16 0 obj-Hello.pdf-(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf-endobj-Hello.pdf-17 0 obj-Hello.pdf-(TextEdit)-Hello.pdf-endobj-Hello.pdf-18 0 obj-Hello.pdf-(D:20200124010711Z00'00')-Hello.pdf-endobj-Hello.pdf-19 0 obj-Hello.pdf-()-Hello.pdf-endobj-Hello.pdf-20 0 obj-Hello.pdf-[ ]-Hello.pdf-endobj-Hello.pdf-1 0 obj-Hello.pdf-<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf-endobj-Hello.pdf-xref-Hello.pdf-0 21-Hello.pdf-0000000000 65535 f -Hello.pdf-0000005392 00000 n -Hello.pdf-0000000238 00000 n -Hello.pdf-0000001714 00000 n -Hello.pdf-0000000022 00000 n -Hello.pdf-0000000219 00000 n -Hello.pdf-0000000342 00000 n -Hello.pdf-0000001679 00000 n -Hello.pdf-0000001847 00000 n -Hello.pdf-0000000439 00000 n -Hello.pdf-0000001658 00000 n -Hello.pdf-0000001797 00000 n -Hello.pdf-0000002110 00000 n -Hello.pdf-0000002362 00000 n -Hello.pdf-0000005186 00000 n -Hello.pdf-0000005207 00000 n -Hello.pdf-0000005231 00000 n -Hello.pdf-0000005284 00000 n -Hello.pdf-0000005311 00000 n -Hello.pdf-0000005353 00000 n -Hello.pdf-0000005372 00000 n -Hello.pdf-trailer-Hello.pdf-<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf-<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf-startxref-Hello.pdf-5536-Hello.pdf-%%EOF-Hello.sh-#!/bin/sh-Hello.sh-echo "Hello World!"-Hello.txt-Hello-emptyline.txt-+Hello.pdf-endstream+Hello.pdf-endobj+Hello.pdf-14 0 obj+Hello.pdf-2734+Hello.pdf-endobj+Hello.pdf-15 0 obj+Hello.pdf-(Hello)+Hello.pdf-endobj+Hello.pdf-16 0 obj+Hello.pdf-(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf-endobj+Hello.pdf-17 0 obj+Hello.pdf-(TextEdit)+Hello.pdf-endobj+Hello.pdf-18 0 obj+Hello.pdf-(D:20200124010711Z00'00')+Hello.pdf-endobj+Hello.pdf-19 0 obj+Hello.pdf-()+Hello.pdf-endobj+Hello.pdf-20 0 obj+Hello.pdf-[ ]+Hello.pdf-endobj+Hello.pdf-1 0 obj+Hello.pdf-<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf-endobj+Hello.pdf-xref+Hello.pdf-0 21+Hello.pdf-0000000000 65535 f +Hello.pdf-0000005392 00000 n +Hello.pdf-0000000238 00000 n +Hello.pdf-0000001714 00000 n +Hello.pdf-0000000022 00000 n +Hello.pdf-0000000219 00000 n +Hello.pdf-0000000342 00000 n +Hello.pdf-0000001679 00000 n +Hello.pdf-0000001847 00000 n +Hello.pdf-0000000439 00000 n +Hello.pdf-0000001658 00000 n +Hello.pdf-0000001797 00000 n +Hello.pdf-0000002110 00000 n +Hello.pdf-0000002362 00000 n +Hello.pdf-0000005186 00000 n +Hello.pdf-0000005207 00000 n +Hello.pdf-0000005231 00000 n +Hello.pdf-0000005284 00000 n +Hello.pdf-0000005311 00000 n +Hello.pdf-0000005353 00000 n +Hello.pdf-0000005372 00000 n +Hello.pdf-trailer+Hello.pdf-<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf-<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf-startxref+Hello.pdf-5536+Hello.pdf-%%EOF+Hello.sh-#!/bin/sh+Hello.sh-echo "Hello World!"+Hello.txt-Hello+emptyline.txt-

tests/out/Hello_-W-y.out

@@ -1,5 +1,5 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Hello.class: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:@@ -41,20 +41,20 @@ Hello.class: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.pdf:%PDF-1.3+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.pdf:%PDF-1.3 Hello.pdf: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:4 0 obj-Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:4 0 obj+Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:5 0 obj-Hello.pdf:123-Hello.pdf:endobj-Hello.pdf:2 0 obj-Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:>>-Hello.pdf:endobj-Hello.pdf:6 0 obj-Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:>> >>-Hello.pdf:endobj-Hello.pdf:9 0 obj-Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:5 0 obj+Hello.pdf:123+Hello.pdf:endobj+Hello.pdf:2 0 obj+Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf:>>+Hello.pdf:endobj+Hello.pdf:6 0 obj+Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf:>> >>+Hello.pdf:endobj+Hello.pdf:9 0 obj+Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:10 0 obj-Hello.pdf:1116-Hello.pdf:endobj-Hello.pdf:7 0 obj-Hello.pdf:[ /ICCBased 9 0 R ]-Hello.pdf:endobj-Hello.pdf:3 0 obj-Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:endobj-Hello.pdf:11 0 obj-Hello.pdf:<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:endobj-Hello.pdf:8 0 obj-Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:0 0 602 ] >>-Hello.pdf:endobj-Hello.pdf:12 0 obj-Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:>>-Hello.pdf:endobj-Hello.pdf:13 0 obj-Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:10 0 obj+Hello.pdf:1116+Hello.pdf:endobj+Hello.pdf:7 0 obj+Hello.pdf:[ /ICCBased 9 0 R ]+Hello.pdf:endobj+Hello.pdf:3 0 obj+Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf:endobj+Hello.pdf:11 0 obj+Hello.pdf:<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf:endobj+Hello.pdf:8 0 obj+Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:0 0 602 ] >>+Hello.pdf:endobj+Hello.pdf:12 0 obj+Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf:>>+Hello.pdf:endobj+Hello.pdf:13 0 obj+Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:14 0 obj-Hello.pdf:2734-Hello.pdf:endobj-Hello.pdf:15 0 obj-Hello.pdf:(Hello)-Hello.pdf:endobj-Hello.pdf:16 0 obj-Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:endobj-Hello.pdf:17 0 obj-Hello.pdf:(TextEdit)-Hello.pdf:endobj-Hello.pdf:18 0 obj-Hello.pdf:(D:20200124010711Z00'00')-Hello.pdf:endobj-Hello.pdf:19 0 obj-Hello.pdf:()-Hello.pdf:endobj-Hello.pdf:20 0 obj-Hello.pdf:[ ]-Hello.pdf:endobj-Hello.pdf:1 0 obj-Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:endobj-Hello.pdf:xref-Hello.pdf:0 21-Hello.pdf:0000000000 65535 f -Hello.pdf:0000005392 00000 n -Hello.pdf:0000000238 00000 n -Hello.pdf:0000001714 00000 n -Hello.pdf:0000000022 00000 n -Hello.pdf:0000000219 00000 n -Hello.pdf:0000000342 00000 n -Hello.pdf:0000001679 00000 n -Hello.pdf:0000001847 00000 n -Hello.pdf:0000000439 00000 n -Hello.pdf:0000001658 00000 n -Hello.pdf:0000001797 00000 n -Hello.pdf:0000002110 00000 n -Hello.pdf:0000002362 00000 n -Hello.pdf:0000005186 00000 n -Hello.pdf:0000005207 00000 n -Hello.pdf:0000005231 00000 n -Hello.pdf:0000005284 00000 n -Hello.pdf:0000005311 00000 n -Hello.pdf:0000005353 00000 n -Hello.pdf:0000005372 00000 n -Hello.pdf:trailer-Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf:<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf:startxref-Hello.pdf:5536-Hello.pdf:%%EOF-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:14 0 obj+Hello.pdf:2734+Hello.pdf:endobj+Hello.pdf:15 0 obj+Hello.pdf:(Hello)+Hello.pdf:endobj+Hello.pdf:16 0 obj+Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf:endobj+Hello.pdf:17 0 obj+Hello.pdf:(TextEdit)+Hello.pdf:endobj+Hello.pdf:18 0 obj+Hello.pdf:(D:20200124010711Z00'00')+Hello.pdf:endobj+Hello.pdf:19 0 obj+Hello.pdf:()+Hello.pdf:endobj+Hello.pdf:20 0 obj+Hello.pdf:[ ]+Hello.pdf:endobj+Hello.pdf:1 0 obj+Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:endobj+Hello.pdf:xref+Hello.pdf:0 21+Hello.pdf:0000000000 65535 f +Hello.pdf:0000005392 00000 n +Hello.pdf:0000000238 00000 n +Hello.pdf:0000001714 00000 n +Hello.pdf:0000000022 00000 n +Hello.pdf:0000000219 00000 n +Hello.pdf:0000000342 00000 n +Hello.pdf:0000001679 00000 n +Hello.pdf:0000001847 00000 n +Hello.pdf:0000000439 00000 n +Hello.pdf:0000001658 00000 n +Hello.pdf:0000001797 00000 n +Hello.pdf:0000002110 00000 n +Hello.pdf:0000002362 00000 n +Hello.pdf:0000005186 00000 n +Hello.pdf:0000005207 00000 n +Hello.pdf:0000005231 00000 n +Hello.pdf:0000005284 00000 n +Hello.pdf:0000005311 00000 n +Hello.pdf:0000005353 00000 n +Hello.pdf:0000005372 00000 n +Hello.pdf:trailer+Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf:<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf:startxref+Hello.pdf:5536+Hello.pdf:%%EOF+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-W.out

@@ -1,5 +1,5 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Hello.class: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:@@ -41,20 +41,20 @@ Hello.class: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}-Hello.pdf:%PDF-1.3+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:}+Hello.pdf:%PDF-1.3 Hello.pdf: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:4 0 obj-Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:4 0 obj+Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000040  -- -- -- -- -- -- -- --  -- -- -- -- -- -- 78 01  |--------------xA| 00000050  45 8e bb 0a -- -- -- --  -- -- -- -- -- -- -- --  |E..J------------|@@ -69,22 +69,22 @@ 000000a0  ed 94 20 bb b6 70 51 a3  44 c4 a3 0d ef 7f a0 69  |.. ..pQ.D..M.~.i| 000000b0  c2 0b ba 30 a8 7a ac 7c  b2 bf 4f f3 bc 1e d0 17  |.K.0.z.|..O..^.W| 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:5 0 obj-Hello.pdf:123-Hello.pdf:endobj-Hello.pdf:2 0 obj-Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:>>-Hello.pdf:endobj-Hello.pdf:6 0 obj-Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:>> >>-Hello.pdf:endobj-Hello.pdf:9 0 obj-Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:5 0 obj+Hello.pdf:123+Hello.pdf:endobj+Hello.pdf:2 0 obj+Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]+Hello.pdf:>>+Hello.pdf:endobj+Hello.pdf:6 0 obj+Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R+Hello.pdf:>> >>+Hello.pdf:endobj+Hello.pdf:9 0 obj+Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U| 00000210  5d 68 1c 55 14 3e bb 73  67 03 12 07 1f b4 0d 2d  |]h\UT>.sgCRG_.M-|@@ -167,35 +167,35 @@ 00000640  -- -- -- -- 54 df 0c 4c  bf 69 56 b3 c4 77 37 cf  |----T.LL.iV..w7.| 00000650  23 fa eb f5 e8 4e 4e 6d  bb 61 34 fc 66 2c a3 54  |#....NNm.a4.f,.T| 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:10 0 obj-Hello.pdf:1116-Hello.pdf:endobj-Hello.pdf:7 0 obj-Hello.pdf:[ /ICCBased 9 0 R ]-Hello.pdf:endobj-Hello.pdf:3 0 obj-Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:endobj-Hello.pdf:11 0 obj-Hello.pdf:<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:endobj-Hello.pdf:8 0 obj-Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:0 0 602 ] >>-Hello.pdf:endobj-Hello.pdf:12 0 obj-Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox-Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729-Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:>>-Hello.pdf:endobj-Hello.pdf:13 0 obj-Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>-Hello.pdf:stream+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:10 0 obj+Hello.pdf:1116+Hello.pdf:endobj+Hello.pdf:7 0 obj+Hello.pdf:[ /ICCBased 9 0 R ]+Hello.pdf:endobj+Hello.pdf:3 0 obj+Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>+Hello.pdf:endobj+Hello.pdf:11 0 obj+Hello.pdf:<< /Type /Catalog /Pages 3 0 R >>+Hello.pdf:endobj+Hello.pdf:8 0 obj+Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor+Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:0 0 602 ] >>+Hello.pdf:endobj+Hello.pdf:12 0 obj+Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox+Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729+Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R+Hello.pdf:>>+Hello.pdf:endobj+Hello.pdf:13 0 obj+Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>+Hello.pdf:stream Hello.pdf: 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6| 00000990  af cd 3e 92 4d 48 48 80  5d d6 e5 95 2c 81 84 b7  |..>.MHH.]...,...|@@ -405,63 +405,63 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:endstream-Hello.pdf:endobj-Hello.pdf:14 0 obj-Hello.pdf:2734-Hello.pdf:endobj-Hello.pdf:15 0 obj-Hello.pdf:(Hello)-Hello.pdf:endobj-Hello.pdf:16 0 obj-Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:endobj-Hello.pdf:17 0 obj-Hello.pdf:(TextEdit)-Hello.pdf:endobj-Hello.pdf:18 0 obj-Hello.pdf:(D:20200124010711Z00'00')-Hello.pdf:endobj-Hello.pdf:19 0 obj-Hello.pdf:()-Hello.pdf:endobj-Hello.pdf:20 0 obj-Hello.pdf:[ ]-Hello.pdf:endobj-Hello.pdf:1 0 obj-Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:endobj-Hello.pdf:xref-Hello.pdf:0 21-Hello.pdf:0000000000 65535 f -Hello.pdf:0000005392 00000 n -Hello.pdf:0000000238 00000 n -Hello.pdf:0000001714 00000 n -Hello.pdf:0000000022 00000 n -Hello.pdf:0000000219 00000 n -Hello.pdf:0000000342 00000 n -Hello.pdf:0000001679 00000 n -Hello.pdf:0000001847 00000 n -Hello.pdf:0000000439 00000 n -Hello.pdf:0000001658 00000 n -Hello.pdf:0000001797 00000 n -Hello.pdf:0000002110 00000 n -Hello.pdf:0000002362 00000 n -Hello.pdf:0000005186 00000 n -Hello.pdf:0000005207 00000 n -Hello.pdf:0000005231 00000 n -Hello.pdf:0000005284 00000 n -Hello.pdf:0000005311 00000 n -Hello.pdf:0000005353 00000 n -Hello.pdf:0000005372 00000 n -Hello.pdf:trailer-Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.pdf:<8db88d3335070bd9583341583cf769a3> ] >>-Hello.pdf:startxref-Hello.pdf:5536-Hello.pdf:%%EOF-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.pdf:endstream+Hello.pdf:endobj+Hello.pdf:14 0 obj+Hello.pdf:2734+Hello.pdf:endobj+Hello.pdf:15 0 obj+Hello.pdf:(Hello)+Hello.pdf:endobj+Hello.pdf:16 0 obj+Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext)+Hello.pdf:endobj+Hello.pdf:17 0 obj+Hello.pdf:(TextEdit)+Hello.pdf:endobj+Hello.pdf:18 0 obj+Hello.pdf:(D:20200124010711Z00'00')+Hello.pdf:endobj+Hello.pdf:19 0 obj+Hello.pdf:()+Hello.pdf:endobj+Hello.pdf:20 0 obj+Hello.pdf:[ ]+Hello.pdf:endobj+Hello.pdf:1 0 obj+Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate+Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:endobj+Hello.pdf:xref+Hello.pdf:0 21+Hello.pdf:0000000000 65535 f +Hello.pdf:0000005392 00000 n +Hello.pdf:0000000238 00000 n +Hello.pdf:0000001714 00000 n +Hello.pdf:0000000022 00000 n +Hello.pdf:0000000219 00000 n +Hello.pdf:0000000342 00000 n +Hello.pdf:0000001679 00000 n +Hello.pdf:0000001847 00000 n +Hello.pdf:0000000439 00000 n +Hello.pdf:0000001658 00000 n +Hello.pdf:0000001797 00000 n +Hello.pdf:0000002110 00000 n +Hello.pdf:0000002362 00000 n +Hello.pdf:0000005186 00000 n +Hello.pdf:0000005207 00000 n +Hello.pdf:0000005231 00000 n +Hello.pdf:0000005284 00000 n +Hello.pdf:0000005311 00000 n +Hello.pdf:0000005353 00000 n +Hello.pdf:0000005372 00000 n +Hello.pdf:trailer+Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>+Hello.pdf:<8db88d3335070bd9583341583cf769a3> ] >>+Hello.pdf:startxref+Hello.pdf:5536+Hello.pdf:%%EOF+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_-n.out

@@ -1,15 +1,15 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!" Binary file Hello.class matches-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:} Binary file Hello.pdf matches-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-nC2.out

@@ -1,15 +1,15 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!" Binary file Hello.class matches-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:} Binary file Hello.pdf matches-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-nkbT.out

@@ -1,15 +1,15 @@-Hello.bat:     1:  1:      0:	#!/bin/sh-Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.bat:     1:  1:      0:	#!/bin/sh+Hello.bat:     2:  1:     10:	echo "Hello World!" Binary file Hello.class matches-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting-Hello.java:     4:  1:     74:	{ public static void main(String[] arg)-Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");-Hello.java:     6:  1:    154:	  }-Hello.java:     7:  1:    158:	}+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     2:  1:     20:	+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     4:  1:     74:	{ public static void main(String[] arg)+Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");+Hello.java:     6:  1:    154:	  }+Hello.java:     7:  1:    158:	} Binary file Hello.pdf matches-Hello.sh:     1:  1:      0:	#!/bin/sh-Hello.sh:     2:  1:     10:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+Hello.sh:     1:  1:      0:	#!/bin/sh+Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.txt:     1:  1:      0:	Hello+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-nvy.out

@@ -1,13 +1,13 @@-Hello.bat-1-#!/bin/sh-Hello.bat-2-echo "Hello World!"-Hello.java-1-import java.lang.*;-Hello.java-2--Hello.java-3-public class Hello // prints a Hello World! greeting-Hello.java-4-{ public static void main(String[] arg)-Hello.java-5-  { System.out.println("Hello World!");-Hello.java-6-  }-Hello.java-7-}-Hello.sh-1-#!/bin/sh-Hello.sh-2-echo "Hello World!"-Hello.txt-1-Hello-emptyline.txt-1-+Hello.bat-1-#!/bin/sh+Hello.bat-2-echo "Hello World!"+Hello.java-1-import java.lang.*;+Hello.java-2-+Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-4-{ public static void main(String[] arg)+Hello.java-5-  { System.out.println("Hello World!");+Hello.java-6-  }+Hello.java-7-}+Hello.sh-1-#!/bin/sh+Hello.sh-2-echo "Hello World!"+Hello.txt-1-Hello+emptyline.txt-1-

tests/out/Hello_-ny.out

@@ -1,15 +1,15 @@-Hello.bat:1:#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:1:#!/bin/sh+Hello.bat:2:echo "Hello World!" Binary file Hello.class matches-Hello.java:1:import java.lang.*;-Hello.java:2:-Hello.java:3:public class Hello // prints a Hello World! greeting-Hello.java:4:{ public static void main(String[] arg)-Hello.java:5:  { System.out.println("Hello World!");-Hello.java:6:  }-Hello.java:7:}+Hello.java:1:import java.lang.*;+Hello.java:2:+Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:4:{ public static void main(String[] arg)+Hello.java:5:  { System.out.println("Hello World!");+Hello.java:6:  }+Hello.java:7:} Binary file Hello.pdf matches-Hello.sh:1:#!/bin/sh-Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello-emptyline.txt:1:+Hello.sh:1:#!/bin/sh+Hello.sh:2:echo "Hello World!"+Hello.txt:1:Hello+emptyline.txt:1:

tests/out/Hello_-o.out

@@ -2,7 +2,7 @@ Hello.bat:echo "Hello World!" Binary file Hello.class matches Hello.java:import java.lang.*;-Hello.java:+Hello.java: Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");@@ -12,4 +12,4 @@ Hello.sh:#!/bin/sh Hello.sh:echo "Hello World!" Hello.txt:Hello-emptyline.txt:+emptyline.txt:

tests/out/Hello_-on.out

@@ -2,7 +2,7 @@ Hello.bat:2:echo "Hello World!" Binary file Hello.class matches Hello.java:1:import java.lang.*;-Hello.java:2:+Hello.java:2: Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!");@@ -12,4 +12,4 @@ Hello.sh:1:#!/bin/sh Hello.sh:2:echo "Hello World!" Hello.txt:1:Hello-emptyline.txt:1:+emptyline.txt:1:

tests/out/Hello_-onkbT.out

@@ -2,7 +2,7 @@ Hello.bat:     2:  1:     10:	echo "Hello World!" Binary file Hello.class matches Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	+Hello.java:     2:  1:     20:	 Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  1:     74:	{ public static void main(String[] arg) Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");@@ -12,4 +12,4 @@ Hello.sh:     1:  1:      0:	#!/bin/sh Hello.sh:     2:  1:     10:	echo "Hello World!" Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-ounkbT.out

@@ -2,7 +2,7 @@ Hello.bat:     2:  1:     10:	echo "Hello World!" Binary file Hello.class matches Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	+Hello.java:     2:  1:     20:	 Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  1:     74:	{ public static void main(String[] arg) Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");@@ -12,4 +12,4 @@ Hello.sh:     1:  1:      0:	#!/bin/sh Hello.sh:     2:  1:     10:	echo "Hello World!" Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-unkbT.out

@@ -1,15 +1,15 @@-Hello.bat:     1:  1:      0:	#!/bin/sh-Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.bat:     1:  1:      0:	#!/bin/sh+Hello.bat:     2:  1:     10:	echo "Hello World!" Binary file Hello.class matches-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     2:  1:     20:	-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting-Hello.java:     4:  1:     74:	{ public static void main(String[] arg)-Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");-Hello.java:     6:  1:    154:	  }-Hello.java:     7:  1:    158:	}+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     2:  1:     20:	+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     4:  1:     74:	{ public static void main(String[] arg)+Hello.java:     5:  1:    114:	  { System.out.println("Hello World!");+Hello.java:     6:  1:    154:	  }+Hello.java:     7:  1:    158:	} Binary file Hello.pdf matches-Hello.sh:     1:  1:      0:	#!/bin/sh-Hello.sh:     2:  1:     10:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello-emptyline.txt:     1:  1:      0:	+Hello.sh:     1:  1:      0:	#!/bin/sh+Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.txt:     1:  1:      0:	Hello+emptyline.txt:     1:  1:      0:	

tests/out/Hello_-vy.out

@@ -1,13 +1,13 @@-Hello.bat-#!/bin/sh-Hello.bat-echo "Hello World!"-Hello.java-import java.lang.*;-Hello.java--Hello.java-public class Hello // prints a Hello World! greeting-Hello.java-{ public static void main(String[] arg)-Hello.java-  { System.out.println("Hello World!");-Hello.java-  }-Hello.java-}-Hello.sh-#!/bin/sh-Hello.sh-echo "Hello World!"-Hello.txt-Hello-emptyline.txt-+Hello.bat-#!/bin/sh+Hello.bat-echo "Hello World!"+Hello.java-import java.lang.*;+Hello.java-+Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-{ public static void main(String[] arg)+Hello.java-  { System.out.println("Hello World!");+Hello.java-  }+Hello.java-}+Hello.sh-#!/bin/sh+Hello.sh-echo "Hello World!"+Hello.txt-Hello+emptyline.txt-

tests/out/Hello_-y.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_.out

@@ -1,15 +1,15 @@-Hello.bat:#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:#!/bin/sh+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:-Hello.java:public class Hello // prints a Hello World! greeting-Hello.java:{ public static void main(String[] arg)-Hello.java:  { System.out.println("Hello World!");-Hello.java:  }-Hello.java:}+Hello.java:import java.lang.*;+Hello.java:+Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:{ public static void main(String[] arg)+Hello.java:  { System.out.println("Hello World!");+Hello.java:  }+Hello.java:} Binary file Hello.pdf matches-Hello.sh:#!/bin/sh-Hello.sh:echo "Hello World!"-Hello.txt:Hello-emptyline.txt:+Hello.sh:#!/bin/sh+Hello.sh:echo "Hello World!"+Hello.txt:Hello+emptyline.txt:

tests/out/Hello_Hello--max-count.out

@@ -3,4 +3,4 @@ Hello.java:public class Hello // prints a Hello World! greeting Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello--range.out

@@ -1 +1 @@-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello--replace.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("(3:Hello) World!"); Binary file Hello.pdf matches Hello.sh:echo "(1:Hello) World!"-Hello.txt:(1:Hello)+Hello.txt:(1:Hello)

tests/out/Hello_Hello-C2.out

@@ -11,4 +11,4 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-F.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Fw.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Fx.out

@@ -1 +1 @@-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-G.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Gw.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Gx.out

@@ -1 +1 @@-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-I-C2.out

@@ -9,4 +9,4 @@ Hello.java-} Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-I-n.out

@@ -2,4 +2,4 @@ Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:5:  { System.out.println("Hello World!"); Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello

tests/out/Hello_Hello-I-nC2.out

@@ -9,4 +9,4 @@ Hello.java-7-} Hello.sh-1-#!/bin/sh Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello

tests/out/Hello_Hello-I-nkbT.out

@@ -2,4 +2,4 @@ Hello.java:     3: 14:     34:	public class Hello // prints a Hello World! greeting Hello.java:     5: 25:    138:	  { System.out.println("Hello World!"); Hello.sh:     2:  7:     16:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello+Hello.txt:     1:  1:      0:	Hello

tests/out/Hello_Hello-I-nvy.out

@@ -9,5 +9,5 @@ Hello.java:7:} Hello.sh:1:#!/bin/sh Hello.sh-2-echo "Hello World!"-Hello.txt-1-Hello+Hello.txt-1-Hello emptyline.txt:1:

tests/out/Hello_Hello-I-ny.out

@@ -9,5 +9,5 @@ Hello.java-7-} Hello.sh-1-#!/bin/sh Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello emptyline.txt-1-

tests/out/Hello_Hello-I-unkbT.out

@@ -3,4 +3,4 @@ Hello.java+     3+ 32+     52+	public class Hello // prints a Hello World! greeting Hello.java:     5: 25:    138:	  { System.out.println("Hello World!"); Hello.sh:     2:  7:     16:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello+Hello.txt:     1:  1:      0:	Hello

tests/out/Hello_Hello-I-vy.out

@@ -9,5 +9,5 @@ Hello.java:} Hello.sh:#!/bin/sh Hello.sh-echo "Hello World!"-Hello.txt-Hello+Hello.txt-Hello emptyline.txt:

tests/out/Hello_Hello-I-y.out

@@ -9,5 +9,5 @@ Hello.java-} Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello emptyline.txt-

tests/out/Hello_Hello-I.out

@@ -2,4 +2,4 @@ Hello.java:public class Hello // prints a Hello World! greeting Hello.java:  { System.out.println("Hello World!"); Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-IP.out

@@ -2,4 +2,4 @@ Hello.java:public class Hello // prints a Hello World! greeting Hello.java:  { System.out.println("Hello World!"); Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-IPw.out

@@ -2,4 +2,4 @@ Hello.java:public class Hello // prints a Hello World! greeting Hello.java:  { System.out.println("Hello World!"); Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-IPx.out

@@ -1 +1 @@-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Iw.out

@@ -2,4 +2,4 @@ Hello.java:public class Hello // prints a Hello World! greeting Hello.java:  { System.out.println("Hello World!"); Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Ix.out

@@ -1 +1 @@-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-W-C2.out

@@ -47,4 +47,4 @@ Hello.pdf-16 0 obj Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-W-n.out

@@ -19,4 +19,4 @@ Hello.java:5:  { System.out.println("Hello World!"); Hello.pdf:85:(Hello) Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello

tests/out/Hello_Hello-W-nC2.out

@@ -47,4 +47,4 @@ Hello.pdf-87-16 0 obj Hello.sh-1-#!/bin/sh Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello

tests/out/Hello_Hello-W-nkbT.out

@@ -19,4 +19,4 @@ Hello.java:     5: 25:    138:	  { System.out.println("Hello World!"); Hello.pdf:    85:  2:   5217:	(Hello) Hello.sh:     2:  7:     16:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello+Hello.txt:     1:  1:      0:	Hello

tests/out/Hello_Hello-W-nvy.out

@@ -463,5 +463,5 @@ Hello.pdf:134:%%EOF Hello.sh:1:#!/bin/sh Hello.sh-2-echo "Hello World!"-Hello.txt-1-Hello+Hello.txt-1-Hello emptyline.txt:1:

tests/out/Hello_Hello-W-ny.out

@@ -463,5 +463,5 @@ Hello.pdf-134-%%EOF Hello.sh-1-#!/bin/sh Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello emptyline.txt-1-

tests/out/Hello_Hello-W-unkbT.out

@@ -52,4 +52,4 @@ Hello.java:     5: 25:    138:	  { System.out.println("Hello World!"); Hello.pdf:    85:  2:   5217:	(Hello) Hello.sh:     2:  7:     16:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello+Hello.txt:     1:  1:      0:	Hello

tests/out/Hello_Hello-W-vy.out

@@ -463,5 +463,5 @@ Hello.pdf:%%EOF Hello.sh:#!/bin/sh Hello.sh-echo "Hello World!"-Hello.txt-Hello+Hello.txt-Hello emptyline.txt:

tests/out/Hello_Hello-W-y.out

@@ -463,5 +463,5 @@ Hello.pdf-%%EOF Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello emptyline.txt-

tests/out/Hello_Hello-W.out

@@ -19,4 +19,4 @@ Hello.java:  { System.out.println("Hello World!"); Hello.pdf:(Hello) Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-World--bool-C2.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-World--bool-y.out

@@ -10,5 +10,5 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh-echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello emptyline.txt-

tests/out/Hello_Hello-World--bool.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-World--files--bool-C2.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-World--files--bool-y.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-World--files--bool.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Worldgreeting--bool-C2.out

@@ -4,4 +4,4 @@ Hello.java-{ public static void main(String[] arg) Hello.java-  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Worldgreeting--bool-y.out

@@ -10,5 +10,5 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh-echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello emptyline.txt-

tests/out/Hello_Hello-Worldgreeting--bool.out

@@ -1,3 +1,3 @@ Hello.java:public class Hello // prints a Hello World! greeting Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Worldgreeting--files--bool-C2.out

@@ -6,4 +6,4 @@ Hello.java-  } Hello.java-} Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Worldgreeting--files--bool-y.out

@@ -6,4 +6,4 @@ Hello.java-  } Hello.java-} Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-Worldgreeting--files--bool.out

@@ -1,4 +1,4 @@ Hello.java:public class Hello // prints a Hello World! greeting Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bin--bool-C2.out

@@ -11,4 +11,4 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bin--bool-y.out

@@ -11,5 +11,5 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello emptyline.txt-

tests/out/Hello_Hello-bin--bool.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bin--files--bool-C2.out

@@ -7,4 +7,4 @@ Hello.java-  } Hello.java-} Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bin--files--bool-y.out

@@ -7,4 +7,4 @@ Hello.java-  } Hello.java-} Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bin--files--bool.out

@@ -2,4 +2,4 @@ Hello.java:public class Hello // prints a Hello World! greeting Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bingreeting--bool-C2.out

@@ -11,4 +11,4 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bingreeting--bool-y.out

@@ -11,5 +11,5 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello emptyline.txt-

tests/out/Hello_Hello-bingreeting--bool.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bingreeting--files--bool-C2.out

@@ -7,4 +7,4 @@ Hello.java-  } Hello.java-} Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bingreeting--files--bool-y.out

@@ -7,4 +7,4 @@ Hello.java-  } Hello.java-} Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-bingreeting--files--bool.out

@@ -2,4 +2,4 @@ Hello.java:public class Hello // prints a Hello World! greeting Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-eN.out

@@ -1,4 +1,4 @@ Binary file Hello.class matches Hello.java:public class Hello // prints a Hello World! greeting Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-ee.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-greetingWorld--bool-C2.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-greetingWorld--bool-y.out

@@ -10,5 +10,5 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh-echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello emptyline.txt-

tests/out/Hello_Hello-greetingWorld--bool.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-greetingWorld--files--bool-C2.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-greetingWorld--files--bool-y.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-greetingWorld--files--bool.out

@@ -1,2 +1,2 @@ Binary file Hello.pdf matches-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_Hello-n.out

@@ -4,4 +4,4 @@ Hello.java:5:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello

tests/out/Hello_Hello-nC2.out

@@ -11,4 +11,4 @@ Binary file Hello.pdf matches Hello.sh-1-#!/bin/sh Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello

tests/out/Hello_Hello-nkbT.out

@@ -4,4 +4,4 @@ Hello.java:     5: 25:    138:	  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:     2:  7:     16:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello+Hello.txt:     1:  1:      0:	Hello

tests/out/Hello_Hello-nvy.out

@@ -11,5 +11,5 @@ Binary file Hello.pdf matches Hello.sh:1:#!/bin/sh Hello.sh-2-echo "Hello World!"-Hello.txt-1-Hello+Hello.txt-1-Hello emptyline.txt:1:

tests/out/Hello_Hello-ny.out

@@ -11,5 +11,5 @@ Binary file Hello.pdf matches Hello.sh-1-#!/bin/sh Hello.sh:2:echo "Hello World!"-Hello.txt:1:Hello+Hello.txt:1:Hello emptyline.txt-1-

tests/out/Hello_Hello-unkbT.out

@@ -5,4 +5,4 @@ Hello.java:     5: 25:    138:	  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:     2:  7:     16:	echo "Hello World!"-Hello.txt:     1:  1:      0:	Hello+Hello.txt:     1:  1:      0:	Hello

tests/out/Hello_Hello-vy.out

@@ -11,5 +11,5 @@ Binary file Hello.pdf matches Hello.sh:#!/bin/sh Hello.sh-echo "Hello World!"-Hello.txt-Hello+Hello.txt-Hello emptyline.txt:

tests/out/Hello_Hello-y.out

@@ -11,5 +11,5 @@ Binary file Hello.pdf matches Hello.sh-#!/bin/sh Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello emptyline.txt-

tests/out/Hello_Hello.out

@@ -4,4 +4,4 @@ Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches Hello.sh:echo "Hello World!"-Hello.txt:Hello+Hello.txt:Hello

tests/out/Hello_wsS--replace.out

@@ -1,8 +1,8 @@-Hello.bat:(1:echo "Hello) World!"+Hello.bat:(1:echo "Hello) World!" Binary file Hello.class matches-Hello.java:(1:import java.lang.*;)-Hello.java:(2:public class) (3:Hello //) (4:prints a) (5:Hello World!) greeting+Hello.java:(1:import java.lang.*;)+Hello.java:(2:public class) (3:Hello //) (4:prints a) (5:Hello World!) greeting Hello.java:{ (6:public static) (7:void main(String[]) arg) Hello.java:  { System.out.println("(8:Hello World!");) Binary file Hello.pdf matches-Hello.sh:(1:echo "Hello) World!"+Hello.sh:(1:echo "Hello) World!"

tests/out/Hello_wsS-C2.out

@@ -1,13 +1,13 @@ Hello.bat-#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;+Hello.java:import java.lang.*; Hello.java--Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Hello.java-  } Hello.java-} Binary file Hello.pdf matches Hello.sh-#!/bin/sh-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-G.out

@@ -1,8 +1,8 @@-Hello.bat:echo "Hello World!"+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:import java.lang.*;+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-Gw.out

@@ -1,8 +1,8 @@-Hello.bat:echo "Hello World!"+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:import java.lang.*;+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-Gx.out

@@ -1,2 +1,2 @@-Hello.java:import java.lang.*;+Hello.java:import java.lang.*; Binary file Hello.pdf matches

tests/out/Hello_wsS-I-C2.out

@@ -1,11 +1,11 @@ Hello.bat-#!/bin/sh-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*; Hello.java--Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Hello.java-  } Hello.java-} Hello.sh-#!/bin/sh-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-I-n.out

@@ -1,6 +1,6 @@-Hello.bat:2:echo "Hello World!"-Hello.java:1:import java.lang.*;-Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.bat:2:echo "Hello World!"+Hello.java:1:import java.lang.*;+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!");-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!"

tests/out/Hello_wsS-I-nC2.out

@@ -1,11 +1,11 @@ Hello.bat-1-#!/bin/sh-Hello.bat:2:echo "Hello World!"-Hello.java:1:import java.lang.*;+Hello.bat:2:echo "Hello World!"+Hello.java:1:import java.lang.*; Hello.java-2--Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!"); Hello.java-6-  } Hello.java-7-} Hello.sh-1-#!/bin/sh-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!"

tests/out/Hello_wsS-I-nkbT.out

@@ -1,6 +1,6 @@-Hello.bat:     2:  1:     10:	echo "Hello World!"-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  3:     76:	{ public static void main(String[] arg) Hello.java:     5: 25:    138:	  { System.out.println("Hello World!");-Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.sh:     2:  1:     10:	echo "Hello World!"

tests/out/Hello_wsS-I-nvC2.out

@@ -1,13 +1,13 @@ Hello.bat:1:#!/bin/sh-Hello.bat-2-echo "Hello World!"+Hello.bat-2-echo "Hello World!" Hello.java-1-import java.lang.*; Hello.java:2:-Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-3-public class Hello // prints a Hello World! greeting Hello.java-4-{ public static void main(String[] arg) Hello.java-5-  { System.out.println("Hello World!"); Hello.java:6:  } Hello.java:7:} Hello.sh:1:#!/bin/sh-Hello.sh-2-echo "Hello World!"+Hello.sh-2-echo "Hello World!" Hello.txt:1:Hello emptyline.txt:1:

tests/out/Hello_wsS-I-nvy.out

@@ -1,13 +1,13 @@ Hello.bat:1:#!/bin/sh-Hello.bat-2-echo "Hello World!"-Hello.java-1-import java.lang.*;+Hello.bat-2-echo "Hello World!"+Hello.java-1-import java.lang.*; Hello.java:2:-Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-3-public class Hello // prints a Hello World! greeting Hello.java-4-{ public static void main(String[] arg) Hello.java-5-  { System.out.println("Hello World!"); Hello.java:6:  } Hello.java:7:} Hello.sh:1:#!/bin/sh-Hello.sh-2-echo "Hello World!"+Hello.sh-2-echo "Hello World!" Hello.txt:1:Hello emptyline.txt:1:

tests/out/Hello_wsS-I-ny.out

@@ -1,13 +1,13 @@ Hello.bat-1-#!/bin/sh-Hello.bat:2:echo "Hello World!"-Hello.java:1:import java.lang.*;+Hello.bat:2:echo "Hello World!"+Hello.java:1:import java.lang.*; Hello.java-2--Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!"); Hello.java-6-  } Hello.java-7-} Hello.sh-1-#!/bin/sh-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!" Hello.txt-1-Hello emptyline.txt-1-

tests/out/Hello_wsS-I-unkbT.out

@@ -1,10 +1,10 @@-Hello.bat:     2:  1:     10:	echo "Hello World!"-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java+     3+ 14+     34+	public class Hello // prints a Hello World! greeting Hello.java+     3+ 23+     43+	public class Hello // prints a Hello World! greeting Hello.java+     3+ 32+     52+	public class Hello // prints a Hello World! greeting Hello.java:     4:  3:     76:	{ public static void main(String[] arg) Hello.java+     4+ 17+     90+	{ public static void main(String[] arg) Hello.java:     5: 25:    138:	  { System.out.println("Hello World!");-Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.sh:     2:  1:     10:	echo "Hello World!"

tests/out/Hello_wsS-I-vC2.out

@@ -1,13 +1,13 @@ Hello.bat:#!/bin/sh-Hello.bat-echo "Hello World!"+Hello.bat-echo "Hello World!" Hello.java-import java.lang.*; Hello.java:-Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-public class Hello // prints a Hello World! greeting Hello.java-{ public static void main(String[] arg) Hello.java-  { System.out.println("Hello World!"); Hello.java:  } Hello.java:} Hello.sh:#!/bin/sh-Hello.sh-echo "Hello World!"+Hello.sh-echo "Hello World!" Hello.txt:Hello emptyline.txt:

tests/out/Hello_wsS-I-vy.out

@@ -1,13 +1,13 @@ Hello.bat:#!/bin/sh-Hello.bat-echo "Hello World!"-Hello.java-import java.lang.*;+Hello.bat-echo "Hello World!"+Hello.java-import java.lang.*; Hello.java:-Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-public class Hello // prints a Hello World! greeting Hello.java-{ public static void main(String[] arg) Hello.java-  { System.out.println("Hello World!"); Hello.java:  } Hello.java:} Hello.sh:#!/bin/sh-Hello.sh-echo "Hello World!"+Hello.sh-echo "Hello World!" Hello.txt:Hello emptyline.txt:

tests/out/Hello_wsS-I-y.out

@@ -1,13 +1,13 @@ Hello.bat-#!/bin/sh-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*; Hello.java--Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Hello.java-  } Hello.java-} Hello.sh-#!/bin/sh-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!" Hello.txt-Hello emptyline.txt-

tests/out/Hello_wsS-I.out

@@ -1,6 +1,6 @@-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:public class Hello // prints a Hello World! greeting+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-IP.out

@@ -1,6 +1,6 @@-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:public class Hello // prints a Hello World! greeting+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-IPw.out

@@ -1,6 +1,6 @@-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:public class Hello // prints a Hello World! greeting+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-IPx.out

@@ -1 +1 @@-Hello.java:import java.lang.*;+Hello.java:import java.lang.*;

tests/out/Hello_wsS-Iw.out

@@ -1,6 +1,6 @@-Hello.bat:echo "Hello World!"-Hello.java:import java.lang.*;-Hello.java:public class Hello // prints a Hello World! greeting+Hello.bat:echo "Hello World!"+Hello.java:import java.lang.*;+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-Ix.out

@@ -1 +1 @@-Hello.java:import java.lang.*;+Hello.java:import java.lang.*;

tests/out/Hello_wsS-W-C2.out

@@ -1,5 +1,5 @@ Hello.bat-#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:echo "Hello World!" Hello.class- 00000010  -- -- -- -- -- -- -- --  00 13 00 14 07 00 15 07  |--------@S@TG@UG| 00000020  00 16 01 00 06 3c 69 6e  69 74 3e 01 00 03 28 29  |@VA@F<init>A@C()|@@ -33,9 +33,9 @@ 00000180  04 b1 00 00 00 01 00 0a  -- -- -- -- -- -- -- --  |D.@@@A@J--------| Hello.class- 00000180  -- -- -- -- -- -- -- --  00 00 00 0a -- -- -- --  |--------@@@J----|-Hello.java:import java.lang.*;+Hello.java:import java.lang.*; Hello.java--Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Hello.java-  }@@ -44,7 +44,7 @@ Hello.pdf- 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:4 0 obj+Hello.pdf:4 0 obj Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf-stream Hello.pdf-@@ -63,18 +63,18 @@ 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf-endstream Hello.pdf-endobj-Hello.pdf:5 0 obj+Hello.pdf:5 0 obj Hello.pdf-123 Hello.pdf-endobj-Hello.pdf:2 0 obj+Hello.pdf:2 0 obj Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf->> Hello.pdf-endobj-Hello.pdf:6 0 obj+Hello.pdf:6 0 obj Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf->> >> Hello.pdf-endobj-Hello.pdf:9 0 obj+Hello.pdf:9 0 obj Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf-stream Hello.pdf:@@ -158,31 +158,31 @@ -- Hello.pdf-endstream Hello.pdf-endobj-Hello.pdf:10 0 obj+Hello.pdf:10 0 obj Hello.pdf-1116 Hello.pdf-endobj-Hello.pdf:7 0 obj+Hello.pdf:7 0 obj Hello.pdf:[ /ICCBased 9 0 R ] Hello.pdf-endobj-Hello.pdf:3 0 obj+Hello.pdf:3 0 obj Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf-endobj-Hello.pdf:11 0 obj+Hello.pdf:11 0 obj Hello.pdf:<< /Type /Catalog /Pages 3 0 R >> Hello.pdf-endobj-Hello.pdf:8 0 obj+Hello.pdf:8 0 obj Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:0 0 602 ] >>+Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:0 0 602 ] >> Hello.pdf-endobj-Hello.pdf:12 0 obj+Hello.pdf:12 0 obj Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf->> Hello.pdf-endobj-Hello.pdf:13 0 obj+Hello.pdf:13 0 obj Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf-stream Hello.pdf:@@ -391,57 +391,57 @@ 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf-endstream Hello.pdf-endobj-Hello.pdf:14 0 obj+Hello.pdf:14 0 obj Hello.pdf-2734 Hello.pdf-endobj-Hello.pdf:15 0 obj+Hello.pdf:15 0 obj Hello.pdf-(Hello) Hello.pdf-endobj-Hello.pdf:16 0 obj+Hello.pdf:16 0 obj Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf-endobj-Hello.pdf:17 0 obj+Hello.pdf:17 0 obj Hello.pdf-(TextEdit) Hello.pdf-endobj-Hello.pdf:18 0 obj+Hello.pdf:18 0 obj Hello.pdf-(D:20200124010711Z00'00') Hello.pdf-endobj-Hello.pdf:19 0 obj+Hello.pdf:19 0 obj Hello.pdf-() Hello.pdf-endobj-Hello.pdf:20 0 obj+Hello.pdf:20 0 obj Hello.pdf-[ ] Hello.pdf-endobj-Hello.pdf:1 0 obj+Hello.pdf:1 0 obj Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf-endobj Hello.pdf-xref-Hello.pdf:0 21-Hello.pdf:0000000000 65535 f -Hello.pdf:0000005392 00000 n -Hello.pdf:0000000238 00000 n -Hello.pdf:0000001714 00000 n -Hello.pdf:0000000022 00000 n -Hello.pdf:0000000219 00000 n -Hello.pdf:0000000342 00000 n -Hello.pdf:0000001679 00000 n -Hello.pdf:0000001847 00000 n -Hello.pdf:0000000439 00000 n -Hello.pdf:0000001658 00000 n -Hello.pdf:0000001797 00000 n -Hello.pdf:0000002110 00000 n -Hello.pdf:0000002362 00000 n -Hello.pdf:0000005186 00000 n -Hello.pdf:0000005207 00000 n -Hello.pdf:0000005231 00000 n -Hello.pdf:0000005284 00000 n -Hello.pdf:0000005311 00000 n -Hello.pdf:0000005353 00000 n -Hello.pdf:0000005372 00000 n +Hello.pdf:0 21+Hello.pdf:0000000000 65535 f +Hello.pdf:0000005392 00000 n +Hello.pdf:0000000238 00000 n +Hello.pdf:0000001714 00000 n +Hello.pdf:0000000022 00000 n +Hello.pdf:0000000219 00000 n +Hello.pdf:0000000342 00000 n +Hello.pdf:0000001679 00000 n +Hello.pdf:0000001847 00000 n +Hello.pdf:0000000439 00000 n +Hello.pdf:0000001658 00000 n +Hello.pdf:0000001797 00000 n +Hello.pdf:0000002110 00000 n +Hello.pdf:0000002362 00000 n +Hello.pdf:0000005186 00000 n +Hello.pdf:0000005207 00000 n +Hello.pdf:0000005231 00000 n +Hello.pdf:0000005284 00000 n +Hello.pdf:0000005311 00000 n +Hello.pdf:0000005353 00000 n +Hello.pdf:0000005372 00000 n  Hello.pdf-trailer Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf-<8db88d3335070bd9583341583cf769a3> ] >> Hello.pdf-startxref Hello.sh-#!/bin/sh-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-W-n.out

@@ -1,4 +1,4 @@-Hello.bat:2:echo "Hello World!"+Hello.bat:2:echo "Hello World!" Hello.class:5: 00000070  -- -- -- -- -- -- -- --  -- -- 48 65 6c 6c 6f 2e  |----------Hello.| 00000080  6a 61 76 61 0c 00 07 00  08 07 00 17 0c 00 18 00  |javaL@G@HG@WL@X@|@@ -15,23 +15,23 @@ 00000130  00 06 00 00 00 00 00 02  00 01 00 07 00 08 00 01  |@F@@@@@B@A@G@H@A| 00000140  00 09 00 00 00 1d 00 01  00 01 00 00 00 05 2a b7  |@I@@@]@A@A@@@E*.| 00000150  00 01 b1 00 00 00 01 00  0a -- -- -- -- -- -- --  |@A.@@@A@J-------|-Hello.java:1:import java.lang.*;-Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:1:import java.lang.*;+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!");-Hello.pdf:3:4 0 obj+Hello.pdf:3:4 0 obj Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:7: 00000050  -- -- -- -- 02 31 14 44  7b bf e2 94 5a 98 bd 89  |----B1TD{...Z...| 00000060  79 98 56 11 6c 17 2e f8  01 61 2d 64 d7 65 cd ff  |y.VQlW..Aa-d.e..| 00000070  83 17 2c ac 86 99 39 0c  b3 31 b2 51 02 b9 46 97  |.W,...9L.1.QB.F.| 00000080  e2 a9 12 f3 99 90 5c 4c  59 0a -- -- -- -- -- --  |..R...\LYJ------|-Hello.pdf:11:5 0 obj-Hello.pdf:14:2 0 obj+Hello.pdf:11:5 0 obj+Hello.pdf:14:2 0 obj Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:18:6 0 obj+Hello.pdf:18:6 0 obj Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:22:9 0 obj+Hello.pdf:22:9 0 obj Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf:25: 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U|@@ -83,23 +83,23 @@ 000004a0  bf c1 a2 0b 6b 26 25 e6  5e 3f f7 4d 4f c2 43 75  |...Kk&%.^?.MO.Cu| 000004b0  45 7c f5 d6 9d ee eb e7  e8 78 32 4b 51 de aa 9d  |E|.......x2KQ...| 000004c0  59 92 d7 e4 fb f2 0a --  -- -- -- -- -- -- -- --  |Y.....J---------|-Hello.pdf:33:10 0 obj-Hello.pdf:36:7 0 obj+Hello.pdf:33:10 0 obj+Hello.pdf:36:7 0 obj Hello.pdf:37:[ /ICCBased 9 0 R ]-Hello.pdf:39:3 0 obj+Hello.pdf:39:3 0 obj Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:42:11 0 obj+Hello.pdf:42:11 0 obj Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:45:8 0 obj+Hello.pdf:45:8 0 obj Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:49:0 0 602 ] >>-Hello.pdf:51:12 0 obj+Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:49:0 0 602 ] >>+Hello.pdf:51:12 0 obj Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:57:13 0 obj+Hello.pdf:57:13 0 obj Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf:60: 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6|@@ -262,38 +262,38 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:81:14 0 obj-Hello.pdf:84:15 0 obj-Hello.pdf:87:16 0 obj+Hello.pdf:81:14 0 obj+Hello.pdf:84:15 0 obj+Hello.pdf:87:16 0 obj Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:90:17 0 obj-Hello.pdf:93:18 0 obj-Hello.pdf:96:19 0 obj-Hello.pdf:99:20 0 obj-Hello.pdf:102:1 0 obj+Hello.pdf:90:17 0 obj+Hello.pdf:93:18 0 obj+Hello.pdf:96:19 0 obj+Hello.pdf:99:20 0 obj+Hello.pdf:102:1 0 obj Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:107:0 21-Hello.pdf:108:0000000000 65535 f -Hello.pdf:109:0000005392 00000 n -Hello.pdf:110:0000000238 00000 n -Hello.pdf:111:0000001714 00000 n -Hello.pdf:112:0000000022 00000 n -Hello.pdf:113:0000000219 00000 n -Hello.pdf:114:0000000342 00000 n -Hello.pdf:115:0000001679 00000 n -Hello.pdf:116:0000001847 00000 n -Hello.pdf:117:0000000439 00000 n -Hello.pdf:118:0000001658 00000 n -Hello.pdf:119:0000001797 00000 n -Hello.pdf:120:0000002110 00000 n -Hello.pdf:121:0000002362 00000 n -Hello.pdf:122:0000005186 00000 n -Hello.pdf:123:0000005207 00000 n -Hello.pdf:124:0000005231 00000 n -Hello.pdf:125:0000005284 00000 n -Hello.pdf:126:0000005311 00000 n -Hello.pdf:127:0000005353 00000 n -Hello.pdf:128:0000005372 00000 n +Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:107:0 21+Hello.pdf:108:0000000000 65535 f +Hello.pdf:109:0000005392 00000 n +Hello.pdf:110:0000000238 00000 n +Hello.pdf:111:0000001714 00000 n +Hello.pdf:112:0000000022 00000 n +Hello.pdf:113:0000000219 00000 n +Hello.pdf:114:0000000342 00000 n +Hello.pdf:115:0000001679 00000 n +Hello.pdf:116:0000001847 00000 n +Hello.pdf:117:0000000439 00000 n +Hello.pdf:118:0000001658 00000 n +Hello.pdf:119:0000001797 00000 n +Hello.pdf:120:0000002110 00000 n +Hello.pdf:121:0000002362 00000 n +Hello.pdf:122:0000005186 00000 n +Hello.pdf:123:0000005207 00000 n +Hello.pdf:124:0000005231 00000 n +Hello.pdf:125:0000005284 00000 n +Hello.pdf:126:0000005311 00000 n +Hello.pdf:127:0000005353 00000 n +Hello.pdf:128:0000005372 00000 n  Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!"

tests/out/Hello_wsS-W-nC2.out

@@ -1,5 +1,5 @@ Hello.bat-1-#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:2:echo "Hello World!" Hello.class-3- 00000010  -- -- -- -- -- -- -- --  00 13 00 14 07 00 15 07  |--------@S@TG@UG| 00000020  00 16 01 00 06 3c 69 6e  69 74 3e 01 00 03 28 29  |@VA@F<init>A@C()|@@ -33,9 +33,9 @@ 00000180  04 b1 00 00 00 01 00 0a  -- -- -- -- -- -- -- --  |D.@@@A@J--------| Hello.class-7- 00000180  -- -- -- -- -- -- -- --  00 00 00 0a -- -- -- --  |--------@@@J----|-Hello.java:1:import java.lang.*;+Hello.java:1:import java.lang.*; Hello.java-2--Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!"); Hello.java-6-  }@@ -44,7 +44,7 @@ Hello.pdf-2- 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:3:4 0 obj+Hello.pdf:3:4 0 obj Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf-5-stream Hello.pdf-6-@@ -63,18 +63,18 @@ 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf-9-endstream Hello.pdf-10-endobj-Hello.pdf:11:5 0 obj+Hello.pdf:11:5 0 obj Hello.pdf-12-123 Hello.pdf-13-endobj-Hello.pdf:14:2 0 obj+Hello.pdf:14:2 0 obj Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf-16->> Hello.pdf-17-endobj-Hello.pdf:18:6 0 obj+Hello.pdf:18:6 0 obj Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf-20->> >> Hello.pdf-21-endobj-Hello.pdf:22:9 0 obj+Hello.pdf:22:9 0 obj Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf-24-stream Hello.pdf:25:@@ -158,31 +158,31 @@ -- Hello.pdf-31-endstream Hello.pdf-32-endobj-Hello.pdf:33:10 0 obj+Hello.pdf:33:10 0 obj Hello.pdf-34-1116 Hello.pdf-35-endobj-Hello.pdf:36:7 0 obj+Hello.pdf:36:7 0 obj Hello.pdf:37:[ /ICCBased 9 0 R ] Hello.pdf-38-endobj-Hello.pdf:39:3 0 obj+Hello.pdf:39:3 0 obj Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf-41-endobj-Hello.pdf:42:11 0 obj+Hello.pdf:42:11 0 obj Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >> Hello.pdf-44-endobj-Hello.pdf:45:8 0 obj+Hello.pdf:45:8 0 obj Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:49:0 0 602 ] >>+Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:49:0 0 602 ] >> Hello.pdf-50-endobj-Hello.pdf:51:12 0 obj+Hello.pdf:51:12 0 obj Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf-55->> Hello.pdf-56-endobj-Hello.pdf:57:13 0 obj+Hello.pdf:57:13 0 obj Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf-59-stream Hello.pdf:60:@@ -391,57 +391,57 @@ 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf-79-endstream Hello.pdf-80-endobj-Hello.pdf:81:14 0 obj+Hello.pdf:81:14 0 obj Hello.pdf-82-2734 Hello.pdf-83-endobj-Hello.pdf:84:15 0 obj+Hello.pdf:84:15 0 obj Hello.pdf-85-(Hello) Hello.pdf-86-endobj-Hello.pdf:87:16 0 obj+Hello.pdf:87:16 0 obj Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf-89-endobj-Hello.pdf:90:17 0 obj+Hello.pdf:90:17 0 obj Hello.pdf-91-(TextEdit) Hello.pdf-92-endobj-Hello.pdf:93:18 0 obj+Hello.pdf:93:18 0 obj Hello.pdf-94-(D:20200124010711Z00'00') Hello.pdf-95-endobj-Hello.pdf:96:19 0 obj+Hello.pdf:96:19 0 obj Hello.pdf-97-() Hello.pdf-98-endobj-Hello.pdf:99:20 0 obj+Hello.pdf:99:20 0 obj Hello.pdf-100-[ ] Hello.pdf-101-endobj-Hello.pdf:102:1 0 obj+Hello.pdf:102:1 0 obj Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf-105-endobj Hello.pdf-106-xref-Hello.pdf:107:0 21-Hello.pdf:108:0000000000 65535 f -Hello.pdf:109:0000005392 00000 n -Hello.pdf:110:0000000238 00000 n -Hello.pdf:111:0000001714 00000 n -Hello.pdf:112:0000000022 00000 n -Hello.pdf:113:0000000219 00000 n -Hello.pdf:114:0000000342 00000 n -Hello.pdf:115:0000001679 00000 n -Hello.pdf:116:0000001847 00000 n -Hello.pdf:117:0000000439 00000 n -Hello.pdf:118:0000001658 00000 n -Hello.pdf:119:0000001797 00000 n -Hello.pdf:120:0000002110 00000 n -Hello.pdf:121:0000002362 00000 n -Hello.pdf:122:0000005186 00000 n -Hello.pdf:123:0000005207 00000 n -Hello.pdf:124:0000005231 00000 n -Hello.pdf:125:0000005284 00000 n -Hello.pdf:126:0000005311 00000 n -Hello.pdf:127:0000005353 00000 n -Hello.pdf:128:0000005372 00000 n +Hello.pdf:107:0 21+Hello.pdf:108:0000000000 65535 f +Hello.pdf:109:0000005392 00000 n +Hello.pdf:110:0000000238 00000 n +Hello.pdf:111:0000001714 00000 n +Hello.pdf:112:0000000022 00000 n +Hello.pdf:113:0000000219 00000 n +Hello.pdf:114:0000000342 00000 n +Hello.pdf:115:0000001679 00000 n +Hello.pdf:116:0000001847 00000 n +Hello.pdf:117:0000000439 00000 n +Hello.pdf:118:0000001658 00000 n +Hello.pdf:119:0000001797 00000 n +Hello.pdf:120:0000002110 00000 n +Hello.pdf:121:0000002362 00000 n +Hello.pdf:122:0000005186 00000 n +Hello.pdf:123:0000005207 00000 n +Hello.pdf:124:0000005231 00000 n +Hello.pdf:125:0000005284 00000 n +Hello.pdf:126:0000005311 00000 n +Hello.pdf:127:0000005353 00000 n +Hello.pdf:128:0000005372 00000 n  Hello.pdf-129-trailer Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf-131-<8db88d3335070bd9583341583cf769a3> ] >> Hello.pdf-132-startxref Hello.sh-1-#!/bin/sh-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!"

tests/out/Hello_wsS-W-nkbT.out

@@ -1,4 +1,4 @@-Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.bat:     2:  1:     10:	echo "Hello World!" Hello.class:     5:  7:    128:	 00000070  -- -- -- -- -- -- -- --  -- -- 48 65 6c 6c 6f 2e  |----------Hello.| 00000080  6a 61 76 61 0c 00 07 00  08 07 00 17 0c 00 18 00  |javaL@G@HG@WL@X@|@@ -15,23 +15,23 @@ 00000130  00 06 00 00 00 00 00 02  00 01 00 07 00 08 00 01  |@F@@@@@B@A@G@H@A| 00000140  00 09 00 00 00 1d 00 01  00 01 00 00 00 05 2a b7  |@I@@@]@A@A@@@E*.| 00000150  00 01 b1 00 00 00 01 00  0a -- -- -- -- -- -- --  |@A.@@@A@J-------|-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  3:     76:	{ public static void main(String[] arg) Hello.java:     5: 25:    138:	  { System.out.println("Hello World!");-Hello.pdf:     3:  1:     22:	4 0 obj+Hello.pdf:     3:  1:     22:	4 0 obj Hello.pdf:     4:  5:     34:	<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:     7: 25:    118:	 00000050  -- -- -- -- 02 31 14 44  7b bf e2 94 5a 98 bd 89  |----B1TD{...Z...| 00000060  79 98 56 11 6c 17 2e f8  01 61 2d 64 d7 65 cd ff  |y.VQlW..Aa-d.e..| 00000070  83 17 2c ac 86 99 39 0c  b3 31 b2 51 02 b9 46 97  |.W,...9L.1.QB.F.| 00000080  e2 a9 12 f3 99 90 5c 4c  59 0a -- -- -- -- -- --  |..R...\LYJ------|-Hello.pdf:    11:  1:    219:	5 0 obj-Hello.pdf:    14:  1:    238:	2 0 obj+Hello.pdf:    11:  1:    219:	5 0 obj+Hello.pdf:    14:  1:    238:	2 0 obj Hello.pdf:    15:  5:    250:	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:    18:  1:    342:	6 0 obj+Hello.pdf:    18:  1:    342:	6 0 obj Hello.pdf:    19:  5:    354:	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:    22:  1:    439:	9 0 obj+Hello.pdf:    22:  1:    439:	9 0 obj Hello.pdf:    23:  5:    451:	<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf:    25: 19:    547:	 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U|@@ -83,23 +83,23 @@ 000004a0  bf c1 a2 0b 6b 26 25 e6  5e 3f f7 4d 4f c2 43 75  |...Kk&%.^?.MO.Cu| 000004b0  45 7c f5 d6 9d ee eb e7  e8 78 32 4b 51 de aa 9d  |E|.......x2KQ...| 000004c0  59 92 d7 e4 fb f2 0a --  -- -- -- -- -- -- -- --  |Y.....J---------|-Hello.pdf:    33:  1:   1658:	10 0 obj-Hello.pdf:    36:  1:   1679:	7 0 obj+Hello.pdf:    33:  1:   1658:	10 0 obj+Hello.pdf:    36:  1:   1679:	7 0 obj Hello.pdf:    37:  4:   1690:	[ /ICCBased 9 0 R ]-Hello.pdf:    39:  1:   1714:	3 0 obj+Hello.pdf:    39:  1:   1714:	3 0 obj Hello.pdf:    40:  5:   1726:	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:    42:  1:   1797:	11 0 obj+Hello.pdf:    42:  1:   1797:	11 0 obj Hello.pdf:    43:  5:   1810:	<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:    45:  1:   1847:	8 0 obj+Hello.pdf:    45:  1:   1847:	8 0 obj Hello.pdf:    46:  5:   1859:	<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:    47:  1:   1937:	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:    48:  1:   2014:	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:    49:  1:   2090:	0 0 602 ] >>-Hello.pdf:    51:  1:   2110:	12 0 obj+Hello.pdf:    47:  1:   1937:	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:    48:  1:   2014:	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:    49:  1:   2090:	0 0 602 ] >>+Hello.pdf:    51:  1:   2110:	12 0 obj Hello.pdf:    52:  5:   2123:	<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf:    53:  3:   2198:	[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf:    54:  2:   2274:	/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:    57:  1:   2362:	13 0 obj+Hello.pdf:    57:  1:   2362:	13 0 obj Hello.pdf:    58:  5:   2375:	<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf:    60: 33:   2475:	 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6|@@ -262,38 +262,38 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:    81:  1:   5186:	14 0 obj-Hello.pdf:    84:  1:   5207:	15 0 obj-Hello.pdf:    87:  1:   5231:	16 0 obj+Hello.pdf:    81:  1:   5186:	14 0 obj+Hello.pdf:    84:  1:   5207:	15 0 obj+Hello.pdf:    87:  1:   5231:	16 0 obj Hello.pdf:    88:  2:   5241:	(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:    90:  1:   5284:	17 0 obj-Hello.pdf:    93:  1:   5311:	18 0 obj-Hello.pdf:    96:  1:   5353:	19 0 obj-Hello.pdf:    99:  1:   5372:	20 0 obj-Hello.pdf:   102:  1:   5392:	1 0 obj+Hello.pdf:    90:  1:   5284:	17 0 obj+Hello.pdf:    93:  1:   5311:	18 0 obj+Hello.pdf:    96:  1:   5353:	19 0 obj+Hello.pdf:    99:  1:   5372:	20 0 obj+Hello.pdf:   102:  1:   5392:	1 0 obj Hello.pdf:   103:  5:   5404:	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:   104:  1:   5480:	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:   107:  1:   5541:	0 21-Hello.pdf:   108:  1:   5546:	0000000000 65535 f -Hello.pdf:   109:  1:   5566:	0000005392 00000 n -Hello.pdf:   110:  1:   5586:	0000000238 00000 n -Hello.pdf:   111:  1:   5606:	0000001714 00000 n -Hello.pdf:   112:  1:   5626:	0000000022 00000 n -Hello.pdf:   113:  1:   5646:	0000000219 00000 n -Hello.pdf:   114:  1:   5666:	0000000342 00000 n -Hello.pdf:   115:  1:   5686:	0000001679 00000 n -Hello.pdf:   116:  1:   5706:	0000001847 00000 n -Hello.pdf:   117:  1:   5726:	0000000439 00000 n -Hello.pdf:   118:  1:   5746:	0000001658 00000 n -Hello.pdf:   119:  1:   5766:	0000001797 00000 n -Hello.pdf:   120:  1:   5786:	0000002110 00000 n -Hello.pdf:   121:  1:   5806:	0000002362 00000 n -Hello.pdf:   122:  1:   5826:	0000005186 00000 n -Hello.pdf:   123:  1:   5846:	0000005207 00000 n -Hello.pdf:   124:  1:   5866:	0000005231 00000 n -Hello.pdf:   125:  1:   5886:	0000005284 00000 n -Hello.pdf:   126:  1:   5906:	0000005311 00000 n -Hello.pdf:   127:  1:   5926:	0000005353 00000 n -Hello.pdf:   128:  1:   5946:	0000005372 00000 n +Hello.pdf:   104:  1:   5480:	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:   107:  1:   5541:	0 21+Hello.pdf:   108:  1:   5546:	0000000000 65535 f +Hello.pdf:   109:  1:   5566:	0000005392 00000 n +Hello.pdf:   110:  1:   5586:	0000000238 00000 n +Hello.pdf:   111:  1:   5606:	0000001714 00000 n +Hello.pdf:   112:  1:   5626:	0000000022 00000 n +Hello.pdf:   113:  1:   5646:	0000000219 00000 n +Hello.pdf:   114:  1:   5666:	0000000342 00000 n +Hello.pdf:   115:  1:   5686:	0000001679 00000 n +Hello.pdf:   116:  1:   5706:	0000001847 00000 n +Hello.pdf:   117:  1:   5726:	0000000439 00000 n +Hello.pdf:   118:  1:   5746:	0000001658 00000 n +Hello.pdf:   119:  1:   5766:	0000001797 00000 n +Hello.pdf:   120:  1:   5786:	0000002110 00000 n +Hello.pdf:   121:  1:   5806:	0000002362 00000 n +Hello.pdf:   122:  1:   5826:	0000005186 00000 n +Hello.pdf:   123:  1:   5846:	0000005207 00000 n +Hello.pdf:   124:  1:   5866:	0000005231 00000 n +Hello.pdf:   125:  1:   5886:	0000005284 00000 n +Hello.pdf:   126:  1:   5906:	0000005311 00000 n +Hello.pdf:   127:  1:   5926:	0000005353 00000 n +Hello.pdf:   128:  1:   5946:	0000005372 00000 n  Hello.pdf:   130:  5:   5978:	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.sh:     2:  1:     10:	echo "Hello World!"

tests/out/Hello_wsS-W-nvC2.out

@@ -1,5 +1,5 @@ Hello.bat:1:#!/bin/sh-Hello.bat-2-echo "Hello World!"+Hello.bat-2-echo "Hello World!" Hello.class:1: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:2:@@ -43,7 +43,7 @@ 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N| Hello.java-1-import java.lang.*; Hello.java:2:-Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-3-public class Hello // prints a Hello World! greeting Hello.java-4-{ public static void main(String[] arg) Hello.java-5-  { System.out.println("Hello World!"); Hello.java:6:  }@@ -52,7 +52,7 @@ Hello.pdf:2: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf-3-4 0 obj+Hello.pdf-3-4 0 obj Hello.pdf-4-<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:5:stream Hello.pdf:6:@@ -71,18 +71,18 @@ 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf:9:endstream Hello.pdf:10:endobj-Hello.pdf-11-5 0 obj+Hello.pdf-11-5 0 obj Hello.pdf:12:123 Hello.pdf:13:endobj-Hello.pdf-14-2 0 obj+Hello.pdf-14-2 0 obj Hello.pdf-15-<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf:16:>> Hello.pdf:17:endobj-Hello.pdf-18-6 0 obj+Hello.pdf-18-6 0 obj Hello.pdf-19-<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf:20:>> >> Hello.pdf:21:endobj-Hello.pdf-22-9 0 obj+Hello.pdf-22-9 0 obj Hello.pdf-23-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf:24:stream Hello.pdf-25-@@ -169,31 +169,31 @@ 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf:31:endstream Hello.pdf:32:endobj-Hello.pdf-33-10 0 obj+Hello.pdf-33-10 0 obj Hello.pdf:34:1116 Hello.pdf:35:endobj-Hello.pdf-36-7 0 obj+Hello.pdf-36-7 0 obj Hello.pdf-37-[ /ICCBased 9 0 R ] Hello.pdf:38:endobj-Hello.pdf-39-3 0 obj+Hello.pdf-39-3 0 obj Hello.pdf-40-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf:41:endobj-Hello.pdf-42-11 0 obj+Hello.pdf-42-11 0 obj Hello.pdf-43-<< /Type /Catalog /Pages 3 0 R >> Hello.pdf:44:endobj-Hello.pdf-45-8 0 obj+Hello.pdf-45-8 0 obj Hello.pdf-46-<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor -- Hello.pdf-48-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602 Hello.pdf-49-0 0 602 ] >> Hello.pdf:50:endobj-Hello.pdf-51-12 0 obj+Hello.pdf-51-12 0 obj Hello.pdf-52-<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf-53-[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf-54-/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf:55:>> Hello.pdf:56:endobj-Hello.pdf-57-13 0 obj+Hello.pdf-57-13 0 obj Hello.pdf-58-<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf:59:stream Hello.pdf-60-@@ -407,34 +407,34 @@ 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:79:endstream Hello.pdf:80:endobj-Hello.pdf-81-14 0 obj+Hello.pdf-81-14 0 obj Hello.pdf:82:2734 Hello.pdf:83:endobj-Hello.pdf-84-15 0 obj+Hello.pdf-84-15 0 obj Hello.pdf:85:(Hello) Hello.pdf:86:endobj-Hello.pdf-87-16 0 obj+Hello.pdf-87-16 0 obj Hello.pdf-88-(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf:89:endobj-Hello.pdf-90-17 0 obj+Hello.pdf-90-17 0 obj Hello.pdf:91:(TextEdit) Hello.pdf:92:endobj-Hello.pdf-93-18 0 obj+Hello.pdf-93-18 0 obj Hello.pdf:94:(D:20200124010711Z00'00') Hello.pdf:95:endobj-Hello.pdf-96-19 0 obj+Hello.pdf-96-19 0 obj Hello.pdf:97:() Hello.pdf:98:endobj-Hello.pdf-99-20 0 obj+Hello.pdf-99-20 0 obj Hello.pdf:100:[ ] Hello.pdf:101:endobj-Hello.pdf-102-1 0 obj+Hello.pdf-102-1 0 obj Hello.pdf-103-<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate Hello.pdf-104-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf:105:endobj Hello.pdf:106:xref-Hello.pdf-107-0 21-Hello.pdf-108-0000000000 65535 f +Hello.pdf-107-0 21+Hello.pdf-108-0000000000 65535 f  -- Hello.pdf-127-0000005353 00000 n  Hello.pdf-128-0000005372 00000 n @@ -445,6 +445,6 @@ Hello.pdf:133:5536 Hello.pdf:134:%%EOF Hello.sh:1:#!/bin/sh-Hello.sh-2-echo "Hello World!"+Hello.sh-2-echo "Hello World!" Hello.txt:1:Hello emptyline.txt:1:

tests/out/Hello_wsS-W-nvy.out

@@ -1,5 +1,5 @@ Hello.bat:1:#!/bin/sh-Hello.bat-2-echo "Hello World!"+Hello.bat-2-echo "Hello World!" Hello.class:1: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:2:@@ -41,9 +41,9 @@ Hello.class:8: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java-1-import java.lang.*;+Hello.java-1-import java.lang.*; Hello.java:2:-Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-3-public class Hello // prints a Hello World! greeting Hello.java-4-{ public static void main(String[] arg) Hello.java-5-  { System.out.println("Hello World!"); Hello.java:6:  }@@ -52,7 +52,7 @@ Hello.pdf:2: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf-3-4 0 obj+Hello.pdf-3-4 0 obj Hello.pdf-4-<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:5:stream Hello.pdf:6:@@ -71,18 +71,18 @@ 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf:9:endstream Hello.pdf:10:endobj-Hello.pdf-11-5 0 obj+Hello.pdf-11-5 0 obj Hello.pdf:12:123 Hello.pdf:13:endobj-Hello.pdf-14-2 0 obj+Hello.pdf-14-2 0 obj Hello.pdf-15-<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf:16:>> Hello.pdf:17:endobj-Hello.pdf-18-6 0 obj+Hello.pdf-18-6 0 obj Hello.pdf-19-<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf:20:>> >> Hello.pdf:21:endobj-Hello.pdf-22-9 0 obj+Hello.pdf-22-9 0 obj Hello.pdf-23-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf:24:stream Hello.pdf-25-@@ -169,31 +169,31 @@ 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf:31:endstream Hello.pdf:32:endobj-Hello.pdf-33-10 0 obj+Hello.pdf-33-10 0 obj Hello.pdf:34:1116 Hello.pdf:35:endobj-Hello.pdf-36-7 0 obj+Hello.pdf-36-7 0 obj Hello.pdf-37-[ /ICCBased 9 0 R ] Hello.pdf:38:endobj-Hello.pdf-39-3 0 obj+Hello.pdf-39-3 0 obj Hello.pdf-40-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf:41:endobj-Hello.pdf-42-11 0 obj+Hello.pdf-42-11 0 obj Hello.pdf-43-<< /Type /Catalog /Pages 3 0 R >> Hello.pdf:44:endobj-Hello.pdf-45-8 0 obj+Hello.pdf-45-8 0 obj Hello.pdf-46-<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf-47-12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf-48-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf-49-0 0 602 ] >>+Hello.pdf-47-12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf-48-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf-49-0 0 602 ] >> Hello.pdf:50:endobj-Hello.pdf-51-12 0 obj+Hello.pdf-51-12 0 obj Hello.pdf-52-<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf-53-[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf-54-/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf:55:>> Hello.pdf:56:endobj-Hello.pdf-57-13 0 obj+Hello.pdf-57-13 0 obj Hello.pdf-58-<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf:59:stream Hello.pdf-60-@@ -407,54 +407,54 @@ 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:79:endstream Hello.pdf:80:endobj-Hello.pdf-81-14 0 obj+Hello.pdf-81-14 0 obj Hello.pdf:82:2734 Hello.pdf:83:endobj-Hello.pdf-84-15 0 obj+Hello.pdf-84-15 0 obj Hello.pdf:85:(Hello) Hello.pdf:86:endobj-Hello.pdf-87-16 0 obj+Hello.pdf-87-16 0 obj Hello.pdf-88-(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf:89:endobj-Hello.pdf-90-17 0 obj+Hello.pdf-90-17 0 obj Hello.pdf:91:(TextEdit) Hello.pdf:92:endobj-Hello.pdf-93-18 0 obj+Hello.pdf-93-18 0 obj Hello.pdf:94:(D:20200124010711Z00'00') Hello.pdf:95:endobj-Hello.pdf-96-19 0 obj+Hello.pdf-96-19 0 obj Hello.pdf:97:() Hello.pdf:98:endobj-Hello.pdf-99-20 0 obj+Hello.pdf-99-20 0 obj Hello.pdf:100:[ ] Hello.pdf:101:endobj-Hello.pdf-102-1 0 obj+Hello.pdf-102-1 0 obj Hello.pdf-103-<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf-104-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf-104-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf:105:endobj Hello.pdf:106:xref-Hello.pdf-107-0 21-Hello.pdf-108-0000000000 65535 f -Hello.pdf-109-0000005392 00000 n -Hello.pdf-110-0000000238 00000 n -Hello.pdf-111-0000001714 00000 n -Hello.pdf-112-0000000022 00000 n -Hello.pdf-113-0000000219 00000 n -Hello.pdf-114-0000000342 00000 n -Hello.pdf-115-0000001679 00000 n -Hello.pdf-116-0000001847 00000 n -Hello.pdf-117-0000000439 00000 n -Hello.pdf-118-0000001658 00000 n -Hello.pdf-119-0000001797 00000 n -Hello.pdf-120-0000002110 00000 n -Hello.pdf-121-0000002362 00000 n -Hello.pdf-122-0000005186 00000 n -Hello.pdf-123-0000005207 00000 n -Hello.pdf-124-0000005231 00000 n -Hello.pdf-125-0000005284 00000 n -Hello.pdf-126-0000005311 00000 n -Hello.pdf-127-0000005353 00000 n -Hello.pdf-128-0000005372 00000 n +Hello.pdf-107-0 21+Hello.pdf-108-0000000000 65535 f +Hello.pdf-109-0000005392 00000 n +Hello.pdf-110-0000000238 00000 n +Hello.pdf-111-0000001714 00000 n +Hello.pdf-112-0000000022 00000 n +Hello.pdf-113-0000000219 00000 n +Hello.pdf-114-0000000342 00000 n +Hello.pdf-115-0000001679 00000 n +Hello.pdf-116-0000001847 00000 n +Hello.pdf-117-0000000439 00000 n +Hello.pdf-118-0000001658 00000 n +Hello.pdf-119-0000001797 00000 n +Hello.pdf-120-0000002110 00000 n +Hello.pdf-121-0000002362 00000 n +Hello.pdf-122-0000005186 00000 n +Hello.pdf-123-0000005207 00000 n +Hello.pdf-124-0000005231 00000 n +Hello.pdf-125-0000005284 00000 n +Hello.pdf-126-0000005311 00000 n +Hello.pdf-127-0000005353 00000 n +Hello.pdf-128-0000005372 00000 n  Hello.pdf:129:trailer Hello.pdf-130-<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf:131:<8db88d3335070bd9583341583cf769a3> ] >>@@ -462,6 +462,6 @@ Hello.pdf:133:5536 Hello.pdf:134:%%EOF Hello.sh:1:#!/bin/sh-Hello.sh-2-echo "Hello World!"+Hello.sh-2-echo "Hello World!" Hello.txt:1:Hello emptyline.txt:1:

tests/out/Hello_wsS-W-ny.out

@@ -1,5 +1,5 @@ Hello.bat-1-#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:2:echo "Hello World!" Hello.class-1- 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class-2-@@ -41,9 +41,9 @@ Hello.class-8- 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:1:import java.lang.*;+Hello.java:1:import java.lang.*; Hello.java-2--Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!"); Hello.java-6-  }@@ -52,7 +52,7 @@ Hello.pdf-2- 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:3:4 0 obj+Hello.pdf:3:4 0 obj Hello.pdf:4:<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf-5-stream Hello.pdf-6-@@ -71,18 +71,18 @@ 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf-9-endstream Hello.pdf-10-endobj-Hello.pdf:11:5 0 obj+Hello.pdf:11:5 0 obj Hello.pdf-12-123 Hello.pdf-13-endobj-Hello.pdf:14:2 0 obj+Hello.pdf:14:2 0 obj Hello.pdf:15:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf-16->> Hello.pdf-17-endobj-Hello.pdf:18:6 0 obj+Hello.pdf:18:6 0 obj Hello.pdf:19:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf-20->> >> Hello.pdf-21-endobj-Hello.pdf:22:9 0 obj+Hello.pdf:22:9 0 obj Hello.pdf:23:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf-24-stream Hello.pdf:25:@@ -169,31 +169,31 @@ 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf-31-endstream Hello.pdf-32-endobj-Hello.pdf:33:10 0 obj+Hello.pdf:33:10 0 obj Hello.pdf-34-1116 Hello.pdf-35-endobj-Hello.pdf:36:7 0 obj+Hello.pdf:36:7 0 obj Hello.pdf:37:[ /ICCBased 9 0 R ] Hello.pdf-38-endobj-Hello.pdf:39:3 0 obj+Hello.pdf:39:3 0 obj Hello.pdf:40:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf-41-endobj-Hello.pdf:42:11 0 obj+Hello.pdf:42:11 0 obj Hello.pdf:43:<< /Type /Catalog /Pages 3 0 R >> Hello.pdf-44-endobj-Hello.pdf:45:8 0 obj+Hello.pdf:45:8 0 obj Hello.pdf:46:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:49:0 0 602 ] >>+Hello.pdf:47:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:48:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:49:0 0 602 ] >> Hello.pdf-50-endobj-Hello.pdf:51:12 0 obj+Hello.pdf:51:12 0 obj Hello.pdf:52:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf:53:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf:54:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf-55->> Hello.pdf-56-endobj-Hello.pdf:57:13 0 obj+Hello.pdf:57:13 0 obj Hello.pdf:58:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf-59-stream Hello.pdf:60:@@ -407,54 +407,54 @@ 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf-79-endstream Hello.pdf-80-endobj-Hello.pdf:81:14 0 obj+Hello.pdf:81:14 0 obj Hello.pdf-82-2734 Hello.pdf-83-endobj-Hello.pdf:84:15 0 obj+Hello.pdf:84:15 0 obj Hello.pdf-85-(Hello) Hello.pdf-86-endobj-Hello.pdf:87:16 0 obj+Hello.pdf:87:16 0 obj Hello.pdf:88:(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf-89-endobj-Hello.pdf:90:17 0 obj+Hello.pdf:90:17 0 obj Hello.pdf-91-(TextEdit) Hello.pdf-92-endobj-Hello.pdf:93:18 0 obj+Hello.pdf:93:18 0 obj Hello.pdf-94-(D:20200124010711Z00'00') Hello.pdf-95-endobj-Hello.pdf:96:19 0 obj+Hello.pdf:96:19 0 obj Hello.pdf-97-() Hello.pdf-98-endobj-Hello.pdf:99:20 0 obj+Hello.pdf:99:20 0 obj Hello.pdf-100-[ ] Hello.pdf-101-endobj-Hello.pdf:102:1 0 obj+Hello.pdf:102:1 0 obj Hello.pdf:103:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:104:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf-105-endobj Hello.pdf-106-xref-Hello.pdf:107:0 21-Hello.pdf:108:0000000000 65535 f -Hello.pdf:109:0000005392 00000 n -Hello.pdf:110:0000000238 00000 n -Hello.pdf:111:0000001714 00000 n -Hello.pdf:112:0000000022 00000 n -Hello.pdf:113:0000000219 00000 n -Hello.pdf:114:0000000342 00000 n -Hello.pdf:115:0000001679 00000 n -Hello.pdf:116:0000001847 00000 n -Hello.pdf:117:0000000439 00000 n -Hello.pdf:118:0000001658 00000 n -Hello.pdf:119:0000001797 00000 n -Hello.pdf:120:0000002110 00000 n -Hello.pdf:121:0000002362 00000 n -Hello.pdf:122:0000005186 00000 n -Hello.pdf:123:0000005207 00000 n -Hello.pdf:124:0000005231 00000 n -Hello.pdf:125:0000005284 00000 n -Hello.pdf:126:0000005311 00000 n -Hello.pdf:127:0000005353 00000 n -Hello.pdf:128:0000005372 00000 n +Hello.pdf:107:0 21+Hello.pdf:108:0000000000 65535 f +Hello.pdf:109:0000005392 00000 n +Hello.pdf:110:0000000238 00000 n +Hello.pdf:111:0000001714 00000 n +Hello.pdf:112:0000000022 00000 n +Hello.pdf:113:0000000219 00000 n +Hello.pdf:114:0000000342 00000 n +Hello.pdf:115:0000001679 00000 n +Hello.pdf:116:0000001847 00000 n +Hello.pdf:117:0000000439 00000 n +Hello.pdf:118:0000001658 00000 n +Hello.pdf:119:0000001797 00000 n +Hello.pdf:120:0000002110 00000 n +Hello.pdf:121:0000002362 00000 n +Hello.pdf:122:0000005186 00000 n +Hello.pdf:123:0000005207 00000 n +Hello.pdf:124:0000005231 00000 n +Hello.pdf:125:0000005284 00000 n +Hello.pdf:126:0000005311 00000 n +Hello.pdf:127:0000005353 00000 n +Hello.pdf:128:0000005372 00000 n  Hello.pdf-129-trailer Hello.pdf:130:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf-131-<8db88d3335070bd9583341583cf769a3> ] >>@@ -462,6 +462,6 @@ Hello.pdf-133-5536 Hello.pdf-134-%%EOF Hello.sh-1-#!/bin/sh-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!" Hello.txt-1-Hello emptyline.txt-1-

tests/out/Hello_wsS-W-unkbT.out

@@ -1,4 +1,4 @@-Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.bat:     2:  1:     10:	echo "Hello World!" Hello.class:     5:  7:    128:	 00000070  -- -- -- -- -- -- -- --  -- -- 48 65 6c 6c 6f 2e  |----------Hello.| 00000080  6a 61 76 61 0c 00 07 00  08 07 00 17 0c 00 18 00  |javaL@G@HG@WL@X@|@@ -31,15 +31,15 @@ 00000130  00 06 00 00 00 00 00 02  00 01 00 07 00 08 00 01  |@F@@@@@B@A@G@H@A| 00000140  00 09 00 00 00 1d 00 01  00 01 00 00 00 05 2a b7  |@I@@@]@A@A@@@E*.| 00000150  00 01 b1 00 00 00 01 00  0a -- -- -- -- -- -- --  |@A.@@@A@J-------|-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java+     3+ 14+     34+	public class Hello // prints a Hello World! greeting Hello.java+     3+ 23+     43+	public class Hello // prints a Hello World! greeting Hello.java+     3+ 32+     52+	public class Hello // prints a Hello World! greeting Hello.java:     4:  3:     76:	{ public static void main(String[] arg) Hello.java+     4+ 17+     90+	{ public static void main(String[] arg) Hello.java:     5: 25:    138:	  { System.out.println("Hello World!");-Hello.pdf:     3:  1:     22:	4 0 obj+Hello.pdf:     3:  1:     22:	4 0 obj Hello.pdf:     4:  5:     34:	<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf+     4+ 14+     43+	<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf+     4+ 19+     48+	<< /Length 5 0 R /Filter /FlateDecode >>@@ -48,8 +48,8 @@ 00000060  79 98 56 11 6c 17 2e f8  01 61 2d 64 d7 65 cd ff  |y.VQlW..Aa-d.e..| 00000070  83 17 2c ac 86 99 39 0c  b3 31 b2 51 02 b9 46 97  |.W,...9L.1.QB.F.| 00000080  e2 a9 12 f3 99 90 5c 4c  59 0a -- -- -- -- -- --  |..R...\LYJ------|-Hello.pdf:    11:  1:    219:	5 0 obj-Hello.pdf:    14:  1:    238:	2 0 obj+Hello.pdf:    11:  1:    219:	5 0 obj+Hello.pdf:    14:  1:    238:	2 0 obj Hello.pdf:    15:  5:    250:	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf+    15+ 17+    262+	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf+    15+ 26+    271+	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]@@ -59,7 +59,7 @@ Hello.pdf+    15+ 59+    304+	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf+    15+ 64+    309+	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf+    15+ 76+    321+	<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:    18:  1:    342:	6 0 obj+Hello.pdf:    18:  1:    342:	6 0 obj Hello.pdf:    19:  5:    354:	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf+    19+ 16+    365+	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf+    19+ 29+    378+	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R@@ -68,7 +68,7 @@ Hello.pdf+    19+ 58+    407+	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf+    19+ 67+    416+	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf+    19+ 73+    422+	<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:    22:  1:    439:	9 0 obj+Hello.pdf:    22:  1:    439:	9 0 obj Hello.pdf:    23:  5:    451:	<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf+    23+ 15+    461+	<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf+    23+ 20+    466+	<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >>@@ -124,11 +124,11 @@ 000004a0  bf c1 a2 0b 6b 26 25 e6  5e 3f f7 4d 4f c2 43 75  |...Kk&%.^?.MO.Cu| 000004b0  45 7c f5 d6 9d ee eb e7  e8 78 32 4b 51 de aa 9d  |E|.......x2KQ...| 000004c0  59 92 d7 e4 fb f2 0a --  -- -- -- -- -- -- -- --  |Y.....J---------|-Hello.pdf:    33:  1:   1658:	10 0 obj-Hello.pdf:    36:  1:   1679:	7 0 obj+Hello.pdf:    33:  1:   1658:	10 0 obj+Hello.pdf:    36:  1:   1679:	7 0 obj Hello.pdf:    37:  4:   1690:	[ /ICCBased 9 0 R ] Hello.pdf+    37+ 15+   1701+	[ /ICCBased 9 0 R ]-Hello.pdf:    39:  1:   1714:	3 0 obj+Hello.pdf:    39:  1:   1714:	3 0 obj Hello.pdf:    40:  5:   1726:	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf+    40+ 18+   1739+	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf+    40+ 30+   1751+	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>@@ -136,20 +136,20 @@ Hello.pdf+    40+ 51+   1772+	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf+    40+ 58+   1779+	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf+    40+ 62+   1783+	<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:    42:  1:   1797:	11 0 obj+Hello.pdf:    42:  1:   1797:	11 0 obj Hello.pdf:    43:  5:   1810:	<< /Type /Catalog /Pages 3 0 R >> Hello.pdf+    43+ 20+   1825+	<< /Type /Catalog /Pages 3 0 R >> Hello.pdf+    43+ 28+   1833+	<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:    45:  1:   1847:	8 0 obj+Hello.pdf:    45:  1:   1847:	8 0 obj Hello.pdf:    46:  5:   1859:	<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor Hello.pdf+    46+ 17+   1871+	<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor Hello.pdf+    46+ 36+   1890+	<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:    47:  1:   1937:	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:    47:  1:   1937:	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602 Hello.pdf+    47+  6+   1942+	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602 Hello.pdf+    47+ 19+   1955+	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602 Hello.pdf+    47+ 47+   1983+	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602 Hello.pdf+    47+ 60+   1996+	12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:    48:  1:   2014:	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:    48:  1:   2014:	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602 Hello.pdf+    48+  5+   2018+	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602 Hello.pdf+    48+  9+   2022+	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602 Hello.pdf+    48+ 13+   2026+	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602@@ -167,9 +167,9 @@ Hello.pdf+    48+ 63+   2076+	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602 Hello.pdf+    48+ 67+   2080+	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602 Hello.pdf+    48+ 71+   2084+	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:    49:  1:   2090:	0 0 602 ] >>+Hello.pdf:    49:  1:   2090:	0 0 602 ] >> Hello.pdf+    49+  5+   2094+	0 0 602 ] >>-Hello.pdf:    51:  1:   2110:	12 0 obj+Hello.pdf:    51:  1:   2110:	12 0 obj Hello.pdf:    52:  5:   2123:	<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf+    52+ 27+   2145+	<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf+    52+ 59+   2177+	<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox@@ -186,7 +186,7 @@ Hello.pdf+    54+ 49+   2321+	/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf+    54+ 63+   2335+	/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf+    54+ 76+   2348+	/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:    57:  1:   2362:	13 0 obj+Hello.pdf:    57:  1:   2362:	13 0 obj Hello.pdf:    58:  5:   2375:	<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf+    58+ 15+   2385+	<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf+    58+ 20+   2390+	<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >>@@ -472,17 +472,17 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:    81:  1:   5186:	14 0 obj-Hello.pdf:    84:  1:   5207:	15 0 obj-Hello.pdf:    87:  1:   5231:	16 0 obj+Hello.pdf:    81:  1:   5186:	14 0 obj+Hello.pdf:    84:  1:   5207:	15 0 obj+Hello.pdf:    87:  1:   5231:	16 0 obj Hello.pdf:    88:  2:   5241:	(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf+    88+  9+   5248+	(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf+    88+ 19+   5258+	(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:    90:  1:   5284:	17 0 obj-Hello.pdf:    93:  1:   5311:	18 0 obj-Hello.pdf:    96:  1:   5353:	19 0 obj-Hello.pdf:    99:  1:   5372:	20 0 obj-Hello.pdf:   102:  1:   5392:	1 0 obj+Hello.pdf:    90:  1:   5284:	17 0 obj+Hello.pdf:    93:  1:   5311:	18 0 obj+Hello.pdf:    96:  1:   5353:	19 0 obj+Hello.pdf:    99:  1:   5372:	20 0 obj+Hello.pdf:   102:  1:   5392:	1 0 obj Hello.pdf:   103:  5:   5404:	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate Hello.pdf+   103+ 14+   5413+	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate Hello.pdf+   103+ 19+   5418+	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate@@ -491,38 +491,38 @@ Hello.pdf+   103+ 47+   5446+	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate Hello.pdf+   103+ 52+   5451+	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate Hello.pdf+   103+ 68+   5467+	<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:   104:  1:   5480:	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:   104:  1:   5480:	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf+   104+  6+   5485+	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf+   104+ 18+   5497+	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf+   104+ 23+   5502+	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf+   104+ 40+   5519+	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf+   104+ 45+   5524+	18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:   107:  1:   5541:	0 21-Hello.pdf:   108:  1:   5546:	0000000000 65535 f -Hello.pdf:   109:  1:   5566:	0000005392 00000 n -Hello.pdf:   110:  1:   5586:	0000000238 00000 n -Hello.pdf:   111:  1:   5606:	0000001714 00000 n -Hello.pdf:   112:  1:   5626:	0000000022 00000 n -Hello.pdf:   113:  1:   5646:	0000000219 00000 n -Hello.pdf:   114:  1:   5666:	0000000342 00000 n -Hello.pdf:   115:  1:   5686:	0000001679 00000 n -Hello.pdf:   116:  1:   5706:	0000001847 00000 n -Hello.pdf:   117:  1:   5726:	0000000439 00000 n -Hello.pdf:   118:  1:   5746:	0000001658 00000 n -Hello.pdf:   119:  1:   5766:	0000001797 00000 n -Hello.pdf:   120:  1:   5786:	0000002110 00000 n -Hello.pdf:   121:  1:   5806:	0000002362 00000 n -Hello.pdf:   122:  1:   5826:	0000005186 00000 n -Hello.pdf:   123:  1:   5846:	0000005207 00000 n -Hello.pdf:   124:  1:   5866:	0000005231 00000 n -Hello.pdf:   125:  1:   5886:	0000005284 00000 n -Hello.pdf:   126:  1:   5906:	0000005311 00000 n -Hello.pdf:   127:  1:   5926:	0000005353 00000 n -Hello.pdf:   128:  1:   5946:	0000005372 00000 n +Hello.pdf:   107:  1:   5541:	0 21+Hello.pdf:   108:  1:   5546:	0000000000 65535 f +Hello.pdf:   109:  1:   5566:	0000005392 00000 n +Hello.pdf:   110:  1:   5586:	0000000238 00000 n +Hello.pdf:   111:  1:   5606:	0000001714 00000 n +Hello.pdf:   112:  1:   5626:	0000000022 00000 n +Hello.pdf:   113:  1:   5646:	0000000219 00000 n +Hello.pdf:   114:  1:   5666:	0000000342 00000 n +Hello.pdf:   115:  1:   5686:	0000001679 00000 n +Hello.pdf:   116:  1:   5706:	0000001847 00000 n +Hello.pdf:   117:  1:   5726:	0000000439 00000 n +Hello.pdf:   118:  1:   5746:	0000001658 00000 n +Hello.pdf:   119:  1:   5766:	0000001797 00000 n +Hello.pdf:   120:  1:   5786:	0000002110 00000 n +Hello.pdf:   121:  1:   5806:	0000002362 00000 n +Hello.pdf:   122:  1:   5826:	0000005186 00000 n +Hello.pdf:   123:  1:   5846:	0000005207 00000 n +Hello.pdf:   124:  1:   5866:	0000005231 00000 n +Hello.pdf:   125:  1:   5886:	0000005284 00000 n +Hello.pdf:   126:  1:   5906:	0000005311 00000 n +Hello.pdf:   127:  1:   5926:	0000005353 00000 n +Hello.pdf:   128:  1:   5946:	0000005372 00000 n  Hello.pdf:   130:  5:   5978:	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf+   130+ 14+   5987+	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf+   130+ 22+   5995+	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf+   130+ 27+   6000+	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf+   130+ 34+   6007+	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf+   130+ 39+   6012+	<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.sh:     2:  1:     10:	echo "Hello World!"

tests/out/Hello_wsS-W-vC2.out

@@ -1,5 +1,5 @@ Hello.bat:#!/bin/sh-Hello.bat-echo "Hello World!"+Hello.bat-echo "Hello World!" Hello.class: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:@@ -43,7 +43,7 @@ 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N| Hello.java-import java.lang.*; Hello.java:-Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-public class Hello // prints a Hello World! greeting Hello.java-{ public static void main(String[] arg) Hello.java-  { System.out.println("Hello World!"); Hello.java:  }@@ -52,7 +52,7 @@ Hello.pdf: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf-4 0 obj+Hello.pdf-4 0 obj Hello.pdf-<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:stream Hello.pdf:@@ -71,18 +71,18 @@ 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf:endstream Hello.pdf:endobj-Hello.pdf-5 0 obj+Hello.pdf-5 0 obj Hello.pdf:123 Hello.pdf:endobj-Hello.pdf-2 0 obj+Hello.pdf-2 0 obj Hello.pdf-<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf:>> Hello.pdf:endobj-Hello.pdf-6 0 obj+Hello.pdf-6 0 obj Hello.pdf-<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf:>> >> Hello.pdf:endobj-Hello.pdf-9 0 obj+Hello.pdf-9 0 obj Hello.pdf-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf:stream Hello.pdf-@@ -169,31 +169,31 @@ 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf:endstream Hello.pdf:endobj-Hello.pdf-10 0 obj+Hello.pdf-10 0 obj Hello.pdf:1116 Hello.pdf:endobj-Hello.pdf-7 0 obj+Hello.pdf-7 0 obj Hello.pdf-[ /ICCBased 9 0 R ] Hello.pdf:endobj-Hello.pdf-3 0 obj+Hello.pdf-3 0 obj Hello.pdf-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf:endobj-Hello.pdf-11 0 obj+Hello.pdf-11 0 obj Hello.pdf-<< /Type /Catalog /Pages 3 0 R >> Hello.pdf:endobj-Hello.pdf-8 0 obj+Hello.pdf-8 0 obj Hello.pdf-<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor -- Hello.pdf-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602 Hello.pdf-0 0 602 ] >> Hello.pdf:endobj-Hello.pdf-12 0 obj+Hello.pdf-12 0 obj Hello.pdf-<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf-[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf-/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf:>> Hello.pdf:endobj-Hello.pdf-13 0 obj+Hello.pdf-13 0 obj Hello.pdf-<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf:stream Hello.pdf-@@ -407,34 +407,34 @@ 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:endstream Hello.pdf:endobj-Hello.pdf-14 0 obj+Hello.pdf-14 0 obj Hello.pdf:2734 Hello.pdf:endobj-Hello.pdf-15 0 obj+Hello.pdf-15 0 obj Hello.pdf:(Hello) Hello.pdf:endobj-Hello.pdf-16 0 obj+Hello.pdf-16 0 obj Hello.pdf-(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf:endobj-Hello.pdf-17 0 obj+Hello.pdf-17 0 obj Hello.pdf:(TextEdit) Hello.pdf:endobj-Hello.pdf-18 0 obj+Hello.pdf-18 0 obj Hello.pdf:(D:20200124010711Z00'00') Hello.pdf:endobj-Hello.pdf-19 0 obj+Hello.pdf-19 0 obj Hello.pdf:() Hello.pdf:endobj-Hello.pdf-20 0 obj+Hello.pdf-20 0 obj Hello.pdf:[ ] Hello.pdf:endobj-Hello.pdf-1 0 obj+Hello.pdf-1 0 obj Hello.pdf-<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate Hello.pdf-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf:endobj Hello.pdf:xref-Hello.pdf-0 21-Hello.pdf-0000000000 65535 f +Hello.pdf-0 21+Hello.pdf-0000000000 65535 f  -- Hello.pdf-0000005353 00000 n  Hello.pdf-0000005372 00000 n @@ -445,6 +445,6 @@ Hello.pdf:5536 Hello.pdf:%%EOF Hello.sh:#!/bin/sh-Hello.sh-echo "Hello World!"+Hello.sh-echo "Hello World!" Hello.txt:Hello emptyline.txt:

tests/out/Hello_wsS-W-vy.out

@@ -1,5 +1,5 @@ Hello.bat:#!/bin/sh-Hello.bat-echo "Hello World!"+Hello.bat-echo "Hello World!" Hello.class: 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class:@@ -41,9 +41,9 @@ Hello.class: 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java-import java.lang.*;+Hello.java-import java.lang.*; Hello.java:-Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-public class Hello // prints a Hello World! greeting Hello.java-{ public static void main(String[] arg) Hello.java-  { System.out.println("Hello World!"); Hello.java:  }@@ -52,7 +52,7 @@ Hello.pdf: 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf-4 0 obj+Hello.pdf-4 0 obj Hello.pdf-<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf:stream Hello.pdf:@@ -71,18 +71,18 @@ 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf:endstream Hello.pdf:endobj-Hello.pdf-5 0 obj+Hello.pdf-5 0 obj Hello.pdf:123 Hello.pdf:endobj-Hello.pdf-2 0 obj+Hello.pdf-2 0 obj Hello.pdf-<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf:>> Hello.pdf:endobj-Hello.pdf-6 0 obj+Hello.pdf-6 0 obj Hello.pdf-<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf:>> >> Hello.pdf:endobj-Hello.pdf-9 0 obj+Hello.pdf-9 0 obj Hello.pdf-<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf:stream Hello.pdf-@@ -169,31 +169,31 @@ 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf:endstream Hello.pdf:endobj-Hello.pdf-10 0 obj+Hello.pdf-10 0 obj Hello.pdf:1116 Hello.pdf:endobj-Hello.pdf-7 0 obj+Hello.pdf-7 0 obj Hello.pdf-[ /ICCBased 9 0 R ] Hello.pdf:endobj-Hello.pdf-3 0 obj+Hello.pdf-3 0 obj Hello.pdf-<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf:endobj-Hello.pdf-11 0 obj+Hello.pdf-11 0 obj Hello.pdf-<< /Type /Catalog /Pages 3 0 R >> Hello.pdf:endobj-Hello.pdf-8 0 obj+Hello.pdf-8 0 obj Hello.pdf-<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf-12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf-0 0 602 ] >>+Hello.pdf-12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf-0 0 602 ] >> Hello.pdf:endobj-Hello.pdf-12 0 obj+Hello.pdf-12 0 obj Hello.pdf-<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf-[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf-/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf:>> Hello.pdf:endobj-Hello.pdf-13 0 obj+Hello.pdf-13 0 obj Hello.pdf-<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf:stream Hello.pdf-@@ -407,54 +407,54 @@ 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf:endstream Hello.pdf:endobj-Hello.pdf-14 0 obj+Hello.pdf-14 0 obj Hello.pdf:2734 Hello.pdf:endobj-Hello.pdf-15 0 obj+Hello.pdf-15 0 obj Hello.pdf:(Hello) Hello.pdf:endobj-Hello.pdf-16 0 obj+Hello.pdf-16 0 obj Hello.pdf-(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf:endobj-Hello.pdf-17 0 obj+Hello.pdf-17 0 obj Hello.pdf:(TextEdit) Hello.pdf:endobj-Hello.pdf-18 0 obj+Hello.pdf-18 0 obj Hello.pdf:(D:20200124010711Z00'00') Hello.pdf:endobj-Hello.pdf-19 0 obj+Hello.pdf-19 0 obj Hello.pdf:() Hello.pdf:endobj-Hello.pdf-20 0 obj+Hello.pdf-20 0 obj Hello.pdf:[ ] Hello.pdf:endobj-Hello.pdf-1 0 obj+Hello.pdf-1 0 obj Hello.pdf-<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf-18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf:endobj Hello.pdf:xref-Hello.pdf-0 21-Hello.pdf-0000000000 65535 f -Hello.pdf-0000005392 00000 n -Hello.pdf-0000000238 00000 n -Hello.pdf-0000001714 00000 n -Hello.pdf-0000000022 00000 n -Hello.pdf-0000000219 00000 n -Hello.pdf-0000000342 00000 n -Hello.pdf-0000001679 00000 n -Hello.pdf-0000001847 00000 n -Hello.pdf-0000000439 00000 n -Hello.pdf-0000001658 00000 n -Hello.pdf-0000001797 00000 n -Hello.pdf-0000002110 00000 n -Hello.pdf-0000002362 00000 n -Hello.pdf-0000005186 00000 n -Hello.pdf-0000005207 00000 n -Hello.pdf-0000005231 00000 n -Hello.pdf-0000005284 00000 n -Hello.pdf-0000005311 00000 n -Hello.pdf-0000005353 00000 n -Hello.pdf-0000005372 00000 n +Hello.pdf-0 21+Hello.pdf-0000000000 65535 f +Hello.pdf-0000005392 00000 n +Hello.pdf-0000000238 00000 n +Hello.pdf-0000001714 00000 n +Hello.pdf-0000000022 00000 n +Hello.pdf-0000000219 00000 n +Hello.pdf-0000000342 00000 n +Hello.pdf-0000001679 00000 n +Hello.pdf-0000001847 00000 n +Hello.pdf-0000000439 00000 n +Hello.pdf-0000001658 00000 n +Hello.pdf-0000001797 00000 n +Hello.pdf-0000002110 00000 n +Hello.pdf-0000002362 00000 n +Hello.pdf-0000005186 00000 n +Hello.pdf-0000005207 00000 n +Hello.pdf-0000005231 00000 n +Hello.pdf-0000005284 00000 n +Hello.pdf-0000005311 00000 n +Hello.pdf-0000005353 00000 n +Hello.pdf-0000005372 00000 n  Hello.pdf:trailer Hello.pdf-<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf:<8db88d3335070bd9583341583cf769a3> ] >>@@ -462,6 +462,6 @@ Hello.pdf:5536 Hello.pdf:%%EOF Hello.sh:#!/bin/sh-Hello.sh-echo "Hello World!"+Hello.sh-echo "Hello World!" Hello.txt:Hello emptyline.txt:

tests/out/Hello_wsS-W-y.out

@@ -1,5 +1,5 @@ Hello.bat-#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:echo "Hello World!" Hello.class- 00000000  ca fe ba be 00 00 00 34  00 1d 0a -- -- -- -- --  |....@@@4@]J-----| Hello.class-@@ -41,9 +41,9 @@ Hello.class- 00000180  -- -- -- -- -- -- -- --  -- -- -- -- 00 02 00 00  |------------@B@@| 00000190  00 05 00 08 00 06 00 01  00 0d 00 00 00 02 00 0e  |@E@H@F@A@M@@@B@N|-Hello.java:import java.lang.*;+Hello.java:import java.lang.*; Hello.java--Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Hello.java-  }@@ -52,7 +52,7 @@ Hello.pdf- 00000000  -- -- -- -- -- -- -- --  -- 25 c4 e5 f2 e5 eb a7  |---------%......| 00000010  f3 a0 d0 c4 c6 0a -- --  -- -- -- -- -- -- -- --  |.....J----------|-Hello.pdf:4 0 obj+Hello.pdf:4 0 obj Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf-stream Hello.pdf-@@ -71,18 +71,18 @@ 000000c0  37 b5 37 e3 17 4e ff 20  a5 0a -- -- -- -- -- --  |7.7.WN. .J------| Hello.pdf-endstream Hello.pdf-endobj-Hello.pdf:5 0 obj+Hello.pdf:5 0 obj Hello.pdf-123 Hello.pdf-endobj-Hello.pdf:2 0 obj+Hello.pdf:2 0 obj Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792] Hello.pdf->> Hello.pdf-endobj-Hello.pdf:6 0 obj+Hello.pdf:6 0 obj Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R Hello.pdf->> >> Hello.pdf-endobj-Hello.pdf:9 0 obj+Hello.pdf:9 0 obj Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf-stream Hello.pdf:@@ -169,31 +169,31 @@ 00000660  ea 26 d1 7f b7 8f 93 34  0a -- -- -- -- -- -- --  |.&.~...4J-------| Hello.pdf-endstream Hello.pdf-endobj-Hello.pdf:10 0 obj+Hello.pdf:10 0 obj Hello.pdf-1116 Hello.pdf-endobj-Hello.pdf:7 0 obj+Hello.pdf:7 0 obj Hello.pdf:[ /ICCBased 9 0 R ] Hello.pdf-endobj-Hello.pdf:3 0 obj+Hello.pdf:3 0 obj Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >> Hello.pdf-endobj-Hello.pdf:11 0 obj+Hello.pdf:11 0 obj Hello.pdf:<< /Type /Catalog /Pages 3 0 R >> Hello.pdf-endobj-Hello.pdf:8 0 obj+Hello.pdf:8 0 obj Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:0 0 602 ] >>+Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:0 0 602 ] >> Hello.pdf-endobj-Hello.pdf:12 0 obj+Hello.pdf:12 0 obj Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R Hello.pdf->> Hello.pdf-endobj-Hello.pdf:13 0 obj+Hello.pdf:13 0 obj Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf-stream Hello.pdf:@@ -407,54 +407,54 @@ 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------| Hello.pdf-endstream Hello.pdf-endobj-Hello.pdf:14 0 obj+Hello.pdf:14 0 obj Hello.pdf-2734 Hello.pdf-endobj-Hello.pdf:15 0 obj+Hello.pdf:15 0 obj Hello.pdf-(Hello) Hello.pdf-endobj-Hello.pdf:16 0 obj+Hello.pdf:16 0 obj Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext) Hello.pdf-endobj-Hello.pdf:17 0 obj+Hello.pdf:17 0 obj Hello.pdf-(TextEdit) Hello.pdf-endobj-Hello.pdf:18 0 obj+Hello.pdf:18 0 obj Hello.pdf-(D:20200124010711Z00'00') Hello.pdf-endobj-Hello.pdf:19 0 obj+Hello.pdf:19 0 obj Hello.pdf-() Hello.pdf-endobj-Hello.pdf:20 0 obj+Hello.pdf:20 0 obj Hello.pdf-[ ] Hello.pdf-endobj-Hello.pdf:1 0 obj+Hello.pdf:1 0 obj Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >> Hello.pdf-endobj Hello.pdf-xref-Hello.pdf:0 21-Hello.pdf:0000000000 65535 f -Hello.pdf:0000005392 00000 n -Hello.pdf:0000000238 00000 n -Hello.pdf:0000001714 00000 n -Hello.pdf:0000000022 00000 n -Hello.pdf:0000000219 00000 n -Hello.pdf:0000000342 00000 n -Hello.pdf:0000001679 00000 n -Hello.pdf:0000001847 00000 n -Hello.pdf:0000000439 00000 n -Hello.pdf:0000001658 00000 n -Hello.pdf:0000001797 00000 n -Hello.pdf:0000002110 00000 n -Hello.pdf:0000002362 00000 n -Hello.pdf:0000005186 00000 n -Hello.pdf:0000005207 00000 n -Hello.pdf:0000005231 00000 n -Hello.pdf:0000005284 00000 n -Hello.pdf:0000005311 00000 n -Hello.pdf:0000005353 00000 n -Hello.pdf:0000005372 00000 n +Hello.pdf:0 21+Hello.pdf:0000000000 65535 f +Hello.pdf:0000005392 00000 n +Hello.pdf:0000000238 00000 n +Hello.pdf:0000001714 00000 n +Hello.pdf:0000000022 00000 n +Hello.pdf:0000000219 00000 n +Hello.pdf:0000000342 00000 n +Hello.pdf:0000001679 00000 n +Hello.pdf:0000001847 00000 n +Hello.pdf:0000000439 00000 n +Hello.pdf:0000001658 00000 n +Hello.pdf:0000001797 00000 n +Hello.pdf:0000002110 00000 n +Hello.pdf:0000002362 00000 n +Hello.pdf:0000005186 00000 n +Hello.pdf:0000005207 00000 n +Hello.pdf:0000005231 00000 n +Hello.pdf:0000005284 00000 n +Hello.pdf:0000005311 00000 n +Hello.pdf:0000005353 00000 n +Hello.pdf:0000005372 00000 n  Hello.pdf-trailer Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3> Hello.pdf-<8db88d3335070bd9583341583cf769a3> ] >>@@ -462,6 +462,6 @@ Hello.pdf-5536 Hello.pdf-%%EOF Hello.sh-#!/bin/sh-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!" Hello.txt-Hello emptyline.txt-

tests/out/Hello_wsS-W.out

@@ -1,4 +1,4 @@-Hello.bat:echo "Hello World!"+Hello.bat:echo "Hello World!" Hello.class: 00000070  -- -- -- -- -- -- -- --  -- -- 48 65 6c 6c 6f 2e  |----------Hello.| 00000080  6a 61 76 61 0c 00 07 00  08 07 00 17 0c 00 18 00  |javaL@G@HG@WL@X@|@@ -15,23 +15,23 @@ 00000130  00 06 00 00 00 00 00 02  00 01 00 07 00 08 00 01  |@F@@@@@B@A@G@H@A| 00000140  00 09 00 00 00 1d 00 01  00 01 00 00 00 05 2a b7  |@I@@@]@A@A@@@E*.| 00000150  00 01 b1 00 00 00 01 00  0a -- -- -- -- -- -- --  |@A.@@@A@J-------|-Hello.java:import java.lang.*;-Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:import java.lang.*;+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!");-Hello.pdf:4 0 obj+Hello.pdf:4 0 obj Hello.pdf:<< /Length 5 0 R /Filter /FlateDecode >> Hello.pdf: 00000050  -- -- -- -- 02 31 14 44  7b bf e2 94 5a 98 bd 89  |----B1TD{...Z...| 00000060  79 98 56 11 6c 17 2e f8  01 61 2d 64 d7 65 cd ff  |y.VQlW..Aa-d.e..| 00000070  83 17 2c ac 86 99 39 0c  b3 31 b2 51 02 b9 46 97  |.W,...9L.1.QB.F.| 00000080  e2 a9 12 f3 99 90 5c 4c  59 0a -- -- -- -- -- --  |..R...\LYJ------|-Hello.pdf:5 0 obj-Hello.pdf:2 0 obj+Hello.pdf:5 0 obj+Hello.pdf:2 0 obj Hello.pdf:<< /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 612 792]-Hello.pdf:6 0 obj+Hello.pdf:6 0 obj Hello.pdf:<< /ProcSet [ /PDF /Text ] /ColorSpace << /Cs1 7 0 R >> /Font << /TT1 8 0 R-Hello.pdf:9 0 obj+Hello.pdf:9 0 obj Hello.pdf:<< /Length 10 0 R /N 1 /Alternate /DeviceGray /Filter /FlateDecode >> Hello.pdf: 00000200  -- -- -- -- -- -- -- --  -- -- -- -- 78 01 85 55  |------------xA.U|@@ -83,23 +83,23 @@ 000004a0  bf c1 a2 0b 6b 26 25 e6  5e 3f f7 4d 4f c2 43 75  |...Kk&%.^?.MO.Cu| 000004b0  45 7c f5 d6 9d ee eb e7  e8 78 32 4b 51 de aa 9d  |E|.......x2KQ...| 000004c0  59 92 d7 e4 fb f2 0a --  -- -- -- -- -- -- -- --  |Y.....J---------|-Hello.pdf:10 0 obj-Hello.pdf:7 0 obj+Hello.pdf:10 0 obj+Hello.pdf:7 0 obj Hello.pdf:[ /ICCBased 9 0 R ]-Hello.pdf:3 0 obj+Hello.pdf:3 0 obj Hello.pdf:<< /Type /Pages /MediaBox [0 0 612 792] /Count 1 /Kids [ 2 0 R ] >>-Hello.pdf:11 0 obj+Hello.pdf:11 0 obj Hello.pdf:<< /Type /Catalog /Pages 3 0 R >>-Hello.pdf:8 0 obj+Hello.pdf:8 0 obj Hello.pdf:<< /Type /Font /Subtype /TrueType /BaseFont /GQTMZF+Menlo-Regular /FontDescriptor-Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602-Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602-Hello.pdf:0 0 602 ] >>-Hello.pdf:12 0 obj+Hello.pdf:12 0 R /Encoding /MacRomanEncoding /FirstChar 72 /LastChar 111 /Widths [ 602+Hello.pdf:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 602 0 0 0 0 0 0 602+Hello.pdf:0 0 602 ] >>+Hello.pdf:12 0 obj Hello.pdf:<< /Type /FontDescriptor /FontName /GQTMZF+Menlo-Regular /Flags 33 /FontBBox Hello.pdf:[-558 -375 718 1041] /ItalicAngle 0 /Ascent 928 /Descent -236 /CapHeight 729 Hello.pdf:/StemV 99 /XHeight 547 /StemH 83 /AvgWidth 602 /MaxWidth 602 /FontFile2 13 0 R-Hello.pdf:13 0 obj+Hello.pdf:13 0 obj Hello.pdf:<< /Length 14 0 R /Length1 4064 /Filter /FlateDecode >> Hello.pdf: 00000980  -- -- 78 01 dd 57 7b 78  54 c5 15 3f 73 7f 77 36  |--xA.W{xT.U?s~w6|@@ -262,38 +262,38 @@ 00001410  2c c6 0b 72 e4 84 c9 63  a7 8c c8 1a 5b 34 7f 5e  |,.Kr...c...Z[4~^| 00001420  a9 7f 62 d1 9c c5 f3 66  2c 24 fa 17 20 2d 06 e4  |.~b....f,$.W -F.| 00001430  0a -- -- -- -- -- -- --  -- -- -- -- -- -- -- --  |J---------------|-Hello.pdf:14 0 obj-Hello.pdf:15 0 obj-Hello.pdf:16 0 obj+Hello.pdf:14 0 obj+Hello.pdf:15 0 obj+Hello.pdf:16 0 obj Hello.pdf:(Mac OS X 10.12.6 Quartz PDFContext)-Hello.pdf:17 0 obj-Hello.pdf:18 0 obj-Hello.pdf:19 0 obj-Hello.pdf:20 0 obj-Hello.pdf:1 0 obj+Hello.pdf:17 0 obj+Hello.pdf:18 0 obj+Hello.pdf:19 0 obj+Hello.pdf:20 0 obj+Hello.pdf:1 0 obj Hello.pdf:<< /Title 15 0 R /Producer 16 0 R /Creator 17 0 R /CreationDate 18 0 R /ModDate-Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>-Hello.pdf:0 21-Hello.pdf:0000000000 65535 f -Hello.pdf:0000005392 00000 n -Hello.pdf:0000000238 00000 n -Hello.pdf:0000001714 00000 n -Hello.pdf:0000000022 00000 n -Hello.pdf:0000000219 00000 n -Hello.pdf:0000000342 00000 n -Hello.pdf:0000001679 00000 n -Hello.pdf:0000001847 00000 n -Hello.pdf:0000000439 00000 n -Hello.pdf:0000001658 00000 n -Hello.pdf:0000001797 00000 n -Hello.pdf:0000002110 00000 n -Hello.pdf:0000002362 00000 n -Hello.pdf:0000005186 00000 n -Hello.pdf:0000005207 00000 n -Hello.pdf:0000005231 00000 n -Hello.pdf:0000005284 00000 n -Hello.pdf:0000005311 00000 n -Hello.pdf:0000005353 00000 n -Hello.pdf:0000005372 00000 n +Hello.pdf:18 0 R /Keywords 19 0 R /AAPL:Keywords 20 0 R >>+Hello.pdf:0 21+Hello.pdf:0000000000 65535 f +Hello.pdf:0000005392 00000 n +Hello.pdf:0000000238 00000 n +Hello.pdf:0000001714 00000 n +Hello.pdf:0000000022 00000 n +Hello.pdf:0000000219 00000 n +Hello.pdf:0000000342 00000 n +Hello.pdf:0000001679 00000 n +Hello.pdf:0000001847 00000 n +Hello.pdf:0000000439 00000 n +Hello.pdf:0000001658 00000 n +Hello.pdf:0000001797 00000 n +Hello.pdf:0000002110 00000 n +Hello.pdf:0000002362 00000 n +Hello.pdf:0000005186 00000 n +Hello.pdf:0000005207 00000 n +Hello.pdf:0000005231 00000 n +Hello.pdf:0000005284 00000 n +Hello.pdf:0000005311 00000 n +Hello.pdf:0000005353 00000 n +Hello.pdf:0000005372 00000 n  Hello.pdf:<< /Size 21 /Root 11 0 R /Info 1 0 R /ID [ <8db88d3335070bd9583341583cf769a3>-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"

tests/out/Hello_wsS-n.out

@@ -1,8 +1,8 @@-Hello.bat:2:echo "Hello World!"+Hello.bat:2:echo "Hello World!" Binary file Hello.class matches-Hello.java:1:import java.lang.*;-Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:1:import java.lang.*;+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!"

tests/out/Hello_wsS-nC2.out

@@ -1,13 +1,13 @@ Hello.bat-1-#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:2:echo "Hello World!" Binary file Hello.class matches-Hello.java:1:import java.lang.*;+Hello.java:1:import java.lang.*; Hello.java-2--Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!"); Hello.java-6-  } Hello.java-7-} Binary file Hello.pdf matches Hello.sh-1-#!/bin/sh-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!"

tests/out/Hello_wsS-nkbT.out

@@ -1,8 +1,8 @@-Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.bat:     2:  1:     10:	echo "Hello World!" Binary file Hello.class matches-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java:     4:  3:     76:	{ public static void main(String[] arg) Hello.java:     5: 25:    138:	  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.sh:     2:  1:     10:	echo "Hello World!"

tests/out/Hello_wsS-nvC2.out

@@ -1,15 +1,15 @@ Hello.bat:1:#!/bin/sh-Hello.bat-2-echo "Hello World!"+Hello.bat-2-echo "Hello World!" Binary file Hello.class matches Hello.java-1-import java.lang.*; Hello.java:2:-Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-3-public class Hello // prints a Hello World! greeting Hello.java-4-{ public static void main(String[] arg) Hello.java-5-  { System.out.println("Hello World!"); Hello.java:6:  } Hello.java:7:} Binary file Hello.pdf matches Hello.sh:1:#!/bin/sh-Hello.sh-2-echo "Hello World!"+Hello.sh-2-echo "Hello World!" Hello.txt:1:Hello emptyline.txt:1:

tests/out/Hello_wsS-nvy.out

@@ -1,15 +1,15 @@ Hello.bat:1:#!/bin/sh-Hello.bat-2-echo "Hello World!"+Hello.bat-2-echo "Hello World!" Binary file Hello.class matches-Hello.java-1-import java.lang.*;+Hello.java-1-import java.lang.*; Hello.java:2:-Hello.java-3-public class Hello // prints a Hello World! greeting+Hello.java-3-public class Hello // prints a Hello World! greeting Hello.java-4-{ public static void main(String[] arg) Hello.java-5-  { System.out.println("Hello World!"); Hello.java:6:  } Hello.java:7:} Binary file Hello.pdf matches Hello.sh:1:#!/bin/sh-Hello.sh-2-echo "Hello World!"+Hello.sh-2-echo "Hello World!" Hello.txt:1:Hello emptyline.txt:1:

tests/out/Hello_wsS-ny.out

@@ -1,15 +1,15 @@ Hello.bat-1-#!/bin/sh-Hello.bat:2:echo "Hello World!"+Hello.bat:2:echo "Hello World!" Binary file Hello.class matches-Hello.java:1:import java.lang.*;+Hello.java:1:import java.lang.*; Hello.java-2--Hello.java:3:public class Hello // prints a Hello World! greeting+Hello.java:3:public class Hello // prints a Hello World! greeting Hello.java:4:{ public static void main(String[] arg) Hello.java:5:  { System.out.println("Hello World!"); Hello.java-6-  } Hello.java-7-} Binary file Hello.pdf matches Hello.sh-1-#!/bin/sh-Hello.sh:2:echo "Hello World!"+Hello.sh:2:echo "Hello World!" Hello.txt-1-Hello emptyline.txt-1-

tests/out/Hello_wsS-unkbT.out

@@ -1,7 +1,7 @@-Hello.bat:     2:  1:     10:	echo "Hello World!"+Hello.bat:     2:  1:     10:	echo "Hello World!" Binary file Hello.class matches-Hello.java:     1:  1:      0:	import java.lang.*;-Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting+Hello.java:     1:  1:      0:	import java.lang.*;+Hello.java:     3:  1:     21:	public class Hello // prints a Hello World! greeting Hello.java+     3+ 14+     34+	public class Hello // prints a Hello World! greeting Hello.java+     3+ 23+     43+	public class Hello // prints a Hello World! greeting Hello.java+     3+ 32+     52+	public class Hello // prints a Hello World! greeting@@ -9,4 +9,4 @@ Hello.java+     4+ 17+     90+	{ public static void main(String[] arg) Hello.java:     5: 25:    138:	  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.sh:     2:  1:     10:	echo "Hello World!"+Hello.sh:     2:  1:     10:	echo "Hello World!"

tests/out/Hello_wsS-vC2.out

@@ -1,15 +1,15 @@ Hello.bat:#!/bin/sh-Hello.bat-echo "Hello World!"+Hello.bat-echo "Hello World!" Binary file Hello.class matches Hello.java-import java.lang.*; Hello.java:-Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-public class Hello // prints a Hello World! greeting Hello.java-{ public static void main(String[] arg) Hello.java-  { System.out.println("Hello World!"); Hello.java:  } Hello.java:} Binary file Hello.pdf matches Hello.sh:#!/bin/sh-Hello.sh-echo "Hello World!"+Hello.sh-echo "Hello World!" Hello.txt:Hello emptyline.txt:

tests/out/Hello_wsS-vy.out

@@ -1,15 +1,15 @@ Hello.bat:#!/bin/sh-Hello.bat-echo "Hello World!"+Hello.bat-echo "Hello World!" Binary file Hello.class matches-Hello.java-import java.lang.*;+Hello.java-import java.lang.*; Hello.java:-Hello.java-public class Hello // prints a Hello World! greeting+Hello.java-public class Hello // prints a Hello World! greeting Hello.java-{ public static void main(String[] arg) Hello.java-  { System.out.println("Hello World!"); Hello.java:  } Hello.java:} Binary file Hello.pdf matches Hello.sh:#!/bin/sh-Hello.sh-echo "Hello World!"+Hello.sh-echo "Hello World!" Hello.txt:Hello emptyline.txt:

tests/out/Hello_wsS-y.out

@@ -1,15 +1,15 @@ Hello.bat-#!/bin/sh-Hello.bat:echo "Hello World!"+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;+Hello.java:import java.lang.*; Hello.java--Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Hello.java-  } Hello.java-} Binary file Hello.pdf matches Hello.sh-#!/bin/sh-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!" Hello.txt-Hello emptyline.txt-

tests/out/Hello_wsS.out

@@ -1,8 +1,8 @@-Hello.bat:echo "Hello World!"+Hello.bat:echo "Hello World!" Binary file Hello.class matches-Hello.java:import java.lang.*;-Hello.java:public class Hello // prints a Hello World! greeting+Hello.java:import java.lang.*;+Hello.java:public class Hello // prints a Hello World! greeting Hello.java:{ public static void main(String[] arg) Hello.java:  { System.out.println("Hello World!"); Binary file Hello.pdf matches-Hello.sh:echo "Hello World!"+Hello.sh:echo "Hello World!"