diff --git a/CHANGELOG b/CHANGELOG
index 39f3641..2ac5024 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,33 @@
-# dvdisaster changelog -*-text-*-
+# 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.7 - work in progress -
+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.patchlevel-9 27-06-2021 *UNOFFICIAL*
@@ -162,7 +189,7 @@ 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
diff --git a/GNUmakefile.template b/GNUmakefile.template
index 7dd0ada..4ea037a 100644
--- a/GNUmakefile.template
+++ b/GNUmakefile.template
@@ -1,5 +1,6 @@
# dvdisaster: Additional error correction for optical media.
-# Copyright (C) 2004-2018 Carsten Gnoerlich.
+# Copyright (C) 2004-2017 Carsten Gnoerlich.
+# Copyright (C) 2019-2021 The dvdisaster development team.
#
# Email: support@dvdisaster.org
#
@@ -35,6 +36,10 @@ MAN_LOCALES = de
# Where to put tar archives (arch, srcdist)
TAR_PREFIX=/dev/shm
+# current project homepage
+
+HOMEPAGE="https://dvdisaster.jcea.es/"
+
######################################################################
# Take over variables from configure
######################################################################
@@ -172,6 +177,7 @@ untranslated:
version.tex:
@test -d $(SRCDIR)/documentation/config || mkdir $(SRCDIR)/documentation/config
@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... "
@@ -277,7 +283,6 @@ install: dvdisaster manual
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))
diff --git a/README b/README
index dfedfea..f679601 100644
--- a/README
+++ b/README
@@ -1,5 +1,6 @@
# dvdisaster: Additional error correction for optical media.
-# Copyright (C) 2004-2018 Carsten Gnoerlich.
+# Copyright (C) 2004-2017 Carsten Gnoerlich.
+# Copyright (C) 2019-2020 The dvdisaster development team.
#
# Email: support@dvdisaster.org
#
diff --git a/TODO b/TODO
index 8344b4b..82c7cbf 100644
--- a/TODO
+++ b/TODO
@@ -1,37 +1,40 @@
Tentative to do/ release schedule
-Version 0.79: new RS03 codec (encoding part)
- - lots of speed optimizations in error correction data encoding
- - multithreaded / multicore processor support
- - add missing functionality, e.g. adaptive reading
- 0.79.5: project re-launch
- 0.79.6: re-introduce CRC and MD5 caching between reading
- and ecc creation; cosmetical changes
- 0.79.7: re-introduce adaptive reading [partly done in pl4]
+Versions 0.79.x: development releases
+* restart project, catch up wich recent compiler and OS version,
+* last releases with gtk-2
-Version 0.80: milestone release
+work in progress (this release):
+
+- clean build fpr gcc-8 and Debian Buster (Work in progress)
+
+upcoming (next releases):
+
+- clean build for gcc-10 (Slackware 15, Debian testing)
+- split GUI code from core source to allow for command-line only build
+
+Versions 0.80.x: development releases
+* gtk-4 migration
+* lots of micro releases to revive the project and resolve outstanding issues
+
+- remove obsolete features, especially in the GUI
+- upgrade from gtk-2 to gtk-4
+- re-introduce adaptive reading
+- ... many more will likely be added ...
+
+Version 0.82: next milestone/stable release
- RS03 encoding considered feature complete
-Version 0.81:
+Version 0.83: development releases
- multithreaded decoding (error correction/repair)
for RS01/RS02/RS03
- - RS01 encoding (not decoding of course) will be
- removed as RS03 fully replaces it
-Version 0.82: milestone release
+Version 0.84: milestone release
- RS03 decoding considered feature complete
-Version 0.84:
- - compile option to create a CLI-only binary [done in pl1]
- (without GTK+ linkage)
-
-Version 0.86:
- - maybe upgrade from GTK+ 2 to version 3
- (not decided yet)
-
Version 0.90:
- - Grand finale: add a new feature which isn't jaw dropping
+ - Grand finale: add a last new feature which isn't jaw dropping
but very convenient to have (sorry - has nothing to do
with ripping). Since I'm not sure whether there
is prior art to this feature, I won't get into
@@ -49,7 +52,6 @@ Version 1.00: maintenance releases
Unspecified schedule / later releases
- - native Windows fork
- add pause/resume button
- optionally pause after n read errors for drives which
need to cool down
diff --git a/TRANSLATION.HOWTO b/TRANSLATION.HOWTO
index 939df76..dfb458b 100644
--- a/TRANSLATION.HOWTO
+++ b/TRANSLATION.HOWTO
@@ -1,5 +1,6 @@
# dvdisaster: Additional error correction for optical media.
-# Copyright (C) 2004-2018 Carsten Gnoerlich.
+# Copyright (C) 2004-2017 Carsten Gnoerlich.
+# Copyright (C) 2019-2021 The dvdisaster development team.
#
# Email: support@dvdisaster.org
#
diff --git a/configure b/configure
index 0cb708b..3573921 100755
--- a/configure
+++ b/configure
@@ -38,7 +38,7 @@ fi
# Set the package name and version
-PACKAGE dvdisaster 0.79.7
+PACKAGE dvdisaster 0.79.8
DEFINE_INT PATCHLEVEL 9
DEFINE_STRING HAVE_UNSTABLE_RELEASE 1
DEFINE_STRING HOMEPAGE "https://dvdisaster.jcea.es"
diff --git a/documentation/codec-specs/codecs.pdf b/documentation/codec-specs/codecs.pdf
index 479fb2d..e50e3a5 100644
Binary files a/documentation/codec-specs/codecs.pdf and b/documentation/codec-specs/codecs.pdf differ
diff --git a/documentation/codec-specs/codecs.tex b/documentation/codec-specs/codecs.tex
index 487384c..667f7a7 100644
--- a/documentation/codec-specs/codecs.tex
+++ b/documentation/codec-specs/codecs.tex
@@ -35,12 +35,14 @@
\fancyfoot[LO]{created: \today}
\fancyfoot[RE]{\paperversion}
+\input{../config/version.tex}
+
\begin{document}
\definecolor{lightblue}{RGB}{224,224,255}
\pagecolor{lightblue}
\title{The dvdisaster Reed-Solomon Codec specification}
-\author{Carsten Gnörlich\\carsten@dvdisaster.org}
+\author{The dvdisaster development team\\support@dvdisaster.org}
\date{}
\maketitle
\thispagestyle{empty}
@@ -59,7 +61,7 @@ Reed-Solomon codecs which are currently called RS01, RS02 and RS03.
The codecs create Reed-Solomon parity data to protect data stored on optical media.
Depending on the codec, parity data can either be stored in a separate file
or be integrated with the .iso image on the same medium.
-See \url{http://dvdisaster.org} for additional resources on the dvdisaster project,
+See \homepage for additional resources on the dvdisaster pro\-ject,
e.g. for the {\em orange manual} (manual.pdf) containing information for end users.
\end{abstract}
@@ -69,7 +71,7 @@ e.g. for the {\em orange manual} (manual.pdf) containing information for end use
dvdisaster developers and, when the final version has been crafted, as an implementation
guide for third party developers who wish to create and process dvdisaster error correction data.
It is {\bf neither intended nor suitable} as end-user documentation; for usage information
-please refer to the online documentation at \url{http://dvdisaster.org}.
+please refer to the online documentation at \homepage.
\bigskip
@@ -81,7 +83,8 @@ of programming in C is also assumed.
\vfill
\begin{center}
{\em
-Copyright 2008-2015 Carsten Gnörlich.
+Copyright 2008-2015 Carsten Gnörlich.\\
+Copyright 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}
diff --git a/documentation/user-manual/Makefile b/documentation/user-manual/Makefile
index 11d365e..72e4a4c 100644
--- a/documentation/user-manual/Makefile
+++ b/documentation/user-manual/Makefile
@@ -11,7 +11,7 @@ archclean: clean
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
diff --git a/documentation/user-manual/burning-compatibility.tex b/documentation/user-manual/burning-compatibility.tex
deleted file mode 100644
index 54f2031..0000000
--- a/documentation/user-manual/burning-compatibility.tex
+++ /dev/null
@@ -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 --git a/documentation/user-manual/download.tex b/documentation/user-manual/download.tex
index a91a44a..18e8af9 100644
--- a/documentation/user-manual/download.tex
+++ b/documentation/user-manual/download.tex
@@ -15,8 +15,8 @@ the \href{http://www.gnu.org/licenses/gpl-3.0.txt}{GNU General Public License v3
\bigskip
-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
+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 @@ is optional; you can use dvdisaster directly from the build tree.
\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 @@ NetBSD & 6.1.5 \\
\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 @@ won't do, we have compiled the following list:
\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 @@ dvdisaster.org
\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 --git a/documentation/user-manual/howtos.tex b/documentation/user-manual/howtos.tex
index 80fe9d3..c0beb11 100644
--- a/documentation/user-manual/howtos.tex
+++ b/documentation/user-manual/howtos.tex
@@ -2069,9 +2069,8 @@ want to re-invent medium writing in dvdisaster, as a lot of useful programs
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 the error correction data to the medium. Make sure that your
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 @@ In order to save time you do the following:
\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 --git a/documentation/user-manual/manual.pdf b/documentation/user-manual/manual.pdf
index 848bcfc..24743c8 100644
Binary files a/documentation/user-manual/manual.pdf and b/documentation/user-manual/manual.pdf differ
diff --git a/documentation/user-manual/manual.tex b/documentation/user-manual/manual.tex
index 9d93f30..b98991d 100644
--- a/documentation/user-manual/manual.tex
+++ b/documentation/user-manual/manual.tex
@@ -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,
@@ -72,7 +73,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}
@@ -92,7 +93,7 @@ for optical media such as CD, DVD and BD discs.
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}
@@ -100,9 +101,10 @@ containing a formal specification of the error correction data format.
\vfill
\begin{center}
{\em
-Copyright 2008-2018 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
@@ -131,9 +133,6 @@ provided this notice is preserved.}
\input{background}
\newpage
-\input{burning-compatibility}
-\newpage
-
\input{defect-reporting}
\label{LastPage}\label{missing}
diff --git a/documentation/user-manual/overview.tex b/documentation/user-manual/overview.tex
index bc654e8..0a17841 100644
--- a/documentation/user-manual/overview.tex
+++ b/documentation/user-manual/overview.tex
@@ -37,7 +37,7 @@ protected media, you're looking at the wrong place. Such functions are
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 @@ and finally a few \tlnk{background-eccfile-storage}{hints for storing error corr
\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
diff --git a/documentation/user-manual/preface.tex b/documentation/user-manual/preface.tex
index a850d05..2de16c1 100644
--- a/documentation/user-manual/preface.tex
+++ b/documentation/user-manual/preface.tex
@@ -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 --git a/regtest/common.bash b/regtest/common.bash
index e86c92b..951bd87 100644
--- a/regtest/common.bash
+++ b/regtest/common.bash
@@ -209,10 +209,11 @@ function run_regtest()
REFLOG=${DATABASE}/${CODEC_PREFIX}_${testsymbol}
if test "$gui_mode" == "false"; then
+<<<<<<< HEAD
rm -f $NEWLOG
echo "LANG=en_EN.UTF-8 $NEWVER --regtest --no-progress -i${testiso} ${testeccopt} ${extra_args} ${testparms}" >>$LOGFILE
- LANG=en_EN.UTF-8 $NEWVER --regtest --no-progress -i${testiso} ${testeccopt} ${extra_args} ${testparms} 2>&1 | tail -n +3 >>$NEWLOG
+ LANG=en_EN.UTF-8 $NEWVER --regtest --no-progress -i${testiso} ${testeccopt} ${extra_args} ${testparms} 2>&1 | tail -n +4 >>$NEWLOG
if ! test -r $REFLOG; then
pass="false"
@@ -254,7 +255,7 @@ function run_regtest()
if test "$interactive_diff" == "yes"; then
while true; do
- read -n 1 -p ">> Press 'a' to accept this diff; 'v' to vimdiff; any other key to fail this test:" -e answer
+ read -n 1 -p ">> Press 'a' to accept this diff; 'i' to ignore; 'v' to vimdiff; any other key to fail this test:" -e answer
if test "$answer" == "a"; then
cp $REFLOG $LOGDIR
head -n 2 $LOGDIR/${CODEC_PREFIX}_${testsymbol} >$REFLOG
@@ -262,8 +263,13 @@ function run_regtest()
pass="skip"
elif test "$answer" == "v"; then
vimdiff $REFLOG $NEWLOG
-
continue
+ else
+ if test "$answer" == "i"; then
+ pass="skip"
+ else
+ pass="false"
+ fi
fi
break
done
diff --git a/regtest/database/RS01_read_no_device b/regtest/database/RS01_read_no_device
index 860ab14..e917d9e 100644
--- a/regtest/database/RS01_read_no_device
+++ b/regtest/database/RS01_read_no_device
@@ -1,5 +1,11 @@
ignore
ignore
+This software comes with ABSOLUTELY NO WARRANTY. This
+is free software and you are welcome to redistribute it
+under the conditions of the GNU GENERAL PUBLIC LICENSE.
+See the file "COPYING" for further information.
+
+*
* dvdisaster - can not continue:
*
Could not open /dev/sdz: No such file or directory
diff --git a/regtest/database/RS01_read_no_device_access b/regtest/database/RS01_read_no_device_access
index 455698c..899f649 100644
--- a/regtest/database/RS01_read_no_device_access
+++ b/regtest/database/RS01_read_no_device_access
@@ -1,5 +1,11 @@
ignore
ignore
+This software comes with ABSOLUTELY NO WARRANTY. This
+is free software and you are welcome to redistribute it
+under the conditions of the GNU GENERAL PUBLIC LICENSE.
+See the file "COPYING" for further information.
+
+*
* dvdisaster - can not continue:
*
Could not open sdz: Permission denied
diff --git a/regtest/database/RS01_read_with_incompatible_ecc b/regtest/database/RS01_read_with_incompatible_ecc
index a08421d..32f5cee 100644
--- a/regtest/database/RS01_read_with_incompatible_ecc
+++ b/regtest/database/RS01_read_with_incompatible_ecc
@@ -12,7 +12,7 @@ Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
* Warning: This ecc file requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour.
* Please read the image without using this ecc file
-* or visit http://www.dvdisaster.org for an upgrade.
+* or upgrade dvdisaster.
Creating new rs01-tmp.iso image.
Reading CRC information from ecc data (RS01) ... done.
diff --git a/regtest/database/RS01_scan_no_device b/regtest/database/RS01_scan_no_device
index 860ab14..e917d9e 100644
--- a/regtest/database/RS01_scan_no_device
+++ b/regtest/database/RS01_scan_no_device
@@ -1,5 +1,11 @@
ignore
ignore
+This software comes with ABSOLUTELY NO WARRANTY. This
+is free software and you are welcome to redistribute it
+under the conditions of the GNU GENERAL PUBLIC LICENSE.
+See the file "COPYING" for further information.
+
+*
* dvdisaster - can not continue:
*
Could not open /dev/sdz: No such file or directory
diff --git a/regtest/database/RS01_scan_no_device_access b/regtest/database/RS01_scan_no_device_access
index 455698c..899f649 100644
--- a/regtest/database/RS01_scan_no_device_access
+++ b/regtest/database/RS01_scan_no_device_access
@@ -1,5 +1,11 @@
ignore
ignore
+This software comes with ABSOLUTELY NO WARRANTY. This
+is free software and you are welcome to redistribute it
+under the conditions of the GNU GENERAL PUBLIC LICENSE.
+See the file "COPYING" for further information.
+
+*
* dvdisaster - can not continue:
*
Could not open sdz: Permission denied
diff --git a/regtest/database/RS01_scan_with_incompatible_ecc b/regtest/database/RS01_scan_with_incompatible_ecc
index e0aab77..5f3bbd8 100644
--- a/regtest/database/RS01_scan_with_incompatible_ecc
+++ b/regtest/database/RS01_scan_with_incompatible_ecc
@@ -12,7 +12,7 @@ Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
* Warning: This ecc file requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour.
* Please read the image without using this ecc file
-* or visit http://www.dvdisaster.org for an upgrade.
+* or upgrade dvdisaster.
Scanning medium for read errors.
Reading CRC information from ecc data (RS01) ... done.
diff --git a/regtest/database/RS02_read_incompatible_ecc b/regtest/database/RS02_read_incompatible_ecc
index f6229c5..5ac2c63 100644
--- a/regtest/database/RS02_read_incompatible_ecc
+++ b/regtest/database/RS02_read_incompatible_ecc
@@ -11,7 +11,7 @@ Medium "Random Image": CD-R mode 1, 34932 sectors, Ecc, created 16-07-2006.
* Warning: This image requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour.
-* Please visit http://www.dvdisaster.org for an upgrade.
+* Please upgrade dvdisaster.
Creating new rs02-tmp.iso image.
Reading CRC information from ecc data (RS02) ... done.
diff --git a/regtest/database/RS02_scan_incompatible_ecc b/regtest/database/RS02_scan_incompatible_ecc
index 87ca38d..83e8c40 100644
--- a/regtest/database/RS02_scan_incompatible_ecc
+++ b/regtest/database/RS02_scan_incompatible_ecc
@@ -11,7 +11,7 @@ Medium "Random Image": CD-R mode 1, 34932 sectors, Ecc, created 16-07-2006.
* Warning: This image requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour.
-* Please visit http://www.dvdisaster.org for an upgrade.
+* Please upgrade dvdisaster.
Scanning medium for read errors.
Reading CRC information from ecc data (RS02) ... done.
diff --git a/regtest/database/RS03f_read_incompatible_ecc b/regtest/database/RS03f_read_incompatible_ecc
index 6853638..1fc51af 100644
--- a/regtest/database/RS03f_read_incompatible_ecc
+++ b/regtest/database/RS03f_read_incompatible_ecc
@@ -12,7 +12,7 @@ Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
* Warning: This ecc file requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour.
* Please read the image without using this ecc file
-* or visit http://www.dvdisaster.org for an upgrade.
+* or upgrade dvdisaster.
Creating new rs03f-tmp.iso image.
Reading CRC information from ecc data (RS03) ... done.
diff --git a/regtest/database/RS03f_scan_incompatible_ecc b/regtest/database/RS03f_scan_incompatible_ecc
index bf45960..fc775ff 100644
--- a/regtest/database/RS03f_scan_incompatible_ecc
+++ b/regtest/database/RS03f_scan_incompatible_ecc
@@ -12,7 +12,7 @@ Medium "Random Image": CD-R mode 1, 21000 sectors, created 16-07-2006.
* Warning: This ecc file requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour.
* Please read the image without using this ecc file
-* or visit http://www.dvdisaster.org for an upgrade.
+* or upgrade dvdisaster.
Scanning medium for read errors.
Reading CRC information from ecc data (RS03) ... done.
diff --git a/regtest/database/RS03i_read_incompatible_ecc b/regtest/database/RS03i_read_incompatible_ecc
index 58e0675..ae3d9e0 100644
--- a/regtest/database/RS03i_read_incompatible_ecc
+++ b/regtest/database/RS03i_read_incompatible_ecc
@@ -11,7 +11,7 @@ Medium "Random Image": CD-R mode 1, 24990 sectors, Ecc, created 16-07-2006.
* Warning: This image requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour.
-* Please visit http://www.dvdisaster.org for an upgrade.
+* Please upgrade dvdisaster.
Creating new rs03i-tmp.iso image.
Reading CRC information from ecc data (RS03) ... done.
diff --git a/regtest/database/RS03i_scan_incompatible_ecc b/regtest/database/RS03i_scan_incompatible_ecc
index 0043af7..0b0bd27 100644
--- a/regtest/database/RS03i_scan_incompatible_ecc
+++ b/regtest/database/RS03i_scan_incompatible_ecc
@@ -11,7 +11,7 @@ Medium "Random Image": CD-R mode 1, 24990 sectors, Ecc, created 16-07-2006.
* Warning: This image requires dvdisaster-99.99!
* Proceeding could trigger incorrect behaviour.
-* Please visit http://www.dvdisaster.org for an upgrade.
+* Please upgrade dvdisaster.
Scanning medium for read errors.
Reading CRC information from ecc data (RS03) ... done.
diff --git a/scripts/bash-based-configure b/scripts/bash-based-configure
index 2af9d27..1066028 100644
--- a/scripts/bash-based-configure
+++ b/scripts/bash-based-configure
@@ -1895,6 +1895,7 @@ function CHECK_ENDIAN()
# Try automatic detection
cat > conftest.c <
int main()
{ if(sizeof(int)==4)
{ char *c = "1234";
@@ -1963,6 +1964,7 @@ function CHECK_BITNESS()
# Try automatic detection
cat > conftest.c <
int main()
{ switch(sizeof(char*))
{ case 4: printf("32\n"); break;
diff --git a/src/bitmap.c b/src/bitmap.c
index 3e205ca..e9f7ab7 100644
--- a/src/bitmap.c
+++ b/src/bitmap.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/build.c b/src/build.c
index adfd7f2..cad5e66 100644
--- a/src/build.c
+++ b/src/build.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/closure.c b/src/closure.c
index 7120a81..a8e4775 100644
--- a/src/closure.c
+++ b/src/closure.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -324,9 +324,6 @@ void ReadDotfile()
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; }
@@ -432,7 +429,6 @@ static void update_dotfile()
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);
@@ -534,8 +530,6 @@ 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);
@@ -661,8 +655,6 @@ void FreeClosure()
cond_free(Closure->logFile);
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/src/crcbuf.c b/src/crcbuf.c
index 7171a49..a23c1e1 100644
--- a/src/crcbuf.c
+++ b/src/crcbuf.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/curve.c b/src/curve.c
index 9b67146..3dda875 100644
--- a/src/curve.c
+++ b/src/curve.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/debug.c b/src/debug.c
index 6a2ad3d..9b1c259 100644
--- a/src/debug.c
+++ b/src/debug.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/ds-marker.c b/src/ds-marker.c
index 92ba065..63c3520 100644
--- a/src/ds-marker.c
+++ b/src/ds-marker.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/dvdisaster.c b/src/dvdisaster.c
index 6eb9e56..70e3e5d 100644
--- a/src/dvdisaster.c
+++ b/src/dvdisaster.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/dvdisaster.h b/src/dvdisaster.h
index cac2033..56b13db 100644
--- a/src/dvdisaster.h
+++ b/src/dvdisaster.h
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -294,8 +294,6 @@ typedef struct _GlobalClosure
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 */
- char *browser; /* Name of preferred browser */
GMutex progressLock; /* A mutex protected the stuff below */
char bs[256]; /* A string of 255 backspace characters */
@@ -1458,7 +1456,7 @@ int ProbeAltiVec(void);
*** show-manual.c
***/
-void ShowPDF(char*);
+void ShowURL(char*);
/***
*** show-html.c
diff --git a/src/ecc-rs01.c b/src/ecc-rs01.c
index 75c6b55..447318a 100644
--- a/src/ecc-rs01.c
+++ b/src/ecc-rs01.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -37,7 +37,7 @@ void register_rs01(void)
/*** 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;
diff --git a/src/ecc-rs02.c b/src/ecc-rs02.c
index a311589..a20efe5 100644
--- a/src/ecc-rs02.c
+++ b/src/ecc-rs02.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -38,7 +38,7 @@ void register_rs02(void)
/*** 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;
diff --git a/src/ecc-rs03.c b/src/ecc-rs03.c
index 8fb3704..3aa300b 100644
--- a/src/ecc-rs03.c
+++ b/src/ecc-rs03.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -38,7 +38,7 @@ void register_rs03(void)
/*** 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;
diff --git a/src/endian.c b/src/endian.c
index c1a8aa7..3958f8b 100644
--- a/src/endian.c
+++ b/src/endian.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/galois-inlines.h b/src/galois-inlines.h
index bb5549a..96389b4 100644
--- a/src/galois-inlines.h
+++ b/src/galois-inlines.h
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/galois.c b/src/galois.c
index e316c33..fb2b6e2 100644
--- a/src/galois.c
+++ b/src/galois.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * 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/
diff --git a/src/help-dialogs.c b/src/help-dialogs.c
index dc2fced..de1196d 100644
--- a/src/help-dialogs.c
+++ b/src/help-dialogs.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -22,6 +22,7 @@
// DVDISASTER_GUI_FILE
#include "dvdisaster.h"
+#include "build.h"
/***
*** Online help system for the preferences
@@ -598,8 +599,7 @@ 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(strlen(label) > 4 && !strncmp(label, "http", 4)) ShowHTML(g_strdup(label));
- else ShowPDF(g_strdup(label));
+ else ShowURL(g_strdup(label));
break;
case GDK_ENTER_NOTIFY:
g_sprintf(text, "%s", label);
@@ -737,7 +737,7 @@ void AboutDialog()
AboutText(vbox, "%s", text);
g_free(text);
- AboutText(vbox, _("Copyright 2004-2017 Carsten Gnoerlich.\nCopyright 2019 The dvdisaster development team."));
+ AboutText(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);
@@ -755,8 +755,12 @@ void AboutDialog()
AboutText(vbox, _("\ne-mail: support@dvdisaster.org"));
- AboutText(vbox, "WWW: %s", HOMEPAGE);
-
+ text = g_strdup_printf("WWW: [%s]", HOMEPAGE);
+ AboutTextWithLink(vbox, text, HOMEPAGE);
+ g_free(text);
+
+#ifdef SYS_NETBSD
+ AboutText(vbox, _("\nNetBSD port: Sergey Svishchev <svs@ropnet.ru>"));
#endif
/* Show it */
diff --git a/src/heuristic-lec.c b/src/heuristic-lec.c
index 0818fab..8465fa6 100644
--- a/src/heuristic-lec.c
+++ b/src/heuristic-lec.c
@@ -1,7 +1,7 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
* Copyright (C) 2006 Andrei Grecu
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/icon-factory.c b/src/icon-factory.c
index 3fe608c..34e2e50 100644
--- a/src/icon-factory.c
+++ b/src/icon-factory.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/image.c b/src/image.c
index 14b97d2..c051d41 100644
--- a/src/image.c
+++ b/src/image.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/l-ec.c b/src/l-ec.c
index 71e02e0..b845e4a 100644
--- a/src/l-ec.c
+++ b/src/l-ec.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/large-io.c b/src/large-io.c
index 8e4810c..ec63ff5 100644
--- a/src/large-io.c
+++ b/src/large-io.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/logfile.c b/src/logfile.c
index de24466..7c7f533 100644
--- a/src/logfile.c
+++ b/src/logfile.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/main-window.c b/src/main-window.c
index 161084c..7e55f1e 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/maintenance.c b/src/maintenance.c
index 1f2520c..07c9704 100644
--- a/src/maintenance.c
+++ b/src/maintenance.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/medium-info.c b/src/medium-info.c
index 659ea25..83ba1cd 100644
--- a/src/medium-info.c
+++ b/src/medium-info.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/memtrack.c b/src/memtrack.c
index 42c6672..cd85957 100644
--- a/src/memtrack.c
+++ b/src/memtrack.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/menubar.c b/src/menubar.c
index 25e8fb3..3a87f22 100644
--- a/src/menubar.c
+++ b/src/menubar.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -116,7 +116,7 @@ static void menu_cb(GtkWidget *widget, gpointer data)
break;
case MENU_HELP_MANUAL:
- ShowPDF(NULL);
+ ShowURL(NULL);
break;
case MENU_HELP_ABOUT:
diff --git a/src/method.c b/src/method.c
index f1e7622..2771dcd 100644
--- a/src/method.c
+++ b/src/method.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/misc.c b/src/misc.c
index ee2d3be..61aa2a8 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -216,7 +216,7 @@ static void print_greetings(FILE *where)
greetings_shown = 1;
g_fprintf(where, "%s.\n%s\n", Closure->versionString,
- _("Copyright 2004-2017 Carsten Gnoerlich.\nCopyright 2019 The dvdisaster development team."));
+ _("Copyright 2004-2017 Carsten Gnoerlich.\nCopyright 2019-2021 The dvdisaster development team."));
/* TRANSLATORS: Excluding all kinds of warranty might be harmful under your
legislature. If in doubt, just translate the following like "This is free
software; please refer to the conditions of the GNU GENERAL PUBLIC LICENSE
@@ -641,7 +641,8 @@ void Stop(char *format, ...)
#ifndef WITH_CLI_ONLY_YES
if(!Closure->guiMode)
#endif
- { g_printf("%s", _("\n*\n* dvdisaster - can not continue:\n*\n"));
+ { print_greetings(stdout);
+ g_printf("%s", _("\n*\n* dvdisaster - can not continue:\n*\n"));
va_start(argp, format);
g_vprintf(format, argp);
va_end(argp);
diff --git a/src/preferences.c b/src/preferences.c
index 4b2b846..32af82f 100644
--- a/src/preferences.c
+++ b/src/preferences.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/print-sense.c b/src/print-sense.c
index bd7e2c2..4c03d7f 100644
--- a/src/print-sense.c
+++ b/src/print-sense.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/raw-editor.c b/src/raw-editor.c
index 84c6063..8d3030c 100644
--- a/src/raw-editor.c
+++ b/src/raw-editor.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/raw-sector-cache.c b/src/raw-sector-cache.c
index 817561b..a675e05 100644
--- a/src/raw-sector-cache.c
+++ b/src/raw-sector-cache.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/read-adaptive-window.c b/src/read-adaptive-window.c
index 00fd2c7..bd8ee36 100644
--- a/src/read-adaptive-window.c
+++ b/src/read-adaptive-window.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/read-adaptive.c b/src/read-adaptive.c
index 0c6a901..9317a82 100644
--- a/src/read-adaptive.c
+++ b/src/read-adaptive.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/read-linear-window.c b/src/read-linear-window.c
index a132b93..7d2fb85 100644
--- a/src/read-linear-window.c
+++ b/src/read-linear-window.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/read-linear.c b/src/read-linear.c
index e33d827..0f8cd23 100644
--- a/src/read-linear.c
+++ b/src/read-linear.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/read-linear.h b/src/read-linear.h
index bc4e862..0d837de 100644
--- a/src/read-linear.h
+++ b/src/read-linear.h
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/recover-raw.c b/src/recover-raw.c
index 7f90544..e9b730e 100644
--- a/src/recover-raw.c
+++ b/src/recover-raw.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs-decoder.c b/src/rs-decoder.c
index 0ce2f0c..88a748a 100644
--- a/src/rs-decoder.c
+++ b/src/rs-decoder.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs-encoder-altivec.c b/src/rs-encoder-altivec.c
index d3c080f..9f51267 100644
--- a/src/rs-encoder-altivec.c
+++ b/src/rs-encoder-altivec.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs-encoder-sse2.c b/src/rs-encoder-sse2.c
index ca7ecbc..d5a8871 100644
--- a/src/rs-encoder-sse2.c
+++ b/src/rs-encoder-sse2.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs-encoder.c b/src/rs-encoder.c
index 558adfc..4c74c31 100644
--- a/src/rs-encoder.c
+++ b/src/rs-encoder.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs01-common.c b/src/rs01-common.c
index c29ff1e..af79b69 100644
--- a/src/rs01-common.c
+++ b/src/rs01-common.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs01-create.c b/src/rs01-create.c
index 1fc469e..1d992d7 100644
--- a/src/rs01-create.c
+++ b/src/rs01-create.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * 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/
diff --git a/src/rs01-fix.c b/src/rs01-fix.c
index 97987a1..0344e90 100644
--- a/src/rs01-fix.c
+++ b/src/rs01-fix.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * 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/
diff --git a/src/rs01-includes.h b/src/rs01-includes.h
index 9550a23..9db18aa 100644
--- a/src/rs01-includes.h
+++ b/src/rs01-includes.h
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs01-verify.c b/src/rs01-verify.c
index bac599f..e7a4ec6 100644
--- a/src/rs01-verify.c
+++ b/src/rs01-verify.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs01-window.c b/src/rs01-window.c
index 5716fd3..68a1a42 100644
--- a/src/rs01-window.c
+++ b/src/rs01-window.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs02-common.c b/src/rs02-common.c
index 7b7e0fa..583283b 100644
--- a/src/rs02-common.c
+++ b/src/rs02-common.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -443,8 +443,8 @@ RS02Layout *CalcRS02Layout(Image *image)
{ case 'r': /* pick number of roots */
{ char buf[len+1];
- memcpy(buf, Closure->redundancy, len);
- buf[len] = '\0';
+ memcpy(buf, Closure->redundancy, len-1);
+ buf[len-1]=0;
requested_roots = atoi(buf);
break;
}
@@ -453,7 +453,7 @@ RS02Layout *CalcRS02Layout(Image *image)
int percent;
memcpy(buf, Closure->redundancy, len-1);
- buf[len-1] = '\0';
+ buf[len-1]=0;
percent = atoi(buf);
for(requested_roots = 7; requested_roots < 171; requested_roots++)
diff --git a/src/rs02-create.c b/src/rs02-create.c
index 7a7a6a4..f33d810 100644
--- a/src/rs02-create.c
+++ b/src/rs02-create.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs02-fix.c b/src/rs02-fix.c
index ad445e3..4c335ed 100644
--- a/src/rs02-fix.c
+++ b/src/rs02-fix.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs02-includes.h b/src/rs02-includes.h
index e3d28b4..f6d9ef8 100644
--- a/src/rs02-includes.h
+++ b/src/rs02-includes.h
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs02-recognize.c b/src/rs02-recognize.c
index 34e72f5..981a74f 100644
--- a/src/rs02-recognize.c
+++ b/src/rs02-recognize.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs02-verify.c b/src/rs02-verify.c
index f679d02..af7d01a 100644
--- a/src/rs02-verify.c
+++ b/src/rs02-verify.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs02-window.c b/src/rs02-window.c
index e5a8a0b..d391eb2 100644
--- a/src/rs02-window.c
+++ b/src/rs02-window.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs03-common.c b/src/rs03-common.c
index 8148285..475b169 100644
--- a/src/rs03-common.c
+++ b/src/rs03-common.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs03-create.c b/src/rs03-create.c
index 47e0a15..b606a5f 100644
--- a/src/rs03-create.c
+++ b/src/rs03-create.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs03-fix.c b/src/rs03-fix.c
index af468c6..8dcf45a 100644
--- a/src/rs03-fix.c
+++ b/src/rs03-fix.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs03-includes.h b/src/rs03-includes.h
index 22f3936..f5b282f 100644
--- a/src/rs03-includes.h
+++ b/src/rs03-includes.h
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs03-preferences.c b/src/rs03-preferences.c
index cca992a..a3f9292 100644
--- a/src/rs03-preferences.c
+++ b/src/rs03-preferences.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs03-recognize.c b/src/rs03-recognize.c
index 23461cf..58c5697 100644
--- a/src/rs03-recognize.c
+++ b/src/rs03-recognize.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs03-verify.c b/src/rs03-verify.c
index 7221c4e..05b6569 100644
--- a/src/rs03-verify.c
+++ b/src/rs03-verify.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/rs03-window.c b/src/rs03-window.c
index 33bb665..0ab30fe 100644
--- a/src/rs03-window.c
+++ b/src/rs03-window.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/scsi-freebsd.c b/src/scsi-freebsd.c
index 2014767..5344662 100644
--- a/src/scsi-freebsd.c
+++ b/src/scsi-freebsd.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/scsi-layer.c b/src/scsi-layer.c
index 2ebc4f1..180f7fe 100644
--- a/src/scsi-layer.c
+++ b/src/scsi-layer.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/scsi-layer.h b/src/scsi-layer.h
index bf8d3fa..5703a37 100644
--- a/src/scsi-layer.h
+++ b/src/scsi-layer.h
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/scsi-linux.c b/src/scsi-linux.c
index 90f68ea..d74a0dc 100644
--- a/src/scsi-linux.c
+++ b/src/scsi-linux.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/scsi-netbsd.c b/src/scsi-netbsd.c
index eb2f908..35cebcb 100644
--- a/src/scsi-netbsd.c
+++ b/src/scsi-netbsd.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/scsi-simulated.c b/src/scsi-simulated.c
index 6bea517..e1d76fd 100644
--- a/src/scsi-simulated.c
+++ b/src/scsi-simulated.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/scsi-unknown.c b/src/scsi-unknown.c
index 1e446cf..29fbfbb 100644
--- a/src/scsi-unknown.c
+++ b/src/scsi-unknown.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/show-manual.c b/src/show-manual.c
index 7e36caa..678095d 100644
--- a/src/show-manual.c
+++ b/src/show-manual.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -19,348 +19,79 @@
* You should have received a copy of the GNU General Public License
* along with dvdisaster. If not, see .
*/
-// DVDISASTER_GUI_FILE
#include "dvdisaster.h"
-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
- defined(SYS_NETBSD) || defined(SYS_HURD)
-#include
-#endif
-
#ifdef SYS_MINGW
#include "windows.h"
#include "shellapi.h"
#endif
-/***
- *** Ask user to specify his viewer
- ***/
-
-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
- defined(SYS_NETBSD) || defined(SYS_HURD)
-
-#define SEARCH_BUTTON 1
-
-typedef struct
-{ GtkWidget *dialog;
- GtkWidget *entry;
- GtkWidget *search;
- GtkWidget *filesel;
- GtkWidget *fileok;
- GtkWidget *filecancel;
+void ShowURL(char *target)
+{ guint64 ignore;
+ pid_t pid;
+ int hyperlink = 0;
char *path;
-} viewer_dialog_info;
-
-static void response_cb(GtkWidget *widget, int response, gpointer data)
-{ viewer_dialog_info *bdi = (viewer_dialog_info*)data;
-
- switch(response)
- { case GTK_RESPONSE_ACCEPT:
- if(Closure->viewer) g_free(Closure->viewer);
- Closure->viewer = g_strdup(gtk_entry_get_text(GTK_ENTRY(bdi->entry)));
- ShowPDF(bdi->path);
- break;
-
- case GTK_RESPONSE_REJECT:
- if(bdi->path) g_free(bdi->path);
- break;
+
+ if(target && !strncmp(target, "http", 4))
+ { hyperlink = 1;
+ path = g_strdup(target);
}
- gtk_widget_destroy(widget);
- if(bdi->filesel)
- gtk_widget_destroy(bdi->filesel);
- g_free(bdi);
-}
-
-static void search_cb(GtkWidget *widget, gpointer data)
-{ viewer_dialog_info *bdi = (viewer_dialog_info*)data;
-
- if(widget == bdi->search)
- { bdi->filesel = gtk_file_selection_new(_utf("windowtitle|Choose a PDF viewer"));
- 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->viewer) g_free(Closure->viewer);
- Closure->viewer = g_strdup(gtk_file_selection_get_filename(GTK_FILE_SELECTION(bdi->filesel)));
- ShowPDF(bdi->path);
- 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 viewer_dialog(char *path)
-{ GtkWidget *dialog, *vbox, *hbox, *label, *entry, *button;
- viewer_dialog_info *bdi = g_malloc0(sizeof(viewer_dialog_info));
-
- /* Create the dialog */
-
- dialog = gtk_dialog_new_with_buttons(_utf("windowtitle|PDF viewer 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(path)
- { bdi->path = g_strdup(path);
- }
-
- 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 PDF viewer.\n\n"
- "Which PDF viewer would you like to use\n"
- "for reading the online documentation?\n\n"
- "Please enter its name (e.g. xpdf) 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 viewer
- ***/
-
-/*
- * Check the child processes exit status
- * to find whether the viewer could be invoked.
- */
-
-typedef struct
-{ pid_t pid;
- char *path;
- GtkWidget *msg;
- int seconds;
-} viewer_info;
-
-
-static void msg_destroy_cb(GtkWidget *widget, gpointer data)
-{ viewer_info *bi = (viewer_info*)data;
-
- bi->msg = NULL;
-}
-
-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
- defined(SYS_NETBSD) || defined(SYS_HURD)
-
-/*
- * The following list of viewers
- * will be tried one at a time until one entry succeeds by:
- * - returning zero
- * - not returning within 60 seconds
- */
-
-static int viewer_index;
-static void try_viewer(viewer_info*);
-
-static char *viewers[] =
-{ "evince",
- "xpdf",
- "okular",
- "gv",
- "mupdf",
- "pdfcube",
- "zathura",
- NULL
-};
-
-static gboolean viewer_timeout_func(gpointer data)
-{ viewer_info *bi = (viewer_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: /* viewer did not execute */
- viewer_index++;
- if(!viewers[viewer_index]) /* all viewers from the list failed */
- { viewer_dialog(bi->path);
-
- if(bi->msg)
- gtk_widget_destroy(bi->msg);
- if(bi->path)
- g_free(bi->path);
- g_free(bi);
- }
- else /* try next viewer from list */
- { bi->seconds = 0;
- try_viewer(bi);
- }
- return FALSE;
-
- case 0: /* viewer assumed to be successful */
- default:
- if(bi->msg)
- gtk_widget_destroy(bi->msg);
- if(bi->path)
- g_free(bi->path);
- g_free(bi);
- return FALSE;
+
+ /* Process local files */
+
+ if(!hyperlink)
+ { if(!Closure->docDir)
+ {
+ CreateMessage(_("Documentation not installed."), GTK_MESSAGE_ERROR);
+ return;
}
- }
- bi->seconds++;
- if(bi->seconds == 10 && bi->msg)
- { gtk_widget_destroy(bi->msg);
- bi->msg = NULL;
- }
+ /* If no target is given, show the manual. */
- return bi->seconds > 60 ? FALSE : TRUE;
-}
-#endif /* SYS_ unix-like */
+ if(!target)
+ { path = g_strdup_printf("%s/manual.pdf",Closure->docDir);
+ }
+ else
+ if(*target != '/') path = g_strdup_printf("%s/%s",Closure->docDir, target);
+ else path = g_strdup(target);
+
+ if(!LargeStat(path, &ignore))
+ {
+ CreateMessage(_("Documentation file\n%s\nnot found.\n"), GTK_MESSAGE_ERROR, path);
+ g_free(path);
+ return;
+ }
+ }
#ifdef SYS_MINGW
-static gboolean viewer_timeout_func(gpointer data)
-{ viewer_info *bi = (viewer_info*)data;
+ /* Okay, Billy wins big time here ;-) */
+
+ ShellExecute(NULL, "open", path, NULL, NULL, SW_SHOWNORMAL);
+#else
+
+ /* fork xdg-open */
- 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 viewer
- */
-
-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_KFREEBSD) || \
- defined(SYS_NETBSD) || defined(SYS_HURD)
-static void try_viewer(viewer_info *bi)
-{ pid_t pid;
-
- bi->pid = pid = fork();
+ pid = fork();
if(pid == -1)
{ printf("fork failed\n");
return;
}
- /* make the parent remember and wait() for the viewer */
-
- if(pid > 0)
- { g_timeout_add(1000, viewer_timeout_func, (gpointer)bi);
-
- if(viewer_index)
- { g_free(Closure->viewer);
- Closure->viewer = g_strdup(viewers[viewer_index]);
- }
- }
-
/* try calling the viewer */
if(pid == 0)
{ char *argv[10];
int argc = 0;
- argv[argc++] = viewer_index ? viewers[viewer_index] : Closure->viewer;
- argv[argc++] = bi->path;
+ argv[argc++] = "xdg-open";
+ argv[argc++] = path;
argv[argc++] = NULL;
execvp(argv[0], argv);
_exit(110); /* couldn't execute */
}
-}
-#endif /* SYS_ unix-like */
-
-
-void ShowPDF(char *target)
-{ viewer_info *bi = g_malloc0(sizeof(viewer_info));
- guint64 ignore;
-
- if(!Closure->docDir)
- {
- CreateMessage(_("Documentation not installed."), GTK_MESSAGE_ERROR);
- g_free(bi);
- return;
- }
-
- /* If no target is given, show the manual. */
-
- if(!target)
- { bi->path = g_strdup_printf("%s/manual.pdf",Closure->docDir);
- }
- else
- if(*target != '/') bi->path = g_strdup_printf("%s/%s",Closure->docDir, target);
- else bi->path = g_strdup(target);
-
- if(!LargeStat(bi->path, &ignore))
- {
- CreateMessage(_("Documentation file\n%s\nnot found.\n"), GTK_MESSAGE_ERROR, bi->path);
- g_free(bi->path);
- g_free(bi);
- return;
- }
-
- /* Lock the help button and show a message for 10 seconds. */
-
- TimedInsensitive(Closure->helpButton, 10000);
- bi->msg = CreateMessage(_("Please hang on until the viewer comes up!"), GTK_MESSAGE_INFO);
- g_signal_connect(G_OBJECT(bi->msg), "destroy", G_CALLBACK(msg_destroy_cb), bi);
-
- /* Try the first viwer */
-
-#ifdef SYS_MINGW
- /* Okay, Billy wins big time here ;-) */
-
- ShellExecute(NULL, "open", bi->path, NULL, NULL, SW_SHOWNORMAL);
- g_timeout_add(1000, viewer_timeout_func, (gpointer)bi);
-#endif
-
-#if defined(SYS_LINUX) || defined(SYS_FREEBSD) || defined(SYS_DARWIN) || defined(SYS_NETBSD)
- viewer_index = 0;
- try_viewer(bi);
#endif
}
diff --git a/src/smart-lec.c b/src/smart-lec.c
index 1bc953a..a864821 100644
--- a/src/smart-lec.c
+++ b/src/smart-lec.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/spiral.c b/src/spiral.c
index 939877a..ae12b0c 100644
--- a/src/spiral.c
+++ b/src/spiral.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/udf.c b/src/udf.c
index c1020d9..7f8ebed 100644
--- a/src/udf.c
+++ b/src/udf.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
@@ -178,7 +178,7 @@ static void bp_get_string(unsigned char *dest, unsigned char *src, int begin, in
static void bp_set_string(unsigned char *dest, char *src, int begin, int end)
{ int length = end-begin+1;
- strncpy((char*)(dest+begin-1), src, length);
+ memcpy((char*)(dest+begin-1), src, length);
}
/*
@@ -797,10 +797,12 @@ void FreeIsoHeader(IsoHeader *ih)
void AddFile(IsoHeader *ih, char *name, guint64 size)
{ static int n;
- char iso[22], joliet[strlen(name)+3];
+ char iso[22]; /* 15 would be enough but compiler figures out 22 */
+ char joliet[strlen(name)+3];
n++;
sprintf(iso,"RAN_%04d.DAT;1", n);
+
add_file_record(ih->proot, iso, size, 25,
106, 7, 16, 12, 28, 10, 8);
sprintf(joliet,"%s;1", name);
diff --git a/src/udf.h b/src/udf.h
index 3fb1f74..5b3ebe2 100644
--- a/src/udf.h
+++ b/src/udf.h
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*
diff --git a/src/welcome-window.c b/src/welcome-window.c
index bc1447b..849a6c3 100644
--- a/src/welcome-window.c
+++ b/src/welcome-window.c
@@ -1,6 +1,6 @@
/* dvdisaster: Additional error correction for optical media.
* Copyright (C) 2004-2017 Carsten Gnoerlich.
- * Copyright (C) 2019 The dvdisaster development team.
+ * Copyright (C) 2019-2021 The dvdisaster development team.
*
* Email: support@dvdisaster.org
*