diff -Nru dvdisaster-0.79.5/bitmap.c dvdisaster-0.79.10/bitmap.c
--- dvdisaster-0.79.5/bitmap.c 2015-11-11 19:46:35.000000000 +0000
+++ dvdisaster-0.79.10/bitmap.c 2021-05-26 10:27:31.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
/***
@@ -55,9 +57,9 @@
* Count the '1' bits in the bitmap
*/
-int CountBits(Bitmap *bm)
-{ int i;
- int sum = 0;
+gint32 CountBits(Bitmap *bm)
+{ gint32 i;
+ gint32 sum = 0;
for(i=0; isize; i++)
if(GetBit(bm, i))
diff -Nru dvdisaster-0.79.5/build.c dvdisaster-0.79.10/build.c
--- dvdisaster-0.79.5/build.c 2015-01-03 13:44:26.000000000 +0000
+++ dvdisaster-0.79.10/build.c 1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
- *
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
- *
- * This file is part of dvdisaster.
- *
- * dvdisaster is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * dvdisaster is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with dvdisaster. If not, see .
- */
-
-#include "build.h"
-
-/* build is incremented at each make;
- make recompile of dependent file as fast as possible */
-
-int buildCount = BUILD;
diff -Nru dvdisaster-0.79.5/build.h dvdisaster-0.79.10/build.h
--- dvdisaster-0.79.5/build.h 2015-12-15 19:39:17.000000000 +0000
+++ dvdisaster-0.79.10/build.h 2021-09-24 16:18:39.000000000 +0000
@@ -1,2 +1,2 @@
-#define BUILD 2789
-#define BDATE "15.12.15 (Dienstag, 16:39)"
+#define BUILD 562
+#define HOMEPAGE "https://dvdisaster.jcea.es/"
diff -Nru dvdisaster-0.79.5/cacheprobe.c dvdisaster-0.79.10/cacheprobe.c
--- dvdisaster-0.79.5/cacheprobe.c 2015-08-11 19:36:52.000000000 +0000
+++ dvdisaster-0.79.10/cacheprobe.c 2021-05-26 10:27:47.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
#ifdef SYS_LINUX
diff -Nru dvdisaster-0.79.5/CHANGELOG dvdisaster-0.79.10/CHANGELOG
--- dvdisaster-0.79.5/CHANGELOG 2015-10-25 16:55:13.000000000 +0000
+++ dvdisaster-0.79.10/CHANGELOG 2021-09-24 11:24:21.000000000 +0000
@@ -1,90 +1,193 @@
+# dvdisaster changelog -*-text-*-
+# dvdisaster: Additional error correction for optical media.
+# Copyright (C) 2004-2017 Carsten Gnoerlich.
+# Copyright (C) 2019-2021 The dvdisaster development team.
+#
+# Email: support@dvdisaster.org
+#
+# This file is part of dvdisaster.
+#
+# dvdisaster is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# dvdisaster is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with dvdisaster. If not, see .
+
+0.79.10 24-10-2021
+ - command line only version can be generated by
+ using ./configure --with-gui=no
+ The cli version will not be linked against gtk+ and it auxiliary libs.
+ However, glib is still required as it provides some basic functionality
+ for multithreading and string operations.
+ - Fixed a checksum buffering bug which was introduced in 0.79.6:
+ If user reads in CD A, then switches to image of CD B in the file dialogue
+ and creates error correction data, depending on the codec some invalid
+ checksums from CD A will be drawn into the ecc data for CD B.
+ - Fixed crc buf related memory leak while reading/scanning
+ - run_regtest will now insist that both image and ecc arguments are given.
+ This prevents stale arguments when running in GUI mode.
+ - Test case motivated changes/fixes:
+ - in general: fixed missing/inappropriate parameters in test cases for GUI mode
+ - RS01_scan_tao_tail_with_ecc
+ corrected wording of warning message (scan mode won't alter the image)
+ - RS01_scan_medium_with_dsm
+ RS01_read_medium_with_dsm
+ substantiated reading summary
+ - RS01_read_medium_with_dsm_in_image
+ removed reporting of displaced sectors in the image (only displaced
+ sectors in the medium matter!)
+ - RS02_ecc_recreate_after_read_rs02
+ crc buf now considered valid (when stripping the data portion from
+ the read image)
+ - RS03i_plus_56_bytes
+ RS03i_with_ecc_file_header
+ fixed misconfiguration of testcase for GUI
+ - RS03i_missing_header (and most following verify tests)
+ prognosis would declare image as uncorrectable because treatment
+ of unreadable ECC headers was broken.
+ - RS03i_missing_header3/4
+ Test case created an uncorrectable image (which did test the required
+ properties, though). Changed to a test-equvalent correctable image.
+ - RS03f_ecc_recreate_after_read_rs02
+ rs03-create.c:prepare_header() called CrcBufValid() with wrong values when
+ creating error correction files for an already augmented image.
+ - Merged fixes from Stéphane Lesimple's version
+ - printf argument debugging and PRId64 etc. format strings
+ - -Werror setting
+ - "easy" patches; non-trivial changes have been noted and
+ will be processed later
+ - Merged Debian patches:
+ 08 gmake detection
+ 10 dvdisaster.desktop
+ 12 up to spelling
+ 17 API warnings (partially merged)
+ 29 fix more typos
+ 33 - obsoleted -
+ 34 format security warning
+ 35 archived homepage (rewritten with references to the pdf manuals)
+
+
+0.79.9 14-05-2021
+- Revised code for clean compile under gcc-10 and Debian 11 (sid) or Slackware 15
+- added -Wno-deprecated-declarations to shield against a flood of warnings
+ resulting from gtk-2 / glib mismatches
+- safeguarded install and uninstall against blanks in path names
+
+0.79.8 11-05-2021
+- Revised code for clean compile under gcc-8 and Debian 10 (Buster).
+- Simplyfied display of URLS and PDF via xdg-open
+- minor rework of user manual
+- added skip feature to regtests: sometimes, output rows are permutated due to
+ a race condition between printf()s. This is rather hard to control.
+
+0.79.7 09-04-2019
+- Cleanup of documentation and files for new contact address
+
+0.79.6 20-11-2017
+- The Verify/Test option will now output dvdisaster version
+ numbers always in x.yy.zz format, as the old scheme
+ using x.yy (devel|pre|rc|pl)-zz is no longer used.
+- The "medium info" tool will now correctly show the blank
+ capacity (was previously always shown as zero)
+- added support for BDXL-TL (triple layer, 100GB)
+- Sector CRC sums and the image MD5 sum are collected during
+ reading the medium and can be re-used by the ecc data creation
+ process. Speeds up ecc generation and enables RS03 image
+ checksums when generating ecc data was preceeded by a read.
0.79.5 16-12-2015
- This is pretty much a relaunch of the project,
- the internet site and the accompanying documentation.
- There are too much changes for a detailed report.
-
- The most prominent feature of this version is that
- the multithreaded RS03 codec reached production
- quality, and all required features have been implemented.
- A few things will be added with the next releases:
- - adaptive reading is currently disabled as it does
- not support RS03 yet and would crash or misbehave
- on RS03 error correction data
- - a heuristic for an exhaustive re-discovery of RS03
- structures in a badly damaged medium is missing in
- the decoder
- But these things should not keep you from using RS03,
- as the encoder is complete and future decoder enhancements
- do not affect already created RS03 data.
-
+ This is pretty much a relaunch of the project,
+ the internet site and the accompanying documentation.
+ There are too much changes for a detailed report.
+
+The most prominent feature of this version is that
+the multithreaded RS03 codec reached production
+quality, and all required features have been implemented.
+A few things will be added with the next releases:
+- adaptive reading is currently disabled as it does
+ not support RS03 yet and would crash or misbehave
+ on RS03 error correction data
+- a heuristic for an exhaustive re-discovery of RS03
+ structures in a badly damaged medium is missing in
+ the decoder
+But these things should not keep you from using RS03,
+as the encoder is complete and future decoder enhancements
+do not affect already created RS03 data.
+
0.79.4 07-10-2012 (not released)
## 0.79.4 is a technical release in order to freeze
## and archive some parts of the source code.
- ## Do not use for anything prodictive.
+ ## Do not use for anything productive.
## The next useful release will be 0.79.5.
- - optical drives would only be detected for /dev/pass[0-9]
- on FreeBSD. Fixed to work with arbitrary /dev/pass
- numbers. Thanks to Bill Eisele for reporting this.
- A similar problem was found and fixed for Linux.
- - blocked menu selection when any other action is in progress
- (thanks to D. Herbold for reporting the resulting defects).
- - made actions properly shut down (e.g. remove incomplete ecc data)
- when closing the window or pushing the "Quit" button.
- - changed sources for clean compile on gcc 4.4.3
- - added #include for libpng 1.5 compatibility
- (thanks to Thomas Klausner for hinting at this!)
- - introduced internal Image object for unified access to
- optical media and on disk ISO images; lots of internal
- changes and fixes due to that
- - added --ignore-iso-size option
- - Jindřich Šesták took over the Czech translation,
- provided up-to-date HTML documents and manual pages,
- made all (!) language versions of the manual validate
- cleanly, and fixed several other issues in the HTML/PHP
- sources.
- - fixed bug in pngpack; thanks to Jindřich Šesták for
- noting this!
- - added remaining patches from Jindřich for Czech
- online manual. Big Thanks!
- - more comprehensive and unified version information
- for banner, --version, log window and log file to
- aid in working on bug reports
- - hardcoded icons to defeat theming
- - changed glib.h include for compatibility with glib 2.32
- - removed Darwin / Mac OS X support
- - synced with dvdisaster 0.72.4 fixes
- - completed RS01 and RS03 specification in the
- papers subdir
+- optical drives would only be detected for /dev/pass[0-9]
+ on FreeBSD. Fixed to work with arbitrary /dev/pass
+ numbers. Thanks to Bill Eisele for reporting this.
+ A similar problem was found and fixed for Linux.
+- blocked menu selection when any other action is in progress
+ (thanks to D. Herbold for reporting the resulting defects).
+- made actions properly shut down (e.g. remove incomplete ecc data)
+ when closing the window or pushing the "Quit" button.
+- changed sources for clean compile on gcc 4.4.3
+- added #include for libpng 1.5 compatibility
+ (thanks to Thomas Klausner for hinting at this!)
+- introduced internal Image object for unified access to
+ optical media and on disk ISO images; lots of internal
+ changes and fixes due to that
+- added --ignore-iso-size option
+- Jindřich Šesták took over the Czech translation,
+ provided up-to-date HTML documents and manual pages,
+ made all (!) language versions of the manual validate
+ cleanly, and fixed several other issues in the HTML/PHP
+ sources.
+- fixed bug in pngpack; thanks to Jindřich Šesták for
+ noting this!
+- added remaining patches from Jindřich for Czech
+ online manual. Big Thanks!
+- more comprehensive and unified version information
+ for banner, --version, log window and log file to
+ aid in working on bug reports
+- hardcoded icons to defeat theming
+- changed glib.h include for compatibility with glib 2.32
+- removed Darwin / Mac OS X support
+- synced with dvdisaster 0.72.4 fixes
+- completed RS01 and RS03 specification in the
+ papers subdir
0.79.3 21-11-2010
- - Switched Linux SCSI driver default to SG_IO ioctl().
- - Michael Klein provided Altivec optimization for
- the RS03 encoder and valuable hints for general
- RS03 encoding speedup
- - included Debian patches 04-manpage.patch,
- 06-remove-encoding-from-desktop-file.patch,
- 07-fix-spelling-errors-in-binaries.patch
- - fixed and documented -n command line options for RS02.
- Thanks to Jack Giles for noting this.
- - reworked configure for current NetBSD release
- - removed inofficial Solaris support
+- Switched Linux SCSI driver default to SG_IO ioctl().
+- Michael Klein provided Altivec optimization for
+ the RS03 encoder and valuable hints for general
+ RS03 encoding speedup
+- included Debian patches 04-manpage.patch,
+ 06-remove-encoding-from-desktop-file.patch,
+ 07-fix-spelling-errors-in-binaries.patch
+- fixed and documented -n command line options for RS02.
+ Thanks to Jack Giles for noting this.
+- reworked configure for current NetBSD release
+- removed inofficial Solaris support
0.79.2 28-02-2010
- Semantic Changes
- The new missing sector marking method is now the default.
- When interchanging images with dvdisaster 0.70 or older,
- use --old-ds-marker or the respective setting under
- Image/Image format in the preferences setting.
-
- Changes
- - RS03 encoding will check for defective sectors now
- - fixed crash when aborting RS03 encoding
- - made the new missing sector marking method the default
- - confirmation dialogues for overwriting images and ecc files
- are now configurable via preferences
+Semantic Changes
+The new missing sector marking method is now the default.
+When interchanging images with dvdisaster 0.70 or older,
+use --old-ds-marker or the respective setting under
+Image/Image format in the preferences setting.
+
+Changes
+- RS03 encoding will check for defective sectors now
+- fixed crash when aborting RS03 encoding
+- made the new missing sector marking method the default
+- confirmation dialogues for overwriting images and ecc files
+ are now configurable via preferences
-0.79.1 07-02-2010
+0.79.1 07-02-2010
A word of caution: This version is still evolving and some parts
are not yet implemented. It may contain severe bugs and fail in
non-obvious ways, even in functions which worked in previous versions.
@@ -92,856 +195,856 @@
not keep images and error correction data for archival purposes;
that's what the stable version 0.72 is for.
- Semantic Changes
- - query-size option replaced with -a/--assume option.
- command line default is now NOT to do exhaustive search
- for RS02 information; add -a RS02 to enable it
- (old behaviour: exhaustive check was on; required
- --query-size=udf to disable it)
- - same changes in the preferences dialogues:
- "Image size" field replaced with
- "Error correction data recognization" options.
-
- Changes
- - added MIN_TRANSFER_LEN and length sanity check as workaround
- for buggy drive chipsets (thanks to R.G. for reporting this
- and helping with debugging output)
- - added -tq command line option as suggested by Mikhail Arefiev
- - fixed alignment brokeness between 32bit and 64bit systems
- in ecc header and crc sectors
- - added RS03 encoding (GUI)
- - added RS03 verifying (CLI and GUI)
- - fixed RS02/RS03 crash when encoding invoked without image file
- - added commandline RS03 encoding (singlethreaded/multithreaded)
- - added RS03 decoding and verifying (CLI and GUI)
- - fixed "typical uses" links in welcome screen (Thanks to C. Steigies)
- - added warning when same files are selected for .iso
- and error correction data (Thanks to A. Postkutscher
- for suggesting this!)
- - removed ASPI driver and ASPI/SPTI splitting logic
- - removed 2GB file splitting
+Semantic Changes
+- query-size option replaced with -a/--assume option.
+ command line default is now NOT to do exhaustive search
+ for RS02 information; add -a RS02 to enable it
+ (old behaviour: exhaustive check was on; required
+ --query-size=udf to disable it)
+- same changes in the preferences dialogues:
+ "Image size" field replaced with
+ "Error correction data recognization" options.
+
+Changes
+- added MIN_TRANSFER_LEN and length sanity check as workaround
+ for buggy drive chipsets (thanks to R.G. for reporting this
+ and helping with debugging output)
+- added -tq command line option as suggested by Mikhail Arefiev
+- fixed alignment brokeness between 32bit and 64bit systems
+ in ecc header and crc sectors
+- added RS03 encoding (GUI)
+- added RS03 verifying (CLI and GUI)
+- fixed RS02/RS03 crash when encoding invoked without image file
+- added commandline RS03 encoding (singlethreaded/multithreaded)
+- added RS03 decoding and verifying (CLI and GUI)
+- fixed "typical uses" links in welcome screen (Thanks to C. Steigies)
+- added warning when same files are selected for .iso
+ and error correction data (Thanks to A. Postkutscher
+ for suggesting this!)
+- removed ASPI driver and ASPI/SPTI splitting logic
+- removed 2GB file splitting
0.72 (pl4) 07-04-2012
- - fixed crash in scsi layer for FreeBSD
- - fixed double free when reading mode page 1 fails
- - fixed DMA misalignment when reading mode page 1
- - changed #includes for glibc for compatibility with 2.32
- - dropped Darwin/Mac OS X support
- - removed dependency on installed md5sum command
- - changed libpng test in configure to utilize pkg-config
- - fixed some minor flaws for NetBSD
+- fixed crash in scsi layer for FreeBSD
+- fixed double free when reading mode page 1 fails
+- fixed DMA misalignment when reading mode page 1
+- changed #includes for glibc for compatibility with 2.32
+- dropped Darwin/Mac OS X support
+- removed dependency on installed md5sum command
+- changed libpng test in configure to utilize pkg-config
+- fixed some minor flaws for NetBSD
0.72 (pl3) 05-10-2011
- - Volodymyr Bychkoviak found a problem when verifying
- RS01 files which are larger than 2GB and provided a bugfix.
- - Backported improved Windows locale detection from 0.79 branch.
- - made package compile under OS X 10.6; updated OS X toolchain
- to Gtk 2.24.
+- Volodymyr Bychkoviak found a problem when verifying
+ RS01 files which are larger than 2GB and provided a bugfix.
+- Backported improved Windows locale detection from 0.79 branch.
+- made package compile under OS X 10.6; updated OS X toolchain
+ to Gtk 2.24.
0.72 (pl-2) 31-10-2010
- - changed sources for clean compile on gcc 4.4.3
- - Using the CDROM_SEND_PACKET ioctl() will hang parallel
- SCSI adapters. Added tests to determine the SCSI bus type,
- and switch to the SG_IO ioctl() when in doubt.
- Thanks to S. Seidl and R. Manfredi for the respective bug reports.
- - fixed recognition of dvdisaster 0.79 RS03-augmented image
- - minor cosmetic changes for regression test compatibility
- with 0.79
+- changed sources for clean compile on gcc 4.4.3
+- Using the CDROM_SEND_PACKET ioctl() will hang parallel
+ SCSI adapters. Added tests to determine the SCSI bus type,
+ and switch to the SG_IO ioctl() when in doubt.
+ Thanks to S. Seidl and R. Manfredi for the respective bug reports.
+- fixed recognition of dvdisaster 0.79 RS03-augmented image
+- minor cosmetic changes for regression test compatibility
+ with 0.79
0.72 (pl-1) 08-08-2009
- - Pablo Almeida provided a Portuguese translation
- for the screen text.
- - workaround for freeze on Win XP for certain drive/CD-RW pairs
+- Pablo Almeida provided a Portuguese translation
+ for the screen text.
+- workaround for freeze on Win XP for certain drive/CD-RW pairs
0.72 04-07-2009
- - Igor Gorbounov completed the Russian translation
- - fixed lockups in the spiral under Mac OS X
- - fixed crash when calling dvdisaster on command line without
- specifying a file name on Mac OS X
+- Igor Gorbounov completed the Russian translation
+- fixed lockups in the spiral under Mac OS X
+- fixed crash when calling dvdisaster on command line without
+ specifying a file name on Mac OS X
0.72 (rc-2)
- - fixed lockups in the spiral under Mac OS X
- - fixed crash when calling dvdisaster on command line without
- specifying a file name on Mac OS X
+- fixed lockups in the spiral under Mac OS X
+- fixed crash when calling dvdisaster on command line without
+ specifying a file name on Mac OS X
0.72 (rc-1) 11-04-2009
- - Documentation and locale cleanup for en, de
- - added app bundle creation for Mac OS X
- - Graphical bug: red/green sector markings were incorrect when doing
- linear reading with high sector skip numbers. Fixed.
- Speed curve will no longer travel below the x axis.
- - fixed rare crash while linear reading due to a race condition
- by improper ClearCrcCache() usage.
- - fixed bogus dead sector warning in the linear reader
- after encountering unreadable sectors
- - made adaptive reading pursue raw reading more aggressively;
- effectively trading in place re-reads for seeks over
- the medium.
- - --help output for --defective-dump was complete nonsense. Fixed.
- - detection of read errors at the end of track at once disks
- would sometimes cut off too many sectors when doing multiple
- reading passes and a carefully crafted number of extra read
- errors occurred. Fixed.
- - fixed crash in command line mode when doing multiple
- reading passes.
+- Documentation and locale cleanup for en, de
+- added app bundle creation for Mac OS X
+- Graphical bug: red/green sector markings were incorrect when doing
+ linear reading with high sector skip numbers. Fixed.
+ Speed curve will no longer travel below the x axis.
+- fixed rare crash while linear reading due to a race condition
+ by improper ClearCrcCache() usage.
+- fixed bogus dead sector warning in the linear reader
+ after encountering unreadable sectors
+- made adaptive reading pursue raw reading more aggressively;
+ effectively trading in place re-reads for seeks over
+ the medium.
+- --help output for --defective-dump was complete nonsense. Fixed.
+- detection of read errors at the end of track at once disks
+ would sometimes cut off too many sectors when doing multiple
+ reading passes and a carefully crafted number of extra read
+ errors occurred. Fixed.
+- fixed crash in command line mode when doing multiple
+ reading passes.
------ 0.72 released ------
0.71 (devel-28) 08-03-2009
- - changed SSE2 handling; now only the interesting part of
- dvdisaster are compiled with -msse2 and selection between
- normal and SSE2 code versions are done at run time.
- (Don't waste your time searching for SSE2 code in 0.7x -
- there is none; but we need the option to configure for it
- in preparation of 0.80)
- Thanks to Karsten H., Nathan S. and Tobias G. for bringing
- this issue to my attention!
- - changed treatment of CRC failures: old behaviour was to
- store a defective sector marker; now the actual sector
- contents are written to the image file.
- - starting a scan/after automatically loading a medium
- would not always work. Fixed.
- - command line mode will no longer scan for available
- devices when one is already given via -d.
- Thanks to Raphael M. for noting this.
- - fixed build failure on FreeBSD; updated atapicam loading
- instructions.
- - opening the preferences dialog produced a GTK warning. Fixed.
- - log window would crash during update or when closed and
- re-opened repeatedly. Fixed the bunch of race conditions
- causing this.
- - provided better defaults for the raw sector cache directory
- under Windows.
+- changed SSE2 handling; now only the interesting part of
+ dvdisaster are compiled with -msse2 and selection between
+ normal and SSE2 code versions are done at run time.
+ (Don't waste your time searching for SSE2 code in 0.7x -
+ there is none; but we need the option to configure for it
+ in preparation of 0.80)
+ Thanks to Karsten H., Nathan S. and Tobias G. for bringing
+ this issue to my attention!
+- changed treatment of CRC failures: old behaviour was to
+ store a defective sector marker; now the actual sector
+ contents are written to the image file.
+- starting a scan/after automatically loading a medium
+ would not always work. Fixed.
+- command line mode will no longer scan for available
+ devices when one is already given via -d.
+ Thanks to Raphael M. for noting this.
+- fixed build failure on FreeBSD; updated atapicam loading
+ instructions.
+- opening the preferences dialog produced a GTK warning. Fixed.
+- log window would crash during update or when closed and
+ re-opened repeatedly. Fixed the bunch of race conditions
+ causing this.
+- provided better defaults for the raw sector cache directory
+ under Windows.
0.71 (devel-27) 18-01-2009
- - Verifying RS02 images would sometimes show slightly incorrect
- numbers of recoverable sectors in the "Prognosis: " line. Fixed.
- - showing media info would sometimes go wild when called
- on empty drive. Will now report missing media correctly.
- - fixed infinite loop on disk full state
- - fixed failure on writing ecc files with now possible larger
- cache settings in command line mode
- - increased encoder cache size to 8GB for RS01 and RS02
- - some fine-tuning in recover-raw.c; added recognition of
- bad sectors whose data portion is actually good; added
- trivial correction by resetting the sync pattern
- - corrected a data flow anomaly and missing parentheses in
- heuristic-lec.c
- - Blank capacity of DVD-RAM could not be queried. Fixed.
- - Phew. English and German documentation finished.
- - fixed crash when using ancient CD-ROM drives.
- Thanks to mschaeff to bringing this to my attention!
- - more robust handling for incomplete/unfinalized media; should produce
- less dreaded "couldn't query [several possiblilities] length"
- errors now ;-)
- - added on-the-fly checkum verification for RS02
- - skipped color glitch in the GUI; skipped sectors would not always be marked
- blue in the spiral
- - reading media in multiple passes could crash on finish due to a
- race condition on very fast systems; fixed.
- - started support for a new missing sector marker
+- Verifying RS02 images would sometimes show slightly incorrect
+ numbers of recoverable sectors in the "Prognosis: " line. Fixed.
+- showing media info would sometimes go wild when called
+ on empty drive. Will now report missing media correctly.
+- fixed infinite loop on disk full state
+- fixed failure on writing ecc files with now possible larger
+ cache settings in command line mode
+- increased encoder cache size to 8GB for RS01 and RS02
+- some fine-tuning in recover-raw.c; added recognition of
+ bad sectors whose data portion is actually good; added
+ trivial correction by resetting the sync pattern
+- corrected a data flow anomaly and missing parentheses in
+ heuristic-lec.c
+- Blank capacity of DVD-RAM could not be queried. Fixed.
+- Phew. English and German documentation finished.
+- fixed crash when using ancient CD-ROM drives.
+ Thanks to mschaeff to bringing this to my attention!
+- more robust handling for incomplete/unfinalized media; should produce
+ less dreaded "couldn't query [several possiblilities] length"
+ errors now ;-)
+- added on-the-fly checkum verification for RS02
+- skipped color glitch in the GUI; skipped sectors would not always be marked
+ blue in the spiral
+- reading media in multiple passes could crash on finish due to a
+ race condition on very fast systems; fixed.
+- started support for a new missing sector marker
0.71 (devel-26) 30-03-2008
- - Changed media type detection to a (hopefully) even more robust
- approach. Please report if this breaks compatibility with prior
- working drive/media combinations.
- - removed HD DVD support
- - added medium info window
- - fixed size determination of blank CD media
- - added BD sizes to preferences dialog
- - more BD tweaking
+- Changed media type detection to a (hopefully) even more robust
+ approach. Please report if this breaks compatibility with prior
+ working drive/media combinations.
+- removed HD DVD support
+- added medium info window
+- fixed size determination of blank CD media
+- added BD sizes to preferences dialog
+- more BD tweaking
0.71 (devel-25) 04-03-2008
- - replaced treatment of localized file names with a different
- approach; the previous one broke large file support under Windows.
- Thanks to Markus G. for bringing this to my attention!
- - fixed failure when trying to re-read incomplete image using split files
+- replaced treatment of localized file names with a different
+ approach; the previous one broke large file support under Windows.
+ Thanks to Markus G. for bringing this to my attention!
+- fixed failure when trying to re-read incomplete image using split files
0.71 (devel-24) 24-02-2008
- - enlarged scsi timeout for Linux as newer Kernels seem
- to freeze on timeout
- - fixed filename handling (e.g. German umlaut corruption) under Windows
- (thanks to T.Barth for noting this!)
- - fixed thread handling in command line mode so that combining
- several actions in one call work again
- - added thumbnail decimation and real argv[] processing to pngpack
- - started rework of online documentation for PHP;
- package creation is currently broken
- - fixed adaptive reading crash when invoked with partial image
- and no ecc data (thanks to Jörg and Wolfgang for noting this!)
- - fixed log file creation inconsistency (thanks to mschaeff!)
- - started with raw sector editor
- - added --with-embedded-src-path as proposed by Klaus Heinz
- - relaxed MSF test for incoming sectors so that read errors
- within the MSF can be corrected
- - phased in new documentation
- - cleaned up CVS for new documentation
+- enlarged scsi timeout for Linux as newer Kernels seem
+ to freeze on timeout
+- fixed filename handling (e.g. German umlaut corruption) under Windows
+ (thanks to T.Barth for noting this!)
+- fixed thread handling in command line mode so that combining
+ several actions in one call work again
+- added thumbnail decimation and real argv[] processing to pngpack
+- started rework of online documentation for PHP;
+ package creation is currently broken
+- fixed adaptive reading crash when invoked with partial image
+ and no ecc data (thanks to Jörg and Wolfgang for noting this!)
+- fixed log file creation inconsistency (thanks to mschaeff!)
+- started with raw sector editor
+- added --with-embedded-src-path as proposed by Klaus Heinz
+- relaxed MSF test for incoming sectors so that read errors
+ within the MSF can be corrected
+- phased in new documentation
+- cleaned up CVS for new documentation
0.71 (devel-23) 06-05-2007
- - started C2 scanning support for CD media
- - added Bernd Hellers umount patch for MacOS
- - Andrei did it again and provided improved RAW recovery heuristics :-)
- - fixed expose event loop within preferences
- - fixed widget mutator race conditions within preferences
+- started C2 scanning support for CD media
+- added Bernd Hellers umount patch for MacOS
+- Andrei did it again and provided improved RAW recovery heuristics :-)
+- fixed expose event loop within preferences
+- fixed widget mutator race conditions within preferences
0.71 (devel-22) 22-04-2007
- - added Russian translation from Igor Gorbounov
- - added more mode page / raw reading selections:
- 20h and 21h and internal drive retries are selectable
- - fixed raw sector caching when read attempts = 1
- - fixed unnecessary ecc attempts when no new raw sectors were read
- - suppressed addition of sectors with same contents to raw sector cache
- - fixed non-working raw sector cache dir selection under Windows
+- added Russian translation from Igor Gorbounov
+- added more mode page / raw reading selections:
+ 20h and 21h and internal drive retries are selectable
+- fixed raw sector caching when read attempts = 1
+- fixed unnecessary ecc attempts when no new raw sectors were read
+- suppressed addition of sectors with same contents to raw sector cache
+- fixed non-working raw sector cache dir selection under Windows
0.71 (devel-21) 09-04-2007
- - added larger cluster size for BD and HD DVD
+- added larger cluster size for BD and HD DVD
0.71 (devel-20) 08-04-2007
- - started HD DVD and BD support
- - fixed scale steps for HD DVD and BD (thanks to Andrei for
- noting this :-)
- - completing the alpha testing documentation
+- started HD DVD and BD support
+- fixed scale steps for HD DVD and BD (thanks to Andrei for
+ noting this :-)
+- completing the alpha testing documentation
0.71 (devel-19) 25-03-2007
- - fixed missing CRC sum test in adaptive reading for RS02
- (thanks to Marcus J. for pointing this out!)
- - updated english and german manualpages
- - added verbose logging and log file saving in the GUI
+- fixed missing CRC sum test in adaptive reading for RS02
+ (thanks to Marcus J. for pointing this out!)
+- updated english and german manualpages
+- added verbose logging and log file saving in the GUI
0.71 (devel-18) 18-03-2007
- - fixed read linear thread handling in CLI mode
- - closed more memory leaks
- - added selection for both SPTI and ASPI drives
- in the GUI under Windows
- - fixed color glitches in the spiral during linear reading
+- fixed read linear thread handling in CLI mode
+- closed more memory leaks
+- added selection for both SPTI and ASPI drives
+ in the GUI under Windows
+- fixed color glitches in the spiral during linear reading
0.71 (devel-17) 04-03-2007
- - fixed read linear reading crash in CLI mode
- - fixed UDF parser, raw reading on big endian archs
- - fixed broken Windows build, upgraded to InnoSetup 5.1.11,
- personalized setup graphics. Thanks to Lubos Stanek for the
- artwork ideas.
- - fixed crash in HeuristicLEC/DecodePQ
+- fixed read linear reading crash in CLI mode
+- fixed UDF parser, raw reading on big endian archs
+- fixed broken Windows build, upgraded to InnoSetup 5.1.11,
+ personalized setup graphics. Thanks to Lubos Stanek for the
+ artwork ideas.
+- fixed crash in HeuristicLEC/DecodePQ
0.71 (devel-16) 25-02-2007
- - added Solaris port; this is for testing only and will not
- be officially supported.
- - corrected output of --version
- - added version information to the documentation headline
- - fixed user break detection during sector re-reading
- - improved resize behaviour of preferences online help
+- added Solaris port; this is for testing only and will not
+ be officially supported.
+- corrected output of --version
+- added version information to the documentation headline
+- fixed user break detection during sector re-reading
+- improved resize behaviour of preferences online help
0.71 (devel-15) 21-02-2007
- - added NetBSD port (thanks to Sergey Svishchev!)
- - added test for regular files on LargeOpen();
- thanks to Alex S. for noting this issue!
+- added NetBSD port (thanks to Sergey Svishchev!)
+- added test for regular files on LargeOpen();
+ thanks to Alex S. for noting this issue!
0.71 (devel-14) 18-02-2007
- - added defective sector caching
- - added multiple reading passes
+- added defective sector caching
+- added multiple reading passes
-0.71 (devel-13) 20-01-2007
- - Fixed crash when using command line mode with --query-size=ecc and
- rewriteable DVD without RS02 ecc data. Thanks to Vincent L. for
- reporting this!
- - Fixed crash caused by drives reporting unreasonable media sizes.
- Thanks to Rafal K. and Klaus-Maria P. for reporting this!
- - added ADIP extraction for better medium type determination
+0.71 (devel-13)20-01-2007
+- Fixed crash when using command line mode with --query-size=ecc and
+ rewriteable DVD without RS02 ecc data. Thanks to Vincent L. for
+ reporting this!
+- Fixed crash caused by drives reporting unreasonable media sizes.
+ Thanks to Rafal K. and Klaus-Maria P. for reporting this!
+- added ADIP extraction for better medium type determination
0.71 (devel-12) 07-01-2007
- - Fixed a DEAD SERIOUS race condition in the linear reader while
- completing existing images (0.71 devel-9 to devel-11 are affected).
- - Changelog had 0.71 misrepresented as 0.72. Fixed.
- - Linear reading wrote some dead sector markers twice. That did not hurt,
- but was unnecessary. Fixed.
- - Earlier versions of 0.71 had linear reading count unreable sectors also
- as CRC failures. Fixed.
- - Adaptive reading: Fixed garbled contents of "size mismatch" dialog;
- move fingerprint check before size check
- - When limiting the reading range for adaptive reading sector 0 would
- not be marked as missing. Fixed.
- - added multiple media read entry in the preferences,
- but it is not functional yet.
+- Fixed a DEAD SERIOUS race condition in the linear reader while
+ completing existing images (0.71 devel-9 to devel-11 are affected).
+- Changelog had 0.71 misrepresented as 0.72. Fixed.
+- Linear reading wrote some dead sector markers twice. That did not hurt,
+ but was unnecessary. Fixed.
+- Earlier versions of 0.71 had linear reading count unreable sectors also
+ as CRC failures. Fixed.
+- Adaptive reading: Fixed garbled contents of "size mismatch" dialog;
+ move fingerprint check before size check
+- When limiting the reading range for adaptive reading sector 0 would
+ not be marked as missing. Fixed.
+- added multiple media read entry in the preferences,
+ but it is not functional yet.
0.71 (devel-11) 01-01-2007 Happy new year :-)
- - more segfault hunting on the raw reader
- - Added dialog for skipping RS02 detection of DVD RW
- - Added appearance preferences (thanks to Christian N. for explaining
- the need for this!)
- - Preferences restructuring completed; Help texts need more work, though
- - Added automatic media ejection after successful read
- - Added automatic media loading when Read/Scan is attempted while
- the drive tray is left open
+- more segfault hunting on the raw reader
+- Added dialog for skipping RS02 detection of DVD RW
+- Added appearance preferences (thanks to Christian N. for explaining
+ the need for this!)
+- Preferences restructuring completed; Help texts need more work, though
+- Added automatic media ejection after successful read
+- Added automatic media loading when Read/Scan is attempted while
+ the drive tray is left open
0.71 (devel-10) 26-11-2006
- - more fine tuning of the raw reader
- - removed preferences and command line sections from documentation
- - removed NSIS support
+- more fine tuning of the raw reader
+- removed preferences and command line sections from documentation
+- removed NSIS support
0.71 (devel-9) 19-11-2006
- - added multi threading to the linear reader
- - Fixed program hanging on CD-Audio/Multisession media.
- They are unsupported, but we must not crash on them.
- Thanks to Robert Hruby for reporting this problem!
+- added multi threading to the linear reader
+- Fixed program hanging on CD-Audio/Multisession media.
+ They are unsupported, but we must not crash on them.
+ Thanks to Robert Hruby for reporting this problem!
0.71 (devel-8) 12-11-2006
- - added support for CD XA21 sectors in raw reading and frame recovery
- - added automatic word wrapping to preferences help system
+- added support for CD XA21 sectors in raw reading and frame recovery
+- added automatic word wrapping to preferences help system
0.71 (devel-7) 01-11-2006
- - renamed Level2_L_EC; "unrolled" store_[p|q]_conditional
- - completed migration of "General" preferences documentation from HTML docs into
- preferences GUI
+- renamed Level2_L_EC; "unrolled" store_[p|q]_conditional
+- completed migration of "General" preferences documentation from HTML docs into
+ preferences GUI
0.71 (devel-6) 29-10-2006
- - completed migration of "Read and Scan" preferences documentation from
- HTML docs into preferences GUI
- - re-inserted heuristical L-EC from Andrei Grecu
+- completed migration of "Read and Scan" preferences documentation from
+ HTML docs into preferences GUI
+- re-inserted heuristical L-EC from Andrei Grecu
0.71 (devel-5) 22-10-2006
- - more fine-tuning on the plain RAW reading capabilities
- - removed some rarely used error messages from localization
- to relieve the translators
+- more fine-tuning on the plain RAW reading capabilities
+- removed some rarely used error messages from localization
+ to relieve the translators
0.71 (devel-4) 17-10-2006
- - rearranged raw reading and number of reading attempts
+- rearranged raw reading and number of reading attempts
0.71 (devel-3) 01-10-2006
- - added recognition of wrong sectors (e.g. the respective sector was not
- requested)
+- added recognition of wrong sectors (e.g. the respective sector was not
+ requested)
0.71 (devel-2)
- - added experimental l-ec to raw reading algorithm. Won't work reliably yet.
+- added experimental l-ec to raw reading algorithm. Won't work reliably yet.
0.71 (devel-1)
- - added CD raw reading and majority algorithm
- - started transfer of preferences documentation from HTML manual
- to new online help system
+- added CD raw reading and majority algorithm
+- started transfer of preferences documentation from HTML manual
+ to new online help system
0.70 (pl6) 04-03-2008
- - rolled back the Windows filename encoding fixes;
- they caused large file support to be broken
- Thanks to Markus G. for bringing this to my attention!
+- rolled back the Windows filename encoding fixes;
+ they caused large file support to be broken
+ Thanks to Markus G. for bringing this to my attention!
0.70 (pl5) 24-02-2008 various backports from 0.71.24:
- - enlarged scsi timeout for Linux as newer Kernels seem
- to freeze on timeout
- - Windows filename encoding fixes
+- enlarged scsi timeout for Linux as newer Kernels seem
+ to freeze on timeout
+- Windows filename encoding fixes
0.70 (pl4) 20-01-2007
- - Adaptive reading: Fixed garbled contents of "size mismatch" dialog;
- move fingerprint check before size check
- - When limiting the reading range for adaptive reading sector 0 would
- not be marked as missing. Fixed.
- - Fixed crash when using command line mode with --query-size=ecc and
- rewriteable DVD without RS02 ecc data. Thanks to Vincent L. for
- reporting this!
- - Fixed crash caused by drives reporting unreasonable media sizes.
- Thanks to Rafal K. and Klaus-Maria P. for reporting this!
- - added ADIP extraction for better medium type determination
+- Adaptive reading: Fixed garbled contents of "size mismatch" dialog;
+ move fingerprint check before size check
+- When limiting the reading range for adaptive reading sector 0 would
+ not be marked as missing. Fixed.
+- Fixed crash when using command line mode with --query-size=ecc and
+ rewriteable DVD without RS02 ecc data. Thanks to Vincent L. for
+ reporting this!
+- Fixed crash caused by drives reporting unreasonable media sizes.
+ Thanks to Rafal K. and Klaus-Maria P. for reporting this!
+- added ADIP extraction for better medium type determination
0.70 (pl3) 10-12-2006
- - Fixed program hanging on CD-Audio/Multisession media.
- They are unsupported, but we must not crash on them.
- Thanks to Robert Hruby for reporting this problem!
- - Added dialog for skipping RS02 detection of DVD RW
+- Fixed program hanging on CD-Audio/Multisession media.
+ They are unsupported, but we must not crash on them.
+ Thanks to Robert Hruby for reporting this problem!
+- Added dialog for skipping RS02 detection of DVD RW
0.70 (pl2) 03-10-2006
- - fixed crash by inappropriate g_free() on Pango layout (thanks to Dmitry
- for pointing this out)
- - fixed pngpack decoding failure on big endian machines (thanks again to
- Dmitry)
- - fixed type mismatch compiler warning on 64bit archs
+- fixed crash by inappropriate g_free() on Pango layout (thanks to Dmitry
+ for pointing this out)
+- fixed pngpack decoding failure on big endian machines (thanks again to
+ Dmitry)
+- fixed type mismatch compiler warning on 64bit archs
0.70 (pl-1) 30-07-2006
- - fixed a bug in read-adaptive for RS02 which would sometimes prevent it
- from properly restarting a previously interrupted reading session.
- - fixed a bug in read-adaptive for RS02 which would cause it to read
- insufficient data for error correction in some circumstances.
- - clarified higher redundancy requirements for RS02 in
- background30.html (thanks to M. Buchholtz for pointing this out)
- - made Windows console and GUI versions refuse being run in the wrong mode
- (thanks to xaros2000 for noting this inconsistency)
- - wrong values and units fixed in the error message for creating RS02
- images with too small medium size.
- - -n/--redundancy will accept CD,DVD,DVD9 for the default medium sizes
- (thanks to mschaeff for suggesting this)
- - added output of required sectors to adaptive reading GUI
- - changed --random-image to create a valid ISO image
- - added --marked-image debugging option
+- fixed a bug in read-adaptive for RS02 which would sometimes prevent it
+ from properly restarting a previously interrupted reading session.
+- fixed a bug in read-adaptive for RS02 which would cause it to read
+ insufficient data for error correction in some circumstances.
+- clarified higher redundancy requirements for RS02 in
+ background30.html (thanks to M. Buchholtz for pointing this out)
+- made Windows console and GUI versions refuse being run in the wrong mode
+ (thanks to xaros2000 for noting this inconsistency)
+- wrong values and units fixed in the error message for creating RS02
+ images with too small medium size.
+- -n/--redundancy will accept CD,DVD,DVD9 for the default medium sizes
+ (thanks to mschaeff for suggesting this)
+- added output of required sectors to adaptive reading GUI
+- changed --random-image to create a valid ISO image
+- added --marked-image debugging option
------ 0.70 released ------
0.70 09-07-2006
- - cleaned up source distribution
- - some more touch-ups on the manual pages
- - fixed a bug reading the CD TOC which would cause
- temporary hangs in Windows XP for certain combinations
- of faulty drive firmware, CD-RW and SPTI.
+- cleaned up source distribution
+- some more touch-ups on the manual pages
+- fixed a bug reading the CD TOC which would cause
+ temporary hangs in Windows XP for certain combinations
+ of faulty drive firmware, CD-RW and SPTI.
0.70 (rc-1) 08-07-2006
- - fixed the adaptive reading bug
- - updated German and English manual pages
+- fixed the adaptive reading bug
+- updated German and English manual pages
0.67 (devel-19) 02-07-2006
- - completed German and English manual
- - image and error correction file entries can be empty
- - there is a yet unidentified bug in conjunction with
- adaptive reading and RS02 fixing left
+- completed German and English manual
+- image and error correction file entries can be empty
+- there is a yet unidentified bug in conjunction with
+ adaptive reading and RS02 fixing left
0.67 (devel-18) 25-06-2006
- - started putting the NSIS scripts into place (not yet finished)
- - adaptive reader left correctable sectors zero-filled in the image under
- some circumstances; these showed up as CRC errors during verify and fix.
- these are now correctly filled with the dead sector marker and therefore
- reported as missing.
- - fixed crash when doing RS01 encode right after RS02 encode on same image
- - added simple-md5sum as FreeBSD does not have md5sum by default,
- but we need it during the build process.
- - fixed non-working online manual button under FreeBSD and Darwin
+- started putting the NSIS scripts into place (not yet finished)
+- adaptive reader left correctable sectors zero-filled in the image under
+ some circumstances; these showed up as CRC errors during verify and fix.
+ these are now correctly filled with the dead sector marker and therefore
+ reported as missing.
+- fixed crash when doing RS01 encode right after RS02 encode on same image
+- added simple-md5sum as FreeBSD does not have md5sum by default,
+ but we need it during the build process.
+- fixed non-working online manual button under FreeBSD and Darwin
0.67 (devel-17) 18-06-2006
- - added Swedish locale from Daniel Nylander
- - fixed utf8 strlen problem in console output
- - fixed missing output of last sector status during
- read and verify operations (only GUI output was affected;
- sectors were properly read)
+- added Swedish locale from Daniel Nylander
+- fixed utf8 strlen problem in console output
+- fixed missing output of last sector status during
+ read and verify operations (only GUI output was affected;
+ sectors were properly read)
0.67 (devel-16) 15-06-2006
- - removed race conditions in some GUI idle functions
+- removed race conditions in some GUI idle functions
0.67 (devel-15) 11-06-2006
- - fixed CreateBitmap() namespace collision under Windows
- - fixed md5sum miscompare on source code check under Windows
- - made RS02 image detection more robust for dealing with
- rewriteable media
+- fixed CreateBitmap() namespace collision under Windows
+- fixed md5sum miscompare on source code check under Windows
+- made RS02 image detection more robust for dealing with
+ rewriteable media
0.67 (devel-14) 10-06-2006
- - completed german localization
- - fixed "fuzzy line" redraw bug in reading speed curve
+- completed german localization
+- fixed "fuzzy line" redraw bug in reading speed curve
0.67 (devel-13) 04-06-2006
- - some more fine tuning of adaptive reading for RS02
- - remove some debugging output from locale and path search
- - optimized image type detection for RS02 media
- - added wininst directory for NSIS installer related files
+- some more fine tuning of adaptive reading for RS02
+- remove some debugging output from locale and path search
+- optimized image type detection for RS02 media
+- added wininst directory for NSIS installer related files
0.67 (devel-12) 28-05-2006
- - Major rewrite of adaptive reading strategy.
- RS02 images are now handled correctly so that reading
- stops when enough data for error correction has been
- gathered.
+- Major rewrite of adaptive reading strategy.
+ RS02 images are now handled correctly so that reading
+ stops when enough data for error correction has been
+ gathered.
0.67 (devel-11) 27-05-2006
- - added defect medium simulation via --sim-defects n command line
- option
+- added defect medium simulation via --sim-defects n command line
+ option
0.67 (devel-10) 25-05-2006
- - removed drive database
- - Windows online manual crash fixed (thanks to Rob B.for helping
- to track this down!)
- - online manual debugging code removed
- - version.h replaced with bbc variable
- - added changes to GNUMakefile.template from Lubos
+- removed drive database
+- Windows online manual crash fixed (thanks to Rob B.for helping
+ to track this down!)
+- online manual debugging code removed
+- version.h replaced with bbc variable
+- added changes to GNUMakefile.template from Lubos
0.67 (devel-9) 15-05-2006
- - replaced --parse-udf and --parse-ecc with --query-size
+- replaced --parse-udf and --parse-ecc with --query-size
0.67 (devel-8) 14-05-2006
- - added log file option to debug the online manual crashes
- - again some fixes in the Windows initialization
+- added log file option to debug the online manual crashes
+- again some fixes in the Windows initialization
0.67 (devel-7) 14-05-2006
- - reviewed and fixed Windows path initalization codes
- (thanks to Lubos!)
-
+- reviewed and fixed Windows path initalization codes
+ (thanks to Lubos!)
+
0.67 (devel-6) 30-04-2006
- - .dvdisaster and .iso/.ecc files are placed in user writeable places
- under Windows if possible
+- .dvdisaster and .iso/.ecc files are placed in user writeable places
+ under Windows if possible
0.67 (devel-5) 23-04-2006
- - Julian Einwag started working on the Mac OS X / Darwin SCSI layer.
- Thanks :-)
- - fixed RS02 for big endian architectures
+- Julian Einwag started working on the Mac OS X / Darwin SCSI layer.
+ Thanks :-)
+- fixed RS02 for big endian architectures
0.67 (devel-4) 17-04-2006
- - completed graphical fix action for RS02.
- RS02 is now fully integrated with the GUI.
+- completed graphical fix action for RS02.
+ RS02 is now fully integrated with the GUI.
0.67 (devel-3) 15-04-2006
- - completed graphical compare action for RS02
- - removed wording inconsistencies (footprint->fingerprint;
- trimming->truncating) as noted by Daniel N.
+- completed graphical compare action for RS02
+- removed wording inconsistencies (footprint->fingerprint;
+ trimming->truncating) as noted by Daniel N.
0.67 (devel-2) 09-04-2006
- - added named mutex as proposed by Lubos
- - I felt silly so I changed the empty welcome window to actually
- display a welcome message ;-)
+- added named mutex as proposed by Lubos
+- I felt silly so I changed the empty welcome window to actually
+ display a welcome message ;-)
0.67 (devel-1) 02-04-2006
- - added preferences settings for RS02
- - linked RS02 image creation with graphical user interface
- - suppressed error message when adjusting reading range without medium in drive
+- added preferences settings for RS02
+- linked RS02 image creation with graphical user interface
+- suppressed error message when adjusting reading range without medium in drive
0.66 (pl-2) 28-03-2006
- - added .xpm icons in contrib
+- added .xpm icons in contrib
0.66 (pl-1) 27-03-2006
- - fixed broken makefile when configured with --buildroot
- (thanks to Lubos!)
+- fixed broken makefile when configured with --buildroot
+ (thanks to Lubos!)
------ 0.66 released ------
0.66 25-03-2006
- - last RS02 headers were omitted when they would end up in the last
- two image sectors. fixed.
- - updated installation scripts for new documentation structure
- - fixed writing of superflous bytes when repairing non-image files
- in RS01
- - fixed garbling of error correction data when processing
- non-image files with RS02
- - fixed handling of truncated images in RS02
- - fixed incorrect erasure count in RS02 decoder
- - fixed false CRC errors for unreadable CRC sectors in RS02 decoder
+- last RS02 headers were omitted when they would end up in the last
+ two image sectors. fixed.
+- updated installation scripts for new documentation structure
+- fixed writing of superflous bytes when repairing non-image files
+ in RS01
+- fixed garbling of error correction data when processing
+ non-image files with RS02
+- fixed handling of truncated images in RS02
+- fixed incorrect erasure count in RS02 decoder
+- fixed false CRC errors for unreadable CRC sectors in RS02 decoder
0.66 (rc-7) 12-03-2006
- - added homepage generation for SourceForge
- - final rework of background20 in the documentation
- - added --parse-ecc option
- - added documentation for --parse-ecc: example90, example10, example30,
- example81, prefs-general.png, prefs-general1.png
- - moved localized screenshots from images to lang/images
- - added media checksum test for ecc header search
+- added homepage generation for SourceForge
+- final rework of background20 in the documentation
+- added --parse-ecc option
+- added documentation for --parse-ecc: example90, example10, example30,
+ example81, prefs-general.png, prefs-general1.png
+- moved localized screenshots from images to lang/images
+- added media checksum test for ecc header search
0.66 (rc-6) 04-03-2006
- - fixed image size miscalculation in RS02Common
- - fixed layout miscalculation for certain border cases in RS02Common
- - debug.c: added random removal of ecc headers;
- fixed range check in erasure calculation
- - added media size recognition from RS02 headers in query_size()
- this will need some more thought.
+- fixed image size miscalculation in RS02Common
+- fixed layout miscalculation for certain border cases in RS02Common
+- debug.c: added random removal of ecc headers;
+ fixed range check in erasure calculation
+- added media size recognition from RS02 headers in query_size()
+ this will need some more thought.
0.66 (rc-5) 03-03-2006
- - changed ShellExecute() call which might have caused the
- mysterious Help system crashes on Windows (I was never able
- to reproduce them)
- - adapted --random-errors for ecc images
- - fixed miscalculation of ecc header count for certain
- image lenghts in RS02
- - fixed misreported CRC errors in RS02Compare when read errors
- are present in the CRC section
- - dropped / rephrased "error correction images" in documentation
- - reworked German part of background20, this is still work in progress
+- changed ShellExecute() call which might have caused the
+ mysterious Help system crashes on Windows (I was never able
+ to reproduce them)
+- adapted --random-errors for ecc images
+- fixed miscalculation of ecc header count for certain
+ image lenghts in RS02
+- fixed misreported CRC errors in RS02Compare when read errors
+ are present in the CRC section
+- dropped / rephrased "error correction images" in documentation
+- reworked German part of background20, this is still work in progress
0.66 (rc-4) 26-02-2006
- - fixed documentation path in manuals
- - added summary messages after RS02 repair
- - added correct handling of truncated images in fix, compare
- - added correct handling of images with trailing garbage
- in fix, compare
- - fixed commandline crash in RS01 when image was 1 or 2 sectors
- too large
- - added FAQ item 3.7 to documentation
- - fixed spurious
in example40cs table
+- fixed documentation path in manuals
+- added summary messages after RS02 repair
+- added correct handling of truncated images in fix, compare
+- added correct handling of images with trailing garbage
+ in fix, compare
+- fixed commandline crash in RS01 when image was 1 or 2 sectors
+ too large
+- added FAQ item 3.7 to documentation
+- fixed spurious
in example40cs table
0.66 (rc-3) 25-02-2006
- - cleanup of the documentation HTML code (thanks to Lubos)
- . cleaned up misplaced tags
- . added missing alt="" within
- . fixed several links
- . removed spurius from command line argument tables
- . added missing to command line examples
- . fixed tags
- . remove full stop from head lines
+- cleanup of the documentation HTML code (thanks to Lubos)
+ . cleaned up misplaced tags
+ . added missing alt="" within
+ . fixed several links
+ . removed spurius from command line argument tables
+ . added missing to command line examples
+ . fixed tags
+ . remove full stop from head lines
0.66 (rc-2) 21-02-2006
- - released brake on RS02 encoding (improved HDD writing pattern)
+- released brake on RS02 encoding (improved HDD writing pattern)
0.66 (rc-1) 19-02-2006
- - command line version of RS02 codec
- - joined examples and command line section of manual
+- command line version of RS02 codec
+- joined examples and command line section of manual
0.65 (devel-4) 12-02-2006
- - renamed .img files to .iso files to facilitate easier
- interoperability between RS02 ecc images and burning software
+- renamed .img files to .iso files to facilitate easier
+ interoperability between RS02 ecc images and burning software
0.65 (devel-3) 11-02-2006
- - Creation of image and ecc files can be resumed after going
- out of disc space (only in GUI mode)
- - updated README
- - created contrib directory; added desktop and rpm skeletons
- contributed by Lubos Stanek
- - changed length query for SCSI opcode 0xad
- - changed length calculation for SCSI opcode 0x43
- - enabled CRC testing when "Delete image file?" is answered
- positively
+- Creation of image and ecc files can be resumed after going
+ out of disc space (only in GUI mode)
+- updated README
+- created contrib directory; added desktop and rpm skeletons
+ contributed by Lubos Stanek
+- changed length query for SCSI opcode 0xad
+- changed length calculation for SCSI opcode 0x43
+- enabled CRC testing when "Delete image file?" is answered
+ positively
0.65 (devel-2) 29-01-2006
- - added CRC testing during linear read and scan options
- (if the respective ecc file is present)
- - added flags for marking development versions and release candidates
- in the ecc file versiom information
- - removed some memory leaks in the windows version
+- added CRC testing during linear read and scan options
+ (if the respective ecc file is present)
+- added flags for marking development versions and release candidates
+ in the ecc file versiom information
+- removed some memory leaks in the windows version
0.65 (devel-1) 22-01-2006
- - fixed several places in Makefile to handle source tree from CVS properly
- - reorganized documentation scripts to better separate HTML markup
- from translated phrases (dictionary_xx functions)
- - removed language selection from online manual
- - separated documentation image archives by language
- - fixed crash when documentation was not properly installed
- - added --buildroot option to configure
- (thanks to D. Baumann and V. Kuhlmann for explaining the need for this!)
+- fixed several places in Makefile to handle source tree from CVS properly
+- reorganized documentation scripts to better separate HTML markup
+ from translated phrases (dictionary_xx functions)
+- removed language selection from online manual
+- separated documentation image archives by language
+- fixed crash when documentation was not properly installed
+- added --buildroot option to configure
+ (thanks to D. Baumann and V. Kuhlmann for explaining the need for this!)
------ 0.65 released ------
0.65: 14-01-2006
- - Czech translation by Lubos Stanek
- - made invocation of external HTML viewer more flexible and robust
- - started support for big endian archs (NOT completed yet!)
- - modularized scsi and codec interface for easier future expansion
- - made --random-errors use the internal random number generator
- and allow for independent selection of number of roots/erasures
- - Error correction files can be larger than 2GB on FAT file systems
- - changed medium fingerprint sector from 257 to 16 (ISO file system root block)
- - Windows binaries are now shipped with Gtk+2.6 libraries
- - CRC information is calculated and cached when reading the image
- so that we do not need to re-read the image in a subsequent create operation.
- - tinkered with speed curve algorithm to get smoother lines
- - made sector color markers during linear read more understandable (hopefully)
- - configure will now correctly honor $LDFLAGS from the user environment
- - added Gtk+ library localization files to Windows distribution
- (thanks to J. Meyer for reporting this problem!)
- - fixed bug in the Errors/Ecc block graph which would make it scale incorrectly
- if uncorrectable errors are encountered (this was just a rendering problem
- with no influence on the actual error correction)
- - added gdk pixbuf check to configure (thanks to W. Wershofen for noting this!)
- - better error diagnosis for invalid ecc files (thanks to Lubos for noting this!)
- - modified code to compile cleanly under gcc 4.02
+- Czech translation by Lubos Stanek
+- made invocation of external HTML viewer more flexible and robust
+- started support for big endian archs (NOT completed yet!)
+- modularized scsi and codec interface for easier future expansion
+- made --random-errors use the internal random number generator
+ and allow for independent selection of number of roots/erasures
+- Error correction files can be larger than 2GB on FAT file systems
+- changed medium fingerprint sector from 257 to 16 (ISO file system root block)
+- Windows binaries are now shipped with Gtk+2.6 libraries
+- CRC information is calculated and cached when reading the image
+ so that we do not need to re-read the image in a subsequent create operation.
+- tinkered with speed curve algorithm to get smoother lines
+- made sector color markers during linear read more understandable (hopefully)
+- configure will now correctly honor $LDFLAGS from the user environment
+- added Gtk+ library localization files to Windows distribution
+ (thanks to J. Meyer for reporting this problem!)
+- fixed bug in the Errors/Ecc block graph which would make it scale incorrectly
+ if uncorrectable errors are encountered (this was just a rendering problem
+ with no influence on the actual error correction)
+- added gdk pixbuf check to configure (thanks to W. Wershofen for noting this!)
+- better error diagnosis for invalid ecc files (thanks to Lubos for noting this!)
+- modified code to compile cleanly under gcc 4.02
0.64.2: 01-11-2005
- - fixed crash when using -u in command line mode
- - changed packaging system to allow different package and version numbering systems
- Current naming scheme is:
- . package name = package directory = 0.xx[.y]
- . version name (as advertised in GUI) = 0.xx[ (pl y)]
- - fixed img file permissions for Linux version
- - drive selection wasn't remembered between sessions under
- Gtk+-2.4 and higher: fixed
- - Manual/Homepage fixed for some MSIE glitches
+- fixed crash when using -u in command line mode
+- changed packaging system to allow different package and version numbering systems
+ Current naming scheme is:
+ . package name = package directory = 0.xx[.y]
+ . version name (as advertised in GUI) = 0.xx[ (pl y)]
+- fixed img file permissions for Linux version
+- drive selection wasn't remembered between sessions under
+ Gtk+-2.4 and higher: fixed
+- Manual/Homepage fixed for some MSIE glitches
0.64.1: 23-10-2005
- - fixed bug which activated automatic ecc file generation in scan mode
- - fixed crash at startup when linked against Gtk+ 2.6
- (Thanks to Radu M. and Richard B. for noting this!)
+- fixed bug which activated automatic ecc file generation in scan mode
+- fixed crash at startup when linked against Gtk+ 2.6
+ (Thanks to Radu M. and Richard B. for noting this!)
0.64: 18-10-2005
- - reworked console and logging output:
- Got rid of \b usage in locale files,
- making gawk filtering of diagnostic warning obsolete.
- More removal of read and CRC error reporting in GUI mode as buffering
- them may result in going out of memory in worst case situations.
- Use the program in command line mode and apply file
- redirection if you still wish to see these messages.
- - fixed a glitch in the linear read/scanning GUI
- which prevented small unreadable areas to stay
- marked red in the spiral
- - fixed bug which did not install the CREDITS.* files
- - fixed configure to use the --prefix settings properly
- (thanks to Daniel Baumann for pointing this out)
- - added de/en/it man pages supplied by Daniel Baumann
- - fixed non-working --spinup-delay command line arg
- - added configurable --docsubdir at request of Daniel
- - Changed linear reading strategy
- . Sector skipping after a read error is now done in all passes,
- not just the first one (the previous behaviour turned out as
- an arbitrary design decision which did not really make sense)
- . Re-reading passes are carried out in 16 sector chunks, too
- - provided workaround for detecting CD media on Teac slimline
- drives (and possibly others) caused by silly firmware answers
- - provided workaround for read errors which are reported
- as something else by sloppy firmware
- - added debugging functions --random-image and --random-seed for creating
- images with "random" numbers. Images created with --random-seed n are
- bitwise mirrors of those created with --random-seed -n.
- - hunted down some memory leaks
- - turned warning dialogs into modal dialogs
- - fixed some minor redraw flaws in adaptive read mode
- - fixed automatic file removal bug when in FAT32 mode
- (thanks to Peter H., Walter G and Stephan J. for noting this)
- - fixed error handling in GUI mode: in some rare error situations,
- it would not bring up the intended error dialog, but either
- continue quietly or terminate the whole program.
- - fixed empty drive pop down menu after changing drives in the system
- or sharing a dvdisaster installation between different Windows installations
- - started support for parsing ISO file system structures
- - added some recent drives to the drive data base
- - rewrote the drive spinup code
- - added function for automatically creating the .ecc file after
- successfully reading an image
- - documentation partially rewritten
- - added some code to make sure that the "read adaptive" spiral fits into the window
- - removed flicker in the "read adaptive" mode text output
+- reworked console and logging output:
+ Got rid of \b usage in locale files,
+ making gawk filtering of diagnostic warning obsolete.
+ More removal of read and CRC error reporting in GUI mode as buffering
+ them may result in going out of memory in worst case situations.
+ Use the program in command line mode and apply file
+ redirection if you still wish to see these messages.
+- fixed a glitch in the linear read/scanning GUI
+ which prevented small unreadable areas to stay
+ marked red in the spiral
+- fixed bug which did not install the CREDITS.* files
+- fixed configure to use the --prefix settings properly
+ (thanks to Daniel Baumann for pointing this out)
+- added de/en/it man pages supplied by Daniel Baumann
+- fixed non-working --spinup-delay command line arg
+- added configurable --docsubdir at request of Daniel
+- Changed linear reading strategy
+ . Sector skipping after a read error is now done in all passes,
+ not just the first one (the previous behaviour turned out as
+ an arbitrary design decision which did not really make sense)
+ . Re-reading passes are carried out in 16 sector chunks, too
+- provided workaround for detecting CD media on Teac slimline
+ drives (and possibly others) caused by silly firmware answers
+- provided workaround for read errors which are reported
+ as something else by sloppy firmware
+- added debugging functions --random-image and --random-seed for creating
+ images with "random" numbers. Images created with --random-seed n are
+ bitwise mirrors of those created with --random-seed -n.
+- hunted down some memory leaks
+- turned warning dialogs into modal dialogs
+- fixed some minor redraw flaws in adaptive read mode
+- fixed automatic file removal bug when in FAT32 mode
+ (thanks to Peter H., Walter G and Stephan J. for noting this)
+- fixed error handling in GUI mode: in some rare error situations,
+ it would not bring up the intended error dialog, but either
+ continue quietly or terminate the whole program.
+- fixed empty drive pop down menu after changing drives in the system
+ or sharing a dvdisaster installation between different Windows installations
+- started support for parsing ISO file system structures
+- added some recent drives to the drive data base
+- rewrote the drive spinup code
+- added function for automatically creating the .ecc file after
+ successfully reading an image
+- documentation partially rewritten
+- added some code to make sure that the "read adaptive" spiral fits into the window
+- removed flicker in the "read adaptive" mode text output
0.63: 01-08-2005
- - added adaptive read strategy (thanks to Harald Bögeholz
- for the suggestion; see also the CREDITS file)
- - added --fill-unreadble option for better compatibility with
- other tools (e.g. h2cdimage from c't magazine)
- - cut down information written to the log window in GUI mode
- as that could use up significant amounts of memory in worst
- case scenarios. Use command line mode if you are still interested
- in these messages.
- - fixed code for clean compile with gcc 4.0.1
- - added auto-suffix option for automatically adding .img/.ecc to files
- given without an extension (thanks to Marcus for the suggestion!)
- - changed function test prototype in bash based configure from
- char* to char to work around misdetection of gcc's builtin gettext()
- (thanks to Heinz R. for pointing this out)
- - fixed crash in About requester when LANG environment was not set
- (thanks to Andreas for the patch!)
+- added adaptive read strategy (thanks to Harald Bögeholz
+ for the suggestion; see also the CREDITS file)
+- added --fill-unreadble option for better compatibility with
+ other tools (e.g. h2cdimage from c't magazine)
+- cut down information written to the log window in GUI mode
+ as that could use up significant amounts of memory in worst
+ case scenarios. Use command line mode if you are still interested
+ in these messages.
+- fixed code for clean compile with gcc 4.0.1
+- added auto-suffix option for automatically adding .img/.ecc to files
+ given without an extension (thanks to Marcus for the suggestion!)
+- changed function test prototype in bash based configure from
+ char* to char to work around misdetection of gcc's builtin gettext()
+ (thanks to Heinz R. for pointing this out)
+- fixed crash in About requester when LANG environment was not set
+ (thanks to Andreas for the patch!)
0.62: 03-07-2005
- - added correct return codes to indicate whether reading
- succeeded or found bad sectors in command line mode
- - added experimental support for splitting image files into 2GB chunks
- (mainly for use with VFAT an Win9x; avoid this mode if you can)
- - added compare function to graphical user interface
- - fixed 'make install' (thanks to Andreas for noting the problems)
- - fixed german umlaut glitch in the foot line (thanks to GoldenFingaz
- for pointing this out)
- - relaxed handling of image size mismatches
-
+- added correct return codes to indicate whether reading
+ succeeded or found bad sectors in command line mode
+- added experimental support for splitting image files into 2GB chunks
+ (mainly for use with VFAT an Win9x; avoid this mode if you can)
+- added compare function to graphical user interface
+- fixed 'make install' (thanks to Andreas for noting the problems)
+- fixed german umlaut glitch in the foot line (thanks to GoldenFingaz
+ for pointing this out)
+- relaxed handling of image size mismatches
+
0.61: 24-04-2005
- - added preferences dialog
- - decoupled command line settings from GUI settings so that
- command line arguments will not be remembered across sessions
- and GUI settings will not be used in command line mode.
- - more image size detection fine tuning (this becomes a running gag, huh?)
- - added --speed-warning option (thanks to Richard B. for the suggestion!)
- - added --spinup-delay option
- - removed startup-related downspike in the speed graph
+- added preferences dialog
+- decoupled command line settings from GUI settings so that
+ command line arguments will not be remembered across sessions
+ and GUI settings will not be used in command line mode.
+- more image size detection fine tuning (this becomes a running gag, huh?)
+- added --speed-warning option (thanks to Richard B. for the suggestion!)
+- added --spinup-delay option
+- removed startup-related downspike in the speed graph
0.60: 09-04-2005
- - first release with graphical user interface
- - tinkered again with image size detection
- - added debugging function for zeroing out the "unreadable sector"
- markers (thanks to Marcus J. for the suggestion!)
- - made configure more compatible with autoconf behaviour
- (thanks to Andreas for pointing out the differences!)
+- first release with graphical user interface
+- tinkered again with image size detection
+- added debugging function for zeroing out the "unreadable sector"
+ markers (thanks to Marcus J. for the suggestion!)
+- made configure more compatible with autoconf behaviour
+ (thanks to Andreas for pointing out the differences!)
0.55: 20-02-2005
- - added Italian translation from Andrea Polverini (polve@polve.com)
- - improved media type detection
- - upward compatibility with the improved media footprint calculation
- from upcoming version 0.60
+- added Italian translation from Andrea Polverini (polve@polve.com)
+- improved media type detection
+- upward compatibility with the improved media footprint calculation
+ from upcoming version 0.60
0.54: 01-01-2005
- - Switched from Cygwin/cygwin1.dll to Mingw/msvcrt.dll,
- with some additional functionality taken over by glib2.
- This may cause some short-time inconvenience (please report
- all different behaviour relative to 0.53.1!),
- but will pay off in later versions.
- - Some code reorganization.
- - Shortened the version number scheme to major.minor
- - Removed visualization via gnuplot. Visualization will be
- re-introduced in version 0.60; please use version 0.53.1
- for visualization if needed.
- - Reworked compilation instructions in documentation.
+- Switched from Cygwin/cygwin1.dll to Mingw/msvcrt.dll,
+ with some additional functionality taken over by glib2.
+ This may cause some short-time inconvenience (please report
+ all different behaviour relative to 0.53.1!),
+ but will pay off in later versions.
+- Some code reorganization.
+- Shortened the version number scheme to major.minor
+- Removed visualization via gnuplot. Visualization will be
+ re-introduced in version 0.60; please use version 0.53.1
+ for visualization if needed.
+- Reworked compilation instructions in documentation.
0.53.1: 27-12-2004
- - encrypted discs will be rejected before any actual reading
- is attempted (avoids confusing error messages when running into
- the encrypted area).
+- encrypted discs will be rejected before any actual reading
+ is attempted (avoids confusing error messages when running into
+ the encrypted area).
0.53.0: 23-12-2004
- - introduction of GNU gettext
- - German localization
- - Makefile will automatically collect .c files
- - Preparation for multiple codecs
- - fixed incorrect media size calculation for +RW images
- - fixed installation procedure (thanks to Kay D. !)
+- introduction of GNU gettext
+- German localization
+- Makefile will automatically collect .c files
+- Preparation for multiple codecs
+- fixed incorrect media size calculation for +RW images
+- fixed installation procedure (thanks to Kay D. !)
0.52.1: 04-12-2004
- - Fixed the handling of truncated image files (thanks to Harald B.!)
- - Better diagnosis of images which are longer than supposed
- (should never happen, but one never knows)
+- Fixed the handling of truncated image files (thanks to Harald B.!)
+- Better diagnosis of images which are longer than supposed
+ (should never happen, but one never knows)
0.52.0: 28-11-2004
- - codec speedups and user selectable redundancy settings
+- codec speedups and user selectable redundancy settings
0.51.1: 13-11-2004
- - fixed bug which prevented dvdisaster from working
- under Windows XP without Cygwin being installed
- (thanks to Andrea and Harald B. for reporting this!)
- - removed unnecessary open with write permission
- within --test action
- - Besides bringing scanning speed to a screeching halt on
- slow systems, calculation of the image md5sum during
- the --scan option wasn't very useful -- removed it.
- - repaired a glitch which would derail the codec when
- fixing a truncated image
- - added --dao option
- - added a test predicting a TAO medium when fixing a
- damaged image
-
+- fixed bug which prevented dvdisaster from working
+ under Windows XP without Cygwin being installed
+ (thanks to Andrea and Harald B. for reporting this!)
+- removed unnecessary open with write permission
+ within --test action
+- Besides bringing scanning speed to a screeching halt on
+ slow systems, calculation of the image md5sum during
+ the --scan option wasn't very useful -- removed it.
+- repaired a glitch which would derail the codec when
+ fixing a truncated image
+- added --dao option
+- added a test predicting a TAO medium when fixing a
+ damaged image
+
0.51.0: 06-11-2004
- - added experimental ASPI support for Cygwin version
- - added alternative "-end" syntax for specifying the sector range
- - added -j/--jump option
- - fixed minor bug which made -t option fail reading the CRC data
- on very small media images
-
+- added experimental ASPI support for Cygwin version
+- added alternative "-end" syntax for specifying the sector range
+- added -j/--jump option
+- fixed minor bug which made -t option fail reading the CRC data
+ on very small media images
+
0.50.0: 01-10-2004
- - Experimental Cygwin support.
- - Rewrote SCSI layer for portability.
- - Introduced ./configure mechanism.
- - Dropped --direct option for portability reasons.
- - Changed behaviour of continuing the reading of incomplete images;
- if the image size is smaller than the medium size, reading will
- now continue at the last read sector. Previous versions would have
- tried all unread sectors before.
- - Fixed a bug which would not fill in the missing sector markers
- on a sequence of non overlapping read intervals (such as doing
- -r0-100000; -r110000-media_end; the range 100001-109999 would
- have been simply zeroed out in previous versions).
+- Experimental Cygwin support.
+- Rewrote SCSI layer for portability.
+- Introduced ./configure mechanism.
+- Dropped --direct option for portability reasons.
+- Changed behaviour of continuing the reading of incomplete images;
+ if the image size is smaller than the medium size, reading will
+ now continue at the last read sector. Previous versions would have
+ tried all unread sectors before.
+- Fixed a bug which would not fill in the missing sector markers
+ on a sequence of non overlapping read intervals (such as doing
+ -r0-100000; -r110000-media_end; the range 100001-109999 would
+ have been simply zeroed out in previous versions).
0.42.2: 23-09-2004
- - changed the --fix semantics so that sectors with wrong CRC sums
- will automatically be fixed (previous versions would just report
- them as bad when using the -t option)
- - made --fix more verbose about CRC errors
+- changed the --fix semantics so that sectors with wrong CRC sums
+ will automatically be fixed (previous versions would just report
+ them as bad when using the -t option)
+- made --fix more verbose about CRC errors
0.42.1: 11-09-2004
- - unrolled the inner codec loop; optimized some C expressions within
- - code cleanup in the encoder
+- unrolled the inner codec loop; optimized some C expressions within
+- code cleanup in the encoder
0.42.0: 08-09-2004 (no public release)
- - changed the caching and code generation strategy in the RS encoder
- - added program version information in the ecc file header
- - updated the --print option to show the new header information
- - made --fix option reject .ecc files from future program versions
+- changed the caching and code generation strategy in the RS encoder
+- added program version information in the ecc file header
+- updated the --print option to show the new header information
+- made --fix option reject .ecc files from future program versions
0.41.2: 05-09-2004
- - some speed optimizations in the encoder
- - the --direct option now actually works
- - removed the #ifdef DEBUG clutter in ecc-rs01.c
- - added the --byteset debugging function
+- some speed optimizations in the encoder
+- the --direct option now actually works
+- removed the #ifdef DEBUG clutter in ecc-rs01.c
+- added the --byteset debugging function
- NOTE: Debugging functions are intentionally undocumented and unsupported.
+NOTE: Debugging functions are intentionally undocumented and unsupported.
0.41.1: 31-08-2004
- - added CRC32 checksum for each image block in the .ecc file
+- added CRC32 checksum for each image block in the .ecc file
0.41.0: 28-08-2004 (no public release)
- - Replaced the matrix-based codec with one using polynomials.
+- Replaced the matrix-based codec with one using polynomials.
0.40.8: 24-08-2004 (no public release)
- - removed unused div_tab[] from ecc-rs01.c (which was incorrectly initialized anyways)
- - fixed md5sum miscompare in print.c
- - added the --random-errors debugging function
+- removed unused div_tab[] from ecc-rs01.c (which was incorrectly initialized anyways)
+- fixed md5sum miscompare in print.c
+- added the --random-errors debugging function
- NOTE: Debugging functions are intentionally undocumented and unsupported.
+NOTE: Debugging functions are intentionally undocumented and unsupported.
-0.40.7: 22-08-2004
- First public release
+0.40.7:22-08-2004
+First public release
diff -Nru dvdisaster-0.79.5/closure.c dvdisaster-0.79.10/closure.c
--- dvdisaster-0.79.5/closure.c 2015-11-12 19:59:10.000000000 +0000
+++ dvdisaster-0.79.10/closure.c 2021-09-24 09:33:18.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,7 +20,10 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: some GUI code ***/
+
#include "dvdisaster.h"
+#include "build.h"
#if 0
#define Verbose g_printf
@@ -28,58 +31,7 @@
#define Verbose(format, ...)
#endif
-/***
- *** Locate the binary and documentation directory
- ***/
-
-static void get_base_dirs()
-{
- /*** Unless completely disabled through a configure option, the
- source directory is supposed to hold the most recent files,
- so try this first. */
-
-#ifdef WITH_EMBEDDED_SRC_PATH_YES
- if(DirStat(SRCDIR))
- { Closure->binDir = g_strdup(SRCDIR);
- Closure->docDir = g_strdup_printf("%s/documentation",SRCDIR);
- Verbose("Using paths from SRCDIR = %s\n", SRCDIR);
- goto find_dotfile;
- }
-#endif /* WITH_EMBEDDED_SRC_PATH_YES */
-
- /*** Otherwise try the installation directory.
- On Unices this is a hardcoded directory. */
-
-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD) || defined(SYS_UNKNOWN)
- if(DirStat(BINDIR))
- Closure->binDir = g_strdup(BINDIR);
-
- if(DirStat(DOCDIR))
- Closure->docDir = g_strdup(DOCDIR);
- Verbose("Using hardcoded BINDIR = %s, DOCDIR = %s\n", BINDIR, DOCDIR);
-#endif
-
- /*** The location of the dotfile depends on the operating system.
- Under Unix the users home directory is used. */
-
-#ifdef WITH_EMBEDDED_SRC_PATH_YES
-find_dotfile:
-#endif /* WITH_EMBEDDED_SRC_PATH_YES */
-
- Closure->homeDir = g_strdup(g_getenv("HOME"));
- if(!Closure->dotFile) /* may have been set by the --resource-file option */
- Closure->dotFile = g_strdup_printf("%s/.dvdisaster", Closure->homeDir);
-
- Verbose("\nUsing file locations:\n"
- "- Homedir: %s\n"
- "- Bin dir: %s\n"
- "- Doc dir: %s\n"
- "- dotfile: %s\n\n",
- Closure->homeDir,
- Closure->binDir,
- Closure->docDir,
- Closure->dotFile);
-}
+#ifdef WITH_GUI_YES
/***
*** Set/get color values
@@ -89,7 +41,7 @@
* Update color string for the ... string
*/
-void UpdateMarkup(char **string, GdkColor *color)
+void GuiUpdateMarkup(char **string, GdkColor *color)
{ int hexval;
hexval = (color->red << 8) & 0xff0000;
@@ -104,7 +56,7 @@
* Default color values
*/
-void DefaultColors()
+void GuiDefaultColors()
{
Closure->redText->red = 0xffff;
Closure->redText->green = 0;
@@ -150,8 +102,8 @@
Closure->whiteSector->green = 0xffff;
Closure->whiteSector->blue = 0xffff;
- UpdateMarkup(&Closure->redMarkup, Closure->redText);
- UpdateMarkup(&Closure->greenMarkup, Closure->greenText);
+ GuiUpdateMarkup(&Closure->redMarkup, Closure->redText);
+ GuiUpdateMarkup(&Closure->greenMarkup, Closure->greenText);
}
static void save_colors(FILE *dotfile, char *symbol, GdkColor *color)
@@ -180,7 +132,7 @@
#define MAX_LINE_LEN 512
-void ReadDotfile()
+void GuiReadDotfile()
{ FILE *dotfile;
char line[MAX_LINE_LEN];
@@ -196,7 +148,7 @@
/* Get first MAX_LINE_LEN bytes of line, discard the rest */
line[MAX_LINE_LEN-1] = 1;
- fgets(line, MAX_LINE_LEN, dotfile);
+ if(!fgets(line, MAX_LINE_LEN, dotfile)) break;
if(!line[MAX_LINE_LEN-1]) /* line longer than buffer */
while(!feof(dotfile) && fgetc(dotfile) != '\n')
;
@@ -225,17 +177,20 @@
if(!strcmp(symbol, "last-image")) { g_free(Closure->imageName);
if(!strcmp(value, "none"))
Closure->imageName = g_strdup("");
- else Closure->imageName = g_strdup(value); continue;
+ else Closure->imageName = g_strdup(value);
+ continue;
}
if(!strcmp(symbol, "last-ecc")) { g_free(Closure->eccName);
if(!strcmp(value, "none"))
Closure->eccName = g_strdup("");
- else Closure->eccName = g_strdup(value); continue;
+ else Closure->eccName = g_strdup(value);
+ continue;
}
if(!strcmp(symbol, "adaptive-read")) { Closure->adaptiveRead = atoi(value); continue; }
if(!strcmp(symbol, "auto-suffix")) { Closure->autoSuffix = atoi(value); continue; }
if(!strcmp(symbol, "bd-size1")) { Closure->bdSize1 = Closure->savedBDSize1 = atoll(value); continue; }
if(!strcmp(symbol, "bd-size2")) { Closure->bdSize2 = Closure->savedBDSize2 = atoll(value); continue; }
+ if(!strcmp(symbol, "bd-size3")) { Closure->bdSize3 = Closure->savedBDSize3 = atoll(value); continue; }
if(!strcmp(symbol, "cache-size")) { Closure->cacheMiB = atoi(value); continue; }
if(!strcmp(symbol, "cd-size")) { Closure->cdSize = Closure->savedCDSize = atoll(value); continue; }
if(!strcmp(symbol, "codec-threads")) { Closure->codecThreads = atoi(value); continue; }
@@ -269,9 +224,6 @@
if(!strcmp(symbol, "max-read-attempts")) { Closure->maxReadAttempts = atoi(value); continue; }
if(!strcmp(symbol, "min-read-attempts")) { Closure->minReadAttempts = atoi(value); continue; }
if(!strcmp(symbol, "old-missing-sector-marker")) { Closure->dsmVersion = !atoi(value); continue; }
- if(!strcmp(symbol, "pdf-viewer")) { g_free(Closure->viewer);
- Closure->viewer = g_strdup(value); continue; }
-
if(!strcmp(symbol, "prefetch-sectors")){ Closure->prefetchSectors = atoi(value); continue; }
if(!strcmp(symbol, "raw-mode")) { Closure->rawMode = atoi(value); continue; }
if(!strcmp(symbol, "read-and-create")) { Closure->readAndCreate = atoi(value); continue; }
@@ -286,11 +238,11 @@
if(!strcmp(symbol, "welcome-msg")) { Closure->welcomeMessage = atoi(value); continue; }
if(!strcmp(symbol, "positive-text")) { get_color(Closure->greenText, value);
- UpdateMarkup(&Closure->greenMarkup, Closure->greenText);
+ GuiUpdateMarkup(&Closure->greenMarkup, Closure->greenText);
continue;
}
if(!strcmp(symbol, "negative-text")) { get_color(Closure->redText, value);
- UpdateMarkup(&Closure->redMarkup, Closure->redText);
+ GuiUpdateMarkup(&Closure->redMarkup, Closure->redText);
continue;
}
if(!strcmp(symbol, "bar-color")) { get_color(Closure->barColor, value); continue; }
@@ -305,8 +257,8 @@
}
if(fclose(dotfile))
- g_fprintf(stderr, "Error closing configuration file %s: %s\n",
- Closure->dotFile, strerror(errno));
+ g_printf("Error closing configuration file %s: %s\n",
+ Closure->dotFile, strerror(errno));
}
static void update_dotfile()
@@ -325,7 +277,7 @@
dotfile = portable_fopen(Closure->dotFile, "wb");
if(!dotfile)
- { g_fprintf(stderr, "Could not open configuration file %s: %s\n",
+ { g_printf("Could not open configuration file %s: %s\n",
Closure->dotFile, strerror(errno));
return;
}
@@ -344,6 +296,7 @@
g_fprintf(dotfile, "auto-suffix: %d\n", Closure->autoSuffix);
g_fprintf(dotfile, "bd-size1: %lld\n", (long long int)Closure->bdSize1);
g_fprintf(dotfile, "bd-size2: %lld\n", (long long int)Closure->bdSize2);
+ g_fprintf(dotfile, "bd-size3: %lld\n", (long long int)Closure->bdSize3);
g_fprintf(dotfile, "cache-size: %d\n", Closure->cacheMiB);
g_fprintf(dotfile, "cd-size: %lld\n", (long long int)Closure->cdSize);
g_fprintf(dotfile, "codec-threads: %d\n", Closure->codecThreads);
@@ -373,7 +326,6 @@
g_fprintf(dotfile, "max-read-attempts: %d\n", Closure->maxReadAttempts);
g_fprintf(dotfile, "min-read-attempts: %d\n", Closure->minReadAttempts);
g_fprintf(dotfile, "old-missing-sector-marker: %d\n", !Closure->dsmVersion);
- g_fprintf(dotfile, "pdf-viewer: %s\n", Closure->viewer);
g_fprintf(dotfile, "prefetch-sectors: %d\n", Closure->prefetchSectors);
g_fprintf(dotfile, "raw-mode: %d\n", Closure->rawMode);
g_fprintf(dotfile, "read-and-create: %d\n", Closure->readAndCreate);
@@ -400,8 +352,62 @@
save_colors(dotfile, "present-sector", Closure->darkSector);
if(fclose(dotfile))
- g_fprintf(stderr, "Error closing configuration file %s: %s\n",
- Closure->dotFile, strerror(errno));
+ g_printf("Error closing configuration file %s: %s\n",
+ Closure->dotFile, strerror(errno));
+}
+#endif /* WITH_GUI_YES */
+
+/***
+ *** Locate the binary and documentation directory
+ ***/
+
+static void get_base_dirs()
+{
+ /*** Unless completely disabled through a configure option, the
+ source directory is supposed to hold the most recent files,
+ so try this first. */
+
+#ifdef WITH_EMBEDDED_SRC_PATH_YES
+ if(DirStat(SRCDIR))
+ { Closure->binDir = g_strdup(SRCDIR);
+ Closure->docDir = g_strdup_printf("%s/documentation",SRCDIR);
+ Verbose("Using paths from SRCDIR = %s\n", SRCDIR);
+ goto find_dotfile;
+ }
+#endif /* WITH_EMBEDDED_SRC_PATH_YES */
+
+ /*** Otherwise try the installation directory.
+ On Unices this is a hardcoded directory. */
+
+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD) || defined(SYS_UNKNOWN)
+ if(DirStat(BINDIR))
+ Closure->binDir = g_strdup(BINDIR);
+
+ if(DirStat(DOCDIR))
+ Closure->docDir = g_strdup(DOCDIR);
+ Verbose("Using hardcoded BINDIR = %s, DOCDIR = %s\n", BINDIR, DOCDIR);
+#endif
+
+ /*** The location of the dotfile depends on the operating system.
+ Under Unix the users home directory is used. */
+
+#ifdef WITH_EMBEDDED_SRC_PATH_YES
+find_dotfile:
+#endif /* WITH_EMBEDDED_SRC_PATH_YES */
+
+ Closure->homeDir = g_strdup(g_getenv("HOME"));
+ if(!Closure->dotFile) /* may have been set by the --resource-file option */
+ Closure->dotFile = g_strdup_printf("%s/.dvdisaster", Closure->homeDir);
+
+ Verbose("\nUsing file locations:\n"
+ "- Homedir: %s\n"
+ "- Bin dir: %s\n"
+ "- Doc dir: %s\n"
+ "- dotfile: %s\n\n",
+ Closure->homeDir,
+ Closure->binDir,
+ Closure->docDir,
+ Closure->dotFile);
}
/***
@@ -419,7 +425,12 @@
/* Extract the version string */
+#ifdef HAVE_UNSTABLE_RELEASE
+ Closure->cookedVersion = g_strdup_printf("%s (unstable)", VERSION);
+ Closure->releaseFlags = MFLAG_DEVEL;
+#else
Closure->cookedVersion = g_strdup(VERSION);
+#endif
/* Generate a more comprehensive version string */
@@ -434,7 +445,7 @@
#endif
Closure->versionString = g_strdup_printf("dvdisaster %s build %d, %s%s",
- Closure->cookedVersion, buildCount, SYS_NAME, BITNESS_STRING);
+ Closure->cookedVersion, BUILD, SYS_NAME, BITNESS_STRING);
/* Replace the dot with a locale-resistant separator */
@@ -464,7 +475,6 @@
Closure->deviceNames = g_ptr_array_new();
Closure->deviceNodes = g_ptr_array_new();
- Closure->viewer = g_strdup("xdg-open");
Closure->methodList = g_ptr_array_new();
Closure->methodName = g_strdup("RS01");
Closure->dDumpDir = g_strdup(Closure->homeDir);
@@ -491,11 +501,13 @@
Closure->dvdSize2 = Closure->savedDVDSize2 = DVD_DL_SIZE;
Closure->bdSize1 = Closure->savedBDSize1 = BD_SL_SIZE;
Closure->bdSize2 = Closure->savedBDSize2 = BD_DL_SIZE;
+ Closure->bdSize3 = Closure->savedBDSize3 = BDXL_TL_SIZE;
Closure->logString = g_string_sized_new(1024);
Closure->logLock = g_malloc0(sizeof(GMutex));
g_mutex_init(Closure->logLock);
+#ifdef WITH_GUI_YES
Closure->background = g_malloc0(sizeof(GdkColor));
Closure->foreground = g_malloc0(sizeof(GdkColor));
Closure->grid = g_malloc0(sizeof(GdkColor));
@@ -512,8 +524,9 @@
Closure->whiteSector = g_malloc0(sizeof(GdkColor));
Closure->darkSector = g_malloc0(sizeof(GdkColor));
- DefaultColors();
-
+ GuiDefaultColors();
+#endif /* WITH_GUI_YES */
+
memset(Closure->bs, '\b', 255);
memset(Closure->sp, ' ', 255);
@@ -536,21 +549,6 @@
}
/*
- * Clear the CRC cache
- */
-
-void ClearCrcCache(void)
-{ if(Closure->crcCache)
- g_free(Closure->crcCache);
- if(Closure->crcImageName)
- g_free(Closure->crcImageName);
-
- Closure->crcCache = NULL;
- Closure->crcImageName = NULL;
- memset(Closure->md5Cache, 0, 16);
-}
-
-/*
* Clean up properly
*/
@@ -572,11 +570,11 @@
void FreeClosure()
{
+#ifdef WITH_GUI_YES
if(Closure->guiMode)
update_dotfile();
-
- ClearCrcCache();
-
+#endif
+
cond_free(Closure->cookedVersion);
cond_free(Closure->versionString);
cond_free(Closure->device);
@@ -595,18 +593,14 @@
cond_free(Closure->logFile);
cond_free(Closure->binDir);
cond_free(Closure->docDir);
- cond_free(Closure->viewer);
cond_free(Closure->errorTitle);
cond_free(Closure->simulateCD);
cond_free(Closure->dDumpDir);
cond_free(Closure->dDumpPrefix);
- if(Closure->prefsContext)
- FreePreferences(Closure->prefsContext);
-
- if(Closure->rawEditorContext)
- FreeRawEditorContext(Closure->rawEditorContext);
-
+ if(Closure->crcBuf)
+ FreeCrcBuf(Closure->crcBuf);
+
if(Closure->logString)
g_string_free(Closure->logString, TRUE);
@@ -615,6 +609,13 @@
g_free(Closure->logLock);
}
+#ifdef WITH_GUI_YES
+ if(Closure->prefsContext)
+ GuiFreePreferences(Closure->prefsContext);
+
+ if(Closure->rawEditorContext)
+ GuiFreeRawEditorContext(Closure->rawEditorContext);
+
if(Closure->drawGC)
g_object_unref(Closure->drawGC);
@@ -637,20 +638,17 @@
cond_free(Closure->greenMarkup);
cond_free(Closure->invisibleDash);
- if(Closure->readLinearCurve)
- FreeCurve(Closure->readLinearCurve);
-
- if(Closure->readLinearSpiral)
- FreeSpiral(Closure->readLinearSpiral);
-
- if(Closure->readAdaptiveSpiral)
- FreeSpiral(Closure->readAdaptiveSpiral);
+ GuiFreeCurve(Closure->readLinearCurve);
+ GuiFreeSpiral(Closure->readLinearSpiral);
+ GuiFreeSpiral(Closure->readAdaptiveSpiral);
if(Closure->readAdaptiveSubtitle)
g_free(Closure->readAdaptiveSubtitle);
if(Closure->readAdaptiveErrorMsg)
g_free(Closure->readAdaptiveErrorMsg);
-
+#endif /* WITH_GUI_YES */
+
g_free(Closure);
}
+
diff -Nru dvdisaster-0.79.5/configure dvdisaster-0.79.10/configure
--- dvdisaster-0.79.5/configure 2015-12-07 20:07:22.000000000 +0000
+++ dvdisaster-0.79.10/configure 2021-08-26 13:29:58.000000000 +0000
@@ -1,14 +1,33 @@
#!/usr/bin/env bash
+# dvdisaster: Additional error correction for optical media.
+# Copyright (C) 2004-2018 Carsten Gnoerlich.
+# Copyright (C) 2019-2021 The dvdisaster development team.
+#
+# Email: support@dvdisaster.org
+#
+# This file is part of dvdisaster.
+#
+# dvdisaster is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# dvdisaster is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with dvdisaster. If not, see .
+
# Load the shell functions needed for the rest of this script.
BASH_BASED_CONFIGURE=./scripts/bash-based-configure
REQUIRED_CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I."
-RECOMMENDED_CFLAGS="-O2 -fomit-frame-pointer -Wall"
+RECOMMENDED_CFLAGS="-O2 -fomit-frame-pointer -Wall -Wno-deprecated-declarations -Wno-format-zero-length"
DEBUG_CFLAGS="-ggdb -Wall"
-CFG_USE_CYGWIN="no" # do not change
-
if test -e $BASH_BASED_CONFIGURE; then
source $BASH_BASED_CONFIGURE
else
@@ -19,7 +38,8 @@
# Set the package name and version
-PACKAGE dvdisaster 0.79.5
+PACKAGE dvdisaster 0.79.10
+CFG_HAVE_OPTIONS="$CFG_HAVE_OPTIONS -DHAVE_UNSTABLE_RELEASE"
# Check for some essential tools.
@@ -46,7 +66,12 @@
PRINT_MESSAGE "\nLooking for includes and libraries:"
REQUIRE_GLIB2 2 32 0
-REQUIRE_GTK2 2 6 0 WITH_THREADS
+echo
+
+WITH_OPTION gui yes "[yes | no]"
+if test "$cfg_with_gui" == "yes"; then
+ REQUIRE_GTK2 2 6 0 WITH_THREADS
+fi
echo
if ! CHECK_INCLUDE locale.h locale || ! CHECK_INCLUDE libintl.h intl ; then
@@ -108,10 +133,12 @@
cfg_force_with_nls=no
fi
-if ! EXECUTE_PROGRAM "gdk-pixbuf-csource --help" gdk_pixbuf_csource ; then
- echo "* gdk-pixbuf not installed"
- echo "* or path to gdk-pixbuf-csource is missing."
- exit 1
+if test "$cfg_with_gui" == "yes"; then
+ if ! EXECUTE_PROGRAM "gdk-pixbuf-csource --help" gdk_pixbuf_csource ; then
+ echo "* gdk-pixbuf not installed"
+ echo "* or path to gdk-pixbuf-csource is missing."
+ exit 1
+ fi
fi
# Evaluate the --with* customization options
@@ -124,7 +151,24 @@
PRINT_MESSAGE "\nDebugging options (do not use in production system):"
WITH_OPTION memdebug no "[no | yes]"
-WITH_OPTION efence no "[no | yes]"
+WITH_OPTION debug-printf-format no "[no | yes]"
+WITH_OPTION werror no "[no | yes]"
+
+if test "$cfg_with_debug_printf_format" == "yes"; then
+ # don't use the binary compiled with this,
+ # it's only useful to properly get all the build-time
+ # warnings around printf-errors, that are otherwise
+ # not catched by the compiler because of the _() macro
+ DEFINE_STRING DEBUG_PRINTF_FORMAT 1
+else
+ # warnings given by -Wformat-security are bogus because of _(),
+ # see above comment if you actually want to check for format errors
+ CFG_CFLAGS="$CFG_CFLAGS -Wno-format-security"
+fi
+
+if test "$cfg_with_werror" == "yes"; then
+ CFG_CFLAGS="$CFG_CFLAGS -Werror"
+fi
if test "$cfg_with_efence" == "yes"; then
if ! CHECK_LIBRARY efence malloc efence; then
diff -Nru dvdisaster-0.79.5/contrib/dvdisaster.desktop dvdisaster-0.79.10/contrib/dvdisaster.desktop
--- dvdisaster-0.79.5/contrib/dvdisaster.desktop 2015-10-25 16:31:45.000000000 +0000
+++ dvdisaster-0.79.10/contrib/dvdisaster.desktop 2021-09-24 09:20:04.000000000 +0000
@@ -6,7 +6,8 @@
Comment[cs]=Přídavná ochrana pro média CD/DVD
Comment[de]=Zusätzliche Fehlerkorrektur für CD/DVD
Exec=dvdisaster
-Icon=dvdisaster48.png
+Icon=dvdisaster
Terminal=false
Type=Application
Categories=Application;System;
+Keywords=CD;DVD;media;data loss;scratch;aging;error;protection;recovery;
diff -Nru dvdisaster-0.79.5/crc32.c dvdisaster-0.79.10/crc32.c
--- dvdisaster-0.79.5/crc32.c 2015-01-03 13:44:26.000000000 +0000
+++ dvdisaster-0.79.10/crc32.c 2021-05-26 10:28:30.000000000 +0000
@@ -1,9 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
* CRC32 code based upon public domain code by Ross Williams (see notes below)
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -21,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
/***
diff -Nru dvdisaster-0.79.5/crcbuf.c dvdisaster-0.79.10/crcbuf.c
--- dvdisaster-0.79.5/crcbuf.c 2015-11-26 21:44:05.000000000 +0000
+++ dvdisaster-0.79.10/crcbuf.c 2021-08-26 12:40:02.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,33 +20,141 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
#include "scsi-layer.h"
#include "rs02-includes.h"
/***
- *** Create an uninitialized CRC buffer
+ *** Create a CRC buffer ready for accumulating CRC and MD5 sums
***/
-CrcBuf *CreateCrcBuf(guint64 sectors)
-{ CrcBuf *cb = g_malloc(sizeof(CrcBuf));
+CrcBuf *CreateCrcBuf(Image *image)
+{ CrcBuf *cb = g_malloc0(sizeof(CrcBuf));
+
+ /* MD5 sum related data */
+
+ cb->md5Ctxt = g_malloc(sizeof(struct MD5Context));
+ MD5Init(cb->md5Ctxt);
+ cb->md5State = MD5_BUILDING;
+ cb->lastSector = 0;
+ memset(cb->dataMD5sum, 0, 16);
+ memset(cb->imageMD5sum, 0, 16);
- cb->crcbuf = g_malloc(sectors * sizeof(guint32));
- cb->size = sectors;
- cb->valid = CreateBitmap0(sectors);
+ /* image identification */
+
+ if(image->type == IMAGE_FILE)
+ cb->imageName = g_strdup(image->file->path);
+ /* For augmented images we need both the pure data size and the full size
+ in order to compute MD5 sums for both. Depending on what the user wants
+ to do with the image (create an ecc file or re-augment the image) we'll
+ need the first or the last version.
+ There's one catch, though: If the augmented image is accompanied with
+ an ecc file, we must treat the image as raw data; e.g. do not set
+ the data size to the portion protected by the augmented ecc.
+ Otherwise, the CRC sums from the ecc file which do also protect
+ the augmented ecc part will become unreachable. */
+
+ if(image->eccHeader && !image->eccFileHeader) /* augmented image, and no ecc file? */
+ { cb->dataSectors = uchar_to_gint64(image->eccHeader->sectors);
+ if(image->type == IMAGE_FILE)
+ cb->allSectors = image->sectorSize;
+ else cb->allSectors = image->dh->sectors;
+ }
+ else
+ { if(image->type == IMAGE_FILE)
+ cb->dataSectors = cb->allSectors = image->sectorSize;
+ else cb->dataSectors = cb->allSectors = image->dh->sectors;
+ }
+
+ /* Note: The following statement is not correct for RS03.
+ It does not hurt since RS03 will set the correct value when
+ the CrcBuf is created via RS03GetCrcBuf(), and in all other
+ cases it does currently not matter. Especially, CRC sums
+ created during an image read are not used when subsequently
+ creating new ecc data. */
+
+ cb->coveredSectors = cb->dataSectors;
+
+ /* Extract the fingerprint */
+
+ if(image->fpState == FP_PRESENT)
+ { memcpy(cb->mediumFP, image->imageFP, 16);
+ cb->fpValid = TRUE;
+ }
+ cb->fpSector = image->fpSector;
+
+ /* CRC sum array */
+
+ cb->crcbuf = g_malloc(cb->allSectors * sizeof(guint32));
+ cb->crcSize = cb->allSectors;
+ cb->valid = CreateBitmap0(cb->allSectors);
+
+ image->crcCache = cb;
return cb;
}
-/***
- *** Test a 2048 byte block against the checksum in the buffer
- ***/
+/*
+ * Add a 2048 byte block into the checksum buffer
+ */
+
+int AddSectorToCrcBuffer(CrcBuf *cb, int mode, guint64 idx, unsigned char *buf, int buf_size)
+{ guint32 crc;
+
+ if(idx < 0 || idx >= cb->crcSize)
+ return CRC_OUTSIDE_BOUND;
+
+ /* Update the CRC sums */
+
+ if( (mode & CRCBUF_UPDATE_CRC)
+ || ((mode & CRCBUF_UPDATE_CRC_AFTER_DATA) && idx >= cb->coveredSectors))
+ { crc = Crc32(buf, 2048); /* should be buf_size, but remains at 2048 for backwards compatibility. */
+ cb->crcbuf[idx] = crc; /* does not harm except that the last sector is padded with the contents */
+ SetBit(cb->valid, idx); /* of the previous sector when reading an image file whole size is not */
+ } /* a multiple of 2048 */
+
+ /* Update the MD5 sums */
+
+ if(!(mode & CRCBUF_UPDATE_MD5))
+ return CRC_GOOD;
+
+ if(cb->lastSector != idx) /* sector out of order -> md5sum dead */
+ { cb->md5State = MD5_INVALID;
+ return CRC_BAD;
+ }
+ cb->lastSector++;
+
+ if(idx <= cb->allSectors-1)
+ MD5Update(cb->md5Ctxt, buf, buf_size);
+
+ if(idx == cb->dataSectors-1)
+ { MD5Context *dataCtxt = alloca(sizeof(MD5Context));
+
+ memcpy(dataCtxt, cb->md5Ctxt, sizeof(MD5Context));
+ MD5Final(cb->dataMD5sum, dataCtxt);
+ cb->md5State |= MD5_DATA_COMPLETE;
+ }
+
+ if(idx == cb->allSectors-1)
+ { MD5Final(cb->imageMD5sum, cb->md5Ctxt);
+ cb->md5State |= MD5_IMAGE_COMPLETE;
+ cb->md5State &= ~MD5_BUILDING;
+ }
+
+ return CRC_GOOD;
+}
+
+/*
+ * Test a 2048 byte block against the checksum in the buffer
+ */
int CheckAgainstCrcBuffer(CrcBuf *cb, gint64 idx, unsigned char *buf)
{ guint32 crc;
- if(idx < 0 || idx >= cb->size)
+ if(idx < 0 || idx >= cb->crcSize)
return CRC_OUTSIDE_BOUND;
crc = Crc32(buf, 2048);
@@ -60,6 +168,84 @@
return CRC_BAD;
}
+/*
+ * Make sure that the current image and ecc file match the
+ * cached CRC and md5 informaton
+ */
+
+int CrcBufValid(CrcBuf *crcbuf, Image *image, int mode)
+{
+ if(!crcbuf)
+ { Verbose("CrcBufValid: crcbuf==NULL\n");
+ return FALSE;
+ }
+
+ if(!image)
+ { Verbose("CrcBufValid: image==NULL\n");
+ return FALSE;
+ }
+
+ /* if still in building state we do not have all CRC sums */
+
+ if(crcbuf->md5State & MD5_BUILDING)
+ { Verbose("CrcBufValid: NO, still building\n");
+ return FALSE;
+ }
+
+ /* presence of one MD5 sum suffices (data md5sum may not be present
+ under some circumstances) */
+
+ if((!(crcbuf->md5State & MD5_COMPLETE)))
+ { Verbose("CrcBufValid: NOT complete\n");
+ return FALSE;
+ }
+
+ /* compare fingerprints of buffer and image */
+
+ if(image->fpState != 2)
+ { Verbose("CrcBufValid: image fingerprint not valid (%d)\n",
+ image->fpState);
+ return FALSE;
+ }
+
+ if(!crcbuf->fpValid)
+ { Verbose("CrcBufValid: crcbuf fingerprint not valid\n");
+ return FALSE;
+ }
+
+ if(crcbuf->fpSector != image->fpSector)
+ { Verbose("CrcBufValid: crcbuf/image have different fingerprint sectors (%d/%" PRId64 ")\n",
+ crcbuf->fpSector, image->fpSector);
+ return FALSE;
+ }
+
+ if(memcmp(crcbuf->mediumFP, image->imageFP, 16))
+ { Verbose("CrcBufValid: crcbuf/image have different fingerprints\n");
+ return FALSE;
+ }
+
+ /* additionally, compare the image sizes */
+
+ switch(mode)
+ { case FULL_IMAGE:
+ if(image->sectorSize != crcbuf->allSectors)
+ { Verbose("CrcBufValid(..., FULL_IMAGE): crcbuf/image have different size (%" PRId64 "/%" PRId64 " sectors)\n",
+ image->sectorSize, crcbuf->allSectors);
+ return FALSE;
+ }
+ break;
+ case DATA_SECTORS_ONLY:
+ if(image->sectorSize != crcbuf->dataSectors)
+ { Verbose("CrcBufValid(..., DATA_SECTORS_ONLY): crcbuf/image have different size (%" PRId64 "/%" PRId64 " sectors)\n",
+ image->sectorSize, crcbuf->dataSectors);
+ return FALSE;
+ }
+ break;
+ }
+
+ Verbose("CrcBufValid: buffer VALID\n");
+ return TRUE;
+}
/***
*** Clean up
@@ -67,7 +253,60 @@
void FreeCrcBuf(CrcBuf *cb)
{
+ if(!cb)
+ { Verbose("FreeCrcBuf - nothing to do\n");
+ return;
+ }
+
g_free(cb->crcbuf);
FreeBitmap(cb->valid);
+ if(cb->imageName)
+ g_free(cb->imageName);
+ if(cb->md5Ctxt)
+ g_free(cb->md5Ctxt);
g_free(cb);
+
+ Verbose("FreeCrcBuf - buffer cleared\n");
+}
+
+/***
+ *** Debugging output
+ ***/
+
+void PrintCrcBuf(CrcBuf *cb)
+{ char digest[33];
+ guint64 i,missing=0;
+
+ if(!Closure->verbose)
+ return;
+
+ PrintLog("CrcBuf contents, image path %s:\n", cb->imageName ? cb->imageName : "none (medium)" );
+ PrintLog(" crcSize: %" PRId64 ", dataSectors: %" PRId64 ", coveredSectors: %" PRId64 ", allSectors: %" PRId64 "\n",
+ cb->crcSize, cb->dataSectors, cb->coveredSectors, cb->allSectors);
+
+ PrintLog(" md5State:");
+ if(cb->md5State)
+ { if(cb->md5State & MD5_BUILDING) PrintLog(" building");
+ if(cb->md5State & MD5_DATA_COMPLETE) PrintLog(" data_complete");
+ if(cb->md5State & MD5_IMAGE_COMPLETE) PrintLog(" image_complete");
+ }
+ else PrintLog(" invalid");
+ PrintLog("\n");
+
+ if(cb->md5State & MD5_COMPLETE)
+ { AsciiDigest(digest, cb->dataMD5sum);
+ PrintLog(" data: %s\n", digest);
+ AsciiDigest(digest, cb->imageMD5sum);
+ PrintLog(" full: %s\n", digest);
+ }
+ AsciiDigest(digest, cb->mediumFP);
+ if(cb->fpValid)
+ PrintLog(" fp sector: %d; %s\n", cb->fpSector, digest);
+ else PrintLog(" fp sector: %d; invalid\n", cb->fpSector);
+
+ for(i=0; icrcSize; i++)
+ if(!GetBit(cb->valid, i))
+ { missing++;
+ }
+ PrintLog(" missing crcs: %" PRId64 "\n", missing);
}
diff -Nru dvdisaster-0.79.5/CREDITS.de dvdisaster-0.79.10/CREDITS.de
--- dvdisaster-0.79.5/CREDITS.de 2015-10-25 16:31:46.000000000 +0000
+++ dvdisaster-0.79.10/CREDITS.de 2021-08-25 16:34:21.000000000 +0000
@@ -10,6 +10,10 @@
Anregungen und Ideen zurück; er hatte zuvor schon eine ähnliche
Strategie entwickelt und in Ausgabe 16/2005 der c't veröffentlicht.
+Jesus Cea
+ hat das Projekt am Leben erhalten und ermöglicht momentan das
+ Datenhosting.
+
Julian Einwag (julian@einwag.de)
erstellt und pflegt die Mac OS X / Darwin - spezifischen Anpassungen.
@@ -30,6 +34,11 @@
Originalversion von Phils Bibliothek herunterladen, wenn Sie
Reed-Solomon-Kode in Ihren eigenen Programmen verwenden möchten.
+Stéphane Lesimple
+ hat das Projekt in einem eigenen GIT-Repository am Leben erhalten
+ sowie Patches und Erweiterungen beigesteuert. Er stellt weiterhin
+ eine Windows-Version bereit.
+
Daniel Nylander (info@danielnylander.se)
erstellt und pflegt die schwedische Übersetzung.
diff -Nru dvdisaster-0.79.5/CREDITS.en dvdisaster-0.79.10/CREDITS.en
--- dvdisaster-0.79.5/CREDITS.en 2015-10-25 16:31:46.000000000 +0000
+++ dvdisaster-0.79.10/CREDITS.en 2021-08-25 16:14:35.000000000 +0000
@@ -10,6 +10,9 @@
suggestions and ideas; he had implemented a similar strategy
before and published in issue 16/2005 of the german periodical "c't".
+Jesus Cea
+ for keeping the project alive and providing hosting for the project
+
Julian Einwag (julian@einwag.de).
provides and maintains the Mac OS X / Darwin port.
@@ -29,6 +32,10 @@
special needs, you should get the original thing if you're
interested in incorporating RS codes into your application.
+Stéphane Lesimple
+ for keeping the project alive in his own GIT repository, and
+ for supplying patches, enhancements and the Windows version.
+
Daniel Nylander (info@danielnylander.se)
provides and maintains the Swedish translation.
diff -Nru dvdisaster-0.79.5/curve.c dvdisaster-0.79.10/curve.c
--- dvdisaster-0.79.5/curve.c 2015-09-25 18:36:04.000000000 +0000
+++ dvdisaster-0.79.10/curve.c 2021-06-14 12:52:18.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,9 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: only GUI code ***/
+
+#ifdef WITH_GUI_YES
#include "dvdisaster.h"
/***
@@ -30,7 +33,7 @@
* Initialize the curve
*/
-Curve* CreateCurve(GtkWidget *widget, char *left_label, char *left_format, int n_values, int bottom_format)
+Curve* GuiCreateCurve(GtkWidget *widget, char *left_label, char *left_format, int n_values, int bottom_format)
{ Curve *curve = g_malloc0(sizeof(Curve));
curve->widget = widget;
@@ -58,8 +61,9 @@
* Get rid of it
*/
-void FreeCurve(Curve *curve)
-{
+void GuiFreeCurve(Curve *curve)
+{ if(!curve) return;
+
g_object_unref(curve->layout);
g_free(curve->leftLabel);
if(curve->leftLogLabel)
@@ -75,7 +79,7 @@
* Reset the values
*/
-void ZeroCurve(Curve *curve)
+void GuiZeroCurve(Curve *curve)
{ int i;
if(curve)
@@ -94,19 +98,19 @@
* Calculate pixel coords from curve values
*/
-int CurveX(Curve *curve, gdouble x)
+int GuiCurveX(Curve *curve, gdouble x)
{ gdouble width = (curve->rightX - curve->leftX - curve->margin);
return 1 + curve->leftX + ((gdouble)x * width) / 1000.0;
}
-int CurveLX(Curve *curve, gdouble x)
+int GuiCurveLX(Curve *curve, gdouble x)
{ gdouble width = (curve->rightX - curve->leftX - curve->margin);
return 1 + curve->leftX + (x * width) / (gdouble)curve->maxX;
}
-int CurveY(Curve *curve, gdouble y)
+int GuiCurveY(Curve *curve, gdouble y)
{ gdouble hfact;
hfact = (gdouble)(curve->bottomY - curve->topY)
@@ -115,7 +119,7 @@
return curve->bottomY - y * hfact;
}
-int CurveLogY(Curve *curve, gdouble y) /* not really a log */
+int GuiCurveLogY(Curve *curve, gdouble y) /* not really a log */
{ gdouble hfact;
if(y<1) return curve->bottomLY;
@@ -123,28 +127,28 @@
hfact = (gdouble)(curve->bottomLY - curve->topLY);
if(y==1) return curve->bottomLY - ((log(2)/log(curve->logMaxY)) * hfact)/2;
- return curve->bottomLY - (log(y)/log(curve->logMaxY)) * hfact;
+ else return curve->bottomLY - (log(y)/log(curve->logMaxY)) * hfact;
}
/***
*** Calculate the curve geometry
***/
-void UpdateCurveGeometry(Curve *curve, char *largest_left_label, int right_padding)
+void GuiUpdateCurveGeometry(Curve *curve, char *largest_left_label, int right_padding)
{ GtkAllocation *a = &curve->widget->allocation;
int w,h;
/* Top and bottom margins */
- SetText(curve->layout, curve->leftLabel, &w, &h);
+ GuiSetText(curve->layout, curve->leftLabel, &w, &h);
curve->topY = h + 10;
- SetText(curve->layout, "0123456789", &w, &h);
+ GuiSetText(curve->layout, "0123456789", &w, &h);
curve->bottomY = a->height - h - 10;
/* Left and right margins */
- SetText(curve->layout, largest_left_label, &w, &h);
+ GuiSetText(curve->layout, largest_left_label, &w, &h);
curve->leftX = 5 + 6 + 3 + w;
curve->rightX = a->width - right_padding;
@@ -163,7 +167,7 @@
*** Redraw the coordinate axes
***/
-void RedrawAxes(Curve *curve)
+void GuiRedrawAxes(Curve *curve)
{ GdkDrawable *d = curve->widget->window;
int i,w,h,x,y;
int yg=0;
@@ -183,7 +187,7 @@
}
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->curveColor);
- SetText(curve->layout, curve->leftLabel, &w, &h);
+ GuiSetText(curve->layout, curve->leftLabel, &w, &h);
x = curve->leftX - w/2;
if(x < 5) x = 5;
gdk_draw_layout(d, Closure->drawGC,
@@ -197,7 +201,7 @@
char buf[16];
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->logColor);
- SetText(curve->layout, curve->leftLogLabel, &w, &h);
+ GuiSetText(curve->layout, curve->leftLogLabel, &w, &h);
x = curve->leftX - w/2;
if(x < 5) x = 5;
@@ -206,9 +210,9 @@
for(val=400; val>3; val/=2)
- { y = CurveLogY(curve, val);
+ { y = GuiCurveLogY(curve, val);
sprintf(buf,"%d",val);
- SetText(curve->layout, buf, &w, &h);
+ GuiSetText(curve->layout, buf, &w, &h);
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->logColor);
gdk_draw_layout(d, Closure->drawGC, curve->leftX-9-w, y-h/2, curve->layout);
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
@@ -217,13 +221,13 @@
gdk_draw_line(d, Closure->drawGC, curve->leftX, y, curve->rightX, y);
val /=2;
- y = CurveLogY(curve, val);
+ y = GuiCurveLogY(curve, val);
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
gdk_draw_line(d, Closure->drawGC, curve->leftX-3, y, curve->leftX, y);
if(curve->bottomLY-curve->topLY > 8*h)
{ sprintf(buf,"%d",val);
- SetText(curve->layout, buf, &w, &h);
+ GuiSetText(curve->layout, buf, &w, &h);
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->logColor);
gdk_draw_layout(d, Closure->drawGC, curve->leftX-9-w, y-h/2, curve->layout);
}
@@ -239,9 +243,9 @@
{ char buf[4];
g_snprintf(buf, 4, curve->leftFormat, i);
- SetText(curve->layout, buf, &w, &h);
+ GuiSetText(curve->layout, buf, &w, &h);
- y = yg = CurveY(curve, i);
+ y = yg = GuiCurveY(curve, i);
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->curveColor);
gdk_draw_layout(d, Closure->drawGC, curve->leftX-9-w, y-h/2, curve->layout);
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
@@ -251,7 +255,7 @@
gdk_draw_line(d, Closure->drawGC, curve->leftX, y, curve->rightX, y);
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
- y = CurveY(curve, i+step/2);
+ y = GuiCurveY(curve, i+step/2);
if(y >= curve->topY)
gdk_draw_line(d, Closure->drawGC, curve->leftX-3, y, curve->leftX, y);
}
@@ -303,9 +307,9 @@
else g_snprintf(buf, 10, "%3.1fG",(gdouble)i/1024.0);
break;
}
- SetText(curve->layout, buf, &w, &h);
+ GuiSetText(curve->layout, buf, &w, &h);
- x = CurveLX(curve,i)-1;
+ x = GuiCurveLX(curve,i)-1;
gdk_draw_line(d, Closure->drawGC, x, bottom_y+6, x, bottom_y);
gdk_draw_layout(d, Closure->drawGC, x-w/2, bottom_y+8, curve->layout);
@@ -318,7 +322,7 @@
}
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->foreground);
- x = CurveLX(curve,i+step/2)-1;
+ x = GuiCurveLX(curve,i+step/2)-1;
if(x < curve->rightX)
gdk_draw_line(d, Closure->drawGC, x, bottom_y+3, x, bottom_y);
}
@@ -328,21 +332,21 @@
* Redraw the curve
*/
-void RedrawCurve(Curve *curve, int last)
+void GuiRedrawCurve(Curve *curve, int last)
{ int i,x0,x1,fy0,fy1;
- x0 = CurveX(curve, 0);
- fy0 = CurveY(curve, curve->fvalue[0]);
+ x0 = GuiCurveX(curve, 0);
+ fy0 = GuiCurveY(curve, curve->fvalue[0]);
gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->curveColor);
/* Draw the curve */
for(i=1; i<=last; i++)
- { x1 = CurveX(curve, i);
+ { x1 = GuiCurveX(curve, i);
if(curve->enable & DRAW_ICURVE)
- { int iy = CurveY(curve, curve->ivalue[i]);
+ { int iy = GuiCurveY(curve, curve->ivalue[i]);
if(curve->ivalue[i] > 0)
{ gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->barColor);
@@ -353,7 +357,7 @@
}
if(curve->enable & DRAW_LCURVE)
- { int iy = CurveLogY(curve, curve->lvalue[i]);
+ { int iy = GuiCurveLogY(curve, curve->lvalue[i]);
if(curve->lvalue[i] > 0)
{ gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->logColor);
@@ -364,7 +368,7 @@
}
if(curve->enable & DRAW_FCURVE && curve->fvalue[i] >= 0)
- { fy1 = CurveY(curve, curve->fvalue[i]);
+ { fy1 = GuiCurveY(curve, curve->fvalue[i]);
if(x0 < x1)
{ gdk_gc_set_rgb_fg_color(Closure->drawGC, Closure->curveColor);
@@ -376,3 +380,4 @@
x0 = x1;
}
}
+#endif /* WITH_GUI_YES */
diff -Nru dvdisaster-0.79.5/.cvsignore dvdisaster-0.79.10/.cvsignore
--- dvdisaster-0.79.5/.cvsignore 2012-09-19 18:52:40.000000000 +0000
+++ dvdisaster-0.79.10/.cvsignore 1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
-PRIVATE
-test-cases
-regtest
-st
\ No newline at end of file
diff -Nru dvdisaster-0.79.5/debian/changelog dvdisaster-0.79.10/debian/changelog
--- dvdisaster-0.79.5/debian/changelog 2022-03-09 20:11:30.000000000 +0000
+++ dvdisaster-0.79.10/debian/changelog 2023-10-29 10:41:37.000000000 +0000
@@ -1,520 +1,5 @@
-dvdisaster (0.79.5-10build1) jammy; urgency=medium
+dvdisaster (0.79.10-1~ppa~mantic) mantic; urgency=medium
- * No-change rebuild against latest gdk-pixbuf
+ * Initial release.
- -- Jeremy Bicha Wed, 09 Mar 2022 15:11:30 -0500
-
-dvdisaster (0.79.5-10) unstable; urgency=medium
-
- * d/salsa-ci.yml: Add CI conf
- * Add d/patches/0032-Fix-for-compilation-error-under-gcc-10.patch
- (Closes: #957156)
-
- -- TANIGUCHI Takaki Mon, 14 Sep 2020 12:11:20 +0900
-
-dvdisaster (0.79.5-9) unstable; urgency=medium
-
- * Make sure that the upstream changelog remains uncompressed so
- that the application can display it.
- * Suggest to install dvdisaster-doc in error message, if the PDF manual
- cannot be found.
-
- -- Carlos Maddela Sat, 02 Feb 2019 15:20:23 +1100
-
-dvdisaster (0.79.5-8) unstable; urgency=medium
-
- * Fix parallel build of locale strings.
-
- -- Carlos Maddela Fri, 01 Feb 2019 23:03:13 +1100
-
-dvdisaster (0.79.5-7) unstable; urgency=medium
-
- * Add debian/gbp.conf to conform with DEP14 conventions.
- * Build with Debhelper compat level 12.
- * Set "Rules-Requires-Root: no".
- * Simplify process by which mutable files are backed up and restored.
- * Build as verbosely as possible.
- * Fix location of manual.
- * Fix dh_auto_build overrides to take advantage of parallel builds.
- * Fix format security compilation warning in GCC-8.
- * Change homepage to one archived at web.archive.org.
- http://dvdisaster.net has been unavailable for a while now.
- Not certain if this is permanent though, as the domain name still
- exists for mail.
- * Add support for nodoc build profile.
- * Add more details to upstream metadata.
- * Indicate compliance with Debian Policy 4.3.0.
-
- -- Carlos Maddela Thu, 31 Jan 2019 07:10:46 +1100
-
-dvdisaster (0.79.5-6) unstable; urgency=medium
-
- [ TANIGUCHI Takaki ]
- * change Vcs-* path
-
- [ Carlos Maddela ]
- * Build with DH compat level 11.
- * Indicate compliance with Debian Policy 4.1.4.
- * Add machine-readable upstream metadata.
- * Update debian/copyright.
- * Update location of PDF manual registered with doc-base (required
- as a result of DH compat level change).
-
- -- Carlos Maddela Sat, 23 Jun 2018 05:01:27 +1000
-
-dvdisaster (0.79.5-5) unstable; urgency=medium
-
- * Update Vcs-* to salsa.debian.org
- * Bump Standards-Version to 4.1.3
-
- -- TANIGUCHI Takaki Sat, 27 Jan 2018 23:34:08 +0900
-
-dvdisaster (0.79.5-4) unstable; urgency=medium
-
- * Use complete Debian revision number as build number, instead of
- just the numeric part.
- * Re-implement scripts/time-stamper.bash without direct calls to
- dpkg-parsechangelog.
- * Call ./configure script directly, instead of relying on debhelper,
- to resolve incompatibilities with Bash-based script.
- * Use alternative way of installing icons to remove dependency on
- dh-exec.
- * Drop redundant dependency on dpkg-dev.
- * Reproducibly generate PDF documentation from TeX sources.
- * Remove trailing white space from debian/changelog.
- * Remove unnecessary Testsuite header from debian/control.
- * Indicate compliance with Debian Policy 4.1.2.
- * Suppress debian-watch-uses-insecure-uri Lintian warning.
- * Honour LDFLAGS set by dpkg-buildflags in building all binaries.
-
- -- Carlos Maddela Thu, 21 Dec 2017 03:14:14 +1100
-
-dvdisaster (0.79.5-3) unstable; urgency=medium
-
- * Team upload.
- * Fix another build failure on kFreeBSD.
- * Bump Standards Version to 4.0.1.
- * Regenerate patches with git version 2.14.0.
- * Do not suppress the display of compilation commands,
- so that build logs may be analysed by blhc.
- * Update uploaders list.
-
- -- Carlos Maddela Mon, 14 Aug 2017 14:52:56 +1000
-
-dvdisaster (0.79.5-2) unstable; urgency=medium
-
- [ Carlos Maddela ]
- * Team upload.
- * Bump Standards Version to 4.0.0.
- * Remove unnecessary calls to dpkg-parsechangelog from debian/rules.
- * debian/watch: Avoid repacking upstream tarballs unnecessarily.
- * Fix more typos in error messages and docs.
- * Fix FTBFS on Hurd and kFreeBSD.
- * Remove incorrect use of 'Origin: vendor' from DEP-3 patch headers.
- * Improve support for Hurd and kFreeBSD systems, although Hurd still
- builds without SCSI.
-
- -- TANIGUCHI Takaki Mon, 07 Aug 2017 17:34:01 +0900
-
-dvdisaster (0.79.5-1) unstable; urgency=medium
-
- [ Carlos Maddela ]
- * Team upload.
- * New upstream version [0.79.5]
- * Refresh and drop patches. The following patches have been dropped:
- + 01-libpng15.patch
- + 06-remove-encoding-from-desktop-file.patch
- + 07-fix-spelling-errors-in-binaries.patch
- + 09-fix-format-security-warnings.patch
- + 21-fix-privacy-breach-in-doco.patch
- * Update license to GPL-3.
- * Update clean rule as old files no longer apply.
- * Update documentation build and install rules.
- * debian/rules: Update mutable file list.
- * Fix generated man pages. The generated man pages incorrectly direct
- users to the directory of the old HTML documentation, which is no
- longer available.
- * Fix display of manual.pdf. The PDF file is automatically compressed
- by Debhelper, so we need to account for this.
- * Resurrect old code to support opening URLs in a browser.
- * Ship upstream-generated manual.pdf for the time being, as we can't
- generate it ourselves reproducibly.
-
- -- TANIGUCHI Takaki Thu, 02 Feb 2017 22:28:25 +0900
-
-dvdisaster (0.72.4-3) unstable; urgency=medium
-
- [ Carlos Maddela ]
- * Team upload.
- * Bump compat level to 10.
- * debian/watch: Relax upstream version restriction.
- * Use original name for the duplicate uncompressed upstream CHANGELOG.
- * Backup and restore mutable files to allow multiple builds.
- * Fix FTBFS for hurd-i386.
-
- [ Corey Wright ]
- * Add support for BD-ROM media-type. (Closes: #849518)
-
- -- Carlos Maddela Sat, 07 Jan 2017 00:29:19 +1100
-
-dvdisaster (0.72.4-2) unstable; urgency=medium
-
- * Team upload.
- * Make builds reproducible:
- + Use the Debian changelog details to derive a build number and date.
- + Don't build with source path embedded in binary.
- * debian/control:
- + Update to Standards Version 3.9.8.
- - Format security warnings required fixing in tools/memory.c as
- a result.
- + Update VCS details.
- + Remove obsolete DM-Upload-Alllowed control field.
- + Perform wrap and sort.
- + Mark dvdisaster-doc as a multi-arch foreign package.
- * debian/rules:
- + Build with all hardening flags set.
- + Link required libraries as needed.
- + Fix installation of desktop file and icon images.
- + Tidy up installation of doc files.
- + Fix clean up.
- + Separate binary-arch and binary-indep rules.
- + Silence deprecated API warnings.
- * debian/*:
- + Update uscan rules.
- + Drop debian/dvdisaster.menu file in favour of desktop file.
- + Convert copyright file into proper DEP5 format and update.
- + Drop no longer required debian/pixmaps/dvdisaster.xpm.
- + Add debian/dvdisaster-doc.doc-base file.
- + Add link to html docs in dvdisaster-doc package.
- + Remove unnecessary duplication of doc files in the two packages.
- + Link all duplicate doc files.
- + Fix installation of thumbnails for Czech doco.
- * debian/patches/*:
- + Fix headers to work with git-buildpackage, retaining as much
- meta info as possible.
- + Fix GNU Make detection. (Closes: #848811)
- + Fix path of GPL-2 license in 05-help-dialog.patch. (Closes: #708384)
- + Fix all warnings except for those related to deprecated API.
- (Closes: #748416)
- + Use non-size-specific icon and add keywords to desktop file.
- + Fix spelling: upto -> up to
- + Fix missing language fields in PO files.
- + Update help dialog to show link to the new Debian package tracker.
- + Update copyright notice in about dialog.
- + Allow ShowTextFile() to work with absolute path names.
- + Fix display of changelog, credits and to-do files.
- + Remove link to the newsfeed, to fix Lintian privacy-breach-generic
- warning. The news feed no longer works anyway.
-
- -- Carlos Maddela Fri, 23 Dec 2016 15:53:13 +1100
-
-dvdisaster (0.72.4-1) unstable; urgency=low
-
- * New upstream (Closes: #665522)
- * debian/paches/04-manpage.patch: Removed (merged by upstream).
-
- -- TANIGUCHI Takaki Sun, 08 Apr 2012 22:02:16 +0900
-
-dvdisaster (0.72.3-2) unstable; urgency=low
-
- * debian/patches/libpng15: Build with libpng15. (Closes: #649555)
-
- -- TANIGUCHI Takaki Mon, 19 Mar 2012 11:08:53 +0900
-
-dvdisaster (0.72.3-1) unstable; urgency=low
-
- [ Rogério Brito ]
- * debian/patches/*: refresh and adapt every patch
- * debian/patches/04-manpage.patch: escape one hyphen
-
- [ TANIGUCHI Takaki ]
- * New upstream 0.72.3 (Closes: #643869)
- * Bump Standards-Version to 3.9.3
- * debian/patches/*: Refreshed.
- * Depend unversion libpng-dev (Closes: #662306)
- * debian/rules: Rewrite in dh7 style
-
- -- TANIGUCHI Takaki Tue, 06 Mar 2012 12:44:08 +0900
-
-dvdisaster (0.72.1-2) unstable; urgency=low
-
- * [da276c7] Refresh patches to avoid potential problems with the
- buildds.
- * [3ee8b47] Initial migration to format "3.0 (quilt)".
- * [af26379] Wrap some long lines for legibility.
- * [2372076] Wrap one extra line.
- * [00e1968] Don't patch the documentation directly.
- * [fac6933] Add missing misc-depends on dvdisaster
- * [70a6efd] Rewrap the build-depends line, for diff-friendliness.
- * [9fe0db4] Fix incorrect place of misc:depends.
- * [6576482] Remove unneeded patch
- * [7771474] Remove duplicate section field for dvdisaster
- * [f51c51a] Add debian/watch file to more closely follow upstream
- * [2194941] Remove UTF-8 encoding from desktop file
- * [57e4fab] Update patch to deal with hyphens used as minus signs
- * [80e291c] Add description for the patch
- * [cea78c3] Add patch to fix spelling errors in the binaries
- * [96b581b] Fix for another typo in the manpage
- * [b8f0e62] Update standards version with no changes needed
-
- -- Rogério Brito Tue, 24 Aug 2010 12:10:21 -0300
-
-dvdisaster (0.72.1-1) unstable; urgency=low
-
- * New maintainer (Closes: 543876)
- * new upstream version.
- * debian/control: update Homepage:
- * debian/README.source: create
- * debian/control: add Vcs-*.
-
- -- TANIGUCHI Takaki Mon, 23 Nov 2009 10:29:09 +0900
-
-dvdisaster (0.72-2) unstable; urgency=low
-
- * Updating to standards version 3.8.3.
- * Removing vcs fields.
- * Orphaning package.
-
- -- Daniel Baumann Thu, 27 Aug 2009 10:24:34 +0200
-
-dvdisaster (0.72-1) unstable; urgency=low
-
- * Using correct rfc-2822 date formats in changelog.
- * Merging upstream version 0.72.
- * Removing shebang.patch, not required anymore.
- * Updating standards version to 3.8.2.
- * Tidy rules file.
-
- -- Daniel Baumann Tue, 07 Jul 2009 01:11:52 +0200
-
-dvdisaster (0.72~rc1-1) unstable; urgency=low
-
- * Merging upstream version 0.72~rc1.
- * Upgrading to standards 3.8.1.
-
- -- Daniel Baumann Fri, 17 Apr 2009 21:20:00 +0200
-
-dvdisaster (0.71.28-1) unstable; urgency=medium
-
- * Merging upstream version 0.71.28:
- - Fixes "illegal instruction" crashes on x86 machines which do not support
- SSE2 (Closes: #515950).
-
- -- Daniel Baumann Tue, 17 Mar 2009 09:55:00 +0100
-
-dvdisaster (0.71.27-1) unstable; urgency=low
-
- * Using patch-stamp rather than patch in rules file.
- * Replacing obsolete dh_clean -k with dh_prep.
- * Merging upstream version 0.71.27.
- * Rediffing help-dialog.dpatch.
- * Using quilt rather than dpatch.
- * Updating year in copyright.
- * Adding longtitle and description in menu file.
- * Using usual name for pixmaps directory.
- * Updating rules to current state of the art.
-
- -- Daniel Baumann Sun, 25 Jan 2009 14:01:00 +0100
-
-dvdisaster (0.71.26-2) unstable; urgency=medium
-
- * Updating to standards 3.8.0.
- * Updating vcs fields in control file.
- * Correcting 03-dvdrom.dpatch to not crash when opening a DVD-ROM.
- Thanks to Tobias Gruetzmacher (Closes: #498296).
-
- -- Daniel Baumann Mon, 08 Sep 2008 22:08:00 +0200
-
-dvdisaster (0.71.26-1) unstable; urgency=medium
-
- * Reordering rules file.
- * Using examples debhelper to install examples.
- * Removing 08-xdg.dpatch, went upstream.
- * Removing 07-adaptive-read.dpatch, went upstream.
- * Rediffing 05-help-dialog.dpatch.
- * Rediffing 03-dvdrom.dpatch.
- * Rediffing 02-encryption.dpatch.
- * Removing watch file.
- * Removing useless whitespaces at end of debian gmkrs02 example.
- * Rewriting copyright file in machine-interpretable format.
- * Adding vcs fields in control file.
- * Upgrading package to debhelper 7.
- * Merging upstream version 0.71.26.
-
- -- Daniel Baumann Sat, 03 May 2008 11:34:00 +0200
-
-dvdisaster (0.71~devel23-7) unstable; urgency=low
-
- * Bumping to new policy.
- * Updating menu file to new policy.
- * Don't hide make errors in clean target of rules.
-
- -- Daniel Baumann Sun, 23 Dec 2007 13:26:00 +0100
-
-dvdisaster (0.71~devel23-6) unstable; urgency=low
-
- * Using xdg-open rather than gnome-open.
-
- -- Daniel Baumann Thu, 29 Nov 2007 10:39:00 +0100
-
-dvdisaster (0.71~devel23-5) unstable; urgency=low
-
- * Setting configure shebang to bash.
-
- -- Daniel Baumann Wed, 24 Oct 2007 06:14:00 +0200
-
-dvdisaster (0.71~devel23-4) unstable; urgency=low
-
- * Fixed clean target in rules (Closes: #442559).
-
- -- Daniel Baumann Sun, 17 Sep 2007 00:37:00 +0200
-
-dvdisaster (0.71~devel23-3) unstable; urgency=medium
-
- * Applied patch from Wolfgang Weisselberg to fix
- segfault when reading CD with --adaptive-read (Closes: #427980).
- * Including example script from Osamu Aoki to provide a
- GUI for creating RS02 supplimented ISO images (Closes: #442145).
-
- -- Daniel Baumann Fri, 14 Sep 2007 11:13:00 +0200
-
-dvdisaster (0.71~devel23-2) unstable; urgency=low
-
- * Fix shebang in configure.
-
- -- Daniel Baumann Tue, 04 Sep 2007 22:53:00 +0200
-
-dvdisaster (0.71~devel23-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Daniel Baumann Mon, 14 May 2007 10:46:00 +0200
-
-dvdisaster (0.71~devel22-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Daniel Baumann Sun, 29 Apr 2007 16:47:00 +0200
-
-dvdisaster (0.70.4-2) unstable; urgency=low
-
- * Uploading to unstable.
- * Bumped package to debhelper 5.
-
- -- Daniel Baumann Thu, 08 Mar 2007 10:35:00 +0100
-
-dvdisaster (0.70.4-1) experimental; urgency=low
-
- * New upstream release.
-
- -- Daniel Baumann Sat, 27 Jan 2007 18:05:00 +0100
-
-dvdisaster (0.70.3-2) unstable; urgency=medium
-
- * Added patch from Carsten Gnoerlich to fix issues
- with glib threading (Closes: #405757).
-
- -- Daniel Baumann Wed, 17 Jan 2007 10:42:00 +0100
-
-dvdisaster (0.70.3-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Daniel Baumann Wed, 13 Dec 2006 11:57:00 +0100
-
-dvdisaster (0.70.2-2) unstable; urgency=medium
-
- * Adjusted 05-help-dialog.dpatch as suggested by
- Corey Wright (Closes: #393671).
-
- -- Daniel Baumann Tue, 17 Oct 2006 14:01:00 +0200
-
-dvdisaster (0.70.2-1) unstable; urgency=low
-
- * New upstream release.
- * Added patch to customize the help-dialog according to README.MODIFYING.
-
- -- Daniel Baumann Tue, 03 Oct 2006 20:58:00 +0200
-
-dvdisaster (0.70.1-2) unstable; urgency=low
-
- * Added patch from upstream to fix some code errors (Closes: #388304).
-
- -- Daniel Baumann Thu, 21 Sep 2006 01:29:00 +0200
-
-dvdisaster (0.70.1-1) unstable; urgency=low
-
- * New upstream release.
-
- -- Daniel Baumann Tue, 22 Aug 2006 23:09:00 +0200
-
-dvdisaster (0.70-1) unstable; urgency=low
-
- * New upstream release (Closes: #377757).
-
- -- Daniel Baumann Tue, 11 Jul 2006 07:19:00 +0200
-
-dvdisaster (0.66-4) unstable; urgency=low
-
- * New email address.
- * Fixed typo in manpage (Closes: #376752).
-
- -- Daniel Baumann Fri, 07 Jul 2006 09:01:00 +0200
-
-dvdisaster (0.66-3) unstable; urgency=low
-
- * Fixed docsubdir (Closes: #366274).
- * Disabled skipping of encrypted disks (Closes: #366399).
- * Added patch for DVD-ROM medias (Closes: #366392).
-
- -- Daniel Baumann Mon, 15 May 2006 03:17:00 -0500
-
-dvdisaster (0.66-2) unstable; urgency=low
-
- * Set dvdisaster-doc to recommends instead of suggests (Closes: #363291).
-
- -- Daniel Baumann Tue, 18 Apr 2006 16:35:00 +0100
-
-dvdisaster (0.66-1) unstable; urgency=low
-
- * New upstream release.
- * Added pixmap.
-
- -- Daniel Baumann Tue, 28 Mar 2006 10:13:00 +0100
-
-dvdisaster (0.65-1) unstable; urgency=low
-
- * New upstream release.
- * Removed patch stack buffer patch (went upstream).
- * Removed manpage patches (went upstream).
-
- -- Daniel Baumann Tue, 17 Jan 2006 14:32:00 +0100
-
-dvdisaster (0.64.2-1) unstable; urgency=low
-
- * New upstream release.
- * Now using dpatch for updating manpages.
- * Fixed definitely the documentation path in the manpages (Closes: #333591).
- * Added patch from Robert Bihlmeyer to fix segfault on
- allocating stack buffer (Closes: #335792).
-
- -- Daniel Baumann Fri, 25 Nov 2005 11:01:00 +0100
-
-dvdisaster (0.63.2-1) unstable; urgency=low
-
- * New upstream release:
- - no longer needs gawk.
- - manpage updated and moved to upstream.
- - manpage now mentions correct documentation-location (Closes: #322187).
- * Now update config.{guess,sub} via .diff.gz.
- * Corrected non-ascii chars in the German and Italian manpage.
-
- -- Daniel Baumann Sat, 06 Aug 2005 20:03:00 +0200
-
-dvdisaster (0.63-1) unstable; urgency=low
-
- * Initial release (Closes: #319742).
- * Fixed Makefile for $(DESTDIR)-use.
- * Added manpage.
-
- -- Daniel Baumann Sun, 24 Jul 2005 13:35:00 +0200
+ -- tomx3 Sun, 29 Oct 2023 12:41:37 +0200
diff -Nru dvdisaster-0.79.5/debian/compat dvdisaster-0.79.10/debian/compat
--- dvdisaster-0.79.5/debian/compat 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/compat 2018-01-27 14:34:08.000000000 +0000
@@ -1 +1 @@
-12
+10
diff -Nru dvdisaster-0.79.5/debian/control dvdisaster-0.79.10/debian/control
--- dvdisaster-0.79.5/debian/control 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/control 2022-12-18 19:33:37.000000000 +0000
@@ -1,37 +1,29 @@
Source: dvdisaster
Section: otherosfs
Priority: optional
-Maintainer: Optical Media Tools Team
-Uploaders: TANIGUCHI Takaki ,
- Rogério Brito ,
- Carlos Maddela
-Build-Depends: debhelper (>= 12),
+Maintainer: tomx3
+Build-Depends: debhelper (>= 10),
gettext,
libbz2-dev,
libcam-dev [kfreebsd-any],
libgtk2.0-dev,
libpng-dev,
pkg-config
-Build-Depends-Indep: texlive-fonts-recommended ,
- texlive-latex-base ,
- texlive-latex-extra
-Standards-Version: 4.3.0
-Vcs-Browser: https://salsa.debian.org/optical-media-team/dvdisaster
-Vcs-Git: https://salsa.debian.org/optical-media-team/dvdisaster.git
-Homepage: https://web.archive.org/web/20180428070843/http://dvdisaster.net/
-Rules-Requires-Root: no
+Build-Depends-Indep: texlive-fonts-recommended,
+ texlive-latex-base,
+ texlive-latex-extra
+Standards-Version: 4.1.3
+Homepage: https://dvdisaster.jcea.es/index.html
Package: dvdisaster
Architecture: any
-Depends: xdg-utils, ${misc:Depends}, ${shlibs:Depends}
-Recommends: dvdisaster-doc
+Depends: xdg-utils, ${misc:Depends}, ${shlibs:Depends}, dvdisaster-doc
Description: data loss/scratch/aging protection for CD/DVD media
dvdisaster provides a margin of safety against data loss on CD and DVD media
caused by scratches or aging media. It creates error correction data which is
used to recover unreadable sectors if the disc becomes damaged at a later time.
Package: dvdisaster-doc
-Build-Profiles:
Section: doc
Architecture: all
Multi-Arch: foreign
diff -Nru dvdisaster-0.79.5/debian/copyright dvdisaster-0.79.10/debian/copyright
--- dvdisaster-0.79.5/debian/copyright 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/copyright 2022-12-18 16:46:27.000000000 +0000
@@ -1,7 +1,6 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Contact: Carsten Gnörlich
Upstream-Name: dvdisaster
-Source: https://web.archive.org/web/20180428070843/http://dvdisaster.net/
+Source: https://dvdisaster.jcea.es/index.html
Files: *
Copyright: 2004–2015, Carsten Gnörlich
@@ -9,9 +8,9 @@
Files: debian/*
Copyright: 2005–2009, Daniel Baumann
- 2009–2018, TANIGUCHI Takaki
+ 2009–2012, TANIGUCHI Takaki
2009–2010, Rogério Brito
- 2016–2018, Carlos Maddela
+ 2016, Carlos Maddela
License: GPL-2+
License: GPL-2+
diff -Nru dvdisaster-0.79.5/debian/dvdisaster-doc.doc-base dvdisaster-0.79.10/debian/dvdisaster-doc.doc-base
--- dvdisaster-0.79.5/debian/dvdisaster-doc.doc-base 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/dvdisaster-doc.doc-base 2018-01-27 14:34:08.000000000 +0000
@@ -7,4 +7,4 @@
Section: File Management
Format: PDF
-Files: /usr/share/doc/dvdisaster/manual.pdf.gz
+Files: /usr/share/doc/dvdisaster-doc/manual.pdf.gz
diff -Nru dvdisaster-0.79.5/debian/dvdisaster-doc.links dvdisaster-0.79.10/debian/dvdisaster-doc.links
--- dvdisaster-0.79.5/debian/dvdisaster-doc.links 1970-01-01 00:00:00.000000000 +0000
+++ dvdisaster-0.79.10/debian/dvdisaster-doc.links 2018-01-27 14:34:08.000000000 +0000
@@ -0,0 +1 @@
+usr/share/doc/dvdisaster-doc/manual.pdf.gz usr/share/doc/dvdisaster/manual.pdf.gz
diff -Nru dvdisaster-0.79.5/debian/dvdisaster.docs dvdisaster-0.79.10/debian/dvdisaster.docs
--- dvdisaster-0.79.5/debian/dvdisaster.docs 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/dvdisaster.docs 2018-01-27 14:34:08.000000000 +0000
@@ -1,3 +1,4 @@
+CHANGELOG
CREDITS.*
README.MODIFYING
TODO
diff -Nru dvdisaster-0.79.5/debian/dvdisaster.lintian-overrides dvdisaster-0.79.10/debian/dvdisaster.lintian-overrides
--- dvdisaster-0.79.5/debian/dvdisaster.lintian-overrides 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/dvdisaster.lintian-overrides 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-dvdisaster: changelog-file-not-compressed changelog
diff -Nru dvdisaster-0.79.5/debian/gbp.conf dvdisaster-0.79.10/debian/gbp.conf
--- dvdisaster-0.79.5/debian/gbp.conf 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/gbp.conf 1970-01-01 00:00:00.000000000 +0000
@@ -1,5 +0,0 @@
-[DEFAULT]
-debian-branch = debian/unstable
-upstream-branch = upstream/latest
-sign-tags = True
-pristine-tar = True
diff -Nru dvdisaster-0.79.5/debian/patches/0032-Fix-for-compilation-error-under-gcc-10.patch dvdisaster-0.79.10/debian/patches/0032-Fix-for-compilation-error-under-gcc-10.patch
--- dvdisaster-0.79.5/debian/patches/0032-Fix-for-compilation-error-under-gcc-10.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/0032-Fix-for-compilation-error-under-gcc-10.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,39 +0,0 @@
-From: TANIGUCHI Takaki
-Date: Mon, 14 Sep 2020 10:41:29 +0900
-Subject: Fix for compilation error under gcc 10
-
-Author: Stéphane Lesimple
----
- dvdisaster.c | 5 +++++
- dvdisaster.h | 8 ++++----
- 2 files changed, 9 insertions(+), 4 deletions(-)
-
---- a/dvdisaster.c
-+++ b/dvdisaster.c
-@@ -22,6 +22,11 @@
-
- #include "dvdisaster.h"
-
-+struct _RawBuffer *rawbuffer_forward;
-+struct _DefectiveSectorHeader *dsh_forward;
-+struct _DeviceHandle *dh_forward;
-+struct _Image *dh_image;
-+
- /*
- * The all-famous main() loop
- */
---- a/dvdisaster.h
-+++ b/dvdisaster.h
-@@ -426,9 +426,9 @@
- *** forward declarations
- ***/
-
--struct _RawBuffer *rawbuffer_forward;
--struct _DefectiveSectorHeader *dsh_forward;
--struct _DeviceHandle *dh_forward;
-+extern struct _RawBuffer *rawbuffer_forward;
-+extern struct _DefectiveSectorHeader *dsh_forward;
-+extern struct _DeviceHandle *dh_forward;
-
- /***
- *** bitmap.c
diff -Nru dvdisaster-0.79.5/debian/patches/02-encryption.patch dvdisaster-0.79.10/debian/patches/02-encryption.patch
--- dvdisaster-0.79.5/debian/patches/02-encryption.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/02-encryption.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-From: Optical Media Tools Team
-Date: Sun, 8 Apr 2012 21:51:29 +0900
-Subject: Disables to skip on encrypted disks (e.g. DVD with CSS-Encryption).
-
-Description: Disables to skip on encrypted disks (e.g. DVD with CSS-Encryption).
-Author: n/a
-Last-Update: 2012-04-08
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- scsi-layer.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/scsi-layer.c b/scsi-layer.c
-index d68533b..6717b12 100644
---- a/scsi-layer.c
-+++ b/scsi-layer.c
-@@ -2711,12 +2711,13 @@ Image* OpenImageFromDevice(char *device)
- return NULL;
- }
- }
--
-+/*
- if(dh->mainType == DVD && query_copyright(dh))
- { CloseImage(image);
- Stop(_("This software does not support encrypted media.\n"));
- return NULL;
- }
-+*/
-
- /* Create the bitmap of simulated defects */
-
diff -Nru dvdisaster-0.79.5/debian/patches/03-dvdrom.patch dvdisaster-0.79.10/debian/patches/03-dvdrom.patch
--- dvdisaster-0.79.5/debian/patches/03-dvdrom.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/03-dvdrom.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-From: Corey Wright
-Date: Tue, 6 Mar 2012 11:10:30 +0900
-Subject: Adds support for DVD-ROM medium-type.
-
-Description: Adds support for DVD-ROM medium-type.
-Author: Corey Wright
-Last-Update: 2012-03-06
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- scsi-layer.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/scsi-layer.c b/scsi-layer.c
-index 6717b12..64a3dba 100644
---- a/scsi-layer.c
-+++ b/scsi-layer.c
-@@ -908,6 +908,11 @@ static int query_dvd(DeviceHandle *dh, int probe_only)
- break;
- }
-
-+ if(layer_type & 0x01)
-+ { dh->typeDescr = g_strdup("DVD-ROM");
-+ break;
-+ }
-+
- if(layer_type & 0x06) /* strange thing: (re-)writeable but neither plus nor dash */
- { dh->typeDescr = g_strdup("DVD-ROM (fake)");
- dh->subType = DVD;
diff -Nru dvdisaster-0.79.5/debian/patches/05-help-dialog.patch dvdisaster-0.79.10/debian/patches/05-help-dialog.patch
--- dvdisaster-0.79.5/debian/patches/05-help-dialog.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/05-help-dialog.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,55 +0,0 @@
-From: Daniel Baumann
-Date: Sun, 8 Apr 2012 21:53:29 +0900
-Subject: Customizes the help-dialog according to README.MODIFYING.
-
-Description: Customizes the help-dialog according to README.MODIFYING.
- .
- * 2016-12-19 - Fixed path:
- /usr/share/common/licenses/GPL-2 -> /usr/share/common-licenses/GPL-2
- and restored use of "GPL" label.
-Author: Daniel Baumann
-Last-Update: 2016-12-19
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- help-dialogs.c | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/help-dialogs.c b/help-dialogs.c
-index 4d6f9bb..eae04f2 100644
---- a/help-dialogs.c
-+++ b/help-dialogs.c
-@@ -403,7 +403,7 @@ void ShowGPL()
- ShowTextfile(_("windowtitle|GNU General Public License"),
- _("GNU General Public License\n"
- "The license terms of dvdisaster."),
-- "COPYING", NULL, NULL);
-+ "/usr/share/common-licenses/GPL-2", NULL, NULL);
- }
-
- /*
-@@ -567,7 +567,7 @@ static void show_modifying(void)
- { ShowTextfile(_("windowtitle|Modifying dvdisaster"),
- _("Modifying dvdisaster\n"
- "Your changes are not ours."),
-- "README.MODIFYING", NULL, NULL);
-+ "/usr/share/doc/dvdisaster/README.MODIFYING", NULL, NULL);
- }
-
- static gint about_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
-@@ -746,11 +746,11 @@ void AboutDialog()
- "GPL");
-
- #ifdef MODIFIED_SOURCE
-- AboutTextWithLink(vbox, _("\nThis program is not the original. It is based on the\n"
-- "source code of dvdisaster, but contains third-party changes.\n\n"
-+ AboutTextWithLink(vbox, _("\nThis version is not the original. It has been patched\n"
-+ "for Debian to support DVD-ROMs (with and without encryption).\n\n"
- "Please do not bother the original authors of dvdisaster\n"
-- "([www.dvdisaster.org]) about issues with this version.\n"),
-- "http://www.dvdisaster.org");
-+ "but submit bugreports against the [debian package] instead.\n"),
-+ "http://packages.qa.debian.org/dvdisaster");
-
- #else
- lang = g_getenv("LANG");
diff -Nru dvdisaster-0.79.5/debian/patches/08-fix-gnu-make-detection.patch dvdisaster-0.79.10/debian/patches/08-fix-gnu-make-detection.patch
--- dvdisaster-0.79.5/debian/patches/08-fix-gnu-make-detection.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/08-fix-gnu-make-detection.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,41 +0,0 @@
-From: Carlos Maddela
-Date: Sun, 18 Dec 2016 23:05:03 +1100
-Subject: Fix GNU Make detection.
-
-Description: Fix GNU Make detection.
- While the previous code works with earlier versions of bash, it doesn't
- seem to work with bash 4.4.5. The redirection to /dev/null somehow causes
- grep to return an error code of 2.
- .
- This change allows for more predictable behaviour: grep returns an
- error code of 0 or 1.
-Author: Carlos Maddela
-Bug-Debian: https://bugs.debian.org/848811
-Forwarded: no
-Last-Update: 2016-12-18
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- scripts/bash-based-configure | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/scripts/bash-based-configure b/scripts/bash-based-configure
-index f68ecab..d62f5d7 100644
---- a/scripts/bash-based-configure
-+++ b/scripts/bash-based-configure
-@@ -313,13 +313,13 @@ function REQUIRE_GMAKE()
-
- echo -n "Checking for gmake: "
-
-- if (gmake -v | grep "GNU Make") > /dev/null 2>&1 ;
-+ if (gmake -v 2>&1 | grep "GNU Make") > /dev/null 2>&1 ;
- then echo "yes"
- echo "MAKE = `which gmake`" >>Makefile.config
- return 0
- fi;
-
-- if (make -v | grep "GNU Make") > /dev/null 2>&1 ;
-+ if (make -v 2>&1 | grep "GNU Make") > /dev/null 2>&1 ;
- then echo "yes"
- echo "MAKE = `which make`" >>Makefile.config
- return 0
diff -Nru dvdisaster-0.79.5/debian/patches/10-use-non-size-specific-icon-and-add-keywords-to-desktop-file.patch dvdisaster-0.79.10/debian/patches/10-use-non-size-specific-icon-and-add-keywords-to-desktop-file.patch
--- dvdisaster-0.79.5/debian/patches/10-use-non-size-specific-icon-and-add-keywords-to-desktop-file.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/10-use-non-size-specific-icon-and-add-keywords-to-desktop-file.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-From: Carlos Maddela
-Date: Mon, 19 Dec 2016 03:40:41 +1100
-Subject: Use non-size-specific icon and add keywords to desktop file.
-
-Description: Use non-size-specific icon and add keywords to desktop file.
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2016-12-19
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- contrib/dvdisaster.desktop | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/contrib/dvdisaster.desktop b/contrib/dvdisaster.desktop
-index c7661ec..1f9926b 100644
---- a/contrib/dvdisaster.desktop
-+++ b/contrib/dvdisaster.desktop
-@@ -6,7 +6,8 @@ Comment=Additional error protection for CD/DVD media
- Comment[cs]=Přídavná ochrana pro média CD/DVD
- Comment[de]=Zusätzliche Fehlerkorrektur für CD/DVD
- Exec=dvdisaster
--Icon=dvdisaster48.png
-+Icon=dvdisaster
- Terminal=false
- Type=Application
- Categories=Application;System;
-+Keywords=CD;DVD;media;data loss;scratch;aging;error;protection;recovery;
diff -Nru dvdisaster-0.79.5/debian/patches/11-no-cruft.patch dvdisaster-0.79.10/debian/patches/11-no-cruft.patch
--- dvdisaster-0.79.5/debian/patches/11-no-cruft.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/11-no-cruft.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,58 +0,0 @@
-From: Carlos Maddela
-Date: Mon, 19 Dec 2016 05:06:30 +1100
-Subject: Do not install cruft.
-
-Description: Do not install cruft.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- GNUmakefile.template | 26 --------------------------
- 1 file changed, 26 deletions(-)
-
-diff --git a/GNUmakefile.template b/GNUmakefile.template
-index a3074c7..6fda92b 100644
---- a/GNUmakefile.template
-+++ b/GNUmakefile.template
-@@ -228,12 +228,6 @@ install: dvdisaster manual
- install -d $(BUILDROOT)$(BINDIR)
- install dvdisaster $(BUILDROOT)$(BINDIR)
- install -d $(BUILDROOT)$(DOCSUBDIR)
-- install -m 644 CHANGELOG $(BUILDROOT)$(DOCSUBDIR)
-- install -m 644 COPYING $(BUILDROOT)$(DOCSUBDIR)
-- install -m 644 CREDITS* $(BUILDROOT)$(DOCSUBDIR)
-- install -m 644 README.MODIFYING $(BUILDROOT)$(DOCSUBDIR)
-- install -m 644 TODO $(BUILDROOT)$(DOCSUBDIR)
-- install -d $(BUILDROOT)$(DOCSUBDIR)
- (cd documentation/user-manual; install -m 644 manual.pdf $(BUILDROOT)$(DOCSUBDIR))
- install -d $(BUILDROOT)$(MANDIR)/man1
- install -d $(BUILDROOT)$(MANDIR)/de/man1
-@@ -251,26 +245,6 @@ install: dvdisaster manual
- install -m 644 $$i/LC_MESSAGES/dvdisaster.mo $(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES; \
- done \
- fi
-- @echo "# dvdisaster uninstaller script" > $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "# Usage: sh dvdisaster-uninstall.sh" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rm -f \"$(BINDIR)/dvdisaster\" \"$(BINDIR)/dvdisaster-uninstall.sh\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rm -f \"$(DOCSUBDIR)/CHANGELOG\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rm -f \"$(DOCSUBDIR)/COPYING\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rm -f \"$(DOCSUBDIR)/CREDITS.de\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rm -f \"$(DOCSUBDIR)/CREDITS.en\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rm -f \"$(DOCSUBDIR)/manual.pdf\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rm -f \"$(DOCSUBDIR)/README.MODIFYING\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rm -f \"$(DOCSUBDIR)/TODO\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @echo "rmdir \"$(DOCSUBDIR)\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @for i in $(PO_LOCALES); do \
-- echo "rm -f \"$(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh ; \
-- done
-- @echo "rm -f \"$(MANDIR)/man1/dvdisaster.1\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-- @for i in $(MAN_LOCALES); do \
-- echo "rm -f \"$(MANDIR)/$$i/man1/dvdisaster.1\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh ; \
-- done
-- @echo "echo \"dvdisaster has been uninstalled.\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
-
- uninstall:
- @echo "Uninstalling package..."
diff -Nru dvdisaster-0.79.5/debian/patches/12-fix-spelling-of-up-to.patch dvdisaster-0.79.10/debian/patches/12-fix-spelling-of-up-to.patch
--- dvdisaster-0.79.5/debian/patches/12-fix-spelling-of-up-to.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/12-fix-spelling-of-up-to.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,397 +0,0 @@
-From: Carlos Maddela
-Date: Mon, 19 Dec 2016 06:03:48 +1100
-Subject: Fix spelling: upto -> up to
-
-Description: Fix spelling: upto -> up to
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- debug.c | 2 +-
- documentation/codec-specs/rs01.tex | 2 +-
- documentation/codec-specs/rs02.tex | 2 +-
- documentation/dvdisaster.en.1 | 4 ++--
- documentation/user-manual/qa.tex | 2 +-
- dvdisaster.c | 2 +-
- dvdisaster.h | 4 ++--
- locale/cs.po | 6 +++---
- locale/de.po | 6 +++---
- locale/it.po | 8 ++++----
- locale/pt_BR.po | 10 +++++-----
- locale/ru.po | 12 ++++++------
- locale/sv.po | 6 +++---
- preferences.c | 4 ++--
- 14 files changed, 35 insertions(+), 35 deletions(-)
-
-diff --git a/debug.c b/debug.c
-index df70416..b4ffc21 100644
---- a/debug.c
-+++ b/debug.c
-@@ -1023,7 +1023,7 @@ void RawSector(char *arg)
- *
- * ./dvdisaster --debug --send-cdb 12,00,00,00,24,00:24
- *
-- * The first six bytes make up the cdb; cdbs with upto 12 bytes are possible.
-+ * The first six bytes make up the cdb; cdbs with up to 12 bytes are possible.
- * The :24 arg is the allocation length.
- * Note that the allocation length must match those specified in the cdb;
- * differing values may crash the system.
-diff --git a/documentation/codec-specs/rs01.tex b/documentation/codec-specs/rs01.tex
-index ebb1ee5..a8c0d90 100644
---- a/documentation/codec-specs/rs01.tex
-+++ b/documentation/codec-specs/rs01.tex
-@@ -172,7 +172,7 @@ The $d_{i,j}$ denote the $i-th$ byte in the $j-th$ layer.
- In order to create the first ecc block, bytes $d_{1,1}$ to $d_{1,n}$ are taken from the
- $n$ layers. Then the RS(255,k) code is calculated (see appendix \ref{rs} for its parameters)
- and the
--resulting $k$ parity bytes $e_{1,1}$ upto $e_{k,1}$ are stored
-+resulting $k$ parity bytes $e_{1,1}$ up to $e_{k,1}$ are stored
- in the ecc file. The resulting ecc block is marked grey in the
- figure. The next ecc blocks are calculated and stored accordingly.
- In total, the ecc section contains $k*ls$ bytes of parity information,
-diff --git a/documentation/codec-specs/rs02.tex b/documentation/codec-specs/rs02.tex
-index 3cf5fb1..c026772 100644
---- a/documentation/codec-specs/rs02.tex
-+++ b/documentation/codec-specs/rs02.tex
-@@ -133,7 +133,7 @@ Its format is described in appendix \ref{eh}. For RS02, only the data fields
- marked with ``all'' or ``RS02'' are relevant; all other fields should be set to zero.
-
- Data layer $n$ does also contain the CRC32 checksums of each data sector
--upto the ecc header. If the .iso image contains $s$ sectors,
-+up to the ecc header. If the .iso image contains $s$ sectors,
- then the CRC field contains $4s$ bytes, rounded up
- to the nearest multiple of 2048.
- CRC32 checksums are calculated over a whole CD sector comprising 2048 bytes.
-diff --git a/documentation/dvdisaster.en.1 b/documentation/dvdisaster.en.1
-index 028c6e0..95faa5a 100644
---- a/documentation/dvdisaster.en.1
-+++ b/documentation/dvdisaster.en.1
-@@ -274,7 +274,7 @@ Selects between the sg (SG_IO) driver (default setting) and the
- older cdrom (CDROM_SEND_PACKET) driver for accessing the optical drives.
- Both drivers should work equally well; however the cdrom driver is known
- to cause system failures on some ancient SCSI controllers.
--The older cdrom driver was the default upto and including dvdisaster 0.72.x;
-+The older cdrom driver was the default up to and including dvdisaster 0.72.x;
- if the now pre-selected sg driver changes something to the worse for you
- please switch back to the older driver using \-\-driver=cdrom.
- .TP
-@@ -376,7 +376,7 @@ the uncorrected sector instead.
- .RE
- .TP
- .B \-\-read-attempts n-m
--attempts n upto m reads of a defective sector.
-+attempts n up to m reads of a defective sector.
- .TP
- .B \-\-read-medium n
- read the whole medium up to n times.
-diff --git a/documentation/user-manual/qa.tex b/documentation/user-manual/qa.tex
-index 5d4b35a..91befa1 100644
---- a/documentation/user-manual/qa.tex
-+++ b/documentation/user-manual/qa.tex
-@@ -457,6 +457,6 @@ drive for reading images in these cases.}
-
- \qa{``Ecc file has been created with version 0.40.7.''}
- {Some developer versions of dvdisaster mark their ecc files with a special bit.
-- This causes dvdisaster versions upto 0.65 to falsely display the above error
-+ This causes dvdisaster versions up to 0.65 to falsely display the above error
- message. Please use the developer versions only together with dvdisaster
- 0.66 or newer versions. }
-diff --git a/dvdisaster.c b/dvdisaster.c
-index a24e599..d549676 100644
---- a/dvdisaster.c
-+++ b/dvdisaster.c
-@@ -917,7 +917,7 @@ int main(int argc, char *argv[])
- PrintCLI(_(" --old-ds-marker - mark missing sectors compatible with dvdisaster <= 0.70\n"));
- PrintCLI(_(" --prefetch-sectors n - prefetch n sectors for RS03 encoding (uses ~nMiB)\n"));
- PrintCLI(_(" --raw-mode n - mode for raw reading CD media (20 or 21)\n"));
-- PrintCLI(_(" --read-attempts n-m - attempts n upto m reads of a defective sector\n"));
-+ PrintCLI(_(" --read-attempts n-m - attempts n up to m reads of a defective sector\n"));
- PrintCLI(_(" --read-medium n - read the whole medium up to n times\n"));
- PrintCLI(_(" --read-raw - performs read in raw mode if possible\n"));
- PrintCLI(_(" --resource-file p - get resource file from given path\n"));
-diff --git a/dvdisaster.h b/dvdisaster.h
-index 2507ab9..db2031e 100644
---- a/dvdisaster.h
-+++ b/dvdisaster.h
-@@ -101,7 +101,7 @@
-
- #define MAX_CODEC_THREADS 1024 /* not including IO and GUI */
- #define MAX_OLD_CACHE_SIZE 8096 /* old cache for RS01/RS02 */
--#define MAX_PREFETCH_CACHE_SIZE (512*1024) /* upto 0.5TB RS03 */
-+#define MAX_PREFETCH_CACHE_SIZE (512*1024) /* up to 0.5TB RS03 */
-
- /* Choices for I/O strategy */
-
-@@ -364,7 +364,7 @@ typedef struct _LargeFile
- #define FINGERPRINT_SECTOR 16 /* Sector currently used to calculate the fingerprint. */
- /* This is the ISO filesystem root sector which contains */
- /* the volume label and creation time stamps. */
-- /* Versions upto 0.64 used sector 257, */
-+ /* Versions up to 0.64 used sector 257, */
- /* but that was not a wise choice for CD media.*/
-
- #define MFLAG_DEVEL (1<<0) /* for methodFlags[3] */
-diff --git a/locale/cs.po b/locale/cs.po
-index bdec530..ed1fc65 100644
---- a/locale/cs.po
-+++ b/locale/cs.po
-@@ -658,7 +658,7 @@ msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
- msgstr " --raw-mode n - režim přímého čtení pro CD disky (20 nebo 21)\n"
-
- #: dvdisaster.c:920
--msgid " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- msgstr " --read-attempts n-m - zkusit n až m opakovaných čtení poškozeného sektoru\n"
-
- #: dvdisaster.c:921
-@@ -2000,7 +2000,7 @@ msgstr "Přečtení sektoru nezkoušet více než %d krát"
- msgid ""
- "Maximum number of reading attempts\n"
- "\n"
--"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts upto this number.\n"
-+"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts up to this number.\n"
- "\n"
- "The decision to do more attempts depends on the quality of data gathered so far, which in turn is influenced by the capabilities of your optical drive and the operating system. So depending on your configuration, you may or may not see dvdisaster using the maximum value."
- msgstr ""
-@@ -2072,7 +2072,7 @@ msgstr " krát"
- msgid ""
- "Media read attempts for the linear reading strategy\n"
- "\n"
--"If unreadable sectors remain after reading the medium from start to end, the medium is read again upto he given number of times.\n"
-+"If unreadable sectors remain after reading the medium from start to end, the medium is read again up to he given number of times.\n"
- "\n"
- "Only the missing sectors will be tried in the additional reading passes."
- msgstr ""
-diff --git a/locale/de.po b/locale/de.po
-index af978eb..bbbfdcc 100644
---- a/locale/de.po
-+++ b/locale/de.po
-@@ -700,7 +700,7 @@ msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
- msgstr " --raw-mode n - \"raw-modus\" zum Lesen von CD (20 or 21)\n"
-
- #: dvdisaster.c:920
--msgid " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- msgstr " --read-attempts n-m - versucht beschädigten Sektor n bis m-mal zu lesen\n"
-
- #: dvdisaster.c:921
-@@ -2057,7 +2057,7 @@ msgstr "Höchstens %d Leseversuche pro Sektor"
- msgid ""
- "Maximum number of reading attempts\n"
- "\n"
--"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts upto this number.\n"
-+"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts up to this number.\n"
- "\n"
- "The decision to do more attempts depends on the quality of data gathered so far, which in turn is influenced by the capabilities of your optical drive and the operating system. So depending on your configuration, you may or may not see dvdisaster using the maximum value."
- msgstr ""
-@@ -2129,7 +2129,7 @@ msgstr " mal lesen"
- msgid ""
- "Media read attempts for the linear reading strategy\n"
- "\n"
--"If unreadable sectors remain after reading the medium from start to end, the medium is read again upto he given number of times.\n"
-+"If unreadable sectors remain after reading the medium from start to end, the medium is read again up to he given number of times.\n"
- "\n"
- "Only the missing sectors will be tried in the additional reading passes."
- msgstr ""
-diff --git a/locale/it.po b/locale/it.po
-index 9f3a97b..a074339 100644
---- a/locale/it.po
-+++ b/locale/it.po
-@@ -625,7 +625,7 @@ msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
- msgstr ""
-
- #: dvdisaster.c:920
--msgid " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- msgstr ""
-
- #: dvdisaster.c:921
-@@ -1824,7 +1824,7 @@ msgstr ""
- msgid ""
- "Maximum number of reading attempts\n"
- "\n"
--"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts upto this number.\n"
-+"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts up to this number.\n"
- "\n"
- "The decision to do more attempts depends on the quality of data gathered so far, which in turn is influenced by the capabilities of your optical drive and the operating system. So depending on your configuration, you may or may not see dvdisaster using the maximum value."
- msgstr ""
-@@ -1883,7 +1883,7 @@ msgstr ""
- msgid ""
- "Media read attempts for the linear reading strategy\n"
- "\n"
--"If unreadable sectors remain after reading the medium from start to end, the medium is read again upto he given number of times.\n"
-+"If unreadable sectors remain after reading the medium from start to end, the medium is read again up to he given number of times.\n"
- "\n"
- "Only the missing sectors will be tried in the additional reading passes."
- msgstr ""
-@@ -6054,7 +6054,7 @@ msgstr ""
- #~ msgstr "Se potete verificate se la dimensione dell'immagine è corretta,\n"
-
- #~ msgid ""
--#~ "please send in the whole dvdisaster output upto this line\n"
-+#~ "please send in the whole dvdisaster output up to this line\n"
- #~ "to have your drive included in the internal data base.\n"
- #~ msgstr ""
- #~ "Prego inviare l'intero output di dvdisaster fino a questa linea\n"
-diff --git a/locale/pt_BR.po b/locale/pt_BR.po
-index b557c84..573531b 100644
---- a/locale/pt_BR.po
-+++ b/locale/pt_BR.po
-@@ -641,7 +641,7 @@ msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
- msgstr " --raw-mode n - modo para leitura de mídia CD em modo raw (20 ou 21)\n"
-
- #: dvdisaster.c:920
--msgid " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- msgstr " --read-attempts n-m - tenta de n a m leituras em um setor defeituoso\n"
-
- #: dvdisaster.c:921
-@@ -1935,7 +1935,7 @@ msgstr "Máx. de %d tentativas de leitura por setor"
- msgid ""
- "Maximum number of reading attempts\n"
- "\n"
--"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts upto this number.\n"
-+"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts up to this number.\n"
- "\n"
- "The decision to do more attempts depends on the quality of data gathered so far, which in turn is influenced by the capabilities of your optical drive and the operating system. So depending on your configuration, you may or may not see dvdisaster using the maximum value."
- msgstr ""
-@@ -2007,7 +2007,7 @@ msgstr " vezes"
- msgid ""
- "Media read attempts for the linear reading strategy\n"
- "\n"
--"If unreadable sectors remain after reading the medium from start to end, the medium is read again upto he given number of times.\n"
-+"If unreadable sectors remain after reading the medium from start to end, the medium is read again up to he given number of times.\n"
- "\n"
- "Only the missing sectors will be tried in the additional reading passes."
- msgstr ""
-@@ -6450,7 +6450,7 @@ msgstr "Novidades dessa versão:"
- #~ " --internal-rereads n - drive may attempt n rereads before reporting an error\n"
- #~ " --query-size n - query drive/udf/ecc for image size (default: ecc)\n"
- #~ " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
--#~ " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+#~ " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- #~ " --read-medium n - read the whole medium up to n times\n"
- #~ " --read-raw - performs read in raw mode if possible\n"
- #~ " --speed-warning n - print warning if speed changes by more than n percent\n"
-@@ -6469,7 +6469,7 @@ msgstr "Novidades dessa versão:"
- #~ msgid ""
- #~ "File splitting\n"
- #~ "\n"
--#~ "Allows working with file systems which are limited to 2GB per file, e.g. FAT from Windows. Created files are spread over upto 100 segments called \"medium00.iso\", \"medium01.iso\" etc. at the cost of a small performance hit."
-+#~ "Allows working with file systems which are limited to 2GB per file, e.g. FAT from Windows. Created files are spread over up to 100 segments called \"medium00.iso\", \"medium01.iso\" etc. at the cost of a small performance hit."
- #~ msgstr ""
- #~ "Separação de arquivos\n"
- #~ "\n"
-diff --git a/locale/ru.po b/locale/ru.po
-index 34b1796..a9fc25c 100644
---- a/locale/ru.po
-+++ b/locale/ru.po
-@@ -640,7 +640,7 @@ msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
- msgstr " --raw-mode n - режим для низкоуровневого чтения CD-носителей (20 или 21)\n"
-
- #: dvdisaster.c:920
--msgid " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- msgstr " --read-attempts n-m - делается от n до m попыток чтения поврежденного сектора\n"
-
- #: dvdisaster.c:921
-@@ -1938,7 +1938,7 @@ msgstr "Макс. %d попыток чтения на сектор"
- msgid ""
- "Maximum number of reading attempts\n"
- "\n"
--"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts upto this number.\n"
-+"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts up to this number.\n"
- "\n"
- "The decision to do more attempts depends on the quality of data gathered so far, which in turn is influenced by the capabilities of your optical drive and the operating system. So depending on your configuration, you may or may not see dvdisaster using the maximum value."
- msgstr ""
-@@ -2010,7 +2010,7 @@ msgstr " раз"
- msgid ""
- "Media read attempts for the linear reading strategy\n"
- "\n"
--"If unreadable sectors remain after reading the medium from start to end, the medium is read again upto he given number of times.\n"
-+"If unreadable sectors remain after reading the medium from start to end, the medium is read again up to he given number of times.\n"
- "\n"
- "Only the missing sectors will be tried in the additional reading passes."
- msgstr ""
-@@ -6511,7 +6511,7 @@ msgstr "Новое в этой версии:"
- #~ " --internal-rereads n - drive may attempt n rereads before reporting an error\n"
- #~ " --query-size n - query drive/udf/ecc for image size (default: ecc)\n"
- #~ " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
--#~ " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+#~ " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- #~ " --read-medium n - read the whole medium up to n times\n"
- #~ " --read-raw - performs read in raw mode if possible\n"
- #~ " --speed-warning n - print warning if speed changes by more than n percent\n"
-@@ -6528,7 +6528,7 @@ msgstr "Новое в этой версии:"
- #~ msgid ""
- #~ "File splitting\n"
- #~ "\n"
--#~ "Allows working with file systems which are limited to 2GB per file, e.g. FAT from Windows. Created files are spread over upto 100 segments called \"medium00.iso\", \"medium01.iso\" etc. at the cost of a small performance hit."
-+#~ "Allows working with file systems which are limited to 2GB per file, e.g. FAT from Windows. Created files are spread over up to 100 segments called \"medium00.iso\", \"medium01.iso\" etc. at the cost of a small performance hit."
- #~ msgstr ""
- #~ "Разбиение файлов\n"
- #~ "\n"
-@@ -6574,7 +6574,7 @@ msgstr "Новое в этой версии:"
- #~ " --internal-rereads n - drive may attempt n rereads before reporting an error\n"
- #~ " --query-size n - query drive/udf/ecc for image size (default: ecc)\n"
- #~ " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
--#~ " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+#~ " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- #~ " --read-medium n - read the whole medium up to n times\n"
- #~ " --read-raw - performs read in raw mode if possible\n"
- #~ " --speed-warning n - print warning if speed changes by more than n percent\n"
-diff --git a/locale/sv.po b/locale/sv.po
-index f69035e..9f70808 100644
---- a/locale/sv.po
-+++ b/locale/sv.po
-@@ -626,7 +626,7 @@ msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
- msgstr ""
-
- #: dvdisaster.c:920
--msgid " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
-+msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
- msgstr ""
-
- #: dvdisaster.c:921
-@@ -1830,7 +1830,7 @@ msgstr ""
- msgid ""
- "Maximum number of reading attempts\n"
- "\n"
--"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts upto this number.\n"
-+"When the minimum number of reading attempts is reached without success, dvdisaster might choose to perform additional reading attempts up to this number.\n"
- "\n"
- "The decision to do more attempts depends on the quality of data gathered so far, which in turn is influenced by the capabilities of your optical drive and the operating system. So depending on your configuration, you may or may not see dvdisaster using the maximum value."
- msgstr ""
-@@ -1889,7 +1889,7 @@ msgstr ""
- msgid ""
- "Media read attempts for the linear reading strategy\n"
- "\n"
--"If unreadable sectors remain after reading the medium from start to end, the medium is read again upto he given number of times.\n"
-+"If unreadable sectors remain after reading the medium from start to end, the medium is read again up to he given number of times.\n"
- "\n"
- "Only the missing sectors will be tried in the additional reading passes."
- msgstr ""
-diff --git a/preferences.c b/preferences.c
-index 4f1fe5c..f5ef889 100644
---- a/preferences.c
-+++ b/preferences.c
-@@ -2221,7 +2221,7 @@ void CreatePreferencesWindow(void)
- _("Maximum number of reading attempts\n\n"
- "When the minimum number of reading attempts is reached "
- "without success, dvdisaster might choose to perform additional "
-- "reading attempts upto this number.\n\n"
-+ "reading attempts up to this number.\n\n"
-
- "The decision to do more attempts depends on the quality of "
- "data gathered so far, which in turn is influenced by the "
-@@ -2336,7 +2336,7 @@ void CreatePreferencesWindow(void)
- AddHelpParagraph(lwoh,
- _("Media read attempts for the linear reading strategy\n\n"
- "If unreadable sectors remain after reading the medium from start to end, "
-- "the medium is read again upto he given number of times.\n\n"
-+ "the medium is read again up to he given number of times.\n\n"
- "Only the missing sectors will be tried in the additional reading passes."));
-
- /** Defective sector caching */
diff -Nru dvdisaster-0.79.5/debian/patches/13-fix-missing-language-field-in-po-files.patch dvdisaster-0.79.10/debian/patches/13-fix-missing-language-field-in-po-files.patch
--- dvdisaster-0.79.5/debian/patches/13-fix-missing-language-field-in-po-files.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/13-fix-missing-language-field-in-po-files.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,41 +0,0 @@
-From: Carlos Maddela
-Date: Mon, 19 Dec 2016 07:04:02 +1100
-Subject: Fix missing language fields in PO files.
-
-Description: Fix missing language fields in PO files.
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- locale/pt_BR.po | 2 +-
- locale/ru.po | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/locale/pt_BR.po b/locale/pt_BR.po
-index 573531b..04b33b5 100644
---- a/locale/pt_BR.po
-+++ b/locale/pt_BR.po
-@@ -11,7 +11,7 @@ msgstr ""
- "PO-Revision-Date: 2010-06-09 11:13+0200\n"
- "Last-Translator: cg \n"
- "Language-Team: Portuguese\n"
--"Language: \n"
-+"Language: pt_BR\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
-diff --git a/locale/ru.po b/locale/ru.po
-index a9fc25c..6cd3789 100644
---- a/locale/ru.po
-+++ b/locale/ru.po
-@@ -13,7 +13,7 @@ msgstr ""
- "PO-Revision-Date: 2009-07-23 08:11+0300\n"
- "Last-Translator: Igor Gorbounov \n"
- "Language-Team: Russian\n"
--"Language: \n"
-+"Language: ru\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
diff -Nru dvdisaster-0.79.5/debian/patches/14-make-builds-reproducible.patch dvdisaster-0.79.10/debian/patches/14-make-builds-reproducible.patch
--- dvdisaster-0.79.5/debian/patches/14-make-builds-reproducible.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/14-make-builds-reproducible.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,128 +0,0 @@
-From: Carlos Maddela
-Date: Mon, 19 Dec 2016 09:39:49 +1100
-Subject: Make builds reproducible.
-
-Description: Make builds reproducible.
- Use the Debian changelog details to derive a build number and date,
- so that we can make reproducible binaries.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-08-14
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- build.c | 2 +-
- closure.c | 2 +-
- dvdisaster.h | 2 +-
- locale/cs.po | 4 ++--
- locale/pt_BR.po | 4 ++--
- locale/ru.po | 4 ++--
- scripts/time-stamper.bash | 8 ++++----
- 7 files changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/build.c b/build.c
-index 1666795..05a3b24 100644
---- a/build.c
-+++ b/build.c
-@@ -25,4 +25,4 @@
- /* build is incremented at each make;
- make recompile of dependent file as fast as possible */
-
--int buildCount = BUILD;
-+const char *const buildCount = BUILD;
-diff --git a/closure.c b/closure.c
-index 7568cba..51e91a2 100644
---- a/closure.c
-+++ b/closure.c
-@@ -433,7 +433,7 @@ void InitClosure()
- #define BITNESS_STRING ""
- #endif
-
-- Closure->versionString = g_strdup_printf("dvdisaster %s build %d, %s%s",
-+ Closure->versionString = g_strdup_printf("dvdisaster %s build %s, %s%s",
- Closure->cookedVersion, buildCount, SYS_NAME, BITNESS_STRING);
-
- /* Replace the dot with a locale-resistant separator */
-diff --git a/dvdisaster.h b/dvdisaster.h
-index db2031e..bcfd4f5 100644
---- a/dvdisaster.h
-+++ b/dvdisaster.h
-@@ -450,7 +450,7 @@ void FreeBitmap(Bitmap*);
- *** build.h
- ***/
-
--int buildCount;
-+extern const char *const buildCount;
-
- /***
- *** cacheprobe.h
-diff --git a/locale/cs.po b/locale/cs.po
-index ed1fc65..24b1e7c 100644
---- a/locale/cs.po
-+++ b/locale/cs.po
-@@ -6476,11 +6476,11 @@ msgstr "Novinky v této verzi:"
-
- #~ msgid ""
- #~ "\n"
--#~ "dvdisaster version %s build %d\n"
-+#~ "dvdisaster version %s build %s\n"
- #~ "\n"
- #~ msgstr ""
- #~ "\n"
--#~ "dvdisaster verze %s sestavení %d\n"
-+#~ "dvdisaster verze %s sestavení %s\n"
- #~ "\n"
-
- #~ msgid "--prefetch-sectors must be in range 32...8096"
-diff --git a/locale/pt_BR.po b/locale/pt_BR.po
-index 04b33b5..012ce9e 100644
---- a/locale/pt_BR.po
-+++ b/locale/pt_BR.po
-@@ -6200,11 +6200,11 @@ msgstr "Novidades dessa versão:"
-
- #~ msgid ""
- #~ "\n"
--#~ "dvdisaster version %s build %d\n"
-+#~ "dvdisaster version %s build %s\n"
- #~ "\n"
- #~ msgstr ""
- #~ "\n"
--#~ "dvdisaster, versão %s build %d\n"
-+#~ "dvdisaster, versão %s build %s\n"
-
- #~ msgid "--cache-size maximum is 8192MiB."
- #~ msgstr "--cache-size máximo é 8192MiB."
-diff --git a/locale/ru.po b/locale/ru.po
-index 6cd3789..912d6fb 100644
---- a/locale/ru.po
-+++ b/locale/ru.po
-@@ -6215,11 +6215,11 @@ msgstr "Новое в этой версии:"
-
- #~ msgid ""
- #~ "\n"
--#~ "dvdisaster version %s build %d\n"
-+#~ "dvdisaster version %s build %s\n"
- #~ "\n"
- #~ msgstr ""
- #~ "\n"
--#~ "dvdisaster версия %s сборка %d\n"
-+#~ "dvdisaster версия %s сборка %s\n"
- #~ "\n"
-
- #~ msgid "--cache-size maximum is 8192MiB."
-diff --git a/scripts/time-stamper.bash b/scripts/time-stamper.bash
-index fd28794..4ec3e60 100755
---- a/scripts/time-stamper.bash
-+++ b/scripts/time-stamper.bash
-@@ -1,7 +1,7 @@
- #!/usr/bin/env bash
-
--build=$(grep BUILD $1 | cut -d\ -f3)
--build=$((build+1))
--echo "#define BUILD $build" >$1
--date=$(date +"%d.%m.%y (%A, %H:%M)")
-+# Use Debian changelog details to derive build number and date.
-+build=$(echo "${DEB_VERSION}" | cut -f2 -d-)
-+echo "#define BUILD \"$build\"" >$1
-+date=$(date --date="@${SOURCE_DATE_EPOCH}" --utc +"%d.%m.%y (%A, %H:%M)")
- echo "#define BDATE \"$date\"" >>$1
diff -Nru dvdisaster-0.79.5/debian/patches/15-show-new-pkg-tracker.patch dvdisaster-0.79.10/debian/patches/15-show-new-pkg-tracker.patch
--- dvdisaster-0.79.5/debian/patches/15-show-new-pkg-tracker.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/15-show-new-pkg-tracker.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-From: Carlos Maddela
-Date: Mon, 19 Dec 2016 12:02:51 +1100
-Subject: Update help dialog to show link to the new Debian package tracker.
-
-Description: Update help dialog to show link to the new Debian
- package tracker.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2016-12-19
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- help-dialogs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/help-dialogs.c b/help-dialogs.c
-index eae04f2..c89c552 100644
---- a/help-dialogs.c
-+++ b/help-dialogs.c
-@@ -750,7 +750,7 @@ void AboutDialog()
- "for Debian to support DVD-ROMs (with and without encryption).\n\n"
- "Please do not bother the original authors of dvdisaster\n"
- "but submit bugreports against the [debian package] instead.\n"),
-- "http://packages.qa.debian.org/dvdisaster");
-+ "https://tracker.debian.org/pkg/dvdisaster");
-
- #else
- lang = g_getenv("LANG");
diff -Nru dvdisaster-0.79.5/debian/patches/16-remove-auto-build-of-doco-from-install-rule.patch dvdisaster-0.79.10/debian/patches/16-remove-auto-build-of-doco-from-install-rule.patch
--- dvdisaster-0.79.5/debian/patches/16-remove-auto-build-of-doco-from-install-rule.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/16-remove-auto-build-of-doco-from-install-rule.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,33 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 22 Dec 2016 02:20:30 +1100
-Subject: Don't build and install documentation automatically.
-
-Description: Don't build and install documentation automatically.
- This allows for better control over binary-arch and binary-indep builds.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- GNUmakefile.template | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/GNUmakefile.template b/GNUmakefile.template
-index 6fda92b..d9bef11 100644
---- a/GNUmakefile.template
-+++ b/GNUmakefile.template
-@@ -223,12 +223,11 @@ show:
- .PHONY : install uninstall clean distclean arch
- .PHONY : srcdist
-
--install: dvdisaster manual
-+install: dvdisaster
- @echo "Installing package..."
- install -d $(BUILDROOT)$(BINDIR)
- install dvdisaster $(BUILDROOT)$(BINDIR)
- install -d $(BUILDROOT)$(DOCSUBDIR)
-- (cd documentation/user-manual; install -m 644 manual.pdf $(BUILDROOT)$(DOCSUBDIR))
- install -d $(BUILDROOT)$(MANDIR)/man1
- install -d $(BUILDROOT)$(MANDIR)/de/man1
- cd documentation; \
diff -Nru dvdisaster-0.79.5/debian/patches/17-fix-all-but-deprecated-api-warnings.patch dvdisaster-0.79.10/debian/patches/17-fix-all-but-deprecated-api-warnings.patch
--- dvdisaster-0.79.5/debian/patches/17-fix-all-but-deprecated-api-warnings.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/17-fix-all-but-deprecated-api-warnings.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,312 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 22 Dec 2016 11:19:20 +1100
-Subject: Fix all warnings except for those related to deprecated API.
-
-Description: Fix all warnings except for those related to deprecated API.
-Author: Carlos Maddela
-Bug-Debian: https://bugs.debian.org/748416
-Forwarded: no
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- closure.c | 8 +++++---
- curve.c | 2 +-
- menubar.c | 2 +-
- rs01-create.c | 10 +++++-----
- rs01-verify.c | 2 +-
- rs03-create.c | 24 ++++++++++++------------
- rs03-fix.c | 8 ++++----
- scsi-layer.c | 4 ++++
- smart-lec.c | 10 +++++-----
- 9 files changed, 38 insertions(+), 32 deletions(-)
-
-diff --git a/closure.c b/closure.c
-index 51e91a2..40bb225 100644
---- a/closure.c
-+++ b/closure.c
-@@ -196,7 +196,7 @@ void ReadDotfile()
- /* Get first MAX_LINE_LEN bytes of line, discard the rest */
-
- line[MAX_LINE_LEN-1] = 1;
-- fgets(line, MAX_LINE_LEN, dotfile);
-+ if(!fgets(line, MAX_LINE_LEN, dotfile)) break;
- if(!line[MAX_LINE_LEN-1]) /* line longer than buffer */
- while(!feof(dotfile) && fgetc(dotfile) != '\n')
- ;
-@@ -225,12 +225,14 @@ void ReadDotfile()
- if(!strcmp(symbol, "last-image")) { g_free(Closure->imageName);
- if(!strcmp(value, "none"))
- Closure->imageName = g_strdup("");
-- else Closure->imageName = g_strdup(value); continue;
-+ else Closure->imageName = g_strdup(value);
-+ continue;
- }
- if(!strcmp(symbol, "last-ecc")) { g_free(Closure->eccName);
- if(!strcmp(value, "none"))
- Closure->eccName = g_strdup("");
-- else Closure->eccName = g_strdup(value); continue;
-+ else Closure->eccName = g_strdup(value);
-+ continue;
- }
- if(!strcmp(symbol, "adaptive-read")) { Closure->adaptiveRead = atoi(value); continue; }
- if(!strcmp(symbol, "auto-suffix")) { Closure->autoSuffix = atoi(value); continue; }
-diff --git a/curve.c b/curve.c
-index 668bc40..61b81a9 100644
---- a/curve.c
-+++ b/curve.c
-@@ -123,7 +123,7 @@ int CurveLogY(Curve *curve, gdouble y) /* not really a log */
- hfact = (gdouble)(curve->bottomLY - curve->topLY);
-
- if(y==1) return curve->bottomLY - ((log(2)/log(curve->logMaxY)) * hfact)/2;
-- return curve->bottomLY - (log(y)/log(curve->logMaxY)) * hfact;
-+ return curve->bottomLY - (log(y)/log(curve->logMaxY)) * hfact;
- }
-
- /***
-diff --git a/menubar.c b/menubar.c
-index 8258cfd..12f1933 100644
---- a/menubar.c
-+++ b/menubar.c
-@@ -414,7 +414,7 @@ void set_path(GtkWidget *entry, char *path)
- else
- { char buf[PATH_MAX + strlen(path) + 2];
-
-- getcwd(buf, PATH_MAX);
-+ if(!getcwd(buf, PATH_MAX)) return;
- strcat(buf,"/");
-
- strcat(buf,path);
-diff --git a/rs01-create.c b/rs01-create.c
-index 5cad591..88c352a 100644
---- a/rs01-create.c
-+++ b/rs01-create.c
-@@ -107,12 +107,12 @@ static void unlink_image(GtkWidget *label)
- _("\nImage file %s deleted.\n"), Closure->imageName);
- }
- else
-- { if(!Closure->guiMode)
-- PrintLog("\n");
-+ { if(!Closure->guiMode)
-+ PrintLog("\n");
-
-- ModalWarning(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, NULL,
-- _("Image file %s not deleted: %s\n"),
-- Closure->imageName, strerror(errno));
-+ ModalWarning(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, NULL,
-+ _("Image file %s not deleted: %s\n"),
-+ Closure->imageName, strerror(errno));
- }
- }
-
-diff --git a/rs01-verify.c b/rs01-verify.c
-index 3315659..431a6d0 100644
---- a/rs01-verify.c
-+++ b/rs01-verify.c
-@@ -830,7 +830,7 @@ process_ecc:
- { if(!Closure->guiMode)
- PrintProgress(_("- ecc md5sum : %3d%%"),percent);
- else SetLabelText(GTK_LABEL(wl->cmpEccMd5Sum), "%3d%%", percent);
-- last_percent = percent;
-+ last_percent = percent;
- }
-
- if(Closure->stopActions)
-diff --git a/rs03-create.c b/rs03-create.c
-index 40066d2..b2c6033 100644
---- a/rs03-create.c
-+++ b/rs03-create.c
-@@ -31,9 +31,9 @@
-
- //#define VERBOSE 1
- #ifdef VERBOSE
-- #define verbose(format,args...) printf(format, ## args)
-+ #define verbose(format,...) printf(format, __VA_ARGS__)
- #else
-- #define verbose(format,args...)
-+ #define verbose(format,...)
- #endif
-
- #ifdef HAVE_MMAP
-@@ -688,7 +688,7 @@ static void flush_crc(ecc_closure *ec, LargeFile *file_out)
-
- /* Write out the CRC layer */
-
-- verbose("IO: writing CRC layer\n");
-+ verbose("%s", "IO: writing CRC layer\n");
- crc_sect = 2048*(ec->encoderChunk+lay->firstCrcPos);
- if(!LargeSeek(file_out, crc_sect))
- { ec->abortImmediately = TRUE;
-@@ -709,7 +709,7 @@ static void flush_parity(ecc_closure *ec, LargeFile *file_out)
-
- /* Write out the created parity. */
-
-- verbose("IO: writing parity...\n");
-+ verbose("%s", "IO: writing parity...\n");
- for(k=0; knroots; k++)
- { gint64 idx=0;
-
-@@ -726,7 +726,7 @@ static void flush_parity(ecc_closure *ec, LargeFile *file_out)
- }
- }
- }
-- verbose("IO: parity written.\n");
-+ verbose("%s", "IO: parity written.\n");
- }
-
- static gpointer io_thread(ecc_closure *ec)
-@@ -741,7 +741,7 @@ static gpointer io_thread(ecc_closure *ec)
- int parity_available = 0;
- int i;
-
-- verbose("Reader thread initializing\n");
-+ verbose("%s", "Reader thread initializing\n");
-
- /*** Allocate local parity buffer aligned at 128bit boundary */
-
-@@ -809,7 +809,7 @@ static gpointer io_thread(ecc_closure *ec)
- { read_next_chunk(ec, chunk);
- // flush_crc(ec, file_out); // FIXME
- needs_preload = 0;
-- verbose("IO: first chunk loaded\n");
-+ verbose("%s", "IO: first chunk loaded\n");
- continue;
- }
-
-@@ -856,7 +856,7 @@ static gpointer io_thread(ecc_closure *ec)
- g_mutex_lock(ec->lock);
- cpu_bound = ec->buffersToEncode;
- while(ec->buffersToEncode)
-- { verbose("IO: Waiting for encoders to finish\n");
-+ { verbose("%s", "IO: Waiting for encoders to finish\n");
- g_cond_wait(ec->ioCond, ec->lock);
- }
- g_mutex_unlock(ec->lock);
-@@ -898,7 +898,7 @@ static gpointer io_thread(ecc_closure *ec)
- ec->slicesFree = TRUE; /* we have saved the slices; go ahead */
- g_cond_broadcast(ec->ioCond);
- while(ec->buffersToEncode)
-- { verbose("IO: Waiting for encoders to finish last chunk\n");
-+ { verbose("%s", "IO: Waiting for encoders to finish last chunk\n");
- g_cond_wait(ec->ioCond, ec->lock);
- }
- g_mutex_unlock(ec->lock);
-@@ -911,7 +911,7 @@ static gpointer io_thread(ecc_closure *ec)
- flush_crc(ec, file_out);
- flush_parity(ec, file_out);
-
-- verbose("IO: finished\n"); fflush(stdout);
-+ verbose("%s", "IO: finished\n"); fflush(stdout);
- return NULL;
- }
-
-@@ -1098,7 +1098,7 @@ static gpointer encoder_thread(ecc_closure *ec)
- ec->buffersToEncode-=enc_size;
- if(!ec->buffersToEncode)
- { g_cond_broadcast(ec->ioCond);
-- verbose("ENC: processed last buffer; telling IO process.\n");
-+ verbose("%s", "ENC: processed last buffer; telling IO process.\n");
- fflush(stdout);
- }
- g_mutex_unlock(ec->lock);
-@@ -1198,7 +1198,7 @@ static void create_reed_solomon(ecc_closure *ec)
- verbose("SCHED: joined with worker %d\n", i);
- fflush(stdout);
- }
-- verbose("SCHED: scheduler finished.\n");
-+ verbose("%s", "SCHED: scheduler finished.\n");
- }
-
- /***
-diff --git a/rs03-fix.c b/rs03-fix.c
-index 0a7a1d3..e162e5e 100644
---- a/rs03-fix.c
-+++ b/rs03-fix.c
-@@ -829,10 +829,10 @@ void RS03Fix(Image *image)
- if we were processing an augmented image. */
-
- if(lay->target == ECC_FILE && i >= ndata-1)
-- {
-- if(!LargeSeek(image->eccFile, (gint64)(2048*sec)))
-- Stop(_("Failed seeking to sector %lld in ecc file [%s]: %s"),
-- sec, "FW", strerror(errno));
-+ {
-+ if(!LargeSeek(image->eccFile, (gint64)(2048*sec)))
-+ Stop(_("Failed seeking to sector %lld in ecc file [%s]: %s"),
-+ sec, "FW", strerror(errno));
-
- n = LargeWrite(image->eccFile, cache_offset+fc->imgBlock[i], 2048);
- if(n != 2048)
-diff --git a/scsi-layer.c b/scsi-layer.c
-index 64a3dba..3be21ff 100644
---- a/scsi-layer.c
-+++ b/scsi-layer.c
-@@ -31,7 +31,9 @@
-
- static int query_type(DeviceHandle*, int);
- static gint64 query_size(Image*);
-+#if 0
- static int query_copyright(DeviceHandle*);
-+#endif
-
- static int read_dvd_sector(DeviceHandle*, unsigned char*, int, int);
- static int read_cd_sector(DeviceHandle*, unsigned char*, int, int);
-@@ -1649,6 +1651,7 @@ reset_mode_page:
- * Find out whether we are allowed to create an image from the DVD.
- */
-
-+#if 0
- static int query_copyright(DeviceHandle *dh)
- { Sense sense;
- AlignedBuffer *ab = CreateAlignedBuffer(2048);
-@@ -1709,6 +1712,7 @@ static int query_copyright(DeviceHandle *dh)
-
- return result;
- }
-+#endif
-
- /*
- * See whether a sector lies within the user area.
-diff --git a/smart-lec.c b/smart-lec.c
-index 8da74ff..0355879 100644
---- a/smart-lec.c
-+++ b/smart-lec.c
-@@ -27,9 +27,9 @@
-
- #define VERBOSE 1
- #ifdef VERBOSE
-- #define verbose(format,args...) printf(format, ## args)
-+ #define verbose(format,...) printf(format, __VA_ARGS__)
- #else
-- #define verbose(format,args...)
-+ #define verbose(format,...)
- #endif
-
- /***
-@@ -432,7 +432,7 @@ static void update_pq_state(sh_context *shc)
- static void print_pq_state(sh_context *shc)
- { int i;
-
-- verbose("PQ states: \n");
-+ verbose("%s", "PQ states: \n");
-
- for(i=0; ipState[i] == 1)
-@@ -1354,7 +1354,7 @@ static void swap_p_for_new_improvement(sh_context *shc)
- count++;
-
- if(count < 2)
-- { verbose(" pruned");
-+ { verbose("%s", " pruned");
- goto decrement;
- }
-
-@@ -1417,7 +1417,7 @@ decrement:
- if(index >= n_q) break;
- selection[index]=0;
-
-- verbose("\n");
-+ verbose("%s", "\n");
- }
- }
- }
diff -Nru dvdisaster-0.79.5/debian/patches/18-update-copyright-in-about-dialog.patch dvdisaster-0.79.10/debian/patches/18-update-copyright-in-about-dialog.patch
--- dvdisaster-0.79.5/debian/patches/18-update-copyright-in-about-dialog.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/18-update-copyright-in-about-dialog.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,30 +0,0 @@
-From: Carlos Maddela
-Date: Wed, 21 Dec 2016 07:25:17 +1100
-Subject: Update copyright notice in about dialog.
-
-Description: Update copyright notice in about dialog.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- help-dialogs.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/help-dialogs.c b/help-dialogs.c
-index c89c552..0f4e3b2 100644
---- a/help-dialogs.c
-+++ b/help-dialogs.c
-@@ -723,8 +723,9 @@ void AboutDialog()
- g_free(text);
-
- #ifdef MODIFIED_SOURCE
-- AboutTextWithLink(vbox,
-- _("Modified version Copyright 2015 (please fill in - [directions])\n"
-+ AboutTextWithLink(vbox,
-+ _("[Modified version]\n"
-+ "Copyright 2005-2016 Debian Optical Media Tools Team\n"
- "Copyright 2004-2015 Carsten Gnoerlich"),
- "MODIFYING");
- #else
diff -Nru dvdisaster-0.79.5/debian/patches/19-show-text-files-with-abs-path.patch dvdisaster-0.79.10/debian/patches/19-show-text-files-with-abs-path.patch
--- dvdisaster-0.79.5/debian/patches/19-show-text-files-with-abs-path.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/19-show-text-files-with-abs-path.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,43 +0,0 @@
-From: Carlos Maddela
-Date: Wed, 21 Dec 2016 09:08:05 +1100
-Subject: Allow ShowTextFile() to work with absolute path names.
-
-Description: Allow ShowTextFile() to work with absolute path names.
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2016-12-21
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- help-dialogs.c | 18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/help-dialogs.c b/help-dialogs.c
-index 0f4e3b2..6214429 100644
---- a/help-dialogs.c
-+++ b/help-dialogs.c
-@@ -423,6 +423,24 @@ char *find_file(char *file, size_t *size, char *lang)
- lang_suffix[1] = lang[1];
- }
-
-+ /* Test for absolute path first. */
-+ if(*file == '/')
-+ {
-+ if(lang)
-+ path = g_strdup_printf("%s.%s", file, lang_suffix);
-+ else
-+ path = g_strdup(file);
-+
-+ if(LargeStat(path, &stat_size))
-+ {
-+ *size = stat_size;
-+ return path;
-+ }
-+
-+ g_free(path);
-+ return NULL;
-+ }
-+
- /* Try file in bin dir */
-
- if(Closure->binDir)
diff -Nru dvdisaster-0.79.5/debian/patches/20-display-changelog-credits-and-todo.patch dvdisaster-0.79.10/debian/patches/20-display-changelog-credits-and-todo.patch
--- dvdisaster-0.79.5/debian/patches/20-display-changelog-credits-and-todo.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/20-display-changelog-credits-and-todo.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,46 +0,0 @@
-From: Carlos Maddela
-Date: Wed, 21 Dec 2016 09:59:58 +1100
-Subject: Fix display of changelog, credits and to-do files.
-
-Description: Fix display of changelog, credits and to-do files.
- Use absolute paths to compensate for the fact that we don't install
- duplicates in /usr/share/doc/dvdisaster-doc or build with source
- path embedded anymore.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- menubar.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/menubar.c b/menubar.c
-index 12f1933..15ce4ad 100644
---- a/menubar.c
-+++ b/menubar.c
-@@ -126,21 +126,21 @@ static void menu_cb(GtkWidget *widget, gpointer data)
- ShowTextfile(_("windowtitle|Change log"),
- _("Change log\n"
- "Major differences from earlier program versions."),
-- "CHANGELOG", NULL, NULL);
-+ "/usr/share/doc/dvdisaster/CHANGELOG", NULL, NULL);
- break;
-
- case MENU_HELP_CREDITS:
- ShowTextfile(_("windowtitle|Credits"),
- _("Credits\n"
- "Thanks go out to..."),
-- "CREDITS", NULL, NULL);
-+ "/usr/share/doc/dvdisaster/CREDITS", NULL, NULL);
- break;
-
- case MENU_HELP_TODO:
- ShowTextfile(_("windowtitle|To do list"),
- _("To do list\n"
- "A sneak preview of coming features ... perhaps ;-)"),
-- "TODO", NULL, NULL);
-+ "/usr/share/doc/dvdisaster/TODO", NULL, NULL);
- break;
-
- default:
diff -Nru dvdisaster-0.79.5/debian/patches/22-fix-hurd-i386-ftbfs.patch dvdisaster-0.79.10/debian/patches/22-fix-hurd-i386-ftbfs.patch
--- dvdisaster-0.79.5/debian/patches/22-fix-hurd-i386-ftbfs.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/22-fix-hurd-i386-ftbfs.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,31 +0,0 @@
-From: Carlos Maddela
-Date: Wed, 4 Jan 2017 03:55:58 +1100
-Subject: Fix FTBFS for hurd-i386.
-
-Description: Fix FTBFS for hurd-i386.
- Hurd does not have path length restrictions, so doesn't define
- PATH_MAX. Assuming a PATH_MAX of 4096 as a quick workaround.
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2017-01-04
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- menubar.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/menubar.c b/menubar.c
-index 15ce4ad..df4203c 100644
---- a/menubar.c
-+++ b/menubar.c
-@@ -24,6 +24,10 @@
-
- #include
-
-+#ifndef PATH_MAX
-+ #define PATH_MAX 4096
-+#endif
-+
- /***
- *** Forward declarations
- ***/
diff -Nru dvdisaster-0.79.5/debian/patches/23-add-bdrom-support.patch dvdisaster-0.79.10/debian/patches/23-add-bdrom-support.patch
--- dvdisaster-0.79.5/debian/patches/23-add-bdrom-support.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/23-add-bdrom-support.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-From: Corey Wright
-Date: Sat, 24 Sep 2016 14:16:10 -0500
-Subject: Add support for BD-ROM media-type.
-
-Description: Add support for BD-ROM media-type.
- The attached patch adds support to dvdisaster for the BD-ROM
- media-type. This allows dvdisaster to scan and read (ie create ISO
- images of) BD-ROM media.
-Author: Corey Write
-Origin: other, https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=849518;filename=dvdisaster-add_bdrom_support.patch;msg=5
-Bug-Debian: https://bugs.debian.org/849518
-Forwarded: no
-Last-Update: 2016-12-27
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- scsi-layer.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scsi-layer.c b/scsi-layer.c
-index 3be21ff..b70a4a4 100644
---- a/scsi-layer.c
-+++ b/scsi-layer.c
-@@ -1029,7 +1029,7 @@ static int query_bd(DeviceHandle *dh, int probe_only)
-
- if(!strncmp((char*)&buf[4+8], "BDO", 3))
- { dh->typeDescr = g_strdup("BD-ROM");
-- dh->subType = UNSUPPORTED;
-+ dh->subType = BD;
- }
-
- if(!strncmp((char*)&buf[4+8], "BDW", 3))
diff -Nru dvdisaster-0.79.5/debian/patches/24-show-gpl3-license.patch dvdisaster-0.79.10/debian/patches/24-show-gpl3-license.patch
--- dvdisaster-0.79.5/debian/patches/24-show-gpl3-license.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/24-show-gpl3-license.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,27 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 5 Jan 2017 14:36:27 +1100
-Subject: Update help dialog to show GPL-3 license.
-
-Description: Update help dialog to show GPL-3 license.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- help-dialogs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/help-dialogs.c b/help-dialogs.c
-index 6214429..5065e76 100644
---- a/help-dialogs.c
-+++ b/help-dialogs.c
-@@ -403,7 +403,7 @@ void ShowGPL()
- ShowTextfile(_("windowtitle|GNU General Public License"),
- _("GNU General Public License\n"
- "The license terms of dvdisaster."),
-- "/usr/share/common-licenses/GPL-2", NULL, NULL);
-+ "/usr/share/common-licenses/GPL-3", NULL, NULL);
- }
-
- /*
diff -Nru dvdisaster-0.79.5/debian/patches/25-fix-man-pages.patch dvdisaster-0.79.10/debian/patches/25-fix-man-pages.patch
--- dvdisaster-0.79.5/debian/patches/25-fix-man-pages.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/25-fix-man-pages.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 5 Jan 2017 18:51:49 +1100
-Subject: Fix generated man pages.
-
-Description: Fix generated man pages.
- The generated man pages incorrectly direct users to the directory of
- the old HTML documentation, which is no longer available.
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2016-12-21
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- GNUmakefile.template | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/GNUmakefile.template b/GNUmakefile.template
-index d9bef11..d80932d 100644
---- a/GNUmakefile.template
-+++ b/GNUmakefile.template
-@@ -232,9 +232,9 @@ install: dvdisaster
- install -d $(BUILDROOT)$(MANDIR)/de/man1
- cd documentation; \
- ESCAPED_DOCSUBDIR=`echo $(DOCSUBDIR) | sed -e 's/\//\\\\\//g'`; \
-- sed "s/%docdir%/$$ESCAPED_DOCSUBDIR\/html/" dvdisaster.updated; \
-+ sed "s/%docdir%/$$ESCAPED_DOCSUBDIR/" dvdisaster.updated; \
- install -m 644 dvdisaster.updated $(BUILDROOT)$(MANDIR)/man1/dvdisaster.1; \
-- sed "s/%docdir%/$$ESCAPED_DOCSUBDIR\/html/" dvdisaster.updated; \
-+ sed "s/%docdir%/$$ESCAPED_DOCSUBDIR/" dvdisaster.updated; \
- install -m 644 dvdisaster.updated $(BUILDROOT)$(MANDIR)/de/man1/dvdisaster.1; \
- rm dvdisaster.updated
- if echo $(WITH_OPTIONS) | grep "NLS_YES" >/dev/null; then \
diff -Nru dvdisaster-0.79.5/debian/patches/26-fix-display-of-manual.pdf.patch dvdisaster-0.79.10/debian/patches/26-fix-display-of-manual.pdf.patch
--- dvdisaster-0.79.5/debian/patches/26-fix-display-of-manual.pdf.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/26-fix-display-of-manual.pdf.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,47 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 5 Jan 2017 18:59:30 +1100
-Subject: Fix display of manual.pdf.
-
-Description: Fix display of manual.pdf.
- The PDF file is automatically compressed by Debhelper, so we need to
- account for this.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-01-05
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- show-manual.c | 4 ++--
- welcome-window.c | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/show-manual.c b/show-manual.c
-index d53c9a5..ecb0922 100644
---- a/show-manual.c
-+++ b/show-manual.c
-@@ -287,8 +287,8 @@ void ShowPDF(char *target)
-
- /* If no target is given, show the manual. */
-
-- if(!target)
-- { bi->path = g_strdup_printf("%s/manual.pdf",Closure->docDir);
-+ if(!target)
-+ { bi->path = g_strdup_printf("%s/manual.pdf.gz",Closure->docDir);
- }
- else
- if(*target != '/') bi->path = g_strdup_printf("%s/%s",Closure->docDir, target);
-diff --git a/welcome-window.c b/welcome-window.c
-index 1046bc8..3261b7c 100644
---- a/welcome-window.c
-+++ b/welcome-window.c
-@@ -138,8 +138,8 @@ void CreateWelcomePage(GtkNotebook *notebook)
- AboutText(box, _("\ndvdisaster creates error correction data to protect\n"
- "optical media (CD,DVD,BD) against data loss.\n"));
-
-- AboutTextWithLink(box, _("Please see the [manual] for typical uses of dvdisaster.\n\n"),
-- "manual.pdf");
-+ AboutTextWithLink(box, _("Please see the [manual] for typical uses of dvdisaster.\n\n"),
-+ "manual.pdf.gz");
-
- AboutText(box, _("New in this Version:"));
-
diff -Nru dvdisaster-0.79.5/debian/patches/27-allow-opening-in-browser-again.patch dvdisaster-0.79.10/debian/patches/27-allow-opening-in-browser-again.patch
--- dvdisaster-0.79.5/debian/patches/27-allow-opening-in-browser-again.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/27-allow-opening-in-browser-again.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,485 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 5 Jan 2017 19:11:38 +1100
-Subject: Resurrect old code to support opening URLs in a browser.
-
-Description: Resurrect old code to support opening URLs in a browser.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2016-12-21
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- closure.c | 2 +
- dvdisaster.h | 7 +
- help-dialogs.c | 3 +-
- show-html.c | 402 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 413 insertions(+), 1 deletion(-)
- create mode 100644 show-html.c
-
-diff --git a/closure.c b/closure.c
-index 40bb225..f408f7a 100644
---- a/closure.c
-+++ b/closure.c
-@@ -467,6 +467,7 @@ void InitClosure()
- Closure->deviceNames = g_ptr_array_new();
- Closure->deviceNodes = g_ptr_array_new();
- Closure->viewer = g_strdup("xdg-open");
-+ Closure->browser = g_strdup("xdg-open");
- Closure->methodList = g_ptr_array_new();
- Closure->methodName = g_strdup("RS01");
- Closure->dDumpDir = g_strdup(Closure->homeDir);
-@@ -598,6 +599,7 @@ void FreeClosure()
- cond_free(Closure->binDir);
- cond_free(Closure->docDir);
- cond_free(Closure->viewer);
-+ cond_free(Closure->browser);
- cond_free(Closure->errorTitle);
- cond_free(Closure->simulateCD);
- cond_free(Closure->dDumpDir);
-diff --git a/dvdisaster.h b/dvdisaster.h
-index bcfd4f5..ae874ae 100644
---- a/dvdisaster.h
-+++ b/dvdisaster.h
-@@ -213,6 +213,7 @@ typedef struct _GlobalClosure
- char *binDir; /* place where the binary resides */
- char *docDir; /* place where our documentation resides */
- char *viewer; /* Name of preferred PDF viewer */
-+ char *browser; /* Name of preferred browser */
-
- GMutex progressLock; /* A mutex protected the stuff below */
- char bs[256]; /* A string of 255 backspace characters */
-@@ -1298,6 +1299,12 @@ int ProbeAltiVec(void);
-
- void ShowPDF(char*);
-
-+/***
-+ *** show-html.c
-+ ***/
-+
-+void ShowHTML(char*);
-+
- /***
- *** smart-lec.c
- ***/
-diff --git a/help-dialogs.c b/help-dialogs.c
-index 5065e76..3874463 100644
---- a/help-dialogs.c
-+++ b/help-dialogs.c
-@@ -599,7 +599,8 @@ static gint about_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
- { case GDK_BUTTON_PRESS:
- if(!inside) return FALSE; /* Defect in certain Gtk versions? */
- if(!strcmp(label,"GPL")) ShowGPL();
-- else if(!strcmp(label,"MODIFYING")) show_modifying();
-+ else if(!strcmp(label,"MODIFYING")) show_modifying();
-+ else if(strlen(label) > 4 && !strncmp(label, "http", 4)) ShowHTML(g_strdup(label));
- else ShowPDF(g_strdup(label));
- break;
- case GDK_ENTER_NOTIFY:
-diff --git a/show-html.c b/show-html.c
-new file mode 100644
-index 0000000..608e8ec
---- /dev/null
-+++ b/show-html.c
-@@ -0,0 +1,402 @@
-+/* dvdisaster: Additional error correction for optical media.
-+ * Copyright (C) 2004-2012 Carsten Gnoerlich.
-+ * Project home page: http://www.dvdisaster.com
-+ * Email: carsten@dvdisaster.com -or- cgnoerlich@fsfe.org
-+ *
-+ * 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
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA,
-+ * or direct your browser at http://www.gnu.org.
-+ */
-+
-+#include "dvdisaster.h"
-+
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+#include
-+#endif
-+
-+#ifdef SYS_MINGW
-+#include "windows.h"
-+#include "shellapi.h"
-+#endif
-+
-+/***
-+ *** Ask user to specify his browser
-+ ***/
-+
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+
-+#define SEARCH_BUTTON 1
-+
-+typedef struct
-+{ GtkWidget *dialog;
-+ GtkWidget *entry;
-+ GtkWidget *search;
-+ GtkWidget *filesel;
-+ GtkWidget *fileok;
-+ GtkWidget *filecancel;
-+ char *url;
-+} browser_dialog_info;
-+
-+static void response_cb(GtkWidget *widget, int response, gpointer data)
-+{ browser_dialog_info *bdi = (browser_dialog_info*)data;
-+
-+ switch(response)
-+ { case GTK_RESPONSE_ACCEPT:
-+ if(Closure->browser) g_free(Closure->browser);
-+ Closure->browser = g_strdup(gtk_entry_get_text(GTK_ENTRY(bdi->entry)));
-+ ShowHTML(bdi->url);
-+ break;
-+
-+ case GTK_RESPONSE_REJECT:
-+ if(bdi->url) g_free(bdi->url);
-+ break;
-+ }
-+ gtk_widget_destroy(widget);
-+ if(bdi->filesel)
-+ gtk_widget_destroy(bdi->filesel);
-+ g_free(bdi);
-+}
-+
-+static void search_cb(GtkWidget *widget, gpointer data)
-+{ browser_dialog_info *bdi = (browser_dialog_info*)data;
-+
-+ if(widget == bdi->search)
-+ { bdi->filesel = gtk_file_selection_new(_utf("windowtitle|Choose a browser"));
-+ bdi->fileok = GTK_FILE_SELECTION(bdi->filesel)->ok_button;
-+ bdi->filecancel = GTK_FILE_SELECTION(bdi->filesel)->cancel_button;
-+ ReverseCancelOK(GTK_DIALOG(bdi->filesel));
-+ gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(bdi->filesel));
-+ g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(bdi->filesel)->ok_button), "clicked",
-+ G_CALLBACK(search_cb), bdi);
-+
-+ g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(bdi->filesel)->cancel_button), "clicked",
-+ G_CALLBACK(search_cb), bdi);
-+
-+ gtk_widget_show(bdi->filesel);
-+ }
-+
-+ if(widget == bdi->fileok)
-+ {
-+ if(Closure->browser) g_free(Closure->browser);
-+ Closure->browser = g_strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION(bdi->filesel)));
-+ ShowHTML(bdi->url);
-+ gtk_widget_destroy(bdi->filesel);
-+ gtk_widget_destroy(bdi->dialog);
-+ g_free(bdi);
-+ return;
-+ }
-+
-+ if(widget == bdi->filecancel)
-+ { gtk_widget_destroy(bdi->filesel);
-+ bdi->filesel = NULL;
-+ }
-+}
-+
-+static void browser_dialog(char *url)
-+{ GtkWidget *dialog, *vbox, *hbox, *label, *entry, *button;
-+ browser_dialog_info *bdi = g_malloc0(sizeof(browser_dialog_info));
-+
-+ /* Create the dialog */
-+
-+ dialog = gtk_dialog_new_with_buttons(_utf("windowtitle|Browser required"),
-+ Closure->window, GTK_DIALOG_DESTROY_WITH_PARENT,
-+ GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
-+ GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL);
-+ bdi->dialog = dialog;
-+ if(url)
-+ { bdi->url = g_strdup(url);
-+ }
-+
-+ vbox = gtk_vbox_new(FALSE, 0);
-+ gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), vbox, FALSE, FALSE, 0);
-+ gtk_container_set_border_width(GTK_CONTAINER(vbox), 10);
-+
-+ /* Insert the contents */
-+
-+ label = gtk_label_new(NULL);
-+ gtk_label_set_markup(GTK_LABEL(label), _utf("Could not find a suitable browser.\n\n"
-+ "Which browser would you like to use\n"
-+ "for reading the online documentation?\n\n"
-+ "Please enter its name (e.g. mozilla) or\n"
-+ "use the \"Search\" button for a file dialog.\n")),
-+ gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 10);
-+
-+ hbox = gtk_hbox_new(FALSE, 0);
-+ gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 10);
-+
-+ bdi->entry = entry = gtk_entry_new();
-+ gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 10);
-+
-+ bdi->search = button = gtk_button_new_with_label(_utf("Search"));
-+ g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(search_cb), bdi);
-+ gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 10);
-+
-+ /* Show it */
-+
-+ g_signal_connect(dialog, "response", G_CALLBACK(response_cb), bdi);
-+
-+ gtk_widget_show_all(dialog);
-+}
-+#endif /* SYS_ unix-like */
-+
-+/***
-+ *** Show the manual in an external browser
-+ ***/
-+
-+/*
-+ * Check the child processes exit status
-+ * to find whether the browser could be invoked.
-+ */
-+
-+typedef struct
-+{ pid_t pid;
-+ char *url;
-+ GtkWidget *msg;
-+ int seconds;
-+} browser_info;
-+
-+
-+static void msg_destroy_cb(GtkWidget *widget, gpointer data)
-+{ browser_info *bi = (browser_info*)data;
-+
-+ bi->msg = NULL;
-+}
-+
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+
-+/*
-+ * The following list of browsers and html wrappers
-+ * will be tried one at a time until one entry succeeds by:
-+ * - returning zero
-+ * - not returning within 60 seconds
-+ */
-+
-+static int browser_index;
-+static void try_browser(browser_info*);
-+
-+static char *browsers[] =
-+{ "user-selection",
-+ "xdg-open",
-+ "gnome-open",
-+ "htmlview",
-+ "firefox",
-+ "mozilla",
-+ "konqueror",
-+ "epiphany",
-+ "opera",
-+ "/Applications/Safari.app/Contents/MacOS/Safari", /* better way to do this? */
-+ NULL
-+};
-+
-+static gboolean browser_timeout_func(gpointer data)
-+{ browser_info *bi = (browser_info*)data;
-+ int status;
-+
-+ waitpid(bi->pid, &status, WNOHANG);
-+
-+ /* At least mozilla returns random values under FreeBSD on success,
-+ so we can't rely on the return value exept our own 110 one. */
-+
-+ if(WIFEXITED(status))
-+ {
-+ switch(WEXITSTATUS(status))
-+ { case 110: /* browser did not execute */
-+ browser_index++;
-+ if(!browsers[browser_index]) /* all browsers from the list failed */
-+ { browser_dialog(bi->url);
-+
-+ if(bi->msg)
-+ gtk_widget_destroy(bi->msg);
-+ if(bi->url)
-+ g_free(bi->url);
-+ g_free(bi);
-+ }
-+ else /* try next browser from list */
-+ { bi->seconds = 0;
-+ try_browser(bi);
-+ }
-+ return FALSE;
-+
-+ case 0: /* browser assumed to be successful */
-+ default:
-+ if(bi->msg)
-+ gtk_widget_destroy(bi->msg);
-+ if(bi->url)
-+ g_free(bi->url);
-+ g_free(bi);
-+ return FALSE;
-+ }
-+ }
-+
-+ bi->seconds++;
-+ if(bi->seconds == 10 && bi->msg)
-+ { gtk_widget_destroy(bi->msg);
-+ bi->msg = NULL;
-+ }
-+
-+ return bi->seconds > 60 ? FALSE : TRUE;
-+}
-+#endif /* SYS_ unix-like */
-+
-+#ifdef SYS_MINGW
-+static gboolean browser_timeout_func(gpointer data)
-+{ browser_info *bi = (browser_info*)data;
-+
-+ bi->seconds++;
-+
-+ if(bi->seconds >= 10)
-+ { if(bi->msg)
-+ { gtk_widget_destroy(bi->msg);
-+ bi->msg = NULL;
-+ }
-+ if(bi->url) g_free(bi->url);
-+ g_free(bi);
-+ return FALSE;
-+ }
-+
-+ return TRUE;
-+}
-+#endif /* SYS_MINGW */
-+
-+/*
-+ * Invoke the browser
-+ */
-+
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+static void try_browser(browser_info *bi)
-+{ pid_t pid;
-+
-+ bi->pid = pid = fork();
-+
-+ if(pid == -1)
-+ { printf("fork failed\n");
-+ return;
-+ }
-+
-+ /* make the parent remember and wait() for the browser */
-+
-+ if(pid > 0)
-+ { g_timeout_add(1000, browser_timeout_func, (gpointer)bi);
-+
-+ if(browser_index)
-+ { g_free(Closure->browser);
-+ Closure->browser = g_strdup(browsers[browser_index]);
-+ }
-+ }
-+
-+ /* try calling the browser */
-+
-+ if(pid == 0)
-+ { char *argv[10];
-+ int argc = 0;
-+
-+ argv[argc++] = browser_index ? browsers[browser_index] : Closure->browser;
-+ argv[argc++] = bi->url;
-+ argv[argc++] = NULL;
-+ execvp(argv[0], argv);
-+
-+ _exit(110); /* couldn't execute */
-+ }
-+}
-+#endif /* SYS_ unix-like */
-+
-+
-+void ShowHTML(char *target)
-+{ browser_info *bi = g_malloc0(sizeof(browser_info));
-+ guint64 ignore;
-+ const char *lang;
-+ char *path = NULL;
-+ int http_url;
-+
-+ /* If no target is given, select between translations of the manual. */
-+
-+ if(!target) target = g_strdup("index.html");
-+
-+ http_url = strlen(target) > 4 && !strncmp(target, "http", 4);
-+
-+ if(!http_url && !strchr(target, '/')) /* create full path */
-+ {
-+ if(!Closure->docDir)
-+ {
-+ CreateMessage(_("Documentation not installed."), GTK_MESSAGE_ERROR);
-+ g_free(bi);
-+ return;
-+ }
-+
-+ lang = g_getenv("LANG");
-+
-+ if(lang)
-+ { if(!strncmp(lang, "ru", 2))
-+#ifdef SYS_MINGW
-+ path = g_strdup_printf("%s\\ru\\%s",Closure->docDir,target);
-+#else
-+ path = g_strdup_printf("%s/ru/%s",Closure->docDir,target);
-+#endif
-+ else if(!strncmp(lang, "de", 2))
-+#ifdef SYS_MINGW
-+ path = g_strdup_printf("%s\\de\\%s",Closure->docDir,target);
-+#else
-+ path = g_strdup_printf("%s/de/%s",Closure->docDir,target);
-+#endif
-+ }
-+
-+ if(!path)
-+ {
-+#ifdef SYS_MINGW
-+ path = g_strdup_printf("%s\\en\\%s",Closure->docDir,target);
-+#else
-+ path = g_strdup_printf("%s/en/%s",Closure->docDir,target);
-+#endif
-+ }
-+
-+#ifdef SYS_MINGW
-+ if(!LargeStat(path, &ignore))
-+ {
-+ g_free(path); /* the local dir is Windows specific */
-+ path = g_strdup_printf("%s\\local\\%s",Closure->docDir,target);
-+ }
-+#endif
-+ g_free(target);
-+ bi->url = path;
-+ }
-+ else bi->url = target;
-+
-+ if(!http_url && !LargeStat(bi->url, &ignore))
-+ {
-+ CreateMessage(_("Documentation file\n%s\nnot found.\n"), GTK_MESSAGE_ERROR, bi->url);
-+ g_free(bi);
-+ g_free(bi->url);
-+ return;
-+ }
-+
-+ /* Lock the help button and show a message for 10 seconds. */
-+
-+ TimedInsensitive(Closure->helpButton, 10000);
-+ bi->msg = CreateMessage(_("Please hang on until the browser comes up!"), GTK_MESSAGE_INFO);
-+ g_signal_connect(G_OBJECT(bi->msg), "destroy", G_CALLBACK(msg_destroy_cb), bi);
-+
-+#ifdef SYS_MINGW
-+ /* Okay, Billy wins big time here ;-) */
-+
-+ ShellExecute(NULL, "open", bi->url, NULL, NULL, SW_SHOWNORMAL);
-+ g_timeout_add(1000, browser_timeout_func, (gpointer)bi);
-+#endif
-+
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+ /* Try the first browser */
-+
-+ browser_index = 0;
-+ try_browser(bi);
-+#endif
-+}
diff -Nru dvdisaster-0.79.5/debian/patches/28-pdftex-reproducibility.patch dvdisaster-0.79.10/debian/patches/28-pdftex-reproducibility.patch
--- dvdisaster-0.79.5/debian/patches/28-pdftex-reproducibility.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/28-pdftex-reproducibility.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,29 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 5 Jan 2017 19:14:35 +1100
-Subject: Apply pdftex workarounds for build reproducibility.
-
-Description: Apply pdftex workarounds for build reproducibility.
- * Generate the same PDF IDs.
- * Suppress additional metadata for included images.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-08-15
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- documentation/user-manual/manual.tex | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/documentation/user-manual/manual.tex b/documentation/user-manual/manual.tex
-index 60fb51e..bf4364d 100644
---- a/documentation/user-manual/manual.tex
-+++ b/documentation/user-manual/manual.tex
-@@ -65,6 +65,8 @@
- \fancyfoot{}
- \fancyfoot[LE,RO]{page \thepage\ of \pageref{LastPage}}
-
-+\pdftrailerid{dvdisaster}
-+\pdfsuppressptexinfo=-1
- \begin{document}
-
- \definecolor{lightorange}{RGB}{255,224,150}
diff -Nru dvdisaster-0.79.5/debian/patches/29-fix-more-typos.patch dvdisaster-0.79.10/debian/patches/29-fix-more-typos.patch
--- dvdisaster-0.79.5/debian/patches/29-fix-more-typos.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/29-fix-more-typos.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,173 +0,0 @@
-From: Carlos Maddela
-Date: Sun, 6 Aug 2017 02:16:17 +1000
-Subject: Fix more typos in error messages and docs.
-MIME-Version: 1.0
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: 8bit
-
-Description: Fix more typos in error messages and docs.
- 'sucessful' → 'successful'
- 'improvment' → 'improvement'
-Author: Carlos Maddela
-Last-Update: 2017-08-06
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- documentation/user-manual/howtos.tex | 2 +-
- locale/cs.po | 2 +-
- locale/de.po | 2 +-
- locale/it.po | 2 +-
- locale/pt_BR.po | 2 +-
- locale/ru.po | 2 +-
- locale/sv.po | 2 +-
- preferences.c | 4 ++--
- regtest/rs01.bash | 2 +-
- scsi-layer.c | 2 +-
- smart-lec.c | 2 +-
- 11 files changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/documentation/user-manual/howtos.tex b/documentation/user-manual/howtos.tex
-index 51ff827..80fe9d3 100644
---- a/documentation/user-manual/howtos.tex
-+++ b/documentation/user-manual/howtos.tex
-@@ -1822,7 +1822,7 @@ process of creating error correction files using these options. The
- first option marked green lets dvdisaster create the error correction
- file immediately after the medium has been (completely) read.
- The second option marked green deletes the image when the error correction
--file has been sucessfully created.
-+file has been successfully created.
-
- \bigskip
-
-diff --git a/locale/cs.po b/locale/cs.po
-index 24b1e7c..497a4a9 100644
---- a/locale/cs.po
-+++ b/locale/cs.po
-@@ -1903,7 +1903,7 @@ msgid "Media ejection"
- msgstr "Vysunutí disku"
-
- #: preferences.c:2064 preferences.c:2065
--msgid "Eject medium after sucessful read"
-+msgid "Eject medium after successful read"
- msgstr "Po úspěšném načtení vysunout disk"
-
- #: preferences.c:2091
-diff --git a/locale/de.po b/locale/de.po
-index bbbfdcc..bb5baa6 100644
---- a/locale/de.po
-+++ b/locale/de.po
-@@ -1959,7 +1959,7 @@ msgid "Media ejection"
- msgstr "Datenträger auswerfen"
-
- #: preferences.c:2064 preferences.c:2065
--msgid "Eject medium after sucessful read"
-+msgid "Eject medium after successful read"
- msgstr "Datenträger nach erfolgreichem Lesen auswerfen"
-
- #: preferences.c:2091
-diff --git a/locale/it.po b/locale/it.po
-index a074339..000d5c3 100644
---- a/locale/it.po
-+++ b/locale/it.po
-@@ -1749,7 +1749,7 @@ msgid "Media ejection"
- msgstr ""
-
- #: preferences.c:2064 preferences.c:2065
--msgid "Eject medium after sucessful read"
-+msgid "Eject medium after successful read"
- msgstr ""
-
- #: preferences.c:2091
-diff --git a/locale/pt_BR.po b/locale/pt_BR.po
-index 012ce9e..4624071 100644
---- a/locale/pt_BR.po
-+++ b/locale/pt_BR.po
-@@ -1839,7 +1839,7 @@ msgid "Media ejection"
- msgstr "Ejeção da mídia"
-
- #: preferences.c:2064 preferences.c:2065
--msgid "Eject medium after sucessful read"
-+msgid "Eject medium after successful read"
- msgstr "Ejetar mídia após uma leitura completa"
-
- #: preferences.c:2091
-diff --git a/locale/ru.po b/locale/ru.po
-index 912d6fb..66fc036 100644
---- a/locale/ru.po
-+++ b/locale/ru.po
-@@ -1841,7 +1841,7 @@ msgid "Media ejection"
- msgstr "Извлечь носитель"
-
- #: preferences.c:2064 preferences.c:2065
--msgid "Eject medium after sucessful read"
-+msgid "Eject medium after successful read"
- msgstr "Извлечь носитель после успешного чтения"
-
- #: preferences.c:2091
-diff --git a/locale/sv.po b/locale/sv.po
-index 9f70808..5cd4927 100644
---- a/locale/sv.po
-+++ b/locale/sv.po
-@@ -1755,7 +1755,7 @@ msgid "Media ejection"
- msgstr ""
-
- #: preferences.c:2064 preferences.c:2065
--msgid "Eject medium after sucessful read"
-+msgid "Eject medium after successful read"
- msgstr ""
-
- #: preferences.c:2091
-diff --git a/preferences.c b/preferences.c
-index f5ef889..5a24200 100644
---- a/preferences.c
-+++ b/preferences.c
-@@ -2061,8 +2061,8 @@ void CreatePreferencesWindow(void)
- frame = gtk_frame_new(_utf("Media ejection"));
- gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0);
-
-- lwoh = CreateLabelWithOnlineHelp(_("Eject medium after sucessful read"),
-- _("Eject medium after sucessful read"));
-+ lwoh = CreateLabelWithOnlineHelp(_("Eject medium after successful read"),
-+ _("Eject medium after successful read"));
- RegisterPreferencesHelpWindow(lwoh);
-
- for(i=0; i<2; i++)
-diff --git a/regtest/rs01.bash b/regtest/rs01.bash
-index 46bfac4..45f7611 100755
---- a/regtest/rs01.bash
-+++ b/regtest/rs01.bash
-@@ -1327,7 +1327,7 @@ if try "reading medium in 3 passes; 3rd pass recovers some" read_multipass_parti
- run_regtest read_multipass_partial_success "--read-medium=3 --spinup-delay=0 -r" $TMPISO $ISODIR/no.ecc
- fi
-
--# Do a second sucessful read attempt at an incomplete image;
-+# Do a second successful read attempt at an incomplete image;
- # see whether correct results are reported when ecc data is present
- # since CRC caching is a bit complicated in this case.
-
-diff --git a/scsi-layer.c b/scsi-layer.c
-index b70a4a4..515cc93 100644
---- a/scsi-layer.c
-+++ b/scsi-layer.c
-@@ -2474,7 +2474,7 @@ int ReadSectors(DeviceHandle *dh, unsigned char *buf, gint64 s, int nsectors)
- if(Closure->readRaw && dh->rawBuffer)
- recommended_attempts = dh->rawBuffer->recommendedAttempts;
-
-- if(status) /* current try was unsucessful */
-+ if(status) /* current try was unsuccessful */
- { int last_key, last_asc, last_ascq;
-
- if(Closure->stopActions) /* user break */
-diff --git a/smart-lec.c b/smart-lec.c
-index 0355879..e33ad8f 100644
---- a/smart-lec.c
-+++ b/smart-lec.c
-@@ -1609,7 +1609,7 @@ static int smart_lec_iteration(sh_context *shc, char *message)
- shc->bestBonus = 0;
- shc->bestMalus = 100000;
- memcpy(shc->bestFrame, rb->recovered, rb->sampleSize);
-- sprintf(shc->msg, "smart_lec: no further improvment");
-+ sprintf(shc->msg, "smart_lec: no further improvement");
-
- update_pq_state(shc);
- print_pq_state(shc);
diff -Nru dvdisaster-0.79.5/debian/patches/30-hurd-kfreebsd-ftbfs.patch dvdisaster-0.79.10/debian/patches/30-hurd-kfreebsd-ftbfs.patch
--- dvdisaster-0.79.5/debian/patches/30-hurd-kfreebsd-ftbfs.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/30-hurd-kfreebsd-ftbfs.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,46 +0,0 @@
-From: Carlos Maddela
-Date: Sun, 6 Aug 2017 02:40:33 +1000
-Subject: Fix FTBFS on Hurd and kFreeBSD.
-
-Description: Fix FTBFS on Hurd and kFreeBSD.
- Make sure MMAP_FLAGS gets defined.
-Author: Carlos Maddela
-Last-Update: 2017-08-06
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- rs03-create.c | 19 +++++++++++--------
- 1 file changed, 11 insertions(+), 8 deletions(-)
-
-diff --git a/rs03-create.c b/rs03-create.c
-index b2c6033..b14e326 100644
---- a/rs03-create.c
-+++ b/rs03-create.c
-@@ -39,16 +39,19 @@
- #ifdef HAVE_MMAP
- #include
-
--#ifdef SYS_LINUX
-- #define MMAP_FLAGS (MAP_SHARED | MAP_POPULATE | MAP_NORESERVE)
--#endif
-+#if defined(SYS_LINUX)
-
--#ifdef SYS_FREEBSD
-- #define MMAP_FLAGS (MAP_SHARED | MAP_PREFAULT_READ)
--#endif
-+ #define MMAP_FLAGS (MAP_SHARED | MAP_POPULATE | MAP_NORESERVE)
-+
-+#elif defined(SYS_FREEBSD)
-+
-+ #define MMAP_FLAGS (MAP_SHARED | MAP_PREFAULT_READ)
-+
-+#else
-+
-+ /* SYS_NETBSD and others. */
-+ #define MMAP_FLAGS (MAP_SHARED)
-
--#ifdef SYS_NETBSD
-- #define MMAP_FLAGS (MAP_SHARED)
- #endif
-
- #endif
diff -Nru dvdisaster-0.79.5/debian/patches/31-improve-hurd-and-kfreebsd-support.patch dvdisaster-0.79.10/debian/patches/31-improve-hurd-and-kfreebsd-support.patch
--- dvdisaster-0.79.5/debian/patches/31-improve-hurd-and-kfreebsd-support.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/31-improve-hurd-and-kfreebsd-support.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,308 +0,0 @@
-From: Carlos Maddela
-Date: Sun, 6 Aug 2017 10:37:18 +1000
-Subject: Add better support for HURD and kFreeBSD systems.
-
-Description: Add better support for HURD and kFreeBSD systems.
- Hurd still compiles without SCSI layer, however.
-Author: Carlos Maddela
-Last-Update: 2017-08-06
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- cacheprobe.c | 16 +++++++++-------
- closure.c | 6 ++++--
- scripts/bash-based-configure | 18 ++++++++++++++++++
- scsi-freebsd.c | 4 ++--
- scsi-layer.c | 10 ++++++----
- scsi-layer.h | 17 +++++++++--------
- scsi-unknown.c | 4 ++--
- show-html.c | 15 ++++++++++-----
- 8 files changed, 60 insertions(+), 30 deletions(-)
-
-diff --git a/cacheprobe.c b/cacheprobe.c
-index 60c55f9..f30f5d3 100644
---- a/cacheprobe.c
-+++ b/cacheprobe.c
-@@ -22,7 +22,8 @@
-
- #include "dvdisaster.h"
-
--#ifdef SYS_LINUX
-+#if defined(SYS_LINUX)
-+
- int ProbeCacheLineSize()
- { int cl_size = 0;
-
-@@ -36,9 +37,9 @@ int ProbeCacheLineSize()
-
- return cl_size;
- }
--#endif
-
--#ifdef SYS_FREEBSD
-+#elif defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
-+
- #include
-
- int ProbeCacheLineSize()
-@@ -52,9 +53,9 @@ int ProbeCacheLineSize()
-
- return cl_size;
- }
--#endif
-
--#ifdef SYS_NETBSD
-+#elif defined(SYS_NETBSD)
-+
- #include
-
- int ProbeCacheLineSize()
-@@ -68,13 +69,14 @@ int ProbeCacheLineSize()
-
- return cl_size;
- }
--#endif
-
--#ifdef SYS_UNKNOWN
-+#else /* SYS_UNKNOWN and others. */
-+
- int ProbeCacheLineSize()
- {
- return 64;
- }
-+
- #endif
-
-
-diff --git a/closure.c b/closure.c
-index f408f7a..f4b1893 100644
---- a/closure.c
-+++ b/closure.c
-@@ -50,7 +50,8 @@ static void get_base_dirs()
- /*** Otherwise try the installation directory.
- On Unices this is a hardcoded directory. */
-
--#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD) || defined(SYS_UNKNOWN)
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
-+ defined(SYS_NETBSD) || defined(SYS_HURD) || defined(SYS_UNKNOWN)
- if(DirStat(BINDIR))
- Closure->binDir = g_strdup(BINDIR);
-
-@@ -425,7 +426,8 @@ void InitClosure()
-
- /* Generate a more comprehensive version string */
-
--#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
-+ defined(SYS_NETBSD) || defined(SYS_HURD)
- #ifdef HAVE_64BIT
- #define BITNESS_STRING " 64bit"
- #else
-diff --git a/scripts/bash-based-configure b/scripts/bash-based-configure
-index d62f5d7..9abcf96 100644
---- a/scripts/bash-based-configure
-+++ b/scripts/bash-based-configure
-@@ -136,6 +136,15 @@ case "$cfg_uname" in
- }
- ;;
-
-+ GNU/kFreeBSD*) cfg_system=kfreebsd
-+ CFG_SYS_OPTIONS="-DSYS_KFREEBSD"
-+ CFG_SYS_NAME="-DSYS_NAME=\\\"GNU/kFreeBSD\\\""
-+ CFG_EXE_SUFFIX=""
-+ function add_linker_flags()
-+ { lflags_return="-L$1 -Wl,-rpath,$1 $2"
-+ }
-+ ;;
-+
- NetBSD*) cfg_system=netbsd
- CFG_SYS_OPTIONS="-DSYS_NETBSD"
- CFG_SYS_NAME="-DSYS_NAME=\\\"NetBSD\\\""
-@@ -146,6 +155,15 @@ case "$cfg_uname" in
- }
- ;;
-
-+ GNU*) cfg_system=hurd
-+ CFG_SYS_OPTIONS="-DSYS_HURD"
-+ CFG_SYS_NAME="-DSYS_NAME=\\\"GNU/Hurd\\\""
-+ CFG_EXE_SUFFIX=""
-+ function add_linker_flags()
-+ { lflags_return="-L$1 -Wl,-rpath,$1 $2"
-+ }
-+ ;;
-+
- *) cfg_system=unknown-system
- CFG_SYS_OPTIONS="-DSYS_UNKNOWN"
- CFG_SYS_NAME="-DSYS_NAME=\\\"Unknown\\\""
-diff --git a/scsi-freebsd.c b/scsi-freebsd.c
-index 78d0be4..793f206 100644
---- a/scsi-freebsd.c
-+++ b/scsi-freebsd.c
-@@ -25,7 +25,7 @@
- #include "scsi-layer.h"
- #include "udf.h"
-
--#ifdef SYS_FREEBSD
-+#if defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
-
- /* SCSI wrappers for FreeBSD are still work in progress. */
-
-@@ -241,4 +241,4 @@ int SendPacket(DeviceHandle *dh, unsigned char *cmd, int cdb_size, unsigned char
- return -1;
- }
-
--#endif /* SYS_FREEBSD */
-+#endif /* defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) */
-diff --git a/scsi-layer.c b/scsi-layer.c
-index 515cc93..609cb73 100644
---- a/scsi-layer.c
-+++ b/scsi-layer.c
-@@ -2005,12 +2005,13 @@ static gint64 query_size(Image *image)
- */
-
- gint64 CurrentMediumSize(int get_blank_size)
--{ Image *image;
-+{
-+#if defined(SYS_UNKNOWN) || defined(SYS_HURD)
-+ return 0;
-+#else
-+ Image *image;
- gint64 size;
-
--#ifdef SYS_UNKNOWN
-- return 0;
--#endif
-
- image = OpenImageFromDevice(Closure->device);
- if(!image) return 0;
-@@ -2051,6 +2052,7 @@ gint64 CurrentMediumSize(int get_blank_size)
- CloseImage(image);
-
- return size;
-+#endif
- }
-
- /***
-diff --git a/scsi-layer.h b/scsi-layer.h
-index cc7d9fc..0706a22 100644
---- a/scsi-layer.h
-+++ b/scsi-layer.h
-@@ -28,7 +28,7 @@
- #include
- #endif
-
--#ifdef SYS_FREEBSD
-+#if defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
- #include
- #endif
-
-@@ -49,19 +49,21 @@
- * Linux already has one
- */
-
--#ifdef SYS_LINUX
-+#if defined(SYS_LINUX)
-+
- #define MAX_CDB_SIZE CDROM_PACKET_SIZE
-
- /* Now globally defined for all OSes here */
- //typedef struct request_sense Sense;
--#endif
-
--#ifdef SYS_FREEBSD
-+#elif defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
-+
- #define MAX_CDB_SIZE SCSI_MAX_CDBLEN
--#endif
-
--#if defined(SYS_UNKNOWN) || defined(SYS_NETBSD)
-+#else /* SYS_UNKNOWN and others. */
-+
- #define MAX_CDB_SIZE 16 /* longest possible SCSI command */
-+
- #endif
-
- /*
-@@ -101,8 +103,7 @@ typedef struct _DeviceHandle
- */
- #if defined(SYS_LINUX) || defined(SYS_NETBSD)
- int fd; /* device file descriptor */
--#endif
--#ifdef SYS_FREEBSD
-+#elif defined(SYS_FREEBSD) || defined(SYS_KFREEBSD)
- struct cam_device *camdev; /* camlib device handle */
- union ccb *ccb;
- #endif
-diff --git a/scsi-unknown.c b/scsi-unknown.c
-index e9183f6..ef54552 100644
---- a/scsi-unknown.c
-+++ b/scsi-unknown.c
-@@ -25,7 +25,7 @@
- #include "scsi-layer.h"
- #include "udf.h"
-
--#ifdef SYS_UNKNOWN
-+#if defined(SYS_UNKNOWN) || defined(SYS_HURD)
-
- /* Dummy routines so that we can compile on unknown architectures
- for which we don't have SCSI support yet. */
-@@ -51,4 +51,4 @@ int SendPacket(DeviceHandle *dh, unsigned char *cmd, int cdb_size, unsigned char
- return -1;
- }
-
--#endif /* SYS_UNKNOWN */
-+#endif /* defined(SYS_UNKNOWN) || defined(SYS_HURD) */
-diff --git a/show-html.c b/show-html.c
-index 608e8ec..20715f4 100644
---- a/show-html.c
-+++ b/show-html.c
-@@ -21,7 +21,8 @@
-
- #include "dvdisaster.h"
-
--#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
-+ defined(SYS_NETBSD) || defined(SYS_HURD)
- #include
- #endif
-
-@@ -34,7 +35,8 @@
- *** Ask user to specify his browser
- ***/
-
--#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
-+ defined(SYS_NETBSD) || defined(SYS_HURD)
-
- #define SEARCH_BUTTON 1
-
-@@ -173,7 +175,8 @@ static void msg_destroy_cb(GtkWidget *widget, gpointer data)
- bi->msg = NULL;
- }
-
--#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
-+ defined(SYS_NETBSD) || defined(SYS_HURD)
-
- /*
- * The following list of browsers and html wrappers
-@@ -273,7 +276,8 @@ static gboolean browser_timeout_func(gpointer data)
- * Invoke the browser
- */
-
--#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
-+ defined(SYS_NETBSD) || defined(SYS_HURD)
- static void try_browser(browser_info *bi)
- { pid_t pid;
-
-@@ -393,7 +397,8 @@ void ShowHTML(char *target)
- g_timeout_add(1000, browser_timeout_func, (gpointer)bi);
- #endif
-
--#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_NETBSD)
-+#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
-+ defined(SYS_NETBSD) || defined(SYS_HURD)
- /* Try the first browser */
-
- browser_index = 0;
diff -Nru dvdisaster-0.79.5/debian/patches/32-display-compilation-commands.patch dvdisaster-0.79.10/debian/patches/32-display-compilation-commands.patch
--- dvdisaster-0.79.5/debian/patches/32-display-compilation-commands.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/32-display-compilation-commands.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,192 +0,0 @@
-From: Carlos Maddela
-Date: Wed, 9 Aug 2017 20:49:31 +1000
-Subject: Do not suppress the display of compilation commands
-
-Description: Do not suppress the display of compilation commands,
- so that build logs may be analysed by blhc.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2017-08-9
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- GNUmakefile.template | 93 +++++++++++++++++++++++++---------------------------
- 1 file changed, 45 insertions(+), 48 deletions(-)
-
-diff --git a/GNUmakefile.template b/GNUmakefile.template
-index d80932d..ac1f597 100644
---- a/GNUmakefile.template
-+++ b/GNUmakefile.template
-@@ -71,41 +71,41 @@ OFILES = $(CFG_OFILES)
-
- ${BUILDTMP}/%.o : %.c
- @echo "Compiling:" $?
-- @$(CC) $(COPTS) -c $? -o $@
-+ $(CC) $(COPTS) -c $? -o $@
-
- all: time-stamp dvdisaster
-
- # Building the dvdisaster binary
-
- time-stamp:
-- @$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/build.h
-+ $(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/build.h
-
- dvdisaster: inlined-icons.h $(OFILES)
- @echo "Linking : dvdisaster"
-- @$(CC) $(LOPTS) $(OFILES) $(LIBS) -o dvdisaster
-- @if test -e locale/de/LC_MESSAGES/dvdisaster.mo \
-+ $(CC) $(LOPTS) $(OFILES) $(LIBS) -o dvdisaster
-+ if test -e locale/de/LC_MESSAGES/dvdisaster.mo \
- || echo $(WITH_OPTIONS) | grep "NLS_NO" >/dev/null; \
- then echo "not touching locale"; \
- else $(MAKE) --no-print-directory -C locale; \
- fi
-
- inlined-icons.h: icons/read.png icons/create.png icons/scan.png icons/fix.png icons/verify.png
-- @gdk-pixbuf-csource --raw --name=dvdisaster_read icons/read.png >inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_create icons/create.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_scan icons/scan.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_fix icons/fix.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_verify icons/verify.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_open_ecc icons/open-ecc.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_open_img icons/open-img.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_cd icons/cd.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_help icons/gtk-help.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_index icons/gtk-index.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_preferences icons/gtk-preferences.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_quit icons/gtk-quit.png >>inlined-icons.h
-- @gdk-pixbuf-csource --raw --name=dvdisaster_gtk_stop icons/gtk-stop.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_read icons/read.png >inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_create icons/create.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_scan icons/scan.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_fix icons/fix.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_verify icons/verify.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_open_ecc icons/open-ecc.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_open_img icons/open-img.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_cd icons/cd.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_gtk_help icons/gtk-help.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_gtk_index icons/gtk-index.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_gtk_preferences icons/gtk-preferences.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_gtk_quit icons/gtk-quit.png >>inlined-icons.h
-+ gdk-pixbuf-csource --raw --name=dvdisaster_gtk_stop icons/gtk-stop.png >>inlined-icons.h
-
- $(BUILDTMP)/help-dialogs.o: help-dialogs.c simple-md5sum
-- @if test -e fingerprints.md5; \
-+ if test -e fingerprints.md5; \
- then if test -e help-dialogs.h; then rm help-dialogs.h; fi; \
- mv inlined-icons.h inlined-icons.saved; \
- mv build.h build.saved; \
-@@ -121,35 +121,35 @@ $(BUILDTMP)/help-dialogs.o: help-dialogs.c simple-md5sum
- else echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \
- fi
- @echo "Compiling:" help-dialogs.c
-- @$(CC) $(COPTS) -c help-dialogs.c -o $(BUILDTMP)/help-dialogs.o
-+ $(CC) $(COPTS) -c help-dialogs.c -o $(BUILDTMP)/help-dialogs.o
-
- $(BUILDTMP)/rs-encoder-sse2.o: rs-encoder-sse2.c
- @echo "Compiling:" rs-encoder-sse2.c
-- @$(CC) $(SSE2_OPTIONS) $(COPTS) -c rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o
-+ $(CC) $(SSE2_OPTIONS) $(COPTS) -c rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o
-
- $(BUILDTMP)/rs-encoder-altivec.o: rs-encoder-altivec.c
- @echo "Compiling:" rs-encoder-altivec.c
-- @$(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c rs-encoder-altivec.c -o $(BUILDTMP)/rs-encoder-altivec.o
-+ $(CC) $(ALTIVEC_OPTIONS) $(COPTS) -c rs-encoder-altivec.c -o $(BUILDTMP)/rs-encoder-altivec.o
-
- locale:
-- @$(MAKE) --no-print-directory -C locale
-+ $(MAKE) --no-print-directory -C locale
-
- untranslated:
-- @$(MAKE) --no-print-directory -C locale check-untranslated
-+ $(MAKE) --no-print-directory -C locale check-untranslated
-
- simple-md5sum: md5.c
-- @$(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
-+ $(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
-
- version.tex:
- @echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
-
- manual: version.tex
- @echo "Producing user manual... "
-- @$(MAKE) --no-print-directory -C documentation/user-manual manual.pdf
-+ $(MAKE) --no-print-directory -C documentation/user-manual manual.pdf
-
- manualclean:
- @echo "Removing temporary user manual files... "
-- @$(MAKE) --no-print-directory -C documentation/user-manual clean
-+ $(MAKE) --no-print-directory -C documentation/user-manual clean
-
-
- # Some usage info
-@@ -259,13 +259,13 @@ uninstall:
-
- archclean: distclean
- @echo "Removing rebuildable documentation parts"
-- @$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs archclean
-- @$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual archclean
-+ $(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs archclean
-+ $(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual archclean
-
- distclean: clean
- @echo "Removing configuration files"
-- @rm -f configure.log Makefile.config GNUmakefile locale/Makefile
-- @for i in locale/?? locale/??_??; do rm -rf $$i; done
-+ rm -f configure.log Makefile.config GNUmakefile locale/Makefile
-+ for i in locale/?? locale/??_??; do rm -rf $$i; done
- @echo "all:" >>GNUmakefile
- @echo -e "\t@echo" >>GNUmakefile
- @echo -e "\t@echo \"Please create a Makefile by entering \\\"bash configure\\\" first\"" >>GNUmakefile
-@@ -277,14 +277,14 @@ distclean: clean
-
- clean:
- @echo "Removing rebuildable files"
-- @rm -rf *.o $(BUILDTMP)/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core
-- @rm -f inlined-icons.h help-dialogs.h
-- @find . -name \*\~ -print | xargs rm -f;
-- @find . -name \*.mo -print | xargs rm -f;
-- @find . -name \#\*\# -print | xargs rm -f;
-- @rm -f documentation/config/version.tex
-- @if test -e $(PKGNAME); then rm -rf $(PKGNAME); fi
-- @if test -e ~/.dvdisaster-original-author; then \
-+ rm -rf *.o $(BUILDTMP)/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core
-+ rm -f inlined-icons.h help-dialogs.h
-+ find . -name \*\~ -print | xargs rm -f;
-+ find . -name \*.mo -print | xargs rm -f;
-+ find . -name \#\*\# -print | xargs rm -f;
-+ rm -f documentation/config/version.tex
-+ if test -e $(PKGNAME); then rm -rf $(PKGNAME); fi
-+ if test -e ~/.dvdisaster-original-author; then \
- mv build.h build.saved ;\
- if ! test -x simple-md5sum || ! ./simple-md5sum >/dev/null 2>&1; then \
- rm -f simple-md5sum; \
-@@ -294,20 +294,17 @@ clean:
- ./simple-md5sum -b *.h *.c >fingerprints.md5 ;\
- mv build.saved build.h; \
- fi
-- @rm -f simple-md5sum
-- @$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs clean;
-- @$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean;
-+ rm -f simple-md5sum
-+ $(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs clean;
-+ $(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean;
-
- BUILD=`grep BUILD $(SRCDIR)/build.h | cut -d ' ' -f 3`
- arch: archclean time-stamp
-- @cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME)
-+ cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME)
-
- INSTALL: documentation/install.template
-- @sed "s/@@PKGNAME/$(PKGNAME)/" INSTALL
-+ sed "s/@@PKGNAME/$(PKGNAME)/" INSTALL
-
- srcdist: INSTALL distclean manual manualclean
-- @cd .. ; tar -c -j -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME)
-- @cd .. ; gpg --homedir .gnupg --default-key 758BCC23 --detach-sign --output $(TAR_PREFIX)/$(PKGNAME).tar.bz2.gpg --armor $(TAR_PREFIX)/$(PKGNAME).tar.bz2
--
--
--
-+ cd .. ; tar -c -j -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME)
-+ cd .. ; gpg --homedir .gnupg --default-key 758BCC23 --detach-sign --output $(TAR_PREFIX)/$(PKGNAME).tar.bz2.gpg --armor $(TAR_PREFIX)/$(PKGNAME).tar.bz2
diff -Nru dvdisaster-0.79.5/debian/patches/33-honour-LDFLAGS.patch dvdisaster-0.79.10/debian/patches/33-honour-LDFLAGS.patch
--- dvdisaster-0.79.5/debian/patches/33-honour-LDFLAGS.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/33-honour-LDFLAGS.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,28 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 21 Dec 2017 02:44:53 +1100
-Subject: Honour LDFLAGS set by dpkg-buildflags in building all binaries.
-
-Description: Honour LDFLAGS set by dpkg-buildflags in building all binaries.
- Unpackaged simple-md5sum utility must do so as well, to keep blhc happy.
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2017-12-21
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- GNUmakefile.template | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/GNUmakefile.template b/GNUmakefile.template
-index ac1f597..4509c48 100644
---- a/GNUmakefile.template
-+++ b/GNUmakefile.template
-@@ -138,7 +138,7 @@ untranslated:
- $(MAKE) --no-print-directory -C locale check-untranslated
-
- simple-md5sum: md5.c
-- $(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
-+ $(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(LDFLAGS) $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
-
- version.tex:
- @echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
diff -Nru dvdisaster-0.79.5/debian/patches/34-gcc8-format-security.patch dvdisaster-0.79.10/debian/patches/34-gcc8-format-security.patch
--- dvdisaster-0.79.5/debian/patches/34-gcc8-format-security.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/34-gcc8-format-security.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,27 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 31 Jan 2019 05:10:21 +1100
-Subject: Fix format security warning in GCC-8.
-
-Description: Fix format security warning in GCC-8.
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2019-01-31
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- udf.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/udf.c b/udf.c
-index ef02c6d..01a47a3 100644
---- a/udf.c
-+++ b/udf.c
-@@ -794,7 +794,7 @@ void FreeIsoHeader(IsoHeader *ih)
-
- void AddFile(IsoHeader *ih, char *name, guint64 size)
- { static int n;
-- char iso[20], joliet[strlen(name)+3];
-+ char iso[22], joliet[strlen(name)+3];
-
- n++;
- sprintf(iso,"RAN_%04d.DAT;1", n);
diff -Nru dvdisaster-0.79.5/debian/patches/35-archived-homepage.patch dvdisaster-0.79.10/debian/patches/35-archived-homepage.patch
--- dvdisaster-0.79.5/debian/patches/35-archived-homepage.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/35-archived-homepage.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,108 +0,0 @@
-From: Carlos Maddela
-Date: Thu, 31 Jan 2019 05:31:03 +1100
-Subject: Change homepage to one archived at web.archive.org.
-
-Description: Change homepage to one archived at web.archive.org.
- http://dvdisaster.net has been unavailable for a while now.
- Not certain if this is permanent though, as the domain name still
- exists for mail.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2019-01-31
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- documentation/codec-specs/rs01.tex | 2 +-
- documentation/codec-specs/rs02.tex | 2 +-
- documentation/upstream-site/de/impressum.html | 2 +-
- documentation/upstream-site/en/imprint.html | 2 +-
- documentation/user-manual/background.tex | 2 +-
- documentation/user-manual/download.tex | 4 ++--
- 6 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/documentation/codec-specs/rs01.tex b/documentation/codec-specs/rs01.tex
-index a8c0d90..ca7f71f 100644
---- a/documentation/codec-specs/rs01.tex
-+++ b/documentation/codec-specs/rs01.tex
-@@ -44,7 +44,7 @@ correction files must be protected with an image level
- error correction layer (by using RS01,RS02 or RS03 on the medium),
- since only image level error correction avoids meta
- data sectors to become a single point of failure. See the
--discussion at \url{http://dvdisaster.net/en/qa32.html} for
-+discussion at \url{https://web.archive.org/web/20180428070843/http://dvdisaster.net/en/qa32.html} for
- more information on the advantages of image level data protection
- over file level approaches.
-
-diff --git a/documentation/codec-specs/rs02.tex b/documentation/codec-specs/rs02.tex
-index c026772..073bf28 100644
---- a/documentation/codec-specs/rs02.tex
-+++ b/documentation/codec-specs/rs02.tex
-@@ -74,7 +74,7 @@ the parity data portion of the image might not be written to the medium.
- Most current writing programs do however measure the .iso image by examining
- its file size, and will transfer the parity data correctly. To be sure you
- should follow the steps described under ``Testing image compatibility''
--at the dvdisaster site (\url{http://dvdisaster.net/en/howtos92.html}) once
-+at the dvdisaster site (\url{https://web.archive.org/web/20180428070843/http://dvdisaster.net/en/howtos92.html}) once
- before using each version of your optical media authoring software.
-
- Like the other dvdisaster codecs, RS02 is based on a RS(255,k) Reed-Solomon code
-diff --git a/documentation/upstream-site/de/impressum.html b/documentation/upstream-site/de/impressum.html
-index d291df1..cb459bb 100644
---- a/documentation/upstream-site/de/impressum.html
-+++ b/documentation/upstream-site/de/impressum.html
-@@ -63,7 +63,7 @@ Carsten Gnörlich (Anschrift wie oben).
- Das Impressum gilt für die Internetpräsenz unter den Domänen
- dvdisaster.com,
- dvdisaster.de,
--dvdisaster.net,
-+dvdisaster.net,
- dvdisaster.org.
-
-
-diff --git a/documentation/upstream-site/en/imprint.html b/documentation/upstream-site/en/imprint.html
-index b2d3e40..4db75f4 100644
---- a/documentation/upstream-site/en/imprint.html
-+++ b/documentation/upstream-site/en/imprint.html
-@@ -63,7 +63,7 @@ Carsten Gnörlich (see above for address).
- This notice covers the web sites under the domains
- dvdisaster.com,
- dvdisaster.de,
--dvdisaster.net,
-+dvdisaster.net,
- dvdisaster.org.
-
-
-diff --git a/documentation/user-manual/background.tex b/documentation/user-manual/background.tex
-index ba602ef..9aba84f 100644
---- a/documentation/user-manual/background.tex
-+++ b/documentation/user-manual/background.tex
-@@ -272,7 +272,7 @@ media with augmented images may not play correctly on all units \\
- \end{tabular}
-
- \paragraph{Further reading.} The specification for the dvdisaster codecs
--has been specified in a separate document called \href{http://dvdisaster.net/downloads/codecs.pdf}{codecs.pdf}.
-+has been specified in a separate document called \href{https://web.archive.org/web/20180428070843/http://dvdisaster.net/downloads/codecs.pdf}{codecs.pdf}.
- Good knowledge in coding theory and programming is required.
-
- \subsection{The linear reading strategy}
-diff --git a/documentation/user-manual/download.tex b/documentation/user-manual/download.tex
-index 79df7be..a91a44a 100644
---- a/documentation/user-manual/download.tex
-+++ b/documentation/user-manual/download.tex
-@@ -15,7 +15,7 @@ the \href{http://www.gnu.org/licenses/gpl-3.0.txt}{GNU General Public License v3
-
- \bigskip
-
--The dvdisaster developer site (\url{http://dvdisaster.net}) contains
-+The dvdisaster developer site (\url{https://web.archive.org/web/20180428070843/http://dvdisaster.net}) contains
- the latest source code releases for the FreeBSD, GNU/Linux and NetBSD
- operating systems. These are mostly aimed at maintainers of binary packages for
- the beforementioned platforms. As an end user you might find it more convenient
-@@ -133,6 +133,6 @@ We cannot accept them for various reasons.
- \smallskip
-
- dvdisaster releases are always published with cryptographic signatures
--and md5 checksums. See the \href{http://dvdisaster.net}{download site} for examples.
-+and md5 checksums. See the \href{https://web.archive.org/web/20180428070843/http://dvdisaster.net}{download site} for examples.
- Be very cautious if signatures and checksums are missing, invalid or not
- matching those published at the sites mentioned above.
diff -Nru dvdisaster-0.79.5/debian/patches/36-fix-parallelism.patch dvdisaster-0.79.10/debian/patches/36-fix-parallelism.patch
--- dvdisaster-0.79.5/debian/patches/36-fix-parallelism.patch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/36-fix-parallelism.patch 1970-01-01 00:00:00.000000000 +0000
@@ -1,54 +0,0 @@
-From: Carlos Maddela
-Date: Fri, 1 Feb 2019 22:28:18 +1100
-Subject: Fix parallel build of locale strings.
-
-Description: Fix parallel build of locale strings.
-Author: Carlos Maddela
-Forwarded: no
-Last-Update: 2019-02-01
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- GNUmakefile.template | 1 +
- locale/create-makefile | 10 +++++++---
- 2 files changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/GNUmakefile.template b/GNUmakefile.template
-index 4509c48..3aae04e 100644
---- a/GNUmakefile.template
-+++ b/GNUmakefile.template
-@@ -297,6 +297,7 @@ clean:
- rm -f simple-md5sum
- $(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs clean;
- $(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean;
-+ $(MAKE) --no-print-directory -C $(SRCDIR)/locale clean;
-
- BUILD=`grep BUILD $(SRCDIR)/build.h | cut -d ' ' -f 3`
- arch: archclean time-stamp
-diff --git a/locale/create-makefile b/locale/create-makefile
-index 5ed31ed..83a4abf 100644
---- a/locale/create-makefile
-+++ b/locale/create-makefile
-@@ -30,15 +30,19 @@ locale: \$(LOCALEFILES)
-
- # Create the locale files.
-
-+messages.pot: \$(CFILES)
-+ @cd ..; xgettext --no-wrap -cTRANSLATORS: -o locale/messages.pot -k_ -k_utf \$(CFILES_NP)
-+
-+clean:
-+ rm -f messages.pot
-+
- EOF
-
- for i in $prefixes; do
- cat >> Makefile <
-Date: Sat, 2 Feb 2019 13:56:04 +1100
-Subject: Suggest to install dvdisaster-doc in error message
-
-Description: Suggest to install dvdisaster-doc in error message
- if the PDF manual cannot be found.
-Author: Carlos Maddela
-Forwarded: not-needed
-Last-Update: 2019-02-02
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
----
- locale/cs.po | 2 ++
- locale/de.po | 2 ++
- locale/it.po | 2 ++
- locale/pt_BR.po | 2 ++
- locale/ru.po | 2 ++
- locale/sv.po | 2 ++
- show-manual.c | 3 ++-
- 7 files changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/locale/cs.po b/locale/cs.po
-index 497a4a9..4a12125 100644
---- a/locale/cs.po
-+++ b/locale/cs.po
-@@ -6046,10 +6046,12 @@ msgid ""
- "Documentation file\n"
- "%s\n"
- "not found.\n"
-+"Please install the dvdisaster-doc package.\n"
- msgstr ""
- "Soubor dokumentace\n"
- "%s\n"
- "nebyl nalezen.\n"
-+"Nainstalujte prosím balíček dvdisaster-doc.\n"
-
- #: show-manual.c:308
- msgid "Please hang on until the viewer comes up!"
-diff --git a/locale/de.po b/locale/de.po
-index bb5baa6..b2f2974 100644
---- a/locale/de.po
-+++ b/locale/de.po
-@@ -6185,10 +6185,12 @@ msgid ""
- "Documentation file\n"
- "%s\n"
- "not found.\n"
-+"Please install the dvdisaster-doc package.\n"
- msgstr ""
- "Dokument-Datei\n"
- "%s\n"
- "nicht gefunden.\n"
-+"Bitte installieren Sie das dvdisaster-doc-Paket.\n"
-
- #: show-manual.c:308
- msgid "Please hang on until the viewer comes up!"
-diff --git a/locale/it.po b/locale/it.po
-index 000d5c3..fb6dced 100644
---- a/locale/it.po
-+++ b/locale/it.po
-@@ -5598,10 +5598,12 @@ msgid ""
- "Documentation file\n"
- "%s\n"
- "not found.\n"
-+"Please install the dvdisaster-doc package.\n"
- msgstr ""
- "File di documentazione\n"
- "%s\n"
- "non trovati.\n"
-+"Si prega di installare il pacchetto dvdisaster-doc.\n"
-
- #: show-manual.c:308
- msgid "Please hang on until the viewer comes up!"
-diff --git a/locale/pt_BR.po b/locale/pt_BR.po
-index 4624071..3f1bf90 100644
---- a/locale/pt_BR.po
-+++ b/locale/pt_BR.po
-@@ -5919,10 +5919,12 @@ msgid ""
- "Documentation file\n"
- "%s\n"
- "not found.\n"
-+"Please install the dvdisaster-doc package.\n"
- msgstr ""
- "Arquivo de documentação\n"
- "%s\n"
- "não encontrado.\n"
-+"Por favor, instale o pacote dvdisaster-doc.\n"
-
- #: show-manual.c:308
- msgid "Please hang on until the viewer comes up!"
-diff --git a/locale/ru.po b/locale/ru.po
-index 66fc036..2b9d309 100644
---- a/locale/ru.po
-+++ b/locale/ru.po
-@@ -5927,10 +5927,12 @@ msgid ""
- "Documentation file\n"
- "%s\n"
- "not found.\n"
-+"Please install the dvdisaster-doc package.\n"
- msgstr ""
- "Файл документации\n"
- "%s\n"
- "не найден.\n"
-+"Пожалуйста, установите пакет dvdisaster-doc.\n"
-
- #: show-manual.c:308
- msgid "Please hang on until the viewer comes up!"
-diff --git a/locale/sv.po b/locale/sv.po
-index 5cd4927..4ef73c1 100644
---- a/locale/sv.po
-+++ b/locale/sv.po
-@@ -5617,10 +5617,12 @@ msgid ""
- "Documentation file\n"
- "%s\n"
- "not found.\n"
-+"Please install the dvdisaster-doc package.\n"
- msgstr ""
- "Dokumentationsfilen\n"
- "%s\n"
- "hittades inte.\n"
-+"Installera dvdisaster-doc-paketet.\n"
-
- #: show-manual.c:308
- msgid "Please hang on until the viewer comes up!"
-diff --git a/show-manual.c b/show-manual.c
-index ecb0922..452354a 100644
---- a/show-manual.c
-+++ b/show-manual.c
-@@ -296,7 +296,8 @@ void ShowPDF(char *target)
-
- if(!LargeStat(bi->path, &ignore))
- {
-- CreateMessage(_("Documentation file\n%s\nnot found.\n"), GTK_MESSAGE_ERROR, bi->path);
-+ CreateMessage(_("Documentation file\n%s\nnot found.\n"
-+ "Please install the dvdisaster-doc package.\n"), GTK_MESSAGE_ERROR, bi->path);
- g_free(bi->path);
- g_free(bi);
- return;
diff -Nru dvdisaster-0.79.5/debian/patches/series dvdisaster-0.79.10/debian/patches/series
--- dvdisaster-0.79.5/debian/patches/series 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/patches/series 1970-01-01 00:00:00.000000000 +0000
@@ -1,32 +0,0 @@
-02-encryption.patch
-03-dvdrom.patch
-05-help-dialog.patch
-08-fix-gnu-make-detection.patch
-10-use-non-size-specific-icon-and-add-keywords-to-desktop-file.patch
-11-no-cruft.patch
-12-fix-spelling-of-up-to.patch
-13-fix-missing-language-field-in-po-files.patch
-14-make-builds-reproducible.patch
-15-show-new-pkg-tracker.patch
-16-remove-auto-build-of-doco-from-install-rule.patch
-17-fix-all-but-deprecated-api-warnings.patch
-18-update-copyright-in-about-dialog.patch
-19-show-text-files-with-abs-path.patch
-20-display-changelog-credits-and-todo.patch
-22-fix-hurd-i386-ftbfs.patch
-23-add-bdrom-support.patch
-24-show-gpl3-license.patch
-25-fix-man-pages.patch
-26-fix-display-of-manual.pdf.patch
-27-allow-opening-in-browser-again.patch
-28-pdftex-reproducibility.patch
-29-fix-more-typos.patch
-30-hurd-kfreebsd-ftbfs.patch
-31-improve-hurd-and-kfreebsd-support.patch
-32-display-compilation-commands.patch
-33-honour-LDFLAGS.patch
-34-gcc8-format-security.patch
-35-archived-homepage.patch
-36-fix-parallelism.patch
-37-suggest-dvdisaster-doc.patch
-0032-Fix-for-compilation-error-under-gcc-10.patch
diff -Nru dvdisaster-0.79.5/debian/postinst dvdisaster-0.79.10/debian/postinst
--- dvdisaster-0.79.5/debian/postinst 1970-01-01 00:00:00.000000000 +0000
+++ dvdisaster-0.79.10/debian/postinst 2022-12-18 19:33:37.000000000 +0000
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+cd /usr/share/doc/dvdisaster-doc/
+gzip -d manual.pdf.gz
+
+exit 0
diff -Nru dvdisaster-0.79.5/debian/prerm dvdisaster-0.79.10/debian/prerm
--- dvdisaster-0.79.5/debian/prerm 1970-01-01 00:00:00.000000000 +0000
+++ dvdisaster-0.79.10/debian/prerm 2022-12-18 19:31:10.000000000 +0000
@@ -0,0 +1,4 @@
+#!/bin/bash
+rm /usr/share/doc/dvdisaster-doc/manual.pdf
+
+exit 0
diff -Nru dvdisaster-0.79.5/debian/rules dvdisaster-0.79.10/debian/rules
--- dvdisaster-0.79.5/debian/rules 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/rules 2018-01-27 14:34:08.000000000 +0000
@@ -1,7 +1,5 @@
#!/usr/bin/make -f
-export DH_VERBOSE = 1
-
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
@@ -15,7 +13,6 @@
MUTABLE_FILES := build.h $(wildcard locale/*.po) \
documentation/config/version.tex \
documentation/user-manual/manual.pdf
-BACKUP_TAR_FILE := debian/backup.tar
BUILDROOT := $(CURDIR)/debian/tmp
ICONS := $(wildcard contrib/dvdisaster*.png)
@@ -24,32 +21,29 @@
%:
dh $@
-override_dh_update_autotools_config:
- dh_update_autotools_config
- test -f $(BACKUP_TAR_FILE) || \
- tar cpf $(BACKUP_TAR_FILE) $(MUTABLE_FILES)
-
-override_dh_clean:
- dh_clean
- test ! -f $(BACKUP_TAR_FILE) || \
- tar xpf $(BACKUP_TAR_FILE) && rm -f $(BACKUP_TAR_FILE)
-
override_dh_auto_configure:
+ for f in $(MUTABLE_FILES); do \
+ cp -an $$f $$f.orig; \
+ done
./configure \
--prefix=/usr \
--mandir=share/man \
--localedir=share/locale \
--docdir=share/doc \
- --docsubdir=dvdisaster \
+ --docsubdir=dvdisaster-doc \
--with-embedded-src-path=no
+override_dh_clean:
+ dh_clean -X.orig
+ for f in $(MUTABLE_FILES); do \
+ test ! -f $$f.orig || mv -f $$f.orig $$f; \
+ done
+
override_dh_auto_build-arch:
- dh_auto_build -a -- all
+ make all
override_dh_auto_build-indep:
- dh_auto_build -i \
- $(if $(findstring nodoc,$(DEB_BUILD_OPTIONS)),--no-act) \
- -- manual
+ make manual
override_dh_auto_install-arch:
dh_auto_install -a -- BUILDROOT=$(BUILDROOT)
@@ -68,8 +62,4 @@
# automatically decompress text files.
override_dh_compress-arch:
dh_compress -p dvdisaster \
- -Xchangelog -XCREDITS -XREADME.MODIFYING -XTODO
- gzip -9n debian/dvdisaster/usr/share/doc/dvdisaster/changelog.Debian
-
-override_dh_installchangelogs-arch:
- dh_installchangelogs -p dvdisaster -k
+ -XCHANGELOG -XCREDITS -XREADME.MODIFYING -XTODO
diff -Nru dvdisaster-0.79.5/debian/salsa-ci.yml dvdisaster-0.79.10/debian/salsa-ci.yml
--- dvdisaster-0.79.5/debian/salsa-ci.yml 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/salsa-ci.yml 1970-01-01 00:00:00.000000000 +0000
@@ -1,4 +0,0 @@
----
-include:
- - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
- - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
diff -Nru dvdisaster-0.79.5/debian/upstream/metadata dvdisaster-0.79.10/debian/upstream/metadata
--- dvdisaster-0.79.5/debian/upstream/metadata 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/upstream/metadata 1970-01-01 00:00:00.000000000 +0000
@@ -1,8 +0,0 @@
-%YAML 1.1
----
-# https://wiki.debian.org/UpstreamMetadata
-Contact: Carsten Gnörlich
-Documentation: https://web.archive.org/web/20180428070843/http://dvdisaster.net/en/misc.html#manual
-Homepage: https://web.archive.org/web/20180428070843/http://dvdisaster.net/
-Name: dvdisaster
-Security-Contact: Carsten Gnörlich
diff -Nru dvdisaster-0.79.5/debian/watch dvdisaster-0.79.10/debian/watch
--- dvdisaster-0.79.5/debian/watch 2020-09-14 03:11:20.000000000 +0000
+++ dvdisaster-0.79.10/debian/watch 2018-01-27 14:34:08.000000000 +0000
@@ -1,4 +1,4 @@
version=3
opts="pgpsigurlmangle=s/$/.gpg/" \
-https://web.archive.org/web/20180428070843/http://dvdisaster.net/en/index.html \
+http://dvdisaster.net/en/index.html \
(?:.*?/)?dvdisaster-(.*)\.tar\.bz2 debian uupdate
diff -Nru dvdisaster-0.79.5/debug.c dvdisaster-0.79.10/debug.c
--- dvdisaster-0.79.5/debug.c 2015-09-25 18:05:41.000000000 +0000
+++ dvdisaster-0.79.10/debug.c 2021-08-27 17:15:53.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
#include "rs02-includes.h"
@@ -40,7 +42,7 @@
static void random_error1(Image *image, char *arg)
{ EccHeader *eh;
- gint64 block_idx[255];
+ gint64 block_idx[255];
gint64 s,si;
int block_sel[255];
int i,percent,last_percent = 0;
@@ -100,7 +102,7 @@
if(block_sel[i] && block_idx[i]sectorSize)
{ if(!LargeSeek(image->file, (gint64)(2048*block_idx[i])))
- Stop(_("Failed seeking to sector %lld in image: %s"),block_idx[i],strerror(errno));
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),block_idx[i],strerror(errno));
CreateMissingSector(missing, block_idx[i], image->imageFP, FINGERPRINT_SECTOR, NULL);
@@ -108,7 +110,7 @@
write_size = image->inLast;
if(LargeWrite(image->file, missing, write_size) != write_size)
- Stop(_("Failed writing to sector %lld in image: %s"),block_idx[i],strerror(errno));
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"),block_idx[i],strerror(errno));
}
block_idx[i]++;
@@ -188,12 +190,12 @@
{ unsigned char missing[2048];
if(!LargeSeek(image->file, (gint64)(2048*s)))
- Stop(_("Failed seeking to sector %lld in image: %s"), s, strerror(errno));
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), s, strerror(errno));
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
if(LargeWrite(image->file, missing, 2048) != 2048)
- Stop(_("Failed writing to sector %lld in image: %s"), s, strerror(errno));
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"), s, strerror(errno));
}
}
@@ -236,11 +238,11 @@
else s = RS02EccSectorIndex(lay, i-eh->dataBytes, si);
if(!LargeSeek(image->file, (gint64)(2048*s)))
- Stop(_("Failed seeking to sector %lld in image: %s"), s, strerror(errno));
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), s, strerror(errno));
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
if(LargeWrite(image->file, missing, 2048) != 2048)
- Stop(_("Failed writing to sector %lld in image: %s"), s, strerror(errno));
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"), s, strerror(errno));
}
}
@@ -360,12 +362,12 @@
}
if(!LargeSeek(file, (gint64)(2048*file_s))) // FIXME: wrong for ecc files
- Stop(_("Failed seeking to sector %lld in image: %s"), s, strerror(errno));
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), s, strerror(errno));
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
if(LargeWrite(file, missing, 2048) != 2048)
- Stop(_("Failed writing to sector %lld in image: %s"), s, strerror(errno));
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"), s, strerror(errno));
}
}
@@ -459,7 +461,7 @@
byte = atoi(cpos+1);
if(s<0 || s>=image->sectorSize)
- Stop(_("Sector must be in range [0..%lld]\n"),image->sectorSize-1);
+ Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->sectorSize-1);
if(i<0 || i>=2048)
Stop(_("Byte position must be in range [0..2047]"));
@@ -467,7 +469,7 @@
if(byte<0 || byte>=256)
Stop(_("Byte value must be in range [0..255]"));
- PrintLog(_("Setting byte %d in sector %lld to value %d.\n"), i, s, byte);
+ PrintLog(_("Setting byte %d in sector %" PRId64 " to value %d.\n"), i, s, byte);
/*** Set the byte */
@@ -499,7 +501,6 @@
image = OpenImageFromFile(Closure->imageName, O_RDWR, IMG_PERMS);
if(!image)
Stop(_("Can't open %s:\n%s"), Closure->imageName, strerror(errno));
- ExamineUDF(image); /* get the volume label */
/** See if there is a special debugging option following
the sector range. This is intentionally an undocumented feature. */
@@ -521,9 +522,9 @@
else start = end = atoi(arg);
if(start>end || start < 0 || end >= image->sectorSize)
- Stop(_("Sectors must be in range [0..%lld].\n"),image->sectorSize-1);
+ Stop(_("Sectors must be in range [0..%" PRId64 "].\n"),image->sectorSize-1);
- PrintLog(_("Erasing sectors [%lld,%lld]\n"),start,end);
+ PrintLog(_("Erasing sectors [%" PRId64 ",%" PRId64 "]\n"),start,end);
/*** Erase them. */
@@ -542,7 +543,7 @@
n = LargeWrite(image->file, missing, m);
if(n != m)
- Stop(_("Failed writing to sector %lld in image: %s"),s,strerror(errno));
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"),s,strerror(errno));
}
/*** Clean up */
@@ -569,9 +570,9 @@
end = atoi(arg);
if(end >= image->sectorSize)
- Stop(_("New length must be in range [0..%lld].\n"),image->sectorSize-1);
+ Stop(_("New length must be in range [0..%" PRId64 "].\n"),image->sectorSize-1);
- PrintLog(_("Truncating image to %lld sectors.\n"),end);
+ PrintLog(_("Truncating image to %" PRId64 " sectors.\n"),end);
/*** Truncate it. */
@@ -607,10 +608,10 @@
/*** Print banner */
- PrintLog(_("\nCreating random image with %lld sectors.\n\n"
+ PrintLog(_("\nCreating random image with %" PRId64 " sectors.\n\n"
"There is no need for permanently storing this image;\n"
"you can always reproduce it by calling\n"
- "dvdisaster --debug %s %lld --random-seed %d\n\n"),
+ "dvdisaster --debug %s %" PRId64 " --random-seed %d\n\n"),
sectors,
mark ? "--marked-image" : "--random-image",
sectors, Closure->randomSeed);
@@ -652,14 +653,14 @@
{ int i;
for(i=0; i<2048; i+=128)
- sprintf(((char*)buf)+i, "Sector %8lld", (long long int)s);
+ sprintf(((char*)buf)+i, "Sector %8" PRId64 , s);
}
n = LargeWrite(image, buf, 2048);
s++;
if(n != 2048)
- Stop(_("Failed writing to sector %lld in image: %s"),s,strerror(errno));
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"),s,strerror(errno));
percent = (100*s)/sectors;
if(last_percent != percent)
@@ -697,20 +698,20 @@
{ int n = LargeRead(image->file, buf, 2048);
if(n != 2048)
- Stop(_("Could not read image sector %lld:\n%s\n"),s,strerror(errno));
+ Stop(_("Could not read image sector %" PRId64 ":\n%s\n"),s,strerror(errno));
/* Replace the dead sector marker */
if(CheckForMissingSector(buf, s, image->imageFP, FINGERPRINT_SECTOR) != SECTOR_PRESENT)
{
if(!LargeSeek(image->file, (gint64)(2048*s)))
- Stop(_("Failed seeking to sector %lld in image: %s"),s,strerror(errno));
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),s,strerror(errno));
n = LargeWrite(image->file, zeros, 2048);
n=2048;
if(n != 2048)
- Stop(_("Failed writing to sector %lld in image: %s"),s,strerror(errno));
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"),s,strerror(errno));
cnt++;
}
@@ -722,7 +723,7 @@
}
}
- PrintProgress(_("%lld \"unreadable sector\" markers replaced.\n"), cnt);
+ PrintProgress(_("%" PRId64 " \"unreadable sector\" markers replaced.\n"), cnt);
CloseImage(image);
}
@@ -799,16 +800,16 @@
sector = atoi(arg);
if(sector < 0 || sector >= image->sectorSize)
- Stop(_("Sector must be in range [0..%lld]\n"),image->sectorSize-1);
+ Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->sectorSize-1);
/*** Load it. */
if(!LargeSeek(image->file, (gint64)(2048*sector)))
- Stop(_("Failed seeking to sector %lld in image: %s"),sector,strerror(errno));
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),sector,strerror(errno));
n = LargeRead(image->file, eh, 2048);
if(n != 2048)
- Stop(_("Failed reading sector %lld in image: %s"),sector,strerror(errno));
+ Stop(_("Failed reading sector %" PRId64 " in image: %s"),sector,strerror(errno));
/*** Clean up */
@@ -840,18 +841,18 @@
sector = atoi(arg);
if(sector < 0 || sector >= image->sectorSize)
- Stop(_("Sector must be in range [0..%lld]\n"),image->sectorSize-1);
+ Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->sectorSize-1);
- PrintLog(_("Contents of sector %lld:\n\n"),sector);
+ PrintLog(_("Contents of sector %" PRId64 ":\n\n"),sector);
/*** Show it. */
if(!LargeSeek(image->file, (gint64)(2048*sector)))
- Stop(_("Failed seeking to sector %lld in image: %s"),sector,strerror(errno));
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),sector,strerror(errno));
n = LargeRead(image->file, buf, 2048);
if(n != 2048)
- Stop(_("Failed reading sector %lld in image: %s"),sector,strerror(errno));
+ Stop(_("Failed reading sector %" PRId64 " in image: %s"),sector,strerror(errno));
if(Closure->debugCDump)
CDump(buf, sector, 2048, 16);
@@ -888,10 +889,10 @@
if(sector < 0 || sector >= image->dh->sectors)
{ CloseImage(image);
FreeAlignedBuffer(ab);
- Stop(_("Sector must be in range [0..%lld]\n"),image->dh->sectors-1);
+ Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->dh->sectors-1);
}
- PrintLog(_("Contents of sector %lld:\n\n"),sector);
+ PrintLog(_("Contents of sector %" PRId64 ":\n\n"),sector);
/*** Read it. */
@@ -902,7 +903,7 @@
if(status)
{ CloseImage(image);
FreeAlignedBuffer(ab);
- Stop(_("Failed reading sector %lld: %s"),sector,strerror(errno));
+ Stop(_("Failed reading sector %" PRId64 ": %s"),sector,strerror(errno));
}
if(Closure->debugCDump)
@@ -951,10 +952,10 @@
if(lba < 0 || lba >= image->dh->sectors)
{ CloseImage(image);
FreeAlignedBuffer(ab);
- Stop(_("Sector must be in range [0..%lld]\n"),image->dh->sectors-1);
+ Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->dh->sectors-1);
}
- PrintLog(_("Contents of sector %lld:\n\n"),lba);
+ PrintLog(_("Contents of sector %" PRId64 ":\n\n"),lba);
/*** Try the raw read */
@@ -1023,7 +1024,7 @@
*
* ./dvdisaster --debug --send-cdb 12,00,00,00,24,00:24
*
- * The first six bytes make up the cdb; cdbs with upto 12 bytes are possible.
+ * The first six bytes make up the cdb; cdbs with up to 12 bytes are possible.
* The :24 arg is the allocation length.
* Note that the allocation length must match those specified in the cdb;
* differing values may crash the system.
@@ -1162,7 +1163,7 @@
LargeStat(from_path, §ors); sectors /= 2048;
if(from_sector<0 || from_sector>sectors-1)
- Stop(_("Source sector must be in range [0..%lld]\n"), sectors-1);
+ Stop(_("Source sector must be in range [0..%" PRId64 "]\n"), sectors-1);
if(!(to = LargeOpen(to_path, O_WRONLY, IMG_PERMS)))
@@ -1170,27 +1171,27 @@
LargeStat(to_path, §ors); sectors /= 2048;
if(to_sector<0 || to_sector>sectors-1)
- Stop(_("Destination sector must be in range [0..%lld]\n"), sectors-1);
+ Stop(_("Destination sector must be in range [0..%" PRId64 "]\n"), sectors-1);
/*** Copy the sector */
- PrintLog(_("Copying sector %lld from %s to sector %lld in %s.\n"),
+ PrintLog(_("Copying sector %" PRId64 " from %s to sector %" PRId64 " in %s.\n"),
from_sector, from_path, to_sector, to_path);
if(!LargeSeek(from, (gint64)(2048*from_sector)))
- Stop(_("Failed seeking to sector %lld in image: %s"),
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
from_sector, strerror(errno));
if(LargeRead(from, buf, 2048) != 2048)
- Stop(_("Failed reading sector %lld in image: %s"),
+ Stop(_("Failed reading sector %" PRId64 " in image: %s"),
from_sector, strerror(errno));
if(!LargeSeek(to, (gint64)(2048*to_sector)))
- Stop(_("Failed seeking to sector %lld in image: %s"),
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
to_sector, strerror(errno));
if(LargeWrite(to, buf, 2048) != 2048)
- Stop(_("Failed writing to sector %lld in image: %s"),
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"),
to_sector, strerror(errno));
/*** Clean up */
@@ -1233,9 +1234,9 @@
/*** Compare/merge the images */
- if(!mode) PrintLog("Comparing %s (%lld sectors) with %s (%lld sectors).\n",
+ if(!mode) PrintLog("Comparing %s (%" PRId64 " sectors) with %s (%" PRId64 " sectors).\n",
left_path, left_sectors, right_path, right_sectors);
- else PrintLog("Merging %s (%lld sectors) with %s (%lld sectors).\n",
+ else PrintLog("Merging %s (%" PRId64 " sectors) with %s (%" PRId64 " sectors).\n",
left_path, left_sectors, right_path, right_sectors);
/*** Compare them */
@@ -1249,33 +1250,33 @@
{ unsigned char left_buf[2048], right_buf[2048];
if(LargeRead(left, left_buf, 2048) != 2048)
- Stop(_("Failed reading sector %lld in image: %s"),
+ Stop(_("Failed reading sector %" PRId64 " in image: %s"),
s, strerror(errno));
if(LargeRead(right, right_buf, 2048) != 2048)
- Stop(_("Failed reading sector %lld in image: %s"),
+ Stop(_("Failed reading sector %" PRId64 " in image: %s"),
s, strerror(errno));
if(memcmp(left_buf, right_buf, 2048))
{
if(CheckForMissingSector(left_buf, s, NULL, 0) != SECTOR_PRESENT)
- { if(!mode) PrintLog("< Sector %lld missing\n", s);
+ { if(!mode) PrintLog("< Sector %" PRId64 " missing\n", s);
else
- { PrintLog("< Sector %lld missing; copied from %s.\n", s, right_path);
+ { PrintLog("< Sector %" PRId64 " missing; copied from %s.\n", s, right_path);
if(!LargeSeek(left, (2048*s)))
- Stop(_("Failed seeking to sector %lld in image: %s"),
+ Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
s, strerror(errno));
if(LargeWrite(left, right_buf, 2048) != 2048)
- Stop(_("Failed writing to sector %lld in image: %s"),
+ Stop(_("Failed writing to sector %" PRId64 " in image: %s"),
s, strerror(errno));
}
}
else if(CheckForMissingSector(right_buf, s, NULL, 0) != SECTOR_PRESENT)
- { PrintLog("> Sector %lld missing\n", s);
+ { PrintLog("> Sector %" PRId64 " missing\n", s);
}
else
- { PrintLog("! Sector %lld differs in images\n", s);
+ { PrintLog("! Sector %" PRId64 " differs in images\n", s);
}
}
@@ -1287,27 +1288,27 @@
}
if(left_sectors > right_sectors)
- { PrintLog("%lld sectors missing at the end of %s\n",
+ { PrintLog("%" PRId64 " sectors missing at the end of %s\n",
left_sectors-right_sectors, right_path);
}
if(left_sectors < right_sectors)
{ if(!mode)
- PrintLog("%lld sectors missing at the end of %s\n",
+ PrintLog("%" PRId64 " sectors missing at the end of %s\n",
right_sectors-left_sectors, left_path);
else
{ unsigned char buf[2048];
- PrintLog("Transferring %lld sectors from the end of %s to %s.\n",
+ PrintLog("Transferring %" PRId64 " sectors from the end of %s to %s.\n",
right_sectors-left_sectors, right_path, left_path);
for(s=left_sectors; s 40$)
\quad p := p + 1}
+\end{comment}
+
+From these values we compute a $2^p$ which has about 20-40 multiples
+in the {\em preliminary ecc size} address space. This value will be used
+for interleaving the ecc header copies with the ecc layers:
+
+\[ p = \left\lceil log_2\; \frac{preliminary\;ecc\;size}{40} \right\rceil \]
+
+%\[ p = \left\lceil \frac{log\; \frac{preliminary\;ecc\;size}{40}}{log\; 2} \right\rceil \]
+
\smallskip
diff -Nru dvdisaster-0.79.5/documentation/config/version.tex dvdisaster-0.79.10/documentation/config/version.tex
--- dvdisaster-0.79.5/documentation/config/version.tex 2015-12-16 15:26:32.000000000 +0000
+++ dvdisaster-0.79.10/documentation/config/version.tex 2021-09-25 12:01:50.000000000 +0000
@@ -1 +1,2 @@
-\newcommand{\projectversion}{0.79.5}
+\newcommand{\projectversion}{0.79.10}
+\newcommand{\homepage}{\url{https://dvdisaster.jcea.es/}}
diff -Nru dvdisaster-0.79.5/documentation/dvdisaster.de.1 dvdisaster-0.79.10/documentation/dvdisaster.de.1
--- dvdisaster-0.79.5/documentation/dvdisaster.de.1 2015-10-25 16:31:47.000000000 +0000
+++ dvdisaster-0.79.10/documentation/dvdisaster.de.1 2021-09-24 12:15:21.000000000 +0000
@@ -1,4 +1,4 @@
-.TH DVDISASTER 1 "2015-12-16" "0.79.5" "Schutz f\[:u]r optische Datentr\[:a]ger"
+.TH DVDISASTER 1 "2018-05-14" "0.79.7" "Schutz f\[:u]r optische Datentr\[:a]ger"
.SH NAME
DVDISASTER \- Schutz f\[:u]r optische Datentr\[:a]ger gegen Datenverlust durch Alterung
@@ -49,6 +49,7 @@
.RB [\| \-\-internal-rereads
.IR n \|]
.RB [\| \-\-medium-info \|]
+.RB [\| \-\-no-progress \|]
.RB [\| \-\-old-ds-marker \|]
.RB [\| \-\-prefetch-sectors
.IR n \|]
@@ -59,12 +60,14 @@
.RB [\| \-\-read-medium
.IR n \|]
.RB [\| \-\-read-raw \|]
+.RB [\| \-\-regtest \|]
.RB [\| \-\-resource-file
.IR n \|]
.RB [\| \-\-speed-warning
.IR n \|]
.RB [\| \-\-spinup\-delay
.IR n \|]
+.RB [\| \-\-version \|]
.SH BESCHREIBUNG
.B DVDISASTER
@@ -213,28 +216,31 @@
.RS
RS02-Abbilder:
.RS
-\-n CD\ \ \ erweitert Abbild auf CD-Gr\[:o]\[ss]e.
+\-n CD\ \ \ \ erweitert Abbild auf CD-Gr\[:o]\[ss]e.
.RE
.RS
-\-n DVD\ \ erweitert Abbild auf DVD-Gr\[:o]\[ss]e.
+\-n DVD\ \ \ erweitert Abbild auf DVD-Gr\[:o]\[ss]e.
.RE
.RS
-\-n DVD9 erweitert Abbild auf DVD9-Gr\[:o]\[ss]e.
+\-n DVD9\ erweitert Abbild auf DVD9-Gr\[:o]\[ss]e.
.RE
.RS
-\-n BD\ \ \ erweitert Abbild auf BD-Gr\[:o]\[ss]e.
+\-n BD\ \ \ \ erweitert Abbild auf BD-Gr\[:o]\[ss]e.
.RE
.RS
-\-n BD2\ erweitert Abbild auf zweilagige BD-Gr\[:o]\[ss]e.
+\-n BD2\ \ erweitert Abbild auf zweilagige BD-Gr\[:o]\[ss]e.
.RE
.RS
-\-n x\ \ \ \ erweitert Abbild auf ca. x Sektoren L\[:a]nge.
+\-n BDXL3 erweitert Abbild auf dreilagige BDXL-Gr\[:o]\[ss]e.
.RE
.RS
-\-n x%\ \ \ erweitert Abbild mit ca. x% Redundanz.
+\-n x\ \ \ \ \ erweitert Abbild auf ca. x Sektoren L\[:a]nge.
.RE
.RS
-\-n xr\ \ \ erweitert Abbild mit x Nullstellen Fehlerkorrektur-Daten.
+\-n x%\ \ \ \ erweitert Abbild mit ca. x% Redundanz.
+.RE
+.RS
+\-n xr\ \ \ \ erweitert Abbild mit x Nullstellen Fehlerkorrektur-Daten.
.RE
.RE
@@ -329,7 +335,7 @@
.RE
.TP
.B \-\-fill-unreadable n
-f\[:u]lle unlesbare Sektoren mit Byte n.
+f\[:u]lle unlesbare Sektoren mit Byte n. Hilfreich um Abbilder zu verarbeiten, die von anderen Werkzeugen angelegt wurden. Beispielsweise f\[:u]llt ddrescue unlesbare Sektoren mit Null auf; dementsprechend w\[:a]re \-\-fill-unreadable=0 zu verwenden. Bitte dabei beachten: Sparse files k\[:o]nnen nicht mit dvdisaster verarbeitet werden.
.TP
.B \-\-ignore-fatal-sense
Lesen nach m\[:o]glicherweise schwerwiegenden Fehlern fortsetzen.
@@ -364,6 +370,9 @@
.B \-\-medium-info
Gibt Informationen \[:u]ber den Datentr\[:a]ger im ausgew\[:a]hlten Laufwerk aus.
.TP
+.B \-\-no-progress
+Unterdr\[:u]ckt die Fortschrittsanzeige in Prozent.
+.TP
.B \-\-old-ds-marker
Markiert fehlende Sektoren in einer Weise, die mit dvdisaster
0.70 oder noch fr\[:u]heren Versionen kompatibel ist.
@@ -403,6 +412,9 @@
.B \-\-read-raw
liest in der "raw"\-Betriebsart sofern m\[:o]glich.
.TP
+.B \-\-regtest
+ver\[:a]ndert einige Ausgaben so da\[ss] sie von den Regressionstest-Skripten besser verarbeitet werden k\[:o]nnen.
+.TP
.B \-\-resource-file n
Gibt den Pfad zur Konfigurationsdatei an (Voreinstellung: $HOME/.dvdisaster)
.TP
@@ -411,6 +423,9 @@
.TP
.B \-\-spinup-delay n
gibt dem Laufwerk n Sekunden Zeit zum Hochlaufen.
+.TP
+.B \-\-version
+gibt die Versionsnummer und einige Konfigurationseigenschaften aus
.PP
.SH SIEHE AUCH
@@ -420,8 +435,10 @@
installiert ist.
.SH AUTHOR
-DVDISASTER wurde von Carsten Gnoerlich geschrieben.
+DVDISASTER wurde von Carsten Gn\[:o]rlich geschrieben.
+Seit Version 0.79.7 wird es vom dvdisaster-Entwickler-Team betreut .
+
.PP
Diese Hilfeseite wurde von Daniel Baumann
-f\[:u]r das Debian Projekt geschrieben (kann aber auch von Anderen verwendet
-werden). Sie wird seit Version 0.70 von Carsten Gn\[:o]rlich gepflegt.
+f\[:u]r das Debian-Projekt geschrieben (kann aber auch von Anderen verwendet
+werden). Sie wurde seit Version 0.70 von Carsten Gn\[:o]rlich gepflegt und wird zur Zeit vom dvdisaster-Entwickler-Team betreut.
diff -Nru dvdisaster-0.79.5/documentation/dvdisaster.en.1 dvdisaster-0.79.10/documentation/dvdisaster.en.1
--- dvdisaster-0.79.5/documentation/dvdisaster.en.1 2015-10-25 16:31:47.000000000 +0000
+++ dvdisaster-0.79.10/documentation/dvdisaster.en.1 2021-09-24 10:16:29.000000000 +0000
@@ -1,4 +1,4 @@
-.TH DVDISASTER 1 "2015-12-16" "0.79.5" "protection for optical media"
+.TH DVDISASTER 1 "2018-05-14" "0.79.7" "protection for optical media"
.SH NAME
DVDISASTER \- data loss/scratch/aging protection for optical media
@@ -48,6 +48,7 @@
.RB [\| \-\-internal-rereads
.IR n \|]
.RB [\| \-\-medium-info \|]
+.RB [\| \-\-no-progress \|]
.RB [\| \-\-old-ds-marker \|]
.RB [\| \-\-prefetch-sectors
.IR n \|]
@@ -58,12 +59,14 @@
.RB [\| \-\-read-medium
.IR n \|]
.RB [\| \-\-read-raw \|]
+.RB [\| \-\-regtest \|]
.RB [\| \-\-resource-file
.IR n \|]
.RB [\| \-\-speed-warning
.IR n \|]
.RB [\| \-\-spinup\-delay
.IR n \|]
+.RB [\| \-\-version \|]
.SH DESCRIPTION
.B DVDISASTER
@@ -205,28 +208,31 @@
.RS
RS02 images:
.RS
-\-n CD\ \ \ augments image suitable for CD media.
+\-n CD\ \ \ \ augments image suitable for CD media.
.RE
.RS
-\-n DVD\ \ augments image suitable for DVD media.
+\-n DVD\ \ \ augments image suitable for DVD media.
.RE
.RS
-\-n DVD9 augments image suitable for DVD9 media.
+\-n DVD9\ augments image suitable for DVD9 media.
.RE
.RS
-\-n BD\ \ \ augments image suitable for BD media.
+\-n BD\ \ \ \ augments image suitable for BD media.
.RE
.RS
-\-n BD2\ augments image suitable for two layered BD media.
+\-n BD2\ \ augments image suitable for two layered BD media.
.RE
.RS
-\-n x\ \ \ \ augments image using approx. x sectors in total.
+\-n BDXL3 augments image suitable for three layered BDXL media.
.RE
.RS
-\-n x%\ \ \ augments image with approx. x% redundancy.
+\-n x\ \ \ \ \ augments image using approx. x sectors in total.
.RE
.RS
-\-n xr\ \ \ augments image with x roots error correction data.
+\-n x%\ \ \ \ augments image with approx. x% redundancy.
+.RE
+.RS
+\-n xr\ \ \ \ augments image with x roots error correction data.
.RE
.RE
@@ -274,7 +280,7 @@
older cdrom (CDROM_SEND_PACKET) driver for accessing the optical drives.
Both drivers should work equally well; however the cdrom driver is known
to cause system failures on some ancient SCSI controllers.
-The older cdrom driver was the default upto and including dvdisaster 0.72.x;
+The older cdrom driver was the default up to and including dvdisaster 0.72.x;
if the now pre-selected sg driver changes something to the worse for you
please switch back to the older driver using \-\-driver=cdrom.
.TP
@@ -314,7 +320,7 @@
.RE
.TP
.B \-\-fill-unreadable n
-fill unreadable sectors with byte n
+fill unreadable sectors with byte n. Useful for processing images which have been created by other tools. For example, ddrescue fills unreadable sectors with zeros; therefore \-\-fill-unreadable=0 should be used. Please note: Sparse files can not be processed with dvdisaster.
.TP
.B \-\-ignore-fatal-sense
continue reading after potentially fatal error condition.
@@ -347,6 +353,9 @@
.B \-\-medium-info
Prints information about the currently inserted medium.
.TP
+.B \-\-no-progress
+Suppresses the progress percentage indicator.
+.TP
.B \-\-old-ds-marker
Marks missing sectors in a manner which is compatible with
dvdisaster 0.70 or older.
@@ -376,7 +385,7 @@
.RE
.TP
.B \-\-read-attempts n-m
-attempts n upto m reads of a defective sector.
+attempts n up to m reads of a defective sector.
.TP
.B \-\-read-medium n
read the whole medium up to n times.
@@ -384,6 +393,9 @@
.B \-\-read-raw
performs read in raw mode if possible.
.TP
+.B \-\-regtest
+modifies some outputs for better processing with the regression test scripts.
+.TP
.B \-\-resource-file n
Specifies the path to the configuration file (default: $HOME/.dvdisaster)
.TP
@@ -392,6 +404,9 @@
.TP
.B \-\-spinup-delay n
wait n seconds for drive to spin up.
+.TP
+.B \-\-version
+print version number and some configuration information.
.PP
.SH SEE ALSO
@@ -400,8 +415,10 @@
.IR %docdir%
.SH AUTHOR
-DVDISASTER was written by Carsten Gnoerlich .
+DVDISASTER was written by Carsten Gnoerlich .
+Since version 0.79.7 it is maintained by the dvdisaster development team .
+
.PP
This manual page was written by Daniel Baumann
, for the Debian project (but may be used
-by others). Since version 0.70 it is maintained by Carsten Gnoerlich.
+by others). Since version 0.70 it was updated by Carsten Gnoerlich and is currently maintained by the dvdisaster development team.
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/manual.pdf and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/manual.pdf differ
diff -Nru dvdisaster-0.79.5/documentation/upstream-site/css/dvdisaster.css dvdisaster-0.79.10/documentation/upstream-site/css/dvdisaster.css
--- dvdisaster-0.79.5/documentation/upstream-site/css/dvdisaster.css 2015-03-15 17:45:24.000000000 +0000
+++ dvdisaster-0.79.10/documentation/upstream-site/css/dvdisaster.css 1970-01-01 00:00:00.000000000 +0000
@@ -1,76 +0,0 @@
-@charset "UTF-8";
-
-body { font-family:Helvetica,Arial,sans-serif,Verdana }
-
-a:link { font-weight:normal; color:#0000ff; text-decoration:none }
-a:visited { font-weight:normal; color:#0000ff; text-decoration:none }
-a:hover { font-weight:normal; background-color:#e0e0e0; color:#0000FF; text-decoration:none }
-a:active { font-weight:normal; background-color:#e0e0e0; color:#0000FF; text-decoration:none }
-a:focus { font-weight:normal; background-color:#e0e0e0; color:#0000FF; text-decoration:none }
-
-table.navigation {width:100%; background-color:#f0f0f0}
-table.download {width:100%; background-color:#f0f0f0}
-table.thumbnail {border-width:1px; border-style:solid; border-color:#000000; background-color:#e0e0ff}
-table.screenshot {width:100%; border-width:0px; background-color:#e0e0ff}
-
-table.ecompat {border-width:0px}
-table.ecompat td { border-width:0px; vertical-align:text-top}
-table.ecompat td.file { border-width:0px; background-color:#ffa0ff}
-table.ecompat td.iso { border-width:0px; background-color:#a0ffff}
-table.ecompat td.augment { border-width:0px; background-color:#a0a0ff}
-
-
-table.compat {width:100%; border-style:solid; border-width:0px; border-collapse:collapse}
-table.compat th { border-width:1px; padding:8px; border-style:solid; background-color:#b0b0b0 }
-table.compat th.file { border-width:1px; padding:8px; border-style:solid; background-color:#ffa0ff }
-table.compat th.iso { border-width:1px; padding:8px; border-style:solid; background-color:#a0ffff }
-table.compat th.augment { border-width:1px; padding:8px; border-style:solid; background-color:#a0a0ff }
-
-table.compat td { border-width:1px; padding:4px; border-style:solid; text-align:center}
-
-table.compat td.noalign { border-width:1px; padding:4px; border-style:solid }
-table.compat td.fullspan { border-width:1px; padding:0px; border-style:solid; background-color:#e0e0e0 }
-table.compat td.red { border-width:1px; padding:4px; border-style:solid; background-color:#ff8080; text-align:center}
-table.compat td.yellow { border-width:1px; padding:4px; border-style:solid; background-color:#ffe0a0; text-align:center}
-table.compat td.green { border-width:1px; padding:4px; border-style:solid; background-color:#a0ffa0; text-align:center}
-table.compat td.grey { border-width:1px; padding:4px; border-style:solid; background-color:#e0e0e0; text-align:center}
-table.compat td.white { border-width:1px; padding:4px; border-style:solid; text-align:center}
-
-a.active {color:#0000ff; text-decoration:none }
-a.passive {color:#808080; text-decoration:none }
-
-img.noborder {border:0px solid transparent;}
-img.nobordervalignm {border:0px solid transparent; vertical-align:middle;}
-
-span.fl {font-size:large;}
-span.fxxl {font-size:xx-large;}
-span.fs {font-size:small;}
-span.fxs {font-size:x-small;}
-span.green {color:green;}
-span.red {color:red;}
-span.blue {color:blue;}
-span.yellow {color:gold;}
-
-h3.top {margin-top: 0;}
-
-table {empty-cells:show;} /* display border and background color even for empty table cells */
-td.hsep {height:1px; width:100%; background-color:black;} /* black horizontal separator */
-td.vsep {height:100%; width:2px; background-color:black;} /* black vertical separator */
-td.esep {height:3px;}
-
-.w10p {width:10%;}
-.w15p {width:15%;}
-.w20p {width:20%;}
-.w50p {width:50%;}
-.w55p {width:55%;}
-.w65x {width:65px;}
-.w100x {width:100px;}
-.w127x {width:127px;}
-.w150x {width:150px;}
-.w200x {width:200px;}
-
-.valignb {vertical-align:bottom;}
-.valignm {vertical-align:middle;}
-.valignt {vertical-align:top;}
-.valigntt {vertical-align:text-top;}
-.talignr {text-align:right;}
diff -Nru dvdisaster-0.79.5/documentation/upstream-site/de/datenschutz.html dvdisaster-0.79.10/documentation/upstream-site/de/datenschutz.html
--- dvdisaster-0.79.5/documentation/upstream-site/de/datenschutz.html 2015-10-25 16:31:47.000000000 +0000
+++ dvdisaster-0.79.10/documentation/upstream-site/de/datenschutz.html 1970-01-01 00:00:00.000000000 +0000
@@ -1,120 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-Das dvdisaster-Projekt (Anbieter siehe Impressum)
-nimmt den Schutz personenbezogener Daten sehr ernst.
-Die nachfolgende Erklärung gibt Ihnen einen Überblick darüber,
-welche Daten zu welchem Zweck erhoben werden:
-
-
-
-Protokoll-Dateien (Datenverarbeitung durch die Server dieser Internetseiten)
-
-Ihr Besuch auf diesen Seiten wird protokolliert.
-Die Server dieser Internetseiten speichern die folgenden Daten:
-
-
-
den Typ und die Version Ihres Browsers
-
das verwendete Betriebssystem
-
gegebenenfalls die Ausgangsseite, von der aus Sie zu diesen Internetseiten gelangt sind
-
den Namen oder die IP-Adresse des zugreifenden Rechners
-
die Uhrzeit und das Datum Ihres Abrufes dieser Seiten
-
die Dateinamen der angefragten Seiten.
-
-
-Diese Daten werden weder dazu genutzt, den Besucher dieser Internetseiten
-zu identifizieren, noch findet eine Zusammenführung mit anderen Daten
-statt. Die Daten werden nach einer statistischen Auswertung gelöscht.
-
-
-
-Cookies
-
-Diese Internetseiten verwenden keine Cookies.
-
-
-
-Verweise zu anderen Internetseiten
-
-Diese Internetseiten enthalten Verweise (Links) zu externen Seiten,
-die von anderen Anbietern betrieben werden.
-Das dvdisaster-Projekt hat keinen Einfluß darauf,
-ob andere Anbieter diese Datenschutzbestimmungen einhalten.
-
-
-
-Weiterentwicklung dieser Internetseiten
-
-Im Zuge der Weiterentwicklung dieser Internetseiten können Änderungen
-dieser Datenschutzerklärung erforderlich werden. Bitte lesen Sie sich
-diese Datenschutzerklärung von Zeit zu Zeit erneut durch.
-
-
-
-
-
-
-
-
-
- Copyright 2004-2015 Carsten Gnörlich.
-Die unveränderte Vervielfältigung und Verteilung dieses gesamten Artikels in beliebiger Form ist gestattet,
-sofern dieser Hinweis erhalten bleibt.
-
-
-
-
-Carsten Gnörlich
-Karl-von-Hahn-Str. 125
-72250 Freudenstadt / Deutschland
-Tel.: +49 172 566 1442 (kein Support, nur für Anfragen im Rahmen des Telemediengesetzes!)
-
-
-
- Copyright 2004-2015 Carsten Gnörlich.
-Die unveränderte Vervielfältigung und Verteilung dieses gesamten Artikels in beliebiger Form ist gestattet,
-sofern dieser Hinweis erhalten bleibt.
-
-
-
-
-Auf dieser Seite finden Sie den neuesten Quellkode
-von dvdisaster für die Betriebssysteme
-FreeBSD, GNU/Linux und NetBSD. Der Inhalt dieser
-Seite richtet sich vorwiegend an die Betreuer
-von Binärpaketen für die genannten Plattformen.
-Typischerweise ist es bequemer, wenn Sie sich
-dvdisaster aus dem Paketsystem Ihres Betriebssystems
-bzw. Ihrer Distribution installieren.
-Natürlich können Sie sich
-den Quellkode von dvdisaster aber auch selbst
-herunterladen und übersetzen, wenn Sie dies
-lieber möchten.
-
-Diese Seite enthält keine Informationen
-über den Sinn und die Benutzung von dvdisaster.
-Dies ist an anderen Stellen besser beschrieben -
-zum Beispiel in zahlreichen Foren und (in englischer Sprache) im
-Benutzerhandbuch.
-
-
-
-
-Quellkode herunterladen
-
-
-
-
dvdisaster unterstützt die Betriebssysteme FreeBSD, GNU/Linux und NetBSD.
- Es wird Ihnen
- als freie Software
- unter der GNU General Public License v3 zur
- Verfügung gestellt.
-
-
-Die Archive können mit einer digitalen Unterschrift auf
-ihren Ursprungszustand überprüft werden. In den Archiven gibt die Datei
-INSTALL weitere Informationen zum Übersetzen des Programmes.
-
-
-
-Die Unterstützung von Windows and Mac OS wurde eingestellt.
-Ein anderer Entwickler hat angefangen, eine Version von dvdisaster direkt für Windows zu
-erstellen, aber es gibt dazu noch nichts anzukündigen. Verwenden Sie
-bis dahin bitte weiterhin
-die letzte veröffentlichte Version 0.72.3 für Windows.
-
-
-Was ist mit den alten dvdisaster-Seiten passiert?
-
-Zur Erläuterung eine Übersetzung des Vorwortes aus
-dem englischen Benutzerhandbuch:
-
-Seit der Veröffentlichung von dvdisaster 0.79.3 (Version 0.79.4
-wurde nicht abgeschlossen und veröffentlicht) sind nahezu
-fünf Jahre vergangen.
-Dies liegt teilweise an den veränderten Lebensumständen
-des verantwortlichen Entwicklers, aber auch an vielen
-Änderungen am Quellkode. Viele interne Strukturen wurden
-in dvdisaster 0.79.5 im Vergleich zu seinem Vorgänger
-deutlich verändert.
-
-Die wichtigste Änderung ist in dvdisaster 0.79.5
-natürlich der multihreading-fähige RS03-Kodierer.
-Während es ungefähr 62 Minuten auf einem durchschnittlich
-leistungsfähigen PC dauert, um ein 36 GiB großes Abbild
-mit dem RS02-Kodierer zu bearbeiten, so benötigt der
-neue RS03-Kodierer weniger als 7 Minuten mit sechs
-Prozessorkernen auf der selben Maschine. Auf einem
-Hochleistungs-Server mit 16 Prozessorkernen und
-hohem Ein-/Ausgabe-Durchsatz kann diese Aufgabe in
-unter einer Minute bearbeitet werden. Das ist
-ein großer Schritt nach vorne.
-
-RS03 ist ab dieser Version für den produktiven
-Einsatz geeignet. Einige nicht grundlegende
-Funktionen werden noch mit den nächsten Versionen
-nachgereicht; dies umfaßt unter anderem das
-adaptive Lesen mit RS03 sowie das schnelle
-Reparieren von Datenträgern unter Nutzung von
-Multithreading.
-
-Andere Teile des Projektes mußten geändert oder
-eingestellt werden. Ein Softwareprojekt lebt
-von der Weiterentwicklung und von regelmäßigen
-Veröffentlichungen; anderenfalls hört das
-Projekt letztendlich auf zu existieren.
-dvdisaster lief in den letzten Jahren Gefahr,
-dieses Schicksal zu erleiden. Um zu verhindern
-daß dies erneut eintritt, wird sich das
-Projekt nun auf die Entwicklung des Quellkodes
-konzentrieren; alle anderen Aktivitäten werden
-an andere Personen weitergegeben oder
-eingestellt. Die Quellkode-Entwicklung wird
-sich nur noch mit der GNU/Linux-Version
-befassen, die auch die Basis für alle
-anderen Betriebssysteme liefert. Darin
-inbegriffen sind die Portierungen für
-FreeBSD und NetBSD, die sich sehr einfach
-aus der GNU/Linux-Version ableiten lassen.
-Dies gilt leider nicht für die Mac OS-
-und Windows-Versionen, die ab sofort
-eingestellt werden.
-
-Ebenso werden die getrennten Versionszweige mit
-stabilen Versionen und Entwicklerversionen eingestellt.
-Ab dieser Version werden alle dvdisaster-Veröffentlichungen
-als bereit für den produktiven Einsatz betrachtet,
-wodurch sich eine Unterscheidung in verschiedene
-Zweige erübrigt.
-
-Die Bereitstellung der mehrsprachlichen Dokumentation,
-die gleichzeitig auch als Projektseite im Internet diente,
-hat sich ebenfalls als zu aufwändig erwiesen.
-Die Projektseite ist nun eine einfache Plattform
-zum Herunterladen des Quellkodes. Sie wendet sich jetzt
-an die Paketverwalter, die Binärversionen für
-GNU/Linux, FreeBSD und NetBSD bereitstellen.
-
-Das Benutzerhandbuch wird nun im PDF-Format
-bereitgestellt; dies ist viel einfacher zu
-erzeugen als die alte HTML-Version. Die
-einzige verfügbare Sprache ist Englisch.
-Die meisten Teile des Benutzerhandbuches wurden
-aus der alten Online-Dokumentation übernommen;
-daher wirkt sie immer noch mehr wie die
-Internetseiten als wie ein Buch. Hyperlinks
-sind in PDF nicht so komfortabel nutzbar
-wie in HTML, aber sie wurden in dem Handbuch
-belassen um zu betonen daß es als Online-Referenz
-gedacht ist. Bitte schonen Sie die Natur und
-drucken Sie das Benutzerhandbuch nicht aus.
-Es ist ohnehin nicht dazu gedacht, von
-vorne nach hinten wie ein Buch gelesen zu werden.
-
-Nun gut, genug geredet. Möge Ihnen dvdisaster helfen,
-Ihre Daten zu schützen und wiederherzustellen, und
-vielen Dank daß Sie es nutzen!
-
- -- cg, August 2015
-
-
-
-
-
-
-
-
-
- Copyright 2004-2015 Carsten Gnörlich.
-Die unveränderte Vervielfältigung und Verteilung dieses gesamten Artikels in beliebiger Form ist gestattet,
-sofern dieser Hinweis erhalten bleibt.
-
-
-
-
-
-
-
-Öffentlicher Schlüssel für die digitale Unterschrift
-
-Die herunterladbaren Pakete enthalten
-eine mit GnuPG erstellte
-digitale Unterschrift, damit Sie nachprüfen können,
-ob sich die Software in ihrem ursprünglichen Zustand befindet.
-
-Ab Version 0.79.5 werden Pakete mit diesem
-4096bit RSA-Schlüssel unterschrieben:
-
-
-
-Sie können den Fingerabdruck des öffentlichen Schlüssels auch direkt von
-den Entwicklern erhalten, indem Sie eine E-Mail
-an carsten@dvdisaster.org schreiben. Bitte verwenden Sie
-den Betreff "GPG finger print".
-
-
-Benutzerhandbuch
-
-
-Das Benutzerhandbuch zu dvdisaster gibt es - leider aus Zeitgründen nur
-in englischer Sprache - als PDF-Dokument (manual.pdf).
-Es erläutert die Benutzung von dvdisaster anhand einiger
-grundlegender Beispiele und enthält weitere Hintergrundinformationen
-zu seiner Funktionsweise.
-Sie brauchen das Handbuch hier nicht herunterzuladen, wenn Sie bereits
-das Quellkode-Archiv haben - dort ist ebenfalls ein Exemplar enthalten.
-
-
-Kodierer-Spezifikation
-
-Die Spezifikation der RS01-, RS02- und RS03-Kodierer
-ist als PDF-Dokument (codecs.pdf)
-verfügbar.
-
-Dieses Dokument ist zur Diskussion der Kodierer-Implementierung unter
-den Entwicklern vorgesehen. Er erfordert Kenntnisse in Kodierungstheorie
-und ist nicht als Endbenutzer-Dokumentation gedacht.
-
-
-
-
-
Programme zum Lesen von PDF-Dokumenten sind bei PDFreaders.org verfügbar.
-
-
-
-
-Letzte Windows-Version
-
-Ein anderer Entwickler hat angefangen, eine Version von dvdisaster direkt für Windows zu
-erstellen, aber es gibt dazu noch nichts anzukündigen. Verwenden Sie
-bis dahin bitte weiterhin die letzte veröffentlichte Version für Windows:
-
-
-
- Copyright 2004-2015 Carsten Gnörlich.
-Die unveränderte Vervielfältigung und Verteilung dieses gesamten Artikels in beliebiger Form ist gestattet,
-sofern dieser Hinweis erhalten bleibt.
-
-
-
-
- Copyright 2004-2015 Carsten Gnörlich.
-Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
-
-
-
-
- This site provides the latest source code release of dvdisaster for the
- FreeBSD, GNU/Linux and NetBSD operating systems. It is mostly aimed at
- maintainers of binary packages for the beforementioned platforms.
- End users might find it more convenient to install dvdisaster from the
- package system of their operating system bundle or distribution.
- But if you prefer to download and compile the source package on your own,
- you're welcome, too.
-
- This site does not provide information on the purpose and usage
- of dvdisaster. This is better described at other places, e.g.
- in the user manual and numerous online
- forums.
-
-
-A digital signature is provided for
-verification that the packages are in their original state. The archives
-contain a file INSTALL with further instructions for building dvdisaster.
-
-
-
- Windows and Mac OS are no longer supported. A native Windows fork
- of dvdisaster will be started soon by another developer, but there is nothing to announce yet.
- In the mean time, please continue using
- the last published version for Windows (0.72.3).
-
-
-
-Since the release of dvdisaster 0.79.3 (version 0.79.4 was
-never finished and released), nearly five years have passed.
-This was partly due to changed circumstances in its
-primary developer's life, but there was also a lot of
-coding going on behind the scenes. In comparison with its
-predecessor, dvdisaster 0.79.5 comes with lots of its
-internals being significantly reworked.
-
-The most visible improvement of dvdisaster 0.79.5 is, of
-course, its multithreaded RS03 codec. While it takes
-about 62 minutes for protecting a 36 GiB image with RS02
-on a mid range PC,
-the same task is done with RS03 in less than 7 minutes
-using 6 processor cores on the same machine.
-On a high end server with at least 16 cores and very good I/O,
-this can be done in under a minute. That's quite an
-improvement.
-
-RS03 is ready for production use in the current release.
-Some non-essential features, especially reworking the
-adaptive reading for use with RS03 and multi-threaded
-RS03 decoding (media fixing) will be delivered with
-the following dvdisaster releases.
-
-Other parts of the project had to be changed or even
-discontinued. A software project lives on development
-and continuous releases; else the
-project will eventually die. In this respect, dvdisaster
-was very endangered in the last few years.
-To prevent this from happening again, most effort
-is now directed into source code development;
-everything else is delegated or discontinued.
-Source code development basically means making
-the GNU/Linux version, which provides the code base
-for all other versions, and the FreeBSD and NetBSD ports,
-which are very easily derived from the GNU/Linux code.
-This is not the case for the Mac OS and Windows ports,
-which are, unfortunately, discontinued as of now.
-
-Another feature which has to go are the separate
-stable and development releases.
-Starting with this version, all dvdisaster releases
-are considered production quality, so there is no
-need for different branches anymore.
-
-Maintaining the multi-lingual online documentation, which
-also served as the project home page, did also prove to
-be too time consuming. The project home page has
-been changed into a simple download platform for
-the project sources. It is now directed at package
-maintainers who will create and pass on binaries
-for the GNU/Linux, FreeBSD and NetBSD distributions.
-
-The program documentation, which you are reading
-right now, is provided in PDF format which is much
-easier to author than the HTML version. The only
-language available is English. Most parts of this
-manual have been adapted from the old online
-documentation, so it still feels more like a website
-than a book. While hyperlinks are not as usable in PDF
-as in HTML, they have been kept in this document to
-stress that it is intended to be used as an online reference.
-So please do our environment a favour and do not print
-this manual. It is not meant to be read
-from front cover to back cover, anyways.
-
-Okay, enough ranting already. May dvdisaster be helpful
-in protecting and recovering your valuable data,
-and thanks for using it!
-
- -- cg, August 2015
-
-
-
-
-
-
-
-
-
- Copyright 2004-2015 Carsten Gnörlich.
-Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
-
-
-
-
-Feel free to send an email to carsten@dvdisaster.org to obtain
-the fingerprint directly from the developers.
-Please include "GPG finger print" in the subject line.
-
-
-
-User's manual
-
-
-
-The user manual is provided as a PDF document (manual.pdf).
-It contains several basic examples of using dvdisaster and some background
-information on its way of working.
-You do not need to download the manual if you already have the
-source code archive - a copy of the manual is contained there.
-
-
-Codec specification
-
-The specification of the RS01, RS02 and RS03 codec
-is available as a PDF document (codecs.pdf).
-
-This document is meant to discuss the codec implementation among developers.
-It requires knowledge in the area of coding theory and is not meant as end
-user documentation.
-
-
-
-
-
Software for reading the PDF document is available at PDFreaders.org.
-
-
-
-
-Last Windows release
-
-
-A native Windows fork of dvdisaster will be started soon by another developer,
-but there is nothing to announce yet.
-In the mean time, please continue using the last published version for Windows (0.72.3):
-
-
-
- Copyright 2004-2015 Carsten Gnörlich.
-Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
-
-
-
-
-The dvdisaster project (see the contact page for representatives)
-is taking your privacy seriously. The following statement gives you an overview
-about the kind and purpose of the data we are collecting:
-
-
-
-Log files (data processed by our internet servers)
-
-Your visit of our internet sites is being logged.
-Our servers collect the following data:
-
-
-
the type and version of your web browser
-
the operating system being used
-
the web site from which you were directed to our internet site (if applicable)
-
the host name or IP address of the computer which made the access
-
the time and date of the server query
-
the file names of the visited pages.
-
-
-This data is not used to identify the visitors of our web sites.
-It will not be combined with other data sources. The data will be
-deleted after a statistical analysis.
-
-
-
-Cookies
-
-This internet site does not use cookies.
-
-
-
-Links to other internet sites
-
-Our internet pages contain links to other internet sites.
-The dvdisaster project has no control over their publishers,
-and whether they follow our privacy policy.
-
-
-
-Further development of these internet pages
-
-Further development of these internet pages may require our privacy policy
-to be changed. Please revisit this policy statement occasionally and watch for
-change notices.
-
-
-
-
-
-
-
-
-
- Copyright 2004-2015 Carsten Gnörlich.
-Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
-
-
-
-
-
-
-
-
-
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/upstream-site/images/gplv3-127x51.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/upstream-site/images/gplv3-127x51.png differ
diff -Nru dvdisaster-0.79.5/documentation/user-manual/background.tex dvdisaster-0.79.10/documentation/user-manual/background.tex
--- dvdisaster-0.79.5/documentation/user-manual/background.tex 2015-10-04 19:37:50.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/background.tex 2021-09-24 11:21:21.000000000 +0000
@@ -272,8 +272,7 @@
\end{tabular}
\paragraph{Further reading.} The specification for the dvdisaster codecs
-has been specified in a separate document called \href{http://dvdisaster.net/downloads/codecs.pdf}{codecs.pdf}.
-Good knowledge in coding theory and programming is required.
+is named {\it codecs.pdf} (dubbed ``the blue manual''). It is included in the source distribution. Good knowledge in coding theory and programming is required.
\subsection{The linear reading strategy}
\label{background-linear}
diff -Nru dvdisaster-0.79.5/documentation/user-manual/burning-compatibility.tex dvdisaster-0.79.10/documentation/user-manual/burning-compatibility.tex
--- dvdisaster-0.79.5/documentation/user-manual/burning-compatibility.tex 2015-10-25 16:31:48.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/burning-compatibility.tex 1970-01-01 00:00:00.000000000 +0000
@@ -1,196 +0,0 @@
-\section{Burning software compatibility}
-\label{burning-compatibility}
-
-dvdisaster must be used in conjunction with a CD/DVD/BD writing suite (``burning program'')
-in order to generate ISO images and to write augmented ISO image files. Unfortunately,
-not all burning programs provide the required features to work with dvdisaster.
-Some burning programs may even produce media and/or ISO images which can not be
-used with dvdisaster.
-
-\smallskip
-
-For your convenience, the dvdisaster project has tested some free burning programs
-available for GNU/Linux. Please note that this list will always be incomplete and
-only be a snapshot of a certain program version. It is likely to be outdated when
-you are reading this page. It is therefore recommended that you test your specific
-burning program version by following the \tlnk{howto-compat-overview}{instructions} given
-in the howto section.
-
-\paragraph{Recommended software}\quad
-
-\medskip
-
-The dvdisaster project recommends either using the command line tools
-listed below or using the K3B burning application (which is actually
-a graphical wrapper around the command line tools).
-
-\paragraph{Burning program compatibility table}\quad
-
-\medskip
-
-\newcommand{\tgrey}[1]{\cellcolor{dkgrey}#1}
-\newcommand{\tturquoise}[1]{\cellcolor{turquoise}#1}
-\newcommand{\tpink}[1]{\cellcolor{pink}#1}
-\newcommand{\tblue}[1]{\cellcolor{dkblue}#1}
-
-\newcommand{\tred}[1]{&\begin{minipage}{10mm}{\cellcolor{ltred}#1}\end{minipage}}
-\newcommand{\tyellow}[1]{&\begin{minipage}{10mm}\cellcolor{ltyellow}{#1}\end{minipage}}
-\newcommand{\ok}{&\cellcolor{ltgreen}OK}
-\newcommand{\na}{&\cellcolor{ltgrey}n.a.}
-\newcommand{\nt}{&\begin{minipage}{10mm}{not tested}\end{minipage}}
-
-\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|}
-\hline
-\tgrey{} & \tgrey{} & \tgrey{} & \tturquoise{Create} &
- \multicolumn{3}{c|}{\tpink{Burning images}} & \multicolumn{3}{c|}{\tblue{Burning images}} \\
-
- \tgrey{Program} & \tgrey{Version} & \tgrey{Testing} & \tturquoise{ISO/} &
- \multicolumn{3}{c|}{\tpink{for error}} &
- \multicolumn{3}{c|}{\tblue{with embedded}} \\
-
-\tgrey{} & \tgrey{} & \tgrey{Date} & \tturquoise{UDF} &
- \multicolumn{3}{c|}{\tpink{correction files}} &
- \multicolumn{3}{c|}{\tblue{error correction}} \\
-
- \cline{5-10}
-\tgrey{} & \tgrey{} & \tgrey{} &\tturquoise{Image} &\tpink{CD} &\tpink{DVD} &\tpink{BD} &\tblue{CD} &\tblue{DVD} &\tblue{BD} \\
-
- \hline
- \multicolumn{10}{|c|}{\cellcolor{ltgrey}Command line tools} \\
-
- \hline
- genisoimage & 1.1.11 & Jul'14 \ok \na \na \na \na \na \na \\
-
- \hline
- wodim & 1.1.11 & Jul'14 \na \ok \ok \na \ok \ok \na \\
-
- \hline
- growisofs & 7.1 & Jul'14 \na \na \ok \ok \na \ok \ok \\
-
- \hline
- \multicolumn{10}{|c|}{\cellcolor{ltgrey}Tools with a graphical user interface} \\
-
- \hline
- brasero & 3.4.1 & Jul'14 \tred{no UDF$^{1)}$} \tyellow{avoid$^{2)}$} \ok \na \tyellow{avoid$^{2)}$} \ok \na \\
-
- \hline
- K3B & 2.0.2 & Jul'14 \ok \ok \ok \na \ok \ok \na \\
-
- \hline
- xfburn & 0.4.3 & Jul'14 \ok \tyellow{re-read only$^{3)}$} \tyellow{re-read only$^{3)}$} \na \tred{do not use$^{3)}$} \tred{do not use$^{3)}$} \na \\
- \hline
-\end{tabular}
-
-\bigskip
-
-\paragraph{Testing conditions and objectives}\quad
-\medskip
-
-Testing was done using Debian 7.5 (wheezy) on an amd64 machine.
-Versions of the tested writing software are indicated in the table above.
-
-\medskip
-
-Evaluation of the burning software is done for the two major cases where
-interoperability with dvdisaster is required:
-
-\bigskip
-
-a) Creating error correction files
-
-\medskip
-
-The burning program is used to assemble an ISO image from a selected set of files,
-and to write a CD, DVD or BD disc from it. An \tlnk{howto-eccfile}{error correction file} will
-be created to protect this medium.
-
-\smallskip
-
-There are two ways of obtaining the ISO image for creating the error correction file:
-
-\begin{enumerate}
-\item The burning program is used to create an ISO image which is stored on hard disk.
- This image is used for burning the medium and for creating the error correction file.
- If the writing software creates a medium which does not exactly match the image,
- the resulting error correction file may be useless.
- A respective \tlnk{howto-compat-file}{testing method} is described
- in the ``Howtos'' section. An ``OK'' in the table above indicates that
- this test has been passed. But you are strongly advised to
- \tlnk{howto-compat-file}{do your own test} at least
- once to make sure that you are working on the same versions and premises.
-
- \smallskip
-
- If it is not possible to use a pre-made ISO image for both writing the medium
- and for creating the error correction file, the writing software is
- rated ``Re-read only'' in the table. In that case, use the alternative
- approach described below (topic 2).
-
-\item The burning program is used to write a medium, either by using a
- pre-made ISO image or by creating the image on-the-fly while writing
- the medium. Afterwards, the pre-made ISO image is discarded. dvdisaster
- is used to read back a new ISO image from the newly written medium. From
- this newly created ISO image the error correction file is created. This
- process should always work; if not, the respective burning software is
- marked as being unusable in the table.
-\end{enumerate}
-
-\bigskip
-
-b) Augmenting a medium with error correction data
-
-\medskip
-
-\tlnk{howto-augment-write-iso}{Creating a medium}
-\tlnk{howto-augment}{with embedded error correction data} is comprised of
-several sub tasks: First, the burning application converts a selection of files
-into an ISO image stored on hard disk. dvdisaster augments the image residing
-on the hard disk with error correction data. Then, the burning application
-writes the augmented image to the CD, DVD or BD. The ISO image content or format
-must not be altered during the writing process. Especially, the added error correction
-sectors must not be removed and no padding sectors must be added to the image during
-the writing process. The ``Howto'' section describes
-\tlnk{howto-compat-augment}{a test for compatibility between
-a writing software and dvdisaster}. An ``OK'' in the table above indicates that this
-test has been passed; otherwise you can not use the respective software for writing
-augmented images. You are strongly advised to \tlnk{howto-compat-augment}{do your own test} at
-least once to make sure that you are working on the same versions
-and premises even with software marked as compatible in the table above.
-
-\bigskip
-
-c) Creating ISO images
-
-\medskip
-
-In addition, the table indicates whether the burning application can convert
-a selection of files into an ISO image and store that ISO image on hard disk
-for further processing with dvdisaster.
-
-\paragraph{Notes (why a certain software failed a test)}\quad
-\medskip
-
-$^{1)}${\bf brasero} can only create ISO images, not ISO/UDF. This is not
-recommended for DVD-Video authoring and has the disadvantage that files
-with sizes greater than 2GiB can not be used in a portable way (the tested
-version can not use files larger than 2GiB at all even if it says otherwise).
-
-\bigskip
-
-$^{2)}${\bf brasero} does not support the ``disc at once'' writing strategy. This
-creates two spurious unreadable sectors at the end of CD media. dvdisaster
-can handle such media, but will issue a warning and requires a preferences
-setting each time such media is processed.
-
-\bigskip
-
-$^{3)}${\bf xfburn} can not be used to write RS02/RS03 augmented images due to a
-wrong implementation of padding sector handling. In a correct implementation,
-a burning program would add 150 zero padding sectors to an image it has created
-itself. However padding sectors must never be added to an image which was created
-or manipulated by a foreign application, such as an image being augmented by dvdisaster.
-This results in the image being read back with wrong checksums, and dvdisaster will
-rightfully complain that the ``Image file is 150 sectors longer than expected.''.
-Error correction files can - for the same reason - not be used when created from
-the original image, but it is possible to re-read the image from the written
-medium and create error correction files from that image.
diff -Nru dvdisaster-0.79.5/documentation/user-manual/download.tex dvdisaster-0.79.10/documentation/user-manual/download.tex
--- dvdisaster-0.79.5/documentation/user-manual/download.tex 2015-10-25 16:31:48.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/download.tex 2021-05-03 11:47:50.000000000 +0000
@@ -15,8 +15,8 @@
\bigskip
-The dvdisaster developer site (\url{http://dvdisaster.net}) contains
-the latest source code releases for the FreeBSD, GNU/Linux and NetBSD
+The dvdisaster developer site (\homepage) contains
+source code releases for the FreeBSD, GNU/Linux and NetBSD
operating systems. These are mostly aimed at maintainers of binary packages for
the beforementioned platforms. As an end user you might find it more convenient
to install dvdisaster from the package system of your operating system bundle or
@@ -36,7 +36,7 @@
\paragraph{Hardware requirements}\quad
\begin{itemize}
-\item x86, PowerPC or Sparc processor;
+\item x86, ARM or PowerPC processor;
\item an up-to-date CD/DVD/BD drive with ATAPI, SATA or SCSI interface;
\item enough hard disk space for creating .iso images from processed media.
\end{itemize}
@@ -73,7 +73,7 @@
\medskip
-Support for Windows and Mac OS has been ended
+Support for Windows and Mac OS X has been ended
and is not planned to be resumed in the
future (see \tlnk{qa-discontinued-os}{QA item 2.4 for an explanation)}.
@@ -93,6 +93,13 @@
\smallskip
+The dvdisaster project uses the following web site for supplying software downloads:
+
+\begin{center}
+ \homepage
+\end{center}
+
+\begin{comment}
The dvdisaster project uses the following internet domains for publishing
its web sites and supplying software downloads:
@@ -106,6 +113,8 @@
\end{center}
All domains are forwarded to the same site at dvdisaster.net.
+\end{comment}
+
No other internet or download sites are run by the dvdisaster project.
\paragraph{No money or personal data required.}\quad
diff -Nru dvdisaster-0.79.5/documentation/user-manual/howtos.tex dvdisaster-0.79.10/documentation/user-manual/howtos.tex
--- dvdisaster-0.79.5/documentation/user-manual/howtos.tex 2015-10-25 16:31:48.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/howtos.tex 2021-09-24 10:25:26.000000000 +0000
@@ -1822,7 +1822,7 @@
first option marked green lets dvdisaster create the error correction
file immediately after the medium has been (completely) read.
The second option marked green deletes the image when the error correction
-file has been sucessfully created.
+file has been successfully created.
\bigskip
@@ -2069,9 +2069,8 @@
have already been written for this task. You should however pick a writing
application which supports SAO/DAO (session at once / disc at once) writing
on CD media and does not modify ISO images supplied by third-party software
-(like dvdisaster). Some common free burning programs for GNU/Linux have been
-\tlnk{burning-compatibility}{evaluated in the burning software compatibility section}.
-For a start try using the K3B burning program.
+(like dvdisaster). Not all burning programs are \tlnk{howto-compat-overview}{compatible with dvdisaster}, so new programs should be
+\tlnk{howto-compat-augment}{checked before using}. For a start we recommend the K3B burning program.
\bigskip
@@ -3625,14 +3624,6 @@
writing software does \tlnk{howto-compat-augment}{correctly transfer the error correction data}
when using it with augmented images for the first time.
\end{itemize}
-
-\smallskip
-
-Please see also the \tlnk{burning-compatibility}{burning software compatibility list}. From time
-to time the dvdisaster project evaluates some of the most popular burning
-software for the GNU/Linux platform and summarizes the results there.
-
-%\newpage
\subsubsection{Testing compatibility with CD/DVD/BD writing software for error correction files}
\label{howto-compat-file}
@@ -3646,6 +3637,8 @@
\item You create the error correction file from the same image.
\end{enumerate}
+\newpage
+
\paragraph{Possible incompatibility:} The writing software creates a medium which
does not exactly match the image. This might prevent the error correction from recovering
the medium contents when it becomes defective.
diff -Nru dvdisaster-0.79.5/documentation/user-manual/Makefile dvdisaster-0.79.10/documentation/user-manual/Makefile
--- dvdisaster-0.79.5/documentation/user-manual/Makefile 2015-10-25 16:31:50.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/Makefile 2021-05-03 11:50:16.000000000 +0000
@@ -11,7 +11,7 @@
single:
pdflatex manual
-manual.pdf: preface.tex background.tex defect-reporting.tex howtos.tex manual.tex qa.tex burning-compatibility.tex download.tex local.tex overview.tex
+manual.pdf: preface.tex background.tex defect-reporting.tex howtos.tex manual.tex qa.tex download.tex local.tex overview.tex
pdflatex manual
pdflatex manual
pdflatex manual
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/manual.pdf and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/manual.pdf differ
diff -Nru dvdisaster-0.79.5/documentation/user-manual/manual.tex dvdisaster-0.79.10/documentation/user-manual/manual.tex
--- dvdisaster-0.79.5/documentation/user-manual/manual.tex 2015-08-16 19:44:09.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/manual.tex 2021-05-03 11:49:47.000000000 +0000
@@ -11,6 +11,7 @@
\usepackage{color}
\usepackage[table]{xcolor}
\usepackage{hyperref}
+\usepackage{comment}
\marginsize{30mm}{20mm}{20mm}{20mm} % Seitenränder links, rechts, oben, unten
\parindent0em % Keine amerikanische Einrückung am Anfang von Paragraphen
@@ -40,7 +41,7 @@
\hypersetup{
pdftitle={dvdisaster User's Manual},
- pdfauthor={Carsten Gnörlich},
+ pdfauthor={Written by the dvdisaster development team},
colorlinks=true,
linkcolor=linkblue,
citecolor=linkblue,
@@ -70,7 +71,7 @@
\definecolor{lightorange}{RGB}{255,224,150}
\pagecolor{lightorange}
\title{The dvdisaster User's Manual}
-\author{Carsten Gnörlich\\carsten@dvdisaster.org}
+\author{Written by the dvdisaster development team\\support@dvdisaster.org}
\date{}
\maketitle
\thispagestyle{empty}
@@ -90,7 +91,7 @@
Use cases for creating ecc data, recovering defective media
using ecc data and for general maintenanance of optical
media are given.
-See \url{http://dvdisaster.org} for additional resources on
+See \homepage for additional resources on
the dvdisaster project, e.g. for the {\em blue} manual (codecs.pdf)
containing a formal specification of the error correction data format.
\end{abstract}
@@ -98,9 +99,10 @@
\vfill
\begin{center}
{\em
-Copyright 2008-2015 Carsten Gnörlich.
-Verbatim copying and distribution of this entire article is permitted in any medium,
-provided this notice is preserved.}
+ Copyright 2008-2017 Carsten Gnörlich.\\
+ Copyright 2019-2021 The dvdisaster development team.\\
+ Verbatim copying and distribution of this entire article is permitted in
+ any medium, provided this notice is preserved.}
\end{center}
\newpage
@@ -129,9 +131,6 @@
\input{background}
\newpage
-\input{burning-compatibility}
-\newpage
-
\input{defect-reporting}
\label{LastPage}\label{missing}
diff -Nru dvdisaster-0.79.5/documentation/user-manual/overview.tex dvdisaster-0.79.10/documentation/user-manual/overview.tex
--- dvdisaster-0.79.5/documentation/user-manual/overview.tex 2015-10-25 16:31:50.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/overview.tex 2021-05-03 11:55:10.000000000 +0000
@@ -37,7 +37,7 @@
outside the scope of dvdisaster's internal design and goals.
Contrary to some myths saying otherwise: dvdisaster contains
no hidden program fragments or switches for reading protected discs.
-Check the source code for yourself if you don't trust me.
+Check the source code for yourself if you don't trust us.
\subsection{How to use this manual}
@@ -79,9 +79,8 @@
\smallskip
As not all optical disc burning software may be compatible with dvdisaster,
-you might want to check
-the \tlnk{burning-compatibility}{compatibility table} and the additional
-information provided with it.
+you might want to
+the \tlnk{howto-compat-overview}{perform compatibility tests} before using it .
\smallskip
@@ -101,8 +100,8 @@
\paragraph{Recovery of aged media.}
The medium processed here has become discolored and partly unreadable in its outer region.
-A reading attempt yields about 23.000 unreadable sectors of 342.000 sectors total;
-resulting in about 7,2\% defective sectors. Figure \ref{recover-linear} shows the
+A reading attempt yields about 23.600 unreadable sectors of 360056 sectors total;
+resulting in about 6,6\% defective sectors. Figure \ref{recover-linear} shows the
dvdisaster window after the reading attempt. The distribution of reading speed and
read errors over the medium is graphically shown.
The still readable sectors are stored in an ISO image called {\em medium.iso}.
@@ -114,7 +113,7 @@
\end{figure}
\paragraph{Repairing the defective image.}
-The image which has been just read is incomplete since about 23.000 sectors could
+The image which has been just read is incomplete since about 23.600 sectors could
not be read. These sectors are now reconstructed using the error correction data
created with dvdisaster. During the recovery a maximum of 20 errors per error
correction block is encountered (see figure \ref{fix-image}).
@@ -129,7 +128,7 @@
to be created before the medium goes defective.
So if you have a defective medium but never created ecc data for it, you will
-not be able to recover the defective sectors (23.000 in the above example).
+not be able to recover the defective sectors (23.600 in the above example).
The data located at the end of the medium will be lost, while you will probably
be able to extract some files which are located at the beginning of the medium.
\newpage
diff -Nru dvdisaster-0.79.5/documentation/user-manual/preface.tex dvdisaster-0.79.10/documentation/user-manual/preface.tex
--- dvdisaster-0.79.5/documentation/user-manual/preface.tex 2015-10-25 16:31:50.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/preface.tex 2021-05-03 12:38:42.000000000 +0000
@@ -1,6 +1,19 @@
\section*{Preface}
+\markboth{Preface}{Preface}
\label{preface}
+After the publishing of version 0.79.5, the project has been dormant for another half decade. As time has passed by, it is foreseeable that optical media will become extinct just like floppy discs did long ago. Still, it is important to preserve the contents of already existing optical media. Towards this end, we will maintain dvdisaster to keep it usable on current hardware and OS versions.
+
+We do not plan for a rapid release cycle. Neither will many new features be introduduced like it was at the beginning of the project. Instead, we will strive to fill in the missing gaps left over from the still open RS03 release cycle. Afterwards, dvdisaster shall be kept sound and complete as long as optical media are still in use.
+
+\bigskip
+
+{\em -- -- The dvdisaster development team, Spring 2021}
+
+
+\newpage
+\section*{Preface for version 0.79.5}
+
Since the release of dvdisaster 0.79.3\footnote{Version 0.79.4 was never finished
and released.}, nearly five years have passed.
This was partly due to changed circumstances in its
diff -Nru dvdisaster-0.79.5/documentation/user-manual/qa.tex dvdisaster-0.79.10/documentation/user-manual/qa.tex
--- dvdisaster-0.79.5/documentation/user-manual/qa.tex 2015-10-25 16:31:50.000000000 +0000
+++ dvdisaster-0.79.10/documentation/user-manual/qa.tex 2021-09-24 09:25:45.000000000 +0000
@@ -257,11 +257,19 @@
\medskip
-{\bf BD-R, BD-RW}
+{\bf BD-R, BD-RW} \quad (one or two layers)
\begin{itemize}
-\item No limitations are known so far, but very few results on the
- two-layered type (the 50GiB variety) have been reported yet.
+\item No limitations are known.
+\end{itemize}
+
+\medskip
+
+{\bf BDXL-R}
+
+\begin{itemize}
+\item Currently only the three-layered (100GB) version is tested and supported.
+\item Note: BDXL is not backwards compatible with standard BD drives.
\end{itemize}
\medskip
@@ -351,7 +359,19 @@
You are welcome, of course, to provide an unoffical translation of the
project documentation on your own webspace and at your own discretion. }
-\newpage
+ \qa{There are problems opening this manual from dvdisaster\label{qa-manual}}
+{dvdisaster uses {\tt xdg-open} for bringing up the PDF viewer. {\tt xdg-open} keeps a record of file types and applications capable of displaying them. However on some systems, {\tt xdg-open} is either not configured properly for viewing PDF, or misconfigured to use inappropriate programs like {\em Gimp}.
+
+ \smallskip
+
+ \paragraph{Remedy.} Configure {\tt xdg-open} properly. Usually the configuration is found in the ``settings'' menu of your desktop. As an alternative, use the command line to configure it for {\em xpdf}:
+
+ \smallskip
+
+ {\tt xdg-mime default xpdf.desktop application/pdf}}
+
+
+%\newpage
\subsection{Error messages}
\label{qa-error}
@@ -457,6 +477,6 @@
\qa{``Ecc file has been created with version 0.40.7.''}
{Some developer versions of dvdisaster mark their ecc files with a special bit.
- This causes dvdisaster versions upto 0.65 to falsely display the above error
+ This causes dvdisaster versions up to 0.65 to falsely display the above error
message. Please use the developer versions only together with dvdisaster
0.66 or newer versions. }
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/action-buttons.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/action-buttons.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/activate-logfile.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/activate-logfile.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/adaptive-failure.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/adaptive-failure.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/adaptive-progress.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/adaptive-progress.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/adaptive-success.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/adaptive-success.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/crc-cd-scan.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/crc-cd-scan.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/dialog-drive-full.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/dialog-drive-full.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/dialog-drive-linux.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/dialog-drive-linux.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/dialog-eccfile-full.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/dialog-eccfile-full.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/dialog-image-full.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/dialog-image-full.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/fix-image.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/fix-image.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/fix-reread-dvd.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/fix-reread-dvd.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/fix-success.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/fix-success.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/global-prefs-invoke.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/global-prefs-invoke.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/good-cd-scan.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/good-cd-scan.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/good-dvd9-scan.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/good-dvd9-scan.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-bad-rs01.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-bad-rs01.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-bad-rs02.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-bad-rs02.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-mismatch.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-mismatch.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-okay-rs01.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-okay-rs01.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-okay-rs02.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-okay-rs02.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-okay-rs03-augmented.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-okay-rs03-augmented.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-okay-rs03-file.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-okay-rs03-file.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-padding.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-padding.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/info-truncated.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/info-truncated.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/recover-linear.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/recover-linear.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/verify-fail1.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/verify-fail1.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/verify-fail2.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/verify-fail2.png differ
Binary files /tmp/tmp3m8rx4m7/4Hf0ZZvto4/dvdisaster-0.79.5/documentation/user-manual/screenshots/weak-cd-scan.png and /tmp/tmp3m8rx4m7/YTEBWe_igE/dvdisaster-0.79.10/documentation/user-manual/screenshots/weak-cd-scan.png differ
diff -Nru dvdisaster-0.79.5/ds-marker.c dvdisaster-0.79.10/ds-marker.c
--- dvdisaster-0.79.5/ds-marker.c 2015-10-25 16:31:53.000000000 +0000
+++ dvdisaster-0.79.10/ds-marker.c 2021-08-26 15:31:12.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: some GUI code ***/
+
#include "dvdisaster.h"
#define DSM_VERSION "1.00"
@@ -260,18 +262,20 @@
*** Dialogue for indicating problem with the missing sector
***/
+#ifdef WITH_GUI_YES
static void insert_buttons(GtkDialog *dialog)
{
gtk_dialog_add_buttons(dialog,
_utf("Stop reporting these errors"), 1,
_utf("Continue reporting"), 0, NULL);
}
+#endif
void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int source_type, int *number)
-{ int answer;
- guint64 recorded_number;
+{ guint64 recorded_number;
char *vol_label, *label_msg;
-
+ int answer;
+
if(Closure->noMissingWarnings)
return;
@@ -316,8 +320,8 @@
{ switch(error)
{ case SECTOR_MISSING_DISPLACED:
{ char *msg = _("Unrecoverable sector found!\n\n"
- "Sector %lld is marked unreadable and annotated to be\n"
- "in a different location (%lld).\n\n"
+ "Sector %" PRId64 " is marked unreadable and annotated to be\n"
+ "in a different location (%" PRId64 ").\n\n"
"The image was probably mastered from defective content.\n"
"For example it might contain one or more files which came\n"
"from a damaged medium which was NOT fully recovered.\n"
@@ -329,8 +333,8 @@
if(!Closure->guiMode)
PrintLogWithAsterisks(msg,sector, recorded_number, label_msg);
else
- { answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
- sector, recorded_number, label_msg);
+ { answer = GuiModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons,
+ msg, sector, recorded_number, label_msg);
if(answer) Closure->noMissingWarnings = TRUE;
}
@@ -339,7 +343,7 @@
case SECTOR_MISSING_WRONG_FP:
{ char *msg = _("Unrecoverable sector found!\n\n"
- "Sector %lld is marked unreadable and seems to come\n"
+ "Sector %" PRId64 " is marked unreadable and seems to come\n"
"from a different medium.\n\n"
"The image was probably mastered from defective content.\n"
"For example it might contain one or more files which came\n"
@@ -350,10 +354,10 @@
"error correction data for it. Sorry for the bad news.\n");
if(!Closure->guiMode)
- PrintLogWithAsterisks(msg,sector, label_msg);
+ PrintLogWithAsterisks(msg,sector, label_msg);
else
- { answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
- sector, label_msg);
+ { answer = GuiModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons,
+ msg, sector, label_msg);
if(answer) Closure->noMissingWarnings = TRUE;
}
}
@@ -365,7 +369,7 @@
if(source_type == SOURCE_MEDIUM)
{ char *msg = _("Unrecoverable sector found!\n\n"
- "Sector %lld is marked unreadable on the medium.\n\n"
+ "Sector %" PRId64 " is marked unreadable on the medium.\n\n"
"The medium was probably mastered from defective content.\n"
"For example it might contain one or more files which came\n"
"from a damaged medium which was NOT fully recovered.\n"
@@ -377,8 +381,8 @@
if(!Closure->guiMode)
PrintLogWithAsterisks(msg, sector);
else
- { answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
- sector);
+ { answer = GuiModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
+ sector);
if(answer) Closure->noMissingWarnings = TRUE;
}
@@ -388,7 +392,7 @@
if(source_type == SOURCE_ECCFILE)
{ char *msg = _("Unrecoverable sector found!\n\n"
- "Sector %lld is marked unreadable in the ecc file.\n\n"
+ "Sector %" PRId64 " is marked unreadable in the ecc file.\n\n"
"The ecc file was probably taken from a medium which\n"
"was NOT fully recovered. That means that some sectors\n"
"in the ecc file are missing and its error correction\n"
@@ -397,8 +401,8 @@
if(!Closure->guiMode)
PrintLogWithAsterisks(msg, sector);
else
- { answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
- sector);
+ { answer = GuiModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
+ sector);
if(answer) Closure->noMissingWarnings = TRUE;
}
diff -Nru dvdisaster-0.79.5/dvdisaster.c dvdisaster-0.79.10/dvdisaster.c
--- dvdisaster-0.79.5/dvdisaster.c 2015-10-18 17:46:16.000000000 +0000
+++ dvdisaster-0.79.10/dvdisaster.c 2021-09-14 10:29:02.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: some GUI code ***/
+
#include "dvdisaster.h"
/*
@@ -55,7 +57,9 @@
MODE_TRUNCATE,
MODE_ZERO_UNREADABLE,
- MODIFIER_ADAPTIVE_READ,
+ /* don't use the ascii range 32-127 so that we
+ avoid collision with the single-char options */
+ MODIFIER_ADAPTIVE_READ = 128,
MODIFIER_AUTO_SUFFIX,
MODIFIER_CACHE_SIZE,
MODIFIER_CLV_SPEED, /* unused */
@@ -73,6 +77,7 @@
MODIFIER_IGNORE_FATAL_SENSE,
MODIFIER_IGNORE_ISO_SIZE,
MODIFIER_INTERNAL_REREADS,
+ MODIFIER_NO_PROGRESS,
MODIFIER_OLD_DS_MARKER,
MODIFIER_PREFETCH_SECTORS,
MODIFIER_RANDOM_SEED,
@@ -80,6 +85,7 @@
MODIFIER_READ_ATTEMPTS,
MODIFIER_READ_MEDIUM,
MODIFIER_READ_RAW,
+ MODIFIER_REGTEST,
MODIFIER_RESOURCE_FILE,
MODIFIER_SCREEN_SHOT,
MODIFIER_SET_VERSION,
@@ -94,17 +100,19 @@
int main(int argc, char *argv[])
{ int mode = MODE_NONE;
int sequence = MODE_NONE;
- int devices_queried = FALSE;
char *debug_arg = NULL;
char *read_range = NULL;
+ int debug_mode_required=FALSE;
#ifdef WITH_NLS_YES
char *locale_test;
#ifdef WITH_EMBEDDED_SRC_PATH_YES
char src_locale_path[strlen(SRCDIR)+10];
#endif /* WITH_EMBEDDED_SRC_PATH_YES */
#endif
- int debug_mode_required=FALSE;
-
+#ifdef WITH_GUI_YES
+ int devices_queried = FALSE;
+#endif
+
#ifdef WITH_MEMDEBUG_YES
atexit(check_memleaks);
#endif
@@ -174,12 +182,7 @@
wrong packing. */
if(sizeof(EccHeader) != 4096)
- Stop("sizeof(EccHeader) is %d, but must be 4096.\n", sizeof(EccHeader));
-
- /*** If we have too much command line options fail here */
-
- if(MODIFIER_VERSION >= 'a')
- Stop("Too many command line options\n");
+ Stop("sizeof(EccHeader) is %zu, but must be 4096.\n", sizeof(EccHeader));
/*** CPU type detection. Must be done before parsing the options
as some may be CPU-related. */
@@ -229,6 +232,7 @@
{"medium-info", 0, 0, MODE_MEDIUM_INFO },
{"merge-images", 1, 0, MODE_MERGE_IMAGES },
{"method", 2, 0, 'm' },
+ {"no-progress", 0, 0, MODIFIER_NO_PROGRESS },
{"old-ds-marker", 0, 0, MODIFIER_OLD_DS_MARKER },
{"prefetch-sectors", 1, 0, MODIFIER_PREFETCH_SECTORS },
{"prefix", 1, 0, 'p'},
@@ -242,6 +246,7 @@
{"read-medium", 1, 0, MODIFIER_READ_MEDIUM },
{"read-sector", 1, 0, MODE_READ_SECTOR},
{"read-raw", 0, 0, MODIFIER_READ_RAW},
+ {"regtest", 0, 0, MODIFIER_REGTEST},
{"redundancy", 1, 0, 'n'},
{"resource-file", 1, 0, MODIFIER_RESOURCE_FILE},
{"scan", 2, 0,'s'},
@@ -318,6 +323,8 @@
Closure->mediumSize = BD_SL_SIZE;
else if(!strcmp(optarg, "BD2") || !strcmp(optarg, "bd2"))
Closure->mediumSize = BD_DL_SIZE;
+ else if(!strcmp(optarg, "BDXL3") || !strcmp(optarg, "bdxl3"))
+ Closure->mediumSize = BDXL_TL_SIZE;
else
{ int len = strlen(optarg);
if(strchr("0123456789", optarg[len-1]))
@@ -479,6 +486,9 @@
}
}
break;
+ case MODIFIER_NO_PROGRESS:
+ Closure->noProgress = 1;
+ break;
case MODIFIER_OLD_DS_MARKER:
Closure->dsmVersion = 0;
break;
@@ -486,7 +496,7 @@
Closure->prefetchSectors = atoi(optarg);
if( Closure->prefetchSectors < 32
|| Closure->prefetchSectors > MAX_PREFETCH_CACHE_SIZE)
- Stop(_("--prefetch-sectors must be in range 32...%s"),
+ Stop(_("--prefetch-sectors must be in range 32...%d"),
MAX_PREFETCH_CACHE_SIZE);
break;
case MODIFIER_RANDOM_SEED:
@@ -525,6 +535,9 @@
case MODIFIER_READ_RAW:
Closure->readRaw = TRUE;
break;
+ case MODIFIER_REGTEST:
+ Closure->regtestMode = TRUE;
+ break;
case MODIFIER_RESOURCE_FILE:
if(Closure->dotFile)
g_free(Closure->dotFile);
@@ -712,7 +725,9 @@
if(!Closure->device && mode == MODE_SEQUENCE
&& (sequence & (1<device = DefaultDevice();
+#ifdef WITH_GUI_YES
devices_queried = TRUE;
+#endif
}
/*** Dispatch action depending on mode.
@@ -753,8 +768,8 @@
}
else
{ if(image->inLast == 2048)
- PrintLog(_(": %lld medium sectors.\n"), image->sectorSize);
- else PrintLog(_(": %lld medium sectors and %d bytes.\n"),
+ PrintLog(_(": %" PRId64 " medium sectors.\n"), image->sectorSize);
+ else PrintLog(_(": %" PRId64 " medium sectors and %d bytes.\n"),
image->sectorSize-1, image->inLast);
}
image = OpenEccFileForImage(image, Closure->eccName, O_RDWR, IMG_PERMS);
@@ -867,7 +882,11 @@
/*** If no mode was selected, print the help screen. */
+#ifdef WITH_GUI_YES
if(mode == MODE_HELP)
+#else
+ if(mode == MODE_NONE || mode == MODE_HELP)
+#endif
{
/* TRANSLATORS: Program options like -r and --read are not to be translated
to avoid confusion when discussing the program in international forums. */
@@ -914,15 +933,18 @@
PrintCLI(_(" --ignore-iso-size - ignore image size from ISO/UDF data (dangerous - see man page!)\n"));
PrintCLI(_(" --internal-rereads n - drive may attempt n rereads before reporting an error\n"));
PrintCLI(_(" --medium-info - print info about medium in drive\n"));
+ PrintCLI(_(" --no-progress - do not print progress information\n"));
PrintCLI(_(" --old-ds-marker - mark missing sectors compatible with dvdisaster <= 0.70\n"));
PrintCLI(_(" --prefetch-sectors n - prefetch n sectors for RS03 encoding (uses ~nMiB)\n"));
PrintCLI(_(" --raw-mode n - mode for raw reading CD media (20 or 21)\n"));
- PrintCLI(_(" --read-attempts n-m - attempts n upto m reads of a defective sector\n"));
+ PrintCLI(_(" --read-attempts n-m - attempts n up to m reads of a defective sector\n"));
PrintCLI(_(" --read-medium n - read the whole medium up to n times\n"));
PrintCLI(_(" --read-raw - performs read in raw mode if possible\n"));
+ PrintCLI(_(" --regtest - tweaks output for compatibility with regtests\n"));
PrintCLI(_(" --resource-file p - get resource file from given path\n"));
PrintCLI(_(" --speed-warning n - print warning if speed changes by more than n percent\n"));
PrintCLI(_(" --spinup-delay n - wait n seconds for drive to spin up\n"));
+ PrintCLI(_(" --version - print version and some configuration info\n"));
if(Closure->debugMode)
{ PrintCLI("\n");
@@ -960,6 +982,7 @@
/* If no mode was selected at the command line,
start the graphical user interface. */
+#ifdef WITH_GUI_YES
if(mode == MODE_NONE)
{
/* We need to query devices in order to build
@@ -984,10 +1007,11 @@
}
Closure->guiMode = TRUE;
- ReadDotfile();
- CreateMainWindow(&argc, &argv);
+ GuiReadDotfile();
+ GuiCreateMainWindow(&argc, &argv);
}
-
+#endif
+
FreeClosure();
exit(exitCode);
}
diff -Nru dvdisaster-0.79.5/dvdisaster.h dvdisaster-0.79.10/dvdisaster.h
--- dvdisaster-0.79.5/dvdisaster.h 2015-11-26 21:03:16.000000000 +0000
+++ dvdisaster-0.79.10/dvdisaster.h 2021-08-26 15:43:59.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -40,12 +40,16 @@
#include
#include
-#include
-
+#ifdef WITH_GUI_YES
+ #include
+#else
+ #include
+#endif
#include
#include
#include
#include
+#include /* PRId64 et. al */
#ifdef WITH_NLS_YES
#include
#include
@@ -66,12 +70,61 @@
#error "need multithreading glib2"
#endif
+#ifdef WITH_GUI_NO
+/* define some symbols normally coming from gtk and helper libs */
+
+#define GTK_MESSAGE_QUESTION 0
+#define GTK_MESSAGE_WARNING 0
+#define GTK_MESSAGE_ERROR 0
+#define GTK_BUTTONS_OK 0
+#define GTK_BUTTONS_OK_CANCEL 0
+#define GTK_BUTTONS_NONE 0
+
+typedef int GtkButtonsType;
+typedef void GtkDialog;
+typedef void GtkLabel;
+typedef void GtkNotebook;
+typedef int GtkMessageType;
+typedef void GtkScrolledWindow;
+typedef void GtkTextBuffer;
+typedef void GtkTooltips;
+typedef void GtkWidget;
+typedef void GtkWindow;
+
+typedef void GdkColor;
+typedef void GdkDrawable;
+typedef void GdkGC;
+typedef void GdkPixbuf;
+
+typedef void PangoLayout;
+#endif
+
+/* under MinGW, __attribute__ format printf doesn't work and outputs warnings for %lld,
+ * even if it's supported and doesn't output any warning under -Wformat when directly
+ * used with the real printf() func. However 'gnu_printf' works, see
+ * https://github.com/ocornut/imgui/issues/3592
+ */
+#ifdef __MINGW32__ /* defined under 32 and 64 bits mingw */
+# define PRINTF_FLAVOR gnu_printf
+#else
+# define PRINTF_FLAVOR printf
+#endif
+#define PRINTF_FORMAT2(ARG1,ARG2) __attribute__((format(PRINTF_FLAVOR, ARG1, ARG2)))
+#define PRINTF_FORMAT(ARG) PRINTF_FORMAT2(ARG,ARG+1)
+
/* Phrase extraction for gettext()
Note that these functions are even required when
WITH_NLS_NO is set! */
-#define _(string) sgettext(string)
-#define _utf(string) sgettext_utf8(string)
+#ifndef WITH_DEBUG_PRINTF_FORMAT_YES
+ #define _(string) sgettext(string)
+ #define _utf(string) sgettext_utf8(string)
+#else
+/* disable sgettext() calls so that the compiler
+ can analyze printf format strings */
+ #define _(string) string
+ #define _utf(string) string
+#endif
/* File permissions for images */
@@ -85,11 +138,22 @@
/* Some standard media sizes */
+/* WARNING: These values affect RS03 in non-obvious ways.
+ * If you create RS03 data with changed values, you MUST
+ * keep a dvdisaster version with the changed values for
+ * recovering images with that RS03 data.
+ * dvdisaster compiled with default values may appear to
+ * scan and verify such images correctly as long as they
+ * are not damaged. But recovery WILL BREAK when
+ * processing a damaged image. YOU HAVE BEEN WARNED.
+ */
+
#define CDR_SIZE (351*1024)
-#define DVD_SL_SIZE 2295104 /* DVD+R/RW size used at least common denominator */
+#define DVD_SL_SIZE 2295104 /* DVD+R/RW size used as least common denominator */
#define DVD_DL_SIZE 4171712 /* also seen: 4148992 4173824 */
#define BD_SL_SIZE 11826176
#define BD_DL_SIZE 23652352
+#define BDXL_TL_SIZE 47305728
/* Maximum accepted media sizes (in 2K sectors) */
@@ -101,7 +165,7 @@
#define MAX_CODEC_THREADS 1024 /* not including IO and GUI */
#define MAX_OLD_CACHE_SIZE 8096 /* old cache for RS01/RS02 */
-#define MAX_PREFETCH_CACHE_SIZE (512*1024) /* upto 0.5TB RS03 */
+#define MAX_PREFETCH_CACHE_SIZE (512*1024) /* up to 0.5TB RS03 */
/* Choices for I/O strategy */
@@ -131,6 +195,7 @@
typedef struct _GlobalClosure
{ int version; /* Integer number representing current program version */
char *cookedVersion; /* version string formatted for GUI use */
+ gint8 releaseFlags; /* flags marking release status */
char *versionString; /* more detailed version string */
char *device; /* currently selected device to read from */
GPtrArray *deviceNames; /* List of drive names */
@@ -144,13 +209,15 @@
gint64 cdSize; /* Maximum cd size (for RS02 type images) */
gint64 dvdSize1; /* Maximum 1-layer dvd size (for augmented images) */
gint64 dvdSize2; /* Maximum 2-layer dvd size (for augmented images) */
- gint64 bdSize1; /* Maximum 1-layer dvd size (for augmented images) */
- gint64 bdSize2; /* Maximum 2-layer dvd size (for augmented images) */
+ gint64 bdSize1; /* Maximum 1-layer bd size (for augmented images) */
+ gint64 bdSize2; /* Maximum 2-layer bd size (for augmented images) */
+ gint64 bdSize3; /* Maximum 3-layer bdxl size (for augmented images) */
gint64 savedCDSize; /* Undo values for above */
gint64 savedDVDSize1;
gint64 savedDVDSize2;
gint64 savedBDSize1;
gint64 savedBDSize2;
+ gint64 savedBDSize3;
gint64 mediumSize; /* Maximum medium size (for augmented images) */
int cacheMiB; /* Cache setting for the parity codec, in megabytes */
int prefetchSectors; /* Prefetch setting per encoder thread */
@@ -171,11 +238,13 @@
int spinupDelay; /* Seconds to wait for drive to spin up */
int truncate; /* confirms truncation of large images */
int noTruncate; /* do not truncate image at the end */
+ int noProgress; /* do not print the percentage progress indicator */
int dsmVersion; /* 1 means new style dead sector marker */
int unlinkImage; /* delete image after ecc file creation */
int confirmDeletion; /* do not ask whether files should be deleted */
int driveSpeed; /* currently unused */
int debugMode; /* may activate additional features */
+ int regtestMode; /* tweaks output for compatibility with regtests */
int debugCDump; /* dump as #include file instead of hexdump */
int verbose; /* may activate additional messages */
int quickVerify; /* do only non time-consuming verify actions */
@@ -212,7 +281,6 @@
int logFileStamped; /* time stamp written to log file */
char *binDir; /* place where the binary resides */
char *docDir; /* place where our documentation resides */
- char *viewer; /* Name of preferred PDF viewer */
GMutex progressLock; /* A mutex protected the stuff below */
char bs[256]; /* A string of 255 backspace characters */
@@ -226,11 +294,8 @@
char *errorTitle; /* Title to show in error dialogs */
gint32 randomSeed; /* for the random number generator */
- guint32 *crcCache; /* sectorwise CRC32 for last image read */
- char *crcImageName; /* file name of cached image */
- unsigned char md5Cache[16]; /* md5sum of last image read */
+ struct _CrcBuf *crcBuf; /* crcBuf of last image read */
-
/*** GUI-related things */
int guiMode; /* TRUE if GUI is active */
@@ -261,7 +326,7 @@
GtkWidget *eccEntry; /* ecc name entry field */
GtkWidget *notebook; /* The notebook behind our central output area */
- GtkLabel *status; /* The status label */
+ GtkWidget *status; /* The status label */
GtkWidget *prefsButton;
GtkWidget *helpButton;
@@ -318,7 +383,6 @@
GtkWidget *readLinearFootline;
GtkWidget *readLinearFootlineBox;
gint64 crcErrors, readErrors; /* these are passed between threads and must therefore be global */
- int crcAvailable; /* true when CRC data is available while reading/scanning */
/*** Widgets for the adaptive reading action */
@@ -364,7 +428,7 @@
#define FINGERPRINT_SECTOR 16 /* Sector currently used to calculate the fingerprint. */
/* This is the ISO filesystem root sector which contains */
/* the volume label and creation time stamps. */
- /* Versions upto 0.64 used sector 257, */
+ /* Versions up to 0.64 used sector 257, */
/* but that was not a wise choice for CD media.*/
#define MFLAG_DEVEL (1<<0) /* for methodFlags[3] */
@@ -425,9 +489,10 @@
*** forward declarations
***/
-struct _RawBuffer *rawbuffer_forward;
-struct _DefectiveSectorHeader *dsh_forward;
-struct _DeviceHandle *dh_forward;
+extern struct _RawBuffer *rawbuffer_forward;
+extern struct _DefectiveSectorHeader *dsh_forward;
+extern struct _DeviceHandle *dh_forward;
+extern struct _Image *dh_image;
/***
*** bitmap.c
@@ -443,14 +508,14 @@
#define GetBit(bm,bit) (bm->bitmap[(bit)>>5] & (1<<((bit)&31)))
#define SetBit(bm,bit) bm->bitmap[(bit)>>5] |= (1<<((bit)&31))
#define ClearBit(bm,bit) bm->bitmap[(bit)>>5] &= ~(1<<((bit)&31))
-int CountBits(Bitmap*);
+gint32 CountBits(Bitmap*);
void FreeBitmap(Bitmap*);
/***
*** build.h
***/
-int buildCount;
+extern int buildCount;
/***
*** cacheprobe.h
@@ -464,14 +529,16 @@
void InitClosure(void);
void LocalizedFileDefaults(void);
-void UpdateMarkup(char**, GdkColor*);
-void DefaultColors(void);
-void ClearCrcCache(void);
void FreeClosure(void);
-void ReadDotfile(void);
void WriteSignature(void);
int VerifySignature(void);
+#ifdef WITH_GUI_YES
+void GuiDefaultColors(void);
+void GuiReadDotfile(void);
+void GuiUpdateMarkup(char**, GdkColor*);
+#endif
+
/***
*** crc32.c
***/
@@ -483,10 +550,36 @@
*** crcbuf.c
***/
+/* Flags for CrcBuf->md5State */
+
+#define MD5_INVALID 0
+#define MD5_BUILDING (1<<0)
+#define MD5_DATA_COMPLETE (1<<1)
+#define MD5_IMAGE_COMPLETE (1<<2)
+#define MD5_COMPLETE (MD5_DATA_COMPLETE | MD5_IMAGE_COMPLETE)
+
typedef struct _CrcBuf
-{ guint32 *crcbuf;
- guint64 size;
+{ /* CRC32 of image sectors */
+ guint32 *crcbuf;
+ guint64 crcSize;
Bitmap *valid;
+ gint32 crcCached; /* CRC has been retrieved from ECC or previous run */
+
+ /* MD5 sum of image sectors */
+ struct MD5Context *md5Ctxt; /* context for building the image MD5 sum */
+ int md5State; /* state of md5 sum */
+ guint64 lastSector; /* tracking of sector sequence */
+ unsigned char dataMD5sum[16]; /* md5sum of data portion from last image read */
+ unsigned char imageMD5sum[16]; /* md5sum of last image read */
+
+ /* Characteristics of image */
+ char *imageName; /* file name of cached image */
+ guint64 dataSectors; /* number of data sectors (minus ecc sectors) */
+ guint64 coveredSectors; /* sectors covered by crc (EH, padding, ...) */
+ guint64 allSectors; /* number of all image sectors */
+ guint8 mediumFP[16]; /* fingerprint of image */
+ gint32 fpSector; /* sector which was fingerprinted */
+ gint32 fpValid;
} CrcBuf;
enum
@@ -496,10 +589,26 @@
CRC_OUTSIDE_BOUND
};
-CrcBuf *CreateCrcBuf(guint64);
+/* Modes for AddSectorToCrcBuffer */
+
+#define CRCBUF_UPDATE_CRC 1<<0
+#define CRCBUF_UPDATE_MD5 1<<1
+#define CRCBUF_UPDATE_ALL 3
+#define CRCBUF_UPDATE_CRC_AFTER_DATA 1<<2
+
+/* Modes for CtcBufValid */
+
+#define FULL_IMAGE 0
+#define DATA_SECTORS_ONLY 1
+
+CrcBuf *CreateCrcBuf(struct _Image*);
void FreeCrcBuf(CrcBuf*);
int CheckAgainstCrcBuffer(CrcBuf*, gint64, unsigned char*);
+int AddSectorToCrcBuffer(CrcBuf*, int, guint64, unsigned char*, int);
+int CrcBufValid(CrcBuf*, struct _Image*, int);
+
+void PrintCrcBuf(CrcBuf*);
/***
*** curve.c
@@ -533,17 +642,20 @@
#define DRAW_FCURVE (1<<1)
#define DRAW_LCURVE (1<<2)
-Curve* CreateCurve(GtkWidget*, char*, char*, int, int);
-void ZeroCurve(Curve*);
-void FreeCurve(Curve*);
-
-void UpdateCurveGeometry(Curve*, char*, int);
-
-int CurveX(Curve*, gdouble);
-int CurveY(Curve*, gdouble);
-int CurveLogY(Curve*, gdouble);
-void RedrawAxes(Curve*);
-void RedrawCurve(Curve*, int);
+#ifdef WITH_GUI_YES
+Curve* GuiCreateCurve(GtkWidget*, char*, char*, int, int);
+void GuiZeroCurve(Curve*);
+void GuiFreeCurve(Curve*);
+
+void GuiUpdateCurveGeometry(Curve*, char*, int);
+
+int GuiCurveX(Curve*, gdouble);
+int GuiCurveY(Curve*, gdouble);
+int GuiCurveLogY(Curve*, gdouble);
+
+void GuiRedrawAxes(Curve*);
+void GuiRedrawCurve(Curve*, int);
+#endif
/***
*** debug.c
@@ -551,7 +663,7 @@
void HexDump(unsigned char*, int, int);
void LaTeXify(gint32*, int, int);
-void AppendToTextFile(char*,char*, ...);
+void AppendToTextFile(char*,char*, ...) PRINTF_FORMAT(2);
void CopySector(char*);
void Byteset(char*);
void Erase(char*);
@@ -689,25 +801,27 @@
int outerPadding; /* Padding between window and outer vbox */
} LabelWithOnlineHelp;
-LabelWithOnlineHelp* CreateLabelWithOnlineHelp(char*, char*);
-LabelWithOnlineHelp* CloneLabelWithOnlineHelp(LabelWithOnlineHelp*, char*);
-void FreeLabelWithOnlineHelp(LabelWithOnlineHelp*);
-void SetOnlineHelpLinkText(LabelWithOnlineHelp*, char*);
-void AddHelpListItem(LabelWithOnlineHelp*, char*, ...);
-void AddHelpParagraph(LabelWithOnlineHelp*, char*, ...);
-void AddHelpWidget(LabelWithOnlineHelp*, GtkWidget*);
+#ifdef WITH_GUI_YES
+LabelWithOnlineHelp* GuiCreateLabelWithOnlineHelp(char*, char*);
+LabelWithOnlineHelp* GuiCloneLabelWithOnlineHelp(LabelWithOnlineHelp*, char*);
+void GuiFreeLabelWithOnlineHelp(LabelWithOnlineHelp*);
+void GuiSetOnlineHelpLinkText(LabelWithOnlineHelp*, char*);
+void GuiAddHelpListItem(LabelWithOnlineHelp*, char*, ...) PRINTF_FORMAT(2);
+void GuiAddHelpParagraph(LabelWithOnlineHelp*, char*, ...) PRINTF_FORMAT(2);
+void GuiAddHelpWidget(LabelWithOnlineHelp*, GtkWidget*);
/* Specific online help dialogs */
-GtkWidget* ShowTextfile(char*, char*, char*, GtkScrolledWindow**, GtkTextBuffer**);
-void ShowGPL();
-void ShowLog();
-void UpdateLog();
-void AboutDialog();
-
-void AboutText(GtkWidget*, char*, ...);
-void AboutLink(GtkWidget*, char*, char*);
-void AboutTextWithLink(GtkWidget*, char*, char*);
+GtkWidget* GuiShowTextfile(char*, char*, char*, GtkScrolledWindow**, GtkTextBuffer**);
+void GuiShowGPL();
+void GuiShowLog();
+void GuiUpdateLog();
+void GuiAboutDialog();
+
+void GuiAboutText(GtkWidget*, char*, ...) PRINTF_FORMAT(2);
+void GuiAboutLink(GtkWidget*, char*, char*);
+void GuiAboutTextWithLink(GtkWidget*, char*, char*);
+#endif
/***
*** heuristic-lec.c
@@ -726,7 +840,9 @@
*** icon-factory.c
***/
-void CreateIconFactory();
+#ifdef WITH_GUI_YES
+void GuiCreateIconFactory();
+#endif
/***
*** image.c
@@ -734,7 +850,7 @@
enum {IMAGE_NONE, IMAGE_FILE, IMAGE_MEDIUM};
enum {FP_UNKNOWN, FP_UNREADABLE, FP_PRESENT};
-enum {ECCFILE_PRESENT, ECCFILE_MISSING, ECCFILE_INVALID, ECCFILE_DEFECTIVE_HEADER, ECCFILE_WRONG_CODEC};
+enum {ECCFILE_PRESENT, ECCFILE_NOPERM, ECCFILE_MISSING, ECCFILE_INVALID, ECCFILE_DEFECTIVE_HEADER, ECCFILE_WRONG_CODEC};
typedef struct _Image
{ int type; /* file or medium */
@@ -768,11 +884,12 @@
int fpState; /* 0=unknown; 1=unreadable; 2=present */
/*
- * layout caching
+ * layout and checksum caching
*/
void *cachedLayout; /* Layout of different codecs */
-
+ CrcBuf *crcCache; /* cached crc and md5 sums */
+
/*
* optionally attached ecc file
*/
@@ -854,7 +971,7 @@
void DefaultLogFile();
void VPrintLogFile(char*, va_list);
-void PrintLogFile(char*, ...);
+void PrintLogFile(char*, ...) PRINTF_FORMAT(1);
/***
*** maintenance.c
@@ -884,16 +1001,21 @@
ACTION_FIX
} MajorActions;
-void CreateMainWindow(int*, char***);
-void ContinueWithAction(int);
+#ifdef WITH_GUI_YES
+void GuiCreateMainWindow(int*, char***);
+void GuiContinueWithAction(int);
+#endif
/***
*** medium-info.c
***/
-void CreateMediumInfoWindow(void);
void PrintMediumInfo(void*);
+#ifdef WITH_GUI_YES
+void GuiCreateMediumInfoWindow(void);
+#endif
+
/***
*** memtrack.c
***/
@@ -933,7 +1055,7 @@
void* realloc_ext(void*, int, char*, int);
void* try_malloc_ext(int,char*,int);
char* strdup_ext(const char*,char*,int);
-char* strdup_printf_ext(char*, char*, int, ...);
+char* strdup_printf_ext(char*, char*, int, ...) PRINTF_FORMAT2(1,4);
char* strdup_vprintf_ext(char*, va_list, char*, int);
gchar* g_locale_to_utf8_ext(const gchar*, gssize, gsize*, gsize*, GError**, char*, int);
void free_ext(void*,char*,int);
@@ -947,9 +1069,11 @@
*** menubar.c
***/
-void AttachTooltip(GtkWidget*, char*, char*);
-GtkWidget* CreateMenuBar(GtkWidget*);
-GtkWidget* CreateToolBar(GtkWidget*);
+#ifdef WITH_GUI_YES
+void GuiAttachTooltip(GtkWidget*, char*, char*);
+GtkWidget* GuiCreateMenuBar(GtkWidget*);
+GtkWidget* GuiCreateToolBar(GtkWidget*);
+#endif
/***
*** method.c / method-link.c
@@ -1011,58 +1135,78 @@
void CalcSectors(guint64, guint64*, int*);
-void PrintCLI(char*, ...);
-void PrintLog(char*, ...);
-void PrintLogWithAsterisks(char*, ...);
-void Verbose(char*, ...);
-void PrintTimeToLog(GTimer*, char*, ...);
-void PrintProgress(char*, ...);
+void PrintCLI(char*, ...) PRINTF_FORMAT(1);
+void PrintLog(char*, ...) PRINTF_FORMAT(1);
+void PrintLogWithAsterisks(char*, ...) PRINTF_FORMAT(1);
+void Verbose(char*, ...) PRINTF_FORMAT(1);
+void PrintTimeToLog(GTimer*, char*, ...) PRINTF_FORMAT(2);
+void PrintProgress(char*, ...) PRINTF_FORMAT(1);
void ClearProgress(void);
-void PrintCLIorLabel(GtkLabel*, char*, ...);
+void PrintCLIorLabel(GtkWidget*, char*, ...) PRINTF_FORMAT(2);
int GetLongestTranslation(char*, ...);
+void vLogWarning(char*, va_list);
-void LogWarning(char*, ...);
-void Stop(char*, ...);
+void LogWarning(char*, ...) PRINTF_FORMAT(1);
+void Stop(char*, ...) PRINTF_FORMAT(1);
void RegisterCleanup(char*, void (*)(gpointer), gpointer);
void UnregisterCleanup(void);
GThread* CreateGThread(GThreadFunc, gpointer);
-void ShowWidget(GtkWidget*);
-void AllowActions(gboolean);
-
-void ShowMessage(GtkWindow*, char*, GtkMessageType);
-GtkWidget* CreateMessage(char*, GtkMessageType, ...);
-void SetLabelText(GtkLabel*, char*, ...);
-void SetProgress(GtkWidget*, int, int);
-
-int ModalDialog(GtkMessageType, GtkButtonsType, void (*)(GtkDialog*), char*, ...);
-int ModalWarning(GtkMessageType, GtkButtonsType, void (*)(GtkDialog*), char*, ...);
-
-void SetText(PangoLayout*, char*, int*, int*);
-void SwitchAndSetFootline(GtkWidget*, int, GtkWidget*, char*, ...);
-
-void ReverseCancelOK(GtkDialog*);
-void TimedInsensitive(GtkWidget*, int);
+/***
+ *** misc-gui.c
+ ***/
-int GetLabelWidth(GtkLabel*, char*, ...);
-void LockLabelSize(GtkLabel*, char*, ...);
+#ifdef WITH_GUI_YES
+void GuiAllowActions(gboolean);
+int GuiConfirmEccDeletion(char *);
+int GuiConfirmImageDeletion(char *);
+GtkWidget* GuiCreateMessage(char*, GtkMessageType, ...) PRINTF_FORMAT2(1,3);
+void GuiExitWorkerThread();
+int GuiGetLabelWidth(GtkLabel*, char*, ...) PRINTF_FORMAT(2);
+void GuiLockLabelSize(GtkWidget*, char*, ...) PRINTF_FORMAT(2);
+int GuiModalDialog(GtkMessageType, GtkButtonsType, void (*)(GtkDialog*), char*, ...) PRINTF_FORMAT(4);
+void GuiReverseCancelOK(GtkDialog*);
+void GuiSetLabelText(GtkWidget*, char*, ...) PRINTF_FORMAT(2);
+void GuiShowMessage(GtkWindow*, char*, GtkMessageType);
+void GuiSetProgress(GtkWidget*, int, int);
+void GuiSetText(PangoLayout*, char*, int*, int*);
+void GuiShowWidget(GtkWidget*);
+void GuiSwitchAndSetFootline(GtkWidget*, int, GtkWidget*, char*, ...) PRINTF_FORMAT(4);
+#else
+#define GuiAllowActions(g)
+#define GuiConfirmEccDeletion(c) (1)
+#define GuiConfirmImageDeletion(c) (1)
+#define GuiCreateMessage(a, b, args...)
+#define GuiExitWorkerThread()
+#define GuiGetLabelWidth(l, c, args...) (0)
+#define GuiLockLabelSize(w, c, args...)
+#define GuiModalDialog(a, b, c, d, args...) (0)
+#define GuiReverseCancelOK(d)
+#define GuiSetLabelText(w, c, args...)
+#define GuiShowMessage(w, a, b)
+#define GuiSetProgress(w, a, b)
+#define GuiSetText(p, a, b, c)
+#define GuiShowWidget(w)
+#define GuiSwitchAndSetFootline(w, a, b, c, args...)
+#endif
-int ConfirmImageDeletion(char *);
-int ConfirmEccDeletion(char *);
+int ModalWarning(GtkMessageType, GtkButtonsType, void (*)(GtkDialog*), char*, ...) PRINTF_FORMAT(4);
/***
*** preferences.c
***/
-void CreatePreferencesWindow(void);
-void UpdateMethodPreferences(void);
-void HidePreferences(void);
-void FreePreferences(void*);
-
-void UpdatePrefsExhaustiveSearch(void);
-void UpdatePrefsConfirmDeletion(void);
-void RegisterPreferencesHelpWindow(LabelWithOnlineHelp*);
+#ifdef WITH_GUI_YES
+void GuiCreatePreferencesWindow(void);
+void GuiUpdateMethodPreferences(void);
+void GuiHidePreferences(void);
+void GuiFreePreferences(void*);
+
+void GuiUpdatePrefsExhaustiveSearch(void);
+void GuiUpdatePrefsConfirmDeletion(void);
+void GuiRegisterPreferencesHelpWindow(LabelWithOnlineHelp*);
+#endif
/***
*** print-sense.c
@@ -1087,9 +1231,8 @@
*** raw-editor.c
***/
-void CreateRawEditor(void);
-void FreeRawEditorContext(void*);
-
+void GuiCreateRawEditor(void);
+void GuiFreeRawEditorContext(void*);
/***
*** raw-sector-cache.c
@@ -1123,20 +1266,27 @@
*** read-linear-window.c
***/
-void ResetLinearReadWindow();
-void CreateLinearReadWindow(GtkWidget*);
+#ifdef WITH_GUI_YES
+void GuiInitializeCurve(void*, int, int);
+void GuiAddCurveValues(void*, int, int, int);
+void GuiMarkExistingSectors(void);
+
+void GuiResetLinearReadWindow();
+void GuiRedrawReadLinearWindow(void);
+void GuiCreateLinearReadWindow(GtkWidget*);
+#else
+#define GuiInitializeCurve(a, b, c)
+#define GuiAddCurveValues(a, b, c, d)
+#define GuiMarkExistingSectors()
-void InitializeCurve(void*, int, int);
-void AddCurveValues(void*, int, int, int);
-void MarkExistingSectors(void);
-void RedrawReadLinearWindow(void);
+#define GuiRedrawReadLinearWindow()
+#endif
/***
*** read-adaptive.c
***/
void GetReadingRange(gint64, gint64*, gint64*);
-
void ReadMediumAdaptive(gpointer);
/***
@@ -1145,16 +1295,30 @@
#define ADAPTIVE_READ_SPIRAL_SIZE 4800
-void ResetAdaptiveReadWindow();
-void SetAdaptiveReadMinimumPercentage(int);
-void CreateAdaptiveReadWindow(GtkWidget*);
-
-void ClipReadAdaptiveSpiral(int);
-void SetAdaptiveReadSubtitle(char*);
-void SetAdaptiveReadFootline(char*, GdkColor*);
-void UpdateAdaptiveResults(gint64, gint64, gint64, int);
-void ChangeSegmentColor(GdkColor*, int);
-void RemoveFillMarkers();
+#ifdef WITH_GUI_YES
+void GuiClipReadAdaptiveSpiral(int);
+void GuiChangeSegmentColor(GdkColor*, int);
+void GuiRemoveFillMarkers();
+
+void GuiSetAdaptiveReadSubtitle(char*);
+void GuiSetAdaptiveReadFootline(char*, GdkColor*);
+void GuiSetAdaptiveReadMinimumPercentage(int);
+void GuiUpdateAdaptiveResults(gint64, gint64, gint64, int);
+
+void GuiResetAdaptiveReadWindow();
+#else
+#define GuiClipReadAdaptiveSpiral(i)
+#define GuiChangeSegmentColor(g, i)
+#define GuiRemoveFillMarkers()
+
+#define GuiSetAdaptiveReadSubtitle(c)
+#define GuiSetAdaptiveReadFootline(c, d)
+#define GuiSetAdaptiveReadMinimumPercentage(i)
+#define GuiUpdateAdaptiveResults(a, b, c, d)
+#endif
+
+void GuiCreateAdaptiveReadWindow(GtkWidget*);
+
/***
*** recover-raw.c
@@ -1296,7 +1460,7 @@
*** show-manual.c
***/
-void ShowPDF(char*);
+void GuiShowURL(char*);
/***
*** smart-lec.c
@@ -1331,21 +1495,26 @@
GdkColor *colorUnderCursor;
} Spiral;
-Spiral* CreateSpiral(GdkColor*, GdkColor*, int, int, int);
-void SetSpiralWidget(Spiral*, GtkWidget*);
-void FillSpiral(Spiral*, GdkColor*);
-void FreeSpiral(Spiral*);
-void DrawSpiral(Spiral*);
-void DrawSpiralSegment(Spiral*, GdkColor*, int);
-void DrawSpiralLabel(Spiral*, PangoLayout*, char*, GdkColor*, int, int);
-
-void ChangeSpiralCursor(Spiral*, int);
-void MoveSpiralCursor(Spiral*, int);
+#ifdef WITH_GUI_YES
+Spiral* GuiCreateSpiral(GdkColor*, GdkColor*, int, int, int);
+void GuiSetSpiralWidget(Spiral*, GtkWidget*);
+void GuiFreeSpiral(Spiral*);
+
+void GuiFillSpiral(Spiral*, GdkColor*);
+void GuiDrawSpiral(Spiral*);
+void GuiDrawSpiralSegment(Spiral*, GdkColor*, int);
+void GuiDrawSpiralLabel(Spiral*, PangoLayout*, char*, GdkColor*, int, int);
+void GuiChangeSpiralCursor(Spiral*, int);
+void GuiMoveSpiralCursor(Spiral*, int);
+#else
+#define GuiChangeSpiralCursor(a, b)
+#define GuiFreeSpiral(s)
+#endif
/***
*** welcome-window.c
***/
-void CreateWelcomePage(GtkNotebook*);
+void GuiCreateWelcomePage(GtkNotebook*);
-#endif /* DVDISASTER_H */
+#endif /* DVDISASTER_H */
diff -Nru dvdisaster-0.79.5/ecc-rs01.c dvdisaster-0.79.10/ecc-rs01.c
--- dvdisaster-0.79.5/ecc-rs01.c 2015-01-03 13:44:26.000000000 +0000
+++ dvdisaster-0.79.10/ecc-rs01.c 2021-06-14 12:53:36.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: some GUI code ***/
+
#include "dvdisaster.h"
#include "rs01-includes.h"
@@ -37,7 +39,7 @@
/*** Standard infomation and methods */
- strncpy(method->name, "RS01", 4);
+ memcpy(method->name, "RS01", 4);
method->menuEntry = g_strdup(_("Error correction file (RS01)"));
method->description = g_strdup(_("Classic Reed-Solomon method based on polynomial arithmetic"));
method->create = RS01Create;
@@ -53,6 +55,12 @@
method->finalizeCksums = RS01FinalizeCksums;
method->expectedImageSize = RS01ExpectedImageSize;
+ /*** Widget list must even exist with dummy values in CLI only version
+ to prevent null ptr references in SetLabel() etc. */
+
+ method->widgetList = g_malloc0(sizeof(RS01Widgets));
+
+#ifdef WITH_GUI_YES
/*** Linkage to rs01-window.c */
method->createCreateWindow = CreateRS01EWindow;
@@ -68,7 +76,8 @@
method->createVerifyWindow = CreateRS01VerifyWindow;
method->resetVerifyWindow = ResetRS01VerifyWindow;
-
+#endif
+
/*** Register ourself */
method->destroy = destroy;
@@ -79,17 +88,18 @@
static void destroy(Method *method)
{ RS01Widgets *wl = (RS01Widgets*)method->widgetList;
+
g_free(method->ckSumClosure);
if(wl)
- { if(wl->fixCurve) FreeCurve(wl->fixCurve);
-
- if(wl->cmpSpiral)
- FreeSpiral(wl->cmpSpiral);
+ {
+#ifdef WITH_GUI_YES
+ GuiFreeCurve(wl->fixCurve);
+ GuiFreeSpiral(wl->cmpSpiral);
if(wl->cmpLayout)
g_object_unref(wl->cmpLayout);
-
+#endif
g_free(wl);
}
}
diff -Nru dvdisaster-0.79.5/ecc-rs02.c dvdisaster-0.79.10/ecc-rs02.c
--- dvdisaster-0.79.5/ecc-rs02.c 2015-01-03 13:44:26.000000000 +0000
+++ dvdisaster-0.79.10/ecc-rs02.c 2021-06-14 12:53:51.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: some GUI code ***/
+
#include "dvdisaster.h"
#include "rs02-includes.h"
@@ -38,7 +40,7 @@
/*** Standard infomation and methods */
- strncpy(method->name, "RS02", 4);
+ memcpy(method->name, "RS02", 4);
method->menuEntry = g_strdup(_("Augmented image (RS02)"));
method->description = g_strdup(_("Reed-Solomon method with improved tolerance for defective ecc data"));
method->create = RS02Create;
@@ -54,6 +56,12 @@
method->finalizeCksums = RS02FinalizeCksums;
method->expectedImageSize = RS02ExpectedImageSize;
+ /*** Widget list must even exist with dummy values in CLI only version
+ to prevent null ptr references in SetLabel() etc. */
+
+ method->widgetList = g_malloc0(sizeof(RS02Widgets));
+
+#ifdef WITH_GUI_YES
/*** Linkage to rs02-window.c */
method->createCreateWindow = CreateRS02EncWindow;
@@ -70,7 +78,8 @@
method->createVerifyWindow = CreateRS02VerifyWindow;
method->resetVerifyWindow = ResetRS02VerifyWindow;
-
+#endif
+
/*** Register ourself */
method->destroy = destroy;
@@ -87,14 +96,14 @@
g_free(method->ckSumClosure);
if(wl)
- { if(wl->fixCurve) FreeCurve(wl->fixCurve);
-
- if(wl->cmpSpiral)
- FreeSpiral(wl->cmpSpiral);
+ {
+#ifdef WITH_GUI_YES
+ GuiFreeCurve(wl->fixCurve);
+ GuiFreeSpiral(wl->cmpSpiral);
if(wl->cmpLayout)
g_object_unref(wl->cmpLayout);
-
+#endif
g_free(wl);
}
}
diff -Nru dvdisaster-0.79.5/ecc-rs03.c dvdisaster-0.79.10/ecc-rs03.c
--- dvdisaster-0.79.5/ecc-rs03.c 2015-01-03 13:44:26.000000000 +0000
+++ dvdisaster-0.79.10/ecc-rs03.c 2021-06-14 12:54:06.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: some GUI code ***/
+
#include "dvdisaster.h"
#include "rs03-includes.h"
@@ -38,7 +40,7 @@
/*** Standard infomation and methods */
- strncpy(method->name, "RS03", 4);
+ memcpy(method->name, "RS03", 4);
method->menuEntry = g_strdup(_("Multithreaded RS codec (RS03)"));
method->description = g_strdup(_("Multithreaded Reed-Solomon codec for error correction files and augmented images"));
method->create = RS03Create;
@@ -55,6 +57,9 @@
method->recognizeEccFile = RS03RecognizeFile;
method->recognizeEccImage = RS03RecognizeImage;
+ method->widgetList = g_malloc0(sizeof(RS03Widgets));
+
+#ifdef WITH_GUI_YES
/*** Linkage to rs03-window.c */
method->createCreateWindow = CreateRS03EncWindow;
@@ -71,7 +76,8 @@
method->createVerifyWindow = CreateRS03VerifyWindow;
method->resetVerifyWindow = ResetRS03VerifyWindow;
-
+#endif /* WITH_GUI_YES */
+
/*** Register ourself */
method->destroy = destroy;
@@ -88,14 +94,14 @@
g_free(method->ckSumClosure);
if(wl)
- { if(wl->fixCurve) FreeCurve(wl->fixCurve);
-
- if(wl->cmpSpiral)
- FreeSpiral(wl->cmpSpiral);
+ {
+#ifdef WITH_GUI_YES
+ GuiFreeCurve(wl->fixCurve);
+ GuiFreeSpiral(wl->cmpSpiral);
if(wl->cmpLayout)
g_object_unref(wl->cmpLayout);
-
+#endif
g_free(wl);
}
}
diff -Nru dvdisaster-0.79.5/endian.c dvdisaster-0.79.10/endian.c
--- dvdisaster-0.79.5/endian.c 2015-10-25 16:31:53.000000000 +0000
+++ dvdisaster-0.79.10/endian.c 2021-09-02 12:18:39.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
/***
@@ -62,7 +64,7 @@
*/
void print_hex(char *label, guint8 *values, int n)
-{ PrintCLI(label);
+{ PrintCLI("%s", label);
while(n--)
PrintCLI("%02x ",*values++);
@@ -84,7 +86,7 @@
print_hex("mediumSum ", eh->mediumSum, 16);
print_hex("eccSum ", eh->eccSum, 16);
print_hex("sectors ", eh->sectors, 8);
- PrintCLI("sectors (native) %lld\n", uchar_to_gint64(eh->sectors));
+ PrintCLI("sectors (native) %" PRId64 "\n", uchar_to_gint64(eh->sectors));
PrintCLI("dataBytes %8x\n", eh->dataBytes);
PrintCLI("eccBytes %8x\n", eh->eccBytes);
PrintCLI("creatorVersion %8x\n", eh->creatorVersion);
@@ -93,8 +95,8 @@
PrintCLI("selfCRC %8x\n", eh->selfCRC);
print_hex("crcSum ", eh->crcSum, 16);
PrintCLI("inLast %8x\n", eh->inLast);
- PrintCLI("sectorsPerLayer %lld\n", eh->sectorsPerLayer);
- PrintCLI("sectorsAddedByEcc %lld\n", eh->sectorsAddedByEcc);
+ PrintCLI("sectorsPerLayer %" PRId64 "\n", eh->sectorsPerLayer);
+ PrintCLI("sectorsAddedByEcc %" PRId64 "\n", eh->sectorsAddedByEcc);
PrintCLI("\n");
}
@@ -114,11 +116,11 @@
PrintCLI("fpSector %8x\n", cb->fpSector);
print_hex("mediumFP ", cb->mediumFP, 16);
print_hex("mediumSum ", cb->mediumSum, 16);
- PrintCLI("dataSectors %ll16x\n ",cb->dataSectors);
+ PrintCLI("dataSectors %16" PRIx64 "\n",cb->dataSectors);
PrintCLI("inLast %8x\n", cb->inLast);
PrintCLI("dataBytes %8x\n", cb->dataBytes);
PrintCLI("eccBytes %8x\n", cb->eccBytes);
- PrintCLI("sectorsPerLayer %lld\n", cb->sectorsPerLayer);
+ PrintCLI("sectorsPerLayer %" PRId64 "\n", cb->sectorsPerLayer);
PrintCLI("selfCRC %8x\n", cb->selfCRC);
PrintCLI("\n");
diff -Nru dvdisaster-0.79.5/fingerprints.md5 dvdisaster-0.79.10/fingerprints.md5
--- dvdisaster-0.79.5/fingerprints.md5 2015-12-16 15:26:32.000000000 +0000
+++ dvdisaster-0.79.10/fingerprints.md5 1970-01-01 00:00:00.000000000 +0000
@@ -1,83 +0,0 @@
-56ccfe794d3d2dbec59ffa59d6edff8e *dvdisaster.h
-11279e50580a66ce496b20e2847474b1 *galois-inlines.h
-14eb94f981903fcffe2ccb33aa2cb9db *md5.h
-ca18c4c23f757d059324660a57b81333 *read-linear.h
-0fb9fbace5949e1195c3ef76883654b2 *rs01-includes.h
-7f619909206bc32a6d2c74d8de67693f *rs02-includes.h
-f4575624be69e91cb955498a9fa2349f *rs03-includes.h
-1658869f384554bed067668d09bbac5c *scsi-layer.h
-b97fb4e0296a19edd688075b51fcceab *udf.h
-93b037657a397bd4153dd68f89871d34 *bitmap.c
-adec4a144110d8fa5cb68e7615c9e451 *build.c
-be495469b9e3f080202e284b7f9e3a4a *cacheprobe.c
-f69aeebb1ba6feca5f1342992a8abc43 *closure.c
-be413daa24e03dd054c5aa03ff25ffba *crc32.c
-84f641b09f319dcbd9ee0491b8570f31 *crcbuf.c
-fec5f60a87d29fea5d5b5486a1c77902 *curve.c
-8815260ba81e79a0cd6c31d5087c4dbe *debug.c
-ec4b15efa4458f777237a3e27950ca3b *ds-marker.c
-01941fd931030dc408807f21d68dd346 *dvdisaster.c
-5ad21ab84135db1cb4e49d126d1bec54 *ecc-rs01.c
-8771601ac38f18eeae29442d79699043 *ecc-rs02.c
-96bd51aa8da1240dea457132a4f80bdb *ecc-rs03.c
-d2265d322c4e8bd9e361198f55ed96cc *endian.c
-fc5502b63e4c8e6056969ce0271f8e4a *galois.c
-c5cc7050c057ba36d2d16c5c52a4f04b *help-dialogs.c
-f0300958f1141ff6e0af4a3b197f8083 *heuristic-lec.c
-eb3596cdbc81325f1d03ee49aec410c0 *icon-factory.c
-f7e4ef1993ecde342b3075d4beca42b8 *image.c
-8fac0f1fc3208b49e2768b45a82e7fc3 *large-io.c
-7e25aa5eca2a9ac7ee5bfb735a07f849 *l-ec.c
-8947fd8a72aa29c37b5385cdfaa46426 *logfile.c
-2c2ff63d4804b312d7046483b7ce9050 *maintenance.c
-1e2e5c73226c57e9cdd2b49b1ffb3306 *main-window.c
-913554f7e994e212f6a52b769eef24bb *md5.c
-9b469b33c074ca00eeede8e7070c6e6e *medium-info.c
-6d118900b888e6928d235848d29c281f *memtrack.c
-48790d6b19e854505c561f1b2d4d5747 *menubar.c
-7a1925508ecc735a1651cb7ee9f95353 *method.c
-17183bad35db217e2c352178844ceda3 *method-link.c
-a615c90256180c45de7826bda73aa12c *misc.c
-74a6bd2f64795790609244692902d1f7 *preferences.c
-5286b61649c12241979dddc429af905c *print-sense.c
-cdde449dd2a8f64b560ff18a36f86234 *random.c
-bc91a925f4b483ed8b1fa416ec96ae07 *raw-editor.c
-542ec8681c6568c95841a6220f431ff7 *raw-sector-cache.c
-8e3ca05dc954af1551c282474dd8b975 *read-adaptive.c
-66114f4805ed108e6fec587350a500a3 *read-adaptive-window.c
-04c4ae8846e25a33f9b8f4bf45fc1390 *read-linear.c
-b6a4c16ab9dcfd876d333992486970ac *read-linear-window.c
-b259fdb82b13daa0362357cdbf0361f5 *recover-raw.c
-d3e2d73c572dc97c44cc5e59be65b003 *rs01-common.c
-f865275e2866ca7f8575e9651642ffdb *rs01-create.c
-f01b19a7372dc79ee01dbc468f69e1f4 *rs01-fix.c
-1e40aecd9b8ff60f36966ad0acd88a6f *rs01-verify.c
-279705c4ff8107b8baebedd62df117e2 *rs01-window.c
-1a36679647e642f6a0b69136d6b45612 *rs02-common.c
-ea28d99b2c021fc1c2dbb1cf37358c52 *rs02-create.c
-93fc31920c37001ad76fa4dc8173f98c *rs02-fix.c
-89f566f5623d60a954f116cb50273f46 *rs02-recognize.c
-499c7583c8145af00d6af1e7c18c11e5 *rs02-verify.c
-8053dafa7f01f8651e1b08602a322520 *rs02-window.c
-317727f40df74e13be63365113298725 *rs03-common.c
-b6eab678c8c8651a763bfd647247a65c *rs03-create.c
-45c565d530d35bb0696f80fd5dbde2fc *rs03-fix.c
-50fe3c9e7b399453367cefb98116e993 *rs03-preferences.c
-729531e942f4a72ab91904e9e779f2c2 *rs03-recognize.c
-51902bc5c25b398cbe5c32169f3ce873 *rs03-verify.c
-731215c654a159376f76e0ca4712a5ed *rs03-window.c
-53bf14fc0e1e5aae2468f98596c71eab *rs-decoder.c
-3d2b4aed577d2d1dec0366b3e706328d *rs-encoder-altivec.c
-c678e9bb63b14b07210bcd65f9f578a8 *rs-encoder.c
-9b21a86f3d407b52e842072755824b2d *rs-encoder-sse2.c
-d434fd89aaa838eacdf56aad63c3cbd8 *scsi-freebsd.c
-d248b1f3ffc6db3a27f06a612a2da17b *scsi-layer.c
-59972a6e2a9360e5d1480edc3bd62ee4 *scsi-linux.c
-6095aab923d3dbff9fff64782ee9ba54 *scsi-netbsd.c
-a27df955f3592ac2d577d679398afae4 *scsi-simulated.c
-b6f3d02be48366e8f055bf880640a054 *scsi-unknown.c
-7c2fd552dc90ac1a0e872867c9727218 *show-manual.c
-054be9d45e056c96bf1b71dc8fb01e46 *smart-lec.c
-7d853ee1150c79830f6ff100767f2496 *spiral.c
-059d0883a80a70c59ca72ea0b2f161c7 *udf.c
-f50d84725408b318f7d2645e21df4d04 *welcome-window.c
diff -Nru dvdisaster-0.79.5/galois.c dvdisaster-0.79.10/galois.c
--- dvdisaster-0.79.5/galois.c 2015-01-03 13:44:26.000000000 +0000
+++ dvdisaster-0.79.10/galois.c 2021-05-26 10:31:01.000000000 +0000
@@ -1,11 +1,11 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* The Reed-Solomon error correction draws a lot of inspiration - and even code -
* from Phil Karn's excellent Reed-Solomon library: http://www.ka9q.net/code/fec/
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -23,6 +23,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
#include "galois-inlines.h"
diff -Nru dvdisaster-0.79.5/galois-inlines.h dvdisaster-0.79.10/galois-inlines.h
--- dvdisaster-0.79.5/galois-inlines.h 2015-01-03 13:44:38.000000000 +0000
+++ dvdisaster-0.79.10/galois-inlines.h 2021-04-30 16:37:45.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
- *
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
+ *
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
diff -Nru dvdisaster-0.79.5/GNUmakefile.template dvdisaster-0.79.10/GNUmakefile.template
--- dvdisaster-0.79.5/GNUmakefile.template 2015-12-15 21:41:12.000000000 +0000
+++ dvdisaster-0.79.10/GNUmakefile.template 2021-09-24 10:20:49.000000000 +0000
@@ -1,3 +1,24 @@
+# dvdisaster: Additional error correction for optical media.
+# Copyright (C) 2004-2017 Carsten Gnoerlich.
+# Copyright (C) 2019-2021 The dvdisaster development team.
+#
+# Email: support@dvdisaster.org
+#
+# This file is part of dvdisaster.
+#
+# dvdisaster is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# dvdisaster is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with dvdisaster. If not, see .
+
######################################################################
# Begin of dvdisaster makefile template
######################################################################
@@ -15,6 +36,10 @@
# Where to put tar archives (arch, srcdist)
TAR_PREFIX=/dev/shm
+# current project homepage
+
+HOMEPAGE="https://dvdisaster.jcea.es/"
+
######################################################################
# Take over variables from configure
######################################################################
@@ -39,6 +64,10 @@
CAM_LFLAGS = $(CFG_CAM_LFLAGS)
CAM_LIBS = $(CFG_CAM_LIBS)
+GLIB_CFLAGS = $(CFG_GLIB2_CFLAGS)
+GLIB_LIBS = $(CFG_GLIB2_LIBS)
+GLIB_BINDIR = $(CFG_GLIB2_BINDIR)
+
GTK_CFLAGS = $(CFG_GTK2_CFLAGS)
GTK_LIBS = $(CFG_GTK2_LIBS)
GTK_BINDIR = $(CFG_GTK2_BINDIR)
@@ -50,15 +79,15 @@
SYS_NAME = $(CFG_SYS_NAME)
HAVE_OPTIONS = $(CFG_HAVE_OPTIONS)
WITH_OPTIONS = $(CFG_WITH_OPTIONS)
-OTHER_OPTIONS = $(CFG_OTHER_OPTIONS) -DVERSION=\"$(VERSION)\"
+OTHER_OPTIONS = $(CFG_OTHER_OPTIONS) -DVERSION="\"$(VERSION)\""
SSE2_OPTIONS = $(CFG_SSE2_OPTIONS)
ALTIVEC_OPTIONS = $(CFG_ALTIVEC_OPTIONS)
-LOCATIONS = -DSRCDIR=\"$(SRCDIR)\" -DBINDIR=\"$(BINDIR)\" -DDOCDIR=\"$(DOCSUBDIR)\" -DLOCALEDIR=\"$(LOCALEDIR)\"
-COPTS = $(CFLAGS) $(LOCATIONS) $(SYS_OPTIONS) $(SYS_NAME) $(HAVE_OPTIONS) $(WITH_OPTIONS) $(OTHER_OPTIONS) $(INTL_INCL) $(CAM_INCL) $(GTK_CFLAGS) $(MUDFLAP_CFLAGS)
-LOPTS = $(LDFLAGS) $(INTL_LFLAGS) $(CAM_LFLAGS) $(EFENCE_LFLAGS) $(MUDFLAP_LFLAGS)
+LOCATIONS = -DSRCDIR="\"$(SRCDIR)\"" -DBINDIR="\"$(BINDIR)\"" -DDOCDIR="\"$(DOCSUBDIR)\"" -DLOCALEDIR="\"$(LOCALEDIR)\""
+COPTS = $(CFLAGS) $(LOCATIONS) $(SYS_OPTIONS) $(SYS_NAME) $(HAVE_OPTIONS) $(WITH_OPTIONS) $(OTHER_OPTIONS) $(INTL_INCL) $(CAM_INCL) $(GTK_CFLAGS) $(GLIB_CFLAGS)
+LOPTS = $(LDFLAGS) $(INTL_LFLAGS) $(CAM_LFLAGS) $(EFENCE_LFLAGS)
-LIBS = $(INTL_LIBS) $(CAM_LIBS) $(GTK_LIBS) $(EFENCE_LIBS) $(MUDFLAP_LIBS) -lm
+LIBS = $(INTL_LIBS) $(CAM_LIBS) $(GTK_LIBS) $(GLIB_LIBS) $(EFENCE_LIBS) -lm
CFILES = $(CFG_CFILES)
OFILES = $(CFG_OFILES)
@@ -79,6 +108,11 @@
time-stamp:
@$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/build.h
+ @echo "#define HOMEPAGE \"$(HOMEPAGE)\"" >>$(SRCDIR)/build.h
+
+${BUILDTMP}/closure.o: closure.c build.h
+ @echo "Compiling:" closure.c
+ @$(CC) $(COPTS) -c closure.c -o ${BUILDTMP}/closure.o
dvdisaster: inlined-icons.h $(OFILES)
@echo "Linking : dvdisaster"
@@ -104,25 +138,6 @@
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_quit icons/gtk-quit.png >>inlined-icons.h
@gdk-pixbuf-csource --raw --name=dvdisaster_gtk_stop icons/gtk-stop.png >>inlined-icons.h
-$(BUILDTMP)/help-dialogs.o: help-dialogs.c simple-md5sum
- @if test -e fingerprints.md5; \
- then if test -e help-dialogs.h; then rm help-dialogs.h; fi; \
- mv inlined-icons.h inlined-icons.saved; \
- mv build.h build.saved; \
- ./simple-md5sum -b *.h *.c | sort -k2 >tmp.md5; \
- sort -k2 < fingerprints.md5 >tmp2.md5; \
- mv inlined-icons.saved inlined-icons.h; \
- mv build.saved build.h; \
- if ! cmp tmp2.md5 tmp.md5 >/dev/null; \
- then echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \
- else echo "#define UNMODIFIED_SOURCE 1" >> help-dialogs.h; \
- fi; \
- rm tmp.md5 tmp2.md5; \
- else echo "#define MODIFIED_SOURCE 1" >> help-dialogs.h; \
- fi
- @echo "Compiling:" help-dialogs.c
- @$(CC) $(COPTS) -c help-dialogs.c -o $(BUILDTMP)/help-dialogs.o
-
$(BUILDTMP)/rs-encoder-sse2.o: rs-encoder-sse2.c
@echo "Compiling:" rs-encoder-sse2.c
@$(CC) $(SSE2_OPTIONS) $(COPTS) -c rs-encoder-sse2.c -o $(BUILDTMP)/rs-encoder-sse2.o
@@ -137,11 +152,9 @@
untranslated:
@$(MAKE) --no-print-directory -C locale check-untranslated
-simple-md5sum: md5.c
- @$(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
-
version.tex:
@echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
+ @echo "\\newcommand{\\homepage}{\\url{$(HOMEPAGE)}}" >>$(SRCDIR)/documentation/config/version.tex
manual: version.tex
@echo "Producing user manual... "
@@ -225,63 +238,67 @@
install: dvdisaster manual
@echo "Installing package..."
- install -d $(BUILDROOT)$(BINDIR)
- install dvdisaster $(BUILDROOT)$(BINDIR)
- install -d $(BUILDROOT)$(DOCSUBDIR)
- install -m 644 CHANGELOG $(BUILDROOT)$(DOCSUBDIR)
- install -m 644 COPYING $(BUILDROOT)$(DOCSUBDIR)
- install -m 644 CREDITS* $(BUILDROOT)$(DOCSUBDIR)
- install -m 644 README.MODIFYING $(BUILDROOT)$(DOCSUBDIR)
- install -m 644 TODO $(BUILDROOT)$(DOCSUBDIR)
- install -d $(BUILDROOT)$(DOCSUBDIR)
- (cd documentation/user-manual; install -m 644 manual.pdf $(BUILDROOT)$(DOCSUBDIR))
- install -d $(BUILDROOT)$(MANDIR)/man1
- install -d $(BUILDROOT)$(MANDIR)/de/man1
+ install -d "$(BUILDROOT)$(BINDIR)"
+ install dvdisaster "$(BUILDROOT)$(BINDIR)"
+ install -d "$(BUILDROOT)$(DOCSUBDIR)"
+ install -m 644 CHANGELOG "$(BUILDROOT)$(DOCSUBDIR)"
+ install -m 644 COPYING "$(BUILDROOT)$(DOCSUBDIR)"
+ install -m 644 CREDITS* "$(BUILDROOT)$(DOCSUBDIR)"
+ install -m 644 TODO "$(BUILDROOT)$(DOCSUBDIR)"
+ install -d "$(BUILDROOT)$(DOCSUBDIR)"
+ (cd documentation/user-manual; install -m 644 manual.pdf "$(BUILDROOT)$(DOCSUBDIR)")
+ install -d "$(BUILDROOT)$(MANDIR)/man1"
+ install -d "$(BUILDROOT)$(MANDIR)/de/man1"
cd documentation; \
ESCAPED_DOCSUBDIR=`echo $(DOCSUBDIR) | sed -e 's/\//\\\\\//g'`; \
- sed "s/%docdir%/$$ESCAPED_DOCSUBDIR\/html/" dvdisaster.updated; \
- install -m 644 dvdisaster.updated $(BUILDROOT)$(MANDIR)/man1/dvdisaster.1; \
- sed "s/%docdir%/$$ESCAPED_DOCSUBDIR\/html/" dvdisaster.updated; \
- install -m 644 dvdisaster.updated $(BUILDROOT)$(MANDIR)/de/man1/dvdisaster.1; \
+ sed "s/%docdir%/$$ESCAPED_DOCSUBDIR\/manual.pdf/" dvdisaster.updated; \
+ install -m 644 dvdisaster.updated "$(BUILDROOT)$(MANDIR)/man1/dvdisaster.1"; \
+ sed "s/%docdir%/$$ESCAPED_DOCSUBDIR\/manual.pdf/" dvdisaster.updated; \
+ install -m 644 dvdisaster.updated "$(BUILDROOT)$(MANDIR)/de/man1/dvdisaster.1"; \
rm dvdisaster.updated
if echo $(WITH_OPTIONS) | grep "NLS_YES" >/dev/null; then \
cd locale; \
for i in ?? ??_??; do\
- install -d $(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES; \
- install -m 644 $$i/LC_MESSAGES/dvdisaster.mo $(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES; \
+ install -d "$(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES"; \
+ install -m 644 $$i/LC_MESSAGES/dvdisaster.mo "$(BUILDROOT)$(LOCALEDIR)/$$i/LC_MESSAGES"; \
done \
fi
- @echo "# dvdisaster uninstaller script" > $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "# Usage: sh dvdisaster-uninstall.sh" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rm -f \"$(BINDIR)/dvdisaster\" \"$(BINDIR)/dvdisaster-uninstall.sh\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rm -f \"$(DOCSUBDIR)/CHANGELOG\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rm -f \"$(DOCSUBDIR)/COPYING\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rm -f \"$(DOCSUBDIR)/CREDITS.de\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rm -f \"$(DOCSUBDIR)/CREDITS.en\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rm -f \"$(DOCSUBDIR)/manual.pdf\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rm -f \"$(DOCSUBDIR)/README.MODIFYING\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rm -f \"$(DOCSUBDIR)/TODO\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
- @echo "rmdir \"$(DOCSUBDIR)\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
+ @echo "# dvdisaster uninstaller script" > "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "# Usage: sh dvdisaster-uninstall.sh" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "rm -f \"$(BINDIR)/dvdisaster\" \"$(BINDIR)/dvdisaster-uninstall.sh\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "rm -f \"$(DOCSUBDIR)/CHANGELOG\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "rm -f \"$(DOCSUBDIR)/COPYING\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "rm -f \"$(DOCSUBDIR)/CREDITS.de\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "rm -f \"$(DOCSUBDIR)/CREDITS.en\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "rm -f \"$(DOCSUBDIR)/manual.pdf\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "rm -f \"$(DOCSUBDIR)/TODO\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
+ @echo "rmdir \"$(DOCSUBDIR)\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
@for i in $(PO_LOCALES); do \
- echo "rm -f \"$(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh ; \
+ echo "rm \"$(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh" ; \
done
- @echo "rm -f \"$(MANDIR)/man1/dvdisaster.1\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
+ @echo "rm -f \"$(MANDIR)/man1/dvdisaster.1\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
@for i in $(MAN_LOCALES); do \
- echo "rm -f \"$(MANDIR)/$$i/man1/dvdisaster.1\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh ; \
+ echo "rm \"$(MANDIR)/$$i/man1/dvdisaster.1\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh" ; \
done
- @echo "echo \"dvdisaster has been uninstalled.\"" >> $(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh
+ @echo "echo \"dvdisaster has been uninstalled.\"" >> "$(BUILDROOT)$(BINDIR)/dvdisaster-uninstall.sh"
uninstall:
@echo "Uninstalling package..."
- rm -f $(BINDIR)/dvdisaster $(BINDIR)/dvdisaster-uninstall.sh
- rm -rf $(DOCSUBDIR)
- rm -f $(MANDIR)/man1/dvdisaster.1
+ rm -f "$(BINDIR)/dvdisaster" "$(BINDIR)/dvdisaster-uninstall.sh"
+ rm -f "$(DOCSUBDIR)/CHANGELOG"
+ rm -f "$(DOCSUBDIR)/COPYING"
+ rm -f "$(DOCSUBDIR)/CREDITS.de"
+ rm -f "$(DOCSUBDIR)/CREDITS.en"
+ rm -f "$(DOCSUBDIR)/manual.pdf"
+ rm -f "$(DOCSUBDIR)/TODO"
+ rmdir "$(DOCSUBDIR)"
+ rm -f "$(MANDIR)/man1/dvdisaster.1"
for i in $(PO_LOCALES); do \
- rm $(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo; \
+ rm "$(LOCALEDIR)/$$i/LC_MESSAGES/dvdisaster.mo"; \
done
for i in $(MAN_LOCALES); do \
- rm $(MANDIR)/$$i/man1/dvdisaster.1; \
+ rm "$(MANDIR)/$$i/man1/dvdisaster.1"; \
done
archclean: distclean
@@ -297,31 +314,16 @@
@echo -e "\t@echo" >>GNUmakefile
@echo -e "\t@echo \"Please create a Makefile by entering \\\"bash configure\\\" first\"" >>GNUmakefile
@echo -e "\t@echo" >>GNUmakefile
-
-# There might be a not executable simple-md5sum from a compiler run
-# under a different architecture, so make sure we have a working binary
-# in the clean target.
+ @rm -f dvdisaster-debug
clean:
@echo "Removing rebuildable files"
- @rm -rf *.o $(BUILDTMP)/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core
+ @rm -f *.o $(BUILDTMP)/*.o medium.* abbild.* dvdisaster .dvdisaster core core.* *.core
@rm -f inlined-icons.h help-dialogs.h
@find . -name \*\~ -print | xargs rm -f;
@find . -name \*.mo -print | xargs rm -f;
@find . -name \#\*\# -print | xargs rm -f;
@rm -f documentation/config/version.tex
- @if test -e $(PKGNAME); then rm -rf $(PKGNAME); fi
- @if test -e ~/.dvdisaster-original-author; then \
- mv build.h build.saved ;\
- if ! test -x simple-md5sum || ! ./simple-md5sum >/dev/null 2>&1; then \
- rm -f simple-md5sum; \
- $(MAKE) --no-print-directory simple-md5sum; \
- echo "[simple-md5sum (re-)built]"; \
- fi; \
- ./simple-md5sum -b *.h *.c >fingerprints.md5 ;\
- mv build.saved build.h; \
- fi
- @rm -f simple-md5sum
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/codec-specs clean;
@$(MAKE) --no-print-directory -C $(SRCDIR)/documentation/user-manual clean;
@@ -333,7 +335,7 @@
@sed "s/@@PKGNAME/$(PKGNAME)/" INSTALL
srcdist: INSTALL distclean manual manualclean
- @cd .. ; tar -c -j -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME)
+ @cd .. ; tar -c -j --owner=dvdisaster --group=devel -X $(PKGNAME)/NODIST -f $(TAR_PREFIX)/$(PKGNAME).tar.bz2 $(PKGNAME)
@cd .. ; gpg --homedir .gnupg --default-key 758BCC23 --detach-sign --output $(TAR_PREFIX)/$(PKGNAME).tar.bz2.gpg --armor $(TAR_PREFIX)/$(PKGNAME).tar.bz2
diff -Nru dvdisaster-0.79.5/help-dialogs.c dvdisaster-0.79.10/help-dialogs.c
--- dvdisaster-0.79.5/help-dialogs.c 2015-10-15 19:24:01.000000000 +0000
+++ dvdisaster-0.79.10/help-dialogs.c 2021-09-24 09:59:35.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,9 +20,11 @@
* along with dvdisaster. If not, see .
*/
-#include "dvdisaster.h"
+/*** src type: only GUI code ***/
-#include "help-dialogs.h"
+#ifdef WITH_GUI_YES
+#include "dvdisaster.h"
+#include "build.h"
/***
*** Online help system for the preferences
@@ -99,7 +101,7 @@
* Create a frame labeled with a link to the help system
*/
-LabelWithOnlineHelp* CreateLabelWithOnlineHelp(char *title, char *ascii_text)
+LabelWithOnlineHelp* GuiCreateLabelWithOnlineHelp(char *title, char *ascii_text)
{ GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GtkWidget *vbox, *hbox, *button;
GtkWidget *ebox = gtk_event_box_new();
@@ -112,7 +114,7 @@
lwoh->linkLabel = gtk_label_new(NULL);
lwoh->linkBox = ebox;
lwoh->windowTitle = g_locale_to_utf8(title, -1, NULL, NULL, NULL);
- SetOnlineHelpLinkText(lwoh, ascii_text);
+ GuiSetOnlineHelpLinkText(lwoh, ascii_text);
gtk_label_set_markup(GTK_LABEL(lwoh->normalLabel), lwoh->normalText);
@@ -158,7 +160,7 @@
return lwoh;
}
-LabelWithOnlineHelp* CloneLabelWithOnlineHelp(LabelWithOnlineHelp *orig, char *ascii_text)
+LabelWithOnlineHelp* GuiCloneLabelWithOnlineHelp(LabelWithOnlineHelp *orig, char *ascii_text)
{ LabelWithOnlineHelp *lwoh;
GtkWidget *ebox = gtk_event_box_new();
@@ -174,7 +176,7 @@
lwoh->linkBox = ebox;
lwoh->windowTitle = g_strdup("ignore");
- SetOnlineHelpLinkText(lwoh, ascii_text);
+ GuiSetOnlineHelpLinkText(lwoh, ascii_text);
/*** Put link label into an event box */
@@ -190,7 +192,7 @@
return lwoh;
}
-void SetOnlineHelpLinkText(LabelWithOnlineHelp *lwoh, char *ascii_text)
+void GuiSetOnlineHelpLinkText(LabelWithOnlineHelp *lwoh, char *ascii_text)
{ char text[strlen(ascii_text)+80];
if(lwoh->normalText) g_free(lwoh->normalText);
@@ -201,7 +203,7 @@
lwoh->highlitText = g_locale_to_utf8(text, -1, NULL, NULL, NULL);
}
-void FreeLabelWithOnlineHelp(LabelWithOnlineHelp *lwoh)
+void GuiFreeLabelWithOnlineHelp(LabelWithOnlineHelp *lwoh)
{
if(lwoh->lastSizes)
{ int i;
@@ -242,7 +244,7 @@
return FALSE;
}
-void AddHelpParagraph(LabelWithOnlineHelp *lwoh, char *format, ...)
+void GuiAddHelpParagraph(LabelWithOnlineHelp *lwoh, char *format, ...)
{ GtkWidget *label = gtk_label_new(NULL);
va_list argp;
char *text,*utf;
@@ -273,7 +275,7 @@
* The list may be preceeded by an optional paragraph of text.
*/
-void AddHelpListItem(LabelWithOnlineHelp *lwoh, char *format, ...)
+void GuiAddHelpListItem(LabelWithOnlineHelp *lwoh, char *format, ...)
{ GtkWidget *label = gtk_label_new(NULL);
GtkWidget *bullet = gtk_label_new(" - ");
GtkWidget *hbox = gtk_hbox_new(FALSE, 0);
@@ -310,7 +312,7 @@
* Add a (fully functional!) widget set to the help window
*/
-void AddHelpWidget(LabelWithOnlineHelp *lwoh, GtkWidget *widget)
+void GuiAddHelpWidget(LabelWithOnlineHelp *lwoh, GtkWidget *widget)
{
gtk_box_pack_start(GTK_BOX(lwoh->vbox), widget, FALSE, FALSE, 10);
gtk_box_pack_start(GTK_BOX(lwoh->vbox), gtk_hseparator_new(), FALSE, FALSE, 10);
@@ -366,7 +368,7 @@
}
-void UpdateLog()
+void GuiUpdateLog()
{ static int unique_addr;
if(Closure->logWidget)
@@ -375,7 +377,7 @@
}
}
-void ShowLog()
+void GuiShowLog()
{ GtkWidget *w;
if(Closure->logWidget)
@@ -383,10 +385,10 @@
return;
}
- w = ShowTextfile(_("windowtitle|Log data"),
- _("Log data\n"
- "Protocol of the current or previous action"),
- "*LOG*", &Closure->logScroll, &Closure->logBuffer);
+ w = GuiShowTextfile(_("windowtitle|Log data"),
+ _("Log data\n"
+ "Protocol of the current or previous action"),
+ "*LOG*", &Closure->logScroll, &Closure->logBuffer);
g_signal_connect(G_OBJECT(w), "destroy", G_CALLBACK(log_destroy_cb), NULL);
@@ -398,12 +400,12 @@
*** Specific help dialogs
***/
-void ShowGPL()
+void GuiShowGPL()
{
- ShowTextfile(_("windowtitle|GNU General Public License"),
- _("GNU General Public License\n"
- "The license terms of dvdisaster."),
- "COPYING", NULL, NULL);
+ GuiShowTextfile(_("windowtitle|GNU General Public License"),
+ _("GNU General Public License\n"
+ "The license terms of dvdisaster."),
+ "COPYING", NULL, NULL);
}
/*
@@ -456,8 +458,8 @@
return NULL;
}
-GtkWidget* ShowTextfile(char *title, char *explanation, char *file,
- GtkScrolledWindow **scroll_out, GtkTextBuffer **buffer_out)
+GtkWidget* GuiShowTextfile(char *title, char *explanation, char *file,
+ GtkScrolledWindow **scroll_out, GtkTextBuffer **buffer_out)
{ GtkWidget *dialog, *scroll_win, *vbox, *lab, *sep, *view;
GtkTextBuffer *buffer;
GtkTextIter start;
@@ -563,13 +565,6 @@
* About dialog
*/
-static void show_modifying(void)
-{ ShowTextfile(_("windowtitle|Modifying dvdisaster"),
- _("Modifying dvdisaster\n"
- "Your changes are not ours."),
- "README.MODIFYING", NULL, NULL);
-}
-
static gint about_cb(GtkWidget *widget, GdkEvent *event, gpointer data)
{ GtkWidget *lab = GTK_BIN(widget)->child;
char *label = (char*)data;
@@ -580,9 +575,8 @@
switch(event->type)
{ case GDK_BUTTON_PRESS:
if(!inside) return FALSE; /* Defect in certain Gtk versions? */
- if(!strcmp(label,"GPL")) ShowGPL();
- else if(!strcmp(label,"MODIFYING")) show_modifying();
- else ShowPDF(g_strdup(label));
+ if(!strcmp(label,"GPL")) GuiShowGPL();
+ else GuiShowURL(g_strdup(label));
break;
case GDK_ENTER_NOTIFY:
g_sprintf(text, "%s", label);
@@ -604,7 +598,7 @@
return FALSE;
}
-void AboutText(GtkWidget *parent, char *format, ...)
+void GuiAboutText(GtkWidget *parent, char *format, ...)
{ GtkWidget *lab;
char *tmp, *utf_text;
va_list argp;
@@ -624,7 +618,7 @@
va_end(argp);
}
-void AboutLink(GtkWidget *parent, char *label, char *action)
+void GuiAboutLink(GtkWidget *parent, char *label, char *action)
{ GtkWidget *ebox,*lab;
char text[strlen(label)+80];
char *label_copy = strdup(label);
@@ -646,7 +640,7 @@
g_free(utf);
}
-void AboutTextWithLink(GtkWidget *parent, char *text, char *action)
+void GuiAboutTextWithLink(GtkWidget *parent, char *text, char *action)
{ char *copy,*head,*end_of_line;
char *link_start,*link_end;
char *utf;
@@ -676,7 +670,7 @@
g_free(utf);
}
- AboutLink(hbox, link_start, action);
+ GuiAboutLink(hbox, link_start, action);
if(*link_end)
{ GtkWidget *lab = gtk_label_new(NULL);
@@ -687,7 +681,7 @@
g_free(utf);
}
}
- else AboutText(parent, head);
+ else GuiAboutText(parent, head);
if(end_of_line) head = end_of_line+1;
else break;
@@ -696,12 +690,10 @@
g_free(copy);
}
-void AboutDialog()
+void GuiAboutDialog()
{ GtkWidget *about, *vbox, *sep;
char *text;
-#ifndef MODIFIED_SOURCE
- const char *lang;
-#endif
+
/* Create the dialog */
about = gtk_dialog_new_with_buttons(_utf("windowtitle|About dvdisaster"),
@@ -719,54 +711,37 @@
text = g_strdup_printf("dvdisaster "
"Version %s",
Closure->cookedVersion);
- AboutText(vbox, text);
+ GuiAboutText(vbox, "%s", text);
g_free(text);
-#ifdef MODIFIED_SOURCE
- AboutTextWithLink(vbox,
- _("Modified version Copyright 2015 (please fill in - [directions])\n"
- "Copyright 2004-2015 Carsten Gnoerlich"),
- "MODIFYING");
-#else
- AboutText(vbox, _("Copyright 2004-2015 Carsten Gnoerlich"));
-#endif
+ GuiAboutText(vbox, _("Copyright 2004-2017 Carsten Gnoerlich.\nCopyright 2019-2021 The dvdisaster development team."));
sep = gtk_hseparator_new();
gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 10);
- AboutText(vbox, _("dvdisaster provides a margin of safety against data loss\n"
- "on optical media caused by aging or scratches.\n"
- "It creates error correction data which is used to recover\n"
- "unreadable sectors if the disc becomes damaged later on.\n"));
+ GuiAboutText(vbox, _("dvdisaster provides a margin of safety against data loss\n"
+ "on optical media caused by aging or scratches.\n"
+ "It creates error correction data which is used to recover\n"
+ "unreadable sectors if the disc becomes damaged later on.\n"));
- AboutTextWithLink(vbox, _("This software comes with absolutely no warranty.\n"
+ GuiAboutTextWithLink(vbox, _("This software comes with absolutely no warranty.\n"
"This is free software and you are welcome to redistribute it\n"
"under the conditions of the [GNU General Public License].\n"),
"GPL");
-#ifdef MODIFIED_SOURCE
- AboutTextWithLink(vbox, _("\nThis program is not the original. It is based on the\n"
- "source code of dvdisaster, but contains third-party changes.\n\n"
- "Please do not bother the original authors of dvdisaster\n"
- "([www.dvdisaster.org]) about issues with this version.\n"),
- "http://www.dvdisaster.org");
-
-#else
- lang = g_getenv("LANG");
- if(lang && !strncmp(lang, "de", 2))
- { AboutTextWithLink(vbox, "\n[http://www.dvdisaster.de]", "http://www.dvdisaster.de");
- }
- else
- { AboutTextWithLink(vbox, "\n[http://www.dvdisaster.com]", "http://www.dvdisaster.com");
- }
+ GuiAboutText(vbox, _("\ne-mail: support@dvdisaster.org"));
- AboutText(vbox, _("\ne-mail: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org"));
+ text = g_strdup_printf("WWW: [%s]", HOMEPAGE);
+ GuiAboutTextWithLink(vbox, text, HOMEPAGE);
+ g_free(text);
+
#ifdef SYS_NETBSD
- AboutText(vbox, _("\nNetBSD port: Sergey Svishchev <svs@ropnet.ru>"));
-#endif
+ GuiAboutText(vbox, _("\nNetBSD port: Sergey Svishchev <svs@ropnet.ru>"));
#endif
+
/* Show it */
gtk_widget_show_all(about);
}
+#endif /* WITH_GUI_YES */
diff -Nru dvdisaster-0.79.5/heuristic-lec.c dvdisaster-0.79.10/heuristic-lec.c
--- dvdisaster-0.79.5/heuristic-lec.c 2015-01-03 13:44:26.000000000 +0000
+++ dvdisaster-0.79.10/heuristic-lec.c 2021-05-26 10:31:33.000000000 +0000
@@ -1,9 +1,9 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
* Copyright (C) 2006 Andrei Grecu
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -21,6 +21,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
/***
diff -Nru dvdisaster-0.79.5/icon-factory.c dvdisaster-0.79.10/icon-factory.c
--- dvdisaster-0.79.5/icon-factory.c 2015-01-03 13:44:26.000000000 +0000
+++ dvdisaster-0.79.10/icon-factory.c 2021-06-13 07:47:50.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,9 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: only GUI code ***/
+
+#ifdef WITH_GUI_YES
#include "dvdisaster.h"
#include "inlined-icons.h"
@@ -29,14 +32,30 @@
***/
static GdkPixbuf* create_icon(GtkIconFactory *ifact, char *name, const guint8 *inline_data)
-{ GdkPixbuf *pb = gdk_pixbuf_new_from_inline(-1, inline_data, FALSE, NULL);
- GtkIconSet *iset = gtk_icon_set_new_from_pixbuf(pb);
-
+{ GdkPixbuf *pb;
+ GtkIconSet *iset;
+ int width, height, rowstride;
+
+ /* gdk_pixbuf_new_from_inline() deprecated; recommended to replace with GResource XML crap.
+ One day I'll get rid of GTK+. I swear.
+
+ pb = gdk_pixbuf_new_from_inline(-1, inline_data, FALSE, NULL);
+ */
+
+ rowstride = (inline_data[12] << 24) + (inline_data[13] << 16) + (inline_data[14] << 8) + inline_data[15];
+ width = (inline_data[16] << 24) + (inline_data[17] << 16) + (inline_data[18] << 8) + inline_data[19];
+ height = (inline_data[20] << 24) + (inline_data[21] << 16) + (inline_data[22] << 8) + inline_data[23];
+
+ pb = gdk_pixbuf_new_from_data(inline_data+24, GDK_COLORSPACE_RGB, TRUE, 8,
+ width, height, rowstride, NULL, NULL);
+
+ iset = gtk_icon_set_new_from_pixbuf(pb);
+
gtk_icon_factory_add(ifact, name, iset);
return pb;
}
-void CreateIconFactory()
+void GuiCreateIconFactory()
{ GtkIconFactory *ifact;
/*** Create and register our icon factory */
@@ -64,3 +83,4 @@
create_icon(ifact, "dvdisaster-gtk-quit", dvdisaster_gtk_quit);
create_icon(ifact, "dvdisaster-gtk-stop", dvdisaster_gtk_stop);
}
+#endif /* WITH_GUI_YES */
diff -Nru dvdisaster-0.79.5/icons/source/medium.svg dvdisaster-0.79.10/icons/source/medium.svg
--- dvdisaster-0.79.5/icons/source/medium.svg 1970-01-01 00:00:00.000000000 +0000
+++ dvdisaster-0.79.10/icons/source/medium.svg 2016-04-14 14:29:13.000000000 +0000
@@ -0,0 +1,626 @@
+
+
+
+
diff -Nru dvdisaster-0.79.5/image.c dvdisaster-0.79.10/image.c
--- dvdisaster-0.79.5/image.c 2015-10-25 16:31:55.000000000 +0000
+++ dvdisaster-0.79.10/image.c 2021-08-26 12:48:38.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: some GUI code ***/
+
#include "dvdisaster.h"
#include "scsi-layer.h"
#include "udf.h"
@@ -99,13 +101,15 @@
}
image->eccFile = LargeOpen(filename, flags, mode);
+ if(errno == EACCES)
+ image->eccFileState = ECCFILE_NOPERM;
+ else image->eccFileState = ECCFILE_MISSING;
if(!image->eccFile)
{ if(new_image)
{ g_free(image);
- return NULL;
+ return NULL;
}
- image->eccFileState = ECCFILE_MISSING;
return image;
}
@@ -146,11 +150,14 @@
if(!image || image->type == IMAGE_NONE)
{ if(image) CloseImage(image);
+
+#ifdef WITH_GUI_YES
if(Closure->guiMode)
- { CreateMessage(_("Image file %s not present or permission denied.\n"), GTK_MESSAGE_ERROR, Closure->imageName);
+ { GuiCreateMessage(_("Image file %s not present or permission denied.\n"), GTK_MESSAGE_ERROR, Closure->imageName);
return TRUE;
}
else
+#endif
{ Stop(_("Image file %s not present or permission denied.\n"), Closure->imageName);
}
}
@@ -159,25 +166,49 @@
if(image->eccFile && !image->eccFileMethod)
{ CloseImage(image);
+
+#ifdef WITH_GUI_YES
if(Closure->guiMode)
- { CreateMessage(_("\nError correction file type unknown.\n"), GTK_MESSAGE_ERROR);
+ { GuiCreateMessage(_("\nError correction file type unknown.\n"), GTK_MESSAGE_ERROR);
return TRUE;
}
else
+#endif
{ Stop(_("\nError correction file type unknown.\n"));
}
}
+
+ /* Permission denied for ecc file */
+
+ if(!image->eccFile && image->eccFileState == ECCFILE_NOPERM)
+ { CloseImage(image);
+
+#ifdef WITH_GUI_YES
+ if(Closure->guiMode)
+ { GuiCreateMessage(_("\nPermission denied on ecc file (perhaps not writeable?).\n"),
+ GTK_MESSAGE_ERROR);
+ return TRUE;
+ }
+ else
+#endif
+ { Stop(_("\nPermission denied on ecc file (perhaps not writeable?).\n"));
+ }
+ }
+
/* Augmented image but unknown ecc method */
if(!image->eccFile && !image->eccMethod)
{ CloseImage(image);
+
+#ifdef WITH_GUI_YES
if(Closure->guiMode)
- { CreateMessage(_("\nNo error correction file present.\n"
- "No error correction data recognized in image.\n"), GTK_MESSAGE_ERROR);
+ { GuiCreateMessage(_("\nNo error correction file present.\n"
+ "No error correction data recognized in image.\n"), GTK_MESSAGE_ERROR);
return TRUE;
}
else
+#endif
{ Stop(_("\nNo error correction file present.\n"
"No error correction data recognized in image.\n"));
}
@@ -241,12 +272,12 @@
case 1: /* unreadable */
if(fp_out)
memset(fp_out, 0, 16);
- Verbose("GetImageFingerprint(%lld): cached unreadable\n", sector);
+ Verbose("GetImageFingerprint(%" PRId64 "): cached unreadable\n", sector);
return FALSE;
case 2: /* already cached */
if(fp_out)
memcpy(fp_out, image->imageFP, 16);
- Verbose("GetImageFingerprint(%lld): cached\n", sector);
+ Verbose("GetImageFingerprint(%" PRId64 "): cached\n", sector);
return TRUE;
}
@@ -256,7 +287,7 @@
image->fpSector = sector;
if(status != 1) /* read error */
{ image->fpState = 1;
- Verbose("GetImageFingerprint(%lld): not readable\n", sector);
+ Verbose("GetImageFingerprint(%" PRId64 "): not readable\n", sector);
}
else
{ struct MD5Context md5ctxt;
@@ -268,7 +299,7 @@
MD5Final(image->imageFP, &md5ctxt);
if(fp_out)
memcpy(fp_out, image->imageFP, 16);
- Verbose("GetImageFingerprint(%lld): read & cached\n", sector);
+ Verbose("GetImageFingerprint(%" PRId64 "): read & cached\n", sector);
}
FreeAlignedBuffer(ab);
diff -Nru dvdisaster-0.79.5/INSTALL dvdisaster-0.79.10/INSTALL
--- dvdisaster-0.79.5/INSTALL 2015-10-25 16:31:55.000000000 +0000
+++ dvdisaster-0.79.10/INSTALL 2021-05-14 10:27:17.000000000 +0000
@@ -1,3 +1,24 @@
+# dvdisaster: Additional error correction for optical media.
+# Copyright (C) 2004-2018 Carsten Gnoerlich.
+# Copyright (C) 2019-2021 The dvdisaster development team.
+#
+# Email: support@dvdisaster.org
+#
+# This file is part of dvdisaster.
+#
+# dvdisaster is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# dvdisaster is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with dvdisaster. If not, see .
+
Installation of the dvdisaster source code distribution
=======================================================
[don't edit - generated from documentation/install.template]
@@ -111,11 +132,11 @@
for you and unpack the source code archive:
user@host> cd /var/tmp
-user@host> tar xjf dvdisaster-0.79.5.tar.bz2
+user@host> tar xjf dvdisaster-0.79.6.tar.bz2
Then change into the newly created directory:
-user@host> cd /var/tmp/dvdisaster-0.79.5
+user@host> cd /var/tmp/dvdisaster-0.79.6
3.2. Configuring the package
----------------------------
@@ -199,8 +220,7 @@
in section 3.1:
user@host> cd /var/tmp
-user@host> rm -rf dvdisaster-0.79.5
-
+user@host> rm -rf dvdisaster-0.79.6
5. Running the program
======================
@@ -228,16 +248,7 @@
is assigned to your drive:
root@freebsd# camcontrol devlist
- at scbus1 target 0 lun 0 (pass1,cd0)
-
-You can change permission permanently by adding the
-following line to /etc/devfs.conf:
-
-perm pass1 0660
-
-To make the change available immediately, restart devfs:
-
-root@freebsd# /etc/rc.d/devfs restart
+ at scbus1 target 0 lun 0 (pass0,cd0)
Avoid copy-on-write filesystems
diff -Nru dvdisaster-0.79.5/large-io.c dvdisaster-0.79.10/large-io.c
--- dvdisaster-0.79.5/large-io.c 2015-10-25 16:31:55.000000000 +0000
+++ dvdisaster-0.79.10/large-io.c 2021-08-26 12:50:42.000000000 +0000
@@ -1,8 +1,8 @@
/* dvdisaster: Additional error correction for optical media.
- * Copyright (C) 2004-2015 Carsten Gnoerlich.
+ * Copyright (C) 2004-2017 Carsten Gnoerlich.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
- * Email: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org
- * Project homepage: http://www.dvdisaster.org
+ * Email: support@dvdisaster.org
*
* This file is part of dvdisaster.
*
@@ -20,6 +20,8 @@
* along with dvdisaster. If not, see .
*/
+/*** src type: some GUI code ***/
+
#include "dvdisaster.h"
/***
@@ -178,12 +180,14 @@
* Writing large files
*/
+#ifdef WITH_GUI_YES
static void insert_buttons(GtkDialog *dialog)
{
gtk_dialog_add_buttons(dialog,
GTK_STOCK_REDO , 1,
GTK_STOCK_CANCEL, 0, NULL);
}
+#endif
static ssize_t xwrite(int fdes, void *buf_base, size_t count)
{ unsigned char *buf = (unsigned char*)buf_base;
@@ -206,6 +210,7 @@
return total;
}
+#ifdef WITH_GUI_YES
/* Give the user a chance to free more space in GUI mode.
When running out of space, the last write() may complete
with n.
*/
+/*** src type: no GUI code ***/
+
#include "dvdisaster.h"
#include "galois-inlines.h"
-
/***
*** Mapping between cd frame and parity vectors
***/
diff -Nru dvdisaster-0.79.5/locale/cs.po dvdisaster-0.79.10/locale/cs.po
--- dvdisaster-0.79.5/locale/cs.po 2015-12-15 20:39:52.000000000 +0000
+++ dvdisaster-0.79.10/locale/cs.po 2021-09-24 10:17:34.000000000 +0000
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: dvdisaster 0.79\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-15 16:39+0100\n"
+"POT-Creation-Date: 2021-09-24 12:17+0200\n"
"PO-Revision-Date: 2011-07-24 21:12+0100\n"
"Last-Translator: Jindřich Šesták \n"
"Language-Team: none (individual translator)\n"
@@ -22,7 +22,7 @@
"X-Poedit-Basepath: d:\\Preklady\\dvdisaster\\cvs\n"
"X-Poedit-SearchPath-0: dvdisaster\n"
-#: closure.c:334
+#: closure.c:286
#, c-format
msgid ""
"# dvdisaster-%s configuration file\n"
@@ -35,54 +35,54 @@
"# každém spuštění programu.\n"
"\n"
-#: closure.c:533
+#: closure.c:546
msgid "medium.iso"
msgstr "disc.iso"
-#: closure.c:534
+#: closure.c:547
msgid "medium.ecc"
msgstr "disc.ecc"
-#: closure.c:535
+#: closure.c:548
msgid "sector-"
msgstr "sektor-"
-#: debug.c:56 debug.c:155 debug.c:293
+#: debug.c:58 debug.c:157 debug.c:295
#, c-format
msgid "Number of erasures must be > 0 and <= %d\n"
msgstr "Počet výmazů musí být > 0 a <= %d\n"
-#: debug.c:70 debug.c:160
+#: debug.c:72 debug.c:162
#, c-format
msgid ""
"\n"
"Generating random correctable erasures (%s; for %d roots, max erasures = %d).\n"
msgstr ""
-#: debug.c:103 debug.c:191 debug.c:239 debug.c:363 debug.c:707 debug.c:807
-#: debug.c:850 debug.c:1181 debug.c:1189 debug.c:1266 rs01-common.c:166
-#: rs02-common.c:235 rs02-create.c:344 rs02-create.c:990 rs02-fix.c:380
-#: rs02-verify.c:395 rs03-common.c:328 rs03-create.c:696 rs03-create.c:721
-#: rs03-recognize.c:548
-#, c-format
-msgid "Failed seeking to sector %lld in image: %s"
-msgstr "Nezdařil se přechod na sektor %lld bitové kopie: %s"
-
-#: debug.c:111 debug.c:196 debug.c:243 debug.c:368 debug.c:545 debug.c:662
-#: debug.c:713 debug.c:1193 debug.c:1270 debug.c:1310 rs02-create.c:367
-#: rs02-create.c:393 rs02-create.c:993 rs03-create.c:701 rs03-create.c:725
-#: udf.c:827 udf.c:885 udf.c:942 udf.c:955 udf.c:960 udf.c:963 udf.c:966
-#: udf.c:969 udf.c:972 udf.c:975
+#: debug.c:105 debug.c:193 debug.c:241 debug.c:365 debug.c:708 debug.c:808
+#: debug.c:851 debug.c:1182 debug.c:1190 debug.c:1267 rs01-common.c:177
+#: rs02-common.c:241 rs02-create.c:347 rs02-create.c:990 rs02-fix.c:381
+#: rs02-verify.c:398 rs03-common.c:341 rs03-create.c:722 rs03-create.c:747
+#: rs03-recognize.c:551
+#, c-format
+msgid "Failed seeking to sector % in image: %s"
+msgstr "Nezdařil se přechod na sektor % bitové kopie: %s"
+
+#: debug.c:113 debug.c:198 debug.c:245 debug.c:370 debug.c:546 debug.c:663
+#: debug.c:714 debug.c:1194 debug.c:1271 debug.c:1311 rs02-create.c:370
+#: rs02-create.c:396 rs02-create.c:993 rs03-create.c:727 rs03-create.c:751
+#: udf.c:831 udf.c:889 udf.c:946 udf.c:959 udf.c:964 udf.c:967 udf.c:970
+#: udf.c:973 udf.c:976 udf.c:979
#, c-format
-msgid "Failed writing to sector %lld in image: %s"
-msgstr "Nezdařil se zápis sektoru %lld bitové kopie: %s"
+msgid "Failed writing to sector % in image: %s"
+msgstr "Nezdařil se zápis sektoru % bitové kopie: %s"
-#: debug.c:119 debug.c:249 debug.c:374 debug.c:666 debug.c:720 debug.c:1284
+#: debug.c:121 debug.c:251 debug.c:376 debug.c:667 debug.c:721 debug.c:1285
#, c-format
msgid "Progress: %3d%%"
msgstr "Průběh: %3d%%"
-#: debug.c:124 debug.c:254 debug.c:379
+#: debug.c:126 debug.c:256 debug.c:381
#, c-format
msgid ""
"Progress: 100%%\n"
@@ -93,7 +93,7 @@
"Před spuštěním dalšího --random-errors opravte bitovou kopii pomocí volby --fix,\n"
"jinak nahromadíte >= %d výmazů/ECC blok a bitová kopie bude ztracena.\n"
-#: debug.c:299
+#: debug.c:301
#, c-format
msgid ""
"\n"
@@ -102,7 +102,7 @@
"\n"
"RS03 soubor pro opravu chyb s %d bázemi.\n"
-#: debug.c:300
+#: debug.c:302
#, c-format
msgid ""
"\n"
@@ -111,17 +111,17 @@
"\n"
"RS03 rozšířená bitová kopie s %d bázemi.\n"
-#: debug.c:301
+#: debug.c:303
#, c-format
msgid "Generating at most %d random correctable erasures.\n"
msgstr "Vygeneruje až %d nahodilých opravitelných výmazů.\n"
-#: debug.c:443 debug.c:501 debug.c:565 debug.c:606 debug.c:689 debug.c:795
-#: debug.c:836 debug.c:882 debug.c:936 debug.c:1161 debug.c:1169 debug.c:1225
-#: debug.c:1230 raw-editor.c:363 read-adaptive.c:73 read-adaptive.c:93
-#: read-adaptive.c:1440 read-adaptive.c:1472 read-linear.c:275
-#: read-linear.c:277 read-linear.c:309 read-linear.c:311 rs01-create.c:278
-#: rs03-create.c:1265
+#: debug.c:445 debug.c:503 debug.c:566 debug.c:607 debug.c:690 debug.c:796
+#: debug.c:837 debug.c:883 debug.c:937 debug.c:1162 debug.c:1170 debug.c:1226
+#: debug.c:1231 raw-editor.c:366 read-adaptive.c:75 read-adaptive.c:95
+#: read-adaptive.c:1450 read-adaptive.c:1480 read-linear.c:273
+#: read-linear.c:275 read-linear.c:306 read-linear.c:308 rs01-create.c:279
+#: rs03-create.c:1293
#, c-format
msgid ""
"Can't open %s:\n"
@@ -130,90 +130,90 @@
"Nepodařilo se otevřít %s:\n"
"%s"
-#: debug.c:448 debug.c:1140 debug.c:1216
+#: debug.c:450 debug.c:1141 debug.c:1217
msgid "2nd argument is missing"
msgstr "chybí druhý argument"
-#: debug.c:455 debug.c:1146
+#: debug.c:457 debug.c:1147
msgid "3rd argument is missing"
msgstr "chybí třetí argument"
-#: debug.c:462 debug.c:802 debug.c:843 debug.c:891 debug.c:954
+#: debug.c:464 debug.c:803 debug.c:844 debug.c:892 debug.c:955
#, c-format
-msgid "Sector must be in range [0..%lld]\n"
-msgstr "Sektor musí být v rozsahu [0..%lld]\n"
+msgid "Sector must be in range [0..%]\n"
+msgstr "Sektor musí být v rozsahu [0..%]\n"
-#: debug.c:465
+#: debug.c:467
msgid "Byte position must be in range [0..2047]"
msgstr "Pozice bajtu musí výt v rozsahu [0..2047]"
-#: debug.c:468
+#: debug.c:470
msgid "Byte value must be in range [0..255]"
msgstr "Hodnota bajtu musí být v rozsahu [0..255]"
-#: debug.c:470
+#: debug.c:472
#, c-format
-msgid "Setting byte %d in sector %lld to value %d.\n"
-msgstr "Nastavení bajtu %d sektoru %lld na hodnotu %d.\n"
+msgid "Setting byte %d in sector % to value %d.\n"
+msgstr "Nastavení bajtu %d sektoru % na hodnotu %d.\n"
-#: debug.c:477 debug.c:531 debug.c:694 rs02-create.c:190 rs02-verify.c:693
-#: rs03-verify.c:1005
+#: debug.c:479 debug.c:532 debug.c:695 rs02-create.c:194 rs02-verify.c:698
+#: rs03-verify.c:990
#, c-format
msgid "Failed seeking to start of image: %s\n"
msgstr "Nezdařil se přechod na začátek bitové kopie: %s\n"
-#: debug.c:481
+#: debug.c:483
msgid "Could not write the new byte value"
msgstr "Nepodařilo se zapsat novou hodnotu bajtu"
-#: debug.c:524 read-adaptive.c:779
+#: debug.c:525 read-adaptive.c:787
#, c-format
-msgid "Sectors must be in range [0..%lld].\n"
-msgstr "Sektory musí být v rozsahu [0..%lld].\n"
+msgid "Sectors must be in range [0..%].\n"
+msgstr "Sektory musí být v rozsahu [0..%].\n"
-#: debug.c:526
+#: debug.c:527
#, c-format
-msgid "Erasing sectors [%lld,%lld]\n"
-msgstr "Probíhá mazání sektorů [%lld,%lld]\n"
+msgid "Erasing sectors [%,%]\n"
+msgstr "Probíhá mazání sektorů [%,%]\n"
-#: debug.c:572
+#: debug.c:573
#, c-format
-msgid "New length must be in range [0..%lld].\n"
-msgstr "Nová délka musí být v rozsahu [0..%lld].\n"
+msgid "New length must be in range [0..%].\n"
+msgstr "Nová délka musí být v rozsahu [0..%].\n"
-#: debug.c:574
+#: debug.c:575
#, c-format
-msgid "Truncating image to %lld sectors.\n"
-msgstr "Probíhá zkrácení bitové kopie na %lld sektorů.\n"
+msgid "Truncating image to % sectors.\n"
+msgstr "Probíhá zkrácení bitové kopie na % sektorů.\n"
-#: debug.c:579 read-linear.c:1406 rs01-fix.c:212 rs01-fix.c:234 rs01-fix.c:250
-#: rs01-fix.c:284 rs02-create.c:105 rs02-create.c:151 rs02-fix.c:242
-#: rs02-fix.c:261 rs02-fix.c:274 rs03-create.c:237 rs03-create.c:316
-#: rs03-fix.c:266 rs03-fix.c:301 rs03-fix.c:322 rs03-fix.c:337
+#: debug.c:580 read-linear.c:1453 rs01-fix.c:218 rs01-fix.c:241 rs01-fix.c:258
+#: rs01-fix.c:292 rs02-create.c:107 rs02-create.c:155 rs02-fix.c:240
+#: rs02-fix.c:260 rs02-fix.c:274 rs03-create.c:239 rs03-create.c:320
+#: rs03-fix.c:268 rs03-fix.c:303 rs03-fix.c:325 rs03-fix.c:341
#, c-format
msgid "Could not truncate %s: %s\n"
msgstr "Nepodařilo se zkrátit %s: %s\n"
-#: debug.c:610
+#: debug.c:611
#, c-format
msgid ""
"\n"
-"Creating random image with %lld sectors.\n"
+"Creating random image with % sectors.\n"
"\n"
"There is no need for permanently storing this image;\n"
"you can always reproduce it by calling\n"
-"dvdisaster --debug %s %lld --random-seed %d\n"
+"dvdisaster --debug %s % --random-seed %d\n"
"\n"
msgstr ""
"\n"
-"Probíhá vytvoření náhodné bitové kopie s %lld sektory.\n"
+"Probíhá vytvoření náhodné bitové kopie s % sektory.\n"
"\n"
"Tuto bitovou kopii není nutné trvale uložit, lze ji\n"
"kdykoliv znovu vytvořit pomocí příkazu\n"
-"dvdisaster --debug %s %lld --random-seed %d\n"
+"dvdisaster --debug %s % --random-seed %d\n"
"\n"
-#: debug.c:674 read-adaptive.c:380 read-linear.c:123 read-linear.c:126
+#: debug.c:675 read-adaptive.c:382 read-linear.c:127 read-linear.c:130
#, c-format
msgid ""
"Error closing image file:\n"
@@ -222,83 +222,83 @@
"Při uzavírání souboru bitové kopie došlo k chybě:\n"
"%s"
-#: debug.c:690
+#: debug.c:691
msgid "Replacing the \"unreadable sector\" markers with zeros.\n"
msgstr "Probíhá nahrazení indikátorů \"nečitelných sektorů\" nulami.\n"
-#: debug.c:700
+#: debug.c:701
#, c-format
msgid ""
-"Could not read image sector %lld:\n"
+"Could not read image sector %:\n"
"%s\n"
msgstr ""
-"Nepodařilo se přečíst sektor %lld bitové kopie:\n"
+"Nepodařilo se přečíst sektor % bitové kopie:\n"
"%s\n"
-#: debug.c:725
+#: debug.c:726
#, c-format
-msgid "%lld \"unreadable sector\" markers replaced.\n"
-msgstr "Nahrazeno %lld indikátorů \"nečitelných sektorů\".\n"
+msgid "% \"unreadable sector\" markers replaced.\n"
+msgstr "Nahrazeno % indikátorů \"nečitelných sektorů\".\n"
-#: debug.c:811 debug.c:854 debug.c:1185 debug.c:1252 debug.c:1256 debug.c:1306
-#: rs01-common.c:182 rs02-common.c:240 rs02-create.c:207 rs02-fix.c:383
-#: rs03-common.c:333 rs03-recognize.c:553
+#: debug.c:812 debug.c:855 debug.c:1186 debug.c:1253 debug.c:1257 debug.c:1307
+#: rs01-common.c:193 rs02-common.c:246 rs02-create.c:211 rs02-fix.c:384
+#: rs03-common.c:346 rs03-recognize.c:556
#, c-format
-msgid "Failed reading sector %lld in image: %s"
-msgstr "Čtení sektoru %lld bitové kopie %s se nezdařilo"
+msgid "Failed reading sector % in image: %s"
+msgstr "Čtení sektoru % bitové kopie %s se nezdařilo"
-#: debug.c:845 debug.c:894 debug.c:957
+#: debug.c:846 debug.c:895 debug.c:958
#, c-format
msgid ""
-"Contents of sector %lld:\n"
+"Contents of sector %:\n"
"\n"
msgstr ""
-"Obsah sektoru %lld:\n"
+"Obsah sektoru %:\n"
"\n"
-#: debug.c:905
+#: debug.c:906
#, c-format
-msgid "Failed reading sector %lld: %s"
-msgstr "Čtení sektoru %lld se nezdařilo: %s"
+msgid "Failed reading sector %: %s"
+msgstr "Čtení sektoru % se nezdařilo: %s"
-#: debug.c:944
+#: debug.c:945
msgid "Raw reading only possible on CD media\n"
msgstr "Přímé čtení je dostupné pouze pro CD disky\n"
-#: debug.c:1152
+#: debug.c:1153
msgid "4th argument is missing"
msgstr "chybí čtvrtý argument"
-#: debug.c:1165
+#: debug.c:1166
#, c-format
-msgid "Source sector must be in range [0..%lld]\n"
-msgstr "Zdrojový sektor musí být v rozsahu [0..%lld]\n"
+msgid "Source sector must be in range [0..%]\n"
+msgstr "Zdrojový sektor musí být v rozsahu [0..%]\n"
-#: debug.c:1173
+#: debug.c:1174
#, c-format
-msgid "Destination sector must be in range [0..%lld]\n"
-msgstr "Cílový sektor musí být v rozsahu [0..%lld]\n"
+msgid "Destination sector must be in range [0..%]\n"
+msgstr "Cílový sektor musí být v rozsahu [0..%]\n"
-#: debug.c:1177
+#: debug.c:1178
#, c-format
-msgid "Copying sector %lld from %s to sector %lld in %s.\n"
-msgstr "Probíhá kopírování sektoru %lld z %s do sektoru %lld na %s.\n"
+msgid "Copying sector % from %s to sector % in %s.\n"
+msgstr "Probíhá kopírování sektoru % z %s do sektoru % na %s.\n"
-#: ds-marker.c:266
+#: ds-marker.c:269
msgid "Stop reporting these errors"
msgstr "Neupozorňovat na tyto chyby"
-#: ds-marker.c:267
+#: ds-marker.c:270
msgid "Continue reporting"
msgstr "Nadále upozorňovat"
-#: ds-marker.c:293
+#: ds-marker.c:297
msgid ""
"* ... more unrecoverable sectors found ...\n"
"* further messages are suppressed unless the -v option is given.\n"
msgstr ""
-#: ds-marker.c:307
+#: ds-marker.c:311
#, c-format
msgid ""
"\n"
@@ -313,7 +313,7 @@
"%s\n"
"\n"
-#: ds-marker.c:308
+#: ds-marker.c:312
#, c-format
msgid ""
"\n"
@@ -324,13 +324,13 @@
"* "
msgstr ""
-#: ds-marker.c:318
+#: ds-marker.c:322
#, c-format
msgid ""
"Unrecoverable sector found!\n"
"\n"
-"Sector %lld is marked unreadable and annotated to be\n"
-"in a different location (%lld).\n"
+"Sector % is marked unreadable and annotated to be\n"
+"in a different location (%).\n"
"\n"
"The image was probably mastered from defective content.\n"
"For example it might contain one or more files which came\n"
@@ -341,12 +341,12 @@
"error correction data for it. Sorry for the bad news.\n"
msgstr ""
-#: ds-marker.c:341
+#: ds-marker.c:345
#, c-format
msgid ""
"Unrecoverable sector found!\n"
"\n"
-"Sector %lld is marked unreadable and seems to come\n"
+"Sector % is marked unreadable and seems to come\n"
"from a different medium.\n"
"\n"
"The image was probably mastered from defective content.\n"
@@ -358,12 +358,12 @@
"error correction data for it. Sorry for the bad news.\n"
msgstr ""
-#: ds-marker.c:367
+#: ds-marker.c:371
#, c-format
msgid ""
"Unrecoverable sector found!\n"
"\n"
-"Sector %lld is marked unreadable on the medium.\n"
+"Sector % is marked unreadable on the medium.\n"
"\n"
"The medium was probably mastered from defective content.\n"
"For example it might contain one or more files which came\n"
@@ -375,7 +375,7 @@
msgstr ""
"Nalezen neopravitelný sektor!\n"
"\n"
-"Sektor %lld je na disku označen jako nečitelný.\n"
+"Sektor % je na disku označen jako nečitelný.\n"
"\n"
"Bitová kopie byla pravděpodobně vytvořena z poškozeného obsahu.\n"
"Může například obsahovat jeden nebo více souborů pocházejících\n"
@@ -385,12 +385,12 @@
"být pomocí dvdisaster opravena. Také nebude možné pro ní vytvořit\n"
"data pro opravu chyb. Omlouváme se za tyto špatné správy.\n"
-#: ds-marker.c:390
+#: ds-marker.c:394
#, c-format
msgid ""
"Unrecoverable sector found!\n"
"\n"
-"Sector %lld is marked unreadable in the ecc file.\n"
+"Sector % is marked unreadable in the ecc file.\n"
"\n"
"The ecc file was probably taken from a medium which\n"
"was NOT fully recovered. That means that some sectors\n"
@@ -401,83 +401,83 @@
#. TRANSLATORS:
#. This is a dummy entry which is supposed to translate into "ok".
#. Please do not return anything else here.
-#: dvdisaster.c:143 dvdisaster.c:155
+#: dvdisaster.c:151 dvdisaster.c:163
msgid "test phrase for verifying the locale installation"
msgstr "ok"
-#: dvdisaster.c:332
+#: dvdisaster.c:339
msgid "-o/--ecc-target expects 'file' or 'image'"
msgstr "-o/--ecc-target očekává 'file' nebo 'image'"
-#: dvdisaster.c:358
+#: dvdisaster.c:365
#, c-format
msgid "--threads must be 1..%d\n"
msgstr "--threads musí být 1..%d\n"
-#: dvdisaster.c:372
+#: dvdisaster.c:379
msgid "--cache-size must at least be 8MiB; 16MiB or higher is recommended."
msgstr "--cache-size musí být minimálně 8MiB; doporučeno je 16MiB nebo více."
-#: dvdisaster.c:374
+#: dvdisaster.c:381
#, c-format
msgid "--cache-size maximum is %dMiB."
msgstr ""
-#: dvdisaster.c:397
+#: dvdisaster.c:404
msgid "--encoding-algorithm: SSE2 not supported on this processor!"
msgstr ""
-#: dvdisaster.c:401
+#: dvdisaster.c:408
msgid "--encoding-algorithm: valid types are 32bit, 64bit, SSE2"
msgstr ""
-#: dvdisaster.c:408
+#: dvdisaster.c:415
msgid "--encoding-algorithm: AltiVec not supported on this processor!"
msgstr ""
-#: dvdisaster.c:412
+#: dvdisaster.c:419
msgid "--encoding-algorithm: valid types are 32bit, 64bit, AltiVec"
msgstr ""
-#: dvdisaster.c:415
+#: dvdisaster.c:422
msgid "--encoding-algorithm: valid types are 32bit, 64bit"
msgstr ""
-#: dvdisaster.c:424
+#: dvdisaster.c:431
msgid "--encoding-io-strategy: mmap not supported on this OS"
msgstr ""
-#: dvdisaster.c:428
+#: dvdisaster.c:435
msgid "--encoding-io-strategy: valid types are readwrite and mmap"
msgstr ""
-#: dvdisaster.c:438
+#: dvdisaster.c:445
msgid "Valid args for --driver: sg,cdrom"
msgstr "Platné parametry pro --driver: sg,cdrom"
-#: dvdisaster.c:440
+#: dvdisaster.c:447
msgid "--driver is only supported on GNU/Linux"
msgstr "--driver je podporován pouze v GNU/Linux"
-#: dvdisaster.c:448
+#: dvdisaster.c:455
msgid "--fixed-speed-values is only allowed in debug mode"
msgstr ""
-#: dvdisaster.c:489
+#: dvdisaster.c:499
#, c-format
-msgid "--prefetch-sectors must be in range 32...%s"
+msgid "--prefetch-sectors must be in range 32...%d"
msgstr ""
-#: dvdisaster.c:540
+#: dvdisaster.c:553
msgid "--set-version is only allowed in debug mode"
msgstr ""
-#: dvdisaster.c:647
+#: dvdisaster.c:660
#, c-format
msgid "?? illegal getopt return value %d\n"
msgstr "?? neplatná návratová hodnota getopt %d\n"
-#: dvdisaster.c:738 main-window.c:154
+#: dvdisaster.c:753 main-window.c:153
#, c-format
msgid ""
"\n"
@@ -488,7 +488,7 @@
"Metoda %s není k dispozici.\n"
"Pro zobrazení seznamu metod použijte -m bez parametrů.\n"
-#: dvdisaster.c:749 rs01-create.c:260 rs02-create.c:1031 rs03-create.c:1233
+#: dvdisaster.c:764 rs01-create.c:261 rs02-create.c:1031 rs03-create.c:1261
#, c-format
msgid ""
"\n"
@@ -497,25 +497,25 @@
"\n"
"Otevírání %s"
-#: dvdisaster.c:756 rs01-create.c:269 rs02-create.c:155 rs02-create.c:1041
-#: rs03-create.c:320 rs03-create.c:1248
+#: dvdisaster.c:771 rs01-create.c:270 rs02-create.c:159 rs02-create.c:1041
+#: rs03-create.c:324 rs03-create.c:1276
#, c-format
-msgid ": %lld medium sectors.\n"
-msgstr ": %lld sektorů disku.\n"
+msgid ": % medium sectors.\n"
+msgstr ": % sektorů disku.\n"
-#: dvdisaster.c:757 rs01-create.c:270 rs02-create.c:156 rs02-create.c:1042
-#: rs03-create.c:321 rs03-create.c:1249
+#: dvdisaster.c:772 rs01-create.c:271 rs02-create.c:160 rs02-create.c:1042
+#: rs03-create.c:325 rs03-create.c:1277
#, c-format
-msgid ": %lld medium sectors and %d bytes.\n"
-msgstr ": %lld sektorů disku a %d bajtů.\n"
+msgid ": % medium sectors and %d bytes.\n"
+msgstr ": % sektorů disku a %d bajtů.\n"
-#: dvdisaster.c:784 main-window.c:215
+#: dvdisaster.c:799 main-window.c:211
msgid "RS01 method not available for comparing files."
msgstr "Metoda RS01 není pro porovnání souborů dostupná."
#. TRANSLATORS: Program options like -r and --read are not to be translated
#. to avoid confusion when discussing the program in international forums.
-#: dvdisaster.c:874
+#: dvdisaster.c:893
msgid ""
"\n"
"Common usage examples:\n"
@@ -539,7 +539,7 @@
" dvdisaster -u,--unlink # Po dokončení ostatních akcí smaže soubory ISO\n"
"\n"
-#: dvdisaster.c:883
+#: dvdisaster.c:902
#, c-format
msgid ""
"Drive and file specification:\n"
@@ -556,23 +556,23 @@
" -e,--ecc eccsoubor - název souboru ECC (výchozí: disk.ecc)\n"
" -o,--ecc-target [file|image] - kam uložit ecc data pro RS03\n"
-#: dvdisaster.c:893
+#: dvdisaster.c:912
msgid "Tweaking options (see manual before using!)\n"
msgstr "Možnosti optimalizace (před použitím si přečtěte návod!)\n"
-#: dvdisaster.c:894
+#: dvdisaster.c:913
msgid " -a,--assume x,y,... - assume image is augmented with codec(s) x,y,...\n"
msgstr " -a,--assume x,y,... - předpokl. bitovou kopii rozšířenou kodeky x,y,...\n"
-#: dvdisaster.c:895
+#: dvdisaster.c:914
msgid " -j,--jump n - jump n sectors forward after a read error (default: 16)\n"
msgstr " -j,--jump n - po chybě čtení přeskočit n sektorů (výchozí: 16)\n"
-#: dvdisaster.c:896
+#: dvdisaster.c:915
msgid " -m n - list/select error correction methods (default: RS01)\n"
msgstr " -m n - vypsat/vybrat metody opravy chyb (výchozí: RS01)\n"
-#: dvdisaster.c:897
+#: dvdisaster.c:916
#, c-format
msgid ""
" -n,--redundancy n%% - error correction data redundancy\n"
@@ -581,204 +581,216 @@
" -n,--redundancy n%% - redundance souboru pro opravu chyb\n"
" povolené hodnoty závisí na kodeku (viz návod)\n"
-#: dvdisaster.c:899
+#: dvdisaster.c:918
msgid " -v,--verbose - more diagnostic messages\n"
msgstr " -v,--verbose - podrobnější diagnostický výpis\n"
-#: dvdisaster.c:900
+#: dvdisaster.c:919
msgid " -x,--threads n - use n threads for en-/decoding (if supported by codec)\n"
msgstr " -x,--threads n - pro kódování/dekódování použít n vláken (pokud to kodek podporuje)\n"
-#: dvdisaster.c:901
+#: dvdisaster.c:920
msgid " --adaptive-read - use optimized strategy for reading damaged media\n"
msgstr " --adaptive-read - použít optimalizovanou strategii čtení poškozených disků\n"
-#: dvdisaster.c:902
+#: dvdisaster.c:921
msgid " --auto-suffix - automatically add .iso and .ecc file suffixes\n"
msgstr " --auto-suffix - automaticky přidá k souborům přípony ISO a ECC\n"
-#: dvdisaster.c:903
+#: dvdisaster.c:922
msgid " --cache-size n - image cache size in MiB during -c mode (default: 32MiB)\n"
msgstr " --cache-size n - velikost mezipaměti v -c režimu (v MiB, výchozí: 32MiB)\n"
-#: dvdisaster.c:904
+#: dvdisaster.c:923
msgid " --dao - assume DAO disc; do not trim image end\n"
msgstr " --dao - předpokl. DAO disk; nezkracovat konec bitové kopie\n"
-#: dvdisaster.c:905
+#: dvdisaster.c:924
msgid " --defective-dump d - directory for saving incomplete raw sectors\n"
msgstr " --defective-dump d - adresář pro ukládání nezpracovaných sektorů\n"
-#: dvdisaster.c:907
+#: dvdisaster.c:926
msgid " --driver=sg/cdrom - use sg(default) or alternative cdrom driver (see man page!)\n"
msgstr " --driver=sg/cdrom - použít (výchozí) sg nebo alternativní cdrom ovladač (viz návod!)\n"
-#: dvdisaster.c:909
+#: dvdisaster.c:928
msgid " --eject - eject medium after successful read\n"
msgstr " --eject - po úspěšném načtení vysune disk\n"
-#: dvdisaster.c:910
+#: dvdisaster.c:929
msgid " --encoding-algorithm n - possible values: 32bit,64bit,SSE2,AltiVec\n"
msgstr ""
-#: dvdisaster.c:911
+#: dvdisaster.c:930
msgid " --encoding-io-strategy n - possible values: readwrite, mmap\n"
msgstr ""
-#: dvdisaster.c:912
+#: dvdisaster.c:931
msgid " --fill-unreadable n - fill unreadable sectors with byte n\n"
msgstr " --fill-unreadable n - vyplní nečitelné sektory bajtem n\n"
-#: dvdisaster.c:913
+#: dvdisaster.c:932
msgid " --ignore-fatal-sense - continue reading after potentially fatal error conditon\n"
msgstr " --ignore-fatal-sense - pokračovat ve čtení i po potenciálně neopravitelné chybě\n"
-#: dvdisaster.c:914
+#: dvdisaster.c:933
msgid " --ignore-iso-size - ignore image size from ISO/UDF data (dangerous - see man page!)\n"
msgstr " --ignore-iso-size - ignoruje údaj o velikosti bitové kopie z ISO/UDF (nebezpečné - čtěte manuál!)\n"
-#: dvdisaster.c:915
+#: dvdisaster.c:934
msgid " --internal-rereads n - drive may attempt n rereads before reporting an error\n"
msgstr " --internal-rereads n - mechanika může před nahlášením chyby zkusit n opakovaných čtení\n"
-#: dvdisaster.c:916
+#: dvdisaster.c:935
msgid " --medium-info - print info about medium in drive\n"
msgstr ""
-#: dvdisaster.c:917
+#: dvdisaster.c:936
+msgid " --no-progress - do not print progress information\n"
+msgstr ""
+
+#: dvdisaster.c:937
msgid " --old-ds-marker - mark missing sectors compatible with dvdisaster <= 0.70\n"
msgstr " --old-ds-marker - použít označení chybějících sektorů kompatibilní s dvdisaster <= 0.70\n"
-#: dvdisaster.c:918
+#: dvdisaster.c:938
msgid " --prefetch-sectors n - prefetch n sectors for RS03 encoding (uses ~nMiB)\n"
msgstr " --prefetch-sectors n - pro RS03 kódování přednačíst n sektorů (používá ~nMiB)\n"
-#: dvdisaster.c:919
+#: dvdisaster.c:939
msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
msgstr " --raw-mode n - režim přímého čtení pro CD disky (20 nebo 21)\n"
-#: dvdisaster.c:920
-msgid " --read-attempts n-m - attempts n upto m reads of a defective sector\n"
+#: dvdisaster.c:940
+msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
msgstr " --read-attempts n-m - zkusit n až m opakovaných čtení poškozeného sektoru\n"
-#: dvdisaster.c:921
+#: dvdisaster.c:941
msgid " --read-medium n - read the whole medium up to n times\n"
msgstr " --read-medium n - celý disk zkusit číst až n krát\n"
-#: dvdisaster.c:922
+#: dvdisaster.c:942
msgid " --read-raw - performs read in raw mode if possible\n"
msgstr " --read-raw - pokud je to možné, provede čtení v přímém režimu\n"
-#: dvdisaster.c:923
+#: dvdisaster.c:943
+msgid " --regtest - tweaks output for compatibility with regtests\n"
+msgstr ""
+
+#: dvdisaster.c:944
msgid " --resource-file p - get resource file from given path\n"
msgstr ""
-#: dvdisaster.c:924
+#: dvdisaster.c:945
msgid " --speed-warning n - print warning if speed changes by more than n percent\n"
msgstr " --speed-warning n - vypíše upozornění pokud se rychlost změní o více než n procent\n"
-#: dvdisaster.c:925
+#: dvdisaster.c:946
msgid " --spinup-delay n - wait n seconds for drive to spin up\n"
msgstr " --spinup-delay n - počká n sekund na roztočení mechaniky\n"
-#: dvdisaster.c:929
+#: dvdisaster.c:947
+msgid " --version - print version and some configuration info\n"
+msgstr ""
+
+#: dvdisaster.c:951
msgid "Debugging options (purposefully undocumented and possibly harmful)\n"
msgstr "Možnosti ladění (záměrně nezdokumentované a eventuálně škodlivé)\n"
-#: dvdisaster.c:930
+#: dvdisaster.c:952
msgid " --debug - enables the following options\n"
msgstr " --debug - povolí použití následujících možností\n"
-#: dvdisaster.c:931
+#: dvdisaster.c:953
msgid " --byteset s,i,b - set byte i in sector s to b\n"
msgstr " --byteset s,i,b - nastaví bajt i sektoru s na b\n"
-#: dvdisaster.c:932
+#: dvdisaster.c:954
msgid " --cdump - creates C #include file dumps instead of hexdumps\n"
msgstr " --cdump - vytvoří výpis ve formátu C #include místo hexadecimálního\n"
-#: dvdisaster.c:933
+#: dvdisaster.c:955
msgid " --compare-images a,b - compare sectors in images a and b\n"
msgstr " --compare-images a,b - porovná sektory bitových kopií a a b\n"
-#: dvdisaster.c:934
+#: dvdisaster.c:956
msgid " --copy-sector a,n,b,m - copy sector n from image a to sector m in image b\n"
msgstr " --copy-sector a,n,b,m - zkopíruje sektor n bitové kopie a do sektoru m bitové kopie b\n"
-#: dvdisaster.c:935
+#: dvdisaster.c:957
msgid " --erase sector - erase the given sector\n"
msgstr " --erase sector - smaže daný sektor\n"
-#: dvdisaster.c:936
+#: dvdisaster.c:958
msgid " --erase n-m - erase sectors n - m, inclusively\n"
msgstr " --erase n-m - smaže sektory n - m, včetně\n"
-#: dvdisaster.c:937
+#: dvdisaster.c:959
msgid " --fixed-speed-values - output fixed speed values for better output diffing\n"
msgstr ""
-#: dvdisaster.c:938
+#: dvdisaster.c:960
msgid " --marked-image n - create image with n marked random sectors\n"
msgstr " --marked-image n - vytvoří bitovou kopii s n označenými náhodnými sektory\n"
-#: dvdisaster.c:939
+#: dvdisaster.c:961
msgid " --merge-images a,b merge image a with b (a receives sectors from b)\n"
msgstr " --merge-images a,b - sloučí bitové kopie a a b (a obdrží sektory z b)\n"
-#: dvdisaster.c:940
+#: dvdisaster.c:962
msgid " --random-errors e - seed image with (correctable) random errors\n"
msgstr ""
-#: dvdisaster.c:941
+#: dvdisaster.c:963
msgid " --random-image n - create image with n sectors of random numbers\n"
msgstr " --random-image n - vytvoří bitovou kopii s n sektory náhodných čísel\n"
-#: dvdisaster.c:942
+#: dvdisaster.c:964
msgid " --random-seed n - random seed for built-in random number generator\n"
msgstr " --random-seed n - základ pro zabudovaný generátor náhodných čísel\n"
-#: dvdisaster.c:943
+#: dvdisaster.c:965
msgid " --raw-sector n - shows hexdump of the given raw sector from medium in drive\n"
msgstr " --raw-sector n - zobrazí hexadecimální výpis daného nezpracovaného sektoru\n"
-#: dvdisaster.c:944
+#: dvdisaster.c:966
msgid " --read-sector n - shows hexdump of the given sector from medium in drive\n"
msgstr " --read-sector n - zobrazí hexadecimální výpis daného sektoru\n"
-#: dvdisaster.c:945
+#: dvdisaster.c:967
msgid " --screen-shot - useful for generating screen shots\n"
msgstr " --screen-shot - užitečné pro vytváření snímků obrazovky\n"
-#: dvdisaster.c:946
+#: dvdisaster.c:968
msgid " --send-cdb arg - executes given cdb at drive; kills system if used wrong\n"
msgstr " --send-cdb arg - vykoná na mechanice dané cdb; při špatném použití může zabít systém\n"
-#: dvdisaster.c:947
+#: dvdisaster.c:969
msgid " --set-version - set program version for debugging purposes (dangerous!)\n"
msgstr ""
-#: dvdisaster.c:948
+#: dvdisaster.c:970
msgid " --show-header n - assumes given sector is a ecc header and prints it\n"
msgstr ""
-#: dvdisaster.c:949
+#: dvdisaster.c:971
msgid " --show-sector n - shows hexdump of the given sector in an image file\n"
msgstr " --show-sector n - zobrazí hexadecimální výpis daného sektoru bitové kopie\n"
-#: dvdisaster.c:950
+#: dvdisaster.c:972
msgid " --sim-cd image - simulate a SCSI-Level CD with contents supplied by the ISO image\n"
msgstr ""
-#: dvdisaster.c:951
+#: dvdisaster.c:973
#, c-format
msgid " --sim-defects n - simulate n%% defective sectors on medium\n"
msgstr " --sim-defects n - nasimuluje na disku n%% poškozených sektorů\n"
-#: dvdisaster.c:952
+#: dvdisaster.c:974
msgid " --truncate n - truncates image to n sectors\n"
msgstr " --truncate n - zkrátí bitovou kopii na n sektorů\n"
-#: dvdisaster.c:953
+#: dvdisaster.c:975
msgid ""
" --zero-unreadable - replace the \"unreadable sector\" markers with zeros\n"
"\n"
@@ -786,46 +798,46 @@
" --zero-unreadable - nahradit značky pro \"nečitelné sektory\" nulami\n"
"\n"
-#: dvdisaster.c:982
+#: dvdisaster.c:1005
msgid "Optical drive 52X FW 1.02"
msgstr "Optická mechanika 52X FW 1.02"
-#: ecc-rs01.c:41
+#: ecc-rs01.c:43
msgid "Error correction file (RS01)"
msgstr "Soubor pro opravu chyb (RS01)"
-#: ecc-rs01.c:42
+#: ecc-rs01.c:44
msgid "Classic Reed-Solomon method based on polynomial arithmetic"
msgstr "Klasická metoda Reed-Solomon založená na polynomiální aritmetice"
-#: ecc-rs02.c:42
+#: ecc-rs02.c:44
msgid "Augmented image (RS02)"
msgstr "Rozšířená bitová kopie (RS02)"
-#: ecc-rs02.c:43
+#: ecc-rs02.c:45
msgid "Reed-Solomon method with improved tolerance for defective ecc data"
msgstr "Metoda Reed-Solomon s vylepšenou odolností pro poškozená ecc data"
-#: ecc-rs03.c:42
+#: ecc-rs03.c:44
msgid "Multithreaded RS codec (RS03)"
msgstr "Vícevláknový RS kodek (RS03)"
-#: ecc-rs03.c:43
+#: ecc-rs03.c:45
msgid "Multithreaded Reed-Solomon codec for error correction files and augmented images"
msgstr "Vícevláknový Reed-Solomon kodek pro soubory pro opravu chyb a rozšířené bitové kopie"
-#: endian.c:76
+#: endian.c:78
msgid ""
"\n"
"Contents of Ecc Header:\n"
"\n"
msgstr ""
-#: help-dialogs.c:386
+#: help-dialogs.c:388
msgid "windowtitle|Log data"
msgstr "Data záznamu"
-#: help-dialogs.c:387
+#: help-dialogs.c:389
msgid ""
"Log data\n"
"Protocol of the current or previous action"
@@ -833,11 +845,11 @@
"Data záznamu\n"
" Záznam výstupu aktuální nebo předchozí akce"
-#: help-dialogs.c:403
+#: help-dialogs.c:405
msgid "windowtitle|GNU General Public License"
msgstr "GNU General Public License"
-#: help-dialogs.c:404
+#: help-dialogs.c:406
msgid ""
"GNU General Public License\n"
"The license terms of dvdisaster."
@@ -845,7 +857,7 @@
"GNU General Public License\n"
"Licenční podmínky aplikace dvdisaster."
-#: help-dialogs.c:476
+#: help-dialogs.c:478
#, c-format
msgid ""
"File\n"
@@ -856,7 +868,7 @@
"%s\n"
"neexistuje"
-#: help-dialogs.c:486
+#: help-dialogs.c:488
#, c-format
msgid ""
"File\n"
@@ -867,7 +879,7 @@
"%s\n"
"není dostupný"
-#: help-dialogs.c:498
+#: help-dialogs.c:500
msgid ""
"\n"
"<- Error: Text file truncated here"
@@ -875,39 +887,19 @@
"\n"
"<- Chyba: Textový soubor byl zkrácen"
-#: help-dialogs.c:567
-msgid "windowtitle|Modifying dvdisaster"
-msgstr "Úpravy dvdisaster"
-
-#: help-dialogs.c:568
-msgid ""
-"Modifying dvdisaster\n"
-"Your changes are not ours."
-msgstr ""
-"Úpravy dvdisaster\n"
-"Vaše úpravy nejsou naše."
-
-#: help-dialogs.c:707
+#: help-dialogs.c:699
msgid "windowtitle|About dvdisaster"
msgstr "O aplikaci dvdisaster"
-#: help-dialogs.c:727
+#: help-dialogs.c:717 misc.c:214
msgid ""
-"Modified version Copyright 2015 (please fill in - [directions])\n"
-"Copyright 2004-2015 Carsten Gnoerlich"
-msgstr ""
-"Upravená verze Copyright 2015 (doplňte - [directions])\n"
-"Copyright 2004-2015 Carsten Gnörlich"
-
-#: help-dialogs.c:731 misc.c:205
-msgid "Copyright 2004-2015 Carsten Gnoerlich"
+"Copyright 2004-2017 Carsten Gnoerlich.\n"
+"Copyright 2019-2021 The dvdisaster development team."
msgstr ""
-"Copyright 2004-2015 Carsten Gnörlich\n"
-"Česká lokalizace\n"
-"\t\t2011 Jindřich Šesták\n"
-"\t\t2006 Luboš Staněk"
+"Copyright 2004-2017 Carsten Gnörlich.\n"
+"Copyright 2019-2021 The dvdisaster development team."
-#: help-dialogs.c:738
+#: help-dialogs.c:723
msgid ""
"dvdisaster provides a margin of safety against data loss\n"
"on optical media caused by aging or scratches.\n"
@@ -919,7 +911,7 @@
"Vytvoří data pro opravu chyb, která je možné použít k obnovení\n"
"nečitelných sektorů, pokud později dojde k poškození disku.\n"
-#: help-dialogs.c:743
+#: help-dialogs.c:728
msgid ""
"This software comes with absolutely no warranty.\n"
"This is free software and you are welcome to redistribute it\n"
@@ -929,31 +921,15 @@
"Jde o svobodný software a můžete jej šířit za dodržení\n"
"podmínek [GNU General Public License].\n"
-#: help-dialogs.c:749
+#: help-dialogs.c:733
msgid ""
"\n"
-"This program is not the original. It is based on the\n"
-"source code of dvdisaster, but contains third-party changes.\n"
-"\n"
-"Please do not bother the original authors of dvdisaster\n"
-"([www.dvdisaster.org]) about issues with this version.\n"
+"e-mail: support@dvdisaster.org"
msgstr ""
"\n"
-"Tento program není originál. Je založen na zdrojovém\n"
-"kódu dvdisaster, ale obsahuje úpravy třetí strany.\n"
-"\n"
-"Prosím neobtěžujte originální autory dvdisaster\n"
-"([www.dvdisaster.org]) problémy s touto verzí.\n"
+"e-mail: support@dvdisaster.org"
-#: help-dialogs.c:764
-msgid ""
-"\n"
-"e-mail: carsten@dvdisaster.org -or- cgnoerlich@fsfe.org"
-msgstr ""
-"\n"
-"e-mail: carsten@dvdisaster.org -nebo- cgnoerlich@fsfe.org"
-
-#: help-dialogs.c:766
+#: help-dialogs.c:740
msgid ""
"\n"
"NetBSD port: Sergey Svishchev <svs@ropnet.ru>"
@@ -961,12 +937,12 @@
"\n"
"Port pro NetBSD: Sergey Svishchev <svs@ropnet.ru>"
-#: image.c:150 image.c:154
+#: image.c:156 image.c:161
#, c-format
msgid "Image file %s not present or permission denied.\n"
msgstr "Bitová kopie %s neexistuje nebo byl zamítnut přístup.\n"
-#: image.c:163 image.c:167
+#: image.c:172 image.c:177
msgid ""
"\n"
"Error correction file type unknown.\n"
@@ -974,7 +950,13 @@
"\n"
"Neznámý typ opravného souboru.\n"
-#: image.c:176 image.c:181
+#: image.c:188 image.c:194
+msgid ""
+"\n"
+"Permission denied on ecc file (perhaps not writeable?).\n"
+msgstr ""
+
+#: image.c:206 image.c:212
msgid ""
"\n"
"No error correction file present.\n"
@@ -984,7 +966,7 @@
"Není k dispozici soubor pro opravu chyb.\n"
"V bitové kopii nebyla rozpoznána žádná data pro opravu chyb.\n"
-#: large-io.c:223
+#: large-io.c:228
#, c-format
msgid ""
"Error while writing the file:\n"
@@ -999,7 +981,7 @@
"\n"
"Poté co uvolníte nějaké místo, můžete operaci zopakovat."
-#: main-window.c:67
+#: main-window.c:70
#, c-format
msgid "log: %s\n"
msgstr ""
@@ -1034,51 +1016,51 @@
"ISO rozšířenou o data pro opravu chyb, ponechejte\n"
"název souboru pro opravu chyb prázdný."
-#: main-window.c:180
+#: main-window.c:177
msgid "Internal error: No suitable method for repairing image."
msgstr ""
-#: main-window.c:283
+#: main-window.c:279
msgid "button|Read"
msgstr "Načíst"
-#: main-window.c:286
+#: main-window.c:282
msgid "tooltip|Read Image"
msgstr "Vytvořit bitovou kopii"
-#: main-window.c:286
+#: main-window.c:283
msgid "Reads an optical disc image into a file (or tries to complete an existing image file)."
msgstr "Vytvoří soubor bitové kopie CD/DVD (nebo se pokusí doplnit soubor existující bitové kopie)."
-#: main-window.c:300
+#: main-window.c:297
msgid "button|Create"
msgstr "Vytvořit"
-#: main-window.c:303
+#: main-window.c:300
msgid "tooltip|Create error correction data"
msgstr "Vytvořit data pro opravu"
-#: main-window.c:303
+#: main-window.c:301
msgid "Creates error correction data. Requires an image file."
msgstr "Vytvoří data pro opravu chyb. Vyžaduje soubor bitové kopie."
-#: main-window.c:307
+#: main-window.c:305
msgid "button|Scan"
msgstr "Zkontrolovat"
-#: main-window.c:310
+#: main-window.c:308
msgid "tooltip|Scan medium"
msgstr "Zkontrolovat disk"
-#: main-window.c:310
+#: main-window.c:309
msgid "Scans medium for unreadable sectors."
msgstr "Zkontroluje čitelnost disku."
-#: main-window.c:314
+#: main-window.c:313
msgid "button|Fix"
msgstr "Opravit"
-#: main-window.c:317
+#: main-window.c:316
msgid "tooltip|Repair image"
msgstr "Opravit bitovou kopii"
@@ -1094,114 +1076,114 @@
msgid "tooltip|Consistency check"
msgstr "Ověřit konzistenci"
-#: main-window.c:324
+#: main-window.c:325
msgid "Tests consistency of error correction data and image file."
msgstr "Otestuje konzistenci dat pro opravu chyb a souboru bitové kopie."
-#: main-window.c:328
+#: main-window.c:329
msgid "button|Stop"
msgstr "Zastavit"
-#: main-window.c:331
+#: main-window.c:332
msgid "tooltip|Abort action"
msgstr "Přerušit akci"
-#: main-window.c:331
+#: main-window.c:333
msgid "Aborts an ongoing action."
msgstr "Přeruší probíhající akci."
-#: main-window.c:488
+#: main-window.c:490
msgid "tooltip|Protocol for current action"
msgstr "Záznam výpisu probíhající akce"
-#: main-window.c:489
+#: main-window.c:491
msgid "Displays additional information created during the current or last action."
msgstr "Zobrazí další informace vypsané v průběhu probíhající nebo předchozích akcí."
-#: main-window.c:498
+#: main-window.c:500
msgid "View log"
msgstr "Zobrazit záznam"
-#: medium-info.c:54
+#: medium-info.c:56
msgid "Medium not present"
msgstr "Není vložen žádný disk"
-#: medium-info.c:105 medium-info.c:358
+#: medium-info.c:108 medium-info.c:356
msgid "Physical medium info"
msgstr "Fyzické informace o disku"
-#: medium-info.c:127 medium-info.c:133
+#: medium-info.c:130 medium-info.c:136
msgid "empty"
msgstr "prázdný"
-#: medium-info.c:128
+#: medium-info.c:131
msgid "appendable"
msgstr "doplnitelný"
-#: medium-info.c:129
+#: medium-info.c:132
msgid "finalized"
msgstr "uzavřený"
-#: medium-info.c:130 scsi-layer.c:98
+#: medium-info.c:133 scsi-layer.c:100
msgid "unknown"
msgstr "neznámý"
-#: medium-info.c:134
+#: medium-info.c:137
msgid "incomplete"
msgstr "neúplný"
-#: medium-info.c:135
+#: medium-info.c:138
msgid "damaged"
msgstr "poškozený"
-#: medium-info.c:136 rs02-verify.c:670 rs02-verify.c:877 rs02-verify.c:878
-#: rs02-verify.c:879 rs03-verify.c:1260 rs03-verify.c:1262 rs03-verify.c:1263
+#: medium-info.c:139 rs02-verify.c:673 rs02-verify.c:891 rs02-verify.c:892
+#: rs02-verify.c:893 rs03-verify.c:1259 rs03-verify.c:1262 rs03-verify.c:1265
msgid "complete"
msgstr "kompletní"
-#: medium-info.c:141
+#: medium-info.c:144
#, c-format
msgid "%s (%d sessions; last session %s)\n"
msgstr "%s (%d session; poslední session %s)\n"
-#: medium-info.c:147
+#: medium-info.c:150
#, c-format
-msgid "%lld sectors (%lld MiB), from READ CAPACITY\n"
-msgstr "%lld sektorů (%lld MiB), z READ CAPACITY\n"
+msgid "% sectors (% MiB), from READ CAPACITY\n"
+msgstr "% sektorů (% MiB), z READ CAPACITY\n"
-#: medium-info.c:150
+#: medium-info.c:153
#, c-format
-msgid "%lld sectors (%lld MiB), from DVD structure\n"
-msgstr "%lld sektorů (%lld MiB), ze struktury DVD\n"
+msgid "% sectors (% MiB), from DVD structure\n"
+msgstr "% sektorů (% MiB), ze struktury DVD\n"
-#: medium-info.c:154 medium-info.c:204
+#: medium-info.c:157 medium-info.c:206
#, c-format
-msgid "%lld sectors (%lld MiB)\n"
-msgstr "%lld sektorů (%lld MiB)\n"
+msgid "%