[apktool] 08/08: Add LEDataInputStream.java.patch
Markus Koschany
apo-guest at moszumanska.debian.org
Tue Feb 16 12:05:20 GMT 2016
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 <apo at debian.org>
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 <apo at debian.org>
+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
More information about the pkg-java-commits
mailing list