Manifest.java revision 0
0N/A * Copyright 1996-1999 Sun Microsystems, Inc. All Rights Reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 0N/A * published by the Free Software Foundation. Sun designates this 0N/A * particular file as subject to the "Classpath" exception as provided 0N/A * by Sun in the LICENSE file that accompanied this code. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 0N/A * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 0N/A * CA 95054 USA or visit www.sun.com if you need additional information or 0N/A * have any questions. 0N/A * This is OBSOLETE. DO NOT USE THIS. Use java.util.jar.Manifest 0N/A * instead. It has to stay here because some apps (namely HJ and HJV) 0N/A * call directly into it. 0N/A * @author David Brown 0N/A * @author Benjamin Renaud 0N/A /* list of headers that all pertain to a particular 0N/A * file in the archive 0N/A /* a hashtable of entries, for fast lookup */ 0N/A static final byte[]
EOL = {(
byte)
'\r', (
byte)
'\n'};
0N/A * Parse a manifest from a stream, optionally computing hashes 0N/A /* do not rely on available() here! */ 0N/A /* recursively generate manifests from directory tree */ 0N/A * File names are represented internally using "/"; 0N/A * they are converted to the local format for anything else 0N/A // If unnamed or is a directory return immediately 0N/A /* compute hashes, write over any other "Hash-Algorithms" (?) */ 0N/A /* Add a manifest file at current position in a stream 0N/A /* the first header in the file should be the global one. 0N/A * It should say "Manifest-Version: x.x"; if not add it 0N/A /* Assume this is a user-defined manifest. If it has a Name: <..> 0N/A * field, then it is not global, in which case we just add our own 0N/A * global Manifest-version: <version> 0N/A * If the first MessageHeader has no Name: <..>, we assume it 0N/A * is a global header and so prepend Manifest to it.