[Fuse-for-macosx-commits] SF.net SVN: fuse-for-macosx: [370] trunk
Brought to you by:
fredm
|
From: <fr...@us...> - 2007-06-10 00:25:56
|
Revision: 370
http://svn.sourceforge.net/fuse-for-macosx/?rev=370&view=rev
Author: fredm
Date: 2007-06-09 17:25:57 -0700 (Sat, 09 Jun 2007)
Log Message:
-----------
Merge up to r366 from Release-0_8_0 branch.
Modified Paths:
--------------
trunk/FuseImporter/libspectrum.h
trunk/bzip2/English.lproj/InfoPlist.strings
trunk/bzip2/Info.plist
trunk/bzip2/bzip2/CHANGES
trunk/bzip2/bzip2/LICENSE
trunk/bzip2/bzip2/Makefile
trunk/bzip2/bzip2/Makefile-libbz2_so
trunk/bzip2/bzip2/README
trunk/bzip2/bzip2/README.COMPILATION.PROBLEMS
trunk/bzip2/bzip2/README.XML.STUFF
trunk/bzip2/bzip2/blocksort.c
trunk/bzip2/bzip2/bz-fo.xsl
trunk/bzip2/bzip2/bzdiff
trunk/bzip2/bzip2/bzgrep
trunk/bzip2/bzip2/bzip2.1
trunk/bzip2/bzip2/bzip2.1.preformatted
trunk/bzip2/bzip2/bzip2.c
trunk/bzip2/bzip2/bzip2.txt
trunk/bzip2/bzip2/bzip2recover.c
trunk/bzip2/bzip2/bzlib.c
trunk/bzip2/bzip2/bzlib.h
trunk/bzip2/bzip2/bzlib_private.h
trunk/bzip2/bzip2/compress.c
trunk/bzip2/bzip2/crctable.c
trunk/bzip2/bzip2/decompress.c
trunk/bzip2/bzip2/dlltest.c
trunk/bzip2/bzip2/entities.xml
trunk/bzip2/bzip2/format.pl
trunk/bzip2/bzip2/huffman.c
trunk/bzip2/bzip2/manual.html
trunk/bzip2/bzip2/manual.pdf
trunk/bzip2/bzip2/manual.ps
trunk/bzip2/bzip2/manual.xml
trunk/bzip2/bzip2/mk251.c
trunk/bzip2/bzip2/randtable.c
trunk/bzip2/bzip2/spewG.c
trunk/bzip2/bzip2/unzcrash.c
trunk/bzip2/bzip2/words0
trunk/bzip2/bzip2/words2
trunk/bzip2/bzip2/words3
trunk/bzip2/bzip2/xmlproc.sh
trunk/fuse/ChangeLog
trunk/fuse/README
trunk/fuse/acinclude.m4
trunk/fuse/compat/mkstemp.c
trunk/fuse/configure.in
trunk/fuse/display.c
trunk/fuse/fuse.cpp
trunk/fuse/fusepb/English.lproj/InfoPlist.strings
trunk/fuse/fusepb/Info-Fuse.plist
trunk/fuse/fusepb/SDLMain.mm
trunk/fuse/fusepb/config.h
trunk/fuse/fusepb/controllers/DebuggerController.m
trunk/fuse/fusepb/controllers/FuseController.m
trunk/fuse/fusepb/controllers/RollbackController.m
trunk/fuse/fusepb/nibs/Debugger.nib/info.nib
trunk/fuse/fusepb/nibs/Debugger.nib/keyedobjects.nib
trunk/fuse/fusepb/nibs/Preferences.nib/info.nib
trunk/fuse/fusepb/nibs/Preferences.nib/keyedobjects.nib
trunk/fuse/fusepb/resources/Fuse Help/html/changelog.html
trunk/fuse/fusepb/resources/Fuse Help/html/divide.html
trunk/fuse/fusepb/resources/Fuse Help/html/tocstart.html
trunk/fuse/hacking/ChangeLog
trunk/fuse/hacking/cvs-tags
trunk/fuse/hacking/ui.txt
trunk/fuse/if1.c
trunk/fuse/joystick.c
trunk/fuse/lib/Makefile.am
trunk/fuse/machines/pentagon.c
trunk/fuse/machines/scorpion.c
trunk/fuse/machines/spec128.c
trunk/fuse/machines/spec16.c
trunk/fuse/machines/spec48.c
trunk/fuse/machines/spec_se.c
trunk/fuse/man/fuse.1
trunk/fuse/periph.c
trunk/fuse/printer.c
trunk/fuse/rzx.c
trunk/fuse/rzx.h
trunk/fuse/screenshot.c
trunk/fuse/settings.dat
trunk/fuse/snapshot.c
trunk/fuse/sound/aosound.c
trunk/fuse/sound/coreaudiosound.c
trunk/fuse/sound/sdlsound.c
trunk/fuse/sound.c
trunk/fuse/spectrum.c
trunk/fuse/spectrum.h
trunk/fuse/ui/fb/fbdisplay.c
trunk/fuse/ui/ggi/ggidisplay.c
trunk/fuse/ui/gtk/gtkdisplay.c
trunk/fuse/ui/gtk/gtkui.c
trunk/fuse/ui/scaler/scaler.c
trunk/fuse/ui/scaler/scalers.cpp
trunk/fuse/ui/sdl/sdldisplay.c
trunk/fuse/ui/svga/svgadisplay.c
trunk/fuse/ui/uidisplay.h
trunk/fuse/ui/win32/win32display.c
trunk/fuse/ui/xlib/xdisplay.c
trunk/fuse/ui.c
trunk/fuse/uidisplay.c
trunk/fuse/ula.c
trunk/fuse/ula.h
trunk/fuse/utils.c
trunk/fuse/widget/Makefile.am
trunk/fuse/widget/filesel.c
trunk/fuse/widget/menu.c
trunk/fuse/widget/pokefinder.c
trunk/libspectrum/Info.plist
trunk/libspectrum/libspectrum/ChangeLog
trunk/libspectrum/libspectrum/Makefile.am
trunk/libspectrum/libspectrum/README
trunk/libspectrum/libspectrum/acinclude.m4
trunk/libspectrum/libspectrum/configure.in
trunk/libspectrum/libspectrum/doc/cvs-tags
trunk/libspectrum/libspectrum/doc/libspectrum.3
trunk/libspectrum/libspectrum/doc/libspectrum.txt
trunk/libspectrum/libspectrum/hacking/ChangeLog
trunk/libspectrum/libspectrum/internals.h
trunk/libspectrum/libspectrum/libspectrum.h.in
trunk/libspectrum/libspectrum/rzx.c
trunk/libspectrum/libspectrum/tap.c
trunk/libspectrum/libspectrum/tzx_read.c
trunk/libspectrum/libspectrum/z80.c
trunk/libspectrum/libspectrum.h
trunk/libspectrum/libspectrum.xcodeproj/project.pbxproj
Added Paths:
-----------
trunk/fuse/fusepb/resources/Fuse Help/html/spotlight.html
trunk/libspectrum/libspectrum/hacking/.cvsignore
trunk/libspectrum/libspectrum/hacking/Makefile.am
Removed Paths:
-------------
trunk/bzip2/bzip2/Y2K_INFO
Modified: trunk/FuseImporter/libspectrum.h
===================================================================
--- trunk/FuseImporter/libspectrum.h 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/FuseImporter/libspectrum.h 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,7 +1,7 @@
/* libspectrum.h: the library for dealing with ZX Spectrum emulator files
Copyright (c) 2001-2007 Philip Kendall, Darren Salt, Fredrick Meunier
- $Id: libspectrum.h.in,v 1.141 2007/02/02 16:35:42 pak21 Exp $
+ $Id: libspectrum.h.in,v 1.141.2.2 2007/05/09 20:08:07 pak21 Exp $
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -929,13 +929,13 @@
typedef struct libspectrum_tape_generalised_data_symbol libspectrum_tape_generalised_data_symbol;
-libspectrum_dword libspectrum_tape_generalised_data_symbol_table_symbols_in_block( const libspectrum_tape_generalised_data_symbol_table *table );
-libspectrum_byte libspectrum_tape_generalised_data_symbol_table_max_pulses( const libspectrum_tape_generalised_data_symbol_table *table );
-libspectrum_word libspectrum_tape_generalised_data_symbol_table_symbols_in_table( const libspectrum_tape_generalised_data_symbol_table *table );
-libspectrum_tape_generalised_data_symbol* libspectrum_tape_generalised_data_symbol_table_symbol( const libspectrum_tape_generalised_data_symbol_table *table, size_t which );
+libspectrum_dword WIN32_DLL libspectrum_tape_generalised_data_symbol_table_symbols_in_block( const libspectrum_tape_generalised_data_symbol_table *table );
+libspectrum_byte WIN32_DLL libspectrum_tape_generalised_data_symbol_table_max_pulses( const libspectrum_tape_generalised_data_symbol_table *table );
+libspectrum_word WIN32_DLL libspectrum_tape_generalised_data_symbol_table_symbols_in_table( const libspectrum_tape_generalised_data_symbol_table *table );
+libspectrum_tape_generalised_data_symbol* WIN32_DLL libspectrum_tape_generalised_data_symbol_table_symbol( const libspectrum_tape_generalised_data_symbol_table *table, size_t which );
-libspectrum_tape_generalised_data_symbol_edge_type libspectrum_tape_generalised_data_symbol_type( const libspectrum_tape_generalised_data_symbol *symbol );
-libspectrum_word libspectrum_tape_generalised_data_symbol_pulse( const libspectrum_tape_generalised_data_symbol *symbol, size_t which );
+libspectrum_tape_generalised_data_symbol_edge_type WIN32_DLL libspectrum_tape_generalised_data_symbol_type( const libspectrum_tape_generalised_data_symbol *symbol );
+libspectrum_word WIN32_DLL libspectrum_tape_generalised_data_symbol_pulse( const libspectrum_tape_generalised_data_symbol *symbol, size_t which );
/*
@@ -967,7 +967,7 @@
libspectrum_rzx_start_playback( libspectrum_rzx *rzx, int which,
libspectrum_snap **snap );
libspectrum_error WIN32_DLL
-libspectrum_rzx_playback_frame( libspectrum_rzx *rzx, int *finished );
+libspectrum_rzx_playback_frame( libspectrum_rzx *rzx, int *finished, libspectrum_snap **snap );
libspectrum_error WIN32_DLL
libspectrum_rzx_playback( libspectrum_rzx *rzx, libspectrum_byte *byte );
Modified: trunk/bzip2/English.lproj/InfoPlist.strings
===================================================================
(Binary files differ)
Modified: trunk/bzip2/Info.plist
===================================================================
--- trunk/bzip2/Info.plist 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/Info.plist 2007-06-10 00:25:57 UTC (rev 370)
@@ -17,7 +17,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>1.0.3</string>
+ <string>1.0.4</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
Modified: trunk/bzip2/bzip2/CHANGES
===================================================================
--- trunk/bzip2/bzip2/CHANGES 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/CHANGES 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,5 +1,18 @@
+ ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+ bzip2/libbzip2 version 1.0.4 of 20 December 2006
+ Copyright (C) 1996-2006 Julian Seward <js...@bz...>
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------
+
+
0.9.0
~~~~~
First version.
@@ -261,7 +274,7 @@
decompressor to crash, loop or access memory which does not
belong to it. If you are using bzip2 or the library to
decompress bitstreams from untrusted sources, an upgrade
- to 1.0.3 is recommended.
+ to 1.0.3 is recommended. This fixes CAN-2005-1260.
* The documentation has been converted to XML, from which html
and pdf can be derived.
@@ -273,3 +286,29 @@
* The BZ_NO_STDIO cpp symbol was not properly observed in 1.0.2.
This has been fixed.
+
+
+1.0.4 (20 Dec 06)
+~~~~~~~~~~~~~~~~~
+Fixes some minor bugs since the last version, 1.0.3.
+
+* Fix file permissions race problem (CAN-2005-0953).
+
+* Avoid possible segfault in BZ2_bzclose. From Coverity's NetBSD
+ scan.
+
+* 'const'/prototype cleanups in the C code.
+
+* Change default install location to /usr/local, and handle multiple
+ 'make install's without error.
+
+* Sanitise file names more carefully in bzgrep. Fixes CAN-2005-0758
+ to the extent that applies to bzgrep.
+
+* Use 'mktemp' rather than 'tempfile' in bzdiff.
+
+* Tighten up a couple of assertions in blocksort.c following automated
+ analysis.
+
+* Fix minor doc/comment bugs.
+
Modified: trunk/bzip2/bzip2/LICENSE
===================================================================
--- trunk/bzip2/bzip2/LICENSE 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/LICENSE 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,6 +1,8 @@
+--------------------------------------------------------------------------
+
This program, "bzip2", the associated library "libbzip2", and all
-documentation, are copyright (C) 1996-2005 Julian R Seward. All
+documentation, are copyright (C) 1996-2006 Julian R Seward. All
rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -35,6 +37,7 @@
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Julian Seward, Cambridge, UK.
-js...@ac...
-bzip2/libbzip2 version 1.0.3 of 15 February 2005
+js...@bz...
+bzip2/libbzip2 version 1.0.4 of 20 December 2006
+--------------------------------------------------------------------------
Modified: trunk/bzip2/bzip2/Makefile
===================================================================
--- trunk/bzip2/bzip2/Makefile 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/Makefile 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,3 +1,16 @@
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.4 of 20 December 2006
+# Copyright (C) 1996-2006 Julian Seward <js...@bz...>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
SHELL=/bin/sh
@@ -8,10 +21,10 @@
LDFLAGS=
BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-Wall -Winline -O -g $(BIGFILES)
+CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
# Where you want it installed when you do 'make install'
-PREFIX=/usr
+PREFIX=/usr/local
OBJS= blocksort.o \
@@ -77,14 +90,14 @@
cp -f libbz2.a $(PREFIX)/lib
chmod a+r $(PREFIX)/lib/libbz2.a
cp -f bzgrep $(PREFIX)/bin/bzgrep
- ln $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
- ln $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
+ ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep
+ ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep
chmod a+x $(PREFIX)/bin/bzgrep
cp -f bzmore $(PREFIX)/bin/bzmore
- ln $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
+ ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless
chmod a+x $(PREFIX)/bin/bzmore
cp -f bzdiff $(PREFIX)/bin/bzdiff
- ln $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
+ ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp
chmod a+x $(PREFIX)/bin/bzdiff
cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1
chmod a+r $(PREFIX)/man/man1/bzgrep.1
@@ -124,10 +137,10 @@
distclean: clean
rm -f manual.ps manual.html manual.pdf
-DISTNAME=bzip2-1.0.3
+DISTNAME=bzip2-1.0.4
dist: check manual
rm -f $(DISTNAME)
- ln -sf . $(DISTNAME)
+ ln -s -f . $(DISTNAME)
tar cvf $(DISTNAME).tar \
$(DISTNAME)/blocksort.c \
$(DISTNAME)/huffman.c \
@@ -167,7 +180,6 @@
$(DISTNAME)/libbz2.dsp \
$(DISTNAME)/dlltest.dsp \
$(DISTNAME)/makefile.msc \
- $(DISTNAME)/Y2K_INFO \
$(DISTNAME)/unzcrash.c \
$(DISTNAME)/spewG.c \
$(DISTNAME)/mk251.c \
Modified: trunk/bzip2/bzip2/Makefile-libbz2_so
===================================================================
--- trunk/bzip2/bzip2/Makefile-libbz2_so 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/Makefile-libbz2_so 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,15 +1,30 @@
# This Makefile builds a shared version of the library,
-# libbz2.so.1.0.3, with soname libbz2.so.1.0,
+# libbz2.so.1.0.4, with soname libbz2.so.1.0,
# at least on x86-Linux (RedHat 7.2),
# with gcc-2.96 20000731 (Red Hat Linux 7.1 2.96-98).
-# Please see the README file for some
-# important info about building the library like this.
+# Please see the README file for some important info
+# about building the library like this.
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.4 of 20 December 2006
+# Copyright (C) 1996-2006 Julian Seward <js...@bz...>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
+
+
SHELL=/bin/sh
CC=gcc
BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-fpic -fPIC -Wall -Winline -O -g
+CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
OBJS= blocksort.o \
huffman.o \
@@ -20,13 +35,13 @@
bzlib.o
all: $(OBJS)
- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.3 $(OBJS)
- $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.3
+ $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.4 $(OBJS)
+ $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.4
rm -f libbz2.so.1.0
- ln -s libbz2.so.1.0.3 libbz2.so.1.0
+ ln -s libbz2.so.1.0.4 libbz2.so.1.0
clean:
- rm -f $(OBJS) bzip2.o libbz2.so.1.0.3 libbz2.so.1.0 bzip2-shared
+ rm -f $(OBJS) bzip2.o libbz2.so.1.0.4 libbz2.so.1.0 bzip2-shared
blocksort.o: blocksort.c
$(CC) $(CFLAGS) -c blocksort.c
Modified: trunk/bzip2/bzip2/README
===================================================================
--- trunk/bzip2/bzip2/README 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/README 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,35 +1,50 @@
-This is the README for bzip2, a block-sorting file compressor, version
-1.0.3. This version is fully compatible with the previous public
-releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1 and 1.0.2.
+This is the README for bzip2/libzip2.
+This version is fully compatible with the previous public releases.
-bzip2-1.0.3 is distributed under a BSD-style license. For details,
-see the file LICENSE.
+------------------------------------------------------------------
+This file is part of bzip2/libbzip2, a program and library for
+lossless, block-sorting data compression.
+bzip2/libbzip2 version 1.0.4 of 20 December 2006
+Copyright (C) 1996-2006 Julian Seward <js...@bz...>
+
+Please read the WARNING, DISCLAIMER and PATENTS sections in this file.
+
+This program is released under the terms of the license contained
+in the file LICENSE.
+------------------------------------------------------------------
+
Complete documentation is available in Postscript form (manual.ps),
PDF (manual.pdf) or html (manual.html). A plain-text version of the
-manual page is available as bzip2.txt. A statement about Y2K issues
-is now included in the file Y2K_INFO.
+manual page is available as bzip2.txt.
HOW TO BUILD -- UNIX
-Type `make'. This builds the library libbz2.a and then the
-programs bzip2 and bzip2recover. Six self-tests are run.
-If the self-tests complete ok, carry on to installation:
+Type 'make'. This builds the library libbz2.a and then the programs
+bzip2 and bzip2recover. Six self-tests are run. If the self-tests
+complete ok, carry on to installation:
-To install in /usr/bin, /usr/lib, /usr/man and /usr/include, type
+To install in /usr/local/bin, /usr/local/lib, /usr/local/man and
+/usr/local/include, type
+
make install
-To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type
+
+To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type
+
make install PREFIX=/xxx/yyy
+
If you are (justifiably) paranoid and want to see what 'make install'
is going to do, you can first do
+
make -n install or
make -n install PREFIX=/xxx/yyy respectively.
-The -n instructs make to show the commands it would execute, but
-not actually execute them.
+The -n instructs make to show the commands it would execute, but not
+actually execute them.
+
HOW TO BUILD -- UNIX, shared library libbz2.so.
Do 'make -f Makefile-libbz2_so'. This Makefile seems to work for
@@ -49,23 +64,25 @@
bzCompress to BZ2_bzCompress, to avoid namespace pollution.
Unfortunately this means that the libbz2.so created by
Makefile-libbz2_so will not work with any program which used an older
-version of the library. Sorry. I do encourage library clients to
-make the effort to upgrade to use version 1.0, since it is both faster
-and more robust than previous versions.
+version of the library. I do encourage library clients to make the
+effort to upgrade to use version 1.0, since it is both faster and more
+robust than previous versions.
HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc.
It's difficult for me to support compilation on all these platforms.
My approach is to collect binaries for these platforms, and put them
-on the master web page (http://sources.redhat.com/bzip2). Look there.
-However (FWIW), bzip2-1.0.X is very standard ANSI C and should compile
+on the master web site (http://www.bzip.org). Look there. However
+(FWIW), bzip2-1.0.X is very standard ANSI C and should compile
unmodified with MS Visual C. If you have difficulties building, you
might want to read README.COMPILATION.PROBLEMS.
At least using MS Visual C++ 6, you can build from the unmodified
sources by issuing, in a command shell:
+
nmake -f makefile.msc
+
(you may need to first run the MSVC-provided script VCVARS32.BAT
so as to set up paths to the MSVC tools correctly).
@@ -86,18 +103,19 @@
WARNING:
- This program (attempts to) compress data by performing several
- non-trivial transformations on it. Unless you are 100% familiar
- with *all* the algorithms contained herein, and with the
- consequences of modifying them, you should NOT meddle with the
- compression or decompression machinery. Incorrect changes can and
- very likely *will* lead to disastrous loss of data.
+ This program and library (attempts to) compress data by
+ performing several non-trivial transformations on it.
+ Unless you are 100% familiar with *all* the algorithms
+ contained herein, and with the consequences of modifying them,
+ you should NOT meddle with the compression or decompression
+ machinery. Incorrect changes can and very likely *will*
+ lead to disastrous loss of data.
DISCLAIMER:
I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE
- USE OF THIS PROGRAM, HOWSOEVER CAUSED.
+ USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED.
Every compression of a file implies an assumption that the
compressed file can be decompressed to reproduce the original.
@@ -110,19 +128,18 @@
PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER
SMALL, THAT THE DATA WILL NOT BE RECOVERABLE.
- That is not to say this program is inherently unreliable. Indeed,
- I very much hope the opposite is true. bzip2 has been carefully
- constructed and extensively tested.
+ That is not to say this program is inherently unreliable.
+ Indeed, I very much hope the opposite is true. bzip2/libbzip2
+ has been carefully constructed and extensively tested.
PATENTS:
- To the best of my knowledge, bzip2 does not use any patented
- algorithms. However, I do not have the resources to carry out
- a patent search. Therefore I cannot give any guarantee of the
- above statement.
+ To the best of my knowledge, bzip2/libbzip2 does not use any
+ patented algorithms. However, I do not have the resources
+ to carry out a patent search. Therefore I cannot give any
+ guarantee of the above statement.
-End of legalities.
WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ?
@@ -156,21 +173,23 @@
See the CHANGES file.
+WHAT'S NEW IN 1.0.4 ?
+ See the CHANGES file.
+
+
I hope you find bzip2 useful. Feel free to contact me at
js...@bz...
if you have any suggestions or queries. Many people mailed me with
comments, suggestions and patches after the releases of bzip-0.15,
-bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1 and
-1.0.2, and the changes in bzip2 are largely a result of this feedback.
-I thank you for your comments.
+bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
+1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this
+feedback. I thank you for your comments.
-At least for the time being, bzip2's "home" is (or can be reached via)
-http://www.bzip.org
+bzip2's "home" is http://www.bzip.org/
Julian Seward
js...@bz...
-
Cambridge, UK.
18 July 1996 (version 0.15)
@@ -183,3 +202,4 @@
5 May 2000 (bzip2, version 1.0pre8)
30 December 2001 (bzip2, version 1.0.2pre1)
15 February 2005 (bzip2, version 1.0.3)
+20 December 2006 (bzip2, version 1.0.4)
Modified: trunk/bzip2/bzip2/README.COMPILATION.PROBLEMS
===================================================================
--- trunk/bzip2/bzip2/README.COMPILATION.PROBLEMS 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/README.COMPILATION.PROBLEMS 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,32 +1,47 @@
+------------------------------------------------------------------
+This file is part of bzip2/libbzip2, a program and library for
+lossless, block-sorting data compression.
-bzip2-1.0.3 should compile without problems on the vast majority of
+bzip2/libbzip2 version 1.0.4 of 20 December 2006
+Copyright (C) 1996-2006 Julian Seward <js...@bz...>
+
+Please read the WARNING, DISCLAIMER and PATENTS sections in the
+README file.
+
+This program is released under the terms of the license contained
+in the file LICENSE.
+------------------------------------------------------------------
+
+bzip2-1.0.4 should compile without problems on the vast majority of
platforms. Using the supplied Makefile, I've built and tested it
-myself for x86-linux and x86_64-linux. With makefile.msc, Visual C++
+myself for x86-linux and amd64-linux. With makefile.msc, Visual C++
6.0 and nmake, you can build a native Win32 version too. Large file
-support seems to work correctly on at least alpha-tru64unix and
-x86-cygwin32 (on Windows 2000).
+support seems to work correctly on at least on amd64-linux.
When I say "large file" I mean a file of size 2,147,483,648 (2^31)
bytes or above. Many older OSs can't handle files above this size,
but many newer ones can. Large files are pretty huge -- most files
you'll encounter are not Large Files.
-Earlier versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide
-variety of platforms without difficulty, and I hope this version will
-continue in that tradition. However, in order to support large files,
-I've had to include the define -D_FILE_OFFSET_BITS=64 in the Makefile.
-This can cause problems.
+Early versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide variety
+of platforms without difficulty, and I hope this version will continue
+in that tradition. However, in order to support large files, I've had
+to include the define -D_FILE_OFFSET_BITS=64 in the Makefile. This
+can cause problems.
The technique of adding -D_FILE_OFFSET_BITS=64 to get large file
support is, as far as I know, the Recommended Way to get correct large
file support. For more details, see the Large File Support
Specification, published by the Large File Summit, at
+
http://ftp.sas.com/standards/large.file
As a general comment, if you get compilation errors which you think
are related to large file support, try removing the above define from
the Makefile, ie, delete the line
+
BIGFILES=-D_FILE_OFFSET_BITS=64
+
from the Makefile, and do 'make clean ; make'. This will give you a
version of bzip2 without large file support, which, for most
applications, is probably not a problem.
@@ -37,3 +52,7 @@
large file support, if you are feeling paranoid. Be aware though that
any compilation problems which affect bzip2 will also affect spewG.c,
alas.
+
+AIX: I have reports that for large file support, you need to specify
+-D_LARGE_FILES rather than -D_FILE_OFFSET_BITS=64. I have not tested
+this myself.
Modified: trunk/bzip2/bzip2/README.XML.STUFF
===================================================================
--- trunk/bzip2/bzip2/README.XML.STUFF 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/README.XML.STUFF 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,3 +1,17 @@
+ ----------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
+
+ bzip2/libbzip2 version 1.0.4 of 20 December 2006
+ Copyright (C) 1996-2006 Julian Seward <js...@bz...>
+
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
+
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ----------------------------------------------------------------
+
The script xmlproc.sh takes an xml file as input,
and processes it to create .pdf, .html or .ps output.
It uses format.pl, a perl script to format <pre> blocks nicely,
@@ -9,16 +23,16 @@
Usage:
- xmlproc.sh -v manual.xml
+ ./xmlproc.sh -v manual.xml
Validates an xml file to ensure no dtd-compliance errors
- xmlproc.sh -html manual.xml
+ ./xmlproc.sh -html manual.xml
Output: manual.html
- xmlproc.sh -pdf manual.xml
+ ./xmlproc.sh -pdf manual.xml
Output: manual.pdf
- xmlproc.sh -ps manual.xml
+ ./xmlproc.sh -ps manual.xml
Output: manual.ps
Deleted: trunk/bzip2/bzip2/Y2K_INFO
===================================================================
--- trunk/bzip2/bzip2/Y2K_INFO 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/Y2K_INFO 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,34 +0,0 @@
-
-Y2K status of bzip2 and libbzip2, versions 0.1, 0.9.0 and 0.9.5
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Informally speaking:
- bzip2 is a compression program built on top of libbzip2,
- a library which does the real work of compression and
- decompression. As far as I am aware, libbzip2 does not have
- any date-related code at all.
-
- bzip2 itself copies dates from source to destination files
- when compressing or decompressing, using the 'stat' and 'utime'
- UNIX system calls. It doesn't examine, manipulate or store the
- dates in any way. So as far as I can see, there shouldn't be any
- problem with bzip2 providing 'stat' and 'utime' work correctly
- on your system.
-
- On non-unix platforms (those for which BZ_UNIX in bzip2.c is
- not set to 1), bzip2 doesn't even do the date copying.
-
- Overall, informally speaking, I don't think bzip2 or libbzip2
- have a Y2K problem.
-
-Formally speaking:
- I am not prepared to offer you any assurance whatsoever
- regarding Y2K issues in my software. You alone assume the
- entire risk of using the software. The disclaimer of liability
- in the LICENSE file in the bzip2 source distribution continues
- to apply on this issue as with every other issue pertaining
- to the software.
-
-Julian Seward
-Cambridge, UK
-25 August 1999
Modified: trunk/bzip2/bzip2/blocksort.c
===================================================================
--- trunk/bzip2/bzip2/blocksort.c 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/blocksort.c 2007-06-10 00:25:57 UTC (rev 370)
@@ -4,68 +4,21 @@
/*--- blocksort.c ---*/
/*-------------------------------------------------------------*/
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
- Copyright (C) 1996-2005 Julian R Seward. All rights reserved.
+ bzip2/libbzip2 version 1.0.4 of 20 December 2006
+ Copyright (C) 1996-2006 Julian Seward <js...@bz...>
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
- 2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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.
-
- Julian Seward, Cambridge, UK.
- js...@bz...
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
-
- To get some idea how the block sorting algorithms in this file
- work, read my paper
- On the Performance of BWT Sorting Algorithms
- in Proceedings of the IEEE Data Compression Conference 2000,
- Snowbird, Utah, USA, 27-30 March 2000. The main sort in this
- file implements the algorithm called cache in the paper.
---*/
-
-
#include "bzlib_private.h"
/*---------------------------------------------*/
@@ -155,7 +108,7 @@
while (sp > 0) {
- AssertH ( sp < FALLBACK_QSORT_STACK_SIZE, 1004 );
+ AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 );
fpop ( lo, hi );
if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
@@ -690,7 +643,7 @@
while (sp > 0) {
- AssertH ( sp < MAIN_QSORT_STACK_SIZE, 1001 );
+ AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
mpop ( lo, hi, d );
if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
Modified: trunk/bzip2/bzip2/bz-fo.xsl
===================================================================
--- trunk/bzip2/bzip2/bz-fo.xsl 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/bz-fo.xsl 2007-06-10 00:25:57 UTC (rev 370)
@@ -254,4 +254,23 @@
</xsl:template>
+<!-- Bug-fix for Suse 10 PassiveTex version -->
+<!-- Precompute attribute values 'cos PassiveTex is too stupid: -->
+<xsl:attribute-set name="component.title.properties">
+ <xsl:attribute name="keep-with-next.within-column">always</xsl:attribute>
+ <xsl:attribute name="space-before.optimum">
+ <xsl:value-of select="concat($body.font.master, 'pt')"/>
+ </xsl:attribute>
+ <xsl:attribute name="space-before.minimum">
+ <xsl:value-of select="$body.font.master * 0.8"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="space-before.maximum">
+ <xsl:value-of select="$body.font.master * 1.2"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="hyphenate">false</xsl:attribute>
+</xsl:attribute-set>
+
+
</xsl:stylesheet>
Modified: trunk/bzip2/bzip2/bzdiff
===================================================================
--- trunk/bzip2/bzip2/bzdiff 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/bzdiff 2007-06-10 00:25:57 UTC (rev 370)
@@ -12,7 +12,7 @@
# necessary) and fed to cmp or diff. The exit status from cmp
# or diff is preserved.
-PATH="/usr/bin:$PATH"; export PATH
+PATH="/usr/bin:/bin:$PATH"; export PATH
prog=`echo $0 | sed 's|.*/||'`
case "$prog" in
*cmp) comp=${CMP-cmp} ;;
@@ -37,7 +37,7 @@
echo "Usage: $prog [${comp}_options] file [file]"
exit 1
fi
-tmp=`tempfile -d /tmp -p bz` || {
+tmp=`mktemp ${TMPDIR:-/tmp}/bzdiff.XXXXXXXXXX` || {
echo 'cannot create a temporary file' >&2
exit 1
}
Modified: trunk/bzip2/bzip2/bzgrep
===================================================================
--- trunk/bzip2/bzip2/bzgrep 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/bzgrep 2007-06-10 00:25:57 UTC (rev 370)
@@ -63,7 +63,11 @@
bzip2 -cdfq "$i" | $grep $opt "$pat"
r=$?
else
- bzip2 -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${i}:|"
+ j=${i//\\/\\\\}
+ j=${j//|/\\|}
+ j=${j//&/\\&}
+ j=`printf "%s" "$j" | tr '\n' ' '`
+ bzip2 -cdfq "$i" | $grep $opt "$pat" | sed "s|^|${j}:|"
r=$?
fi
test "$r" -ne 0 && res="$r"
Modified: trunk/bzip2/bzip2/bzip2.1
===================================================================
--- trunk/bzip2/bzip2/bzip2.1 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/bzip2.1 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,7 +1,7 @@
.PU
.TH bzip2 1
.SH NAME
-bzip2, bunzip2 \- a block-sorting file compressor, v1.0.3
+bzip2, bunzip2 \- a block-sorting file compressor, v1.0.4
.br
bzcat \- decompresses files to stdout
.br
@@ -405,11 +405,11 @@
tries hard to detect I/O errors and exit cleanly, but the details of
what the problem is sometimes seem rather misleading.
-This manual page pertains to version 1.0.3 of
+This manual page pertains to version 1.0.4 of
.I bzip2.
Compressed data created by this version is entirely forwards and
backwards compatible with the previous public releases, versions
-0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1 and 1.0.2, but with the following
+0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and 1.0.3, but with the following
exception: 0.9.0 and above can correctly decompress multiple
concatenated compressed files. 0.1pl2 cannot do this; it will stop
after decompressing just the first file in the stream.
Modified: trunk/bzip2/bzip2/bzip2.1.preformatted
===================================================================
--- trunk/bzip2/bzip2/bzip2.1.preformatted 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/bzip2.1.preformatted 2007-06-10 00:25:57 UTC (rev 370)
@@ -3,7 +3,7 @@
NNAAMMEE
- bzip2, bunzip2 − a block‐sorting file compressor, v1.0.3
+ bzip2, bunzip2 − a block‐sorting file compressor, v1.0.4
bzcat − decompresses files to stdout
bzip2recover − recovers data from damaged bzip2 files
@@ -348,14 +348,14 @@
but the details of what the problem is sometimes seem
rather misleading.
- This manual page pertains to version 1.0.3 of _b_z_i_p_2_. Com
+ This manual page pertains to version 1.0.4 of _b_z_i_p_2_. Com
pressed data created by this version is entirely forwards
and backwards compatible with the previous public
- releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1 and
- 1.0.2, but with the following exception: 0.9.0 and above
- can correctly decompress multiple concatenated compressed
- files. 0.1pl2 cannot do this; it will stop after decom
- pressing just the first file in the stream.
+ releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
+ 1.0.2 and 1.0.3, but with the following exception: 0.9.0
+ and above can correctly decompress multiple concatenated
+ compressed files. 0.1pl2 cannot do this; it will stop
+ after decompressing just the first file in the stream.
_b_z_i_p_2_r_e_c_o_v_e_r versions prior to 1.0.2 used 32‐bit integers
to represent bit positions in compressed files, so they
Modified: trunk/bzip2/bzip2/bzip2.c
===================================================================
--- trunk/bzip2/bzip2/bzip2.c 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/bzip2.c 2007-06-10 00:25:57 UTC (rev 370)
@@ -3,118 +3,26 @@
/*--- A block-sorting, lossless compressor bzip2.c ---*/
/*-----------------------------------------------------------*/
-/*--
- This file is a part of bzip2 and/or libbzip2, a program and
- library for lossless, block-sorting data compression.
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
- Copyright (C) 1996-2005 Julian R Seward. All rights reserved.
+ bzip2/libbzip2 version 1.0.4 of 20 December 2006
+ Copyright (C) 1996-2006 Julian Seward <js...@bz...>
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
- 2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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.
-
- Julian Seward, Cambridge, UK.
- js...@bz...
- bzip2/libbzip2 version 1.0 of 21 March 2000
-
- This program is based on (at least) the work of:
- Mike Burrows
- David Wheeler
- Peter Fenwick
- Alistair Moffat
- Radford Neal
- Ian H. Witten
- Robert Sedgewick
- Jon L. Bentley
-
- For more information on these sources, see the manual.
---*/
-
-
-/*----------------------------------------------------*/
-/*--- IMPORTANT ---*/
-/*----------------------------------------------------*/
-
-/*--
- WARNING:
- This program and library (attempts to) compress data by
- performing several non-trivial transformations on it.
- Unless you are 100% familiar with *all* the algorithms
- contained herein, and with the consequences of modifying them,
- you should NOT meddle with the compression or decompression
- machinery. Incorrect changes can and very likely *will*
- lead to disasterous loss of data.
-
- DISCLAIMER:
- I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE
- USE OF THIS PROGRAM, HOWSOEVER CAUSED.
-
- Every compression of a file implies an assumption that the
- compressed file can be decompressed to reproduce the original.
- Great efforts in design, coding and testing have been made to
- ensure that this program works correctly. However, the
- complexity of the algorithms, and, in particular, the presence
- of various special cases in the code which occur with very low
- but non-zero probability make it impossible to rule out the
- possibility of bugs remaining in the program. DO NOT COMPRESS
- ANY DATA WITH THIS PROGRAM AND/OR LIBRARY UNLESS YOU ARE PREPARED
- TO ACCEPT THE POSSIBILITY, HOWEVER SMALL, THAT THE DATA WILL
- NOT BE RECOVERABLE.
-
- That is not to say this program is inherently unreliable.
- Indeed, I very much hope the opposite is true. bzip2/libbzip2
- has been carefully constructed and extensively tested.
-
- PATENTS:
- To the best of my knowledge, bzip2/libbzip2 does not use any
- patented algorithms. However, I do not have the resources
- available to carry out a full patent search. Therefore I cannot
- give any guarantee of the above statement.
---*/
-
-
-
-/*----------------------------------------------------*/
-/*--- and now for something much more pleasant :-) ---*/
-/*----------------------------------------------------*/
-
-/*---------------------------------------------*/
-/*--
- Place a 1 beside your platform, and 0 elsewhere.
---*/
-
-/*--
- Generic 32-bit Unix.
- Also works on 64-bit Unix boxes.
- This is the default.
---*/
+/* Place a 1 beside your platform, and 0 elsewhere.
+ Generic 32-bit Unix.
+ Also works on 64-bit Unix boxes.
+ This is the default.
+*/
#define BZ_UNIX 1
/*--
@@ -302,16 +210,17 @@
FILE *outputHandleJustInCase;
Int32 workFactor;
-static void panic ( Char* ) NORETURN;
-static void ioError ( void ) NORETURN;
-static void outOfMemory ( void ) NORETURN;
-static void configError ( void ) NORETURN;
-static void crcError ( void ) NORETURN;
-static void cleanUpAndFail ( Int32 ) NORETURN;
-static void compressedStreamEOF ( void ) NORETURN;
+static void panic ( const Char* ) NORETURN;
+static void ioError ( void ) NORETURN;
+static void outOfMemory ( void ) NORETURN;
+static void configError ( void ) NORETURN;
+static void crcError ( void ) NORETURN;
+static void cleanUpAndFail ( Int32 ) NORETURN;
+static void compressedStreamEOF ( void ) NORETURN;
static void copyFileName ( Char*, Char* );
static void* myMalloc ( Int32 );
+static void applySavedFileAttrToOutputFile ( IntNative fd );
@@ -457,6 +366,9 @@
ret = fflush ( zStream );
if (ret == EOF) goto errhandler_io;
if (zStream != stdout) {
+ Int32 fd = fileno ( zStream );
+ if (fd < 0) goto errhandler_io;
+ applySavedFileAttrToOutputFile ( fd );
ret = fclose ( zStream );
outputHandleJustInCase = NULL;
if (ret == EOF) goto errhandler_io;
@@ -569,6 +481,11 @@
closeok:
if (ferror(zStream)) goto errhandler_io;
+ if (stream != stdout) {
+ Int32 fd = fileno ( stream );
+ if (fd < 0) goto errhandler_io;
+ applySavedFileAttrToOutputFile ( fd );
+ }
ret = fclose ( zStream );
if (ret == EOF) goto errhandler_io;
@@ -826,7 +743,7 @@
/*---------------------------------------------*/
static
-void panic ( Char* s )
+void panic ( const Char* s )
{
fprintf ( stderr,
"\n%s: PANIC -- internal consistency error:\n"
@@ -1039,6 +956,7 @@
For non-Unix platforms, if we are not worrying about
security issues, simple this simply behaves like fopen.
*/
+static
FILE* fopen_output_safely ( Char* name, const char* mode )
{
# if BZ_UNIX
@@ -1129,7 +1047,7 @@
static
-void applySavedMetaInfoToOutputFile ( Char *dstName )
+void applySavedTimeInfoToOutputFile ( Char *dstName )
{
# if BZ_UNIX
IntNative retVal;
@@ -1138,13 +1056,21 @@
uTimBuf.actime = fileMetaInfo.st_atime;
uTimBuf.modtime = fileMetaInfo.st_mtime;
- retVal = chmod ( dstName, fileMetaInfo.st_mode );
+ retVal = utime ( dstName, &uTimBuf );
ERROR_IF_NOT_ZERO ( retVal );
+# endif
+}
- retVal = utime ( dstName, &uTimBuf );
+static
+void applySavedFileAttrToOutputFile ( IntNative fd )
+{
+# if BZ_UNIX
+ IntNative retVal;
+
+ retVal = fchmod ( fd, fileMetaInfo.st_mode );
ERROR_IF_NOT_ZERO ( retVal );
- retVal = chown ( dstName, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
+ (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
/* chown() will in many cases return with EPERM, which can
be safely ignored.
*/
@@ -1175,13 +1101,13 @@
/*---------------------------------------------*/
#define BZ_N_SUFFIX_PAIRS 4
-Char* zSuffix[BZ_N_SUFFIX_PAIRS]
+const Char* zSuffix[BZ_N_SUFFIX_PAIRS]
= { ".bz2", ".bz", ".tbz2", ".tbz" };
-Char* unzSuffix[BZ_N_SUFFIX_PAIRS]
+const Char* unzSuffix[BZ_N_SUFFIX_PAIRS]
= { "", "", ".tar", ".tar" };
static
-Bool hasSuffix ( Char* s, Char* suffix )
+Bool hasSuffix ( Char* s, const Char* suffix )
{
Int32 ns = strlen(s);
Int32 nx = strlen(suffix);
@@ -1192,7 +1118,8 @@
static
Bool mapSuffix ( Char* name,
- Char* oldSuffix, Char* newSuffix )
+ const Char* oldSuffix,
+ const Char* newSuffix )
{
if (!hasSuffix(name,oldSuffix)) return False;
name[strlen(name)-strlen(oldSuffix)] = 0;
@@ -1217,8 +1144,8 @@
switch (srcMode) {
case SM_I2O:
- copyFileName ( inName, "(stdin)" );
- copyFileName ( outName, "(stdout)" );
+ copyFileName ( inName, (Char*)"(stdin)" );
+ copyFileName ( outName, (Char*)"(stdout)" );
break;
case SM_F2F:
copyFileName ( inName, name );
@@ -1227,7 +1154,7 @@
break;
case SM_F2O:
copyFileName ( inName, name );
- copyFileName ( outName, "(stdout)" );
+ copyFileName ( outName, (Char*)"(stdout)" );
break;
}
@@ -1370,7 +1297,7 @@
/*--- If there was an I/O error, we won't get here. ---*/
if ( srcMode == SM_F2F ) {
- applySavedMetaInfoToOutputFile ( outName );
+ applySavedTimeInfoToOutputFile ( outName );
deleteOutputOnInterrupt = False;
if ( !keepInputFiles ) {
IntNative retVal = remove ( inName );
@@ -1401,8 +1328,8 @@
cantGuess = False;
switch (srcMode) {
case SM_I2O:
- copyFileName ( inName, "(stdin)" );
- copyFileName ( outName, "(stdout)" );
+ copyFileName ( inName, (Char*)"(stdin)" );
+ copyFileName ( outName, (Char*)"(stdout)" );
break;
case SM_F2F:
copyFileName ( inName, name );
@@ -1415,7 +1342,7 @@
break;
case SM_F2O:
copyFileName ( inName, name );
- copyFileName ( outName, "(stdout)" );
+ copyFileName ( outName, (Char*)"(stdout)" );
break;
}
@@ -1548,7 +1475,7 @@
/*--- If there was an I/O error, we won't get here. ---*/
if ( magicNumberOK ) {
if ( srcMode == SM_F2F ) {
- applySavedMetaInfoToOutputFile ( outName );
+ applySavedTimeInfoToOutputFile ( outName );
deleteOutputOnInterrupt = False;
if ( !keepInputFiles ) {
IntNative retVal = remove ( inName );
@@ -1593,9 +1520,9 @@
if (name == NULL && srcMode != SM_I2O)
panic ( "testf: bad modes\n" );
- copyFileName ( outName, "(none)" );
+ copyFileName ( outName, (Char*)"(none)" );
switch (srcMode) {
- case SM_I2O: copyFileName ( inName, "(stdin)" ); break;
+ case SM_I2O: copyFileName ( inName, (Char*)"(stdin)" ); break;
case SM_F2F: copyFileName ( inName, name ); break;
case SM_F2O: copyFileName ( inName, name ); break;
}
@@ -1678,11 +1605,11 @@
"bzip2, a block-sorting file compressor. "
"Version %s.\n"
" \n"
- " Copyright (C) 1996-2005 by Julian Seward.\n"
+ " Copyright (C) 1996-2006 by Julian Seward.\n"
" \n"
" This program is free software; you can redistribute it and/or modify\n"
" it under the terms set out in the LICENSE file, which is included\n"
- " in the bzip2-1.0 source distribution.\n"
+ " in the bzip2-1.0.4 source distribution.\n"
" \n"
" This program is distributed in the hope that it will be useful,\n"
" but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
@@ -1885,8 +1812,8 @@
# endif
# endif
- copyFileName ( inName, "(none)" );
- copyFileName ( outName, "(none)" );
+ copyFileName ( inName, (Char*)"(none)" );
+ copyFileName ( outName, (Char*)"(none)" );
copyFileName ( progNameReally, argv[0] );
progName = &progNameReally[0];
@@ -1898,8 +1825,8 @@
expand filename wildcards in arg list.
--*/
argList = NULL;
- addFlagsFromEnvVar ( &argList, "BZIP2" );
- addFlagsFromEnvVar ( &argList, "BZIP" );
+ addFlagsFromEnvVar ( &argList, (Char*)"BZIP2" );
+ addFlagsFromEnvVar ( &argList, (Char*)"BZIP" );
for (i = 1; i <= argc-1; i++)
APPEND_FILESPEC(argList, argv[i]);
Modified: trunk/bzip2/bzip2/bzip2.txt
===================================================================
--- trunk/bzip2/bzip2/bzip2.txt 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/bzip2.txt 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,6 +1,6 @@
NAME
- bzip2, bunzip2 - a block-sorting file compressor, v1.0.3
+ bzip2, bunzip2 - a block-sorting file compressor, v1.0.4
bzcat - decompresses files to stdout
bzip2recover - recovers data from damaged bzip2 files
@@ -345,14 +345,14 @@
but the details of what the problem is sometimes seem
rather misleading.
- This manual page pertains to version 1.0.3 of bzip2. Com-
+ This manual page pertains to version 1.0.4 of bzip2. Com-
pressed data created by this version is entirely forwards
and backwards compatible with the previous public
- releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1 and
- 1.0.2, but with the following exception: 0.9.0 and above
- can correctly decompress multiple concatenated compressed
- files. 0.1pl2 cannot do this; it will stop after decom-
- pressing just the first file in the stream.
+ releases, versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1,
+ 1.0.2 and 1.0.3, but with the following exception: 0.9.0
+ and above can correctly decompress multiple concatenated
+ compressed files. 0.1pl2 cannot do this; it will stop
+ after decompressing just the first file in the stream.
bzip2recover versions prior to 1.0.2 used 32-bit integers
to represent bit positions in compressed files, so they
Modified: trunk/bzip2/bzip2/bzip2recover.c
===================================================================
--- trunk/bzip2/bzip2/bzip2recover.c 2007-05-15 12:45:49 UTC (rev 369)
+++ trunk/bzip2/bzip2/bzip2recover.c 2007-06-10 00:25:57 UTC (rev 370)
@@ -1,57 +1,25 @@
-
/*-----------------------------------------------------------*/
/*--- Block recoverer program for bzip2 ---*/
/*--- bzip2recover.c ---*/
/*-----------------------------------------------------------*/
-/*--
- This program is bzip2recover, a program to attempt data
- salvage from damaged files created by the accompanying
- bzip2-1.0.3 program.
+/* ------------------------------------------------------------------
+ This file is part of bzip2/libbzip2, a program and library for
+ lossless, block-sorting data compression.
- Copyright (C) 1996-2005 Julian R Seward. All rights reserved.
+ bzip2/libbzip2 version 1.0.4 of 20 December 2006
+ Copyright (C) 1996-2006 Julian Seward <js...@bz...>
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
+ Please read the WARNING, DISCLAIMER and PATENTS sections in the
+ README file.
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
+ This program is released under the terms of the license contained
+ in the file LICENSE.
+ ------------------------------------------------------------------ */
- 2. The origin of this software must not be misrepresented; you must
- not claim that you wrote the original software. If you use this
- software in a product, an acknowledgment in the product
- documentation would be appreciated but is not required.
+/* This program is a complete hack and should be rewritten properly.
+ It isn't very complicated. */
- 3. Altered source versions must be plainly marked as such, and must
- not be misrepresented as being the original software.
-
- 4. 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.
-
- Julian Seward, Cambridge, UK.
- js...@bz...
- bzip2/libbzip2 version 1.0.3 of 15 February 2005
---*/
-
-/*--
- This program is a complete hack and should be rewritten
- properly. It isn't very complicated.
---*/
-
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
@@ -114,7 +82,7 @@
/*---------------------------------------------------*/
/*---------------------------------------------*/
-void readError ( void )
+static void readError ( void )
{
fprintf ( stderr,
"%s: I/O error reading `%s', possible reason follows.\n",
@@ -127,7 +95,7 @@
/*---------------------------------------------*/
-void writeError ( void )
+static void writeError ( void )
{
fprintf ( stderr,
"%s: I/O error reading `%s', possible reason follows.\n",
@@ -140,7 +108,7 @@
/*---------------------------------------------*/
-void mallocFail ( Int32 n )
+static void mallocFail ( Int32 n )
{
fprintf ( stderr,
"%s: malloc failed on request for %d bytes.\n",
@@ -152,7 +120,7 @@
/*---------------------------------------------*/
-void tooManyBlocks ( Int32 max_handled_blocks )
+static void tooManyBlocks ( Int32 max_handled_blocks )
{
fprintf ( stderr,
"%s: `%s' appears to contain more than %d blocks\n",
@@ -183,7 +151,7 @@
/*---------------------------------------------*/
-BitStream* bsOpenReadStream ( FILE* stream )
+static BitStream* bsOpenReadStream ( FILE* stream )
{
BitStream *bs = malloc ( sizeof(BitStream) );
if (bs == NULL) mallocFail ( sizeof(BitStream) );
@@ -196,7 +164,7 @@
/*---------------------------------------------*/
-BitStream* bsOpenWriteStream ( FILE* stream )
+static BitStream* bsOpenWriteStream ( FILE* stream )
{
BitStream *bs = malloc ( sizeof(BitStream) );
if (bs == NULL) mallocFail ( sizeof(BitStream) );
@@ -209,7 +177,7 @@
/*---------------------------------------------*/
-void bsPutBit ( BitStream* bs, Int32 bit )
+static void bsPutBit ( BitStream* bs, Int32 bit )
{
if (bs->buffLive == 8) {
Int32 retVal = putc ( (UChar) bs->buffer, bs->handle );
@@ -228,7 +196,7 @@
/*--
Returns 0 or 1, or 2 to indicate EOF.
--*/
-Int32 bsGetBit ( BitStream* bs )
+static Int32 bsGetBit ( BitStream* bs )
{
if (bs->buffLive > 0) {
bs->buffLive --;
@@ -247,7 +215,7 @@
/*---------------------------------------------*/
-void bsClose ( BitStream* bs )
+static void bsClose ( BitStream* bs )
{
Int32 retVal;
@@ -271,7 +239,7 @@
/*---------------------------------------------*/
-void bsPutUChar ( BitStream* bs, UChar c )
+static void bsPutUChar ( BitStream* bs, UChar c )
{
Int32 i;
for (i = 7; i >= 0; i--)
@@ -280,7 +248,7 @@
/*---------------------------------------------*/
-void bsPutUInt32 ( BitStream* bs, UInt32 c )
+static void bsPutUInt32 ( BitStream* bs, UInt32 c )
{
Int32 i;
@@ -290,7 +258,7 @@
/*---------------------------------------------*/
-Bool endsInBz2 ( Char* name )
+static Bool endsInBz2 ( Char* name )
{
Int32 n = strlen ( name );
if (n <= 4) return False;
@@ -345,7 +313,7 @@
inFileName[0] = outFileName[0] = 0;
fprintf ( stderr,
- "bzip2recover 1.0.3: extracts blocks from damaged .bz2 files.\n" );
+ "bzip2recover 1.0.4: extracts blocks from damaged .bz2 files.\n" );
if (argc != 2) {
fprintf ( stderr, "%s: usage is `%s damaged_file_name'.\n",
Modified: trunk/bzip2/bzip2/bzlib.c
==============================...
[truncated message content] |