This is an automated email from the git hooks/post-receive script. apo-guest pushed a commit to branch master in repository apktool.
commit 0f456d20340f5a1b15dc56fc163e073ca52a3f8f Author: Markus Koschany <[email protected]> Date: Tue Feb 16 12:48:52 2016 +0100 Add LEDataInputStream.java.patch --- debian/patches/LEDataInputStream.java.patch | 201 ++++++++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 202 insertions(+) diff --git a/debian/patches/LEDataInputStream.java.patch b/debian/patches/LEDataInputStream.java.patch new file mode 100644 index 0000000..2dd33a5 --- /dev/null +++ b/debian/patches/LEDataInputStream.java.patch @@ -0,0 +1,201 @@ +From: Markus Koschany <[email protected]> +Date: Tue, 16 Feb 2016 12:48:39 +0100 +Subject: LEDataInputStream.java + +--- + .../mindprod/ledatastream/LEDataInputStream.java | 186 +++++++++++++++++++++ + 1 file changed, 186 insertions(+) + create mode 100644 brut.apktool/apktool-lib/src/main/java/com/mindprod/ledatastream/LEDataInputStream.java + +diff --git a/brut.apktool/apktool-lib/src/main/java/com/mindprod/ledatastream/LEDataInputStream.java b/brut.apktool/apktool-lib/src/main/java/com/mindprod/ledatastream/LEDataInputStream.java +new file mode 100644 +index 0000000..293cb1d +--- /dev/null ++++ b/brut.apktool/apktool-lib/src/main/java/com/mindprod/ledatastream/LEDataInputStream.java +@@ -0,0 +1,186 @@ ++/******************************************************************************* ++ * Copyright (c) 2000, 2011 IBM Corporation and others. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the Eclipse Public License v1.0 ++ * which accompanies this distribution, and is available at ++ * http://www.eclipse.org/legal/epl-v10.html ++ * ++ * Contributors: ++ * IBM Corporation - initial API and implementation ++ *******************************************************************************/ ++package com.mindprod.ledatastream; ++ ++ ++import java.io.*; ++ ++public final class LEDataInputStream extends InputStream { ++ int position; ++ InputStream in; ++ ++ /** ++ * The byte array containing the bytes to read. ++ */ ++ protected byte[] buf; ++ ++ /** ++ * The current position within the byte array <code>buf</code>. A value ++ * equal to buf.length indicates no bytes available. A value of ++ * 0 indicates the buffer is full. ++ */ ++ protected int pos; ++ ++ ++ public LEDataInputStream(InputStream input) { ++ this(input, 512); ++ } ++ ++ public LEDataInputStream(InputStream input, int bufferSize) { ++ this.in = input; ++ if (bufferSize > 0) { ++ buf = new byte[bufferSize]; ++ pos = bufferSize; ++ } ++ else throw new IllegalArgumentException(); ++ } ++ ++ public void close() throws IOException { ++ buf = null; ++ if (in != null) { ++ in.close(); ++ in = null; ++ } ++ } ++ ++ /** ++ * Answer how many bytes were read. ++ */ ++ public int getPosition() { ++ return position; ++ } ++ ++ /** ++ * Answers how many bytes are available for reading without blocking ++ */ ++ public int available() throws IOException { ++ if (buf == null) throw new IOException(); ++ return (buf.length - pos) + in.available(); ++ } ++ ++ /** ++ * Answer the next byte of the input stream. ++ */ ++ public int read() throws IOException { ++ if (buf == null) throw new IOException(); ++ if (pos < buf.length) { ++ position++; ++ return (buf[pos++] & 0xFF); ++ } ++ int c = in.read(); ++ if (c != -1) position++; ++ return c; ++ } ++ ++ /** ++ * Don't imitate the JDK behaviour of reading a random number ++ * of bytes when you can actually read them all. ++ */ ++ public int read(byte b[], int off, int len) throws IOException { ++ int read = 0, count; ++ while (read != len && (count = readData(b, off, len - read)) != -1) { ++ off += count; ++ read += count; ++ } ++ position += read; ++ if (read == 0 && read != len) return -1; ++ return read; ++ } ++ ++ /** ++ * Reads at most <code>length</code> bytes from this LEDataInputStream and ++ * stores them in byte array <code>buffer</code> starting at <code>offset</code>. ++ * <p> ++ * Answer the number of bytes actually read or -1 if no bytes were read and ++ * end of stream was encountered. This implementation reads bytes from ++ * the pushback buffer first, then the target stream if more bytes are required ++ * to satisfy <code>count</code>. ++ * </p> ++ * @param buffer the byte array in which to store the read bytes. ++ * @param offset the offset in <code>buffer</code> to store the read bytes. ++ * @param length the maximum number of bytes to store in <code>buffer</code>. ++ * ++ * @return int the number of bytes actually read or -1 if end of stream. ++ * ++ * @exception java.io.IOException if an IOException occurs. ++ */ ++ private int readData(byte[] buffer, int offset, int length) throws IOException { ++ if (buf == null) throw new IOException(); ++ if (offset < 0 || offset > buffer.length || ++ length < 0 || (length > buffer.length - offset)) { ++ throw new ArrayIndexOutOfBoundsException(); ++ } ++ ++ int cacheCopied = 0; ++ int newOffset = offset; ++ ++ // Are there pushback bytes available? ++ int available = buf.length - pos; ++ if (available > 0) { ++ cacheCopied = (available >= length) ? length : available; ++ System.arraycopy(buf, pos, buffer, newOffset, cacheCopied); ++ newOffset += cacheCopied; ++ pos += cacheCopied; ++ } ++ ++ // Have we copied enough? ++ if (cacheCopied == length) return length; ++ ++ int inCopied = in.read(buffer, newOffset, length - cacheCopied); ++ ++ if (inCopied > 0) return inCopied + cacheCopied; ++ if (cacheCopied == 0) return inCopied; ++ return cacheCopied; ++ } ++ ++ /** ++ * Answer an integer comprised of the next ++ * four bytes of the input stream. ++ */ ++ public int readInt() throws IOException { ++ byte[] buf = new byte[4]; ++ read(buf); ++ return ((buf[3] & 0xFF) << 24) | ++ ((buf[2] & 0xFF) << 16) | ++ ((buf[1] & 0xFF) << 8) | ++ (buf[0] & 0xFF); ++ } ++ ++ /** ++ * Answer a short comprised of the next ++ * two bytes of the input stream. ++ */ ++ public short readShort() throws IOException { ++ byte[] buf = new byte[2]; ++ read(buf); ++ return (short)(((buf[1] & 0xFF) << 8) | (buf[0] & 0xFF)); ++ } ++ ++ /** ++ * Push back the entire content of the given buffer <code>b</code>. ++ * <p> ++ * The bytes are pushed so that they would be read back b[0], b[1], etc. ++ * If the push back buffer cannot handle the bytes copied from <code>b</code>, ++ * an IOException will be thrown and no byte will be pushed back. ++ * </p> ++ * ++ * @param b the byte array containing bytes to push back into the stream ++ * ++ * @exception java.io.IOException if the pushback buffer is too small ++ */ ++ public void unread(byte[] b) throws IOException { ++ int length = b.length; ++ if (length > pos) throw new IOException(); ++ position -= length; ++ pos -= length; ++ System.arraycopy(b, 0, buf, pos, length); ++ } ++} diff --git a/debian/patches/series b/debian/patches/series index 0f1d6c2..90d6b09 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ use_system_aapt.patch build.patch +LEDataInputStream.java.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/apktool.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

