Compare commits

...

15 Commits

Author SHA1 Message Date
Stéphane Lesimple
5b82ec64bc release patchlevel3 2020-09-01 22:16:50 +02:00
Stéphane Lesimple
9fed89dbcf chore: automatically build & upload release assets 2020-09-01 22:16:02 +02:00
Stéphane Lesimple
22b2aba490 fix: windows: flavor in build.h was always UNKNOWN 2020-09-01 12:52:35 +02:00
Stéphane Lesimple
0598fad827 fix: windows: config file couldn't be written
now cfg and log file will be in the same directory than the exe (portable mode)
2020-09-01 12:52:35 +02:00
Stéphane Lesimple
cbcac368dc chore: add auto Windows CLI tests 2020-08-30 18:40:34 +02:00
Stéphane Lesimple
bd70bcef1b chore: add auto Windows CLI tests 2020-08-30 17:58:31 +02:00
Stéphane Lesimple
71b32a30a1 feat: BD-R: add --no-defect-management
Enable bigger augmented images for BD-R (around +3%).
If you know you will use a BD-R medium and want to maximize the free space
for parity data, you can skip the defect management formatting before burning,
at the expense of potential coasters. Specify this option to tell dvdisaster
to produce bigger images that will only fit on BD-R media burnt without defect
management. Some burning softwares call it "formatting" the BD-R before burning.
Note that should you need to repair such an augmented image, you'll then need to
specify this option on the command-line too.
2020-08-30 17:54:36 +02:00
Stéphane Lesimple
2d68cfb0b1 feat: add --no-bdr-defect-management to produce bigger augmented images with RS03 2020-08-30 17:06:41 +02:00
Stéphane Lesimple
c0c6747bd9 fix: reimport some missed locales 2020-08-29 22:11:30 +02:00
Stéphane Lesimple
3eecbcbdcc chore: autotest windows & linux on PR + remove 2 warnings under Linux 2020-08-29 21:44:15 +02:00
Stéphane Lesimple
49eecc0a6f chore: add a static make target 2020-08-27 19:11:12 +02:00
Stéphane Lesimple
4d2e0ba32c chore: fix make parallelism 2020-08-27 19:11:12 +02:00
Stéphane Lesimple
495a851356 fix: adjust BDXL_QL_SIZE and rollback BD_SL_SIZE to upstream version
BD_SL_SIZE was mistakenly modified in 0.79.6-pl1, we restore the
previous upstream version to avoid having several dvdisaster versions
in the field with different values set for it.

If you created an RS03 augmented image with 0.79.6-pl1, you'll still
be able to conduct a repair of the image, should it be damaged,
by using any 0.79.6 version (with or without patchlevel), using
the following additional command-line parameters:
dvdisaster -f --debug -n 12219392

BDXL_QL_SIZE (introduced in pl1) was also adjusted in this version,
To repair a damaged BD-R quadruple layer image created by pl1:
dvdisaster -f --debug -n 62500864

The values that were present in pl1 were corresponding to a BD-R
burnt without formatting it for defect management first, which enabled
more space for parity data. You can still do it if you want (read
the comment in the code introduced by this commit), but to follow
upstream design, the default number of sectors for all BD-R implies
that defect management is enabled.
2020-08-27 19:11:12 +02:00
Stéphane Lesimple
5b95870f39 chore: update README.md 2020-08-27 18:37:06 +02:00
Stéphane Lesimple
d76551ce39 chore: automatically run regression tests on pull request 2020-08-26 09:35:35 +02:00
61 changed files with 2605 additions and 2597 deletions

315
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,315 @@
on:
release:
types: [published]
name: Upload Release Asset
jobs:
linux64-cli:
name: Linux64 CLI static
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: install prerequisites
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man jq
- name: configure
run: CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc) && make static && mv -f dvdisaster-static dvdisaster
- name: check executable
run: |
./dvdisaster --version && ./dvdisaster --version | grep -q -e UNKNOWN -e dirty || true
file dvdisaster && file dvdisaster | grep -q 'ELF 64' && file dvdisaster | grep -q 'statically linked'
- name: build dist
id: dist
run: |
archive=dvdisaster-$(echo "${{ github.ref }}" | grep -Eo '[^/]+$')-linux64-static-cli-only.zip
upload_url=$(jq -r '.release.upload_url' < $GITHUB_EVENT_PATH)
echo "Archive name is $archive"
echo "Upload URL is $upload_url"
echo "::set-output name=archive::$archive"
echo "::set-output name=upload_url::$upload_url"
mkdir dist
man -t documentation/dvdisaster.en.1 | ps2pdf - dist/dvdisaster.pdf
mv dvdisaster documentation/dvdisaster.*.1 documentation/user-manual/manual.pdf dist/
mv dist ${archive/.zip/}
zip -9r $archive ${archive/.zip/}
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip
win64-gui:
name: Windows64 GUI
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-gtk2 mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc mingw-w64-x86_64-ghostscript mingw-w64-x86_64-jq mingw-w64-x86_64-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version && ./dvdisaster --version | grep -q -e UNKNOWN -e dirty || true
file dvdisaster.exe && file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: build dist
id: dist
run: |
archive=dvdisaster-$(echo "${{ github.ref }}" | grep -Eo '[^/]+$')-win64.zip
upload_url=$(jq -r '.release.upload_url' < $GITHUB_EVENT_PATH)
echo "Archive name is $archive"
echo "Upload URL is $upload_url"
echo "::set-output name=archive::$archive"
echo "::set-output name=upload_url::$upload_url"
mkdir dist
mkdir -p dist/lib dist/locale dist/share/themes
cp -vr locale/*/ dist/locale/
cp -vr $MINGW_PREFIX/share/themes/MS-Windows dist/share/themes/
cp -vr $MINGW_PREFIX/lib/gtk-2.0 dist/lib/
find dist -type f -name "*.a" -delete
rm -rf dist/lib/gtk-2.0/include
ntldd -R dvdisaster
for i in $(ntldd -R dvdisaster | awk '/mingw/ {print $3}' | tr \\\\ / | grep -Eo '[^/]+$')
do
test -e $MINGW_PREFIX/bin/$i && cp -va $MINGW_PREFIX/bin/$i dist/
done
man -t documentation/dvdisaster.en.1 | ps2pdf - dist/dvdisaster.pdf
mv dvdisaster documentation/dvdisaster.*.1 documentation/user-manual/manual.pdf dist/
mv dist ${archive/.zip/}
zip -9r $archive ${archive/.zip/}
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip
win32-gui:
name: Windows32 GUI
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-gtk2 mingw-w64-i686-glib2 mingw-w64-i686-gcc mingw-w64-i686-ghostscript mingw-w64-i686-jq mingw-w64-i686-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version && ./dvdisaster --version | grep -q -e UNKNOWN -e dirty || true
file dvdisaster.exe && file dvdisaster.exe | grep -q '386, for MS Windows'
- name: build dist
id: dist
run: |
set -x
set +o pipefail
archive=dvdisaster-$(echo "${{ github.ref }}" | grep -Eo '[^/]+$')-win32.zip
upload_url=$(jq -r '.release.upload_url' < $GITHUB_EVENT_PATH)
echo "Archive name is $archive"
echo "Upload URL is $upload_url"
echo "::set-output name=archive::$archive"
echo "::set-output name=upload_url::$upload_url"
mkdir dist
mkdir -p dist/lib dist/locale dist/share/themes
cp -vr locale/*/ dist/locale/
cp -vr $MINGW_PREFIX/share/themes/MS-Windows dist/share/themes/
cp -vr $MINGW_PREFIX/lib/gtk-2.0 dist/lib/
find dist -type f -name "*.a" -delete
rm -rf dist/lib/gtk-2.0/include
ntldd -R dvdisaster
for i in $(ntldd -R dvdisaster | awk '/mingw/ {print $3}' | tr \\\\ / | grep -Eo '[^/]+$')
do
test -e $MINGW_PREFIX/bin/$i && cp -va $MINGW_PREFIX/bin/$i dist/
done
man -t documentation/dvdisaster.en.1 | ps2pdf - dist/dvdisaster.pdf
mv dvdisaster documentation/dvdisaster.*.1 documentation/user-manual/manual.pdf dist/
mv dist ${archive/.zip/}
zip -9r $archive ${archive/.zip/}
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip
win64-cli:
name: Windows64 CLI
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc mingw-w64-x86_64-ghostscript mingw-w64-x86_64-jq mingw-w64-x86_64-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version && ./dvdisaster --version | grep -q -e UNKNOWN -e dirty || true
file dvdisaster.exe && file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: build dist
id: dist
run: |
archive=dvdisaster-$(echo "${{ github.ref }}" | grep -Eo '[^/]+$')-win64-cli-only.zip
upload_url=$(jq -r '.release.upload_url' < $GITHUB_EVENT_PATH)
echo "Archive name is $archive"
echo "Upload URL is $upload_url"
echo "::set-output name=archive::$archive"
echo "::set-output name=upload_url::$upload_url"
mkdir dist
mkdir -p dist/locale
cp -vr locale/*/ dist/locale/
ntldd -R dvdisaster
for i in $(ntldd -R dvdisaster | awk '/mingw/ {print $3}' | tr \\\\ / | grep -Eo '[^/]+$')
do
test -e $MINGW_PREFIX/bin/$i && cp -va $MINGW_PREFIX/bin/$i dist/
done
man -t documentation/dvdisaster.en.1 | ps2pdf - dist/dvdisaster.pdf
mv dvdisaster documentation/dvdisaster.*.1 documentation/user-manual/manual.pdf dist/
mv dist ${archive/.zip/}
zip -9r $archive ${archive/.zip/}
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip
win32-cli:
name: Windows32 CLI
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-glib2 mingw-w64-i686-gcc mingw-w64-i686-ghostscript mingw-w64-i686-jq mingw-w64-i686-ntldd-git man zip
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executable
run: |
./dvdisaster.exe --version && ./dvdisaster --version | grep -q -e UNKNOWN -e dirty || true
file dvdisaster.exe && file dvdisaster.exe | grep -q '386, for MS Windows'
- name: build dist
id: dist
run: |
archive=dvdisaster-$(echo "${{ github.ref }}" | grep -Eo '[^/]+$')-win32-cli-only.zip
upload_url=$(jq -r '.release.upload_url' < $GITHUB_EVENT_PATH)
echo "Archive name is $archive"
echo "Upload URL is $upload_url"
echo "::set-output name=archive::$archive"
echo "::set-output name=upload_url::$upload_url"
mkdir dist
mkdir -p dist/locale
cp -vr locale/*/ dist/locale/
ntldd -R dvdisaster
for i in $(ntldd -R dvdisaster | awk '/mingw/ {print $3}' | tr \\\\ / | grep -Eo '[^/]+$')
do
test -e $MINGW_PREFIX/bin/$i && cp -va $MINGW_PREFIX/bin/$i dist/
done
man -t documentation/dvdisaster.en.1 | ps2pdf - dist/dvdisaster.pdf
mv dvdisaster documentation/dvdisaster.*.1 documentation/user-manual/manual.pdf dist/
mv dist ${archive/.zip/}
zip -9r $archive ${archive/.zip/}
- name: Upload Release Asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.dist.outputs.upload_url }}
asset_path: ./${{ steps.dist.outputs.archive }}
asset_name: ${{ steps.dist.outputs.archive }}
asset_content_type: application/zip

145
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,145 @@
name: C/C++ CI
on: [pull_request]
jobs:
linux64-gui:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install prerequisites
run: sudo apt update && sudo apt install -y libgtk2.0-dev libglib2.0-dev
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster --version
- name: check executable
run: file dvdisaster && file dvdisaster | grep -q 'ELF 64'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
linux64-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install prerequisites
run: sudo apt update && sudo apt install -y libglib2.0-dev
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster --version
- name: check executable
run: file dvdisaster && file dvdisaster | grep -q 'ELF 64'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
win64-gui:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-gtk2 mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster.exe --version
- name: check executable
run: file dvdisaster.exe && file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
win32-gui:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-gtk2 mingw-w64-i686-glib2 mingw-w64-i686-gcc
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster.exe --version
- name: check executable
run: file dvdisaster.exe && file dvdisaster.exe | grep -q '386, for MS Windows'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
win64-cli:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster.exe --version
- name: check executable
run: file dvdisaster.exe && file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
win32-cli:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-glib2 mingw-w64-i686-gcc
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster.exe --version
- name: check executable
run: file dvdisaster.exe && file dvdisaster.exe | grep -q '386, for MS Windows'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh

View File

@@ -1,5 +1,43 @@
# dvdisaster changelog -*-text-*-
0.79.6.patchlevel-3 01-09-2020 *UNOFFICIAL*
- fix: windows: flavor in build version was always 'UNKNOWN'
- fix: windows: the config & log files were not written properly
0.79.6.patchlevel-2 30-08-2020 *UNOFFICIAL*
- fix: Adjust BDXL_QL_SIZE and rollback BD_SL_SIZE to upstream version*
- feat: add --no-bdr-defect-management to produce bigger augmented images with RS03
- chore: remove 2 compiler warnings under Linux
- chore: automatically run regtests under Win32, Win64, Linux64 (regular and CLI-only) on pull requests
- chore: add a Linux CLI-only static make target
- chore: fix make parallelism
- chore: use tags to describe the build
*:BD_SL_SIZE was mistakenly modified in 0.79.6-pl1, we restore the
previous upstream value to avoid having several dvdisaster versions
in the field with different values set for it.
If you created an RS03 augmented image with 0.79.6-pl1, you'll still
be able to conduct a repair of the image, should it be damaged,
by using any 0.79.6 version (with or without patchlevel), using
the following additional command-line parameters:
dvdisaster -f --debug -n 12219392
On the patchlevel versions, this is equivalent to saying:
dvdisaster -f --no-bdr-defect-management
BDXL_QL_SIZE (introduced in pl1) was also adjusted in this version,
To repair a damaged BD-R quadruple layer image created by pl1:
dvdisaster -f --debug -n 62500864
On the patchlevel versions, this is equivalent to saying:
dvdisaster -f --no-bdr-defect-management
The values that were present in pl1 were corresponding to a BD-R
burnt without formatting it for defect management first, which enabled
more space for parity data. You can still do it if you want, with
--no-bdr-defect-management (see manpage), but to follow upstream,
the default number of sectors for all BD-R implies that defect
management is enabled.
0.79.6.patchlevel-1 20-08-2020 *UNOFFICIAL*
- This is an UNOFFICIAL version, not from the original author,
based on the latest available pre-release, 0.79.6.
@@ -14,7 +52,7 @@
- Added support for BDXL-QL (quadruple layer, 128GB)
- Added support to compile a CLI-only version, without
the GTK dependency (only glib2), compile with:
$ CLI_ONLY=1 ./configure && make clean all
$ CLI_ONLY=1 ./configure && make clean && make -j4
- Added support to compile a Windows version under MingW (tested
with MSYS2)
- All regression tests are passing on Linux 64, Win 32 and Win 64.

View File

@@ -67,13 +67,13 @@ OFILES = $(CFG_OFILES)
# Compilation related
######################################################################
.PHONY : all help show locale time-stamp
.PHONY : all help show locale build.h
${BUILDTMP}/%.o : %.c
@echo "Compiling:" $?
@$(CC) $(COPTS) -c $? -o $@
all: time-stamp dvdisaster
all: dvdisaster
${BUILDTMP}/build.o : build.c build.h
@echo "Compiling:" build.o
@@ -81,10 +81,11 @@ ${BUILDTMP}/build.o : build.c build.h
# Building the dvdisaster binary
time-stamp:
build.h:
@echo "Updating:" build.h
@$(SRCDIR)/scripts/time-stamper.bash $(SRCDIR)/build.h
dvdisaster: $(ICONS) $(OFILES)
dvdisaster: $(ICONS) $(OFILES) build.h
@echo "Linking : dvdisaster"
@if test $(CFG_SYS_OPTIONS) == -DSYS_MINGW; \
then windres -v winres.rc -O coff -o winres.o >/dev/null ; \
@@ -149,6 +150,7 @@ simple-md5sum: md5.c
@$(CC) $(COPTS) $(MUDFLAP_CFLAGS) -DSIMPLE_MD5SUM md5.c $(LDFLAGS) $(MUDFLAP_LFLAGS) $(MUDFLAP_LIBS) -o simple-md5sum
version.tex:
@test -d $(SRCDIR)/documentation/config || mkdir $(SRCDIR)/documentation/config
@echo "\\newcommand{\\projectversion}{$(VERSION)}" >$(SRCDIR)/documentation/config/version.tex
manual: version.tex
@@ -324,7 +326,7 @@ clean:
@$(MAKE) --no-print-directory -C $(SRCDIR)/locale clean;
BUILD=`grep BUILD $(SRCDIR)/build.h | cut -d ' ' -f 3`
arch: archclean time-stamp
arch: archclean build.h
@cd .. ; tar -c -z -f $(TAR_PREFIX)/$(PKGNAME)-$(BUILD).tgz $(PKGNAME)
INSTALL: documentation/install.template
@@ -334,14 +336,5 @@ 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
MINGWROOT = $(shell dirname $(CC))/..
windist:
rm -rf dist
mkdir -p dist/lib dist/locale dist/share/themes
for i in libatk-1.0-*.dll libbrotlicommon.dll libbrotlidec.dll libbz2-*.dll libcairo-*.dll libdatrie-*.dll libexpat-*.dll libffi-*.dll libfontconfig-*.dll libfreetype-*.dll libfribidi-*.dll libgcc_s_*.dll libgdk_pixbuf-2.0-*.dll libgdk-win32-2.0-*.dll libgio-2.0-*.dll libglib-2.0-*.dll libgmodule-2.0-*.dll libgobject-2.0-*.dll libgraphite2.dll libgtk-win32-2.0-*.dll libharfbuzz-*.dll libiconv-*.dll libintl-*.dll libpango-1.0-*.dll libpangocairo-1.0-*.dll libpangoft2-1.0-*.dll libpangowin32-1.0-*.dll libpcre-*.dll libpixman-1-*.dll libpng16-*.dll libssp-*.dll libstdc++-*.dll libthai-*.dll libwinpthread-*.dll zlib1.dll; \
do cp -v $(MINGWROOT)/bin/$$i dist/ ; done
cp -v dvdisaster.exe dist/
cp -vr locale/*/ dist/locale/
cp -vr $(MINGWROOT)/share/themes/MS-Windows dist/share/themes/
cp -vr $(MINGWROOT)/lib/gtk-2.0 dist/lib/
find dist -type f -name "*.a" -delete
static: dvdisaster
$(CC) $(LOPTS) $(OFILES) $(LIBS) -pthread -static -o dvdisaster-static

View File

@@ -127,6 +127,11 @@ Call the configuration script in the usual way:
user@host> ./configure
If you want to build a CLI-only version, which doesn't depend
on the gtk2 libraries, you can run instead:
user@host> CLI_ONLY=1 ./configure
The script will possibly print some errors about missing libraries.
Type "configure --help" to learn about pointing configure
to the correct path of already installed libraries.

View File

@@ -27,8 +27,8 @@ augmented images, with the following added features:
- RS03 can distribute work over multiple processor cores and is therefore much faster than
RS01/RS02 on modern hardware.
- RS03 error correction files are - contrary to RS01 - robust against damage. This should
not delude you into careless handling of your error correction files though - the disadvan-
tages of reading at the filesystem level are still valid.
not delude you into careless handling of your error correction files though - the disadvantages
of reading at the filesystem level are still valid.
- RS03 augmented images do not require so-called master blocks holding important in-
formation. This makes RS03 a bit more robust, but also more restrictive: The augmented
image must completely fill the medium now while the size of augmented images can be
@@ -39,15 +39,40 @@ counterparts on images with equal size.
# Unofficial version
The last upstream version is dated 2017, and the official website is down.
The last upstream version by Carsten Gnörlich is dated 2017, and could be found on the [official](https://web.archive.org/web/20180428070843/http://dvdisaster.net/en/index.html) [website](https://web.archive.org/web/20180509154525/http://dvdisaster.org/en/index.html) which is [now](http://www.dvdisaster.net) [down](http://www.dvdisaster.org). The original source code [repository](https://sourceforge.net/projects/dvdisaster/files/dvdisaster) doesn't have it, but [Debian sources](https://sources.debian.org/src/dvdisaster/) does, thanks to the maintainer there.
The original README has been left untouched in this repository.
This version is built on top of the latest upstream version, with the following notable enhancements:
- Most Debian patches have been applied (The Debian version source code can be found [here](https://sources.debian.org/src/dvdisaster/))
- Windows build added back (was dropped upstream a few versions before the last one)
- A Linux CLI-only version can now be compiled, without depending on gtk
- Regression tests confirmed working on Linux64 (normal and CLI-only), Windows32 and Windows64
- Most Debian patches have been applied, those specific to Debian have been omitted
- Windows build supported again, it was dropped upstream a few versions back
- A CLI-only version is now supported, without depending on gtk (`CLI_ONLY=1 ./configure && make clean && make -j4`)
- Regression tests confirmed working on Linux64, Windows32 and Windows64, for normal and CLI-only builds
- Added pre-defined sizes for BD-R Triple Layer (100GB), BD-R Quadruple Layer (128GB)
# Rationale
Even if the optical media era is sunsetting now, and has been for a few years, it's still of some value for off-site backups. In any case, we still have media in our hands that we want to be able to repair, should it be damaged, during the next years/decades. Repairing is actually pretty much the very reason of dvdisaster existence (as long as parity data has been added, of course).
The idea of this unofficial version is to ensure dvdisaster doesn't get hard to find, use or compile, should upstream development never resume (we hope it does!).
This is also why precompiled Windows binaries and a precompiled static CLI-only Linux version are available here.
# Compiling
See the INSTALL file
# Screenshots
(todo)
### Scanning a damaged CD under Windows
![dvdisaster_damaged_cd](https://user-images.githubusercontent.com/218502/91434313-edaaf880-e864-11ea-8e41-7b58a1e97a70.PNG)
### Scanning a healthy BD-R (single layer) with Linux GUI
![dvdisaster_bdr_read](https://user-images.githubusercontent.com/218502/91436728-fbfb1380-e868-11ea-8444-04ebc60809d8.PNG)
### Creating an RS03 error correction file with Linux GUI
![dvdisaster_bdr_create](https://user-images.githubusercontent.com/218502/91436740-00273100-e869-11ea-837a-af0d0733fe87.PNG)
### Verifying a BD-R image with Linux GUI
![dvdisaster_bdr_verify](https://user-images.githubusercontent.com/218502/91436731-fc93aa00-e868-11ea-93e6-b8c277620df7.PNG)

View File

@@ -28,6 +28,33 @@
#define Verbose(format, ...)
#endif
#ifdef SYS_MINGW
#include <windows.h>
/* safety margin in case we're getting UTF path names */
#define WIN_MAX_PATH (4*MAX_PATH)
/*
* Find the place of our executable
* (Windows only)
*/
static char* get_exe_path()
{ char path[WIN_MAX_PATH];
int n = GetModuleFileNameA(NULL, path, WIN_MAX_PATH);
if(n>0 && n<WIN_MAX_PATH-1)
{ char *backslash = strrchr(path, '\\');
if(backslash) *backslash=0;
return g_strdup(path);
}
return g_strdup(".");
}
#endif
/***
*** Locate the binary and documentation directory
***/
@@ -36,9 +63,9 @@ 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. */
so try this first (never under Windows). */
#ifdef WITH_EMBEDDED_SRC_PATH_YES
#if defined(WITH_EMBEDDED_SRC_PATH_YES) && !defined(SYS_MINGW)
if(DirStat(SRCDIR))
{ Closure->binDir = g_strdup(SRCDIR);
Closure->docDir = g_strdup_printf("%s/documentation",SRCDIR);
@@ -50,26 +77,40 @@ 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_KFREEBSD) || \
defined(SYS_NETBSD) || defined(SYS_HURD) || defined(SYS_UNKNOWN)
#ifndef SYS_MINGW
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);
#else
Closure->binDir = get_exe_path();
/* We'll just put the 2 PDF in the same dir, portable mode */
Closure->docDir = g_strdup(Closure->binDir);
Verbose("Using path from get_exe_path() = %s\n", Closure->binDir);
#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
#if defined(WITH_EMBEDDED_SRC_PATH_YES) && !defined(SYS_MINGW)
find_dotfile:
#endif /* WITH_EMBEDDED_SRC_PATH_YES */
#ifndef SYS_MINGW
Closure->homeDir = g_strdup(g_getenv("HOME"));
#else
Closure->homeDir = g_strdup(Closure->binDir); /* portable mode */
#endif
if(!Closure->dotFile) /* may have been set by the --resource-file option */
#ifndef SYS_MINGW
Closure->dotFile = g_strdup_printf("%s/.dvdisaster", Closure->homeDir);
#else
/* Windows doesn't really love dotfiles */
Closure->dotFile = g_strdup_printf("%s/dvdisaster.cfg", Closure->homeDir);
#endif
Verbose("\nUsing file locations:\n"
"- Homedir: %s\n"
@@ -506,6 +547,8 @@ void InitClosure()
Closure->welcomeMessage = 1;
Closure->useSCSIDriver = DRIVER_SG;
Closure->dsmVersion = 1;
Closure->noBdrDefectManagement = FALSE;
Closure->ignoreRS03header = FALSE;
/* default sizes for typical CD and DVD media */

4
configure vendored
View File

@@ -3,8 +3,8 @@
# 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="-DPATCHLEVEL=1 -O2 -fomit-frame-pointer -Wall -Wno-deprecated-declarations -Wno-stringop-truncation"
REQUIRED_CFLAGS="-DPATCHLEVEL=3 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I."
RECOMMENDED_CFLAGS="-O2 -fomit-frame-pointer -Wall -Wno-deprecated-declarations -Wno-stringop-truncation"
DEBUG_CFLAGS="-ggdb -Wall"
if [ "$CLI_ONLY" = 1 ]; then

View File

@@ -1,4 +1,4 @@
.TH DVDISASTER 1 "2010-02-06" "0.80" "protection for optical media"
.TH DVDISASTER 1 "2020-08-30" "0.80" "protection for optical media"
.SH NAME
DVDISASTER \- data loss/scratch/aging protection for optical media
@@ -50,6 +50,7 @@ DVDISASTER \- data loss/scratch/aging protection for optical media
.RB [\| \-\-medium-info \|]
.RB [\| \-\-no-progress \|]
.RB [\| \-\-old-ds-marker \|]
.RB [\| \-\-no-bdr-defect-management \|]
.RB [\| \-\-prefetch-sectors
.IR n \|]
.RB [\| \-\-raw-mode
@@ -225,6 +226,21 @@ RS02 images:
\-n BDXL3 augments image suitable for three layered BDXL media.
.RE
.RS
\-n BDXL4 augments image suitable for quadruple layered BDXL media.
.RE
.RS
\-n BDNODM\ \ \ \ augments image suitable for BD media burnt without defect management.
.RE
.RS
\-n BD2NODM\ \ augments image suitable for two layered BD media burnt without defect management.
.RE
.RS
\-n BDXL3NODM augments image suitable for three layered BDXL media burnt without defect management.
.RE
.RS
\-n BDXL4NODM augments image suitable for quadruple layered BDXL media burnt without defect management.
.RE
.RS
\-n x\ \ \ \ \ augments image using approx. x sectors in total.
.RE
.RS
@@ -240,9 +256,22 @@ RS03 images:
.RS
Setting the redundancy is not possible due to constraints in the format.
The codec will automatically choose the size of the smallest fitting medium.
However, see --no-bdr-defect-management below.
.RE
.RE
.TP
.B \-\-no-bdr-defect-management
Enable bigger augmented images for BD-R (around +3%).
If you know you will use a BD-R medium and want to maximize the free space
for parity data, you can skip the defect management formatting before burning,
at the expense of potential coasters. Specify this option to tell dvdisaster
to produce bigger images that will only fit on BD-R media burnt without defect
management. Some burning softwares call it "formatting" the BD-R before burning.
Note that should you need to repair such an augmented image, you'll then need to
specify this option on the command-line too.
.RE
.TP
.B \-m, \-\-method n
lists/selects error correction methods (default: RS01).

Binary file not shown.

View File

@@ -85,7 +85,9 @@ typedef enum
MODIFIER_FIXED_SPEED_VALUES,
MODIFIER_IGNORE_FATAL_SENSE,
MODIFIER_IGNORE_ISO_SIZE,
MODIFIER_IGNORE_RS03_HEADER,
MODIFIER_INTERNAL_REREADS,
MODIFIER_NO_BDR_DEFECT_MANAGEMENT,
MODIFIER_NO_PROGRESS,
MODIFIER_OLD_DS_MARKER,
MODIFIER_PREFETCH_SECTORS,
@@ -239,6 +241,7 @@ int main(int argc, char *argv[])
{"help", 0, 0, 'h'},
{"ignore-fatal-sense", 0, 0, MODIFIER_IGNORE_FATAL_SENSE },
{"ignore-iso-size", 0, 0, MODIFIER_IGNORE_ISO_SIZE },
{"ignore-rs03-header", 0, 0, MODIFIER_IGNORE_RS03_HEADER },
{"internal-rereads", 1, 0, MODIFIER_INTERNAL_REREADS },
{"image", 1, 0, 'i'},
{"jump", 1, 0, 'j'},
@@ -246,6 +249,7 @@ int main(int argc, char *argv[])
{"medium-info", 0, 0, MODE_MEDIUM_INFO },
{"merge-images", 1, 0, MODE_MERGE_IMAGES },
{"method", 2, 0, 'm' },
{"no-bdr-defect-management", 0, 0, MODIFIER_NO_BDR_DEFECT_MANAGEMENT },
{"no-progress", 0, 0, MODIFIER_NO_PROGRESS },
{"old-ds-marker", 0, 0, MODIFIER_OLD_DS_MARKER },
{"prefetch-sectors", 1, 0, MODIFIER_PREFETCH_SECTORS },
@@ -341,6 +345,14 @@ int main(int argc, char *argv[])
Closure->mediumSize = BDXL_TL_SIZE;
else if(!strcmp(optarg, "BDXL4") || !strcmp(optarg, "bdxl4"))
Closure->mediumSize = BDXL_QL_SIZE;
else if(!strcmp(optarg, "BDNODM") || !strcmp(optarg, "bdnodm"))
Closure->mediumSize = BD_SL_SIZE_NODM;
else if(!strcmp(optarg, "BD2NODM") || !strcmp(optarg, "bd2nodm"))
Closure->mediumSize = BD_DL_SIZE_NODM;
else if(!strcmp(optarg, "BDXL3NODM") || !strcmp(optarg, "bdxl3nodm"))
Closure->mediumSize = BDXL_TL_SIZE_NODM;
else if(!strcmp(optarg, "BDXL4NODM") || !strcmp(optarg, "bdxl4nodm"))
Closure->mediumSize = BDXL_QL_SIZE_NODM;
else
{ int len = strlen(optarg);
if(strchr("0123456789", optarg[len-1]))
@@ -478,6 +490,10 @@ int main(int argc, char *argv[])
case MODIFIER_IGNORE_ISO_SIZE:
Closure->ignoreIsoSize = TRUE;
break;
case MODIFIER_IGNORE_RS03_HEADER:
Closure->ignoreRS03header = TRUE;
debug_mode_required = TRUE;
break;
case MODIFIER_INTERNAL_REREADS:
if(optarg)
Closure->internalAttempts = atoi(optarg);
@@ -502,6 +518,9 @@ int main(int argc, char *argv[])
}
}
break;
case MODIFIER_NO_BDR_DEFECT_MANAGEMENT:
Closure->noBdrDefectManagement = TRUE;
break;
case MODIFIER_NO_PROGRESS:
Closure->noProgress = 1;
break;
@@ -949,6 +968,7 @@ int main(int argc, char *argv[])
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-bdr-defect-management - use bigger RS03 images for BD-R (see man page!)\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"));
@@ -972,6 +992,7 @@ int main(int argc, char *argv[])
PrintCLI(_(" --erase sector - erase the given sector\n"));
PrintCLI(_(" --erase n-m - erase sectors n - m, inclusively\n"));
PrintCLI(_(" --fixed-speed-values - output fixed speed values for better output diffing\n"));
PrintCLI(_(" --ignore-rs03-header - ignore RS03 header when repairing (forcing a full search)\n"));
PrintCLI(_(" --marked-image n - create image with n marked random sectors\n"));
PrintCLI(_(" --merge-images a,b merge image a with b (a receives sectors from b)\n"));
PrintCLI(_(" --random-errors e - seed image with (correctable) random errors\n"));

View File

@@ -105,15 +105,42 @@
* 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.
*
* NOTE: If you compile a custom version with modified values,
* you may then use `-n X --debug' (also works on an unmodified
* version) to ensure a proper recovery. 'X' being the number
* of sectors considered when augmenting the image, which is
* the immediately higher #define close to the unaugmented image size.
* HOWEVER you MUST to remember this 'X'! It's probably a good idea
* to write it down directly on the media you're protecting.
* This way you'll have it at hand when attempting repair.
* You might be tempted to do it for BD-Rs, using more space
* for parity data by disabling defect management.
* Do it at your own risk.
*
* WARNING! (read above)
*/
#define CDR_SIZE (351*1024)
#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 12219392
#define BD_DL_SIZE 23652352
#define BD_SL_SIZE 11826176
#define BD_DL_SIZE 23652352
#define BDXL_TL_SIZE 47305728
#define BDXL_QL_SIZE (128001769472/2048)
#define BDXL_QL_SIZE 60403712
/*
* Below are the BD-R sizes when defect management is disabled when burning.
* This is a tradeoff between risking a coaster vs having more space for parity.
* These values are NEVER used by default, we default on the values above, which
* are smaller and will work with or without defect management.
* We use these values for RS03 when --no-defect-management is explicitly specified,
* don't forget to specify it again when attempting a repair!
* NODM = No Defect Management
*/
#define BD_SL_SIZE_NODM 12219392
#define BD_DL_SIZE_NODM 24438784
#define BDXL_TL_SIZE_NODM 48878592
#define BDXL_QL_SIZE_NODM 62500864
/* Maximum accepted media sizes (in 2K sectors) */
@@ -236,6 +263,8 @@ typedef struct _GlobalClosure
int clSize; /* Bytesize of cache line */
int useSCSIDriver; /* Whether to use generic or sg driver on Linux */
int fixedSpeedValues;/* output fixed speed reading to make comparing debugging output easier */
int noBdrDefectManagement;/* if true, enable use of the BD*_NODM sizes, default: false */
int ignoreRS03header; /* if true, ignore the RS03 header when repairing, forcing a full search (debug only) */
char *homeDir; /* path to users home dir */
char *dotFile; /* path to .dvdisaster file */
char *logFile; /* path to logfile */

View File

@@ -40,8 +40,8 @@
#include <windows.h>
#define stat _stati64
#define lseek _lseeki64
#define large_stat _stati64
#define large_lseek _lseeki64
/* The original windows ftruncate has off_size (32bit) */
@@ -62,6 +62,8 @@ int large_ftruncate(int fd, gint64 size)
#else
#define large_ftruncate ftruncate
#define large_stat stat
#define large_lseek lseek
#endif /* SYS_MINGW */
/*
@@ -90,7 +92,7 @@ int LargeStat(char *path, guint64 *length_return)
if(!cp_path) return FALSE;
if(stat(cp_path, &mystat) == -1)
if(large_stat(cp_path, &mystat) == -1)
{ g_free(cp_path);
return FALSE;
}
@@ -113,7 +115,7 @@ int DirStat(char *path)
if(!cp_path) return FALSE;
if(stat(cp_path, &mystat) == -1)
if(large_stat(cp_path, &mystat) == -1)
{ g_free(cp_path);
return FALSE;
}
@@ -148,7 +150,7 @@ LargeFile* LargeOpen(char *name, int flags, mode_t mode)
/* Do not try to open directories etc. */
if( (stat(cp_path, &mystat) == 0)
if( (large_stat(cp_path, &mystat) == 0)
&& !S_ISREG(mystat.st_mode))
{ g_free(cp_path), g_free(lf); return NULL;
}
@@ -175,7 +177,7 @@ LargeFile* LargeOpen(char *name, int flags, mode_t mode)
int LargeSeek(LargeFile *lf, off_t pos)
{
lf->offset = pos;
if(lseek(lf->fileHandle, pos, SEEK_SET) != pos)
if(large_lseek(lf->fileHandle, pos, SEEK_SET) != pos)
return FALSE;
return TRUE;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,14 @@
# Italian translations for dvdisaster package by Andrea Polverini (polve@polve.com)
# Italian messages for dvdisaster.
# Copyright (C) 2004-2012 THE dvdisaster'S COPYRIGHT HOLDER
# Copyright (C) 2004-2015 THE dvdisaster'S COPYRIGHT HOLDER
# This file is distributed under the same license as the dvdisaster package.
# Carsten Gnörlich <carsten@dvdisaster.de>, 2012.
# Carsten Gnörlich <carsten@dvdisaster.de>, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: dvdisaster 0.52.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-25 21:12+0200\n"
"POT-Creation-Date: 2020-08-30 16:39+0200\n"
"PO-Revision-Date: 2005-01-01 14:24+0100\n"
"Last-Translator: Andrea Polverini <polve@polve.com>\n"
"Language-Team: Italian <>\n"
@@ -31,15 +31,15 @@ msgstr ""
"# e sarà sovrascritto ogni volta che verrà eseguito dvdisaster\n"
"\n"
#: closure.c:560
#: closure.c:562
msgid "medium.iso"
msgstr ""
#: closure.c:561
#: closure.c:563
msgid "medium.ecc"
msgstr ""
#: closure.c:562
#: closure.c:564
msgid "sector-"
msgstr ""
@@ -59,7 +59,7 @@ msgstr ""
#: debug.c:850 debug.c:1181 debug.c:1189 debug.c:1266 rs01-common.c:175
#: rs02-common.c:239 rs02-create.c:377 rs02-create.c:1032 rs02-fix.c:414
#: rs02-verify.c:404 rs03-common.c:340 rs03-create.c:756 rs03-create.c:781
#: rs03-recognize.c:550
#: rs03-recognize.c:555
#, c-format
msgid "Failed seeking to sector %lld in image: %s"
msgstr ""
@@ -235,7 +235,7 @@ msgstr "%lld marcatori \"unreadable sector\" sostituiti.\n"
#: debug.c:811 debug.c:854 debug.c:1185 debug.c:1252 debug.c:1256 debug.c:1306
#: rs01-common.c:191 rs02-common.c:244 rs02-create.c:229 rs02-fix.c:417
#: rs03-common.c:345 rs03-recognize.c:555
#: rs03-common.c:345 rs03-recognize.c:560
#, c-format
msgid "Failed reading sector %lld in image: %s"
msgstr ""
@@ -376,83 +376,83 @@ msgstr ""
#. TRANSLATORS:
#. This is a dummy entry which is supposed to translate into "ok".
#. Please do not return anything else here.
#: dvdisaster.c:160 dvdisaster.c:172
#: dvdisaster.c:162 dvdisaster.c:174
msgid "test phrase for verifying the locale installation"
msgstr "ok"
#: dvdisaster.c:355
#: dvdisaster.c:367
msgid "-o/--ecc-target expects 'file' or 'image'"
msgstr ""
#: dvdisaster.c:381
#: dvdisaster.c:393
#, c-format
msgid "--threads must be 1..%d\n"
msgstr ""
#: dvdisaster.c:395
#: dvdisaster.c:407
msgid "--cache-size must at least be 8MiB; 16MiB or higher is recommended."
msgstr ""
#: dvdisaster.c:397
#: dvdisaster.c:409
#, c-format
msgid "--cache-size maximum is %dMiB."
msgstr ""
#: dvdisaster.c:420
#: dvdisaster.c:432
msgid "--encoding-algorithm: SSE2 not supported on this processor!"
msgstr ""
#: dvdisaster.c:424
#: dvdisaster.c:436
msgid "--encoding-algorithm: valid types are 32bit, 64bit, SSE2"
msgstr ""
#: dvdisaster.c:431
#: dvdisaster.c:443
msgid "--encoding-algorithm: AltiVec not supported on this processor!"
msgstr ""
#: dvdisaster.c:435
#: dvdisaster.c:447
msgid "--encoding-algorithm: valid types are 32bit, 64bit, AltiVec"
msgstr ""
#: dvdisaster.c:438
#: dvdisaster.c:450
msgid "--encoding-algorithm: valid types are 32bit, 64bit"
msgstr ""
#: dvdisaster.c:447
#: dvdisaster.c:459
msgid "--encoding-io-strategy: mmap not supported on this OS"
msgstr ""
#: dvdisaster.c:451
#: dvdisaster.c:463
msgid "--encoding-io-strategy: valid types are readwrite and mmap"
msgstr ""
#: dvdisaster.c:461
#: dvdisaster.c:473
msgid "Valid args for --driver: sg,cdrom"
msgstr ""
#: dvdisaster.c:463
#: dvdisaster.c:475
msgid "--driver is only supported on GNU/Linux"
msgstr ""
#: dvdisaster.c:471
#: dvdisaster.c:483
msgid "--fixed-speed-values is only allowed in debug mode"
msgstr ""
#: dvdisaster.c:515
#: dvdisaster.c:534
#, c-format
msgid "--prefetch-sectors must be in range 32...%s"
msgstr ""
#: dvdisaster.c:569
#: dvdisaster.c:588
msgid "--set-version is only allowed in debug mode"
msgstr ""
#: dvdisaster.c:676
#: dvdisaster.c:695
#, c-format
msgid "?? illegal getopt return value %d\n"
msgstr "?? getopt ha restituito un valore illegale: %d\n"
#: dvdisaster.c:769 main-window.c:149
#: dvdisaster.c:788 main-window.c:149
#, c-format
msgid ""
"\n"
@@ -463,7 +463,7 @@ msgstr ""
"Metodo %s non disponibile.\n"
"Usare -m senza paramentri per visualizzare la lista dei metodi.\n"
#: dvdisaster.c:780 rs01-create.c:285 rs02-create.c:1075 rs03-create.c:1320
#: dvdisaster.c:799 rs01-create.c:285 rs02-create.c:1075 rs03-create.c:1320
#, c-format
msgid ""
"\n"
@@ -472,25 +472,25 @@ msgstr ""
"\n"
"Sto aprendo %s"
#: dvdisaster.c:787 rs01-create.c:294 rs02-create.c:175 rs02-create.c:1085
#: dvdisaster.c:806 rs01-create.c:294 rs02-create.c:175 rs02-create.c:1085
#: rs03-create.c:349 rs03-create.c:1335
#, c-format
msgid ": %lld medium sectors.\n"
msgstr ": %lld settori del supporto.\n"
#: dvdisaster.c:788 rs01-create.c:295 rs02-create.c:176 rs02-create.c:1086
#: dvdisaster.c:807 rs01-create.c:295 rs02-create.c:176 rs02-create.c:1086
#: rs03-create.c:350 rs03-create.c:1336
#, c-format
msgid ": %lld medium sectors and %d bytes.\n"
msgstr ": %lld settori del supporto e %d bytes.\n"
#: dvdisaster.c:815 main-window.c:207
#: dvdisaster.c:834 main-window.c:207
msgid "RS01 method not available for comparing files."
msgstr ""
#. TRANSLATORS: Program options like -r and --read are not to be translated
#. to avoid confusion when discussing the program in international forums.
#: dvdisaster.c:909
#: dvdisaster.c:928
msgid ""
"\n"
"Common usage examples:\n"
@@ -503,8 +503,18 @@ msgid ""
" dvdisaster -u,--unlink # Delete .iso files (when other actions complete)\n"
"\n"
msgstr ""
"\n"
"Tipici esempi di utilizzo:\n"
" dvdisaster -r,--read # Estrae l'immagine del supporto sull'hard disk.\n"
" # Usare -rn-m per leggere un determinato intervallo di settori, ad es. -r100-200\n"
" dvdisaster -c,--create # Crea l'informazione .ecc per l'immagine del supporto.\n"
" dvdisaster -f,--fix # Prova a correggere l'immagine del supporto usando l'informazione .ecc.\n"
" dvdisaster -s,--scan # Scansiona il supporto per gli errori di lettura.\n"
" dvdisaster -t,--test # Testa l'integrità dei file .iso e .ecc.\n"
" dvdisaster -u,--unlink # Cancella i file .iso (Quando le altre azioni sono concluse)\n"
"\n"
#: dvdisaster.c:918
#: dvdisaster.c:937
#, c-format
msgid ""
"Drive and file specification:\n"
@@ -515,241 +525,249 @@ msgid ""
" -o,--ecc-target [file image] - where to put ecc data in RS03\n"
msgstr ""
#: dvdisaster.c:928
#: dvdisaster.c:947
msgid "Tweaking options (see manual before using!)\n"
msgstr "Opzioni per \"smanettoni\" (Leggere il manuale prima di utilizzarle!!):\n"
#: dvdisaster.c:929
#: dvdisaster.c:948
msgid " -a,--assume x,y,... - assume image is augmented with codec(s) x,y,...\n"
msgstr ""
#: dvdisaster.c:930
#: dvdisaster.c:949
msgid " -j,--jump n - jump n sectors forward after a read error (default: 16)\n"
msgstr " -j,--jump n - Salta n settori in avanti dopo un errore di lettura (Standard: 16)\n"
#: dvdisaster.c:931
#: dvdisaster.c:950
msgid " -m n - list/select error correction methods (default: RS01)\n"
msgstr ""
#: dvdisaster.c:932
#: dvdisaster.c:951
#, c-format
msgid ""
" -n,--redundancy n%% - error correction data redundancy\n"
" allowed values depend on codec (see manual)\n"
msgstr ""
#: dvdisaster.c:934
#: dvdisaster.c:953
msgid " -v,--verbose - more diagnostic messages\n"
msgstr ""
#: dvdisaster.c:935
#: dvdisaster.c:954
msgid " -x,--threads n - use n threads for en-/decoding (if supported by codec)\n"
msgstr ""
#: dvdisaster.c:936
#: dvdisaster.c:955
msgid " --adaptive-read - use optimized strategy for reading damaged media\n"
msgstr " --adaptive-read - usare la strategia ottimizzata per leggere i supporti danneggiati\n"
#: dvdisaster.c:937
#: dvdisaster.c:956
msgid " --auto-suffix - automatically add .iso and .ecc file suffixes\n"
msgstr " --auto-suffix - aggiungi automaticamente i suffissi .iso e .ecc\n"
#: dvdisaster.c:938
#: dvdisaster.c:957
msgid " --cache-size n - image cache size in MiB during -c mode (default: 32MiB)\n"
msgstr ""
msgstr " --cache-size n - Dimensione della cache in MiB con la modalità -c (Standard: 32MiB)\n"
#: dvdisaster.c:939
#: dvdisaster.c:958
msgid " --dao - assume DAO disc; do not trim image end\n"
msgstr " --dao - Utilizza la modalità DAO; Il disco non sarà finalizzato\n"
#: dvdisaster.c:940
#: dvdisaster.c:959
msgid " --defective-dump d - directory for saving incomplete raw sectors\n"
msgstr ""
#: dvdisaster.c:942
#: dvdisaster.c:961
msgid " --driver=sg/cdrom - use sg(default) or alternative cdrom driver (see man page!)\n"
msgstr ""
#: dvdisaster.c:944
#: dvdisaster.c:963
msgid " --eject - eject medium after successful read\n"
msgstr ""
#: dvdisaster.c:945
#: dvdisaster.c:964
msgid " --encoding-algorithm n - possible values: 32bit,64bit,SSE2,AltiVec\n"
msgstr ""
#: dvdisaster.c:946
#: dvdisaster.c:965
msgid " --encoding-io-strategy n - possible values: readwrite, mmap\n"
msgstr ""
#: dvdisaster.c:947
#: dvdisaster.c:966
msgid " --fill-unreadable n - fill unreadable sectors with byte n\n"
msgstr " --fill-unreadable n - Riempi i settori illeggibili con il byte n\n"
#: dvdisaster.c:948
#: dvdisaster.c:967
msgid " --ignore-fatal-sense - continue reading after potentially fatal error conditon\n"
msgstr ""
#: dvdisaster.c:949
#: dvdisaster.c:968
msgid " --ignore-iso-size - ignore image size from ISO/UDF data (dangerous - see man page!)\n"
msgstr ""
#: dvdisaster.c:950
#: dvdisaster.c:969
msgid " --internal-rereads n - drive may attempt n rereads before reporting an error\n"
msgstr ""
#: dvdisaster.c:951
#: dvdisaster.c:970
msgid " --medium-info - print info about medium in drive\n"
msgstr ""
#: dvdisaster.c:952
msgid " --no-progress - do not print progress information\n"
msgstr ""
#: dvdisaster.c:953
msgid " --old-ds-marker - mark missing sectors compatible with dvdisaster <= 0.70\n"
msgstr ""
#: dvdisaster.c:954
msgid " --prefetch-sectors n - prefetch n sectors for RS03 encoding (uses ~nMiB)\n"
msgstr ""
#: dvdisaster.c:955
msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
msgstr ""
#: dvdisaster.c:956
msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
msgstr ""
#: dvdisaster.c:957
msgid " --read-medium n - read the whole medium up to n times\n"
msgstr ""
#: dvdisaster.c:958
msgid " --read-raw - performs read in raw mode if possible\n"
msgstr ""
#: dvdisaster.c:959
msgid " --regtest - tweaks output for compatibility with regtests\n"
msgstr ""
#: dvdisaster.c:960
msgid " --resource-file p - get resource file from given path\n"
msgstr ""
#: dvdisaster.c:961
msgid " --speed-warning n - print warning if speed changes by more than n percent\n"
msgstr " --speed-warning n - Evidenzia messaggio di ATTENZIONE se la velocità cambia più del n percento.\n"
#: dvdisaster.c:962
msgid " --spinup-delay n - wait n seconds for drive to spin up\n"
msgstr " --spinup-delay n - Attendere n secondi per far avviare il drive\n"
#: dvdisaster.c:966
msgid "Debugging options (purposefully undocumented and possibly harmful)\n"
msgstr "Opzioni di Debug (volutamente non documentate e possibilmente pericolose!)\n"
#: dvdisaster.c:967
msgid " --debug - enables the following options\n"
msgstr " --debug - attiva le senguenti opzioni\n"
#: dvdisaster.c:968
msgid " --byteset s,i,b - set byte i in sector s to b\n"
msgstr " --byteset s,i,b - setta il byte i nel settore s al valore b\n"
#: dvdisaster.c:969
msgid " --cdump - creates C #include file dumps instead of hexdumps\n"
msgstr ""
#: dvdisaster.c:970
msgid " --compare-images a,b - compare sectors in images a and b\n"
msgstr ""
#: dvdisaster.c:971
msgid " --copy-sector a,n,b,m - copy sector n from image a to sector m in image b\n"
msgid " --no-bdr-defect-management - use bigger RS03 images for BD-R (see man page!)\n"
msgstr ""
#: dvdisaster.c:972
msgid " --erase sector - erase the given sector\n"
msgstr " --erase sector - Cancella il settore specificato\n"
msgid " --no-progress - do not print progress information\n"
msgstr ""
#: dvdisaster.c:973
msgid " --erase n-m - erase sectors n - m, inclusively\n"
msgstr " --erase n-m - Cancella i settori da n ad m inclusi\n"
msgid " --old-ds-marker - mark missing sectors compatible with dvdisaster <= 0.70\n"
msgstr ""
#: dvdisaster.c:974
msgid " --fixed-speed-values - output fixed speed values for better output diffing\n"
msgid " --prefetch-sectors n - prefetch n sectors for RS03 encoding (uses ~nMiB)\n"
msgstr ""
#: dvdisaster.c:975
msgid " --marked-image n - create image with n marked random sectors\n"
msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
msgstr ""
#: dvdisaster.c:976
msgid " --merge-images a,b merge image a with b (a receives sectors from b)\n"
msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
msgstr ""
#: dvdisaster.c:977
msgid " --random-errors e - seed image with (correctable) random errors\n"
msgid " --read-medium n - read the whole medium up to n times\n"
msgstr ""
#: dvdisaster.c:978
msgid " --random-image n - create image with n sectors of random numbers\n"
msgstr " --random-image n - create image with n sectors or random numbers\n"
msgid " --read-raw - performs read in raw mode if possible\n"
msgstr ""
#: dvdisaster.c:979
msgid " --random-seed n - random seed for built-in random number generator\n"
msgstr " --random-seed n - random seed for built-in random number generator\n"
msgid " --regtest - tweaks output for compatibility with regtests\n"
msgstr ""
#: dvdisaster.c:980
msgid " --raw-sector n - shows hexdump of the given raw sector from medium in drive\n"
msgid " --resource-file p - get resource file from given path\n"
msgstr ""
#: dvdisaster.c:981
msgid " --speed-warning n - print warning if speed changes by more than n percent\n"
msgstr " --speed-warning n - Evidenzia messaggio di ATTENZIONE se la velocità cambia più del n percento.\n"
#: dvdisaster.c:982
msgid " --spinup-delay n - wait n seconds for drive to spin up\n"
msgstr " --spinup-delay n - Attendere n secondi per far avviare il drive\n"
#: dvdisaster.c:986
msgid "Debugging options (purposefully undocumented and possibly harmful)\n"
msgstr "Opzioni di Debug (volutamente non documentate e possibilmente pericolose!)\n"
#: dvdisaster.c:987
msgid " --debug - enables the following options\n"
msgstr " --debug - attiva le senguenti opzioni\n"
#: dvdisaster.c:988
msgid " --byteset s,i,b - set byte i in sector s to b\n"
msgstr " --byteset s,i,b - setta il byte i nel settore s al valore b\n"
#: dvdisaster.c:989
msgid " --cdump - creates C #include file dumps instead of hexdumps\n"
msgstr ""
#: dvdisaster.c:990
msgid " --compare-images a,b - compare sectors in images a and b\n"
msgstr ""
#: dvdisaster.c:991
msgid " --copy-sector a,n,b,m - copy sector n from image a to sector m in image b\n"
msgstr ""
#: dvdisaster.c:992
msgid " --erase sector - erase the given sector\n"
msgstr " --erase sector - Cancella il settore specificato\n"
#: dvdisaster.c:993
msgid " --erase n-m - erase sectors n - m, inclusively\n"
msgstr " --erase n-m - Cancella i settori da n ad m inclusi\n"
#: dvdisaster.c:994
msgid " --fixed-speed-values - output fixed speed values for better output diffing\n"
msgstr ""
#: dvdisaster.c:995
msgid " --ignore-rs03-header - ignore RS03 header when repairing (forcing a full search)\n"
msgstr ""
#: dvdisaster.c:996
msgid " --marked-image n - create image with n marked random sectors\n"
msgstr ""
#: dvdisaster.c:997
msgid " --merge-images a,b merge image a with b (a receives sectors from b)\n"
msgstr ""
#: dvdisaster.c:998
msgid " --random-errors e - seed image with (correctable) random errors\n"
msgstr ""
#: dvdisaster.c:999
msgid " --random-image n - create image with n sectors of random numbers\n"
msgstr " --random-image n - create image with n sectors or random numbers\n"
#: dvdisaster.c:1000
msgid " --random-seed n - random seed for built-in random number generator\n"
msgstr " --random-seed n - random seed for built-in random number generator\n"
#: dvdisaster.c:1001
msgid " --raw-sector n - shows hexdump of the given raw sector from medium in drive\n"
msgstr ""
#: dvdisaster.c:1002
msgid " --read-sector n - shows hexdump of the given sector from medium in drive\n"
msgstr ""
#: dvdisaster.c:982
#: dvdisaster.c:1003
msgid " --screen-shot - useful for generating screen shots\n"
msgstr ""
#: dvdisaster.c:983
#: dvdisaster.c:1004
msgid " --send-cdb arg - executes given cdb at drive; kills system if used wrong\n"
msgstr " --send-cdb arg - executes given cdb at drive; kills system if used wrong\n"
#: dvdisaster.c:984
#: dvdisaster.c:1005
msgid " --set-version - set program version for debugging purposes (dangerous!)\n"
msgstr ""
#: dvdisaster.c:985
#: dvdisaster.c:1006
msgid " --show-header n - assumes given sector is a ecc header and prints it\n"
msgstr ""
#: dvdisaster.c:986
#: dvdisaster.c:1007
msgid " --show-sector n - shows hexdump of the given sector in an image file\n"
msgstr " --show-sector n - mostra l'hexdump del settore dato\n"
#: dvdisaster.c:987
#: dvdisaster.c:1008
msgid " --sim-cd image - simulate a SCSI-Level CD with contents supplied by the ISO image\n"
msgstr ""
#: dvdisaster.c:988
#: dvdisaster.c:1009
#, c-format
msgid " --sim-defects n - simulate n%% defective sectors on medium\n"
msgstr " --sim-defects n - simulate n%% defective sectors on medium\n"
#: dvdisaster.c:989
#: dvdisaster.c:1010
msgid " --truncate n - truncates image to n sectors\n"
msgstr " --truncate n - truncates image to n sectors\n"
#: dvdisaster.c:990
#: dvdisaster.c:1011
msgid ""
" --zero-unreadable - replace the \"unreadable sector\" markers with zeros\n"
"\n"
msgstr " --zero-unreadable - replace the \"unreadable sector\" markers with zeros\n"
#: dvdisaster.c:1020
#: dvdisaster.c:1041
msgid "Optical drive 52X FW 1.02"
msgstr ""
@@ -857,7 +875,7 @@ msgstr ""
#: help-dialogs.c:753 misc.c:218
msgid "Copyright 2004-2017 Carsten Gnoerlich"
msgstr ""
msgstr "Copyright 2004-2017 Carsten Gnörlich"
#: help-dialogs.c:760
msgid ""
@@ -930,7 +948,7 @@ msgid ""
"No error correction data recognized in image.\n"
msgstr ""
#: large-io.c:259
#: large-io.c:261
#, c-format
msgid ""
"Error while writing the file:\n"
@@ -978,7 +996,7 @@ msgstr "Leggi Immagine"
#: main-window.c:278
msgid "Reads an optical disc image into a file (or tries to complete an existing image file)."
msgstr ""
msgstr "Legge un'immagine CD/DVD in un file (oppure prova a completare un file immagine esistente)"
#: main-window.c:292
msgid "button|Create"
@@ -1973,7 +1991,7 @@ msgstr ""
#: preferences.c:2546
msgid "Local files (on hard disk)"
msgstr ""
msgstr "File locali (sul disco rigido)"
#: preferences.c:2553
msgid "Automatic file suffixes"
@@ -2663,7 +2681,7 @@ msgstr ""
#: read-adaptive.c:896 read-linear.c:360
msgid "Image file does not match the optical disc."
msgstr ""
msgstr "Il file immagine non corrisponde al CD/DVD/BD."
#: read-adaptive.c:903
msgid "Reading aborted. Please select a different image file."
@@ -3303,12 +3321,12 @@ msgstr ""
"Impossibile scrivere lo header Ecc:\n"
"%s"
#: rs01-create.c:1085 rs02-create.c:1177 rs03-create.c:1430
#: rs01-create.c:1085 rs02-create.c:1177 rs03-create.c:1446
#, c-format
msgid "Ecc generation: 100.0%%\n"
msgstr "Generazione Ecc: 100.0%%\n"
#: rs01-create.c:1086 rs03-create.c:1437
#: rs01-create.c:1086 rs03-create.c:1453
#, c-format
msgid ""
"Error correction file \"%s\" created.\n"
@@ -3317,7 +3335,7 @@ msgstr ""
"Il file per la correzione dell'errore \"%s\" è stato generato.\n"
"Siate sicuri di tenerlo su un supporto affidabile!\n"
#: rs01-create.c:1095 rs03-create.c:1466
#: rs01-create.c:1095 rs03-create.c:1482
msgid ""
"The error correction file has been successfully created.\n"
"Make sure to keep this file on a reliable medium."
@@ -3359,6 +3377,8 @@ msgid ""
"\n"
"Fix mode(%s): Repairable sectors will be fixed in the image.\n"
msgstr ""
"\n"
"\"Modalità Fix(%s): I settori riparabili saranno riparati nell'immagine.\n"
#: rs01-fix.c:201
#, c-format
@@ -4025,7 +4045,7 @@ msgstr "Usare almeno"
#: rs01-window.c:807 rs03-preferences.c:713
msgid "MiB for error correction data"
msgstr ""
msgstr "MiB per i dati di correzione degli errori"
#: rs01-window.c:824 rs03-preferences.c:730
msgid ""
@@ -4055,12 +4075,12 @@ msgid ""
"dvdisaster optimizes access to the image and error correction files by maintaining its own cache. The preset of 32MiB is suitable for most systems."
msgstr ""
#: rs02-common.c:580 rs02-common.c:592 rs02-verify.c:649 rs03-common.c:622
#: rs02-common.c:580 rs02-common.c:592 rs02-verify.c:649 rs03-common.c:643
#, c-format
msgid "Failed seeking to ecc header at %lld: %s\n"
msgstr ""
#: rs02-common.c:584 rs02-common.c:596 rs03-common.c:626
#: rs02-common.c:584 rs02-common.c:596 rs03-common.c:647
#, c-format
msgid "Failed writing ecc header at %lld: %s\n"
msgstr ""
@@ -4143,7 +4163,7 @@ msgstr ""
#: rs02-create.c:1118
#, c-format
msgid "Encoding with Method RS02: %lld MiB data, %lld MiB ecc (%d roots; %4.1f%% redundancy)."
msgstr ""
msgstr "Sto codificando con il Metodo RS02: %lld MiB dati, %lld MiB ecc (%d Radici, %4.1f%% Ridondanza)."
#: rs02-create.c:1127
#, c-format
@@ -4164,11 +4184,11 @@ msgstr ""
#: rs02-create.c:1146 rs03-create.c:1409
#, c-format
msgid ""
"Using redundancies below 20%%%% may not give\n"
"Using redundancies below 20%% may not give\n"
"the expected data loss protection.\n"
msgstr ""
#: rs02-create.c:1178 rs02-create.c:1188 rs03-create.c:1432 rs03-create.c:1460
#: rs02-create.c:1178 rs02-create.c:1188 rs03-create.c:1448 rs03-create.c:1476
#, c-format
msgid ""
"Image has been augmented with error correction data.\n"
@@ -4744,17 +4764,23 @@ msgid ""
"an option, please create a separate error correction file."
msgstr ""
#: rs03-create.c:1443
#: rs03-create.c:1425
msgid ""
"BD-R size with no defect management enabled,\n"
"remember it should you need to repair this image later!\n"
msgstr ""
#: rs03-create.c:1459
#, c-format
msgid "Avg performance: %5.2fs (%5.2fMiB/s) total\n"
msgstr ""
#: rs03-create.c:1447
#: rs03-create.c:1463
#, c-format
msgid "%5.2fMiB/s average"
msgstr ""
#: rs03-create.c:1449
#: rs03-create.c:1465
#, c-format
msgid "%d times CPU bound; %d times I/O bound"
msgstr ""
@@ -5253,7 +5279,7 @@ msgstr "INQUIRY fallita. Qualcosa non va con il drive %s.\n"
#: scsi-layer.c:141
#, c-format
msgid "Device %s (%s) is not an optical drive."
msgstr ""
msgstr "La periferica %s (%s) non è un CDROM."
#: scsi-layer.c:142
#, c-format
@@ -5662,9 +5688,6 @@ msgid ""
"%s\n"
"not found.\n"
msgstr ""
"File di documentazione\n"
"%s\n"
"non trovati.\n"
#: show-html.c:391
msgid "Please hang on until the browser comes up!"
@@ -5706,8 +5729,8 @@ msgid ""
"<b>Unofficial version.</b>\n"
"\n"
"This is a modified version of the last <b>0.79.6</b> upstream pre-release.\n"
"<b>Patchlevel 1</b> adds support for a full CLI version, BD-R TL/QL,\n"
"and adds back support of Windows builds.\n"
"<b>Patchlevel 2</b> adds support for a full CLI version, BD-R TL/QL,\n"
"a Windows build and an option to produce bigger BD-R RS03 images.\n"
"See the About box and changelog for more information.\n"
"The warning message from the pre-release version is retained below.\n"
msgstr ""
@@ -5746,6 +5769,23 @@ msgstr ""
msgid "<i>New in this Version:</i>"
msgstr ""
#~ 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"
#~ msgid "created by dvdisaster-%d.%d\n"
#~ msgstr "Creato da dvdisaster-%d.%d\n"
#~ msgid " --random-errors r,e seed image with (correctable) random errors\n"
#~ msgstr " --random-errors r,e inserisce nell'immagine errori casuali (correggibili)\n"
#~ msgid ""
#~ "\n"
#~ "Generating random correctable erasures (for %d roots, max erasures = %d).\n"
@@ -5754,33 +5794,11 @@ msgstr ""
#~ "Generazione di cancellazioni correggibili casuali (%d radici, max = %d).\n"
#~ msgid ""
#~ "\n"
#~ "Common usage examples:\n"
#~ " dvdisaster -r,--read # Read the medium image to hard disc.\n"
#~ " # Use -rn-m to read a certain sector range, e.g. -r100-200\n"
#~ " dvdisaster -c,--create # Create .ecc information for the medium image.\n"
#~ " dvdisaster -f,--fix # Try to fix medium image using .ecc information.\n"
#~ " dvdisaster -s,--scan # Scan the medium for read errors.\n"
#~ " dvdisaster -t,--test # Test integrity of the .iso and .ecc files.\n"
#~ " dvdisaster -u,--unlink # Delete .iso files (when other actions complete)\n"
#~ "\n"
#~ "This .ecc file requires dvdisaster V%d.%d.%d or higher.\n"
#~ "Please visit http://www.dvdisaster.org for an upgrade."
#~ msgstr ""
#~ "\n"
#~ "Tipici esempi di utilizzo:\n"
#~ " dvdisaster -r,--read # Estrae l'immagine del supporto sull'hard disc.\n"
#~ " # Usare -rn-m per leggere un determinato intervallo di settori, ad es. -r100-200\n"
#~ " dvdisaster -c,--create # Crea l'informazione .ecc per l'immagine del supporto.\n"
#~ " dvdisaster -f,--fix # Prova a correggere l'immagine del supporto usando l'informazione .ecc.\n"
#~ " dvdisaster -s,--scan # Scansiona il supporto per gli errori di lettura.\n"
#~ " dvdisaster -t,--test # Testa l'integrità dei file .iso e .ecc.\n"
#~ " dvdisaster -u,--unlink # Cancella i file .iso (Quando le altre azioni sono concluse)\n"
#~ "\n"
#~ msgid " --cache-size n - image cache size in MB during -c mode (default: 32MB)\n"
#~ msgstr " --cache-size n - Dimensione della cache in MB con la modalità -c (Standard: 32MB)\n"
#~ msgid " --random-errors r,e seed image with (correctable) random errors\n"
#~ msgstr " --random-errors r,e inserisce nell'immagine errori casuali (correggibili)\n"
#~ "Questo file .ecc necessita di dvdisaster V%d.%d.%d o superiore.\n"
#~ "Visitate il sito http://www.dvdisaster.org per l'upgrade."
#~ msgid ": not present.\n"
#~ msgstr ": non presente.\n"
@@ -5792,44 +5810,9 @@ msgstr ""
#~ "Impossibile leggere il settore %lld dell'immagine (solo %d Bytes):\n"
#~ "%s"
#~ msgid ""
#~ "This .ecc file requires dvdisaster V%d.%d.%d or higher.\n"
#~ "Please visit http://www.dvdisaster.org for an upgrade."
#~ msgstr ""
#~ "Questo file .ecc necessita di dvdisaster V%d.%d.%d o superiore.\n"
#~ "Visitate il sito http://www.dvdisaster.org per l'upgrade."
#~ msgid "Copyright 2004-2012 Carsten Gnoerlich"
#~ msgstr "Copyright 2004-2012 Carsten Gnörlich"
#~ msgid "Reads a CD/DVD image into a file (or tries to complete an existing image file)."
#~ msgstr "Legge un'immagine CD/DVD in un file (oppure prova a completare un file immagine esistente)"
#~ msgid "Displays the user manual (external HTML browser required)."
#~ msgstr "Mostra il manuale utente (è richiesto un Browser HTML esterno)"
#~ msgid "Local files (on hard disc)"
#~ msgstr "File locali (sul disco rigido)"
#~ msgid "Image file does not match the CD/DVD."
#~ msgstr "Il file immagine non corrisponde al CD/DVD."
#~ msgid ""
#~ "\n"
#~ "Fix mode: Repairable sectors will be fixed in the image.\n"
#~ msgstr ""
#~ "\n"
#~ "\"Modalità Fix: I settori riparabili saranno riparati nell'immagine.\n"
#~ msgid "created by dvdisaster-%d.%d\n"
#~ msgstr "Creato da dvdisaster-%d.%d\n"
#~ msgid "MB for error correction data"
#~ msgstr "MB per i dati di correzione degli errori"
#~ msgid "Encoding with Method RS02: %lld MB data, %lld MB ecc (%d roots; %4.1f%% redundancy)."
#~ msgstr "Sto codificando con il Metodo RS02: %lld MB dati, %lld MB ecc (%d Radici, %4.1f%% Ridondanza)."
#~ msgid ""
#~ "No CD/DVD drives found in /dev.\n"
#~ "No drives will be pre-selected.\n"
@@ -5837,9 +5820,6 @@ msgstr ""
#~ "Nessun CD/DVD drive trovato in /dev.\n"
#~ "Nessun drive sarà preselezionato.\n"
#~ msgid "Device %s (%s) is not a CDROM drive."
#~ msgstr "La periferica %s (%s) non è un CDROM."
#~ msgid "No CD/DVD drives found."
#~ msgstr "Nessun CD/DVD drive trovato."
@@ -5961,8 +5941,8 @@ msgstr ""
#~ "dvdisaster versione %s\n"
#~ "\n"
#~ msgid "--cache-size maximum is 2048MB."
#~ msgstr "La --cache-size massima è 2048MB."
#~ msgid "--cache-size maximum is 2048MiB."
#~ msgstr "La --cache-size massima è 2048MiB."
#~ msgid "Setting the drive speed failed:\n"
#~ msgstr "Settaggio della velocità del drive fallito:\n"
@@ -5982,8 +5962,8 @@ msgstr ""
#~ msgid "CD Audio"
#~ msgstr "CD Audio"
#~ msgid "--cache-size must at least be 1MB; 16MB or higher is recommended."
#~ msgstr "la --cache-size deve essere minimo 1MB; sono consigliati 16MB o più."
#~ msgid "--cache-size must at least be 1MiB; 16MiB or higher is recommended."
#~ msgstr "la --cache-size deve essere minimo 1MiB; sono consigliati 16MiB o più."
#~ msgid ""
#~ "\n"
@@ -6020,8 +6000,8 @@ msgstr ""
#~ msgid "General"
#~ msgstr "Generale"
#~ msgid "%d MB of system memory"
#~ msgstr "%d MB di memoria di sistema"
#~ msgid "%d MiB of system memory"
#~ msgstr "%d MiB di memoria di sistema"
#~ msgid "Split files into segments <= 2GB"
#~ msgstr "Suddividere l'immagine in file <= 2GB"
@@ -6179,7 +6159,7 @@ msgstr ""
#~ " -v,--verbose - more diagnostic messages\n"
#~ " --adaptive-read - use optimized strategy for reading damaged media\n"
#~ " --auto-suffix - automatically add .iso and .ecc file suffixes\n"
#~ " --cache-size n - image cache size in MB during -c mode (default: 32MB)\n"
#~ " --cache-size n - image cache size in MiB during -c mode (default: 32MiB)\n"
#~ " --dao - assume DAO disc; do not trim image end\n"
#~ " --fill-unreadable n - fill unreadable sectors with byte n\n"
#~ " --medium-size - max. possible image size on medium (in sectors)\n"
@@ -6198,7 +6178,7 @@ msgstr ""
#~ " -v,--verbose - more diagnostic messages\n"
#~ " --adaptive-read - usare la strategia ottimizzata per leggere i supporti danneggiati\n"
#~ " --auto-suffix - aggiungi automaticamente i suffissi .iso e .ecc\n"
#~ " --cache-size n - Dimensione della cache in MB con la modalità -c (Standard: 32MB)\n"
#~ " --cache-size n - Dimensione della cache in MiB con la modalità -c (Standard: 32MiB)\n"
#~ " --dao - Utilizza la modalità DAO; Il disco non sarà finalizzato\n"
#~ " --fill-unreadable n - Riempi i settori illeggibili con il byte n\n"
#~ " --medium-size - max. possible image size on medium (in sectors)\n"
@@ -6256,7 +6236,7 @@ msgstr ""
#~ " -v,--verbose - more diagnostic messages\n"
#~ " --adaptive-read - use optimized strategy for reading damaged media\n"
#~ " --auto-suffix - automatically add .iso and .ecc file suffixes\n"
#~ " --cache-size n - image cache size in MB during -c mode (default: 32MB)\n"
#~ " --cache-size n - image cache size in MiB during -c mode (default: 32MiB)\n"
#~ " --dao - assume DAO disc; do not trim image end\n"
#~ " --fill-unreadable n - fill unreadable sectors with byte n\n"
#~ " --parse-udf - use information from ISO/UDF filesystem\n"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
# Swedish translation of dvdisaster.
# Copyright (C) 2004-2012 dvdisasters COPYRIGHT HOLDER
# Copyright (C) 2004-2015 dvdisasters COPYRIGHT HOLDER
# This file is distributed under the same license as the dvdisaster package.
# Daniel Nylander <po@danielnylander.se>, 2006.
#
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: dvdisaster\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-25 21:12+0200\n"
"POT-Creation-Date: 2020-08-30 16:39+0200\n"
"PO-Revision-Date: 2006-06-14 23:48+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -30,15 +30,15 @@ msgstr ""
"# som kommer att skrivas över varje gång dvdisaster körs.\n"
"\n"
#: closure.c:560
#: closure.c:562
msgid "medium.iso"
msgstr ""
#: closure.c:561
#: closure.c:563
msgid "medium.ecc"
msgstr ""
#: closure.c:562
#: closure.c:564
msgid "sector-"
msgstr ""
@@ -58,7 +58,7 @@ msgstr ""
#: debug.c:850 debug.c:1181 debug.c:1189 debug.c:1266 rs01-common.c:175
#: rs02-common.c:239 rs02-create.c:377 rs02-create.c:1032 rs02-fix.c:414
#: rs02-verify.c:404 rs03-common.c:340 rs03-create.c:756 rs03-create.c:781
#: rs03-recognize.c:550
#: rs03-recognize.c:555
#, c-format
msgid "Failed seeking to sector %lld in image: %s"
msgstr "Misslyckades med att söka fram till sektor %lld i avbild: %s"
@@ -233,7 +233,7 @@ msgstr "%lld \"oläsbar sektor\"-markeringar ersatta.\n"
#: debug.c:811 debug.c:854 debug.c:1185 debug.c:1252 debug.c:1256 debug.c:1306
#: rs01-common.c:191 rs02-common.c:244 rs02-create.c:229 rs02-fix.c:417
#: rs03-common.c:345 rs03-recognize.c:555
#: rs03-common.c:345 rs03-recognize.c:560
#, c-format
msgid "Failed reading sector %lld in image: %s"
msgstr "Misslyckades med att läsa sektor %lld i avbild: %s"
@@ -376,83 +376,83 @@ msgstr ""
#. TRANSLATORS:
#. This is a dummy entry which is supposed to translate into "ok".
#. Please do not return anything else here.
#: dvdisaster.c:160 dvdisaster.c:172
#: dvdisaster.c:162 dvdisaster.c:174
msgid "test phrase for verifying the locale installation"
msgstr "ok"
#: dvdisaster.c:355
#: dvdisaster.c:367
msgid "-o/--ecc-target expects 'file' or 'image'"
msgstr ""
#: dvdisaster.c:381
#: dvdisaster.c:393
#, c-format
msgid "--threads must be 1..%d\n"
msgstr ""
#: dvdisaster.c:395
#: dvdisaster.c:407
msgid "--cache-size must at least be 8MiB; 16MiB or higher is recommended."
msgstr ""
#: dvdisaster.c:397
#: dvdisaster.c:409
#, c-format
msgid "--cache-size maximum is %dMiB."
msgstr ""
#: dvdisaster.c:420
#: dvdisaster.c:432
msgid "--encoding-algorithm: SSE2 not supported on this processor!"
msgstr ""
#: dvdisaster.c:424
#: dvdisaster.c:436
msgid "--encoding-algorithm: valid types are 32bit, 64bit, SSE2"
msgstr ""
#: dvdisaster.c:431
#: dvdisaster.c:443
msgid "--encoding-algorithm: AltiVec not supported on this processor!"
msgstr ""
#: dvdisaster.c:435
#: dvdisaster.c:447
msgid "--encoding-algorithm: valid types are 32bit, 64bit, AltiVec"
msgstr ""
#: dvdisaster.c:438
#: dvdisaster.c:450
msgid "--encoding-algorithm: valid types are 32bit, 64bit"
msgstr ""
#: dvdisaster.c:447
#: dvdisaster.c:459
msgid "--encoding-io-strategy: mmap not supported on this OS"
msgstr ""
#: dvdisaster.c:451
#: dvdisaster.c:463
msgid "--encoding-io-strategy: valid types are readwrite and mmap"
msgstr ""
#: dvdisaster.c:461
#: dvdisaster.c:473
msgid "Valid args for --driver: sg,cdrom"
msgstr ""
#: dvdisaster.c:463
#: dvdisaster.c:475
msgid "--driver is only supported on GNU/Linux"
msgstr ""
#: dvdisaster.c:471
#: dvdisaster.c:483
msgid "--fixed-speed-values is only allowed in debug mode"
msgstr ""
#: dvdisaster.c:515
#: dvdisaster.c:534
#, c-format
msgid "--prefetch-sectors must be in range 32...%s"
msgstr ""
#: dvdisaster.c:569
#: dvdisaster.c:588
msgid "--set-version is only allowed in debug mode"
msgstr ""
#: dvdisaster.c:676
#: dvdisaster.c:695
#, c-format
msgid "?? illegal getopt return value %d\n"
msgstr "?? ogiltigt getopt-svarsvärde %d\n"
#: dvdisaster.c:769 main-window.c:149
#: dvdisaster.c:788 main-window.c:149
#, c-format
msgid ""
"\n"
@@ -463,7 +463,7 @@ msgstr ""
"Metod %s inte tillgänglig.\n"
"Använd -m utan parametrar för en lista på metoder.\n"
#: dvdisaster.c:780 rs01-create.c:285 rs02-create.c:1075 rs03-create.c:1320
#: dvdisaster.c:799 rs01-create.c:285 rs02-create.c:1075 rs03-create.c:1320
#, c-format
msgid ""
"\n"
@@ -472,25 +472,25 @@ msgstr ""
"\n"
"Öppnar %s"
#: dvdisaster.c:787 rs01-create.c:294 rs02-create.c:175 rs02-create.c:1085
#: dvdisaster.c:806 rs01-create.c:294 rs02-create.c:175 rs02-create.c:1085
#: rs03-create.c:349 rs03-create.c:1335
#, c-format
msgid ": %lld medium sectors.\n"
msgstr ": %lld mediumsektorer.\n"
#: dvdisaster.c:788 rs01-create.c:295 rs02-create.c:176 rs02-create.c:1086
#: dvdisaster.c:807 rs01-create.c:295 rs02-create.c:176 rs02-create.c:1086
#: rs03-create.c:350 rs03-create.c:1336
#, c-format
msgid ": %lld medium sectors and %d bytes.\n"
msgstr ": %lld mediumsektorer och %d byte.\n"
#: dvdisaster.c:815 main-window.c:207
#: dvdisaster.c:834 main-window.c:207
msgid "RS01 method not available for comparing files."
msgstr "RS01-metoden inte tillgänglig för jämförelser av filer."
#. TRANSLATORS: Program options like -r and --read are not to be translated
#. to avoid confusion when discussing the program in international forums.
#: dvdisaster.c:909
#: dvdisaster.c:928
msgid ""
"\n"
"Common usage examples:\n"
@@ -503,8 +503,19 @@ msgid ""
" dvdisaster -u,--unlink # Delete .iso files (when other actions complete)\n"
"\n"
msgstr ""
"\n"
"Exempel på normala användningsområden:\n"
" dvdisaster -r,--read # Läs mediumavbilden till hårddisk.\n"
" # Använd -rn-m för att läsa ett specifikt sektorintervall,\n"
" # exempelvis -r100-200\n"
" dvdisaster -c,--create # Skapa .ecc-information för mediumavbilden.\n"
" dvdisaster -f,--fix # Försök att rätta till mediumavbilden med .ecc-information.\n"
" dvdisaster -s,--scan # Sök av mediumet efter läsfel.\n"
" dvdisaster -t,--test # Testa integriteten av .iso och .ecc-filerna.\n"
" dvdisaster -u,--unlink # Ta bort .iso-filer (när andra operationer är färdiga)\n"
"\n"
#: dvdisaster.c:918
#: dvdisaster.c:937
#, c-format
msgid ""
"Drive and file specification:\n"
@@ -515,241 +526,249 @@ msgid ""
" -o,--ecc-target [file image] - where to put ecc data in RS03\n"
msgstr ""
#: dvdisaster.c:928
#: dvdisaster.c:947
msgid "Tweaking options (see manual before using!)\n"
msgstr "Justeringsflaggor (se manualen före användning!)\n"
#: dvdisaster.c:929
#: dvdisaster.c:948
msgid " -a,--assume x,y,... - assume image is augmented with codec(s) x,y,...\n"
msgstr ""
#: dvdisaster.c:930
#: dvdisaster.c:949
msgid " -j,--jump n - jump n sectors forward after a read error (default: 16)\n"
msgstr " -j,--jump n - hoppa n sektorer framåt efter ett läsfel (standard: 16)\n"
#: dvdisaster.c:931
#: dvdisaster.c:950
msgid " -m n - list/select error correction methods (default: RS01)\n"
msgstr " -m n - lista/välj felkorrigeringsmetoder (standard: RS01)\n"
#: dvdisaster.c:932
#: dvdisaster.c:951
#, c-format
msgid ""
" -n,--redundancy n%% - error correction data redundancy\n"
" allowed values depend on codec (see manual)\n"
msgstr ""
#: dvdisaster.c:934
#: dvdisaster.c:953
msgid " -v,--verbose - more diagnostic messages\n"
msgstr " -v,--verbose - mer informativa meddelanden\n"
#: dvdisaster.c:935
#: dvdisaster.c:954
msgid " -x,--threads n - use n threads for en-/decoding (if supported by codec)\n"
msgstr ""
#: dvdisaster.c:936
#: dvdisaster.c:955
msgid " --adaptive-read - use optimized strategy for reading damaged media\n"
msgstr " --adaptive-read - använd optimerad strategi för läsning av skadat media\n"
#: dvdisaster.c:937
#: dvdisaster.c:956
msgid " --auto-suffix - automatically add .iso and .ecc file suffixes\n"
msgstr " --auto-suffix - lägg automatiskt till filändelserna .iso och .ecc \n"
#: dvdisaster.c:938
#: dvdisaster.c:957
msgid " --cache-size n - image cache size in MiB during -c mode (default: 32MiB)\n"
msgstr ""
msgstr " --cache-size n - cachestorlek för avbild i MiB med -c (standard: 32MiB)\n"
#: dvdisaster.c:939
#: dvdisaster.c:958
msgid " --dao - assume DAO disc; do not trim image end\n"
msgstr " --dao - anta DAO-skiva; trimma inte avbildens slut\n"
#: dvdisaster.c:940
#: dvdisaster.c:959
msgid " --defective-dump d - directory for saving incomplete raw sectors\n"
msgstr ""
#: dvdisaster.c:942
#: dvdisaster.c:961
msgid " --driver=sg/cdrom - use sg(default) or alternative cdrom driver (see man page!)\n"
msgstr ""
#: dvdisaster.c:944
#: dvdisaster.c:963
msgid " --eject - eject medium after successful read\n"
msgstr ""
#: dvdisaster.c:945
#: dvdisaster.c:964
msgid " --encoding-algorithm n - possible values: 32bit,64bit,SSE2,AltiVec\n"
msgstr ""
#: dvdisaster.c:946
#: dvdisaster.c:965
msgid " --encoding-io-strategy n - possible values: readwrite, mmap\n"
msgstr ""
#: dvdisaster.c:947
#: dvdisaster.c:966
msgid " --fill-unreadable n - fill unreadable sectors with byte n\n"
msgstr " --fill-unreadable n - fyll oläsliga sektorer med byte n\n"
#: dvdisaster.c:948
#: dvdisaster.c:967
msgid " --ignore-fatal-sense - continue reading after potentially fatal error conditon\n"
msgstr ""
#: dvdisaster.c:949
#: dvdisaster.c:968
msgid " --ignore-iso-size - ignore image size from ISO/UDF data (dangerous - see man page!)\n"
msgstr ""
#: dvdisaster.c:950
#: dvdisaster.c:969
msgid " --internal-rereads n - drive may attempt n rereads before reporting an error\n"
msgstr ""
#: dvdisaster.c:951
#: dvdisaster.c:970
msgid " --medium-info - print info about medium in drive\n"
msgstr ""
#: dvdisaster.c:952
msgid " --no-progress - do not print progress information\n"
msgstr ""
#: dvdisaster.c:953
msgid " --old-ds-marker - mark missing sectors compatible with dvdisaster <= 0.70\n"
msgstr ""
#: dvdisaster.c:954
msgid " --prefetch-sectors n - prefetch n sectors for RS03 encoding (uses ~nMiB)\n"
msgstr ""
#: dvdisaster.c:955
msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
msgstr ""
#: dvdisaster.c:956
msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
msgstr ""
#: dvdisaster.c:957
msgid " --read-medium n - read the whole medium up to n times\n"
msgstr ""
#: dvdisaster.c:958
msgid " --read-raw - performs read in raw mode if possible\n"
msgstr ""
#: dvdisaster.c:959
msgid " --regtest - tweaks output for compatibility with regtests\n"
msgstr ""
#: dvdisaster.c:960
msgid " --resource-file p - get resource file from given path\n"
msgstr ""
#: dvdisaster.c:961
msgid " --speed-warning n - print warning if speed changes by more than n percent\n"
msgstr " --speed-warning n - skriv ut varning om hastighet ändras med mer än n procent\n"
#: dvdisaster.c:962
msgid " --spinup-delay n - wait n seconds for drive to spin up\n"
msgstr " --spinup-delay n - vänta n sekunder på att enheten ska varva upp\n"
#: dvdisaster.c:966
msgid "Debugging options (purposefully undocumented and possibly harmful)\n"
msgstr ""
#: dvdisaster.c:967
msgid " --debug - enables the following options\n"
msgstr ""
#: dvdisaster.c:968
msgid " --byteset s,i,b - set byte i in sector s to b\n"
msgstr ""
#: dvdisaster.c:969
msgid " --cdump - creates C #include file dumps instead of hexdumps\n"
msgstr ""
#: dvdisaster.c:970
msgid " --compare-images a,b - compare sectors in images a and b\n"
msgstr ""
#: dvdisaster.c:971
msgid " --copy-sector a,n,b,m - copy sector n from image a to sector m in image b\n"
msgid " --no-bdr-defect-management - use bigger RS03 images for BD-R (see man page!)\n"
msgstr ""
#: dvdisaster.c:972
msgid " --erase sector - erase the given sector\n"
msgid " --no-progress - do not print progress information\n"
msgstr ""
#: dvdisaster.c:973
msgid " --erase n-m - erase sectors n - m, inclusively\n"
msgid " --old-ds-marker - mark missing sectors compatible with dvdisaster <= 0.70\n"
msgstr ""
#: dvdisaster.c:974
msgid " --fixed-speed-values - output fixed speed values for better output diffing\n"
msgid " --prefetch-sectors n - prefetch n sectors for RS03 encoding (uses ~nMiB)\n"
msgstr ""
#: dvdisaster.c:975
msgid " --marked-image n - create image with n marked random sectors\n"
msgid " --raw-mode n - mode for raw reading CD media (20 or 21)\n"
msgstr ""
#: dvdisaster.c:976
msgid " --merge-images a,b merge image a with b (a receives sectors from b)\n"
msgid " --read-attempts n-m - attempts n up to m reads of a defective sector\n"
msgstr ""
#: dvdisaster.c:977
msgid " --random-errors e - seed image with (correctable) random errors\n"
msgid " --read-medium n - read the whole medium up to n times\n"
msgstr ""
#: dvdisaster.c:978
msgid " --random-image n - create image with n sectors of random numbers\n"
msgid " --read-raw - performs read in raw mode if possible\n"
msgstr ""
#: dvdisaster.c:979
msgid " --random-seed n - random seed for built-in random number generator\n"
msgid " --regtest - tweaks output for compatibility with regtests\n"
msgstr ""
#: dvdisaster.c:980
msgid " --raw-sector n - shows hexdump of the given raw sector from medium in drive\n"
msgid " --resource-file p - get resource file from given path\n"
msgstr ""
#: dvdisaster.c:981
msgid " --read-sector n - shows hexdump of the given sector from medium in drive\n"
msgstr ""
msgid " --speed-warning n - print warning if speed changes by more than n percent\n"
msgstr " --speed-warning n - skriv ut varning om hastighet ändras med mer än n procent\n"
#: dvdisaster.c:982
msgid " --screen-shot - useful for generating screen shots\n"
msgstr ""
#: dvdisaster.c:983
msgid " --send-cdb arg - executes given cdb at drive; kills system if used wrong\n"
msgstr ""
#: dvdisaster.c:984
msgid " --set-version - set program version for debugging purposes (dangerous!)\n"
msgstr ""
#: dvdisaster.c:985
msgid " --show-header n - assumes given sector is a ecc header and prints it\n"
msgstr ""
msgid " --spinup-delay n - wait n seconds for drive to spin up\n"
msgstr " --spinup-delay n - vänta n sekunder på att enheten ska varva upp\n"
#: dvdisaster.c:986
msgid " --show-sector n - shows hexdump of the given sector in an image file\n"
msgid "Debugging options (purposefully undocumented and possibly harmful)\n"
msgstr ""
#: dvdisaster.c:987
msgid " --sim-cd image - simulate a SCSI-Level CD with contents supplied by the ISO image\n"
msgid " --debug - enables the following options\n"
msgstr ""
#: dvdisaster.c:988
msgid " --byteset s,i,b - set byte i in sector s to b\n"
msgstr ""
#: dvdisaster.c:989
msgid " --cdump - creates C #include file dumps instead of hexdumps\n"
msgstr ""
#: dvdisaster.c:990
msgid " --compare-images a,b - compare sectors in images a and b\n"
msgstr ""
#: dvdisaster.c:991
msgid " --copy-sector a,n,b,m - copy sector n from image a to sector m in image b\n"
msgstr ""
#: dvdisaster.c:992
msgid " --erase sector - erase the given sector\n"
msgstr ""
#: dvdisaster.c:993
msgid " --erase n-m - erase sectors n - m, inclusively\n"
msgstr ""
#: dvdisaster.c:994
msgid " --fixed-speed-values - output fixed speed values for better output diffing\n"
msgstr ""
#: dvdisaster.c:995
msgid " --ignore-rs03-header - ignore RS03 header when repairing (forcing a full search)\n"
msgstr ""
#: dvdisaster.c:996
msgid " --marked-image n - create image with n marked random sectors\n"
msgstr ""
#: dvdisaster.c:997
msgid " --merge-images a,b merge image a with b (a receives sectors from b)\n"
msgstr ""
#: dvdisaster.c:998
msgid " --random-errors e - seed image with (correctable) random errors\n"
msgstr ""
#: dvdisaster.c:999
msgid " --random-image n - create image with n sectors of random numbers\n"
msgstr ""
#: dvdisaster.c:1000
msgid " --random-seed n - random seed for built-in random number generator\n"
msgstr ""
#: dvdisaster.c:1001
msgid " --raw-sector n - shows hexdump of the given raw sector from medium in drive\n"
msgstr ""
#: dvdisaster.c:1002
msgid " --read-sector n - shows hexdump of the given sector from medium in drive\n"
msgstr ""
#: dvdisaster.c:1003
msgid " --screen-shot - useful for generating screen shots\n"
msgstr ""
#: dvdisaster.c:1004
msgid " --send-cdb arg - executes given cdb at drive; kills system if used wrong\n"
msgstr ""
#: dvdisaster.c:1005
msgid " --set-version - set program version for debugging purposes (dangerous!)\n"
msgstr ""
#: dvdisaster.c:1006
msgid " --show-header n - assumes given sector is a ecc header and prints it\n"
msgstr ""
#: dvdisaster.c:1007
msgid " --show-sector n - shows hexdump of the given sector in an image file\n"
msgstr ""
#: dvdisaster.c:1008
msgid " --sim-cd image - simulate a SCSI-Level CD with contents supplied by the ISO image\n"
msgstr ""
#: dvdisaster.c:1009
#, c-format
msgid " --sim-defects n - simulate n%% defective sectors on medium\n"
msgstr ""
#: dvdisaster.c:989
#: dvdisaster.c:1010
msgid " --truncate n - truncates image to n sectors\n"
msgstr ""
#: dvdisaster.c:990
#: dvdisaster.c:1011
msgid ""
" --zero-unreadable - replace the \"unreadable sector\" markers with zeros\n"
"\n"
msgstr ""
#: dvdisaster.c:1020
#: dvdisaster.c:1041
msgid "Optical drive 52X FW 1.02"
msgstr ""
@@ -857,7 +876,7 @@ msgstr ""
#: help-dialogs.c:753 misc.c:218
msgid "Copyright 2004-2017 Carsten Gnoerlich"
msgstr ""
msgstr "Copyright 2004-2017 Carsten Gnörlich"
#: help-dialogs.c:760
msgid ""
@@ -930,7 +949,7 @@ msgid ""
"No error correction data recognized in image.\n"
msgstr ""
#: large-io.c:259
#: large-io.c:261
#, c-format
msgid ""
"Error while writing the file:\n"
@@ -983,7 +1002,7 @@ msgstr "Läs avbild"
#: main-window.c:278
msgid "Reads an optical disc image into a file (or tries to complete an existing image file)."
msgstr ""
msgstr "Läser en cd/dvd-avbild till en fil (eller försöker att färdigställa en existerande avbildsfil)."
#: main-window.c:292
msgid "button|Create"
@@ -1978,7 +1997,7 @@ msgstr ""
#: preferences.c:2546
msgid "Local files (on hard disk)"
msgstr ""
msgstr "Lokala filer (på hårddisk)"
#: preferences.c:2553
msgid "Automatic file suffixes"
@@ -2667,7 +2686,7 @@ msgstr ""
#: read-adaptive.c:896 read-linear.c:360
msgid "Image file does not match the optical disc."
msgstr ""
msgstr "Avbildsfil stämmer inte med CD/DVD/BD."
#: read-adaptive.c:903
msgid "Reading aborted. Please select a different image file."
@@ -3307,12 +3326,12 @@ msgstr ""
"Kan inte skriva ecc-huvud:\n"
"%s"
#: rs01-create.c:1085 rs02-create.c:1177 rs03-create.c:1430
#: rs01-create.c:1085 rs02-create.c:1177 rs03-create.c:1446
#, c-format
msgid "Ecc generation: 100.0%%\n"
msgstr "Generering av ecc: 100.0%%\n"
#: rs01-create.c:1086 rs03-create.c:1437
#: rs01-create.c:1086 rs03-create.c:1453
#, c-format
msgid ""
"Error correction file \"%s\" created.\n"
@@ -3321,7 +3340,7 @@ msgstr ""
"Felkorrigeringsfil \"%s\" skapad.\n"
"Tänk på att lagra filen på ett pålitligt medium.\n"
#: rs01-create.c:1095 rs03-create.c:1466
#: rs01-create.c:1095 rs03-create.c:1482
msgid ""
"The error correction file has been successfully created.\n"
"Make sure to keep this file on a reliable medium."
@@ -3363,6 +3382,8 @@ msgid ""
"\n"
"Fix mode(%s): Repairable sectors will be fixed in the image.\n"
msgstr ""
"\n"
"Rättningsläge(%s): Reparerbara sektorer kommer att rättas till i avbilden.\n"
#: rs01-fix.c:201
#, c-format
@@ -4028,7 +4049,7 @@ msgstr "Använd som mest"
#: rs01-window.c:807 rs03-preferences.c:713
msgid "MiB for error correction data"
msgstr ""
msgstr "MiB för felkorrigeringsdata"
#: rs01-window.c:824 rs03-preferences.c:730
msgid ""
@@ -4058,12 +4079,12 @@ msgid ""
"dvdisaster optimizes access to the image and error correction files by maintaining its own cache. The preset of 32MiB is suitable for most systems."
msgstr ""
#: rs02-common.c:580 rs02-common.c:592 rs02-verify.c:649 rs03-common.c:622
#: rs02-common.c:580 rs02-common.c:592 rs02-verify.c:649 rs03-common.c:643
#, c-format
msgid "Failed seeking to ecc header at %lld: %s\n"
msgstr "Misslyckades med att söka till ecc-huvud på %lld: %s\n"
#: rs02-common.c:584 rs02-common.c:596 rs03-common.c:626
#: rs02-common.c:584 rs02-common.c:596 rs03-common.c:647
#, c-format
msgid "Failed writing ecc header at %lld: %s\n"
msgstr "Misslyckades med att skriva ecc-huvud vid %lld: %s\n"
@@ -4153,7 +4174,7 @@ msgstr "- kontrollerar avbild -"
#: rs02-create.c:1118
#, c-format
msgid "Encoding with Method RS02: %lld MiB data, %lld MiB ecc (%d roots; %4.1f%% redundancy)."
msgstr ""
msgstr "Kodar med Metod RS02: %lld MiB data, %lld MiB ecc (%d rötter; %4.1f%% redundans)."
#: rs02-create.c:1127
#, c-format
@@ -4161,6 +4182,8 @@ msgid ""
"Augmenting image with Method RS02:\n"
" %lld MiB data, %lld MiB ecc (%d roots; %4.1f%% redundancy)."
msgstr ""
"Utvidgar avbild med Metod RS02:\n"
" %lld MiB data, %lld MiB ecc (%d rötter; %4.1f%% redundans)."
#: rs02-create.c:1136
#, c-format
@@ -4174,18 +4197,20 @@ msgstr ""
#: rs02-create.c:1146 rs03-create.c:1409
#, c-format
msgid ""
"Using redundancies below 20%%%% may not give\n"
"Using redundancies below 20%% may not give\n"
"the expected data loss protection.\n"
msgstr ""
"Användning av redundans under 20%%%% kanske inte ger\n"
"Användning av redundans under 20%% kanske inte ger\n"
"förväntat skydd mot förlorat data.\n"
#: rs02-create.c:1178 rs02-create.c:1188 rs03-create.c:1432 rs03-create.c:1460
#: rs02-create.c:1178 rs02-create.c:1188 rs03-create.c:1448 rs03-create.c:1476
#, c-format
msgid ""
"Image has been augmented with error correction data.\n"
"New image size is %lld MiB (%lld sectors).\n"
msgstr ""
"Avbild har utvidgats med felkorrigeringsdata.\n"
"Ny storlek på avbild är %lld MiB (%lld sektorer).\n"
#: rs02-fix.c:119 rs02-fix.c:130 rs03-fix.c:122 rs03-fix.c:133
#, c-format
@@ -4764,17 +4789,23 @@ msgid ""
"an option, please create a separate error correction file."
msgstr ""
#: rs03-create.c:1443
#: rs03-create.c:1425
msgid ""
"BD-R size with no defect management enabled,\n"
"remember it should you need to repair this image later!\n"
msgstr ""
#: rs03-create.c:1459
#, c-format
msgid "Avg performance: %5.2fs (%5.2fMiB/s) total\n"
msgstr ""
#: rs03-create.c:1447
#: rs03-create.c:1463
#, c-format
msgid "%5.2fMiB/s average"
msgstr ""
#: rs03-create.c:1449
#: rs03-create.c:1465
#, c-format
msgid "%d times CPU bound; %d times I/O bound"
msgstr ""
@@ -5272,7 +5303,7 @@ msgstr "FÖRFRÅGAN misslyckades. Någonting är fel med enhet %s.\n"
#: scsi-layer.c:141
#, c-format
msgid "Device %s (%s) is not an optical drive."
msgstr ""
msgstr "Enhet %s (%s) är inte en cd-rom-enhet."
#: scsi-layer.c:142
#, c-format
@@ -5675,9 +5706,6 @@ msgid ""
"%s\n"
"not found.\n"
msgstr ""
"Dokumentationsfilen\n"
"%s\n"
"hittades inte.\n"
#: show-html.c:391
msgid "Please hang on until the browser comes up!"
@@ -5719,8 +5747,8 @@ msgid ""
"<b>Unofficial version.</b>\n"
"\n"
"This is a modified version of the last <b>0.79.6</b> upstream pre-release.\n"
"<b>Patchlevel 1</b> adds support for a full CLI version, BD-R TL/QL,\n"
"and adds back support of Windows builds.\n"
"<b>Patchlevel 2</b> adds support for a full CLI version, BD-R TL/QL,\n"
"a Windows build and an option to produce bigger BD-R RS03 images.\n"
"See the About box and changelog for more information.\n"
"The warning message from the pre-release version is retained below.\n"
msgstr ""
@@ -5759,6 +5787,20 @@ msgstr ""
msgid "<i>New in this Version:</i>"
msgstr ""
#~ 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"
#~ msgid "created by dvdisaster-%d.%d\n"
#~ msgstr "skapad av dvdisaster-%d.%d\n"
#~ msgid ""
#~ "Number of roots must be 8..100;\n"
#~ "the number of erasures must be > 0 and less than the number of roots.\n"
@@ -5773,32 +5815,18 @@ msgstr ""
#~ "\n"
#~ "Genererar slumpmässigt korrigerbara raderingar (för %d rötter, max raderingar = %d).\n"
#~ msgid ""
#~ "\n"
#~ "Common usage examples:\n"
#~ " dvdisaster -r,--read # Read the medium image to hard disc.\n"
#~ " # Use -rn-m to read a certain sector range, e.g. -r100-200\n"
#~ " dvdisaster -c,--create # Create .ecc information for the medium image.\n"
#~ " dvdisaster -f,--fix # Try to fix medium image using .ecc information.\n"
#~ " dvdisaster -s,--scan # Scan the medium for read errors.\n"
#~ " dvdisaster -t,--test # Test integrity of the .iso and .ecc files.\n"
#~ " dvdisaster -u,--unlink # Delete .iso files (when other actions complete)\n"
#~ "\n"
#~ msgstr ""
#~ "\n"
#~ "Exempel på normala användningsområden:\n"
#~ " dvdisaster -r,--read # Läs mediumavbilden till hårddisk.\n"
#~ " # Använd -rn-m för att läsa ett specifikt sektorintervall,\n"
#~ " # exempelvis -r100-200\n"
#~ " dvdisaster -c,--create # Skapa .ecc-information för mediumavbilden.\n"
#~ " dvdisaster -f,--fix # Försök att rätta till mediumavbilden med .ecc-information.\n"
#~ " dvdisaster -s,--scan # Sök av mediumet efter läsfel.\n"
#~ " dvdisaster -t,--test # Testa integriteten av .iso och .ecc-filerna.\n"
#~ " dvdisaster -u,--unlink # Ta bort .iso-filer (när andra operationer är färdiga)\n"
#~ "\n"
#~ msgid "Could not allocate ccb for %s"
#~ msgstr "Kunde inte allokera ccb för %s"
#~ msgid " --cache-size n - image cache size in MB during -c mode (default: 32MB)\n"
#~ msgstr " --cache-size n - cachestorlek för avbild i MB med -c (standard: 32MB)\n"
#~ msgid "All sectors successfully read, but wrong image checksum."
#~ msgstr "Alla sektorer lästa men felaktig kontrollsumma på avbild."
#~ msgid ""
#~ "This .ecc file requires dvdisaster V%d.%d.%d or higher.\n"
#~ "Please visit http://www.dvdisaster.org for an upgrade."
#~ msgstr ""
#~ "Denna .ecc-fil kräver dvdisaster V%d.%d.%d eller högre.\n"
#~ "Besök http://www.dvdisaster.org för en uppgradering."
#~ msgid ": not present.\n"
#~ msgstr ": inte tillgänglig.\n"
@@ -5810,64 +5838,12 @@ msgstr ""
#~ "kunde inte läsa sektor %lld i avbild (endast %d byte):\n"
#~ "%s"
#~ msgid ""
#~ "This .ecc file requires dvdisaster V%d.%d.%d or higher.\n"
#~ "Please visit http://www.dvdisaster.org for an upgrade."
#~ msgstr ""
#~ "Denna .ecc-fil kräver dvdisaster V%d.%d.%d eller högre.\n"
#~ "Besök http://www.dvdisaster.org för en uppgradering."
#~ msgid "Copyright 2004-2012 Carsten Gnoerlich"
#~ msgstr "Copyright 2004-2012 Carsten Gnörlich"
#~ msgid "Reads a CD/DVD image into a file (or tries to complete an existing image file)."
#~ msgstr "Läser en cd/dvd-avbild till en fil (eller försöker att färdigställa en existerande avbildsfil)."
#~ msgid "Displays the user manual (external HTML browser required)."
#~ msgstr "Visar användarmanualen (extern HTML-webbläsare krävs)."
#~ msgid "Local files (on hard disc)"
#~ msgstr "Lokala filer (på hårddisk)"
#~ msgid "Image file does not match the CD/DVD."
#~ msgstr "Avbildsfil stämmer inte med cd/dvd."
#~ msgid "Reading CRC information from ecc file"
#~ msgstr "Läser CRC-information från ecc-fil"
#~ msgid "All sectors successfully read, but wrong image checksum."
#~ msgstr "Alla sektorer lästa men felaktig kontrollsumma på avbild."
#~ msgid ""
#~ "\n"
#~ "Fix mode: Repairable sectors will be fixed in the image.\n"
#~ msgstr ""
#~ "\n"
#~ "Rättningsläge: Reparerbara sektorer kommer att rättas till i avbilden.\n"
#~ msgid "created by dvdisaster-%d.%d\n"
#~ msgstr "skapad av dvdisaster-%d.%d\n"
#~ msgid "MB for error correction data"
#~ msgstr "MB för felkorrigeringsdata"
#~ msgid "Encoding with Method RS02: %lld MB data, %lld MB ecc (%d roots; %4.1f%% redundancy)."
#~ msgstr "Kodar med Metod RS02: %lld MB data, %lld MB ecc (%d rötter; %4.1f%% redundans)."
#~ msgid ""
#~ "Augmenting image with Method RS02:\n"
#~ " %lld MB data, %lld MB ecc (%d roots; %4.1f%% redundancy)."
#~ msgstr ""
#~ "Utvidgar avbild med Metod RS02:\n"
#~ " %lld MB data, %lld MB ecc (%d rötter; %4.1f%% redundans)."
#~ msgid ""
#~ "Image has been augmented with error correction data.\n"
#~ "New image size is %lld MB (%lld sectors).\n"
#~ msgstr ""
#~ "Avbild har utvidgats med felkorrigeringsdata.\n"
#~ "Ny storlek på avbild är %lld MB (%lld sektorer).\n"
#~ msgid ""
#~ "No CD/DVD drives found in /dev.\n"
#~ "No drives will be pre-selected.\n"
@@ -5875,17 +5851,14 @@ msgstr ""
#~ "Inga cd/dvd-enheter hittades i /dev.\n"
#~ "Inga enheter kommer att vara förvalda.\n"
#~ msgid "Device %s (%s) is not a CDROM drive."
#~ msgstr "Enhet %s (%s) är inte en cd-rom-enhet."
#~ msgid "No CD/DVD drives found."
#~ msgstr "Inga cd/dvd-enheter hittades."
#~ msgid "dvdisaster-%s log\n"
#~ msgstr "dvdisaster-%s logg\n"
#~ msgid "dvdisaster-%s%sCopyright 2004-2012 Carsten Gnoerlich.\n"
#~ msgstr "dvdisaster-%s%sCopyright 2004-2012 Carsten Gnörlich.\n"
#~ msgid "dvdisaster-%s%sCopyright 2004-2016 Carsten Gnoerlich.\n"
#~ msgstr "dvdisaster-%s%sCopyright 2004-2016 Carsten Gnörlich.\n"
#~ msgid ""
#~ " -n,--redundancy n%% - error correction file redundancy (in percent), or\n"
@@ -6005,8 +5978,8 @@ msgstr ""
#~ "dvdisaster version %s\n"
#~ "\n"
#~ msgid "--cache-size maximum is 2048MB."
#~ msgstr "--cache-size maximum är 2048MB."
#~ msgid "--cache-size maximum is 2048MiB."
#~ msgstr "--cache-size maximum är 2048MiB."
#~ msgid "Setting the drive speed failed:\n"
#~ msgstr "Misslyckades med att ställa in enhetens hastighet:\n"
@@ -6026,8 +5999,8 @@ msgstr ""
#~ msgid "CD Audio"
#~ msgstr "Cd-ljud"
#~ msgid "--cache-size must at least be 1MB; 16MB or higher is recommended."
#~ msgstr "--cache-size måste vara åtminstone 1MB; 16MB eller högre rekommenderas."
#~ msgid "--cache-size must at least be 1MiB; 16MiB or higher is recommended."
#~ msgstr "--cache-size måste vara åtminstone 1MiB; 16MiB eller högre rekommenderas."
#~ msgid ""
#~ "\n"
@@ -6064,8 +6037,8 @@ msgstr ""
#~ msgid "General"
#~ msgstr "Allmänt"
#~ msgid "%d MB of system memory"
#~ msgstr "%d MB av systemminne"
#~ msgid "%d MiB of system memory"
#~ msgstr "%d MiB av systemminne"
#~ msgid "Split files into segments <= 2GB"
#~ msgstr "Dela upp filer i segment <= 2GB"
@@ -6086,9 +6059,6 @@ msgstr ""
#~ msgid "Could not create taskInterface."
#~ msgstr "Kunde inte skapa taskInterface."
#~ msgid "Could not allocate ccb for %s"
#~ msgstr "Kunde inte allokera ccb för %s"
#~ msgid "GetASPI32SupportInfo() not available."
#~ msgstr "GetASPI32SupportInfo() inte tillgänglig."

View File

@@ -29,7 +29,11 @@
void DefaultLogFile()
{
#ifndef SYS_MINGW
Closure->logFile = g_strdup_printf("%s/.dvdisaster.log", g_getenv("HOME"));
#else
Closure->logFile = g_strdup_printf("%s/dvdisaster.log", Closure->homeDir); /* portable mode */
#endif
}
/*

View File

@@ -20,7 +20,7 @@
* along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef SYS_MINGW /* completely untested under Windows, and we don't need it for releases anyway */
#ifdef WITH_MEMDEBUG_YES
#define _GNU_SOURCE

View File

@@ -11,7 +11,7 @@ ISODIR=/var/tmp/regtest
if ! test -d $ISODIR; then
echo "$ISODIR does not exist."
echo "Please create it manually, or edit common.bash"
exit 0
exit 1
fi
LOGDIR="/dev/shm"
@@ -45,7 +45,7 @@ fi
if test "$1" == "--help" || test "$1" == "-h"; then
echo "Usage: $0 [gui] [all|cont <test case>]"
exit 0;
exit 1;
fi
doall="no"
@@ -78,7 +78,7 @@ if test -x $NEWVER; then
echo "OK"
else
echo "missing."
exit 0
exit 1
fi
### Helper functions
@@ -136,10 +136,16 @@ function try()
REGTEST_SECTION="Test"
fi
echo -n "[ ] ${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - "
if [ "$REGTEST_NO_UTF8" != 1 ]; then
echo -n "[ ] "
fi
echo -n "${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - "
return 0
else
echo "[-] ${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - SKIPPED ($doit, ${CODEC_PREFIX}_$2)"
if [ "$REGTEST_NO_UTF8" != 1 ]; then
echo -n "[-] "
fi
echo "${CODEC_PREFIX} - ${REGTEST_SECTION} - $1 - SKIPPED ($doit, ${CODEC_PREFIX}_$2)"
return 1
fi
}
@@ -222,7 +228,11 @@ function run_regtest()
fi
if ! diff <(tail -n +3 $REFLOG | $filter) <(sed -re "s=${SED_REMOVE_ISO_DIR}==g" $NEWLOG | $filter) >${DIFFLOG}; then
printf "%b\r%b\n" "BAD; diffs found (<expected; >created):" "[\e[31m✘\e[0m]"
if [ "$REGTEST_NO_UTF8" = 1 ]; then
echo "BAD; diffs found (<expected; >created):"
else
printf "%b\r%b\n" "BAD; diffs found (<expected; >created):" "[\e[31m✘\e[0m]"
fi
cat ${DIFFLOG}
if test "$interactive_diff" == "yes"; then
@@ -253,7 +263,7 @@ function run_regtest()
xterm_pid=$!
fi
LANG=en_EN.UTF-8 $NEWVER --regtest $extra_args --resource-file $LOGDIR/.dvdisaster-regtest >>$NEWLOG 2>&1
LANG=en_EN.UTF-8 timeout 15 $NEWVER --regtest $extra_args --resource-file $LOGDIR/.dvdisaster-regtest >>$NEWLOG 2>&1
rm -f $LOGDIR/.dvdisaster-regtest
fi
@@ -265,8 +275,11 @@ function run_regtest()
if test ${image_md5} != "ignore"; then
md5=$($MD5SUM ${testiso} | cut -d\ -f 1)
if test "$image_md5" != "$md5"; then
echo "BAD; md5 sum mismatch in image file:"
printf "%b\r%b\n" "BAD; md5 sum mismatch in image file:" "[\e[31m✘\e[0m]"
if [ "$REGTEST_NO_UTF8" = 1 ]; then
echo "BAD; md5 sum mismatch in image file:"
else
printf "%b\r%b\n" "BAD; md5 sum mismatch in image file:" "[\e[31m✘\e[0m]"
fi
echo "... expected image: $image_md5"
echo "... generated image: $md5"
pass="false"
@@ -276,7 +289,7 @@ function run_regtest()
if test ${ecc_md5} != "ignore"; then
md5=$($MD5SUM ${testecc} | cut -d\ -f 1)
if test "$ecc_md5" != "$md5"; then
if [ "$pass" = false ]; then
if [ "$pass" = false ] || [ "$REGTEST_NO_UTF8" = 1 ]; then
echo "BAD; md5 sum mismatch in ecc file:"
else
printf "%b\r%b\n" "BAD; md5 sum mismatch in ecc file:" "[\e[31m✘\e[0m]"
@@ -289,7 +302,11 @@ function run_regtest()
case "${pass}" in
true)
printf "%b\r%b\n" "GOOD" "[\e[32m✓\e[0m]"
if [ "$REGTEST_NO_UTF8" = 1 ]; then
echo GOOD
else
printf "%b\r%b\n" "GOOD" "[\e[32m✓\e[0m]"
fi
;;
skip)

View File

@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -16,7 +16,7 @@ Completing image rs02-tmp.iso. Only missing sectors will be read.
Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -16,7 +16,7 @@ All sectors successfully read.
Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 39809 medium sectors.
Image size is now: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 39810 medium sectors.
Image size is now: 30000 medium sectors and 56 bytes.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34933 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34932 medium sectors.
Image size is now: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34933 medium sectors.
Image size is now: 30000 medium sectors and 56 bytes.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34933 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34935 medium sectors.
Image size is now: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -11,7 +11,7 @@ Opening rs02-tmp.iso: 34935 medium sectors.
Image size is now: 30000 medium sectors and 137 bytes.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34933 sectors).

View File

@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
*

View File

@@ -8,7 +8,7 @@ See the file "COPYING" for further information.
Opening rs02-tmp.iso: 30000 medium sectors and 137 bytes.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34933 sectors).

View File

@@ -17,7 +17,7 @@ All sectors successfully read. Checksums match.
Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -20,7 +20,7 @@ Opening rs02-tmp.iso: 49935 medium sectors.
Image size is now: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -17,7 +17,7 @@ All sectors successfully read. Checksums match.
Opening rs02-tmp.iso: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -20,7 +20,7 @@ Opening rs02-tmp.iso: 36975 medium sectors.
Image size is now: 30000 medium sectors.
Augmenting image with Method RS02:
58 MiB data, 9 MiB ecc (35 roots; 15.9% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 68 MiB (34932 sectors).

View File

@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
Opening rs03i-tmp.iso: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors).

View File

@@ -249,7 +249,7 @@ ndata = 216
nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
CrcBufValid: NOT complete
Cache allocation: 110592K+12288K+9984K=129M (data+parity+descrambling)

View File

@@ -250,7 +250,7 @@ ndata = 216
nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29835 medium sectors.
* Truncating image to data part (21000 sectors).
Image size is now: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29835 medium sectors.
* Truncating image to data part (21001 sectors).
Image size is now: 21000 medium sectors and 56 bytes.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 29887 medium sectors.
* Truncating image to data part (21000 sectors).
Image size is now: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24927 medium sectors.
* Truncating image to data part (21001 sectors).
Image size is now: 21000 medium sectors and 56 bytes.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24990 medium sectors.
* Truncating image to data part (21000 sectors).
Image size is now: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors).

View File

@@ -10,7 +10,7 @@ Opening rs03i-tmp.iso: 24990 medium sectors.
* Truncating image to data part (21001 sectors).
Image size is now: 21000 medium sectors and 56 bytes.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors).

View File

@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
Opening rs03i-tmp.iso: 21000 medium sectors.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
*

View File

@@ -7,7 +7,7 @@ See the file "COPYING" for further information.
Opening rs03i-tmp.iso: 21000 medium sectors and 56 bytes.
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
Image has been augmented with error correction data.
New image size is 48 MiB (24990 sectors).

View File

@@ -252,7 +252,7 @@ ndata = 216
nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum

View File

@@ -209,7 +209,7 @@ ndata = 216
nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum

View File

@@ -266,7 +266,7 @@ ndata = 216
nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum

View File

@@ -263,7 +263,7 @@ ndata = 216
nroots = 39 (18.1%)
41 MiB data, 7 MiB ecc (39 roots; 18.1% redundancy).
* Warning: Using redundancies below 20%% may not give
* Warning: Using redundancies below 20% may not give
* the expected data loss protection.
CrcBufValid: buffer VALID
CrcBuf present, augmented image: using data MD5 sum

View File

@@ -1479,7 +1479,7 @@ fi
REGTEST_SECTION="Reading tests (adaptive)"
echo "Currently not enabled!"
exit 0
exit $nbfailed
# Read good image with error correction data available

View File

@@ -1776,7 +1776,7 @@ fi
REGTEST_SECTION="Reading tests (adaptive)"
echo "Currently not enabled!"
exit 0
exit $nbfailed
# Read complete / optimal image

View File

@@ -2,7 +2,7 @@
cd "$(dirname "$0")"
allfailed=0
for i in rs*.bash; do
( DVDISASTER_SCSI_SIMULATED_NODELAY=1 ./$i ); ret=$?
( DVDISASTER_SCSI_SIMULATED_NODELAY=1 REGTEST_NO_UTF8=1 ./$i ); ret=$?
allfailed=$((allfailed + ret))
done
echo Failed $allfailed tests

View File

@@ -1143,7 +1143,7 @@ void RS02Create(void)
{ int answer;
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
_("Using redundancies below 20%%%% may not give\n"
_("Using redundancies below 20%% may not give\n"
"the expected data loss protection.\n"), NULL);
if(!answer)

View File

@@ -532,13 +532,34 @@ RS03Layout *CalcRS03Layout(Image *image, int target)
lay->mediumCapacity = DVD_SL_SIZE; /* Single layered DVD */
else if(get_roots(dataSectors, DVD_DL_SIZE) >= 8)
lay->mediumCapacity = DVD_DL_SIZE; /* Double layered DVD */
else if(get_roots(dataSectors, BD_SL_SIZE) >= 8)
lay->mediumCapacity = BD_SL_SIZE; /* Single layered BD */
else if(get_roots(dataSectors, BD_DL_SIZE) >= 8)
lay->mediumCapacity = BD_DL_SIZE; /* Double layered BD */
else if(get_roots(dataSectors, BDXL_TL_SIZE) >= 8)
lay->mediumCapacity = BDXL_TL_SIZE; /* Triple layered BDXL */
else lay->mediumCapacity = BDXL_QL_SIZE;
else if(get_roots(dataSectors, BD_SL_SIZE) >= 8) {
/* Single layered BD */
if (Closure->noBdrDefectManagement)
lay->mediumCapacity = BD_SL_SIZE_NODM;
else
lay->mediumCapacity = BD_SL_SIZE;
}
else if(get_roots(dataSectors, BD_DL_SIZE) >= 8) {
/* Double layered BD */
if (Closure->noBdrDefectManagement)
lay->mediumCapacity = BD_DL_SIZE_NODM;
else
lay->mediumCapacity = BD_DL_SIZE;
}
else if(get_roots(dataSectors, BDXL_TL_SIZE) >= 8) {
/* Triple layered BDXL */
if (Closure->noBdrDefectManagement)
lay->mediumCapacity = BDXL_TL_SIZE_NODM;
else
lay->mediumCapacity = BDXL_TL_SIZE;
}
else {
/* Quadruple layered BDXL */
if (Closure->noBdrDefectManagement)
lay->mediumCapacity = BDXL_QL_SIZE_NODM;
else
lay->mediumCapacity = BDXL_QL_SIZE;
}
}
}

View File

@@ -1406,13 +1406,29 @@ void RS03Create(void)
{ int answer;
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
_("Using redundancies below 20%%%% may not give\n"
_("Using redundancies below 20%% may not give\n"
"the expected data loss protection.\n"), NULL);
if(!answer)
abort_encoding(ec, FALSE);
}
/*** Warn in case of BD-R no defect management enabled */
if (lay->mediumCapacity == BD_SL_SIZE_NODM ||
lay->mediumCapacity == BD_DL_SIZE_NODM ||
lay->mediumCapacity == BDXL_TL_SIZE_NODM ||
lay->mediumCapacity == BDXL_QL_SIZE_NODM)
{ int answer;
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
_("BD-R size with no defect management enabled,\n"
"remember it should you need to repair this image later!\n"), NULL);
if(!answer)
abort_encoding(ec, FALSE);
}
/*** Expand the image by ecc_sectors. */
expand_image(ec);

View File

@@ -390,11 +390,13 @@ int RS03RecognizeImage(Image *image)
/* Easy shot: Locate the ecc header in the image */
image->eccHeader = FindRS03HeaderInImage(image);
if (!Closure->debugMode || !Closure->ignoreRS03header)
{ image->eccHeader = FindRS03HeaderInImage(image);
if(image->eccHeader)
{ free_recognize_context(rc);
return TRUE;
if(image->eccHeader)
{ free_recognize_context(rc);
return TRUE;
}
}
/* No exhaustive search on optical media unless explicitly okayed by user */
@@ -417,10 +419,13 @@ int RS03RecognizeImage(Image *image)
{ if(image_sectors < CDR_SIZE) layer_size = CDR_SIZE/GF_FIELDMAX;
else if(image_sectors < DVD_SL_SIZE) layer_size = DVD_SL_SIZE/GF_FIELDMAX;
else if(image_sectors < DVD_DL_SIZE) layer_size = DVD_DL_SIZE/GF_FIELDMAX;
else if(image_sectors < BD_SL_SIZE) layer_size = BD_SL_SIZE/GF_FIELDMAX;
else if(image_sectors < BD_DL_SIZE) layer_size = BD_DL_SIZE/GF_FIELDMAX;
else if(image_sectors < BDXL_TL_SIZE) layer_size = BDXL_TL_SIZE/GF_FIELDMAX;
else layer_size = BDXL_QL_SIZE/GF_FIELDMAX;
else if(image_sectors < BD_SL_SIZE)
layer_size = (Closure->noBdrDefectManagement ? BD_SL_SIZE_NODM : BD_SL_SIZE)/GF_FIELDMAX;
else if(image_sectors < BD_DL_SIZE)
layer_size = (Closure->noBdrDefectManagement ? BD_DL_SIZE_NODM : BD_DL_SIZE)/GF_FIELDMAX;
else if(image_sectors < BDXL_TL_SIZE)
layer_size = (Closure->noBdrDefectManagement ? BDXL_TL_SIZE_NODM : BDXL_TL_SIZE)/GF_FIELDMAX;
else layer_size = (Closure->noBdrDefectManagement ? BDXL_QL_SIZE_NODM : BDXL_QL_SIZE)/GF_FIELDMAX;
}
Verbose(".. trying layer size %lld\n", layer_size);

View File

@@ -1,17 +1,21 @@
#!/usr/bin/env bash
build=$(grep BUILDNUM $1 2>/dev/null | cut -d\ -f3)
build=$((build+1))
flavor=$(grep FLAVOR $1 2>/dev/null | cut -d\ -f3)
if [ -z "$flavor" ]; then
flavor=UNKNOWN
fi
echo "#define FLAVOR $flavor" >$1
cat >$1 <<EOF
#ifdef CLI
#define FLAVOR CLI
#else
#define FLAVOR GUI
#endif
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
EOF
echo "#define BUILDNUM $build" >>$1
if git describe >/dev/null 2>/dev/null; then
gitver=$(git describe --tags --dirty)
echo "#define BUILD \"$gitver-$flavor-speed47.build$build\"" >>$1
echo "#define BUILD \"$gitver-\" TOSTRING(FLAVOR) \"-speed47.build$build\"" >>$1
else
echo "#define BUILD \"$gitver-speed47.build$build\"" >$1
echo "#define BUILD TOSTRING(FLAVOR) \"-speed47.build$build\"" >>$1
fi
date=$(date +"%d.%m.%y (%A, %H:%M)")
echo "#define BDATE \"$date\"" >>$1

View File

@@ -81,8 +81,8 @@ static gboolean expose_cb(GtkWidget *widget, GdkEventExpose *event, gpointer dat
AboutText(box, _("<b>Unofficial version.</b>\n\n"
"This is a modified version of the last <b>0.79.6</b> upstream pre-release.\n"
"<b>Patchlevel 1</b> adds support for a full CLI version, BD-R TL/QL,\n"
"and adds back support of Windows builds.\n"
"<b>Patchlevel 3</b> adds support for a full CLI version, BD-R TL/QL,\n"
"a Windows build and an option to produce bigger BD-R RS03 images.\n"
"See the About box and changelog for more information.\n"
"The warning message from the pre-release version is retained below.\n"));