Merge branch 'master' into subtree
authorNiki Roo <niki@nikiroo.be>
Tue, 19 May 2020 19:16:46 +0000 (21:16 +0200)
committerNiki Roo <niki@nikiroo.be>
Tue, 19 May 2020 19:16:46 +0000 (21:16 +0200)
1  2 
streams/ReplaceInputStream.java
test_code/ReplaceInputStreamTest.java
ui/UIUtils.java

index 1cc5139beae1e012053f62dece957076add4dfee,9f733504117c314768603669b73cde0f7aa2ab40..9f733504117c314768603669b73cde0f7aa2ab40
@@@ -141,11 -141,11 +141,11 @@@ public class ReplaceInputStream extend
                                if (froms[i] != null && froms[i].length > 0
                                                && StreamUtils.startsWith(froms[i], source, spos, slen)) {
                                        if (tos[i] != null && tos[i].length > 0) {
-                                               System.arraycopy(tos[i], 0, buffer, off + spos,
+                                               System.arraycopy(tos[i], 0, buffer, off + count,
                                                                tos[i].length);
                                                count += tos[i].length;
                                        }
+                                       
                                        spos += froms[i].length;
                                        replaced = true;
                                        break;
index e6e211215430485cfd0938b5fcb89f6fc5ee4a5e,d08a91ed779c89502ef8e7d65eca8e47b7fa9ddd..d08a91ed779c89502ef8e7d65eca8e47b7fa9ddd
@@@ -48,7 -48,7 +48,7 @@@ class ReplaceInputStreamTest extends Te
                        }
                });
  
-               addTest(new TestCase("Lnger replace") {
+               addTest(new TestCase("Longer replace") {
                        @Override
                        public void test() throws Exception {
                                byte[] data = new byte[] { 42, 12, 0, 127 };
                                byte[] data = "I like red".getBytes("UTF-8");
                                ReplaceInputStream in = new ReplaceInputStream(
                                                new ByteArrayInputStream(data),
-                                               "red".getBytes("UTF-8"), "blue".getBytes("UTF-8"));
+                                               "red", "blue");
  
                                checkArrays(this, "FIRST", in, "I like blue".getBytes("UTF-8"));
  
                                data = "I like blue".getBytes("UTF-8");
                                in = new ReplaceInputStream(new ByteArrayInputStream(data),
-                                               "blue".getBytes("UTF-8"), "red".getBytes("UTF-8"));
+                                               "blue", "red");
  
                                checkArrays(this, "FIRST", in, "I like red".getBytes("UTF-8"));
                        }
                });
+               
+               addTest(new TestCase("Multiple replaces") {
+                       @Override
+                       public void test() throws Exception {
+                               byte[] data = "I like red".getBytes("UTF-8");
+                               ReplaceInputStream in = new ReplaceInputStream(
+                                               new ByteArrayInputStream(data), //
+                                               new String[] {"like", "red"}, //
+                                               new String[] {"dislike", "green"} //
+                               );
+                               String result = new String(IOUtils.toByteArray(in), "UTF-8");
+                               assertEquals("I dislike green", result);
+                       }
+               });
        }
  
        static void checkArrays(TestCase test, String prefix, InputStream in,
diff --combined ui/UIUtils.java
index 6c4038977d9ed001934944128c8632dbb6dfe301,e4eb000c6876f0a2b610da928fb16592cd1d3a4e..e4eb000c6876f0a2b610da928fb16592cd1d3a4e
@@@ -22,7 -22,6 +22,6 @@@ import javax.swing.UnsupportedLookAndFe
  import javax.swing.event.HyperlinkEvent;
  import javax.swing.event.HyperlinkListener;
  
- import be.nikiroo.fanfix.Instance;
  import be.nikiroo.utils.Version;
  import be.nikiroo.utils.VersionCheck;
  
@@@ -306,9 -305,9 +305,9 @@@ public class UIUtils 
                                        try {
                                                Desktop.getDesktop().browse(e.getURL().toURI());
                                        } catch (IOException ee) {
-                                               Instance.getInstance().getTraceHandler().error(ee);
+                                               ee.printStackTrace();
                                        } catch (URISyntaxException ee) {
-                                               Instance.getInstance().getTraceHandler().error(ee);
+                                               ee.printStackTrace();
                                        }
                        }
                });