Compare commits
15 Commits
v0.79.6-pl
...
v0.79.6-pl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
355427b6e0 | ||
|
|
da44e81561 | ||
|
|
9e5ba80e29 | ||
|
|
c72b85bb9a | ||
|
|
97a4df2f21 | ||
|
|
f68efb758e | ||
|
|
66cf0d25ee | ||
|
|
e8eb7824aa | ||
|
|
a3aedbd4a2 | ||
|
|
83acea4684 | ||
|
|
3bd06abbda | ||
|
|
901e87dfcd | ||
|
|
4518992908 | ||
|
|
802e095cfb | ||
|
|
8332b845a7 |
4
.github/workflows/make-dist.sh
vendored
4
.github/workflows/make-dist.sh
vendored
@@ -28,9 +28,9 @@ mkdir -p dist/locale
|
|||||||
cp -vr locale/*/ dist/locale/
|
cp -vr locale/*/ dist/locale/
|
||||||
if [ "$os" != "linux64" ]; then
|
if [ "$os" != "linux64" ]; then
|
||||||
if [ "$GUI" = 1 ]; then
|
if [ "$GUI" = 1 ]; then
|
||||||
mkdir -p dist/share/themes
|
mkdir -p dist/share/themes dist/lib/gtk-2.0
|
||||||
cp -vr $MINGW_PREFIX/share/themes/MS-Windows dist/share/themes/
|
cp -vr $MINGW_PREFIX/share/themes/MS-Windows dist/share/themes/
|
||||||
cp -vr $MINGW_PREFIX/lib/gtk-2.0 dist/lib/
|
cp -vr $MINGW_PREFIX/lib/gtk-2.0/* dist/lib/gtk-2.0/
|
||||||
rm -rf dist/lib/gtk-2.0/include
|
rm -rf dist/lib/gtk-2.0/include
|
||||||
fi
|
fi
|
||||||
mkdir -p dist/lib
|
mkdir -p dist/lib
|
||||||
|
|||||||
8
.github/workflows/release.yml
vendored
8
.github/workflows/release.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
|||||||
msystem: MINGW32
|
msystem: MINGW32
|
||||||
grep: 386
|
grep: 386
|
||||||
- ui: cli
|
- ui: cli
|
||||||
clionly: 1
|
clionly: --with-cli-only
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
@@ -37,9 +37,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: configure
|
- name: configure
|
||||||
env:
|
run: ./configure ${{ matrix.clionly }}
|
||||||
CLI_ONLY: ${{ matrix.clionly }}
|
|
||||||
run: ./configure
|
|
||||||
- name: make
|
- name: make
|
||||||
run: nproc && make -j$(nproc)
|
run: nproc && make -j$(nproc)
|
||||||
- name: check executable
|
- name: check executable
|
||||||
@@ -80,7 +78,7 @@ jobs:
|
|||||||
- name: install prerequisites
|
- name: install prerequisites
|
||||||
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man
|
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man
|
||||||
- name: configure
|
- name: configure
|
||||||
run: env CLI_ONLY=1 ./configure
|
run: ./configure --with-cli-only
|
||||||
- name: make
|
- name: make
|
||||||
run: nproc && make -j$(nproc) && make static && mv -f dvdisaster-static dvdisaster
|
run: nproc && make -j$(nproc) && make static && mv -f dvdisaster-static dvdisaster
|
||||||
- name: check executable
|
- name: check executable
|
||||||
|
|||||||
223
.github/workflows/tests.yml
vendored
223
.github/workflows/tests.yml
vendored
@@ -3,185 +3,114 @@ name: non-regression tests
|
|||||||
on: [pull_request]
|
on: [pull_request]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
win:
|
||||||
win64-gui:
|
|
||||||
runs-on: windows-2016
|
runs-on: windows-2016
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [x86_64, i686]
|
||||||
|
ui: [cli, gui]
|
||||||
|
printf: [fmtdbg, normal]
|
||||||
|
include:
|
||||||
|
- arch: x86_64
|
||||||
|
msystem: MINGW64
|
||||||
|
grep: x86-64
|
||||||
|
- arch: i686
|
||||||
|
msystem: MINGW32
|
||||||
|
grep: 386
|
||||||
|
- ui: cli
|
||||||
|
clionly: --with-cli-only
|
||||||
|
- printf: fmtdbg
|
||||||
|
debugprintf: --with-debug-printf-format
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
steps:
|
steps:
|
||||||
- uses: msys2/setup-msys2@v2
|
- uses: msys2/setup-msys2@v2
|
||||||
with:
|
with:
|
||||||
msystem: MINGW64
|
msystem: ${{ matrix.msystem }}
|
||||||
update: false
|
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
|
install: git diffutils make pkg-config mingw-w64-${{ matrix.arch }}-glib2 mingw-w64-${{ matrix.arch }}-gcc mingw-w64-${{ matrix.arch }}-ghostscript mingw-w64-${{ matrix.arch }}-ntldd-git man zip
|
||||||
- run: git config --global core.autocrlf input
|
- name: install GUI prereqs
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
run: pacman -S --noconfirm mingw-w64-${{ matrix.arch }}-gtk2
|
||||||
|
- name: git config
|
||||||
|
run: git config --global core.autocrlf input
|
||||||
shell: bash
|
shell: bash
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: configure
|
- name: configure
|
||||||
run: ./configure
|
run: |
|
||||||
|
echo running ./configure ${{ matrix.clionly }}
|
||||||
|
./configure ${{ matrix.clionly }}
|
||||||
- name: make
|
- name: make
|
||||||
run: nproc && make -j$(nproc)
|
run: nproc && make -j$(nproc)
|
||||||
- name: check executable
|
- name: check executable
|
||||||
run: |
|
run: |
|
||||||
./dvdisaster.exe --version
|
./dvdisaster.exe --version
|
||||||
file dvdisaster.exe
|
file dvdisaster.exe
|
||||||
./dvdisaster.exe --version | grep -q -e dirty -e NOGUI && exit 1
|
if ./dvdisaster.exe --version | grep dirty; then exit 1; fi
|
||||||
file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
|
file dvdisaster.exe | grep -q '${{ matrix.grep }}, for MS Windows'
|
||||||
- name: prepare dist
|
- name: check executable (GUI)
|
||||||
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
if: matrix.ui == 'gui'
|
||||||
id: dist
|
|
||||||
- name: check executability of dist from cmd.exe
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd dist
|
|
||||||
dvdisaster.exe --version
|
|
||||||
- name: regression tests
|
|
||||||
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./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 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: |
|
run: |
|
||||||
./dvdisaster.exe --version
|
./dvdisaster.exe --version
|
||||||
file dvdisaster.exe
|
if ./dvdisaster.exe --version | grep NOGUI; then exit 1; fi
|
||||||
./dvdisaster.exe --version | grep -q -e dirty -e NOGUI && exit 1
|
- name: check executable (CLI)
|
||||||
file dvdisaster.exe | grep -q '386, for MS Windows'
|
if: matrix.ui == 'cli'
|
||||||
- name: prepare dist
|
|
||||||
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
|
||||||
id: dist
|
|
||||||
- name: check executability of dist from cmd.exe
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd dist
|
|
||||||
dvdisaster.exe --version
|
|
||||||
- name: regression tests
|
|
||||||
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./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 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: env CLI_ONLY=1 ./configure
|
|
||||||
- name: make
|
|
||||||
run: nproc && make -j$(nproc)
|
|
||||||
- name: check executable
|
|
||||||
run: |
|
run: |
|
||||||
./dvdisaster.exe --version
|
./dvdisaster.exe --version
|
||||||
file dvdisaster.exe
|
./dvdisaster.exe --version | grep NOGUI
|
||||||
./dvdisaster.exe --version | grep -q -e dirty && exit 1
|
- name: try to prepare dist
|
||||||
./dvdisaster.exe --version | grep -q NOGUI
|
|
||||||
file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
|
|
||||||
- name: prepare dist
|
|
||||||
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
||||||
id: dist
|
- name: run regression tests
|
||||||
- name: check executability of dist from cmd.exe
|
if: matrix.printf == 'normal'
|
||||||
shell: cmd
|
env:
|
||||||
run: |
|
REGTEST_NO_UTF8: 1
|
||||||
cd dist
|
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
|
||||||
dvdisaster.exe --version
|
|
||||||
- name: regression tests
|
|
||||||
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
|
|
||||||
|
|
||||||
win32-cli:
|
linux:
|
||||||
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: env CLI_ONLY=1 ./configure
|
|
||||||
- name: make
|
|
||||||
run: nproc && make -j$(nproc)
|
|
||||||
- name: check executable
|
|
||||||
run: |
|
|
||||||
./dvdisaster.exe --version
|
|
||||||
file dvdisaster.exe
|
|
||||||
./dvdisaster.exe --version | grep -q -e dirty && exit 1
|
|
||||||
./dvdisaster.exe --version | grep -q NOGUI
|
|
||||||
file dvdisaster.exe | grep -q '386, for MS Windows'
|
|
||||||
- name: prepare dist
|
|
||||||
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
|
||||||
id: dist
|
|
||||||
- name: check executability of dist from cmd.exe
|
|
||||||
shell: cmd
|
|
||||||
run: |
|
|
||||||
cd dist
|
|
||||||
dvdisaster.exe --version
|
|
||||||
- name: regression tests
|
|
||||||
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
|
|
||||||
|
|
||||||
linux64-cli:
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
ui: [cli, gui]
|
||||||
|
printf: [fmtdbg, normal]
|
||||||
|
include:
|
||||||
|
- ui: cli
|
||||||
|
clionly: --with-cli-only
|
||||||
|
- printf: fmtdbg
|
||||||
|
debugprintf: --with-debug-printf-format
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: install prerequisites
|
- name: install prerequisites
|
||||||
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man jq
|
env:
|
||||||
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
run: sudo apt-get update && sudo apt-get install -y libglib2.0-dev ghostscript man jq
|
||||||
|
- name: install prerequisites (GUI)
|
||||||
|
if: matrix.ui == 'gui'
|
||||||
|
env:
|
||||||
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
run: sudo apt-get install -y libgtk2.0-dev
|
||||||
- name: configure
|
- name: configure
|
||||||
run: env CLI_ONLY=1 ./configure
|
run: |
|
||||||
|
echo ./configure ${{ matrix.clionly }} ${{ matrix.debugprintf }} --with-werror
|
||||||
|
./configure ${{ matrix.clionly }} ${{ matrix.debugprintf }} --with-werror
|
||||||
- name: make
|
- name: make
|
||||||
run: nproc && make -j$(nproc)
|
run: nproc && make -j$(nproc)
|
||||||
- name: check executability
|
- name: check executability
|
||||||
run: ./dvdisaster --version
|
run: ./dvdisaster --version
|
||||||
- name: check executable
|
- name: check executable (GUI)
|
||||||
run: file dvdisaster && file dvdisaster | grep -q 'ELF 64'
|
if: matrix.ui == 'gui'
|
||||||
|
run: |
|
||||||
|
./dvdisaster --version
|
||||||
|
if ./dvdisaster --version | grep NOGUI; then exit 1; fi
|
||||||
|
- name: check executable (CLI)
|
||||||
|
if: matrix.ui == 'cli'
|
||||||
|
run: |
|
||||||
|
./dvdisaster --version
|
||||||
|
./dvdisaster --version | grep NOGUI
|
||||||
- name: prepare dist
|
- name: prepare dist
|
||||||
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
||||||
- name: regression tests
|
- name: regression tests
|
||||||
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
|
if: matrix.printf == 'normal'
|
||||||
|
env:
|
||||||
linux64-gui:
|
REGTEST_NO_UTF8: 1
|
||||||
runs-on: ubuntu-latest
|
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: install prerequisites
|
|
||||||
run: sudo apt update && sudo apt install -y libglib2.0-dev ghostscript man jq libgtk2.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: prepare dist
|
|
||||||
run: ./.github/workflows/make-dist.sh ${{ github.ref }}
|
|
||||||
- name: regression tests
|
|
||||||
run: mkdir /var/tmp/regtest && export REGTEST_NO_UTF8=1 && ./regtest/runtests.sh
|
|
||||||
|
|
||||||
|
|||||||
23
CHANGELOG
23
CHANGELOG
@@ -1,11 +1,24 @@
|
|||||||
# dvdisaster changelog -*-text-*-
|
# dvdisaster changelog -*-text-*-
|
||||||
|
|
||||||
|
0.79.6.patchlevel-6 17-01-2021 *UNOFFICIAL*
|
||||||
|
- fix: allow blank media in Preferences>Error correction>RS02>query medium (#19)
|
||||||
|
- fix: tested compilation under clang, detected a reversed order or arguments in a call to memset(), fixed
|
||||||
|
- fix: printf: added --with-debug-print-format configure option to permit compile-time detection of printf format errors:
|
||||||
|
- fixed some potentially severe ones
|
||||||
|
- replaced %ldd/%ld by PRId64 to remove warnings on all archs
|
||||||
|
- fix: appimage: adjust docdir for help menu
|
||||||
|
- chore: ensure configure works properly even if user adds -Werror to CFLAGS
|
||||||
|
- chore: added --with-werror to configure
|
||||||
|
- chore: replaced CLI_ONLY=1 by --with-cli-only in configure
|
||||||
|
- chore: update locales
|
||||||
|
- chore: debug printf format in GitHub actions tests
|
||||||
|
|
||||||
0.79.6.patchlevel-5 12-01-2021 *UNOFFICIAL*
|
0.79.6.patchlevel-5 12-01-2021 *UNOFFICIAL*
|
||||||
fix: don't error on blank media in medium-info (#19), bug present upstream since 0.79.5
|
- fix: don't error on blank media in medium-info (#19), bug present upstream since 0.79.5
|
||||||
fix: gui: fix the 'SetLabelText() failed' error caption on the medium-info window (#19), bug present upstream since 0.72.3
|
- fix: gui: fix the 'SetLabelText() failed' error caption on the medium-info window (#19), bug present upstream since 0.72.3
|
||||||
fix: add CHANGELOG, TODO, CREDITS to dist for the Help menu
|
- fix: add CHANGELOG, TODO, CREDITS to dist for the Help menu
|
||||||
chore: appimage: add missing gtk engines and adjust docdir for help menu
|
- chore: appimage: add missing gtk engines and adjust docdir for help menu
|
||||||
chore: enhance packaging, update locales, changelog et al.
|
- chore: enhance packaging, update locales, changelog et al.
|
||||||
|
|
||||||
0.79.6.patchlevel-4 04-09-2020 *UNOFFICIAL*
|
0.79.6.patchlevel-4 04-09-2020 *UNOFFICIAL*
|
||||||
- feat: allow adaptive reading again*
|
- feat: allow adaptive reading again*
|
||||||
|
|||||||
2
INSTALL
2
INSTALL
@@ -130,7 +130,7 @@ user@host> ./configure
|
|||||||
If you want to build a CLI-only version, which doesn't depend
|
If you want to build a CLI-only version, which doesn't depend
|
||||||
on the gtk2 libraries, you can run instead:
|
on the gtk2 libraries, you can run instead:
|
||||||
|
|
||||||
user@host> CLI_ONLY=1 ./configure
|
user@host> ./configure --with-cli-only
|
||||||
|
|
||||||
The script will possibly print some errors about missing libraries.
|
The script will possibly print some errors about missing libraries.
|
||||||
Type "configure --help" to learn about pointing configure
|
Type "configure --help" to learn about pointing configure
|
||||||
|
|||||||
5
Makefile
5
Makefile
@@ -5,8 +5,9 @@
|
|||||||
all:
|
all:
|
||||||
@echo
|
@echo
|
||||||
@echo "Please run \`./configure' first."
|
@echo "Please run \`./configure' first."
|
||||||
@echo "To build a CLI-only version,"
|
@echo
|
||||||
@echo "run \`CLI_ONLY=1 ./configure' instead."
|
@echo "To build a CLI-only version, run `./configure --with-cli-only'."
|
||||||
|
@echo
|
||||||
@echo "Note that dvdisaster requires GNU make to build."
|
@echo "Note that dvdisaster requires GNU make to build."
|
||||||
@echo "Under non-Linux systems, it might be known as \`gmake'."
|
@echo "Under non-Linux systems, it might be known as \`gmake'."
|
||||||
@echo
|
@echo
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ This version is built on top of the latest upstream version, with the following
|
|||||||
|
|
||||||
- Most Debian patches have been applied, those specific to Debian have been omitted
|
- 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
|
- Windows build supported again, it was dropped upstream a few versions back
|
||||||
- A CLI-only version, not depending on gtk (`CLI_ONLY=1 ./configure && make clean && make -j4`)
|
- A CLI-only version, not depending on gtk (`./configure --with-cli-only && make clean && make -j4`)
|
||||||
- Regression tests confirmed working on Linux64, Windows32 and Windows64, for normal and CLI-only builds
|
- 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)
|
- Added pre-defined sizes for BD-R Triple Layer (100GB), BD-R Quadruple Layer (128GB)
|
||||||
|
|
||||||
|
|||||||
48
configure
vendored
48
configure
vendored
@@ -4,14 +4,10 @@
|
|||||||
|
|
||||||
BASH_BASED_CONFIGURE=./scripts/bash-based-configure
|
BASH_BASED_CONFIGURE=./scripts/bash-based-configure
|
||||||
BASH_BASED_CONFIGURE_OPTS="--buildtmp=$(pwd)/build $@"
|
BASH_BASED_CONFIGURE_OPTS="--buildtmp=$(pwd)/build $@"
|
||||||
REQUIRED_CFLAGS="-DPATCHLEVEL=5 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I. -pipe"
|
REQUIRED_CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I. -pipe"
|
||||||
RECOMMENDED_CFLAGS="-O2 -fomit-frame-pointer -Wall -Wno-deprecated-declarations -Wno-stringop-truncation"
|
RECOMMENDED_CFLAGS="-O2 -fomit-frame-pointer -Wall -Wno-unknown-warning-option -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-format-zero-length"
|
||||||
DEBUG_CFLAGS="-ggdb -Wall"
|
DEBUG_CFLAGS="-ggdb -Wall"
|
||||||
|
|
||||||
if [ "$CLI_ONLY" = 1 ]; then
|
|
||||||
REQUIRED_CFLAGS="-DCLI $REQUIRED_CFLAGS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CFG_USE_CYGWIN="no" # do not change
|
CFG_USE_CYGWIN="no" # do not change
|
||||||
|
|
||||||
if test -e $BASH_BASED_CONFIGURE; then
|
if test -e $BASH_BASED_CONFIGURE; then
|
||||||
@@ -25,8 +21,8 @@ fi
|
|||||||
# Set the package name and version
|
# Set the package name and version
|
||||||
|
|
||||||
PACKAGE dvdisaster 0.79.6
|
PACKAGE dvdisaster 0.79.6
|
||||||
CFG_HAVE_OPTIONS="$CFG_HAVE_OPTIONS -DHAVE_UNSTABLE_RELEASE"
|
DEFINE_INT PATCHLEVEL 6
|
||||||
|
DEFINE_STRING HAVE_UNSTABLE_RELEASE 1
|
||||||
|
|
||||||
# Check for some essential tools.
|
# Check for some essential tools.
|
||||||
|
|
||||||
@@ -48,12 +44,22 @@ GET_LOCALEDIR
|
|||||||
GET_BUILDROOT
|
GET_BUILDROOT
|
||||||
GET_BUILDTMP
|
GET_BUILDTMP
|
||||||
|
|
||||||
|
PRINT_MESSAGE "\nDetermining build flavor:"
|
||||||
|
|
||||||
|
# old way of specifying --with-cli-only
|
||||||
|
if [ "$CLI_ONLY" = 1 ]; then
|
||||||
|
cfg_with_cli_only=yes
|
||||||
|
unset CLI_ONLY
|
||||||
|
fi
|
||||||
|
|
||||||
|
WITH_OPTION cli-only no "[yes | no]"
|
||||||
|
|
||||||
# Look for required libraries
|
# Look for required libraries
|
||||||
|
|
||||||
PRINT_MESSAGE "\nLooking for includes and libraries:"
|
PRINT_MESSAGE "\nLooking for includes and libraries:"
|
||||||
|
|
||||||
REQUIRE_GLIB2 2 32 0
|
REQUIRE_GLIB2 2 32 0
|
||||||
if [ "$CLI_ONLY" != 1 ]; then
|
if test "$cfg_with_cli_only" != "yes"; then
|
||||||
REQUIRE_GTK2 2 6 0 WITH_THREADS
|
REQUIRE_GTK2 2 6 0 WITH_THREADS
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
@@ -117,7 +123,7 @@ if ! EXECUTE_PROGRAM "xgettext --help" xgettext \
|
|||||||
cfg_force_with_nls=no
|
cfg_force_with_nls=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$CLI_ONLY" != 1 ]; then
|
if test "$cfg_with_cli_only" != "yes"; then
|
||||||
if ! EXECUTE_PROGRAM "gdk-pixbuf-csource --help" gdk_pixbuf_csource ; then
|
if ! EXECUTE_PROGRAM "gdk-pixbuf-csource --help" gdk_pixbuf_csource ; then
|
||||||
echo "* gdk-pixbuf not installed"
|
echo "* gdk-pixbuf not installed"
|
||||||
echo "* or path to gdk-pixbuf-csource is missing."
|
echo "* or path to gdk-pixbuf-csource is missing."
|
||||||
@@ -135,6 +141,24 @@ WITH_OPTION embedded-src-path yes "[yes | no]"
|
|||||||
PRINT_MESSAGE "\nDebugging options (do not use in production system):"
|
PRINT_MESSAGE "\nDebugging options (do not use in production system):"
|
||||||
|
|
||||||
WITH_OPTION memdebug no "[no | yes]"
|
WITH_OPTION memdebug no "[no | yes]"
|
||||||
|
WITH_OPTION debug-printf-format no "[no | yes]"
|
||||||
|
WITH_OPTION werror no "[no | yes]"
|
||||||
|
|
||||||
|
if test "$cfg_with_debug_printf_format" == "yes"; then
|
||||||
|
# don't use the binary compiled with this,
|
||||||
|
# it's only useful to properly get all the build-time
|
||||||
|
# warnings around printf-errors, that are otherwise
|
||||||
|
# not catched by the compiler because of the _() macro
|
||||||
|
DEFINE_STRING DEBUG_PRINTF_FORMAT 1
|
||||||
|
else
|
||||||
|
# warnings given by -Wformat-security are bogus because of _(),
|
||||||
|
# see above comment if you actually want to check for format errors
|
||||||
|
CFG_CFLAGS="$CFG_CFLAGS -Wno-format-security"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$cfg_with_werror" == "yes"; then
|
||||||
|
CFG_CFLAGS="$CFG_CFLAGS -Werror"
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$cfg_with_efence" == "yes"; then
|
if test "$cfg_with_efence" == "yes"; then
|
||||||
if ! CHECK_LIBRARY efence malloc efence; then
|
if ! CHECK_LIBRARY efence malloc efence; then
|
||||||
@@ -160,7 +184,7 @@ cfiles="src/method-link.c"
|
|||||||
ofiles="$BUILDTMP/method-link.o"
|
ofiles="$BUILDTMP/method-link.o"
|
||||||
|
|
||||||
for cfile in src/*.c; do
|
for cfile in src/*.c; do
|
||||||
if [ "$CLI_ONLY" = 1 ]; then
|
if test "$cfg_with_cli_only" == "yes"; then
|
||||||
grep -q 'DVDISASTER_GUI_FILE' "$cfile" && continue
|
grep -q 'DVDISASTER_GUI_FILE' "$cfile" && continue
|
||||||
fi
|
fi
|
||||||
cfile_prefix=`echo $cfile | sed -e 's/\.c//'`
|
cfile_prefix=`echo $cfile | sed -e 's/\.c//'`
|
||||||
@@ -172,7 +196,7 @@ done
|
|||||||
echo
|
echo
|
||||||
echo -e "\nCFG_CFILES = $cfiles" >> Makefile.config
|
echo -e "\nCFG_CFILES = $cfiles" >> Makefile.config
|
||||||
echo "CFG_OFILES = $ofiles" >> Makefile.config
|
echo "CFG_OFILES = $ofiles" >> Makefile.config
|
||||||
if [ "$CLI_ONLY" != 1 ]; then
|
if test "$cfg_with_cli_only" != "yes"; then
|
||||||
echo "ICONS = src/inlined-icons.h" >> Makefile.config
|
echo "ICONS = src/inlined-icons.h" >> Makefile.config
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
1453
locale/cs.po
1453
locale/cs.po
File diff suppressed because it is too large
Load Diff
1498
locale/de.po
1498
locale/de.po
File diff suppressed because it is too large
Load Diff
1032
locale/it.po
1032
locale/it.po
File diff suppressed because it is too large
Load Diff
1294
locale/pt_BR.po
1294
locale/pt_BR.po
File diff suppressed because it is too large
Load Diff
1303
locale/ru.po
1303
locale/ru.po
File diff suppressed because it is too large
Load Diff
1140
locale/sv.po
1140
locale/sv.po
File diff suppressed because it is too large
Load Diff
@@ -470,7 +470,7 @@ function PACKAGE()
|
|||||||
echo "CFG_VERSION = $VERSION" >> Makefile.config
|
echo "CFG_VERSION = $VERSION" >> Makefile.config
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add -D$1=$2 to CFG_OTHER_OPTIONS
|
# Add -D$1="$2" to CFG_OTHER_OPTIONS
|
||||||
|
|
||||||
function DEFINE_STRING()
|
function DEFINE_STRING()
|
||||||
{
|
{
|
||||||
@@ -483,6 +483,19 @@ function DEFINE_STRING()
|
|||||||
CFG_OTHER_OPTIONS="$CFG_OTHER_OPTIONS -D$1=\\\"$2\\\""
|
CFG_OTHER_OPTIONS="$CFG_OTHER_OPTIONS -D$1=\\\"$2\\\""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Add -D$1=$2 to CFG_OTHER_OPTIONS
|
||||||
|
|
||||||
|
function DEFINE_INT()
|
||||||
|
{
|
||||||
|
if test -z "$1" || test -z "$2"; then
|
||||||
|
echo "DEFINE_INT $1 $2:"
|
||||||
|
echo " needs two arguments"
|
||||||
|
exit 1;
|
||||||
|
fi
|
||||||
|
|
||||||
|
CFG_OTHER_OPTIONS="$CFG_OTHER_OPTIONS -D$1=$2"
|
||||||
|
}
|
||||||
|
|
||||||
# Add CFG_$1 = $2 to makefile
|
# Add CFG_$1 = $2 to makefile
|
||||||
|
|
||||||
function DEFINE_VAR()
|
function DEFINE_VAR()
|
||||||
@@ -729,15 +742,15 @@ function GET_DIR()
|
|||||||
# Try to compile conftest.c
|
# Try to compile conftest.c
|
||||||
|
|
||||||
function try_compile()
|
function try_compile()
|
||||||
{ echo "$CC $CFG_CFLAGS conftest.c $CFG_LDFLAGS $CFG_LIBS -lm -o conftest" >>$LOGFILE
|
{ echo "$CC $CFG_CFLAGS -Wno-error conftest.c $CFG_LDFLAGS $CFG_LIBS -lm -o conftest" >>$LOGFILE
|
||||||
cat conftest.c >>$LOGFILE
|
cat conftest.c >>$LOGFILE
|
||||||
{ (eval "$CC $CFG_CFLAGS conftest.c $CFG_LDFLAGS $CFG_LIBS -lm -o conftest") 2>>$LOGFILE; } && test -s conftest
|
{ (eval "$CC $CFG_CFLAGS -Wno-error conftest.c $CFG_LDFLAGS $CFG_LIBS -lm -o conftest") 2>>$LOGFILE; } && test -s conftest
|
||||||
}
|
}
|
||||||
|
|
||||||
function try_preprocess()
|
function try_preprocess()
|
||||||
{ echo "$CC $CFG_CFLAGS -E conftest.c -o conftest.out" >>$LOGFILE
|
{ echo "$CC $CFG_CFLAGS -Wno-error -E conftest.c -o conftest.out" >>$LOGFILE
|
||||||
cat conftest.c >>$LOGFILE
|
cat conftest.c >>$LOGFILE
|
||||||
{ (eval "$CC $CFG_CFLAGS -E conftest.c -o conftest.out") 2>>$LOGFILE; } && test -s conftest.out
|
{ (eval "$CC $CFG_CFLAGS -Wno-error -E conftest.c -o conftest.out") 2>>$LOGFILE; } && test -s conftest.out
|
||||||
}
|
}
|
||||||
|
|
||||||
# Try to compile a main() with a given function
|
# Try to compile a main() with a given function
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
build=$(grep BUILDNUM $1 2>/dev/null | cut -d\ -f3)
|
build=$(grep BUILDNUM $1 2>/dev/null | cut -d\ -f3)
|
||||||
build=$((build+1))
|
build=$((build+1))
|
||||||
cat >$1 <<EOF
|
cat >$1 <<EOF
|
||||||
#ifdef CLI
|
#ifdef WITH_CLI_ONLY_YES
|
||||||
#define FLAVOR NOGUI
|
#define FLAVOR NOGUI
|
||||||
#else
|
#else
|
||||||
#define FLAVOR GUI
|
#define FLAVOR GUI
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ find_dotfile:
|
|||||||
* Update color string for the <span color="#f00baa">...</span> string
|
* Update color string for the <span color="#f00baa">...</span> string
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void UpdateMarkup(char **string, GdkColor *color)
|
void UpdateMarkup(char **string, GdkColor *color)
|
||||||
{ int hexval;
|
{ int hexval;
|
||||||
|
|
||||||
@@ -339,7 +339,7 @@ void ReadDotfile()
|
|||||||
if(!strcmp(symbol, "verbose")) { Closure->verbose = atoi(value); continue; }
|
if(!strcmp(symbol, "verbose")) { Closure->verbose = atoi(value); continue; }
|
||||||
if(!strcmp(symbol, "welcome-msg")) { Closure->welcomeMessage = atoi(value); continue; }
|
if(!strcmp(symbol, "welcome-msg")) { Closure->welcomeMessage = atoi(value); continue; }
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!strcmp(symbol, "positive-text")) { get_color(Closure->greenText, value);
|
if(!strcmp(symbol, "positive-text")) { get_color(Closure->greenText, value);
|
||||||
UpdateMarkup(&Closure->greenMarkup, Closure->greenText);
|
UpdateMarkup(&Closure->greenMarkup, Closure->greenText);
|
||||||
continue;
|
continue;
|
||||||
@@ -445,7 +445,7 @@ static void update_dotfile()
|
|||||||
g_fprintf(dotfile, "verbose: %d\n", Closure->verbose);
|
g_fprintf(dotfile, "verbose: %d\n", Closure->verbose);
|
||||||
g_fprintf(dotfile, "welcome-msg: %d\n\n", Closure->welcomeMessage);
|
g_fprintf(dotfile, "welcome-msg: %d\n\n", Closure->welcomeMessage);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
save_colors(dotfile, "positive-text", Closure->greenText);
|
save_colors(dotfile, "positive-text", Closure->greenText);
|
||||||
save_colors(dotfile, "negative-text", Closure->redText);
|
save_colors(dotfile, "negative-text", Closure->redText);
|
||||||
save_colors(dotfile, "bar-color", Closure->barColor);
|
save_colors(dotfile, "bar-color", Closure->barColor);
|
||||||
@@ -566,7 +566,7 @@ void InitClosure()
|
|||||||
Closure->bdSize3 = Closure->savedBDSize3 = BDXL_TL_SIZE;
|
Closure->bdSize3 = Closure->savedBDSize3 = BDXL_TL_SIZE;
|
||||||
Closure->bdSize4 = Closure->savedBDSize4 = BDXL_QL_SIZE;
|
Closure->bdSize4 = Closure->savedBDSize4 = BDXL_QL_SIZE;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->logString = g_string_sized_new(1024);
|
Closure->logString = g_string_sized_new(1024);
|
||||||
Closure->logLock = g_malloc0(sizeof(GMutex));
|
Closure->logLock = g_malloc0(sizeof(GMutex));
|
||||||
g_mutex_init(Closure->logLock);
|
g_mutex_init(Closure->logLock);
|
||||||
@@ -633,7 +633,7 @@ void cond_free_ptr_array(GPtrArray *a)
|
|||||||
|
|
||||||
void FreeClosure()
|
void FreeClosure()
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
/* in CLI-only mode, always update dotfile */
|
/* in CLI-only mode, always update dotfile */
|
||||||
@@ -664,7 +664,7 @@ void FreeClosure()
|
|||||||
cond_free(Closure->dDumpDir);
|
cond_free(Closure->dDumpDir);
|
||||||
cond_free(Closure->dDumpPrefix);
|
cond_free(Closure->dDumpPrefix);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->prefsContext)
|
if(Closure->prefsContext)
|
||||||
FreePreferences(Closure->prefsContext);
|
FreePreferences(Closure->prefsContext);
|
||||||
|
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ void PrintCrcBuf(CrcBuf *cb)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
PrintLog("CrcBuf contents, image path %s:\n", cb->imageName ? cb->imageName : "none (medium)" );
|
PrintLog("CrcBuf contents, image path %s:\n", cb->imageName ? cb->imageName : "none (medium)" );
|
||||||
PrintLog(" crcSize: %lld, dataSectors: %lld, coveredSectors: %lld, allSectors: %lld\n",
|
PrintLog(" crcSize: %" PRId64 ", dataSectors: %" PRId64 ", coveredSectors: %" PRId64 ", allSectors: %" PRId64 "\n",
|
||||||
cb->crcSize, cb->dataSectors, cb->coveredSectors, cb->allSectors);
|
cb->crcSize, cb->dataSectors, cb->coveredSectors, cb->allSectors);
|
||||||
|
|
||||||
PrintLog(" md5State:");
|
PrintLog(" md5State:");
|
||||||
@@ -258,5 +258,5 @@ void PrintCrcBuf(CrcBuf *cb)
|
|||||||
if(!GetBit(cb->valid, i))
|
if(!GetBit(cb->valid, i))
|
||||||
{ missing++;
|
{ missing++;
|
||||||
}
|
}
|
||||||
PrintLog(" missing crcs: %lld\n", missing);
|
PrintLog(" missing crcs: %" PRId64 "\n", missing);
|
||||||
}
|
}
|
||||||
|
|||||||
112
src/debug.c
112
src/debug.c
@@ -100,7 +100,7 @@ static void random_error1(Image *image, char *arg)
|
|||||||
|
|
||||||
if(block_sel[i] && block_idx[i]<image->sectorSize)
|
if(block_sel[i] && block_idx[i]<image->sectorSize)
|
||||||
{ if(!LargeSeek(image->file, (gint64)(2048*block_idx[i])))
|
{ if(!LargeSeek(image->file, (gint64)(2048*block_idx[i])))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),block_idx[i],strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),block_idx[i],strerror(errno));
|
||||||
|
|
||||||
CreateMissingSector(missing, block_idx[i], image->imageFP, FINGERPRINT_SECTOR, NULL);
|
CreateMissingSector(missing, block_idx[i], image->imageFP, FINGERPRINT_SECTOR, NULL);
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ static void random_error1(Image *image, char *arg)
|
|||||||
write_size = image->inLast;
|
write_size = image->inLast;
|
||||||
|
|
||||||
if(LargeWrite(image->file, missing, write_size) != write_size)
|
if(LargeWrite(image->file, missing, write_size) != write_size)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"),block_idx[i],strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"),block_idx[i],strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
block_idx[i]++;
|
block_idx[i]++;
|
||||||
@@ -188,12 +188,12 @@ static void random_error2(Image *image, char *arg)
|
|||||||
{ unsigned char missing[2048];
|
{ unsigned char missing[2048];
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
|
|
||||||
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
|
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
|
||||||
|
|
||||||
if(LargeWrite(image->file, missing, 2048) != 2048)
|
if(LargeWrite(image->file, missing, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -236,11 +236,11 @@ static void random_error2(Image *image, char *arg)
|
|||||||
else s = RS02EccSectorIndex(lay, i-eh->dataBytes, si);
|
else s = RS02EccSectorIndex(lay, i-eh->dataBytes, si);
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
|
|
||||||
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
|
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
|
||||||
if(LargeWrite(image->file, missing, 2048) != 2048)
|
if(LargeWrite(image->file, missing, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -360,12 +360,12 @@ static void random_error3(Image *image, char *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(!LargeSeek(file, (gint64)(2048*file_s))) // FIXME: wrong for ecc files
|
if(!LargeSeek(file, (gint64)(2048*file_s))) // FIXME: wrong for ecc files
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
|
|
||||||
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
|
CreateMissingSector(missing, s, image->imageFP, image->fpSector, NULL);
|
||||||
|
|
||||||
if(LargeWrite(file, missing, 2048) != 2048)
|
if(LargeWrite(file, missing, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -459,7 +459,7 @@ void Byteset(char *arg)
|
|||||||
byte = atoi(cpos+1);
|
byte = atoi(cpos+1);
|
||||||
|
|
||||||
if(s<0 || s>=image->sectorSize)
|
if(s<0 || s>=image->sectorSize)
|
||||||
Stop(_("Sector must be in range [0..%lld]\n"),image->sectorSize-1);
|
Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->sectorSize-1);
|
||||||
|
|
||||||
if(i<0 || i>=2048)
|
if(i<0 || i>=2048)
|
||||||
Stop(_("Byte position must be in range [0..2047]"));
|
Stop(_("Byte position must be in range [0..2047]"));
|
||||||
@@ -467,7 +467,7 @@ void Byteset(char *arg)
|
|||||||
if(byte<0 || byte>=256)
|
if(byte<0 || byte>=256)
|
||||||
Stop(_("Byte value must be in range [0..255]"));
|
Stop(_("Byte value must be in range [0..255]"));
|
||||||
|
|
||||||
PrintLog(_("Setting byte %d in sector %lld to value %d.\n"), i, s, byte);
|
PrintLog(_("Setting byte %d in sector %" PRId64 " to value %d.\n"), i, s, byte);
|
||||||
|
|
||||||
/*** Set the byte */
|
/*** Set the byte */
|
||||||
|
|
||||||
@@ -521,9 +521,9 @@ void Erase(char *arg)
|
|||||||
else start = end = atoi(arg);
|
else start = end = atoi(arg);
|
||||||
|
|
||||||
if(start>end || start < 0 || end >= image->sectorSize)
|
if(start>end || start < 0 || end >= image->sectorSize)
|
||||||
Stop(_("Sectors must be in range [0..%lld].\n"),image->sectorSize-1);
|
Stop(_("Sectors must be in range [0..%" PRId64 "].\n"),image->sectorSize-1);
|
||||||
|
|
||||||
PrintLog(_("Erasing sectors [%lld,%lld]\n"),start,end);
|
PrintLog(_("Erasing sectors [%" PRId64 ",%" PRId64 "]\n"),start,end);
|
||||||
|
|
||||||
/*** Erase them. */
|
/*** Erase them. */
|
||||||
|
|
||||||
@@ -542,7 +542,7 @@ void Erase(char *arg)
|
|||||||
n = LargeWrite(image->file, missing, m);
|
n = LargeWrite(image->file, missing, m);
|
||||||
|
|
||||||
if(n != m)
|
if(n != m)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"),s,strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"),s,strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
/*** Clean up */
|
/*** Clean up */
|
||||||
@@ -569,9 +569,9 @@ void TruncateImageFile(char *arg)
|
|||||||
end = atoi(arg);
|
end = atoi(arg);
|
||||||
|
|
||||||
if(end >= image->sectorSize)
|
if(end >= image->sectorSize)
|
||||||
Stop(_("New length must be in range [0..%lld].\n"),image->sectorSize-1);
|
Stop(_("New length must be in range [0..%" PRId64 "].\n"),image->sectorSize-1);
|
||||||
|
|
||||||
PrintLog(_("Truncating image to %lld sectors.\n"),end);
|
PrintLog(_("Truncating image to %" PRId64 " sectors.\n"),end);
|
||||||
|
|
||||||
/*** Truncate it. */
|
/*** Truncate it. */
|
||||||
|
|
||||||
@@ -607,10 +607,10 @@ void RandomImage(char *image_name, char *n_sectors, int mark)
|
|||||||
|
|
||||||
/*** Print banner */
|
/*** Print banner */
|
||||||
|
|
||||||
PrintLog(_("\nCreating random image with %lld sectors.\n\n"
|
PrintLog(_("\nCreating random image with %" PRId64 " sectors.\n\n"
|
||||||
"There is no need for permanently storing this image;\n"
|
"There is no need for permanently storing this image;\n"
|
||||||
"you can always reproduce it by calling\n"
|
"you can always reproduce it by calling\n"
|
||||||
"dvdisaster --debug %s %lld --random-seed %d\n\n"),
|
"dvdisaster --debug %s %" PRId64 " --random-seed %d\n\n"),
|
||||||
sectors,
|
sectors,
|
||||||
mark ? "--marked-image" : "--random-image",
|
mark ? "--marked-image" : "--random-image",
|
||||||
sectors, Closure->randomSeed);
|
sectors, Closure->randomSeed);
|
||||||
@@ -659,7 +659,7 @@ void RandomImage(char *image_name, char *n_sectors, int mark)
|
|||||||
s++;
|
s++;
|
||||||
|
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"),s,strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"),s,strerror(errno));
|
||||||
|
|
||||||
percent = (100*s)/sectors;
|
percent = (100*s)/sectors;
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
@@ -697,20 +697,20 @@ void ZeroUnreadable(void)
|
|||||||
{ int n = LargeRead(image->file, buf, 2048);
|
{ int n = LargeRead(image->file, buf, 2048);
|
||||||
|
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Could not read image sector %lld:\n%s\n"),s,strerror(errno));
|
Stop(_("Could not read image sector %" PRId64 ":\n%s\n"),s,strerror(errno));
|
||||||
|
|
||||||
/* Replace the dead sector marker */
|
/* Replace the dead sector marker */
|
||||||
|
|
||||||
if(CheckForMissingSector(buf, s, image->imageFP, FINGERPRINT_SECTOR) != SECTOR_PRESENT)
|
if(CheckForMissingSector(buf, s, image->imageFP, FINGERPRINT_SECTOR) != SECTOR_PRESENT)
|
||||||
{
|
{
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),s,strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),s,strerror(errno));
|
||||||
|
|
||||||
n = LargeWrite(image->file, zeros, 2048);
|
n = LargeWrite(image->file, zeros, 2048);
|
||||||
n=2048;
|
n=2048;
|
||||||
|
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"),s,strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"),s,strerror(errno));
|
||||||
|
|
||||||
cnt++;
|
cnt++;
|
||||||
}
|
}
|
||||||
@@ -722,7 +722,7 @@ void ZeroUnreadable(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintProgress(_("%lld \"unreadable sector\" markers replaced.\n"), cnt);
|
PrintProgress(_("%" PRId64 " \"unreadable sector\" markers replaced.\n"), cnt);
|
||||||
|
|
||||||
CloseImage(image);
|
CloseImage(image);
|
||||||
}
|
}
|
||||||
@@ -799,16 +799,16 @@ void ShowHeader(char *arg)
|
|||||||
sector = atoi(arg);
|
sector = atoi(arg);
|
||||||
|
|
||||||
if(sector < 0 || sector >= image->sectorSize)
|
if(sector < 0 || sector >= image->sectorSize)
|
||||||
Stop(_("Sector must be in range [0..%lld]\n"),image->sectorSize-1);
|
Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->sectorSize-1);
|
||||||
|
|
||||||
/*** Load it. */
|
/*** Load it. */
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*sector)))
|
if(!LargeSeek(image->file, (gint64)(2048*sector)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),sector,strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),sector,strerror(errno));
|
||||||
|
|
||||||
n = LargeRead(image->file, eh, 2048);
|
n = LargeRead(image->file, eh, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),sector,strerror(errno));
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),sector,strerror(errno));
|
||||||
|
|
||||||
/*** Clean up */
|
/*** Clean up */
|
||||||
|
|
||||||
@@ -840,18 +840,18 @@ void ShowSector(char *arg)
|
|||||||
sector = atoi(arg);
|
sector = atoi(arg);
|
||||||
|
|
||||||
if(sector < 0 || sector >= image->sectorSize)
|
if(sector < 0 || sector >= image->sectorSize)
|
||||||
Stop(_("Sector must be in range [0..%lld]\n"),image->sectorSize-1);
|
Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->sectorSize-1);
|
||||||
|
|
||||||
PrintLog(_("Contents of sector %lld:\n\n"),sector);
|
PrintLog(_("Contents of sector %" PRId64 ":\n\n"),sector);
|
||||||
|
|
||||||
/*** Show it. */
|
/*** Show it. */
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*sector)))
|
if(!LargeSeek(image->file, (gint64)(2048*sector)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),sector,strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),sector,strerror(errno));
|
||||||
|
|
||||||
n = LargeRead(image->file, buf, 2048);
|
n = LargeRead(image->file, buf, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),sector,strerror(errno));
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),sector,strerror(errno));
|
||||||
|
|
||||||
if(Closure->debugCDump)
|
if(Closure->debugCDump)
|
||||||
CDump(buf, sector, 2048, 16);
|
CDump(buf, sector, 2048, 16);
|
||||||
@@ -888,10 +888,10 @@ void ReadSector(char *arg)
|
|||||||
if(sector < 0 || sector >= image->dh->sectors)
|
if(sector < 0 || sector >= image->dh->sectors)
|
||||||
{ CloseImage(image);
|
{ CloseImage(image);
|
||||||
FreeAlignedBuffer(ab);
|
FreeAlignedBuffer(ab);
|
||||||
Stop(_("Sector must be in range [0..%lld]\n"),image->dh->sectors-1);
|
Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->dh->sectors-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintLog(_("Contents of sector %lld:\n\n"),sector);
|
PrintLog(_("Contents of sector %" PRId64 ":\n\n"),sector);
|
||||||
|
|
||||||
/*** Read it. */
|
/*** Read it. */
|
||||||
|
|
||||||
@@ -902,7 +902,7 @@ void ReadSector(char *arg)
|
|||||||
if(status)
|
if(status)
|
||||||
{ CloseImage(image);
|
{ CloseImage(image);
|
||||||
FreeAlignedBuffer(ab);
|
FreeAlignedBuffer(ab);
|
||||||
Stop(_("Failed reading sector %lld: %s"),sector,strerror(errno));
|
Stop(_("Failed reading sector %" PRId64 ": %s"),sector,strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Closure->debugCDump)
|
if(Closure->debugCDump)
|
||||||
@@ -951,10 +951,10 @@ void RawSector(char *arg)
|
|||||||
if(lba < 0 || lba >= image->dh->sectors)
|
if(lba < 0 || lba >= image->dh->sectors)
|
||||||
{ CloseImage(image);
|
{ CloseImage(image);
|
||||||
FreeAlignedBuffer(ab);
|
FreeAlignedBuffer(ab);
|
||||||
Stop(_("Sector must be in range [0..%lld]\n"),image->dh->sectors-1);
|
Stop(_("Sector must be in range [0..%" PRId64 "]\n"),image->dh->sectors-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintLog(_("Contents of sector %lld:\n\n"),lba);
|
PrintLog(_("Contents of sector %" PRId64 ":\n\n"),lba);
|
||||||
|
|
||||||
/*** Try the raw read */
|
/*** Try the raw read */
|
||||||
|
|
||||||
@@ -1162,7 +1162,7 @@ void CopySector(char *arg)
|
|||||||
|
|
||||||
LargeStat(from_path, §ors); sectors /= 2048;
|
LargeStat(from_path, §ors); sectors /= 2048;
|
||||||
if(from_sector<0 || from_sector>sectors-1)
|
if(from_sector<0 || from_sector>sectors-1)
|
||||||
Stop(_("Source sector must be in range [0..%lld]\n"), sectors-1);
|
Stop(_("Source sector must be in range [0..%" PRId64 "]\n"), sectors-1);
|
||||||
|
|
||||||
|
|
||||||
if(!(to = LargeOpen(to_path, O_WRONLY, IMG_PERMS)))
|
if(!(to = LargeOpen(to_path, O_WRONLY, IMG_PERMS)))
|
||||||
@@ -1170,27 +1170,27 @@ void CopySector(char *arg)
|
|||||||
|
|
||||||
LargeStat(to_path, §ors); sectors /= 2048;
|
LargeStat(to_path, §ors); sectors /= 2048;
|
||||||
if(to_sector<0 || to_sector>sectors-1)
|
if(to_sector<0 || to_sector>sectors-1)
|
||||||
Stop(_("Destination sector must be in range [0..%lld]\n"), sectors-1);
|
Stop(_("Destination sector must be in range [0..%" PRId64 "]\n"), sectors-1);
|
||||||
|
|
||||||
/*** Copy the sector */
|
/*** Copy the sector */
|
||||||
|
|
||||||
PrintLog(_("Copying sector %lld from %s to sector %lld in %s.\n"),
|
PrintLog(_("Copying sector %" PRId64 " from %s to sector %" PRId64 " in %s.\n"),
|
||||||
from_sector, from_path, to_sector, to_path);
|
from_sector, from_path, to_sector, to_path);
|
||||||
|
|
||||||
if(!LargeSeek(from, (gint64)(2048*from_sector)))
|
if(!LargeSeek(from, (gint64)(2048*from_sector)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
|
||||||
from_sector, strerror(errno));
|
from_sector, strerror(errno));
|
||||||
|
|
||||||
if(LargeRead(from, buf, 2048) != 2048)
|
if(LargeRead(from, buf, 2048) != 2048)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),
|
||||||
from_sector, strerror(errno));
|
from_sector, strerror(errno));
|
||||||
|
|
||||||
if(!LargeSeek(to, (gint64)(2048*to_sector)))
|
if(!LargeSeek(to, (gint64)(2048*to_sector)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
|
||||||
to_sector, strerror(errno));
|
to_sector, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(to, buf, 2048) != 2048)
|
if(LargeWrite(to, buf, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"),
|
||||||
to_sector, strerror(errno));
|
to_sector, strerror(errno));
|
||||||
|
|
||||||
/*** Clean up */
|
/*** Clean up */
|
||||||
@@ -1233,9 +1233,9 @@ void MergeImages(char *arg, int mode)
|
|||||||
|
|
||||||
/*** Compare/merge the images */
|
/*** Compare/merge the images */
|
||||||
|
|
||||||
if(!mode) PrintLog("Comparing %s (%lld sectors) with %s (%lld sectors).\n",
|
if(!mode) PrintLog("Comparing %s (%" PRId64 " sectors) with %s (%" PRId64 " sectors).\n",
|
||||||
left_path, left_sectors, right_path, right_sectors);
|
left_path, left_sectors, right_path, right_sectors);
|
||||||
else PrintLog("Merging %s (%lld sectors) with %s (%lld sectors).\n",
|
else PrintLog("Merging %s (%" PRId64 " sectors) with %s (%" PRId64 " sectors).\n",
|
||||||
left_path, left_sectors, right_path, right_sectors);
|
left_path, left_sectors, right_path, right_sectors);
|
||||||
|
|
||||||
/*** Compare them */
|
/*** Compare them */
|
||||||
@@ -1249,33 +1249,33 @@ void MergeImages(char *arg, int mode)
|
|||||||
{ unsigned char left_buf[2048], right_buf[2048];
|
{ unsigned char left_buf[2048], right_buf[2048];
|
||||||
|
|
||||||
if(LargeRead(left, left_buf, 2048) != 2048)
|
if(LargeRead(left, left_buf, 2048) != 2048)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),
|
||||||
s, strerror(errno));
|
s, strerror(errno));
|
||||||
|
|
||||||
if(LargeRead(right, right_buf, 2048) != 2048)
|
if(LargeRead(right, right_buf, 2048) != 2048)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),
|
||||||
s, strerror(errno));
|
s, strerror(errno));
|
||||||
|
|
||||||
if(memcmp(left_buf, right_buf, 2048))
|
if(memcmp(left_buf, right_buf, 2048))
|
||||||
{
|
{
|
||||||
if(CheckForMissingSector(left_buf, s, NULL, 0) != SECTOR_PRESENT)
|
if(CheckForMissingSector(left_buf, s, NULL, 0) != SECTOR_PRESENT)
|
||||||
{ if(!mode) PrintLog("< Sector %lld missing\n", s);
|
{ if(!mode) PrintLog("< Sector %" PRId64 " missing\n", s);
|
||||||
else
|
else
|
||||||
{ PrintLog("< Sector %lld missing; copied from %s.\n", s, right_path);
|
{ PrintLog("< Sector %" PRId64 " missing; copied from %s.\n", s, right_path);
|
||||||
if(!LargeSeek(left, (2048*s)))
|
if(!LargeSeek(left, (2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
|
||||||
s, strerror(errno));
|
s, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(left, right_buf, 2048) != 2048)
|
if(LargeWrite(left, right_buf, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"),
|
||||||
s, strerror(errno));
|
s, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(CheckForMissingSector(right_buf, s, NULL, 0) != SECTOR_PRESENT)
|
else if(CheckForMissingSector(right_buf, s, NULL, 0) != SECTOR_PRESENT)
|
||||||
{ PrintLog("> Sector %lld missing\n", s);
|
{ PrintLog("> Sector %" PRId64 " missing\n", s);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog("! Sector %lld differs in images\n", s);
|
{ PrintLog("! Sector %" PRId64 " differs in images\n", s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1287,27 +1287,27 @@ void MergeImages(char *arg, int mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(left_sectors > right_sectors)
|
if(left_sectors > right_sectors)
|
||||||
{ PrintLog("%lld sectors missing at the end of %s\n",
|
{ PrintLog("%" PRId64 " sectors missing at the end of %s\n",
|
||||||
left_sectors-right_sectors, right_path);
|
left_sectors-right_sectors, right_path);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(left_sectors < right_sectors)
|
if(left_sectors < right_sectors)
|
||||||
{ if(!mode)
|
{ if(!mode)
|
||||||
PrintLog("%lld sectors missing at the end of %s\n",
|
PrintLog("%" PRId64 " sectors missing at the end of %s\n",
|
||||||
right_sectors-left_sectors, left_path);
|
right_sectors-left_sectors, left_path);
|
||||||
else
|
else
|
||||||
{ unsigned char buf[2048];
|
{ unsigned char buf[2048];
|
||||||
|
|
||||||
PrintLog("Transferring %lld sectors from the end of %s to %s.\n",
|
PrintLog("Transferring %" PRId64 " sectors from the end of %s to %s.\n",
|
||||||
right_sectors-left_sectors, right_path, left_path);
|
right_sectors-left_sectors, right_path, left_path);
|
||||||
|
|
||||||
for(s=left_sectors; s<right_sectors; s++)
|
for(s=left_sectors; s<right_sectors; s++)
|
||||||
{ if(LargeRead(right, buf, 2048) != 2048)
|
{ if(LargeRead(right, buf, 2048) != 2048)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),
|
||||||
s, strerror(errno));
|
s, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(left, buf, 2048) != 2048)
|
if(LargeWrite(left, buf, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"),
|
||||||
s, strerror(errno));
|
s, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ int CheckForMissingSectors(unsigned char *buf, guint64 sector,
|
|||||||
*** Dialogue for indicating problem with the missing sector
|
*** Dialogue for indicating problem with the missing sector
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
static void insert_buttons(GtkDialog *dialog)
|
static void insert_buttons(GtkDialog *dialog)
|
||||||
{
|
{
|
||||||
gtk_dialog_add_buttons(dialog,
|
gtk_dialog_add_buttons(dialog,
|
||||||
@@ -271,7 +271,7 @@ static void insert_buttons(GtkDialog *dialog)
|
|||||||
|
|
||||||
void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int source_type, int *number)
|
void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int source_type, int *number)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int answer;
|
int answer;
|
||||||
#endif
|
#endif
|
||||||
guint64 recorded_number;
|
guint64 recorded_number;
|
||||||
@@ -293,7 +293,7 @@ void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int sou
|
|||||||
|
|
||||||
/* In CLI mode, only report the first unrecoverable sector unless verbose is given. */
|
/* In CLI mode, only report the first unrecoverable sector unless verbose is given. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode && !Closure->verbose && *number > 0)
|
if(!Closure->guiMode && !Closure->verbose && *number > 0)
|
||||||
#else
|
#else
|
||||||
if(!Closure->verbose && *number > 0)
|
if(!Closure->verbose && *number > 0)
|
||||||
@@ -313,7 +313,7 @@ void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int sou
|
|||||||
vol_label = get_volume_label(buf);
|
vol_label = get_volume_label(buf);
|
||||||
if(vol_label)
|
if(vol_label)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
label_msg = g_strdup_printf(_("\n\nThe label of the original (defective) medium was:\n%s\n\n"), vol_label);
|
label_msg = g_strdup_printf(_("\n\nThe label of the original (defective) medium was:\n%s\n\n"), vol_label);
|
||||||
else
|
else
|
||||||
@@ -339,11 +339,11 @@ void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int sou
|
|||||||
"repaired by dvdisaster. Also it will not be possible to create\n"
|
"repaired by dvdisaster. Also it will not be possible to create\n"
|
||||||
"error correction data for it. Sorry for the bad news.\n");
|
"error correction data for it. Sorry for the bad news.\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
PrintLogWithAsterisks(msg,sector, recorded_number, label_msg);
|
PrintLogWithAsterisks(msg,sector, recorded_number, label_msg);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
|
{ answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
|
||||||
sector, recorded_number, label_msg);
|
sector, recorded_number, label_msg);
|
||||||
@@ -366,11 +366,11 @@ void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int sou
|
|||||||
"repaired by dvdisaster. Also it will not be possible to create\n"
|
"repaired by dvdisaster. Also it will not be possible to create\n"
|
||||||
"error correction data for it. Sorry for the bad news.\n");
|
"error correction data for it. Sorry for the bad news.\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
PrintLogWithAsterisks(msg,sector, label_msg);
|
PrintLogWithAsterisks(msg,sector, label_msg);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
|
{ answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
|
||||||
sector, label_msg);
|
sector, label_msg);
|
||||||
@@ -395,11 +395,11 @@ void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int sou
|
|||||||
"repaired by dvdisaster. Also it will not be possible to create\n"
|
"repaired by dvdisaster. Also it will not be possible to create\n"
|
||||||
"error correction data for it. Sorry for the bad news.\n");
|
"error correction data for it. Sorry for the bad news.\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
PrintLogWithAsterisks(msg, sector);
|
PrintLogWithAsterisks(msg, sector);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
|
{ answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
|
||||||
sector);
|
sector);
|
||||||
@@ -419,11 +419,11 @@ void ExplainMissingSector(unsigned char *buf, guint64 sector, int error, int sou
|
|||||||
"in the ecc file are missing and its error correction\n"
|
"in the ecc file are missing and its error correction\n"
|
||||||
"capacity will be reduced.\n");
|
"capacity will be reduced.\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
PrintLogWithAsterisks(msg, sector);
|
PrintLogWithAsterisks(msg, sector);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
|
{ answer = ModalDialog(GTK_MESSAGE_ERROR, GTK_BUTTONS_NONE, insert_buttons, msg,
|
||||||
sector);
|
sector);
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ typedef enum
|
|||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{ int mode = MODE_NONE;
|
{ int mode = MODE_NONE;
|
||||||
int sequence = MODE_NONE;
|
int sequence = MODE_NONE;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int devices_queried = FALSE;
|
int devices_queried = FALSE;
|
||||||
#endif
|
#endif
|
||||||
char *debug_arg = NULL;
|
char *debug_arg = NULL;
|
||||||
@@ -196,7 +196,7 @@ int main(int argc, char *argv[])
|
|||||||
wrong packing. */
|
wrong packing. */
|
||||||
|
|
||||||
if(sizeof(EccHeader) != 4096)
|
if(sizeof(EccHeader) != 4096)
|
||||||
Stop("sizeof(EccHeader) is %d, but must be 4096.\n", sizeof(EccHeader));
|
Stop("sizeof(EccHeader) is %zu, but must be 4096.\n", sizeof(EccHeader));
|
||||||
|
|
||||||
/*** CPU type detection. Must be done before parsing the options
|
/*** CPU type detection. Must be done before parsing the options
|
||||||
as some may be CPU-related. */
|
as some may be CPU-related. */
|
||||||
@@ -534,7 +534,7 @@ int main(int argc, char *argv[])
|
|||||||
Closure->prefetchSectors = atoi(optarg);
|
Closure->prefetchSectors = atoi(optarg);
|
||||||
if( Closure->prefetchSectors < 32
|
if( Closure->prefetchSectors < 32
|
||||||
|| Closure->prefetchSectors > MAX_PREFETCH_CACHE_SIZE)
|
|| Closure->prefetchSectors > MAX_PREFETCH_CACHE_SIZE)
|
||||||
Stop(_("--prefetch-sectors must be in range 32...%s"),
|
Stop(_("--prefetch-sectors must be in range 32...%d"),
|
||||||
MAX_PREFETCH_CACHE_SIZE);
|
MAX_PREFETCH_CACHE_SIZE);
|
||||||
break;
|
break;
|
||||||
case MODIFIER_RANDOM_SEED:
|
case MODIFIER_RANDOM_SEED:
|
||||||
@@ -763,7 +763,7 @@ int main(int argc, char *argv[])
|
|||||||
if(!Closure->device && mode == MODE_SEQUENCE
|
if(!Closure->device && mode == MODE_SEQUENCE
|
||||||
&& (sequence & (1<<MODE_READ | 1<<MODE_SCAN)))
|
&& (sequence & (1<<MODE_READ | 1<<MODE_SCAN)))
|
||||||
{ Closure->device = DefaultDevice();
|
{ Closure->device = DefaultDevice();
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
devices_queried = TRUE;
|
devices_queried = TRUE;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -806,8 +806,8 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ if(image->inLast == 2048)
|
{ if(image->inLast == 2048)
|
||||||
PrintLog(_(": %lld medium sectors.\n"), image->sectorSize);
|
PrintLog(_(": %" PRId64 " medium sectors.\n"), image->sectorSize);
|
||||||
else PrintLog(_(": %lld medium sectors and %d bytes.\n"),
|
else PrintLog(_(": %" PRId64 " medium sectors and %d bytes.\n"),
|
||||||
image->sectorSize-1, image->inLast);
|
image->sectorSize-1, image->inLast);
|
||||||
}
|
}
|
||||||
image = OpenEccFileForImage(image, Closure->eccName, O_RDWR, IMG_PERMS);
|
image = OpenEccFileForImage(image, Closure->eccName, O_RDWR, IMG_PERMS);
|
||||||
@@ -920,7 +920,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
/*** If no mode was selected, print the help screen. */
|
/*** If no mode was selected, print the help screen. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(mode == MODE_HELP)
|
if(mode == MODE_HELP)
|
||||||
#else
|
#else
|
||||||
if(mode == MODE_HELP || mode == MODE_NONE)
|
if(mode == MODE_HELP || mode == MODE_NONE)
|
||||||
@@ -1019,7 +1019,7 @@ int main(int argc, char *argv[])
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/* If no mode was selected at the command line,
|
/* If no mode was selected at the command line,
|
||||||
start the graphical user interface. */
|
start the graphical user interface. */
|
||||||
|
|
||||||
|
|||||||
117
src/dvdisaster.h
117
src/dvdisaster.h
@@ -38,9 +38,22 @@
|
|||||||
|
|
||||||
#define _GNU_SOURCE
|
#define _GNU_SOURCE
|
||||||
|
|
||||||
|
/* under MinGW, __attribute__ format printf doesn't work and outputs warnings for %lld,
|
||||||
|
* even if it's supported and doesn't output any warning under -Wformat when directly
|
||||||
|
* used with the real printf() func. However 'gnu_printf' works, see
|
||||||
|
* https://github.com/ocornut/imgui/issues/3592
|
||||||
|
*/
|
||||||
|
#ifdef __MINGW32__ /* defined under 32 and 64 bits mingw */
|
||||||
|
# define PRINTF_FLAVOR gnu_printf
|
||||||
|
#else
|
||||||
|
# define PRINTF_FLAVOR printf
|
||||||
|
#endif
|
||||||
|
#define PRINTF_FORMAT2(ARG1,ARG2) __attribute__((format(PRINTF_FLAVOR, ARG1, ARG2)))
|
||||||
|
#define PRINTF_FORMAT(ARG) PRINTF_FORMAT2(ARG,ARG+1)
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <glib/gprintf.h>
|
#include <glib/gprintf.h>
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -48,6 +61,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
#include <inttypes.h> /* PRId64 et. al */
|
||||||
#ifdef WITH_NLS_YES
|
#ifdef WITH_NLS_YES
|
||||||
#include <libintl.h>
|
#include <libintl.h>
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
@@ -72,8 +86,15 @@
|
|||||||
Note that these functions are even required when
|
Note that these functions are even required when
|
||||||
WITH_NLS_NO is set! */
|
WITH_NLS_NO is set! */
|
||||||
|
|
||||||
#define _(string) sgettext(string)
|
#ifndef WITH_DEBUG_PRINTF_FORMAT_YES
|
||||||
#define _utf(string) sgettext_utf8(string)
|
#define _(string) sgettext(string)
|
||||||
|
#define _utf(string) sgettext_utf8(string)
|
||||||
|
#else
|
||||||
|
/* disable sgettext() calls so that the compiler
|
||||||
|
can analyze printf format strings */
|
||||||
|
#define _(string) string
|
||||||
|
#define _utf(string) string
|
||||||
|
#endif
|
||||||
|
|
||||||
/* File permissions for images */
|
/* File permissions for images */
|
||||||
|
|
||||||
@@ -89,7 +110,7 @@
|
|||||||
#define round(x) rint(x)
|
#define round(x) rint(x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CLI
|
#ifdef WITH_CLI_ONLY_YES
|
||||||
#define STATUS_LABEL_OR_NULL NULL
|
#define STATUS_LABEL_OR_NULL NULL
|
||||||
#else
|
#else
|
||||||
#define STATUS_LABEL_OR_NULL Closure->status
|
#define STATUS_LABEL_OR_NULL Closure->status
|
||||||
@@ -290,7 +311,7 @@ typedef struct _GlobalClosure
|
|||||||
|
|
||||||
struct _CrcBuf *crcBuf; /* crcBuf of last image read */
|
struct _CrcBuf *crcBuf; /* crcBuf of last image read */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/*** GUI-related things */
|
/*** GUI-related things */
|
||||||
|
|
||||||
int guiMode; /* TRUE if GUI is active */
|
int guiMode; /* TRUE if GUI is active */
|
||||||
@@ -298,7 +319,7 @@ typedef struct _GlobalClosure
|
|||||||
#endif
|
#endif
|
||||||
int noMissingWarnings; /* suppress warnings about inconsistent missing sectors */
|
int noMissingWarnings; /* suppress warnings about inconsistent missing sectors */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
GtkWidget *logWidget; /* Dialog for the log display */
|
GtkWidget *logWidget; /* Dialog for the log display */
|
||||||
GtkScrolledWindow *logScroll; /* and its scrolled window */
|
GtkScrolledWindow *logScroll; /* and its scrolled window */
|
||||||
GtkTextBuffer *logBuffer; /* Text buffer for the log output */
|
GtkTextBuffer *logBuffer; /* Text buffer for the log output */
|
||||||
@@ -381,7 +402,7 @@ typedef struct _GlobalClosure
|
|||||||
GtkWidget *readLinearFootlineBox;
|
GtkWidget *readLinearFootlineBox;
|
||||||
#endif
|
#endif
|
||||||
gint64 crcErrors, readErrors; /* these are passed between threads and must therefore be global */
|
gint64 crcErrors, readErrors; /* these are passed between threads and must therefore be global */
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
|
|
||||||
/*** Widgets for the adaptive reading action */
|
/*** Widgets for the adaptive reading action */
|
||||||
|
|
||||||
@@ -529,7 +550,7 @@ int ProbeCacheLineSize();
|
|||||||
|
|
||||||
void InitClosure(void);
|
void InitClosure(void);
|
||||||
void LocalizedFileDefaults(void);
|
void LocalizedFileDefaults(void);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void UpdateMarkup(char**, GdkColor*);
|
void UpdateMarkup(char**, GdkColor*);
|
||||||
void DefaultColors(void);
|
void DefaultColors(void);
|
||||||
#endif
|
#endif
|
||||||
@@ -552,9 +573,9 @@ guint32 EDCCrc32(unsigned char*, int);
|
|||||||
/* Flags for CrcBuf->md5State */
|
/* Flags for CrcBuf->md5State */
|
||||||
|
|
||||||
#define MD5_INVALID 0
|
#define MD5_INVALID 0
|
||||||
#define MD5_BUILDING 1<<0
|
#define MD5_BUILDING (1<<0)
|
||||||
#define MD5_DATA_COMPLETE 1<<1
|
#define MD5_DATA_COMPLETE (1<<1)
|
||||||
#define MD5_IMAGE_COMPLETE 1<<2
|
#define MD5_IMAGE_COMPLETE (1<<2)
|
||||||
#define MD5_COMPLETE (MD5_DATA_COMPLETE | MD5_IMAGE_COMPLETE)
|
#define MD5_COMPLETE (MD5_DATA_COMPLETE | MD5_IMAGE_COMPLETE)
|
||||||
|
|
||||||
typedef struct _CrcBuf
|
typedef struct _CrcBuf
|
||||||
@@ -604,7 +625,7 @@ int CrcBufValid(CrcBuf*, struct _Image*, EccHeader*);
|
|||||||
|
|
||||||
void PrintCrcBuf(CrcBuf*);
|
void PrintCrcBuf(CrcBuf*);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/***
|
/***
|
||||||
*** curve.c
|
*** curve.c
|
||||||
***/
|
***/
|
||||||
@@ -656,7 +677,7 @@ void RedrawCurve(Curve*, int);
|
|||||||
|
|
||||||
void HexDump(unsigned char*, int, int);
|
void HexDump(unsigned char*, int, int);
|
||||||
void LaTeXify(gint32*, int, int);
|
void LaTeXify(gint32*, int, int);
|
||||||
void AppendToTextFile(char*,char*, ...);
|
void AppendToTextFile(char*,char*, ...) PRINTF_FORMAT(2);
|
||||||
void CopySector(char*);
|
void CopySector(char*);
|
||||||
void Byteset(char*);
|
void Byteset(char*);
|
||||||
void Erase(char*);
|
void Erase(char*);
|
||||||
@@ -715,7 +736,7 @@ void PrintEccHeader(EccHeader*);
|
|||||||
*** fix-window.c
|
*** fix-window.c
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void CreateFixWindow(GtkWidget*);
|
void CreateFixWindow(GtkWidget*);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -775,7 +796,7 @@ void FreeGaloisTables(GaloisTables*);
|
|||||||
ReedSolomonTables *CreateReedSolomonTables(GaloisTables*, gint32, gint32, int);
|
ReedSolomonTables *CreateReedSolomonTables(GaloisTables*, gint32, gint32, int);
|
||||||
void FreeReedSolomonTables(ReedSolomonTables*);
|
void FreeReedSolomonTables(ReedSolomonTables*);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/***
|
/***
|
||||||
*** help-dialogs.c
|
*** help-dialogs.c
|
||||||
***/
|
***/
|
||||||
@@ -801,8 +822,8 @@ LabelWithOnlineHelp* CreateLabelWithOnlineHelp(char*, char*);
|
|||||||
LabelWithOnlineHelp* CloneLabelWithOnlineHelp(LabelWithOnlineHelp*, char*);
|
LabelWithOnlineHelp* CloneLabelWithOnlineHelp(LabelWithOnlineHelp*, char*);
|
||||||
void FreeLabelWithOnlineHelp(LabelWithOnlineHelp*);
|
void FreeLabelWithOnlineHelp(LabelWithOnlineHelp*);
|
||||||
void SetOnlineHelpLinkText(LabelWithOnlineHelp*, char*);
|
void SetOnlineHelpLinkText(LabelWithOnlineHelp*, char*);
|
||||||
void AddHelpListItem(LabelWithOnlineHelp*, char*, ...);
|
void AddHelpListItem(LabelWithOnlineHelp*, char*, ...) PRINTF_FORMAT(2);
|
||||||
void AddHelpParagraph(LabelWithOnlineHelp*, char*, ...);
|
void AddHelpParagraph(LabelWithOnlineHelp*, char*, ...) PRINTF_FORMAT(2);
|
||||||
void AddHelpWidget(LabelWithOnlineHelp*, GtkWidget*);
|
void AddHelpWidget(LabelWithOnlineHelp*, GtkWidget*);
|
||||||
|
|
||||||
/* Specific online help dialogs */
|
/* Specific online help dialogs */
|
||||||
@@ -813,7 +834,7 @@ void ShowLog();
|
|||||||
void UpdateLog();
|
void UpdateLog();
|
||||||
void AboutDialog();
|
void AboutDialog();
|
||||||
|
|
||||||
void AboutText(GtkWidget*, char*, ...);
|
void AboutText(GtkWidget*, char*, ...) PRINTF_FORMAT(2);
|
||||||
void AboutLink(GtkWidget*, char*, char*);
|
void AboutLink(GtkWidget*, char*, char*);
|
||||||
void AboutTextWithLink(GtkWidget*, char*, char*);
|
void AboutTextWithLink(GtkWidget*, char*, char*);
|
||||||
#endif
|
#endif
|
||||||
@@ -964,7 +985,7 @@ int CountC2Errors(unsigned char*);
|
|||||||
|
|
||||||
void DefaultLogFile();
|
void DefaultLogFile();
|
||||||
void VPrintLogFile(char*, va_list);
|
void VPrintLogFile(char*, va_list);
|
||||||
void PrintLogFile(char*, ...);
|
void PrintLogFile(char*, ...) PRINTF_FORMAT(1);
|
||||||
|
|
||||||
/***
|
/***
|
||||||
*** maintenance.c
|
*** maintenance.c
|
||||||
@@ -1043,7 +1064,7 @@ void* malloc_ext(int,char*,int);
|
|||||||
void* realloc_ext(void*, int, char*, int);
|
void* realloc_ext(void*, int, char*, int);
|
||||||
void* try_malloc_ext(int,char*,int);
|
void* try_malloc_ext(int,char*,int);
|
||||||
char* strdup_ext(const char*,char*,int);
|
char* strdup_ext(const char*,char*,int);
|
||||||
char* strdup_printf_ext(char*, char*, int, ...);
|
char* strdup_printf_ext(char*, char*, int, ...) PRINTF_FORMAT2(2,4);
|
||||||
char* strdup_vprintf_ext(char*, va_list, char*, int);
|
char* strdup_vprintf_ext(char*, va_list, char*, int);
|
||||||
gchar* g_locale_to_utf8_ext(const gchar*, gssize, gsize*, gsize*, GError**, char*, int);
|
gchar* g_locale_to_utf8_ext(const gchar*, gssize, gsize*, gsize*, GError**, char*, int);
|
||||||
void free_ext(void*,char*,int);
|
void free_ext(void*,char*,int);
|
||||||
@@ -1053,7 +1074,7 @@ int forget(void*);
|
|||||||
|
|
||||||
void check_memleaks(void);
|
void check_memleaks(void);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/***
|
/***
|
||||||
*** menubar.c
|
*** menubar.c
|
||||||
***/
|
***/
|
||||||
@@ -1089,7 +1110,7 @@ typedef struct _Method
|
|||||||
void (*updateCksums)(Image*, gint64, unsigned char*);/* checksum while reading an image */
|
void (*updateCksums)(Image*, gint64, unsigned char*);/* checksum while reading an image */
|
||||||
int (*finalizeCksums)(Image*);
|
int (*finalizeCksums)(Image*);
|
||||||
void *ckSumClosure; /* working closure for above */
|
void *ckSumClosure; /* working closure for above */
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void (*createVerifyWindow)(struct _Method*, GtkWidget*);
|
void (*createVerifyWindow)(struct _Method*, GtkWidget*);
|
||||||
void (*createCreateWindow)(struct _Method*, GtkWidget*);
|
void (*createCreateWindow)(struct _Method*, GtkWidget*);
|
||||||
void (*createFixWindow)(struct _Method*, GtkWidget*);
|
void (*createFixWindow)(struct _Method*, GtkWidget*);
|
||||||
@@ -1101,7 +1122,7 @@ typedef struct _Method
|
|||||||
void (*readPreferences)(struct _Method*);
|
void (*readPreferences)(struct _Method*);
|
||||||
#endif
|
#endif
|
||||||
void (*destroy)(struct _Method*);
|
void (*destroy)(struct _Method*);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int tabWindowIndex; /* our position in the (invisible) notebook */
|
int tabWindowIndex; /* our position in the (invisible) notebook */
|
||||||
void *widgetList; /* linkage to window system */
|
void *widgetList; /* linkage to window system */
|
||||||
#endif
|
#endif
|
||||||
@@ -1128,59 +1149,59 @@ void gint64_to_uchar(unsigned char*, gint64);
|
|||||||
|
|
||||||
void CalcSectors(guint64, guint64*, int*);
|
void CalcSectors(guint64, guint64*, int*);
|
||||||
|
|
||||||
void PrintCLI(char*, ...);
|
void PrintCLI(char*, ...) PRINTF_FORMAT(1);
|
||||||
void PrintLog(char*, ...);
|
void PrintLog(char*, ...) PRINTF_FORMAT(1);
|
||||||
void PrintLogWithAsterisks(char*, ...);
|
void PrintLogWithAsterisks(char*, ...) PRINTF_FORMAT(1);
|
||||||
void Verbose(char*, ...);
|
void Verbose(char*, ...) PRINTF_FORMAT(1);
|
||||||
void PrintTimeToLog(GTimer*, char*, ...);
|
void PrintTimeToLog(GTimer*, char*, ...) PRINTF_FORMAT(2);
|
||||||
void PrintProgress(char*, ...);
|
void PrintProgress(char*, ...) PRINTF_FORMAT(1);
|
||||||
void ClearProgress(void);
|
void ClearProgress(void);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void PrintCLIorLabel(GtkLabel*, char*, ...);
|
void PrintCLIorLabel(GtkLabel*, char*, ...) PRINTF_FORMAT(2);
|
||||||
#else
|
#else
|
||||||
void PrintCLIorLabel(void*, char*, ...);
|
void PrintCLIorLabel(void*, char*, ...) PRINTF_FORMAT(2);
|
||||||
#endif
|
#endif
|
||||||
int GetLongestTranslation(char*, ...);
|
int GetLongestTranslation(char*, ...);
|
||||||
|
|
||||||
void LogWarning(char*, ...);
|
void LogWarning(char*, ...) PRINTF_FORMAT(1);
|
||||||
void Stop(char*, ...);
|
void Stop(char*, ...) PRINTF_FORMAT(1);
|
||||||
void RegisterCleanup(char*, void (*)(gpointer), gpointer);
|
void RegisterCleanup(char*, void (*)(gpointer), gpointer);
|
||||||
void UnregisterCleanup(void);
|
void UnregisterCleanup(void);
|
||||||
|
|
||||||
GThread* CreateGThread(GThreadFunc, gpointer);
|
GThread* CreateGThread(GThreadFunc, gpointer);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void ShowWidget(GtkWidget*);
|
void ShowWidget(GtkWidget*);
|
||||||
void AllowActions(gboolean);
|
void AllowActions(gboolean);
|
||||||
|
|
||||||
void ShowMessage(GtkWindow*, char*, GtkMessageType);
|
void ShowMessage(GtkWindow*, char*, GtkMessageType);
|
||||||
GtkWidget* CreateMessage(char*, GtkMessageType, ...);
|
GtkWidget* CreateMessage(char*, GtkMessageType, ...) PRINTF_FORMAT2(1,3);
|
||||||
void SetLabelText(GtkLabel*, char*, ...);
|
void SetLabelText(GtkLabel*, char*, ...) PRINTF_FORMAT(2);
|
||||||
void SetProgress(GtkWidget*, int, int);
|
void SetProgress(GtkWidget*, int, int);
|
||||||
|
|
||||||
int ModalDialog(GtkMessageType, GtkButtonsType, void (*)(GtkDialog*), char*, ...);
|
int ModalDialog(GtkMessageType, GtkButtonsType, void (*)(GtkDialog*), char*, ...) PRINTF_FORMAT(4);
|
||||||
int ModalWarning(GtkMessageType, GtkButtonsType, void (*)(GtkDialog*), char*, ...);
|
int ModalWarning(GtkMessageType, GtkButtonsType, void (*)(GtkDialog*), char*, ...) PRINTF_FORMAT(4);
|
||||||
#define ModalWarningOrCLI(a,b,c,d,...) ModalWarning(a,b,c,d,__VA_ARGS__)
|
#define ModalWarningOrCLI(a,b,c,d,...) ModalWarning(a,b,c,d,__VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
int ModalWarning(char*, ...);
|
int ModalWarning(char*, ...) PRINTF_FORMAT(1);
|
||||||
#define ModalWarningOrCLI(a,b,c,d,...) ModalWarning(d,__VA_ARGS__)
|
#define ModalWarningOrCLI(a,b,c,d,...) ModalWarning(d,__VA_ARGS__)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void SetText(PangoLayout*, char*, int*, int*);
|
void SetText(PangoLayout*, char*, int*, int*);
|
||||||
void SwitchAndSetFootline(GtkWidget*, int, GtkWidget*, char*, ...);
|
void SwitchAndSetFootline(GtkWidget*, int, GtkWidget*, char*, ...) PRINTF_FORMAT(4);
|
||||||
|
|
||||||
void ReverseCancelOK(GtkDialog*);
|
void ReverseCancelOK(GtkDialog*);
|
||||||
void TimedInsensitive(GtkWidget*, int);
|
void TimedInsensitive(GtkWidget*, int);
|
||||||
|
|
||||||
int GetLabelWidth(GtkLabel*, char*, ...);
|
int GetLabelWidth(GtkLabel*, char*, ...) PRINTF_FORMAT(2);
|
||||||
void LockLabelSize(GtkLabel*, char*, ...);
|
void LockLabelSize(GtkLabel*, char*, ...) PRINTF_FORMAT(2);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int ConfirmImageDeletion(char *);
|
int ConfirmImageDeletion(char *);
|
||||||
int ConfirmEccDeletion(char *);
|
int ConfirmEccDeletion(char *);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/***
|
/***
|
||||||
*** preferences.c
|
*** preferences.c
|
||||||
***/
|
***/
|
||||||
@@ -1250,7 +1271,7 @@ void ReadDefectiveSectorFile(DefectiveSectorHeader *, struct _RawBuffer*, char*)
|
|||||||
|
|
||||||
void ReadMediumLinear(gpointer);
|
void ReadMediumLinear(gpointer);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/***
|
/***
|
||||||
*** read-linear-window.c
|
*** read-linear-window.c
|
||||||
***/
|
***/
|
||||||
@@ -1272,7 +1293,7 @@ void GetReadingRange(gint64, gint64*, gint64*);
|
|||||||
|
|
||||||
void ReadMediumAdaptive(gpointer);
|
void ReadMediumAdaptive(gpointer);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/***
|
/***
|
||||||
*** read-adaptive-window.c
|
*** read-adaptive-window.c
|
||||||
***/
|
***/
|
||||||
@@ -1453,7 +1474,7 @@ void *PrepareIterativeSmartLEC(RawBuffer*);
|
|||||||
void SmartLECIteration(void*, char*);
|
void SmartLECIteration(void*, char*);
|
||||||
void EndIterativeSmartLEC(void*);
|
void EndIterativeSmartLEC(void*);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/***
|
/***
|
||||||
*** spiral.c
|
*** spiral.c
|
||||||
***/
|
***/
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ void register_rs01(void)
|
|||||||
method->finalizeCksums = RS01FinalizeCksums;
|
method->finalizeCksums = RS01FinalizeCksums;
|
||||||
method->expectedImageSize = RS01ExpectedImageSize;
|
method->expectedImageSize = RS01ExpectedImageSize;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/*** Linkage to rs01-window.c */
|
/*** Linkage to rs01-window.c */
|
||||||
|
|
||||||
method->createCreateWindow = CreateRS01EWindow;
|
method->createCreateWindow = CreateRS01EWindow;
|
||||||
@@ -80,13 +80,13 @@ void register_rs01(void)
|
|||||||
|
|
||||||
static void destroy(Method *method)
|
static void destroy(Method *method)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS01Widgets *wl = (RS01Widgets*)method->widgetList;
|
RS01Widgets *wl = (RS01Widgets*)method->widgetList;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
g_free(method->ckSumClosure);
|
g_free(method->ckSumClosure);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(wl)
|
if(wl)
|
||||||
{ if(wl->fixCurve) FreeCurve(wl->fixCurve);
|
{ if(wl->fixCurve) FreeCurve(wl->fixCurve);
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ void register_rs02(void)
|
|||||||
method->finalizeCksums = RS02FinalizeCksums;
|
method->finalizeCksums = RS02FinalizeCksums;
|
||||||
method->expectedImageSize = RS02ExpectedImageSize;
|
method->expectedImageSize = RS02ExpectedImageSize;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/*** Linkage to rs02-window.c */
|
/*** Linkage to rs02-window.c */
|
||||||
|
|
||||||
method->createCreateWindow = CreateRS02EncWindow;
|
method->createCreateWindow = CreateRS02EncWindow;
|
||||||
@@ -82,7 +82,7 @@ void register_rs02(void)
|
|||||||
|
|
||||||
static void destroy(Method *method)
|
static void destroy(Method *method)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS02Widgets *wl = (RS02Widgets*)method->widgetList;
|
RS02Widgets *wl = (RS02Widgets*)method->widgetList;
|
||||||
#endif
|
#endif
|
||||||
RS02CksumClosure *csc = (RS02CksumClosure*)method->ckSumClosure;
|
RS02CksumClosure *csc = (RS02CksumClosure*)method->ckSumClosure;
|
||||||
@@ -91,7 +91,7 @@ static void destroy(Method *method)
|
|||||||
g_free(csc->lay);
|
g_free(csc->lay);
|
||||||
g_free(method->ckSumClosure);
|
g_free(method->ckSumClosure);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(wl)
|
if(wl)
|
||||||
{ if(wl->fixCurve) FreeCurve(wl->fixCurve);
|
{ if(wl->fixCurve) FreeCurve(wl->fixCurve);
|
||||||
|
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ void register_rs03(void)
|
|||||||
method->recognizeEccFile = RS03RecognizeFile;
|
method->recognizeEccFile = RS03RecognizeFile;
|
||||||
method->recognizeEccImage = RS03RecognizeImage;
|
method->recognizeEccImage = RS03RecognizeImage;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/*** Linkage to rs03-window.c */
|
/*** Linkage to rs03-window.c */
|
||||||
|
|
||||||
method->createCreateWindow = CreateRS03EncWindow;
|
method->createCreateWindow = CreateRS03EncWindow;
|
||||||
@@ -83,7 +83,7 @@ void register_rs03(void)
|
|||||||
|
|
||||||
static void destroy(Method *method)
|
static void destroy(Method *method)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS03Widgets *wl = (RS03Widgets*)method->widgetList;
|
RS03Widgets *wl = (RS03Widgets*)method->widgetList;
|
||||||
#endif
|
#endif
|
||||||
RS03CksumClosure *csc = (RS03CksumClosure*)method->ckSumClosure;
|
RS03CksumClosure *csc = (RS03CksumClosure*)method->ckSumClosure;
|
||||||
@@ -92,7 +92,7 @@ static void destroy(Method *method)
|
|||||||
g_free(csc->lay);
|
g_free(csc->lay);
|
||||||
g_free(method->ckSumClosure);
|
g_free(method->ckSumClosure);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(wl)
|
if(wl)
|
||||||
{ if(wl->fixCurve) FreeCurve(wl->fixCurve);
|
{ if(wl->fixCurve) FreeCurve(wl->fixCurve);
|
||||||
|
|
||||||
|
|||||||
12
src/endian.c
12
src/endian.c
@@ -62,7 +62,7 @@ guint64 SwapBytes64(guint64 in)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
void print_hex(char *label, guint8 *values, int n)
|
void print_hex(char *label, guint8 *values, int n)
|
||||||
{ PrintCLI(label);
|
{ PrintCLI("%s", label);
|
||||||
|
|
||||||
while(n--)
|
while(n--)
|
||||||
PrintCLI("%02x ",*values++);
|
PrintCLI("%02x ",*values++);
|
||||||
@@ -84,7 +84,7 @@ void PrintEccHeader(EccHeader *eh)
|
|||||||
print_hex("mediumSum ", eh->mediumSum, 16);
|
print_hex("mediumSum ", eh->mediumSum, 16);
|
||||||
print_hex("eccSum ", eh->eccSum, 16);
|
print_hex("eccSum ", eh->eccSum, 16);
|
||||||
print_hex("sectors ", eh->sectors, 8);
|
print_hex("sectors ", eh->sectors, 8);
|
||||||
PrintCLI("sectors (native) %lld\n", uchar_to_gint64(eh->sectors));
|
PrintCLI("sectors (native) %" PRId64 "\n", uchar_to_gint64(eh->sectors));
|
||||||
PrintCLI("dataBytes %8x\n", eh->dataBytes);
|
PrintCLI("dataBytes %8x\n", eh->dataBytes);
|
||||||
PrintCLI("eccBytes %8x\n", eh->eccBytes);
|
PrintCLI("eccBytes %8x\n", eh->eccBytes);
|
||||||
PrintCLI("creatorVersion %8x\n", eh->creatorVersion);
|
PrintCLI("creatorVersion %8x\n", eh->creatorVersion);
|
||||||
@@ -93,8 +93,8 @@ void PrintEccHeader(EccHeader *eh)
|
|||||||
PrintCLI("selfCRC %8x\n", eh->selfCRC);
|
PrintCLI("selfCRC %8x\n", eh->selfCRC);
|
||||||
print_hex("crcSum ", eh->crcSum, 16);
|
print_hex("crcSum ", eh->crcSum, 16);
|
||||||
PrintCLI("inLast %8x\n", eh->inLast);
|
PrintCLI("inLast %8x\n", eh->inLast);
|
||||||
PrintCLI("sectorsPerLayer %lld\n", eh->sectorsPerLayer);
|
PrintCLI("sectorsPerLayer %" PRId64 "\n", eh->sectorsPerLayer);
|
||||||
PrintCLI("sectorsAddedByEcc %lld\n", eh->sectorsAddedByEcc);
|
PrintCLI("sectorsAddedByEcc %" PRId64 "\n", eh->sectorsAddedByEcc);
|
||||||
|
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
}
|
}
|
||||||
@@ -114,11 +114,11 @@ void print_crc_block(CrcBlock *cb)
|
|||||||
PrintCLI("fpSector %8x\n", cb->fpSector);
|
PrintCLI("fpSector %8x\n", cb->fpSector);
|
||||||
print_hex("mediumFP ", cb->mediumFP, 16);
|
print_hex("mediumFP ", cb->mediumFP, 16);
|
||||||
print_hex("mediumSum ", cb->mediumSum, 16);
|
print_hex("mediumSum ", cb->mediumSum, 16);
|
||||||
PrintCLI("dataSectors %ll16x\n ",cb->dataSectors);
|
PrintCLI("dataSectors %16" PRIx64 "\n",cb->dataSectors);
|
||||||
PrintCLI("inLast %8x\n", cb->inLast);
|
PrintCLI("inLast %8x\n", cb->inLast);
|
||||||
PrintCLI("dataBytes %8x\n", cb->dataBytes);
|
PrintCLI("dataBytes %8x\n", cb->dataBytes);
|
||||||
PrintCLI("eccBytes %8x\n", cb->eccBytes);
|
PrintCLI("eccBytes %8x\n", cb->eccBytes);
|
||||||
PrintCLI("sectorsPerLayer %lld\n", cb->sectorsPerLayer);
|
PrintCLI("sectorsPerLayer %" PRId64 "\n", cb->sectorsPerLayer);
|
||||||
PrintCLI("selfCRC %8x\n", cb->selfCRC);
|
PrintCLI("selfCRC %8x\n", cb->selfCRC);
|
||||||
|
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
|
|||||||
@@ -707,7 +707,7 @@ void AboutTextWithLink(GtkWidget *parent, char *text, char *action)
|
|||||||
g_free(utf);
|
g_free(utf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else AboutText(parent, head);
|
else AboutText(parent, "%s", head);
|
||||||
|
|
||||||
if(end_of_line) head = end_of_line+1;
|
if(end_of_line) head = end_of_line+1;
|
||||||
else break;
|
else break;
|
||||||
@@ -739,7 +739,7 @@ void AboutDialog()
|
|||||||
text = g_strdup_printf("<span weight=\"bold\" size=\"xx-large\">dvdisaster</span><i> "
|
text = g_strdup_printf("<span weight=\"bold\" size=\"xx-large\">dvdisaster</span><i> "
|
||||||
"Version %s</i>",
|
"Version %s</i>",
|
||||||
Closure->cookedVersion);
|
Closure->cookedVersion);
|
||||||
AboutText(vbox, text);
|
AboutText(vbox, "%s", text);
|
||||||
g_free(text);
|
g_free(text);
|
||||||
|
|
||||||
#ifdef MODIFIED_SOURCE
|
#ifdef MODIFIED_SOURCE
|
||||||
|
|||||||
16
src/image.c
16
src/image.c
@@ -148,7 +148,7 @@ int ReportImageEccInconsistencies(Image *image)
|
|||||||
|
|
||||||
if(!image || image->type == IMAGE_NONE)
|
if(!image || image->type == IMAGE_NONE)
|
||||||
{ if(image) CloseImage(image);
|
{ if(image) CloseImage(image);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ CreateMessage(_("Image file %s not present or permission denied.\n"), GTK_MESSAGE_ERROR, Closure->imageName);
|
{ CreateMessage(_("Image file %s not present or permission denied.\n"), GTK_MESSAGE_ERROR, Closure->imageName);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -163,7 +163,7 @@ int ReportImageEccInconsistencies(Image *image)
|
|||||||
|
|
||||||
if(image->eccFile && !image->eccFileMethod)
|
if(image->eccFile && !image->eccFileMethod)
|
||||||
{ CloseImage(image);
|
{ CloseImage(image);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ CreateMessage(_("\nError correction file type unknown.\n"), GTK_MESSAGE_ERROR);
|
{ CreateMessage(_("\nError correction file type unknown.\n"), GTK_MESSAGE_ERROR);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -178,7 +178,7 @@ int ReportImageEccInconsistencies(Image *image)
|
|||||||
|
|
||||||
if(!image->eccFile && image->eccFileState == ECCFILE_NOPERM)
|
if(!image->eccFile && image->eccFileState == ECCFILE_NOPERM)
|
||||||
{ CloseImage(image);
|
{ CloseImage(image);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ CreateMessage(_("\nPermission denied on ecc file (perhaps not writeable?).\n"),
|
{ CreateMessage(_("\nPermission denied on ecc file (perhaps not writeable?).\n"),
|
||||||
GTK_MESSAGE_ERROR);
|
GTK_MESSAGE_ERROR);
|
||||||
@@ -195,7 +195,7 @@ int ReportImageEccInconsistencies(Image *image)
|
|||||||
|
|
||||||
if(!image->eccFile && !image->eccMethod)
|
if(!image->eccFile && !image->eccMethod)
|
||||||
{ CloseImage(image);
|
{ CloseImage(image);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ CreateMessage(_("\nNo error correction file present.\n"
|
{ CreateMessage(_("\nNo error correction file present.\n"
|
||||||
"No error correction data recognized in image.\n"), GTK_MESSAGE_ERROR);
|
"No error correction data recognized in image.\n"), GTK_MESSAGE_ERROR);
|
||||||
@@ -266,12 +266,12 @@ int GetImageFingerprint(Image *image, guint8 *fp_out, guint64 sector)
|
|||||||
case 1: /* unreadable */
|
case 1: /* unreadable */
|
||||||
if(fp_out)
|
if(fp_out)
|
||||||
memset(fp_out, 0, 16);
|
memset(fp_out, 0, 16);
|
||||||
Verbose("GetImageFingerprint(%lld): cached unreadable\n", sector);
|
Verbose("GetImageFingerprint(%" PRId64 "): cached unreadable\n", sector);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
case 2: /* already cached */
|
case 2: /* already cached */
|
||||||
if(fp_out)
|
if(fp_out)
|
||||||
memcpy(fp_out, image->imageFP, 16);
|
memcpy(fp_out, image->imageFP, 16);
|
||||||
Verbose("GetImageFingerprint(%lld): cached\n", sector);
|
Verbose("GetImageFingerprint(%" PRId64 "): cached\n", sector);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,7 +281,7 @@ int GetImageFingerprint(Image *image, guint8 *fp_out, guint64 sector)
|
|||||||
image->fpSector = sector;
|
image->fpSector = sector;
|
||||||
if(status != 1) /* read error */
|
if(status != 1) /* read error */
|
||||||
{ image->fpState = 1;
|
{ image->fpState = 1;
|
||||||
Verbose("GetImageFingerprint(%lld): not readable\n", sector);
|
Verbose("GetImageFingerprint(%" PRId64 "): not readable\n", sector);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ struct MD5Context md5ctxt;
|
{ struct MD5Context md5ctxt;
|
||||||
@@ -293,7 +293,7 @@ int GetImageFingerprint(Image *image, guint8 *fp_out, guint64 sector)
|
|||||||
MD5Final(image->imageFP, &md5ctxt);
|
MD5Final(image->imageFP, &md5ctxt);
|
||||||
if(fp_out)
|
if(fp_out)
|
||||||
memcpy(fp_out, image->imageFP, 16);
|
memcpy(fp_out, image->imageFP, 16);
|
||||||
Verbose("GetImageFingerprint(%lld): read & cached\n", sector);
|
Verbose("GetImageFingerprint(%" PRId64 "): read & cached\n", sector);
|
||||||
}
|
}
|
||||||
|
|
||||||
FreeAlignedBuffer(ab);
|
FreeAlignedBuffer(ab);
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ ssize_t LargeRead(LargeFile *lf, void *buf, size_t count)
|
|||||||
* Writing large files
|
* Writing large files
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
static void insert_buttons(GtkDialog *dialog)
|
static void insert_buttons(GtkDialog *dialog)
|
||||||
{
|
{
|
||||||
gtk_dialog_add_buttons(dialog,
|
gtk_dialog_add_buttons(dialog,
|
||||||
@@ -226,7 +226,7 @@ static ssize_t xwrite(int fdes, void *buf_base, size_t count)
|
|||||||
|
|
||||||
/* Simply fail when going out of space in command line mode */
|
/* Simply fail when going out of space in command line mode */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
{ while(count)
|
{ while(count)
|
||||||
@@ -243,7 +243,7 @@ static ssize_t xwrite(int fdes, void *buf_base, size_t count)
|
|||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/* Give the user a chance to free more space in GUI mode.
|
/* Give the user a chance to free more space in GUI mode.
|
||||||
When running out of space, the last write() may complete
|
When running out of space, the last write() may complete
|
||||||
with n<count but no error condition, so we try writing
|
with n<count but no error condition, so we try writing
|
||||||
@@ -260,7 +260,7 @@ static ssize_t xwrite(int fdes, void *buf_base, size_t count)
|
|||||||
answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, insert_buttons,
|
answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, insert_buttons,
|
||||||
_("Error while writing the file:\n\n%s\n\n"
|
_("Error while writing the file:\n\n%s\n\n"
|
||||||
"You can redo this operation after freeing some space."),
|
"You can redo this operation after freeing some space."),
|
||||||
strerror(errno),n);
|
strerror(errno));
|
||||||
|
|
||||||
if(!answer) return total;
|
if(!answer) return total;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include "scsi-layer.h"
|
#include "scsi-layer.h"
|
||||||
#include "udf.h"
|
#include "udf.h"
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/*
|
/*
|
||||||
* Local data
|
* Local data
|
||||||
*/
|
*/
|
||||||
@@ -85,21 +85,21 @@ static void print_tab(char *label, int tab_width)
|
|||||||
void PrintMediumInfo(void *mi_ptr)
|
void PrintMediumInfo(void *mi_ptr)
|
||||||
{ Image *image;
|
{ Image *image;
|
||||||
DeviceHandle *dh;
|
DeviceHandle *dh;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
medium_info *mi=(medium_info*)mi_ptr;
|
medium_info *mi=(medium_info*)mi_ptr;
|
||||||
#endif
|
#endif
|
||||||
char *disc_status;
|
char *disc_status;
|
||||||
char *sess_status;
|
char *sess_status;
|
||||||
int tab_width=30;
|
int tab_width=30;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!mi) /* create dummy medium_info in CLI mode so that PrintCLIorLabel() won't crash */
|
if(!mi) /* create dummy medium_info in CLI mode so that PrintCLIorLabel() won't crash */
|
||||||
{ mi=alloca(sizeof(medium_info));
|
{ mi=alloca(sizeof(medium_info));
|
||||||
memset(mi, 0, sizeof(medium_info));
|
memset(mi, 0, sizeof(medium_info));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
print_defaults(mi);
|
print_defaults(mi);
|
||||||
#endif
|
#endif
|
||||||
@@ -125,7 +125,7 @@ void PrintMediumInfo(void *mi_ptr)
|
|||||||
|
|
||||||
print_tab("Medium type:",tab_width);
|
print_tab("Medium type:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->physicalType,
|
mi->physicalType,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
@@ -133,7 +133,7 @@ NULL,
|
|||||||
"%s\n", dh->typeDescr);
|
"%s\n", dh->typeDescr);
|
||||||
print_tab("Book type:",tab_width);
|
print_tab("Book type:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->bookType,
|
mi->bookType,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
@@ -141,7 +141,7 @@ NULL,
|
|||||||
"%s\n", dh->bookDescr);
|
"%s\n", dh->bookDescr);
|
||||||
print_tab("Manuf.-ID:",tab_width);
|
print_tab("Manuf.-ID:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->manufID,
|
mi->manufID,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
@@ -149,7 +149,7 @@ NULL,
|
|||||||
"%s\n", dh->manuID);
|
"%s\n", dh->manuID);
|
||||||
print_tab("Drive profile:",tab_width);
|
print_tab("Drive profile:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->profileDescr,
|
mi->profileDescr,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
@@ -172,7 +172,7 @@ NULL,
|
|||||||
|
|
||||||
print_tab("Disc status:",tab_width);
|
print_tab("Disc status:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->discStatus,
|
mi->discStatus,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
@@ -184,31 +184,31 @@ NULL,
|
|||||||
|
|
||||||
print_tab("Used sectors:",tab_width);
|
print_tab("Used sectors:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->usedCapacity1,
|
mi->usedCapacity1,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_("%lld sectors (%lld MiB), from READ CAPACITY\n"),
|
_("%" PRId64 " sectors (%" PRId64 " MiB), from READ CAPACITY\n"),
|
||||||
dh->readCapacity+1, (dh->readCapacity+1)>>9);
|
dh->readCapacity+1, (dh->readCapacity+1)>>9);
|
||||||
print_tab(" ",tab_width);
|
print_tab(" ",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->usedCapacity2,
|
mi->usedCapacity2,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_("%lld sectors (%lld MiB), from DVD structure\n"),
|
_("%" PRId64 " sectors (%" PRId64 " MiB), from DVD structure\n"),
|
||||||
dh->userAreaSize, dh->userAreaSize>>9);
|
dh->userAreaSize, dh->userAreaSize>>9);
|
||||||
|
|
||||||
print_tab("Blank capacity:",tab_width);
|
print_tab("Blank capacity:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->blankCapacity,
|
mi->blankCapacity,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_("%lld sectors (%lld MiB)\n"),
|
_("%" PRId64 " sectors (%" PRId64 " MiB)\n"),
|
||||||
dh->blankCapacity, (dh->blankCapacity)>>9);
|
dh->blankCapacity, (dh->blankCapacity)>>9);
|
||||||
|
|
||||||
/* Filesystem properties */
|
/* Filesystem properties */
|
||||||
@@ -225,7 +225,7 @@ NULL,
|
|||||||
|
|
||||||
print_tab("Medium label:",tab_width);
|
print_tab("Medium label:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->isoLabel,
|
mi->isoLabel,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
@@ -233,16 +233,16 @@ NULL,
|
|||||||
"%s\n", image->isoInfo->volumeLabel);
|
"%s\n", image->isoInfo->volumeLabel);
|
||||||
print_tab("File system size:",tab_width);
|
print_tab("File system size:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->isoSize,
|
mi->isoSize,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_("%d sectors (%lld MiB)\n"),
|
_("%d sectors (%" PRId64 " MiB)\n"),
|
||||||
image->isoInfo->volumeSize, (gint64)image->isoInfo->volumeSize>>9);
|
image->isoInfo->volumeSize, (gint64)image->isoInfo->volumeSize>>9);
|
||||||
print_tab("Creation time:",tab_width);
|
print_tab("Creation time:",tab_width);
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mi->isoTime,
|
mi->isoTime,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
@@ -271,7 +271,7 @@ NULL,
|
|||||||
memcpy(method, eh->method, 4);
|
memcpy(method, eh->method, 4);
|
||||||
method[4] = 0;
|
method[4] = 0;
|
||||||
print_tab("Error correction data:",tab_width);
|
print_tab("Error correction data:",tab_width);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
PrintCLIorLabel(mi->eccState, _("%s, %d roots, %4.1f%% redundancy.\n"),
|
PrintCLIorLabel(mi->eccState, _("%s, %d roots, %4.1f%% redundancy.\n"),
|
||||||
#else
|
#else
|
||||||
PrintCLIorLabel(NULL, _("%s, %d roots, %4.1f%% redundancy.\n"),
|
PrintCLIorLabel(NULL, _("%s, %d roots, %4.1f%% redundancy.\n"),
|
||||||
@@ -279,23 +279,23 @@ NULL,
|
|||||||
method, eh->eccBytes,
|
method, eh->eccBytes,
|
||||||
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
||||||
print_tab("Augmented image size:",tab_width);
|
print_tab("Augmented image size:",tab_width);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
PrintCLIorLabel(mi->eccSize, _("%lld sectors (%lld MiB)\n"),
|
PrintCLIorLabel(mi->eccSize, _("%" PRIu64 " sectors (%" PRId64 " MiB)\n"),
|
||||||
#else
|
#else
|
||||||
PrintCLIorLabel(NULL, _("%lld sectors (%lld MiB)\n"),
|
PrintCLIorLabel(NULL, _("%" PRId64 " sectors (%" PRId64 " MiB)\n"),
|
||||||
#endif
|
#endif
|
||||||
image->expectedSectors, image->expectedSectors>>9);
|
image->expectedSectors, image->expectedSectors>>9);
|
||||||
|
|
||||||
print_tab("dvdisaster version:", tab_width);
|
print_tab("dvdisaster version:", tab_width);
|
||||||
|
|
||||||
if(micro)
|
if(micro)
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
PrintCLIorLabel(mi->eccVersion, "%d.%d.%d", major, minor, micro);
|
PrintCLIorLabel(mi->eccVersion, "%d.%d.%d", major, minor, micro);
|
||||||
#else
|
#else
|
||||||
PrintCLIorLabel(NULL, "%d.%d.%d", major, minor, micro);
|
PrintCLIorLabel(NULL, "%d.%d.%d", major, minor, micro);
|
||||||
#endif
|
#endif
|
||||||
else
|
else
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
PrintCLIorLabel(mi->eccVersion, "%d.%d", major, minor);
|
PrintCLIorLabel(mi->eccVersion, "%d.%d", major, minor);
|
||||||
#else
|
#else
|
||||||
PrintCLIorLabel(NULL, "%d.%d", major, minor);
|
PrintCLIorLabel(NULL, "%d.%d", major, minor);
|
||||||
@@ -310,7 +310,7 @@ NULL,
|
|||||||
/***
|
/***
|
||||||
*** GUI callbacks
|
*** GUI callbacks
|
||||||
***/
|
***/
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Callback for drive selection
|
* Callback for drive selection
|
||||||
|
|||||||
48
src/misc.c
48
src/misc.c
@@ -58,7 +58,7 @@ char *sgettext(char *msgid)
|
|||||||
|
|
||||||
char *sgettext_utf8(char *msgid)
|
char *sgettext_utf8(char *msgid)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
static gchar ringbuf[20][1024];
|
static gchar ringbuf[20][1024];
|
||||||
static int ringptr;
|
static int ringptr;
|
||||||
#endif
|
#endif
|
||||||
@@ -80,7 +80,7 @@ char *sgettext_utf8(char *msgid)
|
|||||||
|
|
||||||
/*** If we are running the GUI, convert to UTF8 for Gtk+ */
|
/*** If we are running the GUI, convert to UTF8 for Gtk+ */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ char *msg_utf8 = g_locale_to_utf8(msgval, -1, NULL, NULL, NULL);
|
{ char *msg_utf8 = g_locale_to_utf8(msgval, -1, NULL, NULL, NULL);
|
||||||
|
|
||||||
@@ -148,7 +148,7 @@ void CalcSectors(guint64 size, guint64 *sectors, int *in_last)
|
|||||||
* Append message to the log window.
|
* Append message to the log window.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
|
|
||||||
#define MAX_LOG_WIN_SIZE 10240
|
#define MAX_LOG_WIN_SIZE 10240
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ void PrintCLI(char *format, ...)
|
|||||||
va_end(argp);
|
va_end(argp);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(Closure->verbose)
|
{ if(Closure->verbose)
|
||||||
{ va_start(argp, format);
|
{ va_start(argp, format);
|
||||||
@@ -271,7 +271,7 @@ void PrintProgress(char *format, ...)
|
|||||||
va_list argp;
|
va_list argp;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
@@ -338,7 +338,7 @@ void PrintLog(char *format, ...)
|
|||||||
|
|
||||||
va_start(argp, format);
|
va_start(argp, format);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
log_window_vprintf(format, argp);
|
log_window_vprintf(format, argp);
|
||||||
else
|
else
|
||||||
@@ -389,7 +389,7 @@ void PrintLogWithAsterisks(char *format, ...)
|
|||||||
|
|
||||||
va_start(argp, format);
|
va_start(argp, format);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
log_window_vprintf(new_format, argp);
|
log_window_vprintf(new_format, argp);
|
||||||
else
|
else
|
||||||
@@ -423,7 +423,7 @@ void Verbose(char *format, ...)
|
|||||||
|
|
||||||
va_start(argp, format);
|
va_start(argp, format);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
log_window_vprintf(format, argp);
|
log_window_vprintf(format, argp);
|
||||||
else
|
else
|
||||||
@@ -459,7 +459,7 @@ void PrintTimeToLog(GTimer *timer, char *format, ...)
|
|||||||
tmp2 = g_strdup_printf("%02d:%02d:%04.1f %s", hours, minutes, seconds, tmp1);
|
tmp2 = g_strdup_printf("%02d:%02d:%04.1f %s", hours, minutes, seconds, tmp1);
|
||||||
va_end(argp);
|
va_end(argp);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{
|
{
|
||||||
log_window_append(tmp2);
|
log_window_append(tmp2);
|
||||||
@@ -480,7 +480,7 @@ void PrintTimeToLog(GTimer *timer, char *format, ...)
|
|||||||
* or show it in the given label
|
* or show it in the given label
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void PrintCLIorLabel(GtkLabel *label, char *format, ...)
|
void PrintCLIorLabel(GtkLabel *label, char *format, ...)
|
||||||
#else
|
#else
|
||||||
void PrintCLIorLabel(void *unused, char *format, ...)
|
void PrintCLIorLabel(void *unused, char *format, ...)
|
||||||
@@ -495,7 +495,7 @@ void PrintCLIorLabel(void *unused, char *format, ...)
|
|||||||
|
|
||||||
va_start(argp, format);
|
va_start(argp, format);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ char *c,*tmp;
|
{ char *c,*tmp;
|
||||||
|
|
||||||
@@ -562,7 +562,7 @@ static void vlog_warning(char *format, va_list argp)
|
|||||||
prefix[len] = 0;
|
prefix[len] = 0;
|
||||||
|
|
||||||
str = g_string_sized_new(256);
|
str = g_string_sized_new(256);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
g_string_append_printf(str,"* %s:%c", warn, Closure->guiMode ? '\n' : ' ');
|
g_string_append_printf(str,"* %s:%c", warn, Closure->guiMode ? '\n' : ' ');
|
||||||
#else
|
#else
|
||||||
g_string_append_printf(str,"* %s: ", warn);
|
g_string_append_printf(str,"* %s: ", warn);
|
||||||
@@ -570,7 +570,7 @@ static void vlog_warning(char *format, va_list argp)
|
|||||||
do
|
do
|
||||||
{ c = strchr(line,'\n');
|
{ c = strchr(line,'\n');
|
||||||
if(c) *c=0;
|
if(c) *c=0;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode) g_string_append_printf(str,"* %s\n",line);
|
if(Closure->guiMode) g_string_append_printf(str,"* %s\n",line);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@@ -584,7 +584,7 @@ static void vlog_warning(char *format, va_list argp)
|
|||||||
if(Closure->logFileEnabled)
|
if(Closure->logFileEnabled)
|
||||||
PrintLogFile("%s", str->str);
|
PrintLogFile("%s", str->str);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ log_window_append(str->str);
|
{ log_window_append(str->str);
|
||||||
}
|
}
|
||||||
@@ -637,7 +637,7 @@ void Stop(char *format, ...)
|
|||||||
|
|
||||||
/*** CLI mode */
|
/*** CLI mode */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
{ g_printf("%s", _("\n*\n* dvdisaster - can not continue:\n*\n"));
|
{ g_printf("%s", _("\n*\n* dvdisaster - can not continue:\n*\n"));
|
||||||
@@ -650,7 +650,7 @@ void Stop(char *format, ...)
|
|||||||
|
|
||||||
/*** GUI mode */
|
/*** GUI mode */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ char *titled,*msg,*utf_msg;
|
{ char *titled,*msg,*utf_msg;
|
||||||
int idx;
|
int idx;
|
||||||
@@ -710,7 +710,7 @@ void Stop(char *format, ...)
|
|||||||
|
|
||||||
/* see above: possibly unreachable in GUI mode! */
|
/* see above: possibly unreachable in GUI mode! */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
{ FreeClosure();
|
{ FreeClosure();
|
||||||
@@ -782,7 +782,7 @@ void CallIdleFunc(gboolean (*idle_func)(gpointer), gpointer data)
|
|||||||
/***
|
/***
|
||||||
*** Graphical user interface convenience
|
*** Graphical user interface convenience
|
||||||
***/
|
***/
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Show the given widget
|
* Show the given widget
|
||||||
@@ -1111,7 +1111,7 @@ int ModalWarning(char *msg, ...)
|
|||||||
vlog_warning(msg, argp);
|
vlog_warning(msg, argp);
|
||||||
va_end(argp);
|
va_end(argp);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ va_start(argp, msg);
|
{ va_start(argp, msg);
|
||||||
result = vmodal_dialog(mt, bt, button_fn, msg, argp);
|
result = vmodal_dialog(mt, bt, button_fn, msg, argp);
|
||||||
@@ -1126,7 +1126,7 @@ int ModalWarning(char *msg, ...)
|
|||||||
* Set the text in the pango layout and retrieve its extents.
|
* Set the text in the pango layout and retrieve its extents.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void SetText(PangoLayout *layout, char *text, int *w, int *h)
|
void SetText(PangoLayout *layout, char *text, int *w, int *h)
|
||||||
{ PangoRectangle rect;
|
{ PangoRectangle rect;
|
||||||
char *t = g_locale_to_utf8(text, -1, NULL, NULL, NULL);
|
char *t = g_locale_to_utf8(text, -1, NULL, NULL, NULL);
|
||||||
@@ -1316,12 +1316,12 @@ static void insert_button(GtkDialog *dialog)
|
|||||||
#endif
|
#endif
|
||||||
int ConfirmImageDeletion(char *file)
|
int ConfirmImageDeletion(char *file)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode) /* Always delete it in command line mode */
|
if(!Closure->guiMode) /* Always delete it in command line mode */
|
||||||
#endif
|
#endif
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->confirmDeletion) /* I told you so... */
|
if(!Closure->confirmDeletion) /* I told you so... */
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
@@ -1338,12 +1338,12 @@ int ConfirmImageDeletion(char *file)
|
|||||||
|
|
||||||
int ConfirmEccDeletion(char *file)
|
int ConfirmEccDeletion(char *file)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode) /* Always delete it in command line mode */
|
if(!Closure->guiMode) /* Always delete it in command line mode */
|
||||||
#endif
|
#endif
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->confirmDeletion) /* I told you so... */
|
if(!Closure->confirmDeletion) /* I told you so... */
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
|
|||||||
@@ -1490,7 +1490,7 @@ void CreatePreferencesWindow(void)
|
|||||||
"- reading defective media\n"
|
"- reading defective media\n"
|
||||||
"- if (and only if) error correction data is available.\n\n"
|
"- if (and only if) error correction data is available.\n\n"
|
||||||
"Using the adaptive strategy without error correction data "
|
"Using the adaptive strategy without error correction data "
|
||||||
"is possible but it is recommended to use linear reading in that case."), Closure->invisibleDash);
|
"is possible but it is recommended to use linear reading in that case."));
|
||||||
|
|
||||||
/* Reading range */
|
/* Reading range */
|
||||||
|
|
||||||
|
|||||||
@@ -325,7 +325,7 @@ static void file_select_cb(GtkWidget *widget, gpointer data)
|
|||||||
calculate_failures(rec);
|
calculate_failures(rec);
|
||||||
evaluate_vectors(rec);
|
evaluate_vectors(rec);
|
||||||
render_sector(rec);
|
render_sector(rec);
|
||||||
SetLabelText(GTK_LABEL(rec->rightLabel), _("%s loaded, LBA %lld, %d samples."),
|
SetLabelText(GTK_LABEL(rec->rightLabel), _("%s loaded, LBA %" PRId64 ", %d samples."),
|
||||||
rec->filepath, rec->rb->lba, rec->rb->samplesRead);
|
rec->filepath, rec->rb->lba, rec->rb->samplesRead);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -387,14 +387,14 @@ static void save_sector(raw_editor_context *rec)
|
|||||||
|
|
||||||
if(!LargeSeek(image, (gint64)(2048*rb->lba)))
|
if(!LargeSeek(image, (gint64)(2048*rb->lba)))
|
||||||
{ LargeClose(image);
|
{ LargeClose(image);
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
rb->lba, "raw-editor", strerror(errno));
|
rb->lba, "raw-editor", strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
n = LargeWrite(image, rb->recovered+rb->dataOffset, 2048);
|
n = LargeWrite(image, rb->recovered+rb->dataOffset, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
{ LargeClose(image);
|
{ LargeClose(image);
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
rb->lba, "raw-editor", strerror(errno));
|
rb->lba, "raw-editor", strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -839,7 +839,7 @@ static void action_cb(GtkWidget *widget, gpointer data)
|
|||||||
|
|
||||||
switch(action)
|
switch(action)
|
||||||
{ case ACTION_BROWSE_LOAD:
|
{ case ACTION_BROWSE_LOAD:
|
||||||
file_select_cb(NULL, ACTION_BROWSE_LOAD);
|
file_select_cb(NULL, GINT_TO_POINTER(ACTION_BROWSE_LOAD));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ACTION_BROWSE_SAVE:
|
case ACTION_BROWSE_SAVE:
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ int SaveDefectiveSector(RawBuffer *rb, int can_c2_scan)
|
|||||||
if(!LargeStat(filename, &length))
|
if(!LargeStat(filename, &length))
|
||||||
{
|
{
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->status,
|
Closure->status,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
@@ -272,12 +272,12 @@ int SaveDefectiveSector(RawBuffer *rb, int can_c2_scan)
|
|||||||
LargeClose(file);
|
LargeClose(file);
|
||||||
|
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->status,
|
Closure->status,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_(" [Appended %d/%d sectors to cache file %s; LBA=%lld, ssize=%d, %d sectors]\n"),
|
_(" [Appended %d/%d sectors to cache file %s; LBA=%" PRId64 ", ssize=%d, %d sectors]\n"),
|
||||||
count, rb->samplesRead, filename, dsh->lba, dsh->sectorSize, dsh->nSectors);
|
count, rb->samplesRead, filename, dsh->lba, dsh->sectorSize, dsh->nSectors);
|
||||||
|
|
||||||
g_free(filename);
|
g_free(filename);
|
||||||
@@ -327,7 +327,7 @@ int TryDefectiveSectorCache(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(!status)
|
if(!status)
|
||||||
{
|
{
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->status,
|
Closure->status,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
|
|||||||
@@ -368,7 +368,7 @@ static void cleanup(gpointer data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bail_out:
|
bail_out:
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(rc->earlyTermination)
|
{ if(rc->earlyTermination)
|
||||||
SetAdaptiveReadFootline(_("Aborted by unrecoverable error."), Closure->redText);
|
SetAdaptiveReadFootline(_("Aborted by unrecoverable error."), Closure->redText);
|
||||||
@@ -401,7 +401,7 @@ bail_out:
|
|||||||
|
|
||||||
g_free(rc);
|
g_free(rc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -490,7 +490,7 @@ static void print_progress(read_closure *rc, int immediate)
|
|||||||
int total = rc->readable+rc->correctable;
|
int total = rc->readable+rc->correctable;
|
||||||
int percent = (int)((1000LL*(long long)total)/rc->expectedSectors);
|
int percent = (int)((1000LL*(long long)total)/rc->expectedSectors);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
@@ -507,12 +507,12 @@ static void print_progress(read_closure *rc, int immediate)
|
|||||||
|
|
||||||
if(rc->ei)
|
if(rc->ei)
|
||||||
n = g_snprintf(rc->progressMsg, 256,
|
n = g_snprintf(rc->progressMsg, 256,
|
||||||
_("Repairable: %2d.%1d%% (correctable: %lld; now reading [%lld..%lld], size %lld)"),
|
_("Repairable: %2d.%1d%% (correctable: %" PRId64 "; now reading [%" PRId64 "..%" PRId64 "], size %" PRId64 ")"),
|
||||||
percent/10, percent%10, rc->correctable,
|
percent/10, percent%10, rc->correctable,
|
||||||
rc->intervalStart, rc->intervalStart+rc->intervalSize-1, rc->intervalSize);
|
rc->intervalStart, rc->intervalStart+rc->intervalSize-1, rc->intervalSize);
|
||||||
else
|
else
|
||||||
n = g_snprintf(rc->progressMsg, 256,
|
n = g_snprintf(rc->progressMsg, 256,
|
||||||
_("Repairable: %2d.%1d%% (missing: %lld; now reading [%lld..%lld], size %lld)"),
|
_("Repairable: %2d.%1d%% (missing: %" PRId64 "; now reading [%" PRId64 "..%" PRId64 "], size %" PRId64 ")"),
|
||||||
percent/10, percent%10, rc->expectedSectors-rc->readable,
|
percent/10, percent%10, rc->expectedSectors-rc->readable,
|
||||||
rc->intervalStart, rc->intervalStart+rc->intervalSize-1, rc->intervalSize);
|
rc->intervalStart, rc->intervalStart+rc->intervalSize-1, rc->intervalSize);
|
||||||
|
|
||||||
@@ -542,7 +542,7 @@ static void print_progress(read_closure *rc, int immediate)
|
|||||||
static void clear_progress(read_closure *rc)
|
static void clear_progress(read_closure *rc)
|
||||||
{
|
{
|
||||||
if(!rc->progressMsgLen ||
|
if(!rc->progressMsgLen ||
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->guiMode)
|
Closure->guiMode)
|
||||||
#else
|
#else
|
||||||
0)
|
0)
|
||||||
@@ -564,7 +564,7 @@ static void clear_progress(read_closure *rc)
|
|||||||
* Sector markup in the spiral
|
* Sector markup in the spiral
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
static void mark_sector(read_closure *rc, gint64 sector, GdkColor *color)
|
static void mark_sector(read_closure *rc, gint64 sector, GdkColor *color)
|
||||||
{ int segment;
|
{ int segment;
|
||||||
int changed = FALSE;
|
int changed = FALSE;
|
||||||
@@ -654,7 +654,7 @@ static void open_and_determine_mode(read_closure *rc)
|
|||||||
|
|
||||||
PrintLog(_("%s-type ECC found\n"), "RS01");
|
PrintLog(_("%s-type ECC found\n"), "RS01");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadMinimumPercentage((1000*(rc->eh->dataBytes-rc->eh->eccBytes))/rc->eh->dataBytes);
|
SetAdaptiveReadMinimumPercentage((1000*(rc->eh->dataBytes-rc->eh->eccBytes))/rc->eh->dataBytes);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -664,7 +664,7 @@ static void open_and_determine_mode(read_closure *rc)
|
|||||||
rc->eh = rc->medium->eccHeader;
|
rc->eh = rc->medium->eccHeader;
|
||||||
rc->lay = RS02LayoutFromImage(rc->medium);
|
rc->lay = RS02LayoutFromImage(rc->medium);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadMinimumPercentage((1000*rc->lay->ndata)/255);
|
SetAdaptiveReadMinimumPercentage((1000*rc->lay->ndata)/255);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -686,10 +686,10 @@ static void open_and_determine_mode(read_closure *rc)
|
|||||||
sinv = RS02SectorIndex(rc->lay, slice, idx);
|
sinv = RS02SectorIndex(rc->lay, slice, idx);
|
||||||
|
|
||||||
if(slice == -1)
|
if(slice == -1)
|
||||||
Verbose("Header %lld found at sector %lld\n", idx, s);
|
Verbose("Header %" PRId64 " found at sector %" PRId64 "\n", idx, s);
|
||||||
else
|
else
|
||||||
if(s != sinv) Verbose("Failed for sector %lld / %lld:\n"
|
if(s != sinv) Verbose("Failed for sector %" PRId64 " / %" PRId64 ":\n"
|
||||||
"slice %lld, idx %lld\n",
|
"slice %" PRId64 ", idx %" PRId64 "\n",
|
||||||
s, sinv, slice, idx);
|
s, sinv, slice, idx);
|
||||||
}
|
}
|
||||||
Verbose("RS02SliceIndex() verification finished.\n");
|
Verbose("RS02SliceIndex() verification finished.\n");
|
||||||
@@ -706,7 +706,7 @@ static void open_and_determine_mode(read_closure *rc)
|
|||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
||||||
#endif
|
#endif
|
||||||
rc->earlyTermination = FALSE;
|
rc->earlyTermination = FALSE;
|
||||||
@@ -761,15 +761,15 @@ static void check_size(read_closure *rc)
|
|||||||
int answer;
|
int answer;
|
||||||
|
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Medium contains %lld sectors more as recorded in the .ecc file\n"
|
_("Medium contains %" PRId64 " sectors more as recorded in the .ecc file\n"
|
||||||
"(Medium: %lld sectors; expected from .ecc file: %lld sectors).\n"
|
"(Medium: %" PRId64 " sectors; expected from .ecc file: %" PRId64 " sectors).\n"
|
||||||
"Only the first %lld medium sectors will be processed.\n"),
|
"Only the first %" PRId64 " medium sectors will be processed.\n"),
|
||||||
rc->dh->sectors-rc->sectors, rc->dh->sectors, rc->sectors,
|
rc->dh->sectors-rc->sectors, rc->dh->sectors, rc->sectors,
|
||||||
rc->sectors);
|
rc->sectors);
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
||||||
#endif
|
#endif
|
||||||
rc->earlyTermination = FALSE;
|
rc->earlyTermination = FALSE;
|
||||||
@@ -782,14 +782,13 @@ static void check_size(read_closure *rc)
|
|||||||
int answer;
|
int answer;
|
||||||
|
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Medium contains %lld sectors less as recorded in the .ecc file\n"
|
_("Medium contains %" PRId64 " sectors less as recorded in the .ecc file\n"
|
||||||
"(Medium: %lld sectors; expected from .ecc file: %lld sectors).\n"),
|
"(Medium: %" PRId64 " sectors; expected from .ecc file: %" PRId64 " sectors).\n"),
|
||||||
rc->sectors-rc->dh->sectors, rc->dh->sectors, rc->sectors,
|
rc->sectors - rc->dh->sectors, rc->dh->sectors, rc->sectors);
|
||||||
rc->sectors);
|
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
||||||
#endif
|
#endif
|
||||||
rc->earlyTermination = FALSE;
|
rc->earlyTermination = FALSE;
|
||||||
@@ -809,13 +808,13 @@ void GetReadingRange(gint64 sectors, gint64 *firstSector, gint64 *lastSector)
|
|||||||
|
|
||||||
if(Closure->readStart || Closure->readEnd)
|
if(Closure->readStart || Closure->readEnd)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode) /* more range checks are made below */
|
if(!Closure->guiMode) /* more range checks are made below */
|
||||||
#endif
|
#endif
|
||||||
{ first = Closure->readStart;
|
{ first = Closure->readStart;
|
||||||
last = Closure->readEnd < 0 ? sectors-1 : Closure->readEnd;
|
last = Closure->readEnd < 0 ? sectors-1 : Closure->readEnd;
|
||||||
}
|
}
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else /* be more permissive in GUI mode */
|
else /* be more permissive in GUI mode */
|
||||||
{ first = 0;
|
{ first = 0;
|
||||||
last = sectors-1;
|
last = sectors-1;
|
||||||
@@ -828,9 +827,9 @@ void GetReadingRange(gint64 sectors, gint64 *firstSector, gint64 *lastSector)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(first > last || first < 0 || last >= sectors)
|
if(first > last || first < 0 || last >= sectors)
|
||||||
Stop(_("Sectors must be in range [0..%lld].\n"), sectors-1);
|
Stop(_("Sectors must be in range [0..%" PRId64 "].\n"), sectors-1);
|
||||||
|
|
||||||
PrintLog(_("Limiting sector range to [%lld,%lld].\n"), first, last);
|
PrintLog(_("Limiting sector range to [%" PRId64 ",%" PRId64 "].\n"), first, last);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ first = 0;
|
{ first = 0;
|
||||||
@@ -862,7 +861,7 @@ static void check_ecc_fingerprint(read_closure *rc)
|
|||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
||||||
#endif
|
#endif
|
||||||
rc->earlyTermination = FALSE;
|
rc->earlyTermination = FALSE;
|
||||||
@@ -912,11 +911,11 @@ int check_image_fingerprint(read_closure *rc)
|
|||||||
|
|
||||||
if(memcmp(image_fp, medium_fp, 16))
|
if(memcmp(image_fp, medium_fp, 16))
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
Stop(_("Image file does not match the optical disc."));
|
Stop(_("Image file does not match the optical disc."));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ int answer = ConfirmImageDeletion(Closure->imageName);
|
{ int answer = ConfirmImageDeletion(Closure->imageName);
|
||||||
|
|
||||||
@@ -950,14 +949,14 @@ void check_image_size(read_closure *rc, gint64 image_file_sectors)
|
|||||||
int answer;
|
int answer;
|
||||||
|
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Image file is %lld sectors longer than inserted medium\n"
|
_("Image file is %" PRId64 " sectors longer than inserted medium\n"
|
||||||
"(Image file: %lld sectors; medium: %lld sectors).\n"),
|
"(Image file: %" PRId64 " sectors; medium: %" PRId64 " sectors).\n"),
|
||||||
image_file_sectors-rc->expectedSectors,
|
image_file_sectors-rc->expectedSectors,
|
||||||
image_file_sectors, rc->expectedSectors);
|
image_file_sectors, rc->expectedSectors);
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
||||||
#endif
|
#endif
|
||||||
rc->earlyTermination = FALSE;
|
rc->earlyTermination = FALSE;
|
||||||
@@ -977,13 +976,13 @@ static void load_crc_buf(read_closure *rc)
|
|||||||
{
|
{
|
||||||
switch(rc->readMode)
|
switch(rc->readMode)
|
||||||
{ case ECC_IN_FILE:
|
{ case ECC_IN_FILE:
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadSubtitle(_utf("Loading CRC data."));
|
SetAdaptiveReadSubtitle(_utf("Loading CRC data."));
|
||||||
#endif
|
#endif
|
||||||
rc->crcBuf = GetCRCFromRS01_obsolete(rc->ei);
|
rc->crcBuf = GetCRCFromRS01_obsolete(rc->ei);
|
||||||
break;
|
break;
|
||||||
case ECC_IN_IMAGE:
|
case ECC_IN_IMAGE:
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SetAdaptiveReadSubtitle(_utf("Loading CRC data."));
|
SetAdaptiveReadSubtitle(_utf("Loading CRC data."));
|
||||||
#endif
|
#endif
|
||||||
rc->crcBuf = GetCRCFromRS02_obsolete(rc->lay, rc->dh, rc->image);
|
rc->crcBuf = GetCRCFromRS02_obsolete(rc->lay, rc->dh, rc->image);
|
||||||
@@ -1016,7 +1015,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
Check them for "dead sector markers"
|
Check them for "dead sector markers"
|
||||||
and for checksum failures if ecc data is present. */
|
and for checksum failures if ecc data is present. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetAdaptiveReadSubtitle(_("Analysing existing image file"));
|
SetAdaptiveReadSubtitle(_("Analysing existing image file"));
|
||||||
#endif
|
#endif
|
||||||
@@ -1026,7 +1025,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
|
|
||||||
/* Check for user interruption. */
|
/* Check for user interruption. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
{ SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
||||||
rc->earlyTermination = FALSE;
|
rc->earlyTermination = FALSE;
|
||||||
@@ -1046,7 +1045,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
|
|
||||||
if(current_missing)
|
if(current_missing)
|
||||||
{ int fixme=0;
|
{ int fixme=0;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, s, Closure->redSector);
|
mark_sector(rc, s, Closure->redSector);
|
||||||
#endif
|
#endif
|
||||||
ExplainMissingSector(rc->buf, s, current_missing, SOURCE_IMAGE, &fixme);
|
ExplainMissingSector(rc->buf, s, current_missing, SOURCE_IMAGE, &fixme);
|
||||||
@@ -1068,7 +1067,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
make it missing due to the CRC failure. */
|
make it missing due to the CRC failure. */
|
||||||
if(!current_missing)
|
if(!current_missing)
|
||||||
{ current_missing = 1;
|
{ current_missing = 1;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, s, Closure->yellowSector);
|
mark_sector(rc, s, Closure->yellowSector);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -1085,7 +1084,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
if(rc->map)
|
if(rc->map)
|
||||||
SetBit(rc->map, s);
|
SetBit(rc->map, s);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, s, Closure->greenSector);
|
mark_sector(rc, s, Closure->greenSector);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1122,7 +1121,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
percent = (100*s)/(rc->highestWrittenSector+1);
|
percent = (100*s)/(rc->highestWrittenSector+1);
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
PrintProgress(_("Analysing existing image file: %2d%%"),percent);
|
PrintProgress(_("Analysing existing image file: %2d%%"),percent);
|
||||||
@@ -1152,7 +1151,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
/*** Now that all readable sectors are known,
|
/*** Now that all readable sectors are known,
|
||||||
determine those which can already be corrected. */
|
determine those which can already be corrected. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetAdaptiveReadSubtitle(_("Determining correctable sectors"));
|
SetAdaptiveReadSubtitle(_("Determining correctable sectors"));
|
||||||
#endif
|
#endif
|
||||||
@@ -1187,7 +1186,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
#ifdef CHECK_VISITED
|
#ifdef CHECK_VISITED
|
||||||
rc->count[layer_idx]++;
|
rc->count[layer_idx]++;
|
||||||
#endif
|
#endif
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, layer_idx, Closure->greenSector);
|
mark_sector(rc, layer_idx, Closure->greenSector);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -1222,7 +1221,7 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
&& !GetBit(rc->map, sector))
|
&& !GetBit(rc->map, sector))
|
||||||
{ SetBit(rc->map, sector);
|
{ SetBit(rc->map, sector);
|
||||||
rc->correctable++;
|
rc->correctable++;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, sector, Closure->greenSector);
|
mark_sector(rc, sector, Closure->greenSector);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -1234,12 +1233,12 @@ static void build_interval_from_image(read_closure *rc)
|
|||||||
/*** Tell user results of image file analysis */
|
/*** Tell user results of image file analysis */
|
||||||
|
|
||||||
if(rc->readMode == ECC_IN_FILE || rc->readMode == ECC_IN_IMAGE)
|
if(rc->readMode == ECC_IN_FILE || rc->readMode == ECC_IN_IMAGE)
|
||||||
PrintLog(_("Analysing existing image file: %lld readable, %lld correctable, %lld still missing.\n"),
|
PrintLog(_("Analysing existing image file: %" PRId64 " readable, %" PRId64 " correctable, %" PRId64 " still missing.\n"),
|
||||||
rc->readable, rc->correctable, rc->expectedSectors-rc->readable-rc->correctable);
|
rc->readable, rc->correctable, rc->expectedSectors-rc->readable-rc->correctable);
|
||||||
else PrintLog(_("Analysing existing image file: %lld readable, %lld still missing.\n"),
|
else PrintLog(_("Analysing existing image file: %" PRId64 " readable, %" PRId64 " still missing.\n"),
|
||||||
rc->readable, rc->expectedSectors-rc->readable-rc->correctable);
|
rc->readable, rc->expectedSectors-rc->readable-rc->correctable);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
UpdateAdaptiveResults(rc->readable, rc->correctable,
|
UpdateAdaptiveResults(rc->readable, rc->correctable,
|
||||||
rc->expectedSectors-rc->readable-rc->correctable,
|
rc->expectedSectors-rc->readable-rc->correctable,
|
||||||
@@ -1268,14 +1267,14 @@ static void mark_rs02_headers(read_closure *rc)
|
|||||||
while(hpos < end)
|
while(hpos < end)
|
||||||
{ if(!GetBit(rc->map, hpos))
|
{ if(!GetBit(rc->map, hpos))
|
||||||
{ SetBit(rc->map, hpos);
|
{ SetBit(rc->map, hpos);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, hpos, Closure->greenSector);
|
mark_sector(rc, hpos, Closure->greenSector);
|
||||||
#endif
|
#endif
|
||||||
rc->correctable++;
|
rc->correctable++;
|
||||||
}
|
}
|
||||||
if(!GetBit(rc->map, hpos+1))
|
if(!GetBit(rc->map, hpos+1))
|
||||||
{ SetBit(rc->map, hpos+1);
|
{ SetBit(rc->map, hpos+1);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, hpos+1, Closure->greenSector);
|
mark_sector(rc, hpos+1, Closure->greenSector);
|
||||||
#endif
|
#endif
|
||||||
rc->correctable++;
|
rc->correctable++;
|
||||||
@@ -1289,7 +1288,7 @@ static void mark_rs02_headers(read_closure *rc)
|
|||||||
*** Main routine for adaptive reading
|
*** Main routine for adaptive reading
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
static void insert_buttons(GtkDialog *dialog)
|
static void insert_buttons(GtkDialog *dialog)
|
||||||
{
|
{
|
||||||
gtk_dialog_add_buttons(dialog,
|
gtk_dialog_add_buttons(dialog,
|
||||||
@@ -1331,22 +1330,22 @@ void fill_gap(read_closure *rc)
|
|||||||
|
|
||||||
/*** Tell user what's going on */
|
/*** Tell user what's going on */
|
||||||
|
|
||||||
t = g_strdup_printf(_("Filling image area [%lld..%lld]"),
|
t = g_strdup_printf(_("Filling image area [%" PRId64 "..%" PRId64 "]"),
|
||||||
firstUnwritten, rc->intervalStart-1);
|
firstUnwritten, rc->intervalStart-1);
|
||||||
clear_progress(rc);
|
clear_progress(rc);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetAdaptiveReadSubtitle(t);
|
{ SetAdaptiveReadSubtitle(t);
|
||||||
ChangeSpiralCursor(Closure->readAdaptiveSpiral, -1);
|
ChangeSpiralCursor(Closure->readAdaptiveSpiral, -1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
PrintCLI(t);
|
PrintCLI("%s", t);
|
||||||
g_free(t);
|
g_free(t);
|
||||||
|
|
||||||
/*** Seek to end of image */
|
/*** Seek to end of image */
|
||||||
|
|
||||||
if(!LargeSeek(rc->image, (gint64)(2048*firstUnwritten)))
|
if(!LargeSeek(rc->image, (gint64)(2048*firstUnwritten)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
firstUnwritten, "fill", strerror(errno));
|
firstUnwritten, "fill", strerror(errno));
|
||||||
|
|
||||||
/*** Fill image with dead sector markers until rc->intervalStart */
|
/*** Fill image with dead sector markers until rc->intervalStart */
|
||||||
@@ -1360,12 +1359,12 @@ void fill_gap(read_closure *rc)
|
|||||||
CreateMissingSector(buf, i, rc->fingerprint, FINGERPRINT_SECTOR, rc->volumeLabel);
|
CreateMissingSector(buf, i, rc->fingerprint, FINGERPRINT_SECTOR, rc->volumeLabel);
|
||||||
n = LargeWrite(rc->image, buf, 2048);
|
n = LargeWrite(rc->image, buf, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
i, "fill", strerror(errno));
|
i, "fill", strerror(errno));
|
||||||
|
|
||||||
/* Check whether user hit the Stop button */
|
/* Check whether user hit the Stop button */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{
|
{
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
@@ -1381,7 +1380,7 @@ void fill_gap(read_closure *rc)
|
|||||||
if(j++ % 2000)
|
if(j++ % 2000)
|
||||||
{ int seq = (j/2000)%10;
|
{ int seq = (j/2000)%10;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
{ g_printf("%s", anim[seq]);
|
{ g_printf("%s", anim[seq]);
|
||||||
@@ -1391,7 +1390,7 @@ void fill_gap(read_closure *rc)
|
|||||||
|
|
||||||
/* Show progress in the spiral */
|
/* Show progress in the spiral */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ int segment = i / rc->sectorsPerSegment;
|
{ int segment = i / rc->sectorsPerSegment;
|
||||||
|
|
||||||
@@ -1404,7 +1403,7 @@ void fill_gap(read_closure *rc)
|
|||||||
PrintCLI(" \n");
|
PrintCLI(" \n");
|
||||||
rc->highestWrittenSector = rc->intervalStart-1;
|
rc->highestWrittenSector = rc->intervalStart-1;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode) /* remove temporary fill markers */
|
if(Closure->guiMode) /* remove temporary fill markers */
|
||||||
{ RemoveFillMarkers();
|
{ RemoveFillMarkers();
|
||||||
SetAdaptiveReadSubtitle(rc->subtitle);
|
SetAdaptiveReadSubtitle(rc->subtitle);
|
||||||
@@ -1426,13 +1425,13 @@ void fill_correctable_gap(read_closure *rc, gint64 correctable)
|
|||||||
unsigned char buf[2048];
|
unsigned char buf[2048];
|
||||||
|
|
||||||
if(!LargeSeek(rc->image, (gint64)(2048*ds)))
|
if(!LargeSeek(rc->image, (gint64)(2048*ds)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
ds, "skip-corr", strerror(errno));
|
ds, "skip-corr", strerror(errno));
|
||||||
|
|
||||||
for(ds=rc->highestWrittenSector+1; ds<=correctable; ds++)
|
for(ds=rc->highestWrittenSector+1; ds<=correctable; ds++)
|
||||||
{ CreateMissingSector(buf, ds, rc->fingerprint, FINGERPRINT_SECTOR, rc->volumeLabel);
|
{ CreateMissingSector(buf, ds, rc->fingerprint, FINGERPRINT_SECTOR, rc->volumeLabel);
|
||||||
if(LargeWrite(rc->image, buf, 2048) != 2048)
|
if(LargeWrite(rc->image, buf, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
ds, "skip-corr", strerror(errno));
|
ds, "skip-corr", strerror(errno));
|
||||||
}
|
}
|
||||||
rc->highestWrittenSector = correctable;
|
rc->highestWrittenSector = correctable;
|
||||||
@@ -1464,7 +1463,7 @@ void ReadMediumAdaptive(gpointer data)
|
|||||||
rc->earlyTermination = TRUE;
|
rc->earlyTermination = TRUE;
|
||||||
|
|
||||||
RegisterCleanup(_("Reading aborted"), cleanup, rc);
|
RegisterCleanup(_("Reading aborted"), cleanup, rc);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readAdaptiveHeadline), "<big>%s</big>\n<i>%s</i>",
|
SetLabelText(GTK_LABEL(Closure->readAdaptiveHeadline), "<big>%s</big>\n<i>%s</i>",
|
||||||
_("Preparing for reading the medium image."),
|
_("Preparing for reading the medium image."),
|
||||||
@@ -1529,7 +1528,7 @@ void ReadMediumAdaptive(gpointer data)
|
|||||||
|
|
||||||
/*** Initialize segment state counters (only in GUI mode) */
|
/*** Initialize segment state counters (only in GUI mode) */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ //rc->sectorsPerSegment = 1 + (rc->sectors / ADAPTIVE_READ_SPIRAL_SIZE);
|
{ //rc->sectorsPerSegment = 1 + (rc->sectors / ADAPTIVE_READ_SPIRAL_SIZE);
|
||||||
rc->sectorsPerSegment = ((rc->expectedSectors+ADAPTIVE_READ_SPIRAL_SIZE-1) / ADAPTIVE_READ_SPIRAL_SIZE);
|
rc->sectorsPerSegment = ((rc->expectedSectors+ADAPTIVE_READ_SPIRAL_SIZE-1) / ADAPTIVE_READ_SPIRAL_SIZE);
|
||||||
@@ -1553,7 +1552,7 @@ reopen_image:
|
|||||||
Stop(_("Can't open %s:\n%s"),Closure->imageName,strerror(errno));
|
Stop(_("Can't open %s:\n%s"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
PrintLog(_("Creating new %s image.\n"),Closure->imageName);
|
PrintLog(_("Creating new %s image.\n"),Closure->imageName);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readAdaptiveHeadline),
|
SetLabelText(GTK_LABEL(Closure->readAdaptiveHeadline),
|
||||||
"<big>%s</big>\n<i>%s</i>",
|
"<big>%s</big>\n<i>%s</i>",
|
||||||
@@ -1575,7 +1574,7 @@ reopen_image:
|
|||||||
else
|
else
|
||||||
{ int reopen;
|
{ int reopen;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readAdaptiveHeadline),
|
SetLabelText(GTK_LABEL(Closure->readAdaptiveHeadline),
|
||||||
"<big>%s</big>\n<i>%s</i>",
|
"<big>%s</big>\n<i>%s</i>",
|
||||||
@@ -1616,8 +1615,8 @@ reopen_image:
|
|||||||
{ char *t = _("\nSufficient data for reconstructing the image is available.\n");
|
{ char *t = _("\nSufficient data for reconstructing the image is available.\n");
|
||||||
|
|
||||||
if(rc->readMode != IMAGE_ONLY)
|
if(rc->readMode != IMAGE_ONLY)
|
||||||
{ PrintLog(t);
|
{ PrintLog("%s", t);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetAdaptiveReadFootline(t, Closure->greenText);
|
SetAdaptiveReadFootline(t, Closure->greenText);
|
||||||
#endif
|
#endif
|
||||||
@@ -1638,7 +1637,7 @@ reopen_image:
|
|||||||
|
|
||||||
/*** Read the medium image. */
|
/*** Read the medium image. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetAdaptiveReadSubtitle(rc->subtitle);
|
SetAdaptiveReadSubtitle(rc->subtitle);
|
||||||
#endif
|
#endif
|
||||||
@@ -1646,7 +1645,7 @@ reopen_image:
|
|||||||
for(;;)
|
for(;;)
|
||||||
{ int cluster_mask = rc->dh->clusterSize-1;
|
{ int cluster_mask = rc->dh->clusterSize-1;
|
||||||
|
|
||||||
Verbose("... Processing Interval [%lld..%lld], size %d\n",
|
Verbose("... Processing Interval [%" PRId64 "..%" PRId64 "], size %" PRId64 "\n",
|
||||||
rc->intervalStart, rc->intervalStart+rc->intervalSize-1, rc->intervalSize);
|
rc->intervalStart, rc->intervalStart+rc->intervalSize-1, rc->intervalSize);
|
||||||
|
|
||||||
/* If we jumped beyond the highest writtensector,
|
/* If we jumped beyond the highest writtensector,
|
||||||
@@ -1666,7 +1665,7 @@ reopen_image:
|
|||||||
for(s=rc->intervalStart; s<=rc->intervalEnd; ) /* s is incremented elsewhere */
|
for(s=rc->intervalStart; s<=rc->intervalEnd; ) /* s is incremented elsewhere */
|
||||||
{ int nsectors,cnt;
|
{ int nsectors,cnt;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* somebody hit the Stop button */
|
if(Closure->stopActions) /* somebody hit the Stop button */
|
||||||
{ if(Closure->guiMode)
|
{ if(Closure->guiMode)
|
||||||
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
SetAdaptiveReadFootline(_("Aborted by user request!"), Closure->redText);
|
||||||
@@ -1724,18 +1723,18 @@ reread:
|
|||||||
&& rc->dh->sense.sense_key
|
&& rc->dh->sense.sense_key
|
||||||
&& rc->dh->sense.sense_key != 3 && rc->dh->sense.sense_key != 5)
|
&& rc->dh->sense.sense_key != 3 && rc->dh->sense.sense_key != 5)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int answer;
|
int answer;
|
||||||
|
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
Stop(_("Sector %lld: %s\nCan not recover from above error.\n"
|
Stop(_("Sector %" PRId64 ": %s\nCan not recover from above error.\n"
|
||||||
"Use the --ignore-fatal-sense option to override."),
|
"Use the --ignore-fatal-sense option to override."),
|
||||||
s, GetLastSenseString(FALSE));
|
s, GetLastSenseString(FALSE));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, insert_buttons,
|
answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, insert_buttons,
|
||||||
_("Sector %lld: %s\n\n"
|
_("Sector %" PRId64 ": %s\n\n"
|
||||||
"It may not be possible to recover from this error.\n"
|
"It may not be possible to recover from this error.\n"
|
||||||
"Should the reading continue and ignore this error?"),
|
"Should the reading continue and ignore this error?"),
|
||||||
s, GetLastSenseString(FALSE));
|
s, GetLastSenseString(FALSE));
|
||||||
@@ -1768,7 +1767,7 @@ reread:
|
|||||||
{ gint64 b;
|
{ gint64 b;
|
||||||
|
|
||||||
if(!LargeSeek(rc->image, (gint64)(2048*s)))
|
if(!LargeSeek(rc->image, (gint64)(2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
s,"store",strerror(errno));
|
s,"store",strerror(errno));
|
||||||
|
|
||||||
/* Store sector(s) in the image file if they pass the CRC test,
|
/* Store sector(s) in the image file if they pass the CRC test,
|
||||||
@@ -1791,7 +1790,7 @@ reread:
|
|||||||
{ //unsigned char buf[2048];
|
{ //unsigned char buf[2048];
|
||||||
|
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
PrintCLI(_("CRC error in sector %lld\n"),b);
|
PrintCLI(_("CRC error in sector %" PRId64 "\n"),b);
|
||||||
print_progress(rc, TRUE);
|
print_progress(rc, TRUE);
|
||||||
|
|
||||||
#if 0 // remark: Do we still need to mark CRC defects as completely missing?
|
#if 0 // remark: Do we still need to mark CRC defects as completely missing?
|
||||||
@@ -1800,10 +1799,10 @@ reread:
|
|||||||
#endif
|
#endif
|
||||||
n = LargeWrite(rc->image, rc->buf+i*2048, 2048);
|
n = LargeWrite(rc->image, rc->buf+i*2048, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
b, "unv", strerror(errno));
|
b, "unv", strerror(errno));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, b, Closure->yellowSector);
|
mark_sector(rc, b, Closure->yellowSector);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1815,14 +1814,14 @@ reread:
|
|||||||
case CRC_GOOD:
|
case CRC_GOOD:
|
||||||
n = LargeWrite(rc->image, rc->buf+i*2048, 2048);
|
n = LargeWrite(rc->image, rc->buf+i*2048, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
b, "store", strerror(errno));
|
b, "store", strerror(errno));
|
||||||
|
|
||||||
if(rc->map)
|
if(rc->map)
|
||||||
SetBit(rc->map, b);
|
SetBit(rc->map, b);
|
||||||
rc->readable++;
|
rc->readable++;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, b, Closure->greenSector);
|
mark_sector(rc, b, Closure->greenSector);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1877,7 +1876,7 @@ reread:
|
|||||||
&& !GetBit(rc->map, layer_idx))
|
&& !GetBit(rc->map, layer_idx))
|
||||||
{ SetBit(rc->map, layer_idx);
|
{ SetBit(rc->map, layer_idx);
|
||||||
rc->correctable++;
|
rc->correctable++;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, layer_idx, Closure->greenSector);
|
mark_sector(rc, layer_idx, Closure->greenSector);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1922,7 +1921,7 @@ reread:
|
|||||||
&& !GetBit(rc->map, sector))
|
&& !GetBit(rc->map, sector))
|
||||||
{ SetBit(rc->map, sector);
|
{ SetBit(rc->map, sector);
|
||||||
rc->correctable++;
|
rc->correctable++;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, sector, Closure->greenSector);
|
mark_sector(rc, sector, Closure->greenSector);
|
||||||
#endif
|
#endif
|
||||||
fill_correctable_gap(rc, sector);
|
fill_correctable_gap(rc, sector);
|
||||||
@@ -1948,8 +1947,8 @@ reread:
|
|||||||
|
|
||||||
print_progress(rc, TRUE);
|
print_progress(rc, TRUE);
|
||||||
if(rc->readMode != IMAGE_ONLY)
|
if(rc->readMode != IMAGE_ONLY)
|
||||||
{ PrintLog(t);
|
{ PrintLog("%s", t);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && rc->ei)
|
if(Closure->guiMode && rc->ei)
|
||||||
SetAdaptiveReadFootline(t, Closure->foreground);
|
SetAdaptiveReadFootline(t, Closure->foreground);
|
||||||
#endif
|
#endif
|
||||||
@@ -1965,20 +1964,20 @@ reread:
|
|||||||
|
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
if(nsectors>1) PrintCLIorLabel(
|
if(nsectors>1) PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->status,
|
Closure->status,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_("Sectors %lld-%lld: %s\n"),
|
_("Sectors %" PRId64 "-%" PRId64 ": %s\n"),
|
||||||
s, s+nsectors-1, GetLastSenseString(FALSE));
|
s, s+nsectors-1, GetLastSenseString(FALSE));
|
||||||
else PrintCLIorLabel(
|
else PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->status,
|
Closure->status,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_("Sector %lld: %s\n"),
|
_("Sector %" PRId64 ": %s\n"),
|
||||||
s, GetLastSenseString(FALSE));
|
s, GetLastSenseString(FALSE));
|
||||||
|
|
||||||
rc->unreadable += nsectors;
|
rc->unreadable += nsectors;
|
||||||
@@ -1986,7 +1985,7 @@ NULL,
|
|||||||
/* Write nsectors of "dead sector" markers */
|
/* Write nsectors of "dead sector" markers */
|
||||||
|
|
||||||
if(!LargeSeek(rc->image, (gint64)(2048*s)))
|
if(!LargeSeek(rc->image, (gint64)(2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
s, "nds", strerror(errno));
|
s, "nds", strerror(errno));
|
||||||
|
|
||||||
for(i=0; i<nsectors; i++)
|
for(i=0; i<nsectors; i++)
|
||||||
@@ -1994,10 +1993,10 @@ NULL,
|
|||||||
|
|
||||||
n = LargeWrite(rc->image, buf, 2048);
|
n = LargeWrite(rc->image, buf, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
s, "nds", strerror(errno));
|
s, "nds", strerror(errno));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
mark_sector(rc, s+i, Closure->redSector);
|
mark_sector(rc, s+i, Closure->redSector);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -2009,13 +2008,13 @@ NULL,
|
|||||||
Store the remainder of the current interval in the queue. */
|
Store the remainder of the current interval in the queue. */
|
||||||
|
|
||||||
if(s+nsectors-1 >= rc->intervalEnd) /* This was the last sector; interval used up */
|
if(s+nsectors-1 >= rc->intervalEnd) /* This was the last sector; interval used up */
|
||||||
{ Verbose("... Interval [%lld..%lld] used up\n", rc->intervalStart, rc->intervalEnd);
|
{ Verbose("... Interval [%" PRId64 "..%" PRId64 "] used up\n", rc->intervalStart, rc->intervalEnd);
|
||||||
}
|
}
|
||||||
else /* Insert remainder of interval into queue */
|
else /* Insert remainder of interval into queue */
|
||||||
{ rc->intervalStart = s+nsectors;
|
{ rc->intervalStart = s+nsectors;
|
||||||
rc->intervalSize = rc->intervalEnd-rc->intervalStart+1;
|
rc->intervalSize = rc->intervalEnd-rc->intervalStart+1;
|
||||||
|
|
||||||
Verbose("... Interval %lld [%lld..%lld] added\n",
|
Verbose("... Interval %" PRId64 " [%" PRId64 "..%" PRId64 "] added\n",
|
||||||
rc->intervalSize, rc->intervalStart, rc->intervalStart+rc->intervalSize-1);
|
rc->intervalSize, rc->intervalStart, rc->intervalStart+rc->intervalSize-1);
|
||||||
|
|
||||||
add_interval(rc, rc->intervalStart, rc->intervalSize);
|
add_interval(rc, rc->intervalStart, rc->intervalSize);
|
||||||
@@ -2051,7 +2050,7 @@ NULL,
|
|||||||
/* Split the new interval */
|
/* Split the new interval */
|
||||||
|
|
||||||
if(rc->intervalSize>1)
|
if(rc->intervalSize>1)
|
||||||
{ Verbose("*** Splitting [%lld..%lld]\n",
|
{ Verbose("*** Splitting [%" PRId64 "..%" PRId64 "]\n",
|
||||||
rc->intervalStart,rc->intervalStart+rc->intervalSize-1);
|
rc->intervalStart,rc->intervalStart+rc->intervalSize-1);
|
||||||
|
|
||||||
add_interval(rc, rc->intervalStart, rc->intervalSize/2);
|
add_interval(rc, rc->intervalStart, rc->intervalSize/2);
|
||||||
@@ -2061,7 +2060,7 @@ NULL,
|
|||||||
else /* 1 sector intervals can't be split further */
|
else /* 1 sector intervals can't be split further */
|
||||||
{
|
{
|
||||||
rc->intervalEnd = rc->intervalStart;
|
rc->intervalEnd = rc->intervalStart;
|
||||||
Verbose("*** Popped [%lld]\n",rc->intervalStart);
|
Verbose("*** Popped [%" PRId64 "]\n",rc->intervalStart);
|
||||||
}
|
}
|
||||||
|
|
||||||
//print_intervals(rc);
|
//print_intervals(rc);
|
||||||
@@ -2094,7 +2093,7 @@ finished:
|
|||||||
|
|
||||||
/* Force output of final results */
|
/* Force output of final results */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ ChangeSpiralCursor(Closure->readAdaptiveSpiral, -1);
|
{ ChangeSpiralCursor(Closure->readAdaptiveSpiral, -1);
|
||||||
mark_sector(rc, 0, NULL);
|
mark_sector(rc, 0, NULL);
|
||||||
@@ -2113,9 +2112,9 @@ finished:
|
|||||||
percent/10, percent%10);
|
percent/10, percent%10);
|
||||||
|
|
||||||
PrintLog(_("\n%s\n"
|
PrintLog(_("\n%s\n"
|
||||||
"(%lld readable, %lld correctable, %lld still missing).\n"),
|
"(%" PRId64 " readable, %" PRId64 " correctable, %" PRId64 " still missing).\n"),
|
||||||
t, rc->readable, rc->correctable, rc->expectedSectors-total);
|
t, rc->readable, rc->correctable, rc->expectedSectors-total);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetAdaptiveReadFootline(t, Closure->foreground);
|
SetAdaptiveReadFootline(t, Closure->foreground);
|
||||||
#endif
|
#endif
|
||||||
@@ -2129,8 +2128,8 @@ finished:
|
|||||||
if(rc->readMode == IMAGE_ONLY)
|
if(rc->readMode == IMAGE_ONLY)
|
||||||
{ if(rc->readable == rc->expectedSectors)
|
{ if(rc->readable == rc->expectedSectors)
|
||||||
{ char *t = _("\nGood! All sectors have been read.\n");
|
{ char *t = _("\nGood! All sectors have been read.\n");
|
||||||
PrintLog(t);
|
PrintLog("%s", t);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetAdaptiveReadFootline(t, Closure->foreground);
|
SetAdaptiveReadFootline(t, Closure->foreground);
|
||||||
#endif
|
#endif
|
||||||
@@ -2143,10 +2142,10 @@ finished:
|
|||||||
Closure->sectorSkip);
|
Closure->sectorSkip);
|
||||||
|
|
||||||
PrintLog(_("\n%s\n"
|
PrintLog(_("\n%s\n"
|
||||||
"%2d.%1d%% of the image have been read (%lld sectors).\n"),
|
"%2d.%1d%% of the image have been read (%" PRId64 " sectors).\n"),
|
||||||
t, percent/10, percent%10, rc->readable);
|
t, percent/10, percent%10, rc->readable);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetAdaptiveReadFootline(t, Closure->foreground);
|
SetAdaptiveReadFootline(t, Closure->foreground);
|
||||||
#endif
|
#endif
|
||||||
@@ -2167,7 +2166,7 @@ finished:
|
|||||||
|
|
||||||
rc->earlyTermination = FALSE;
|
rc->earlyTermination = FALSE;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
terminate:
|
terminate:
|
||||||
#endif
|
#endif
|
||||||
cleanup((gpointer)rc);
|
cleanup((gpointer)rc);
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ static gboolean curve_idle_func(gpointer data)
|
|||||||
gtk_label_set_text(GTK_LABEL(Closure->readLinearSpeed), utf);
|
gtk_label_set_text(GTK_LABEL(Closure->readLinearSpeed), utf);
|
||||||
g_free(utf);
|
g_free(utf);
|
||||||
|
|
||||||
g_snprintf(buf, 80, _("Unreadable / skipped sectors: %lld"), Closure->readErrors);
|
g_snprintf(buf, 80, _("Unreadable / skipped sectors: %" PRId64 ""), Closure->readErrors);
|
||||||
|
|
||||||
utf = g_locale_to_utf8(buf, -1, NULL, NULL, NULL);
|
utf = g_locale_to_utf8(buf, -1, NULL, NULL, NULL);
|
||||||
gtk_label_set_text(GTK_LABEL(Closure->readLinearErrors), utf);
|
gtk_label_set_text(GTK_LABEL(Closure->readLinearErrors), utf);
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ static void send_eof(read_closure *rc)
|
|||||||
|
|
||||||
static void cleanup(gpointer data)
|
static void cleanup(gpointer data)
|
||||||
{ read_closure *rc = (read_closure*)data;
|
{ read_closure *rc = (read_closure*)data;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int full_read = FALSE;
|
int full_read = FALSE;
|
||||||
int aborted = rc->earlyTermination;
|
int aborted = rc->earlyTermination;
|
||||||
int scan_mode = rc->scanMode;
|
int scan_mode = rc->scanMode;
|
||||||
@@ -73,7 +73,7 @@ static void cleanup(gpointer data)
|
|||||||
in that case. */
|
in that case. */
|
||||||
|
|
||||||
while(renderers_left
|
while(renderers_left
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
&& Closure->stopActions != STOP_SHUTDOWN_ALL
|
&& Closure->stopActions != STOP_SHUTDOWN_ALL
|
||||||
#endif
|
#endif
|
||||||
)
|
)
|
||||||
@@ -112,18 +112,18 @@ static void cleanup(gpointer data)
|
|||||||
|
|
||||||
/* Clean up reader thread */
|
/* Clean up reader thread */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(rc->image)
|
if(rc->image)
|
||||||
full_read = (rc->readOK == rc->image->dh->sectors && !Closure->crcErrors);
|
full_read = (rc->readOK == rc->image->dh->sectors && !Closure->crcErrors);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(rc->unreportedError)
|
{ if(rc->unreportedError)
|
||||||
SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
||||||
_("<span %s>Aborted by unrecoverable error.</span> %lld sectors read, %lld sectors unreadable/skipped so far."),
|
_("<span %s>Aborted by unrecoverable error.</span> %" PRId64 " sectors read, %" PRId64 " sectors unreadable/skipped so far."),
|
||||||
Closure->redMarkup, rc->readOK, Closure->readErrors);
|
Closure->redMarkup, rc->readOK, Closure->readErrors);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -167,13 +167,13 @@ static void cleanup(gpointer data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* trigger failure if some threads are still accessing this */
|
/* trigger failure if some threads are still accessing this */
|
||||||
memset(rc, sizeof(read_closure), 0xff);
|
memset(rc, 0xff, sizeof(read_closure));
|
||||||
g_free(rc);
|
g_free(rc);
|
||||||
|
|
||||||
/* Continue with ecc file creation after read.
|
/* Continue with ecc file creation after read.
|
||||||
NOTE: Images are NOT automatically augmented after a read. */
|
NOTE: Images are NOT automatically augmented after a read. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->readAndCreate && Closure->guiMode && !scan_mode && !aborted) /* General prerequisites */
|
if(Closure->readAndCreate && Closure->guiMode && !scan_mode && !aborted) /* General prerequisites */
|
||||||
{ if( !strncmp(Closure->methodName, "RS01", 4) /* codec prerequisites */
|
{ if( !strncmp(Closure->methodName, "RS01", 4) /* codec prerequisites */
|
||||||
|| (!strncmp(Closure->methodName, "RS03", 4) && Closure->eccTarget == ECC_FILE) )
|
|| (!strncmp(Closure->methodName, "RS03", 4) && Closure->eccTarget == ECC_FILE) )
|
||||||
@@ -211,7 +211,7 @@ static void register_reader(read_closure *rc)
|
|||||||
{
|
{
|
||||||
if(rc->scanMode) /* Output messages differ in read and scan mode */
|
if(rc->scanMode) /* Output messages differ in read and scan mode */
|
||||||
{ RegisterCleanup(_("Scanning aborted"), cleanup, rc);
|
{ RegisterCleanup(_("Scanning aborted"), cleanup, rc);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
||||||
"<big>%s</big>\n<i>%s</i>",
|
"<big>%s</big>\n<i>%s</i>",
|
||||||
@@ -221,7 +221,7 @@ static void register_reader(read_closure *rc)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ RegisterCleanup(_("Reading aborted"), cleanup, rc);
|
{ RegisterCleanup(_("Reading aborted"), cleanup, rc);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
||||||
"<big>%s</big>\n<i>%s</i>",
|
"<big>%s</big>\n<i>%s</i>",
|
||||||
@@ -252,7 +252,7 @@ static void determine_mode(read_closure *rc)
|
|||||||
rc->msg = g_strdup(_("Scanning medium for read errors."));
|
rc->msg = g_strdup(_("Scanning medium for read errors."));
|
||||||
|
|
||||||
PrintLog("%s\n", rc->msg);
|
PrintLog("%s\n", rc->msg);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(rc->eccMethod)
|
{ if(rc->eccMethod)
|
||||||
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
||||||
@@ -267,7 +267,7 @@ static void determine_mode(read_closure *rc)
|
|||||||
|
|
||||||
rc->readMarker = 0;
|
rc->readMarker = 0;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
InitializeCurve(rc, rc->image->dh->maxRate, rc->image->dh->canC2Scan);
|
InitializeCurve(rc, rc->image->dh->maxRate, rc->image->dh->canC2Scan);
|
||||||
#endif
|
#endif
|
||||||
@@ -277,7 +277,7 @@ static void determine_mode(read_closure *rc)
|
|||||||
|
|
||||||
/*** If no image file exists, open a new one. */
|
/*** If no image file exists, open a new one. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
reopen_image:
|
reopen_image:
|
||||||
#endif
|
#endif
|
||||||
if(!LargeStat(Closure->imageName, &image_size))
|
if(!LargeStat(Closure->imageName, &image_size))
|
||||||
@@ -291,7 +291,7 @@ reopen_image:
|
|||||||
Stop(_("Can't open %s:\n%s"),Closure->imageName,strerror(errno));
|
Stop(_("Can't open %s:\n%s"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
PrintLog(_("Creating new %s image.\n"),Closure->imageName);
|
PrintLog(_("Creating new %s image.\n"),Closure->imageName);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(rc->eccMethod)
|
{ if(rc->eccMethod)
|
||||||
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
||||||
@@ -305,7 +305,7 @@ reopen_image:
|
|||||||
rc->rereading = FALSE;
|
rc->rereading = FALSE;
|
||||||
rc->readMarker = 0;
|
rc->readMarker = 0;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
InitializeCurve(rc, rc->image->dh->maxRate, rc->image->dh->canC2Scan);
|
InitializeCurve(rc, rc->image->dh->maxRate, rc->image->dh->canC2Scan);
|
||||||
#endif
|
#endif
|
||||||
@@ -354,11 +354,11 @@ reopen_image:
|
|||||||
|
|
||||||
if(!unknown_fingerprint && memcmp(image_fp, medium_fp, 16))
|
if(!unknown_fingerprint && memcmp(image_fp, medium_fp, 16))
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
Stop(_("Image file does not match the optical disc."));
|
Stop(_("Image file does not match the optical disc."));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ int answer = ConfirmImageDeletion(Closure->imageName);
|
{ int answer = ConfirmImageDeletion(Closure->imageName);
|
||||||
|
|
||||||
@@ -385,21 +385,21 @@ reopen_image:
|
|||||||
|
|
||||||
if(!Closure->readStart && !Closure->readEnd
|
if(!Closure->readStart && !Closure->readEnd
|
||||||
&& rc->readMarker < rc->image->dh->sectors-1 && Closure->readingPasses <= 1)
|
&& rc->readMarker < rc->image->dh->sectors-1 && Closure->readingPasses <= 1)
|
||||||
{ PrintLog(_("Completing image %s. Continuing with sector %lld.\n"),
|
{ PrintLog(_("Completing image %s. Continuing with sector %" PRId64 ".\n"),
|
||||||
Closure->imageName, rc->readMarker);
|
Closure->imageName, rc->readMarker);
|
||||||
rc->firstSector = rc->readMarker;
|
rc->firstSector = rc->readMarker;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->additionalSpiralColor = 0; /* blue */
|
Closure->additionalSpiralColor = 0; /* blue */
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("Completing image %s. Only missing sectors will be read.\n"), Closure->imageName);
|
{ PrintLog(_("Completing image %s. Only missing sectors will be read.\n"), Closure->imageName);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->additionalSpiralColor = 3; /* dark green*/
|
Closure->additionalSpiralColor = 3; /* dark green*/
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
||||||
"<big>%s</big>\n<i>%s</i>",rc->msg,rc->image->dh->mediumDescr);
|
"<big>%s</big>\n<i>%s</i>",rc->msg,rc->image->dh->mediumDescr);
|
||||||
@@ -423,7 +423,7 @@ static void fill_gap(read_closure *rc)
|
|||||||
s = rc->readMarker;
|
s = rc->readMarker;
|
||||||
|
|
||||||
if(!LargeSeek(rc->writerImage, (gint64)(2048*s)))
|
if(!LargeSeek(rc->writerImage, (gint64)(2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
s, "fill", strerror(errno));
|
s, "fill", strerror(errno));
|
||||||
|
|
||||||
while(s < rc->firstSector)
|
while(s < rc->firstSector)
|
||||||
@@ -432,7 +432,7 @@ static void fill_gap(read_closure *rc)
|
|||||||
CreateMissingSector(buf, s, rc->image->imageFP, FINGERPRINT_SECTOR, rc->volumeLabel);
|
CreateMissingSector(buf, s, rc->image->imageFP, FINGERPRINT_SECTOR, rc->volumeLabel);
|
||||||
n = LargeWrite(rc->writerImage, buf, 2048);
|
n = LargeWrite(rc->writerImage, buf, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
s, "fill", strerror(errno));
|
s, "fill", strerror(errno));
|
||||||
s++;
|
s++;
|
||||||
}
|
}
|
||||||
@@ -463,7 +463,7 @@ static void prepare_crc_cache(read_closure *rc)
|
|||||||
|
|
||||||
// FIXME: reuse CrcBuf and write respective message
|
// FIXME: reuse CrcBuf and write respective message
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
||||||
"<big>%s</big>\n<i>%s</i>",
|
"<big>%s</big>\n<i>%s</i>",
|
||||||
@@ -474,7 +474,7 @@ static void prepare_crc_cache(read_closure *rc)
|
|||||||
if(rc->eccMethod->getCrcBuf)
|
if(rc->eccMethod->getCrcBuf)
|
||||||
{ Closure->crcBuf = rc->eccMethod->getCrcBuf(rc->image);
|
{ Closure->crcBuf = rc->eccMethod->getCrcBuf(rc->image);
|
||||||
Closure->crcBuf->crcCached = TRUE;
|
Closure->crcBuf->crcCached = TRUE;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
RedrawReadLinearWindow();
|
RedrawReadLinearWindow();
|
||||||
#endif
|
#endif
|
||||||
@@ -493,7 +493,7 @@ static void prepare_crc_cache(read_closure *rc)
|
|||||||
rc->eccMethod->resetCksums(rc->image);
|
rc->eccMethod->resetCksums(rc->image);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
||||||
"<big>%s</big>\n<i>%s</i>", rc->msg, rc->image->dh->mediumDescr);
|
"<big>%s</big>\n<i>%s</i>", rc->msg, rc->image->dh->mediumDescr);
|
||||||
@@ -516,7 +516,7 @@ static void prepare_crc_cache(read_closure *rc)
|
|||||||
|
|
||||||
static void prepare_timer(read_closure *rc)
|
static void prepare_timer(read_closure *rc)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && Closure->spinupDelay)
|
if(Closure->guiMode && Closure->spinupDelay)
|
||||||
SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
||||||
_("Waiting %d seconds for drive to spin up...\n"), Closure->spinupDelay);
|
_("Waiting %d seconds for drive to spin up...\n"), Closure->spinupDelay);
|
||||||
@@ -524,7 +524,7 @@ static void prepare_timer(read_closure *rc)
|
|||||||
|
|
||||||
SpinupDevice(rc->image->dh);
|
SpinupDevice(rc->image->dh);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && Closure->spinupDelay)
|
if(Closure->guiMode && Closure->spinupDelay)
|
||||||
SwitchAndSetFootline(Closure->readLinearNotebook, 0, Closure->readLinearFootline, "ignore");
|
SwitchAndSetFootline(Closure->readLinearNotebook, 0, Closure->readLinearFootline, "ignore");
|
||||||
#endif
|
#endif
|
||||||
@@ -542,10 +542,10 @@ static void prepare_timer(read_closure *rc)
|
|||||||
static void show_progress(read_closure *rc)
|
static void show_progress(read_closure *rc)
|
||||||
{ int percent;
|
{ int percent;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && rc->lastErrorsPrinted != Closure->readErrors)
|
if(Closure->guiMode && rc->lastErrorsPrinted != Closure->readErrors)
|
||||||
{ SetLabelText(GTK_LABEL(Closure->readLinearErrors),
|
{ SetLabelText(GTK_LABEL(Closure->readLinearErrors),
|
||||||
_("Unreadable / skipped sectors: %lld"), Closure->readErrors);
|
_("Unreadable / skipped sectors: %" PRId64 ""), Closure->readErrors);
|
||||||
rc->lastErrorsPrinted = Closure->readErrors;
|
rc->lastErrorsPrinted = Closure->readErrors;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -555,7 +555,7 @@ static void show_progress(read_closure *rc)
|
|||||||
|
|
||||||
if(rc->lastPercent != percent)
|
if(rc->lastPercent != percent)
|
||||||
{ gulong ignore;
|
{ gulong ignore;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int color;
|
int color;
|
||||||
|
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
@@ -564,7 +564,7 @@ static void show_progress(read_closure *rc)
|
|||||||
|
|
||||||
if(rc->readOK <= rc->lastReadOK) /* nothing read since last sample? */
|
if(rc->readOK <= rc->lastReadOK) /* nothing read since last sample? */
|
||||||
{ rc->speed = 0.0;
|
{ rc->speed = 0.0;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->readErrors - rc->previousReadErrors > 0)
|
if(Closure->readErrors - rc->previousReadErrors > 0)
|
||||||
color = 2;
|
color = 2;
|
||||||
else if(Closure->crcErrors - rc->previousCRCErrors > 0)
|
else if(Closure->crcErrors - rc->previousCRCErrors > 0)
|
||||||
@@ -585,7 +585,7 @@ static void show_progress(read_closure *rc)
|
|||||||
double elapsed = g_timer_elapsed(rc->speedTimer, &ignore);
|
double elapsed = g_timer_elapsed(rc->speedTimer, &ignore);
|
||||||
double kb_sec = kb_read / elapsed;
|
double kb_sec = kb_read / elapsed;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->readErrors - rc->previousReadErrors > 0)
|
if(Closure->readErrors - rc->previousReadErrors > 0)
|
||||||
color = 2;
|
color = 2;
|
||||||
else if(Closure->crcErrors - rc->previousCRCErrors > 0)
|
else if(Closure->crcErrors - rc->previousCRCErrors > 0)
|
||||||
@@ -596,7 +596,7 @@ static void show_progress(read_closure *rc)
|
|||||||
if(rc->firstSpeedValue)
|
if(rc->firstSpeedValue)
|
||||||
{ rc->speed = kb_sec / rc->image->dh->singleRate;
|
{ rc->speed = kb_sec / rc->image->dh->singleRate;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ AddCurveValues(rc, rc->lastPercent, color, rc->maxC2);
|
{ AddCurveValues(rc, rc->lastPercent, color, rc->maxC2);
|
||||||
AddCurveValues(rc, percent, color, rc->maxC2);
|
AddCurveValues(rc, percent, color, rc->maxC2);
|
||||||
@@ -624,7 +624,7 @@ static void show_progress(read_closure *rc)
|
|||||||
cut_peaks=3;
|
cut_peaks=3;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
AddCurveValues(rc, percent, color, rc->maxC2);
|
AddCurveValues(rc, percent, color, rc->maxC2);
|
||||||
#endif
|
#endif
|
||||||
@@ -636,10 +636,10 @@ static void show_progress(read_closure *rc)
|
|||||||
|
|
||||||
if(sp >= Closure->speedWarning)
|
if(sp >= Closure->speedWarning)
|
||||||
{ if(delta > 0.0)
|
{ if(delta > 0.0)
|
||||||
PrintCLI(_("Sector %lld: Speed increased to %4.1fx\n"),
|
PrintCLI(_("Sector %" PRId64 ": Speed increased to %4.1fx\n"),
|
||||||
rc->readPos, fabs(rc->speed));
|
rc->readPos, fabs(rc->speed));
|
||||||
else
|
else
|
||||||
PrintCLI(_("Sector %lld: Speed dropped to %4.1fx\n"),
|
PrintCLI(_("Sector %" PRId64 ": Speed dropped to %4.1fx\n"),
|
||||||
rc->readPos, fabs(rc->speed));
|
rc->readPos, fabs(rc->speed));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -700,14 +700,14 @@ static gpointer worker_thread(read_closure *rc)
|
|||||||
{ int n;
|
{ int n;
|
||||||
|
|
||||||
if(!LargeSeek(rc->writerImage, (gint64)(2048*s)))
|
if(!LargeSeek(rc->writerImage, (gint64)(2048*s)))
|
||||||
{ rc->workerError = g_strdup_printf(_("Failed seeking to sector %lld in image [%s]: %s"),
|
{ rc->workerError = g_strdup_printf(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
s, "store", strerror(errno));
|
s, "store", strerror(errno));
|
||||||
goto update_mutex;
|
goto update_mutex;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = LargeWrite(rc->writerImage, rc->alignedBuf[rc->writePtr]->buf, 2048*nsectors);
|
n = LargeWrite(rc->writerImage, rc->alignedBuf[rc->writePtr]->buf, 2048*nsectors);
|
||||||
if(n != 2048*nsectors)
|
if(n != 2048*nsectors)
|
||||||
{ rc->workerError = g_strdup_printf(_("Failed writing to sector %lld in image [%s]: %s"),
|
{ rc->workerError = g_strdup_printf(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
s, "store", strerror(errno));
|
s, "store", strerror(errno));
|
||||||
goto update_mutex;
|
goto update_mutex;
|
||||||
}
|
}
|
||||||
@@ -777,7 +777,7 @@ update_mutex:
|
|||||||
*** The reader part
|
*** The reader part
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
static void insert_buttons(GtkDialog *dialog)
|
static void insert_buttons(GtkDialog *dialog)
|
||||||
{
|
{
|
||||||
gtk_dialog_add_buttons(dialog,
|
gtk_dialog_add_buttons(dialog,
|
||||||
@@ -888,9 +888,9 @@ void ReadMediumLinear(gpointer data)
|
|||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
||||||
_("<span %s>Aborted by user request!</span>"),
|
_("<span %s>Aborted by user request!</span> %" PRId64 " sectors read, %" PRId64 " sectors unreadable/skipped so far."),
|
||||||
Closure->redMarkup, rc->readOK,Closure->readErrors);
|
Closure->redMarkup, rc->readOK,Closure->readErrors);
|
||||||
#endif
|
#endif
|
||||||
rc->unreportedError = FALSE; /* suppress respective error message */
|
rc->unreportedError = FALSE; /* suppress respective error message */
|
||||||
@@ -901,7 +901,7 @@ void ReadMediumLinear(gpointer data)
|
|||||||
/*** See if user wants to limit the read range. */
|
/*** See if user wants to limit the read range. */
|
||||||
|
|
||||||
GetReadingRange(rc->image->dh->sectors, &rc->firstSector, &rc->lastSector);
|
GetReadingRange(rc->image->dh->sectors, &rc->firstSector, &rc->lastSector);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(rc->firstSector > 0) /* Mark skipped sectors */
|
if(rc->firstSector > 0) /* Mark skipped sectors */
|
||||||
Closure->additionalSpiralColor = 0; /* blue */
|
Closure->additionalSpiralColor = 0; /* blue */
|
||||||
#endif
|
#endif
|
||||||
@@ -969,7 +969,7 @@ next_reading_pass:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Closure->sectorSkip = 0;
|
Closure->sectorSkip = 0;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
MarkExistingSectors();
|
MarkExistingSectors();
|
||||||
#endif
|
#endif
|
||||||
@@ -989,12 +989,12 @@ next_reading_pass:
|
|||||||
while(rc->readPos<=rc->lastSector)
|
while(rc->readPos<=rc->lastSector)
|
||||||
{ int cluster_mask = rc->image->dh->clusterSize-1;
|
{ int cluster_mask = rc->image->dh->clusterSize-1;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* somebody hit the Stop button */
|
if(Closure->stopActions) /* somebody hit the Stop button */
|
||||||
{
|
{
|
||||||
if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
{ SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
{ SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
||||||
_("<span %s>Aborted by user request!</span> %lld sectors read, %lld sectors unreadable/skipped so far."),
|
_("<span %s>Aborted by user request!</span> %" PRId64 " sectors read, %" PRId64 " sectors unreadable/skipped so far."),
|
||||||
Closure->redMarkup, rc->readOK,Closure->readErrors);
|
Closure->redMarkup, rc->readOK,Closure->readErrors);
|
||||||
}
|
}
|
||||||
rc->unreportedError = FALSE; /* suppress respective error message */
|
rc->unreportedError = FALSE; /* suppress respective error message */
|
||||||
@@ -1040,7 +1040,7 @@ reread:
|
|||||||
|
|
||||||
else
|
else
|
||||||
{ if(!LargeSeek(rc->readerImage, (gint64)(2048*rc->readPos)))
|
{ if(!LargeSeek(rc->readerImage, (gint64)(2048*rc->readPos)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
rc->readPos, "reread", strerror(errno));
|
rc->readPos, "reread", strerror(errno));
|
||||||
|
|
||||||
if(rc->readPos+nsectors > rc->readMarker)
|
if(rc->readPos+nsectors > rc->readMarker)
|
||||||
@@ -1052,7 +1052,7 @@ reread:
|
|||||||
|
|
||||||
n = LargeRead(rc->readerImage, sector_buf, 2048);
|
n = LargeRead(rc->readerImage, sector_buf, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("unexpected read error in image for sector %lld"),rc->readPos);
|
Stop(_("unexpected read error in image for sector %" PRId64 ""),rc->readPos);
|
||||||
err = CheckForMissingSector(sector_buf, rc->readPos+i,
|
err = CheckForMissingSector(sector_buf, rc->readPos+i,
|
||||||
rc->image->fpState == 2 ? rc->image->imageFP : NULL,
|
rc->image->fpState == 2 ? rc->image->imageFP : NULL,
|
||||||
rc->image->fpSector);
|
rc->image->fpSector);
|
||||||
@@ -1087,7 +1087,7 @@ reread:
|
|||||||
g_mutex_lock(rc->mutex);
|
g_mutex_lock(rc->mutex);
|
||||||
if(rc->workerError) /* something went wrong in the worker thread */
|
if(rc->workerError) /* something went wrong in the worker thread */
|
||||||
{ g_mutex_unlock(rc->mutex);
|
{ g_mutex_unlock(rc->mutex);
|
||||||
Stop(rc->workerError);
|
Stop("%s", rc->workerError);
|
||||||
}
|
}
|
||||||
while(rc->bufState[rc->readPtr] != BUF_EMPTY)
|
while(rc->bufState[rc->readPtr] != BUF_EMPTY)
|
||||||
{ g_cond_wait(rc->canRead, rc->mutex);
|
{ g_cond_wait(rc->canRead, rc->mutex);
|
||||||
@@ -1102,18 +1102,18 @@ reread:
|
|||||||
if(status && !Closure->ignoreFatalSense
|
if(status && !Closure->ignoreFatalSense
|
||||||
&& rc->image->dh->sense.sense_key && rc->image->dh->sense.sense_key != 3 && rc->image->dh->sense.sense_key != 5)
|
&& rc->image->dh->sense.sense_key && rc->image->dh->sense.sense_key != 3 && rc->image->dh->sense.sense_key != 5)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int answer;
|
int answer;
|
||||||
|
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
Stop(_("Sector %lld: %s\nCan not recover from above error.\n"
|
Stop(_("Sector %" PRId64 ": %s\nCan not recover from above error.\n"
|
||||||
"Use the --ignore-fatal-sense option to override."),
|
"Use the --ignore-fatal-sense option to override."),
|
||||||
rc->readPos, GetLastSenseString(FALSE));
|
rc->readPos, GetLastSenseString(FALSE));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, insert_buttons,
|
answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, insert_buttons,
|
||||||
_("Sector %lld: %s\n\n"
|
_("Sector %" PRId64 ": %s\n\n"
|
||||||
"It may not be possible to recover from this error.\n"
|
"It may not be possible to recover from this error.\n"
|
||||||
"Should the reading continue and ignore this error?"),
|
"Should the reading continue and ignore this error?"),
|
||||||
rc->readPos, GetLastSenseString(FALSE));
|
rc->readPos, GetLastSenseString(FALSE));
|
||||||
@@ -1124,7 +1124,7 @@ reread:
|
|||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
||||||
_("<span %s>Aborted by user request!</span> %lld sectors read, %lld sectors unreadable/skipped so far."),
|
_("<span %s>Aborted by user request!</span> %" PRId64 " sectors read, %" PRId64 " sectors unreadable/skipped so far."),
|
||||||
Closure->redMarkup, rc->readOK,Closure->readErrors);
|
Closure->redMarkup, rc->readOK,Closure->readErrors);
|
||||||
rc->unreportedError = FALSE; /* suppress respective error message */
|
rc->unreportedError = FALSE; /* suppress respective error message */
|
||||||
goto terminate;
|
goto terminate;
|
||||||
@@ -1140,7 +1140,7 @@ reread:
|
|||||||
for(i=0; i<nsectors; i++)
|
for(i=0; i<nsectors; i++)
|
||||||
{ if(rc->image->dh->c2[i])
|
{ if(rc->image->dh->c2[i])
|
||||||
{ if(!status) /* Do not print C2 and error messages together */
|
{ if(!status) /* Do not print C2 and error messages together */
|
||||||
PrintCLI(_("Sector %lld: %3d C2 errors.%s\n"),
|
PrintCLI(_("Sector %" PRId64 ": %3d C2 errors.%s\n"),
|
||||||
rc->readPos+i, rc->image->dh->c2[i], " ");
|
rc->readPos+i, rc->image->dh->c2[i], " ");
|
||||||
|
|
||||||
if(rc->image->dh->c2[i] > rc->maxC2) /* remember highest value */
|
if(rc->image->dh->c2[i] > rc->maxC2) /* remember highest value */
|
||||||
@@ -1240,7 +1240,7 @@ reread:
|
|||||||
g_mutex_lock(rc->mutex);
|
g_mutex_lock(rc->mutex);
|
||||||
if(rc->workerError) /* something went wrong in the worker thread */
|
if(rc->workerError) /* something went wrong in the worker thread */
|
||||||
{ g_mutex_unlock(rc->mutex);
|
{ g_mutex_unlock(rc->mutex);
|
||||||
Stop(rc->workerError);
|
Stop("%s", rc->workerError);
|
||||||
}
|
}
|
||||||
|
|
||||||
while(rc->bufState[rc->readPtr] != BUF_EMPTY)
|
while(rc->bufState[rc->readPtr] != BUF_EMPTY)
|
||||||
@@ -1272,12 +1272,12 @@ reread:
|
|||||||
{ int i;
|
{ int i;
|
||||||
|
|
||||||
PrintCLIorLabel(
|
PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->status,
|
Closure->status,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_("Sector %lld: %s Skipping %d sectors.\n"),
|
_("Sector %" PRId64 ": %s Skipping %d sectors.\n"),
|
||||||
rc->readPos, GetLastSenseString(FALSE), nfill-1);
|
rc->readPos, GetLastSenseString(FALSE), nfill-1);
|
||||||
for(i=0; i<nfill; i++) /* workaround: large values for nfill */
|
for(i=0; i<nfill; i++) /* workaround: large values for nfill */
|
||||||
{ Closure->readErrors++; /* would exceed sampling of green/red */
|
{ Closure->readErrors++; /* would exceed sampling of green/red */
|
||||||
@@ -1305,12 +1305,12 @@ NULL,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintCLIorLabel(
|
{ PrintCLIorLabel(
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Closure->status,
|
Closure->status,
|
||||||
#else
|
#else
|
||||||
NULL,
|
NULL,
|
||||||
#endif
|
#endif
|
||||||
_("Sector %lld: %s\n"),
|
_("Sector %" PRId64 ": %s\n"),
|
||||||
rc->readPos, GetLastSenseString(FALSE));
|
rc->readPos, GetLastSenseString(FALSE));
|
||||||
if(rc->readPos >= rc->image->dh->sectors - 2) tao_tail++;
|
if(rc->readPos >= rc->image->dh->sectors - 2) tao_tail++;
|
||||||
Closure->readErrors++;
|
Closure->readErrors++;
|
||||||
@@ -1332,7 +1332,7 @@ step_counter:
|
|||||||
to checksum means we have ecc data - we can fix the image using ecc
|
to checksum means we have ecc data - we can fix the image using ecc
|
||||||
rather than by re-reading it. */
|
rather than by re-reading it. */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
ChangeSpiralCursor(Closure->readLinearSpiral, -1); /* switch cursor off */
|
ChangeSpiralCursor(Closure->readLinearSpiral, -1); /* switch cursor off */
|
||||||
#endif
|
#endif
|
||||||
@@ -1345,7 +1345,7 @@ step_counter:
|
|||||||
&& rc->pass < Closure->readingPasses)
|
&& rc->pass < Closure->readingPasses)
|
||||||
{ int renderers_left = TRUE;
|
{ int renderers_left = TRUE;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
SetLabelText(GTK_LABEL(Closure->readLinearHeadline),
|
||||||
_("<big>Trying to complete image, reading pass %d of %d.</big>\n%s"),
|
_("<big>Trying to complete image, reading pass %d of %d.</big>\n%s"),
|
||||||
@@ -1389,8 +1389,8 @@ step_counter:
|
|||||||
/* We were re-reading an incomplete image */
|
/* We were re-reading an incomplete image */
|
||||||
|
|
||||||
if(rc->rereading)
|
if(rc->rereading)
|
||||||
{ if(!Closure->readErrors) t = g_strdup_printf(_("%lld sectors read. "),rc->readOK);
|
{ if(!Closure->readErrors) t = g_strdup_printf(_("%" PRId64 " sectors read. "),rc->readOK);
|
||||||
else t = g_strdup_printf(_("%lld sectors read; %lld unreadable sectors."),rc->readOK,Closure->readErrors);
|
else t = g_strdup_printf(_("%" PRId64 " sectors read; %" PRId64 " unreadable sectors."),rc->readOK,Closure->readErrors);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We were reading the image for the first time */
|
/* We were reading the image for the first time */
|
||||||
@@ -1402,7 +1402,7 @@ step_counter:
|
|||||||
{
|
{
|
||||||
if(rc->image->eccFile) /* ...maybe wrong image size? */
|
if(rc->image->eccFile) /* ...maybe wrong image size? */
|
||||||
{ if(rc->image->dh->sectors != rc->image->expectedSectors)
|
{ if(rc->image->dh->sectors != rc->image->expectedSectors)
|
||||||
t = g_strdup_printf(_("All sectors successfully read, but wrong image length (%lld sectors difference)"), rc->image->dh->sectors - rc->image->expectedSectors);
|
t = g_strdup_printf(_("All sectors successfully read, but wrong image length (%" PRId64 " sectors difference)"), rc->image->dh->sectors - rc->image->expectedSectors);
|
||||||
}
|
}
|
||||||
/* ...or bad ecc md5 sum (theoretically impossible by now)? */
|
/* ...or bad ecc md5 sum (theoretically impossible by now)? */
|
||||||
if( rc->readOK == rc->image->dh->sectors /* no user limited range */
|
if( rc->readOK == rc->image->dh->sectors /* no user limited range */
|
||||||
@@ -1422,20 +1422,20 @@ step_counter:
|
|||||||
}
|
}
|
||||||
else /* we have unreadable or damaged sectors */
|
else /* we have unreadable or damaged sectors */
|
||||||
{ if(Closure->readErrors && !Closure->crcErrors)
|
{ if(Closure->readErrors && !Closure->crcErrors)
|
||||||
t = g_strdup_printf(_("%lld unreadable sectors."),Closure->readErrors);
|
t = g_strdup_printf(_("%" PRId64 " unreadable sectors."),Closure->readErrors);
|
||||||
else if(!Closure->readErrors && Closure->crcErrors)
|
else if(!Closure->readErrors && Closure->crcErrors)
|
||||||
{ if(md5_failure & CRC_MD5_BAD)
|
{ if(md5_failure & CRC_MD5_BAD)
|
||||||
t = g_strdup_printf(_("%lld CRC errors and a md5sum mismatch in the CRC section."),Closure->crcErrors);
|
t = g_strdup_printf(_("%" PRId64 " CRC errors and a md5sum mismatch in the CRC section."),Closure->crcErrors);
|
||||||
else
|
else
|
||||||
t = g_strdup_printf(_("%lld CRC errors."),Closure->crcErrors);
|
t = g_strdup_printf(_("%" PRId64 " CRC errors."),Closure->crcErrors);
|
||||||
}
|
}
|
||||||
else t = g_strdup_printf(_("%lld CRC errors, %lld unreadable sectors."),
|
else t = g_strdup_printf(_("%" PRId64 " CRC errors, %" PRId64 " unreadable sectors."),
|
||||||
Closure->crcErrors, Closure->readErrors);
|
Closure->crcErrors, Closure->readErrors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintLog("\n%s\n",t);
|
PrintLog("\n%s\n",t);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(rc->scanMode) SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
{ if(rc->scanMode) SwitchAndSetFootline(Closure->readLinearNotebook, 1, Closure->readLinearFootline,
|
||||||
"%s%s",_("Scanning finished: "),t);
|
"%s%s",_("Scanning finished: "),t);
|
||||||
@@ -1451,7 +1451,7 @@ step_counter:
|
|||||||
if(rc->image->dh->mainType == CD && tao_tail && tao_tail == Closure->readErrors && !Closure->noTruncate)
|
if(rc->image->dh->mainType == CD && tao_tail && tao_tail == Closure->readErrors && !Closure->noTruncate)
|
||||||
{ int answer;
|
{ int answer;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("%d sectors missing at the end of the disc.\n"
|
_("%d sectors missing at the end of the disc.\n"
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ void DumpSector(RawBuffer *rb, char *path)
|
|||||||
|
|
||||||
fclose(file);
|
fclose(file);
|
||||||
|
|
||||||
PrintCLI(_("Sector %lld dumped to %s\n"), rb->lba, filename);
|
PrintCLI(_("Sector %" PRId64 " dumped to %s\n"), rb->lba, filename);
|
||||||
|
|
||||||
g_free(filename);
|
g_free(filename);
|
||||||
}
|
}
|
||||||
@@ -477,7 +477,7 @@ static int simple_lec(RawBuffer *rb, unsigned char *frame, char *msg)
|
|||||||
if(q_failures || p_failures || q_corrected || p_corrected)
|
if(q_failures || p_failures || q_corrected || p_corrected)
|
||||||
{
|
{
|
||||||
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld L-EC P/Q results: %d/%d failures, %d/%d corrected (%s).\n",
|
"Sector %" PRId64 " L-EC P/Q results: %d/%d failures, %d/%d corrected (%s).\n",
|
||||||
rb->lba, p_failures, q_failures, p_corrected, q_corrected, msg);
|
rb->lba, p_failures, q_failures, p_corrected, q_corrected, msg);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -559,7 +559,7 @@ int ValidateRawSector(RawBuffer *rb, unsigned char *frame, char *msg)
|
|||||||
|
|
||||||
if(lec_did_sth)
|
if(lec_did_sth)
|
||||||
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by L-EC.\n",
|
"Sector %" PRId64 ": Recovered in raw reader by L-EC.\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -892,7 +892,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{
|
{
|
||||||
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Good. Data section passes EDC test.\n",
|
"Sector %" PRId64 ": Good. Data section passes EDC test.\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -908,7 +908,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{
|
{
|
||||||
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader after correcting sync pattern.\n",
|
"Sector %" PRId64 ": Recovered in raw reader after correcting sync pattern.\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
|
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
@@ -925,7 +925,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{
|
{
|
||||||
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by iterative L-EC.\n",
|
"Sector %" PRId64 ": Recovered in raw reader by iterative L-EC.\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
|
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
@@ -960,7 +960,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(CheckEDC(rb->recovered, rb->xaMode)
|
if(CheckEDC(rb->recovered, rb->xaMode)
|
||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by plausible sector search (0).\n",
|
"Sector %" PRId64 ": Recovered in raw reader by plausible sector search (0).\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -971,7 +971,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(CheckEDC(rb->recovered, rb->xaMode)
|
if(CheckEDC(rb->recovered, rb->xaMode)
|
||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by brute force plausible sector search (0).\n",
|
"Sector %" PRId64 ": Recovered in raw reader by brute force plausible sector search (0).\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -982,7 +982,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(CheckEDC(rb->recovered, rb->xaMode)
|
if(CheckEDC(rb->recovered, rb->xaMode)
|
||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by mutual ack heuristic (0).\n",
|
"Sector %" PRId64 ": Recovered in raw reader by mutual ack heuristic (0).\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -993,7 +993,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(CheckEDC(rb->recovered, rb->xaMode)
|
if(CheckEDC(rb->recovered, rb->xaMode)
|
||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by heuristic L-EC (0).\n",
|
"Sector %" PRId64 ": Recovered in raw reader by heuristic L-EC (0).\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1004,7 +1004,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(CheckEDC(rb->recovered, rb->xaMode)
|
if(CheckEDC(rb->recovered, rb->xaMode)
|
||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by plausible sector search (1).\n",
|
"Sector %" PRId64 ": Recovered in raw reader by plausible sector search (1).\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1015,7 +1015,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(CheckEDC(rb->recovered, rb->xaMode)
|
if(CheckEDC(rb->recovered, rb->xaMode)
|
||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by brute force plausible sector search (1).\n",
|
"Sector %" PRId64 ": Recovered in raw reader by brute force plausible sector search (1).\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1026,7 +1026,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(CheckEDC(rb->recovered, rb->xaMode)
|
if(CheckEDC(rb->recovered, rb->xaMode)
|
||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by mutual ack heuristic (1).\n",
|
"Sector %" PRId64 ": Recovered in raw reader by mutual ack heuristic (1).\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1037,7 +1037,7 @@ int TryCDFrameRecovery(RawBuffer *rb, unsigned char *outbuf)
|
|||||||
if(CheckEDC(rb->recovered, rb->xaMode)
|
if(CheckEDC(rb->recovered, rb->xaMode)
|
||||||
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
&& CheckMSF(rb->recovered, rb->lba, STRICT_MSF_CHECK))
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
"Sector %lld: Recovered in raw reader by heuristic L-EC (1).\n",
|
"Sector %" PRId64 ": Recovered in raw reader by heuristic L-EC (1).\n",
|
||||||
rb->lba);
|
rb->lba);
|
||||||
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
memcpy(outbuf, rb->recovered+rb->dataOffset, 2048);
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -172,7 +172,7 @@ void RS01ReadSector(Image *image, unsigned char *buf, gint64 s)
|
|||||||
{ int n,expected;
|
{ int n,expected;
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
|
||||||
s, strerror(errno));
|
s, strerror(errno));
|
||||||
|
|
||||||
/* Prepare for short reads at the last image sector.
|
/* Prepare for short reads at the last image sector.
|
||||||
@@ -188,7 +188,7 @@ void RS01ReadSector(Image *image, unsigned char *buf, gint64 s)
|
|||||||
|
|
||||||
n = LargeRead(image->file, buf, expected);
|
n = LargeRead(image->file, buf, expected);
|
||||||
if(n != expected)
|
if(n != expected)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),s,strerror(errno));
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),s,strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -207,7 +207,7 @@ void RS01ReadSector(Image *image, unsigned char *buf, gint64 s)
|
|||||||
|
|
||||||
void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, int mode)
|
void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, int mode)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS01Widgets *wl = NULL;
|
RS01Widgets *wl = NULL;
|
||||||
#endif
|
#endif
|
||||||
unsigned char buf[2048];
|
unsigned char buf[2048];
|
||||||
@@ -216,7 +216,7 @@ void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, in
|
|||||||
int crcidx = 0;
|
int crcidx = 0;
|
||||||
struct MD5Context image_md5;
|
struct MD5Context image_md5;
|
||||||
gint64 s, first_missing, last_missing;
|
gint64 s, first_missing, last_missing;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
gint64 prev_missing = 0;
|
gint64 prev_missing = 0;
|
||||||
gint64 prev_crc_errors = 0;
|
gint64 prev_crc_errors = 0;
|
||||||
#endif
|
#endif
|
||||||
@@ -225,7 +225,7 @@ void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, in
|
|||||||
|
|
||||||
/* Extract widget list from method */
|
/* Extract widget list from method */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(method->widgetList)
|
if(method->widgetList)
|
||||||
wl = (RS01Widgets*)method->widgetList;
|
wl = (RS01Widgets*)method->widgetList;
|
||||||
#endif
|
#endif
|
||||||
@@ -263,7 +263,7 @@ void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, in
|
|||||||
|
|
||||||
/* Check for user interruption */
|
/* Check for user interruption */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ image->sectorsMissing += image->sectorSize - s;
|
{ image->sectorsMissing += image->sectorSize - s;
|
||||||
if(crcbuf) g_free(crcbuf);
|
if(crcbuf) g_free(crcbuf);
|
||||||
@@ -305,8 +305,8 @@ void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, in
|
|||||||
if(!current_missing || s==image->sectorSize-1)
|
if(!current_missing || s==image->sectorSize-1)
|
||||||
{ if(first_missing>=0)
|
{ if(first_missing>=0)
|
||||||
{ if(first_missing == last_missing)
|
{ if(first_missing == last_missing)
|
||||||
PrintCLI(_("* missing sector : %lld\n"), first_missing);
|
PrintCLI(_("* missing sector : %" PRId64 "\n"), first_missing);
|
||||||
else PrintCLI(_("* missing sectors : %lld - %lld\n"), first_missing, last_missing);
|
else PrintCLI(_("* missing sectors : %" PRId64 " - %" PRId64 "\n"), first_missing, last_missing);
|
||||||
first_missing = -1;
|
first_missing = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -353,7 +353,7 @@ void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, in
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(crc != crcbuf[crcidx++] && !current_missing)
|
if(crc != crcbuf[crcidx++] && !current_missing)
|
||||||
{ PrintCLI(_("* CRC error, sector: %lld\n"), s);
|
{ PrintCLI(_("* CRC error, sector: %" PRId64 "\n"), s);
|
||||||
image->crcErrors++;
|
image->crcErrors++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -361,7 +361,7 @@ void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, in
|
|||||||
|
|
||||||
MD5Update(&image_md5, buf, n); /* update image md5sum */
|
MD5Update(&image_md5, buf, n); /* update image md5sum */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && mode & PRINT_MODE)
|
if(Closure->guiMode && mode & PRINT_MODE)
|
||||||
percent = (VERIFY_IMAGE_SEGMENTS*(s+1))/image->sectorSize;
|
percent = (VERIFY_IMAGE_SEGMENTS*(s+1))/image->sectorSize;
|
||||||
else
|
else
|
||||||
@@ -370,7 +370,7 @@ void RS01ScanImage(Method *method, Image* image, struct MD5Context *ecc_ctxt, in
|
|||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{ PrintProgress(msg,percent);
|
{ PrintProgress(msg,percent);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && mode & CREATE_CRC)
|
if(Closure->guiMode && mode & CREATE_CRC)
|
||||||
SetProgress(wl->encPBar1, percent, 100);
|
SetProgress(wl->encPBar1, percent, 100);
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ static int calculate_redundancy(char *image_name)
|
|||||||
|
|
||||||
fs = strtoll(Closure->redundancy, NULL, 10);
|
fs = strtoll(Closure->redundancy, NULL, 10);
|
||||||
if(fs < ecc_file_size(sectors, 8) || fs > ecc_file_size(sectors, 100))
|
if(fs < ecc_file_size(sectors, 8) || fs > ecc_file_size(sectors, 100))
|
||||||
Stop(_("Ecc file size %lldm out of useful range [%lld .. %lld]"),
|
Stop(_("Ecc file size %" PRId64 "m out of useful range [%" PRId64 " .. %" PRId64 "]"),
|
||||||
fs, ecc_file_size(sectors, 8), ecc_file_size(sectors, 100));
|
fs, ecc_file_size(sectors, 8), ecc_file_size(sectors, 100));
|
||||||
for(nr=100; nr>8; nr--)
|
for(nr=100; nr>8; nr--)
|
||||||
if(fs >= ecc_file_size(sectors, nr))
|
if(fs >= ecc_file_size(sectors, nr))
|
||||||
@@ -97,7 +97,7 @@ static int calculate_redundancy(char *image_name)
|
|||||||
*** Remove the image file
|
*** Remove the image file
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
static void unlink_image(GtkWidget *label)
|
static void unlink_image(GtkWidget *label)
|
||||||
#else
|
#else
|
||||||
static void unlink_image(void *label)
|
static void unlink_image(void *label)
|
||||||
@@ -106,7 +106,7 @@ static void unlink_image(void *label)
|
|||||||
if(LargeUnlink(Closure->imageName))
|
if(LargeUnlink(Closure->imageName))
|
||||||
{ PrintLog(_("\nImage file %s deleted.\n"),Closure->imageName);
|
{ PrintLog(_("\nImage file %s deleted.\n"),Closure->imageName);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(label),
|
SetLabelText(GTK_LABEL(label),
|
||||||
_("\nImage file %s deleted.\n"), Closure->imageName);
|
_("\nImage file %s deleted.\n"), Closure->imageName);
|
||||||
@@ -114,7 +114,7 @@ static void unlink_image(void *label)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
@@ -135,7 +135,7 @@ static void unlink_image(void *label)
|
|||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{ Method *self;
|
{ Method *self;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS01Widgets *wl;
|
RS01Widgets *wl;
|
||||||
#endif
|
#endif
|
||||||
GaloisTables *gt;
|
GaloisTables *gt;
|
||||||
@@ -153,7 +153,7 @@ static void ecc_cleanup(gpointer data)
|
|||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(ec->earlyTermination)
|
{ if(ec->earlyTermination)
|
||||||
SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
||||||
@@ -176,14 +176,14 @@ static void ecc_cleanup(gpointer data)
|
|||||||
|
|
||||||
if(Closure->enableCurveSwitch)
|
if(Closure->enableCurveSwitch)
|
||||||
{ Closure->enableCurveSwitch = FALSE;
|
{ Closure->enableCurveSwitch = FALSE;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS01ShowCurveButton(ec->self);
|
RS01ShowCurveButton(ec->self);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free(ec);
|
g_free(ec);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -197,7 +197,7 @@ enum { NORMAL, HIGH, GENERIC };
|
|||||||
|
|
||||||
void RS01Create(void)
|
void RS01Create(void)
|
||||||
{ Method *self = FindMethod("RS01");
|
{ Method *self = FindMethod("RS01");
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS01Widgets *wl = (RS01Widgets*)self->widgetList;
|
RS01Widgets *wl = (RS01Widgets*)self->widgetList;
|
||||||
#endif
|
#endif
|
||||||
GaloisTables *gt;
|
GaloisTables *gt;
|
||||||
@@ -224,7 +224,7 @@ void RS01Create(void)
|
|||||||
/*** Register the cleanup procedure for GUI mode */
|
/*** Register the cleanup procedure for GUI mode */
|
||||||
|
|
||||||
ec->self = self;
|
ec->self = self;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
ec->wl = wl;
|
ec->wl = wl;
|
||||||
#endif
|
#endif
|
||||||
ec->earlyTermination = TRUE;
|
ec->earlyTermination = TRUE;
|
||||||
@@ -255,7 +255,7 @@ void RS01Create(void)
|
|||||||
nroots,
|
nroots,
|
||||||
((double)nroots*100.0)/(double)ndata);
|
((double)nroots*100.0)/(double)ndata);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->encHeadline),
|
SetLabelText(GTK_LABEL(wl->encHeadline),
|
||||||
_("<big>Creating the error correction file.</big>\n<i>%s</i>"), ec->msg);
|
_("<big>Creating the error correction file.</big>\n<i>%s</i>"), ec->msg);
|
||||||
@@ -269,7 +269,7 @@ void RS01Create(void)
|
|||||||
{
|
{
|
||||||
if(ConfirmEccDeletion(Closure->eccName))
|
if(ConfirmEccDeletion(Closure->eccName))
|
||||||
LargeUnlink(Closure->eccName);
|
LargeUnlink(Closure->eccName);
|
||||||
#ifndef CLI /* ConfirmEccDeletion always return true if CLI */
|
#ifndef WITH_CLI_ONLY_YES /* ConfirmEccDeletion always return true if CLI */
|
||||||
else
|
else
|
||||||
{ SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
{ SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
||||||
_("<span %s>Aborted to keep existing ecc file.</span>"),
|
_("<span %s>Aborted to keep existing ecc file.</span>"),
|
||||||
@@ -291,8 +291,8 @@ void RS01Create(void)
|
|||||||
Stop(_("Image file %s: %s."),Closure->imageName, strerror(errno));
|
Stop(_("Image file %s: %s."),Closure->imageName, strerror(errno));
|
||||||
}
|
}
|
||||||
if(image->inLast == 2048)
|
if(image->inLast == 2048)
|
||||||
PrintLog(_(": %lld medium sectors.\n"), image->sectorSize);
|
PrintLog(_(": %" PRId64 " medium sectors.\n"), image->sectorSize);
|
||||||
else PrintLog(_(": %lld medium sectors and %d bytes.\n"),
|
else PrintLog(_(": %" PRId64 " medium sectors and %d bytes.\n"),
|
||||||
image->sectorSize-1, image->inLast);
|
image->sectorSize-1, image->inLast);
|
||||||
|
|
||||||
if(!Closure->eccName || !strlen(Closure->eccName))
|
if(!Closure->eccName || !strlen(Closure->eccName))
|
||||||
@@ -311,7 +311,7 @@ void RS01Create(void)
|
|||||||
int percent, last_percent = 0;
|
int percent, last_percent = 0;
|
||||||
char *msg = _("Writing sector checksums: %3d%%");
|
char *msg = _("Writing sector checksums: %3d%%");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->encLabel1),
|
SetLabelText(GTK_LABEL(wl->encLabel1),
|
||||||
_("<b>1. Writing image sector checksums:</b>"));
|
_("<b>1. Writing image sector checksums:</b>"));
|
||||||
@@ -346,7 +346,7 @@ void RS01Create(void)
|
|||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{ PrintProgress(msg,percent);
|
{ PrintProgress(msg,percent);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(wl->encPBar1, percent, 100);
|
SetProgress(wl->encPBar1, percent, 100);
|
||||||
#endif
|
#endif
|
||||||
@@ -363,7 +363,7 @@ void RS01Create(void)
|
|||||||
Checksums are only computed locally and not provided in the cache. */
|
Checksums are only computed locally and not provided in the cache. */
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->encLabel1),
|
SetLabelText(GTK_LABEL(wl->encLabel1),
|
||||||
_("<b>1. Calculating image sector checksums:</b>"));
|
_("<b>1. Calculating image sector checksums:</b>"));
|
||||||
@@ -380,7 +380,7 @@ void RS01Create(void)
|
|||||||
|
|
||||||
LargeUnlink(Closure->eccName); /* Do not leave a CRC-only .ecc file behind */
|
LargeUnlink(Closure->eccName); /* Do not leave a CRC-only .ecc file behind */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{
|
{
|
||||||
if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
@@ -393,19 +393,19 @@ void RS01Create(void)
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(wl->encPBar1, 100, 100);
|
SetProgress(wl->encPBar1, 100, 100);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Stop(_("%lld sectors unread or missing due to errors.\n"), image->sectorsMissing);
|
Stop(_("%" PRId64 " sectors unread or missing due to errors.\n"), image->sectorsMissing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintTimeToLog(ec->timer, "for CRC writing/generation.\n");
|
PrintTimeToLog(ec->timer, "for CRC writing/generation.\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetProgress(wl->encPBar1, 100, 100);
|
{ SetProgress(wl->encPBar1, 100, 100);
|
||||||
ShowWidget(wl->encPBar2);
|
ShowWidget(wl->encPBar2);
|
||||||
@@ -531,7 +531,7 @@ void RS01Create(void)
|
|||||||
{ int offset = 0;
|
{ int offset = 0;
|
||||||
unsigned char *par_idx = ec->parity;
|
unsigned char *par_idx = ec->parity;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
@@ -611,7 +611,7 @@ void RS01Create(void)
|
|||||||
percent = (1000*progress)/max_percent;
|
percent = (1000*progress)/max_percent;
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(wl->encPBar2, percent, 1000);
|
SetProgress(wl->encPBar2, percent, 1000);
|
||||||
else
|
else
|
||||||
@@ -629,7 +629,7 @@ void RS01Create(void)
|
|||||||
{ int offset = 0;
|
{ int offset = 0;
|
||||||
unsigned char *par_idx = ec->parity;
|
unsigned char *par_idx = ec->parity;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
@@ -741,7 +741,7 @@ void RS01Create(void)
|
|||||||
percent = (1000*progress)/max_percent;
|
percent = (1000*progress)/max_percent;
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(wl->encPBar2, percent, 1000);
|
SetProgress(wl->encPBar2, percent, 1000);
|
||||||
else
|
else
|
||||||
@@ -762,7 +762,7 @@ void RS01Create(void)
|
|||||||
{ int offset = 0;
|
{ int offset = 0;
|
||||||
unsigned char *par_idx = ec->parity;
|
unsigned char *par_idx = ec->parity;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
@@ -1041,7 +1041,7 @@ void RS01Create(void)
|
|||||||
percent = (1000*progress)/max_percent;
|
percent = (1000*progress)/max_percent;
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(wl->encPBar2, percent, 1000);
|
SetProgress(wl->encPBar2, percent, 1000);
|
||||||
else
|
else
|
||||||
@@ -1087,7 +1087,7 @@ void RS01Create(void)
|
|||||||
"Make sure to keep this file on a reliable medium.\n"),
|
"Make sure to keep this file on a reliable medium.\n"),
|
||||||
Closure->eccName);
|
Closure->eccName);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetProgress(wl->encPBar2, 100, 100);
|
{ SetProgress(wl->encPBar2, 100, 100);
|
||||||
|
|
||||||
@@ -1103,7 +1103,7 @@ void RS01Create(void)
|
|||||||
if(Closure->unlinkImage)
|
if(Closure->unlinkImage)
|
||||||
{ if(ec->image) CloseImage(ec->image);
|
{ if(ec->image) CloseImage(ec->image);
|
||||||
ec->image = NULL;
|
ec->image = NULL;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
unlink_image(Closure->guiMode ? wl->encFootline2 : NULL);
|
unlink_image(Closure->guiMode ? wl->encFootline2 : NULL);
|
||||||
#else
|
#else
|
||||||
unlink_image(NULL);
|
unlink_image(NULL);
|
||||||
@@ -1114,7 +1114,7 @@ void RS01Create(void)
|
|||||||
|
|
||||||
ec->earlyTermination = FALSE;
|
ec->earlyTermination = FALSE;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
terminate:
|
terminate:
|
||||||
#endif
|
#endif
|
||||||
ecc_cleanup((gpointer)ec);
|
ecc_cleanup((gpointer)ec);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ static void read_crc(LargeFile *ecc, guint32 *buf, int first_sector, int n_secto
|
|||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS01Widgets *wl;
|
RS01Widgets *wl;
|
||||||
#endif
|
#endif
|
||||||
GaloisTables *gt;
|
GaloisTables *gt;
|
||||||
@@ -73,7 +73,7 @@ static void fix_cleanup(gpointer data)
|
|||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(fc->earlyTermination)
|
{ if(fc->earlyTermination)
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
@@ -101,7 +101,7 @@ static void fix_cleanup(gpointer data)
|
|||||||
|
|
||||||
g_free(fc);
|
g_free(fc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -113,7 +113,7 @@ static void fix_cleanup(gpointer data)
|
|||||||
|
|
||||||
void RS01Fix(Image *image)
|
void RS01Fix(Image *image)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Method *method = FindMethod("RS01");
|
Method *method = FindMethod("RS01");
|
||||||
RS01Widgets *wl = (RS01Widgets*)method->widgetList;
|
RS01Widgets *wl = (RS01Widgets*)method->widgetList;
|
||||||
#endif
|
#endif
|
||||||
@@ -141,7 +141,7 @@ void RS01Fix(Image *image)
|
|||||||
/*** Register the cleanup procedure for GUI mode */
|
/*** Register the cleanup procedure for GUI mode */
|
||||||
|
|
||||||
fc->image = image;
|
fc->image = image;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
fc->wl = wl;
|
fc->wl = wl;
|
||||||
#endif
|
#endif
|
||||||
fc->earlyTermination = TRUE;
|
fc->earlyTermination = TRUE;
|
||||||
@@ -155,7 +155,7 @@ void RS01Fix(Image *image)
|
|||||||
eh->eccBytes,
|
eh->eccBytes,
|
||||||
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->fixHeadline),
|
{ SetLabelText(GTK_LABEL(wl->fixHeadline),
|
||||||
_("<big>Repairing the image.</big>\n<i>%s</i>"),fc->msg);
|
_("<big>Repairing the image.</big>\n<i>%s</i>"),fc->msg);
|
||||||
@@ -192,7 +192,7 @@ void RS01Fix(Image *image)
|
|||||||
image->file->size += n;
|
image->file->size += n;
|
||||||
image->inLast += n;
|
image->inLast += n;
|
||||||
if(n != padding)
|
if(n != padding)
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
image->sectorSize, "SC", strerror(errno));
|
image->sectorSize, "SC", strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,14 +206,14 @@ void RS01Fix(Image *image)
|
|||||||
if(diff>0 && diff<=2)
|
if(diff>0 && diff<=2)
|
||||||
{
|
{
|
||||||
int answer = ModalWarningOrCLI(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
int answer = ModalWarningOrCLI(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Image file is %lld sectors longer than expected.\n"
|
_("Image file is %" PRId64 " sectors longer than expected.\n"
|
||||||
"Assuming this is a TAO mode medium.\n"
|
"Assuming this is a TAO mode medium.\n"
|
||||||
"%lld sectors will be removed from the image end.\n"),
|
"%" PRId64 " sectors will be removed from the image end.\n"),
|
||||||
diff, diff);
|
diff, diff);
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
fc->wl->fixFootline,
|
fc->wl->fixFootline,
|
||||||
_("<span %s>Aborted by user request!</span>"),
|
_("<span %s>Aborted by user request!</span>"),
|
||||||
@@ -230,7 +230,7 @@ void RS01Fix(Image *image)
|
|||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(diff>2 && Closure->guiMode)
|
if(diff>2 && Closure->guiMode)
|
||||||
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
trans,
|
trans,
|
||||||
@@ -252,12 +252,12 @@ void RS01Fix(Image *image)
|
|||||||
if(!LargeTruncate(image->file, expected_image_size))
|
if(!LargeTruncate(image->file, expected_image_size))
|
||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
PrintLog(_("Image has been truncated by %lld sectors.\n"), diff);
|
PrintLog(_("Image has been truncated by %" PRId64 " sectors.\n"), diff);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(diff>2 &&
|
if(diff>2 &&
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
!Closure->guiMode)
|
!Closure->guiMode)
|
||||||
#else
|
#else
|
||||||
1)
|
1)
|
||||||
@@ -274,14 +274,14 @@ void RS01Fix(Image *image)
|
|||||||
if(!LargeTruncate(image->file, expected_image_size))
|
if(!LargeTruncate(image->file, expected_image_size))
|
||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
PrintLog(_("Image has been truncated by %lld sectors.\n"), diff);
|
PrintLog(_("Image has been truncated by %" PRId64 " sectors.\n"), diff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(image->sectorSize == image->expectedSectors && image->inLast > eh->inLast)
|
if(image->sectorSize == image->expectedSectors && image->inLast > eh->inLast)
|
||||||
{ int difference = image->inLast - eh->inLast;
|
{ int difference = image->inLast - eh->inLast;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("The image file is %d bytes longer than noted\n"
|
_("The image file is %d bytes longer than noted\n"
|
||||||
@@ -300,7 +300,7 @@ void RS01Fix(Image *image)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode && !Closure->truncate)
|
if(!Closure->guiMode && !Closure->truncate)
|
||||||
#else
|
#else
|
||||||
if(!Closure->truncate)
|
if(!Closure->truncate)
|
||||||
@@ -322,11 +322,11 @@ void RS01Fix(Image *image)
|
|||||||
{ int answer;
|
{ int answer;
|
||||||
|
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Image file appears to be truncated.\n"
|
"%s",_("Image file appears to be truncated.\n"
|
||||||
"Consider completing it with another reading pass before going on.\n"), NULL);
|
"Consider completing it with another reading pass before going on.\n"));
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
fc->wl->fixFootline,
|
fc->wl->fixFootline,
|
||||||
_("<span %s>Aborted by user request!</span>"),
|
_("<span %s>Aborted by user request!</span>"),
|
||||||
@@ -346,7 +346,7 @@ void RS01Fix(Image *image)
|
|||||||
eh->fpSector);
|
eh->fpSector);
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
fc->wl->fixFootline,
|
fc->wl->fixFootline,
|
||||||
_("<span %s>Aborted by user request!</span>"),
|
_("<span %s>Aborted by user request!</span>"),
|
||||||
@@ -399,7 +399,7 @@ void RS01Fix(Image *image)
|
|||||||
|
|
||||||
for(si=0; si<s; si++)
|
for(si=0; si<s; si++)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
@@ -448,7 +448,7 @@ void RS01Fix(Image *image)
|
|||||||
else if(crc != fc->crcBuf[i][cache_sector])
|
else if(crc != fc->crcBuf[i][cache_sector])
|
||||||
{ erasure_map[i] = 3;
|
{ erasure_map[i] = 3;
|
||||||
erasure_list[erasure_count++] = i;
|
erasure_list[erasure_count++] = i;
|
||||||
PrintCLI(_("CRC error in sector %lld\n"),block_idx[i]);
|
PrintCLI(_("CRC error in sector %" PRId64 "\n"),block_idx[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -473,13 +473,13 @@ void RS01Fix(Image *image)
|
|||||||
|
|
||||||
if(erasure_count>nroots) /* uncorrectable */
|
if(erasure_count>nroots) /* uncorrectable */
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
{ PrintCLI(_("* %3d unrepairable sectors: "), erasure_count);
|
{ PrintCLI(_("* %3d unrepairable sectors: "), erasure_count);
|
||||||
|
|
||||||
for(i=0; i<erasure_count; i++)
|
for(i=0; i<erasure_count; i++)
|
||||||
PrintCLI("%lld ", block_idx[erasure_list[i]]);
|
PrintCLI("%" PRId64 " ", block_idx[erasure_list[i]]);
|
||||||
|
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
}
|
}
|
||||||
@@ -498,14 +498,14 @@ void RS01Fix(Image *image)
|
|||||||
continue; /* It's (already) dead, Jim ;-) */
|
continue; /* It's (already) dead, Jim ;-) */
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*idx)))
|
if(!LargeSeek(image->file, (gint64)(2048*idx)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
idx, "FD", strerror(errno));
|
idx, "FD", strerror(errno));
|
||||||
|
|
||||||
CreateMissingSector(buf, idx, eh->mediumFP, eh->fpSector, NULL);
|
CreateMissingSector(buf, idx, eh->mediumFP, eh->fpSector, NULL);
|
||||||
|
|
||||||
n = LargeWrite(image->file, buf, 2048);
|
n = LargeWrite(image->file, buf, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image [%s]: %s"),
|
Stop(_("Failed writing to sector %" PRId64 " in image [%s]: %s"),
|
||||||
idx, "WD", strerror(errno));
|
idx, "WD", strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -670,7 +670,7 @@ void RS01Fix(Image *image)
|
|||||||
for(i=0; i<erasure_count; i++)
|
for(i=0; i<erasure_count; i++)
|
||||||
{ gint64 idx = block_idx[erasure_list[i]];
|
{ gint64 idx = block_idx[erasure_list[i]];
|
||||||
|
|
||||||
PrintLog("%lld ", idx);
|
PrintLog("%" PRId64 " ", idx);
|
||||||
}
|
}
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
break;
|
break;
|
||||||
@@ -724,14 +724,14 @@ void RS01Fix(Image *image)
|
|||||||
{ int old = fc->imgBlock[location][offset];
|
{ int old = fc->imgBlock[location][offset];
|
||||||
int new = old ^ gf_alpha_to[mod_fieldmax(gf_index_of[num1] + gf_index_of[num2] + GF_FIELDMAX - gf_index_of[den])];
|
int new = old ^ gf_alpha_to[mod_fieldmax(gf_index_of[num1] + gf_index_of[num2] + GF_FIELDMAX - gf_index_of[den])];
|
||||||
|
|
||||||
PrintCLI(_("-> Error located in sector %lld at byte %4d (value %02x '%c', expected %02x '%c')\n"),
|
PrintCLI(_("-> Error located in sector %" PRId64 " at byte %4d (value %02x '%c', expected %02x '%c')\n"),
|
||||||
block_idx[location], bi,
|
block_idx[location], bi,
|
||||||
old, canprint(old) ? old : '.',
|
old, canprint(old) ? old : '.',
|
||||||
new, canprint(new) ? new : '.');
|
new, canprint(new) ? new : '.');
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!erasure_map[location])
|
if(!erasure_map[location])
|
||||||
PrintLog(_("Unexpected byte error in sector %lld, byte %d\n"),
|
PrintLog(_("Unexpected byte error in sector %" PRId64 ", byte %d\n"),
|
||||||
block_idx[location], bi);
|
block_idx[location], bi);
|
||||||
|
|
||||||
fc->imgBlock[location][offset] ^= gf_alpha_to[mod_fieldmax(gf_index_of[num1] + gf_index_of[num2] + GF_FIELDMAX - gf_index_of[den])];
|
fc->imgBlock[location][offset] ^= gf_alpha_to[mod_fieldmax(gf_index_of[num1] + gf_index_of[num2] + GF_FIELDMAX - gf_index_of[den])];
|
||||||
@@ -753,12 +753,12 @@ void RS01Fix(Image *image)
|
|||||||
{ gint64 idx = block_idx[erasure_list[i]];
|
{ gint64 idx = block_idx[erasure_list[i]];
|
||||||
int length;
|
int length;
|
||||||
|
|
||||||
PrintCLI("%lld ", idx);
|
PrintCLI("%" PRId64 " ", idx);
|
||||||
|
|
||||||
/* Write the recovered sector */
|
/* Write the recovered sector */
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*idx)))
|
if(!LargeSeek(image->file, (gint64)(2048*idx)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
idx, "FW", strerror(errno));
|
idx, "FW", strerror(errno));
|
||||||
|
|
||||||
if(idx < image->expectedSectors-1) length = 2048;
|
if(idx < image->expectedSectors-1) length = 2048;
|
||||||
@@ -766,7 +766,7 @@ void RS01Fix(Image *image)
|
|||||||
|
|
||||||
n = LargeWrite(image->file, cache_offset+fc->imgBlock[erasure_list[i]], length);
|
n = LargeWrite(image->file, cache_offset+fc->imgBlock[erasure_list[i]], length);
|
||||||
if(n != length)
|
if(n != length)
|
||||||
Stop(_("could not write medium sector %lld:\n%s"),idx,strerror(errno));
|
Stop(_("could not write medium sector %" PRId64 ":\n%s"),idx,strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
@@ -785,7 +785,7 @@ skip:
|
|||||||
|
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{
|
{
|
||||||
RS01AddFixValues(wl, percent, local_plot_max);
|
RS01AddFixValues(wl, percent, local_plot_max);
|
||||||
@@ -808,14 +808,14 @@ skip:
|
|||||||
/*** Print results */
|
/*** Print results */
|
||||||
|
|
||||||
PrintProgress(_("Ecc progress: 100.0%%\n"));
|
PrintProgress(_("Ecc progress: 100.0%%\n"));
|
||||||
if(corrected > 0) PrintLog(_("Repaired sectors: %lld \n"),corrected);
|
if(corrected > 0) PrintLog(_("Repaired sectors: %" PRId64 " \n"),corrected);
|
||||||
if(uncorrected > 0)
|
if(uncorrected > 0)
|
||||||
{ PrintLog(_("Unrepaired sectors: %lld\n"), uncorrected);
|
{ PrintLog(_("Unrepaired sectors: %" PRId64 "\n"), uncorrected);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
||||||
_("Image sectors could not be fully restored "
|
_("Image sectors could not be fully restored "
|
||||||
"(%lld repaired; <span %s>%lld unrepaired</span>)"),
|
"(%" PRId64 " repaired; <span %s>%" PRId64 " unrepaired</span>)"),
|
||||||
corrected, Closure->redMarkup, uncorrected);
|
corrected, Closure->redMarkup, uncorrected);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -833,7 +833,7 @@ skip:
|
|||||||
PrintLog(_("Erasure counts per ecc block: avg = %.1f; worst = %d.\n"),
|
PrintLog(_("Erasure counts per ecc block: avg = %.1f; worst = %d.\n"),
|
||||||
(double)damaged_sec/(double)damaged_ecc,worst_ecc);
|
(double)damaged_sec/(double)damaged_ecc,worst_ecc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && t)
|
if(Closure->guiMode && t)
|
||||||
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
||||||
"%s %s", _("Repair results:"), t);
|
"%s %s", _("Repair results:"), t);
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
#ifndef RS01INCLUDES_H
|
#ifndef RS01INCLUDES_H
|
||||||
#define RS01INCLUDES_H
|
#define RS01INCLUDES_H
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/* Data structs from rs01-window.c */
|
/* Data structs from rs01-window.c */
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@@ -107,7 +107,7 @@ typedef struct
|
|||||||
{ struct MD5Context md5ctxt; /* Complete image checksum */
|
{ struct MD5Context md5ctxt; /* Complete image checksum */
|
||||||
} RS01CksumClosure;
|
} RS01CksumClosure;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/*
|
/*
|
||||||
* These are exported via the Method struct
|
* These are exported via the Method struct
|
||||||
*/
|
*/
|
||||||
@@ -159,7 +159,7 @@ void RS01Create(void);
|
|||||||
|
|
||||||
void RS01Fix(Image*);
|
void RS01Fix(Image*);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/* rs01-window.c */
|
/* rs01-window.c */
|
||||||
|
|
||||||
void RS01AddFixValues(RS01Widgets*, int, int);
|
void RS01AddFixValues(RS01Widgets*, int, int);
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
#include "rs01-includes.h"
|
#include "rs01-includes.h"
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
|
|
||||||
/***
|
/***
|
||||||
*** Reset the verify output window
|
*** Reset the verify output window
|
||||||
@@ -92,11 +92,11 @@ void RS01AddVerifyValues(Method *method, int percent,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if(newMissing)
|
if(newMissing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpMissingSectors), "<span %s>%lld</span>",
|
SetLabelText(GTK_LABEL(wl->cmpMissingSectors), "<span %s>%" PRId64 "</span>",
|
||||||
Closure->redMarkup, totalMissing);
|
Closure->redMarkup, totalMissing);
|
||||||
|
|
||||||
if(newCrcErrors)
|
if(newCrcErrors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpChkSumErrors), "<span %s>%lld</span>",
|
SetLabelText(GTK_LABEL(wl->cmpChkSumErrors), "<span %s>%" PRId64 "</span>",
|
||||||
Closure->redMarkup, totalCrcErrors);
|
Closure->redMarkup, totalCrcErrors);
|
||||||
|
|
||||||
sii->cmpSpiral = wl->cmpSpiral;
|
sii->cmpSpiral = wl->cmpSpiral;
|
||||||
@@ -356,7 +356,7 @@ static void cleanup(gpointer data)
|
|||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
AllowActions(TRUE);
|
AllowActions(TRUE);
|
||||||
#endif
|
#endif
|
||||||
@@ -364,7 +364,7 @@ static void cleanup(gpointer data)
|
|||||||
if(vc->image) CloseImage(vc->image);
|
if(vc->image) CloseImage(vc->image);
|
||||||
g_free(vc);
|
g_free(vc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -373,12 +373,12 @@ static void cleanup(gpointer data)
|
|||||||
void RS01Verify(Image *image)
|
void RS01Verify(Image *image)
|
||||||
{ verify_closure *vc = g_malloc0(sizeof(verify_closure));
|
{ verify_closure *vc = g_malloc0(sizeof(verify_closure));
|
||||||
Method *self = FindMethod("RS01");
|
Method *self = FindMethod("RS01");
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS01Widgets *wl = (RS01Widgets*)self->widgetList;
|
RS01Widgets *wl = (RS01Widgets*)self->widgetList;
|
||||||
#endif
|
#endif
|
||||||
char idigest[33],edigest[33];
|
char idigest[33],edigest[33];
|
||||||
gint64 excess_sectors = 0;
|
gint64 excess_sectors = 0;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
char *ecc_advice = NULL;
|
char *ecc_advice = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -399,7 +399,7 @@ void RS01Verify(Image *image)
|
|||||||
|
|
||||||
/*** Examine the .iso file */
|
/*** Examine the .iso file */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
||||||
_("Comparing image and error correction files."),
|
_("Comparing image and error correction files."),
|
||||||
@@ -407,7 +407,7 @@ void RS01Verify(Image *image)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
vc->image = image;
|
vc->image = image;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(image && image->eccFile)
|
if(image && image->eccFile)
|
||||||
{ if(Closure->guiMode)
|
{ if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpChkSumErrors), "0");
|
SetLabelText(GTK_LABEL(wl->cmpChkSumErrors), "0");
|
||||||
@@ -423,7 +423,7 @@ void RS01Verify(Image *image)
|
|||||||
if(!image || !image->file)
|
if(!image || !image->file)
|
||||||
{ PrintLog(_("not present\n"));
|
{ PrintLog(_("not present\n"));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->cmpImageNotebook, 0, NULL, NULL);
|
SwitchAndSetFootline(wl->cmpImageNotebook, 0, NULL, NULL);
|
||||||
#endif
|
#endif
|
||||||
@@ -431,18 +431,18 @@ void RS01Verify(Image *image)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(image->inLast == 2048)
|
if(image->inLast == 2048)
|
||||||
{ PrintLog(_("present, contains %lld medium sectors.\n"), image->sectorSize);
|
{ PrintLog(_("present, contains %" PRId64 " medium sectors.\n"), image->sectorSize);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageSectors), "%lld", image->sectorSize);
|
SetLabelText(GTK_LABEL(wl->cmpImageSectors), "%" PRId64 "", image->sectorSize);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("present, contains %lld medium sectors and %d bytes.\n"),
|
{ PrintLog(_("present, contains %" PRId64 " medium sectors and %d bytes.\n"),
|
||||||
image->sectorSize-1, image->inLast);
|
image->sectorSize-1, image->inLast);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("%lld sectors + %d bytes"),
|
SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("%" PRId64 " sectors + %d bytes"),
|
||||||
image->sectorSize-1, image->inLast);
|
image->sectorSize-1, image->inLast);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -450,7 +450,7 @@ void RS01Verify(Image *image)
|
|||||||
if(!Closure->quickVerify)
|
if(!Closure->quickVerify)
|
||||||
RS01ScanImage(self, image, NULL, PRINT_MODE);
|
RS01ScanImage(self, image, NULL, PRINT_MODE);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
||||||
@@ -468,11 +468,11 @@ void RS01Verify(Image *image)
|
|||||||
if(image->sectorSize < image->expectedSectors)
|
if(image->sectorSize < image->expectedSectors)
|
||||||
{ diff = image->expectedSectors - image->sectorSize;
|
{ diff = image->expectedSectors - image->sectorSize;
|
||||||
|
|
||||||
PrintLog(_("* truncated image : %lld sectors too short\n"), diff);
|
PrintLog(_("* truncated image : %" PRId64 " sectors too short\n"), diff);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageSectors),
|
SetLabelText(GTK_LABEL(wl->cmpImageSectors),
|
||||||
_("<span %s>%lld (%lld sectors too short)</span>"),
|
_("<span %s>%" PRId64 " (%" PRId64 " sectors too short)</span>"),
|
||||||
Closure->redMarkup, image->sectorSize, diff);
|
Closure->redMarkup, image->sectorSize, diff);
|
||||||
#endif
|
#endif
|
||||||
image->sectorsMissing += diff;
|
image->sectorsMissing += diff;
|
||||||
@@ -484,23 +484,23 @@ void RS01Verify(Image *image)
|
|||||||
|
|
||||||
/*** Show summary of image read */
|
/*** Show summary of image read */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(image->crcErrors)
|
{ if(image->crcErrors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpChkSumErrors),
|
SetLabelText(GTK_LABEL(wl->cmpChkSumErrors),
|
||||||
"<span %s>%lld</span>", Closure->redMarkup, image->crcErrors);
|
"<span %s>%" PRId64 "</span>", Closure->redMarkup, image->crcErrors);
|
||||||
if(image->sectorsMissing)
|
if(image->sectorsMissing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpMissingSectors),
|
SetLabelText(GTK_LABEL(wl->cmpMissingSectors),
|
||||||
"<span %s>%lld</span>", Closure->redMarkup, image->sectorsMissing);
|
"<span %s>%" PRId64 "</span>", Closure->redMarkup, image->sectorsMissing);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(excess_sectors)
|
if(excess_sectors)
|
||||||
{ PrintLog(_("* image too long : %lld excess sectors\n"), excess_sectors);
|
{ PrintLog(_("* image too long : %" PRId64 " excess sectors\n"), excess_sectors);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpImageSectors),
|
{ SetLabelText(GTK_LABEL(wl->cmpImageSectors),
|
||||||
_("<span %s>%lld (%lld excess sectors)</span>"),
|
_("<span %s>%" PRId64 " (%" PRId64 " excess sectors)</span>"),
|
||||||
Closure->redMarkup, image->sectorSize, excess_sectors);
|
Closure->redMarkup, image->sectorSize, excess_sectors);
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
||||||
_("<span %s>Bad image.</span>"),
|
_("<span %s>Bad image.</span>"),
|
||||||
@@ -519,7 +519,7 @@ void RS01Verify(Image *image)
|
|||||||
if(!image->crcErrors)
|
if(!image->crcErrors)
|
||||||
{ PrintLog(_("- good image : all sectors present\n"
|
{ PrintLog(_("- good image : all sectors present\n"
|
||||||
"- image md5sum : %s\n"),idigest);
|
"- image md5sum : %s\n"),idigest);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpImageResult),_("<span %s>Good image.</span>"), Closure->greenMarkup);
|
{ SetLabelText(GTK_LABEL(wl->cmpImageResult),_("<span %s>Good image.</span>"), Closure->greenMarkup);
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageMd5Sum), "%s", idigest);
|
SetLabelText(GTK_LABEL(wl->cmpImageMd5Sum), "%s", idigest);
|
||||||
@@ -527,10 +527,10 @@ void RS01Verify(Image *image)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("* suspicious image : all sectors present, but %lld CRC errors\n"
|
{ PrintLog(_("* suspicious image : all sectors present, but %" PRId64 " CRC errors\n"
|
||||||
"- image md5sum : %s\n"),image->crcErrors,idigest);
|
"- image md5sum : %s\n"),image->crcErrors,idigest);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpImageResult), _("<span %s>Image complete, but contains checksum errors!</span>"), Closure->redMarkup);
|
{ SetLabelText(GTK_LABEL(wl->cmpImageResult), _("<span %s>Image complete, but contains checksum errors!</span>"), Closure->redMarkup);
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageMd5Sum), "%s", idigest);
|
SetLabelText(GTK_LABEL(wl->cmpImageMd5Sum), "%s", idigest);
|
||||||
@@ -540,10 +540,10 @@ void RS01Verify(Image *image)
|
|||||||
}
|
}
|
||||||
else /* sectors are missing */
|
else /* sectors are missing */
|
||||||
{ if(!image->crcErrors)
|
{ if(!image->crcErrors)
|
||||||
PrintLog(_("* BAD image : %lld sectors missing\n"), image->sectorsMissing);
|
PrintLog(_("* BAD image : %" PRId64 " sectors missing\n"), image->sectorsMissing);
|
||||||
else PrintLog(_("* BAD image : %lld sectors missing, %lld CRC errors\n"),
|
else PrintLog(_("* BAD image : %" PRId64 " sectors missing, %" PRId64 " CRC errors\n"),
|
||||||
image->sectorsMissing, image->crcErrors);
|
image->sectorsMissing, image->crcErrors);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
||||||
_("<span %s>Bad image.</span>"), Closure->redMarkup);
|
_("<span %s>Bad image.</span>"), Closure->redMarkup);
|
||||||
@@ -554,7 +554,7 @@ void RS01Verify(Image *image)
|
|||||||
/*** The .ecc file */
|
/*** The .ecc file */
|
||||||
|
|
||||||
process_ecc:
|
process_ecc:
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
||||||
_("Comparing image and error correction files."),
|
_("Comparing image and error correction files."),
|
||||||
@@ -565,7 +565,7 @@ process_ecc:
|
|||||||
|
|
||||||
if(!image)
|
if(!image)
|
||||||
{ PrintLog(_("not present\n"));
|
{ PrintLog(_("not present\n"));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->cmpEccNotebook, 0,
|
SwitchAndSetFootline(wl->cmpEccNotebook, 0,
|
||||||
wl->cmpEccEmptyMsg,_("No error correction file present."));
|
wl->cmpEccEmptyMsg,_("No error correction file present."));
|
||||||
@@ -595,7 +595,7 @@ process_ecc:
|
|||||||
PrintLog(_("unusable\n"));
|
PrintLog(_("unusable\n"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->cmpEccNotebook, 0,
|
SwitchAndSetFootline(wl->cmpEccNotebook, 0,
|
||||||
wl->cmpEccEmptyMsg,_("No error correction file present."));
|
wl->cmpEccEmptyMsg,_("No error correction file present."));
|
||||||
@@ -625,7 +625,7 @@ process_ecc:
|
|||||||
PrintLog(format, _("created by dvdisaster"), major, minor, micro, unstable);
|
PrintLog(format, _("created by dvdisaster"), major, minor, micro, unstable);
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
{ SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
||||||
wl->cmpEccCreatedBy,
|
wl->cmpEccCreatedBy,
|
||||||
@@ -639,7 +639,7 @@ process_ecc:
|
|||||||
PrintLog(format, _("created by dvdisaster"),
|
PrintLog(format, _("created by dvdisaster"),
|
||||||
major, minor, unstable);
|
major, minor, unstable);
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
||||||
wl->cmpEccCreatedBy, format, "dvdisaster",
|
wl->cmpEccCreatedBy, format, "dvdisaster",
|
||||||
@@ -649,7 +649,7 @@ process_ecc:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("created by dvdisaster-0.41.x.\n"));
|
{ PrintLog(_("created by dvdisaster-0.41.x.\n"));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
||||||
wl->cmpEccCreatedBy, "dvdisaster-0.41.x");
|
wl->cmpEccCreatedBy, "dvdisaster-0.41.x");
|
||||||
@@ -663,7 +663,7 @@ process_ecc:
|
|||||||
PrintLog(_("- method : %4s, %d roots, %4.1f%% redundancy.\n"),
|
PrintLog(_("- method : %4s, %d roots, %4.1f%% redundancy.\n"),
|
||||||
method, eh->eccBytes,
|
method, eh->eccBytes,
|
||||||
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMethod), _("%4s, %d roots, %4.1f%% redundancy"),
|
SetLabelText(GTK_LABEL(wl->cmpEccMethod), _("%4s, %d roots, %4.1f%% redundancy"),
|
||||||
method, eh->eccBytes,
|
method, eh->eccBytes,
|
||||||
@@ -676,7 +676,7 @@ process_ecc:
|
|||||||
{ PrintLog(_("- requires : dvdisaster-%d.%d (good)\n"),
|
{ PrintLog(_("- requires : dvdisaster-%d.%d (good)\n"),
|
||||||
eh->neededVersion/10000,
|
eh->neededVersion/10000,
|
||||||
(eh->neededVersion%10000)/100);
|
(eh->neededVersion%10000)/100);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccRequires), "dvdisaster-%d.%d",
|
SetLabelText(GTK_LABEL(wl->cmpEccRequires), "dvdisaster-%d.%d",
|
||||||
eh->neededVersion/10000,
|
eh->neededVersion/10000,
|
||||||
@@ -690,7 +690,7 @@ process_ecc:
|
|||||||
eh->neededVersion/10000,
|
eh->neededVersion/10000,
|
||||||
(eh->neededVersion%10000)/100);
|
(eh->neededVersion%10000)/100);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccRequires),
|
{ SetLabelText(GTK_LABEL(wl->cmpEccRequires),
|
||||||
"<span %s>dvdisaster-%d.%d</span>",
|
"<span %s>dvdisaster-%d.%d</span>",
|
||||||
@@ -711,19 +711,19 @@ process_ecc:
|
|||||||
|
|
||||||
if(!image->file)
|
if(!image->file)
|
||||||
{ if(!ecc_in_last)
|
{ if(!ecc_in_last)
|
||||||
{ PrintLog(_("- medium sectors : %lld\n"), image->expectedSectors);
|
{ PrintLog(_("- medium sectors : %" PRId64 "\n"), image->expectedSectors);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "%lld", image->expectedSectors);
|
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "%" PRId64 "", image->expectedSectors);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("- medium sectors : %lld sectors + %d bytes\n"),
|
{ PrintLog(_("- medium sectors : %" PRId64 " sectors + %d bytes\n"),
|
||||||
image->expectedSectors-1, ecc_in_last);
|
image->expectedSectors-1, ecc_in_last);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors),
|
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors),
|
||||||
_("%lld sectors + %d bytes"),
|
_("%" PRId64 " sectors + %d bytes"),
|
||||||
image->expectedSectors-1, ecc_in_last);
|
image->expectedSectors-1, ecc_in_last);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -734,19 +734,19 @@ process_ecc:
|
|||||||
if(image->sectorSize == image->expectedSectors
|
if(image->sectorSize == image->expectedSectors
|
||||||
&& (!ecc_in_last || image->inLast == eh->inLast))
|
&& (!ecc_in_last || image->inLast == eh->inLast))
|
||||||
{ if(!ecc_in_last)
|
{ if(!ecc_in_last)
|
||||||
{ PrintLog(_("- medium sectors : %lld (good)\n"), image->expectedSectors);
|
{ PrintLog(_("- medium sectors : %" PRId64 " (good)\n"), image->expectedSectors);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "%lld", image->expectedSectors);
|
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "%" PRId64 "", image->expectedSectors);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("- medium sectors : %lld sectors + %d bytes (good)\n"),
|
{ PrintLog(_("- medium sectors : %" PRId64 " sectors + %d bytes (good)\n"),
|
||||||
image->expectedSectors-1, ecc_in_last);
|
image->expectedSectors-1, ecc_in_last);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors),
|
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors),
|
||||||
_("%lld sectors + %d bytes"),
|
_("%" PRId64 " sectors + %d bytes"),
|
||||||
image->expectedSectors-1, ecc_in_last);
|
image->expectedSectors-1, ecc_in_last);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -755,23 +755,23 @@ process_ecc:
|
|||||||
else /* sector sizes differ */
|
else /* sector sizes differ */
|
||||||
{ /* TAO case (1 or 2 sectors more than expected) */
|
{ /* TAO case (1 or 2 sectors more than expected) */
|
||||||
if(image->sectorSize > image->expectedSectors && image->sectorSize - image->expectedSectors <= 2)
|
if(image->sectorSize > image->expectedSectors && image->sectorSize - image->expectedSectors <= 2)
|
||||||
{ PrintLog(_("* medium sectors : %lld (BAD, perhaps TAO/DAO mismatch)\n"), image->expectedSectors);
|
{ PrintLog(_("* medium sectors : %" PRId64 " (BAD, perhaps TAO/DAO mismatch)\n"), image->expectedSectors);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(!ecc_in_last)
|
{ if(!ecc_in_last)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "<span %s>%lld</span>",
|
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "<span %s>%" PRId64 "</span>",
|
||||||
Closure->redMarkup, image->expectedSectors);
|
Closure->redMarkup, image->expectedSectors);
|
||||||
else SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "<span %s>%lld sectors + %d bytes</span>",
|
else SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "<span %s>%" PRId64 " sectors + %d bytes</span>",
|
||||||
Closure->redMarkup, image->expectedSectors-1, ecc_in_last);
|
Closure->redMarkup, image->expectedSectors-1, ecc_in_last);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else /* more than 2 Sectors difference */
|
else /* more than 2 Sectors difference */
|
||||||
{ if(!ecc_in_last)
|
{ if(!ecc_in_last)
|
||||||
{ PrintLog(_("* medium sectors : %lld (BAD)\n"), image->expectedSectors);
|
{ PrintLog(_("* medium sectors : %" PRId64 " (BAD)\n"), image->expectedSectors);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "<span %s>%lld</span>",
|
{ SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "<span %s>%" PRId64 "</span>",
|
||||||
Closure->redMarkup, image->expectedSectors);
|
Closure->redMarkup, image->expectedSectors);
|
||||||
if(!ecc_advice)
|
if(!ecc_advice)
|
||||||
ecc_advice = g_strdup_printf(_("<span %s>Image size does not match error correction file.</span>"), Closure->redMarkup);
|
ecc_advice = g_strdup_printf(_("<span %s>Image size does not match error correction file.</span>"), Closure->redMarkup);
|
||||||
@@ -779,12 +779,12 @@ process_ecc:
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else /* byte size difference */
|
else /* byte size difference */
|
||||||
{ PrintLog(_("* medium sectors : %lld sectors + %d bytes (BAD)\n"),
|
{ PrintLog(_("* medium sectors : %" PRId64 " sectors + %d bytes (BAD)\n"),
|
||||||
image->expectedSectors-1, ecc_in_last);
|
image->expectedSectors-1, ecc_in_last);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors),
|
{ SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors),
|
||||||
_("<span %s>%lld sectors + %d bytes</span>"),
|
_("<span %s>%" PRId64 " sectors + %d bytes</span>"),
|
||||||
Closure->redMarkup, image->expectedSectors-1, ecc_in_last);
|
Closure->redMarkup, image->expectedSectors-1, ecc_in_last);
|
||||||
if(!ecc_advice)
|
if(!ecc_advice)
|
||||||
ecc_advice = g_strdup_printf(_("<span %s>Image size does not match error correction file.</span>"), Closure->redMarkup);
|
ecc_advice = g_strdup_printf(_("<span %s>Image size does not match error correction file.</span>"), Closure->redMarkup);
|
||||||
@@ -803,7 +803,7 @@ process_ecc:
|
|||||||
{ int n = !memcmp(eh->mediumSum, image->mediumSum, 16);
|
{ int n = !memcmp(eh->mediumSum, image->mediumSum, 16);
|
||||||
if(n) PrintLog(_("- image md5sum : %s (good)\n"),edigest);
|
if(n) PrintLog(_("- image md5sum : %s (good)\n"),edigest);
|
||||||
else PrintLog(_("* image md5sum : %s (BAD)\n"),edigest);
|
else PrintLog(_("* image md5sum : %s (BAD)\n"),edigest);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(n) SetLabelText(GTK_LABEL(wl->cmpEccImgMd5Sum), "%s", edigest);
|
{ if(n) SetLabelText(GTK_LABEL(wl->cmpEccImgMd5Sum), "%s", edigest);
|
||||||
else
|
else
|
||||||
@@ -815,7 +815,7 @@ process_ecc:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("- image md5sum : %s\n"),edigest);
|
{ PrintLog(_("- image md5sum : %s\n"),edigest);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccImgMd5Sum), "%s", edigest);
|
SetLabelText(GTK_LABEL(wl->cmpEccImgMd5Sum), "%s", edigest);
|
||||||
#endif
|
#endif
|
||||||
@@ -825,7 +825,7 @@ process_ecc:
|
|||||||
if(image && image->file)
|
if(image && image->file)
|
||||||
{ if(image->fpState != FP_PRESENT)
|
{ if(image->fpState != FP_PRESENT)
|
||||||
{ PrintLog(_("* fingerprint match: NOT POSSIBLE - related sector is missing in image!\n"));
|
{ PrintLog(_("* fingerprint match: NOT POSSIBLE - related sector is missing in image!\n"));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccFingerprint), _("<span %s>missing sector prevents calculation</span>"), Closure->redMarkup);
|
SetLabelText(GTK_LABEL(wl->cmpEccFingerprint), _("<span %s>missing sector prevents calculation</span>"), Closure->redMarkup);
|
||||||
#endif
|
#endif
|
||||||
@@ -835,7 +835,7 @@ process_ecc:
|
|||||||
if(memcmp(image->imageFP, eh->mediumFP, 16))
|
if(memcmp(image->imageFP, eh->mediumFP, 16))
|
||||||
{ PrintLog(_("* fingerprint match: MISMATCH - .iso and .ecc don't belong together!\n"));
|
{ PrintLog(_("* fingerprint match: MISMATCH - .iso and .ecc don't belong together!\n"));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccFingerprint),
|
{ SetLabelText(GTK_LABEL(wl->cmpEccFingerprint),
|
||||||
_("<span %s>mismatch</span>"), Closure->redMarkup);
|
_("<span %s>mismatch</span>"), Closure->redMarkup);
|
||||||
@@ -847,7 +847,7 @@ process_ecc:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("- fingerprint match: good\n"));
|
{ PrintLog(_("- fingerprint match: good\n"));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccFingerprint), _("good"));
|
SetLabelText(GTK_LABEL(wl->cmpEccFingerprint), _("good"));
|
||||||
#endif
|
#endif
|
||||||
@@ -866,17 +866,17 @@ process_ecc:
|
|||||||
ecc_blocks = (image->eccFile->size-image->expectedSectors*sizeof(guint32)-sizeof(EccHeader))/eh->eccBytes;
|
ecc_blocks = (image->eccFile->size-image->expectedSectors*sizeof(guint32)-sizeof(EccHeader))/eh->eccBytes;
|
||||||
|
|
||||||
if(ecc_expected == ecc_blocks)
|
if(ecc_expected == ecc_blocks)
|
||||||
{ PrintLog(_("- ecc blocks : %lld (good)\n"),ecc_blocks);
|
{ PrintLog(_("- ecc blocks : %" PRId64 " (good)\n"),ecc_blocks);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccBlocks), "%lld", ecc_blocks);
|
SetLabelText(GTK_LABEL(wl->cmpEccBlocks), "%" PRId64 "", ecc_blocks);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("* ecc blocks : %lld (BAD, expected %lld)\n"),ecc_blocks,ecc_expected);
|
{ PrintLog(_("* ecc blocks : %" PRId64 " (BAD, expected %" PRId64 ")\n"),ecc_blocks,ecc_expected);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccBlocks), _("<span %s>%lld (bad, expected %lld)</span>"),Closure->redMarkup,ecc_blocks,ecc_expected);
|
SetLabelText(GTK_LABEL(wl->cmpEccBlocks), _("<span %s>%" PRId64 " (bad, expected %" PRId64 ")</span>"),Closure->redMarkup,ecc_blocks,ecc_expected);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -899,17 +899,17 @@ process_ecc:
|
|||||||
percent = (100*count)/image->eccFile->size;
|
percent = (100*count)/image->eccFile->size;
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
PrintProgress(_("- ecc md5sum : %3d%%"),percent);
|
PrintProgress(_("- ecc md5sum : %3d%%"),percent);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else SetLabelText(GTK_LABEL(wl->cmpEccMd5Sum), "%3d%%", percent);
|
else SetLabelText(GTK_LABEL(wl->cmpEccMd5Sum), "%3d%%", percent);
|
||||||
#endif
|
#endif
|
||||||
last_percent = percent;
|
last_percent = percent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccResult),
|
SetLabelText(GTK_LABEL(wl->cmpEccResult),
|
||||||
@@ -924,7 +924,7 @@ process_ecc:
|
|||||||
|
|
||||||
if(memcmp(eh->eccSum, digest, 16))
|
if(memcmp(eh->eccSum, digest, 16))
|
||||||
{ PrintLog(_("* ecc md5sum : BAD, ecc file may be damaged!\n"));
|
{ PrintLog(_("* ecc md5sum : BAD, ecc file may be damaged!\n"));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccMd5Sum), _("<span %s>bad</span>"), Closure->redMarkup);
|
{ SetLabelText(GTK_LABEL(wl->cmpEccMd5Sum), _("<span %s>bad</span>"), Closure->redMarkup);
|
||||||
if(!ecc_advice)
|
if(!ecc_advice)
|
||||||
@@ -934,7 +934,7 @@ process_ecc:
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("- ecc md5sum : %s (good)\n"),edigest);
|
{ PrintLog(_("- ecc md5sum : %s (good)\n"),edigest);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMd5Sum), "%s", edigest);
|
SetLabelText(GTK_LABEL(wl->cmpEccMd5Sum), "%s", edigest);
|
||||||
#endif
|
#endif
|
||||||
@@ -943,10 +943,10 @@ process_ecc:
|
|||||||
skip_ecc:
|
skip_ecc:
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(ecc_advice)
|
{ if(ecc_advice)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccResult), ecc_advice);
|
{ SetLabelText(GTK_LABEL(wl->cmpEccResult), "%s", ecc_advice);
|
||||||
g_free(ecc_advice);
|
g_free(ecc_advice);
|
||||||
}
|
}
|
||||||
else SetLabelText(GTK_LABEL(wl->cmpEccResult),
|
else SetLabelText(GTK_LABEL(wl->cmpEccResult),
|
||||||
|
|||||||
@@ -200,8 +200,8 @@ void RS01SetFixMaxValues(RS01Widgets *wl, int data_bytes, int ecc_bytes, gint64
|
|||||||
static gboolean results_idle_func(gpointer data)
|
static gboolean results_idle_func(gpointer data)
|
||||||
{ RS01Widgets *wl = (RS01Widgets*)data;
|
{ RS01Widgets *wl = (RS01Widgets*)data;
|
||||||
|
|
||||||
SetLabelText(GTK_LABEL(wl->fixCorrected), _("Repaired: %lld"), wl->corrected);
|
SetLabelText(GTK_LABEL(wl->fixCorrected), _("Repaired: %" PRId64 ""), wl->corrected);
|
||||||
SetLabelText(GTK_LABEL(wl->fixUncorrected), _("Unrepairable: <span %s>%lld</span>"),Closure->redMarkup, wl->uncorrected);
|
SetLabelText(GTK_LABEL(wl->fixUncorrected), _("Unrepairable: <span %s>%" PRId64 "</span>"),Closure->redMarkup, wl->uncorrected);
|
||||||
SetLabelText(GTK_LABEL(wl->fixProgress), _("Progress: %3d.%1d%%"), wl->percent/10, wl->percent%10);
|
SetLabelText(GTK_LABEL(wl->fixProgress), _("Progress: %3d.%1d%%"), wl->percent/10, wl->percent%10);
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|||||||
@@ -236,12 +236,12 @@ void RS02ReadSector(Image *image, RS02Layout *lay, unsigned char *buf, gint64 s)
|
|||||||
/* Read a real sector */
|
/* Read a real sector */
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
if(!LargeSeek(image->file, (gint64)(2048*s)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
|
||||||
s, strerror(errno));
|
s, strerror(errno));
|
||||||
|
|
||||||
n = LargeRead(image->file, buf, 2048);
|
n = LargeRead(image->file, buf, 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),s,strerror(errno));
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),s,strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
@@ -432,7 +432,7 @@ RS02Layout *CalcRS02Layout(Image *image)
|
|||||||
|
|
||||||
/* See if user wants to pick a certain redundancy */
|
/* See if user wants to pick a certain redundancy */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode && Closure->redundancy)
|
if(!Closure->guiMode && Closure->redundancy)
|
||||||
#else
|
#else
|
||||||
if(Closure->redundancy)
|
if(Closure->redundancy)
|
||||||
@@ -527,20 +527,20 @@ RS02Layout *CalcRS02Layout(Image *image)
|
|||||||
|
|
||||||
Verbose("Calculated layout for RS02 image:\n");
|
Verbose("Calculated layout for RS02 image:\n");
|
||||||
|
|
||||||
Verbose("data sectors = %lld\n", lay->dataSectors);
|
Verbose("data sectors = %" PRId64 "\n", lay->dataSectors);
|
||||||
Verbose("crc sectors = %lld\n", lay->crcSectors);
|
Verbose("crc sectors = %" PRId64 "\n", lay->crcSectors);
|
||||||
Verbose("protected sectors = %lld (incl. 2 hdr sectors)\n", lay->protectedSectors);
|
Verbose("protected sectors = %" PRId64 " (incl. 2 hdr sectors)\n", lay->protectedSectors);
|
||||||
Verbose("reed solomon secs = %lld (%d roots, %d data)\n", lay->rsSectors,lay->nroots,lay->ndata);
|
Verbose("reed solomon secs = %" PRId64 " (%d roots, %d data)\n", lay->rsSectors,lay->nroots,lay->ndata);
|
||||||
Verbose("header repeats = %lld (using modulo %lld)\n", lay->headers, lay->headerModulo);
|
Verbose("header repeats = %" PRId64 " (using modulo %" PRId64 ")\n", lay->headers, lay->headerModulo);
|
||||||
Verbose("added sectors = %lld\n", lay->eccSectors);
|
Verbose("added sectors = %" PRId64 "\n", lay->eccSectors);
|
||||||
Verbose("total image size = %lld\n", lay->eccSectors+lay->dataSectors);
|
Verbose("total image size = %" PRId64 "\n", lay->eccSectors+lay->dataSectors);
|
||||||
if(requested_roots > 0)
|
if(requested_roots > 0)
|
||||||
Verbose("medium capacity = n.a.\n");
|
Verbose("medium capacity = n.a.\n");
|
||||||
else Verbose("medium capacity = %lld\n", lay->mediumCapacity);
|
else Verbose("medium capacity = %" PRId64 "\n", lay->mediumCapacity);
|
||||||
|
|
||||||
Verbose("\nInterleaving layout:\n");
|
Verbose("\nInterleaving layout:\n");
|
||||||
Verbose("%lld sectors per ecc layer\n",lay->sectorsPerLayer);
|
Verbose("%" PRId64 " sectors per ecc layer\n",lay->sectorsPerLayer);
|
||||||
Verbose("first layer sector with CRC data %lld (sector# %lld)\n",
|
Verbose("first layer sector with CRC data %" PRId64 " (sector# %" PRId64 ")\n",
|
||||||
lay->firstCrcLayerIndex, lay->dataSectors+2);
|
lay->firstCrcLayerIndex, lay->dataSectors+2);
|
||||||
Verbose("\n");
|
Verbose("\n");
|
||||||
|
|
||||||
@@ -577,11 +577,11 @@ void WriteRS02Headers(LargeFile *file, RS02Layout *lay, EccHeader *eh)
|
|||||||
int n;
|
int n;
|
||||||
|
|
||||||
if(!LargeSeek(file, 2048*lay->firstEccHeader))
|
if(!LargeSeek(file, 2048*lay->firstEccHeader))
|
||||||
Stop(_("Failed seeking to ecc header at %lld: %s\n"), lay->firstEccHeader, strerror(errno));
|
Stop(_("Failed seeking to ecc header at %" PRId64 ": %s\n"), lay->firstEccHeader, strerror(errno));
|
||||||
|
|
||||||
n = LargeWrite(file, eh, sizeof(EccHeader));
|
n = LargeWrite(file, eh, sizeof(EccHeader));
|
||||||
if(n != sizeof(EccHeader))
|
if(n != sizeof(EccHeader))
|
||||||
Stop(_("Failed writing ecc header at %lld: %s\n"), lay->firstEccHeader, strerror(errno));
|
Stop(_("Failed writing ecc header at %" PRId64 ": %s\n"), lay->firstEccHeader, strerror(errno));
|
||||||
|
|
||||||
hpos = (lay->protectedSectors + lay->headerModulo - 1) / lay->headerModulo;
|
hpos = (lay->protectedSectors + lay->headerModulo - 1) / lay->headerModulo;
|
||||||
hpos *= lay->headerModulo;
|
hpos *= lay->headerModulo;
|
||||||
@@ -589,11 +589,11 @@ void WriteRS02Headers(LargeFile *file, RS02Layout *lay, EccHeader *eh)
|
|||||||
while(hpos < end)
|
while(hpos < end)
|
||||||
{
|
{
|
||||||
if(!LargeSeek(file, 2048*hpos))
|
if(!LargeSeek(file, 2048*hpos))
|
||||||
Stop(_("Failed seeking to ecc header at %lld: %s\n"), hpos, strerror(errno));
|
Stop(_("Failed seeking to ecc header at %" PRId64 ": %s\n"), hpos, strerror(errno));
|
||||||
|
|
||||||
n = LargeWrite(file, eh, sizeof(EccHeader));
|
n = LargeWrite(file, eh, sizeof(EccHeader));
|
||||||
if(n != sizeof(EccHeader))
|
if(n != sizeof(EccHeader))
|
||||||
Stop(_("Failed writing ecc header at %lld: %s\n"), hpos, strerror(errno));
|
Stop(_("Failed writing ecc header at %" PRId64 ": %s\n"), hpos, strerror(errno));
|
||||||
|
|
||||||
hpos += lay->headerModulo;
|
hpos += lay->headerModulo;
|
||||||
}
|
}
|
||||||
@@ -790,18 +790,18 @@ RS02Layout *RS02LayoutFromImage(Image *image)
|
|||||||
finish:
|
finish:
|
||||||
Verbose("Calculated layout for RS02 image:\n");
|
Verbose("Calculated layout for RS02 image:\n");
|
||||||
|
|
||||||
Verbose("data sectors = %lld\n", lay->dataSectors);
|
Verbose("data sectors = %" PRId64 "\n", lay->dataSectors);
|
||||||
Verbose("crc sectors = %lld\n", lay->crcSectors);
|
Verbose("crc sectors = %" PRId64 "\n", lay->crcSectors);
|
||||||
Verbose("protected sectors = %lld (incl. 2 hdr sectors)\n", lay->protectedSectors);
|
Verbose("protected sectors = %" PRId64 " (incl. 2 hdr sectors)\n", lay->protectedSectors);
|
||||||
Verbose("reed solomon secs = %lld (%d roots, %d data)\n", lay->rsSectors,lay->nroots,lay->ndata);
|
Verbose("reed solomon secs = %" PRId64 " (%d roots, %d data)\n", lay->rsSectors,lay->nroots,lay->ndata);
|
||||||
Verbose("header repeats = %lld (using modulo %lld)\n", lay->headers, lay->headerModulo);
|
Verbose("header repeats = %" PRId64 " (using modulo %" PRId64 ")\n", lay->headers, lay->headerModulo);
|
||||||
Verbose("added sectors = %lld\n", lay->eccSectors);
|
Verbose("added sectors = %" PRId64 "\n", lay->eccSectors);
|
||||||
Verbose("total image size = %lld\n", lay->eccSectors+lay->dataSectors);
|
Verbose("total image size = %" PRId64 "\n", lay->eccSectors+lay->dataSectors);
|
||||||
Verbose("medium capacity = n.a.\n");
|
Verbose("medium capacity = n.a.\n");
|
||||||
|
|
||||||
Verbose("\nInterleaving layout:\n");
|
Verbose("\nInterleaving layout:\n");
|
||||||
Verbose("%lld sectors per ecc layer\n",lay->sectorsPerLayer);
|
Verbose("%" PRId64 " sectors per ecc layer\n",lay->sectorsPerLayer);
|
||||||
Verbose("first layer sector with CRC data %lld (sector# %lld)\n",
|
Verbose("first layer sector with CRC data %" PRId64 " (sector# %" PRId64 ")\n",
|
||||||
lay->firstCrcLayerIndex, lay->dataSectors+2);
|
lay->firstCrcLayerIndex, lay->dataSectors+2);
|
||||||
Verbose("\n");
|
Verbose("\n");
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
typedef struct
|
typedef struct
|
||||||
{ Image *image;
|
{ Image *image;
|
||||||
Method *self;
|
Method *self;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS02Widgets *wl;
|
RS02Widgets *wl;
|
||||||
#endif
|
#endif
|
||||||
RS02Layout *lay;
|
RS02Layout *lay;
|
||||||
@@ -56,7 +56,7 @@ static void ecc_cleanup(gpointer data)
|
|||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(ec->earlyTermination && ec->wl)
|
{ if(ec->earlyTermination && ec->wl)
|
||||||
SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
||||||
@@ -92,7 +92,7 @@ static void ecc_cleanup(gpointer data)
|
|||||||
|
|
||||||
g_free(ec);
|
g_free(ec);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -108,7 +108,7 @@ static void ecc_cleanup(gpointer data)
|
|||||||
|
|
||||||
static void abort_encoding(ecc_closure *ec, int truncate)
|
static void abort_encoding(ecc_closure *ec, int truncate)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS02Widgets *wl = ec->wl;
|
RS02Widgets *wl = ec->wl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -116,14 +116,14 @@ static void abort_encoding(ecc_closure *ec, int truncate)
|
|||||||
{ if(!LargeTruncate(ec->image->file, (gint64)(2048*ec->lay->dataSectors)))
|
{ if(!LargeTruncate(ec->image->file, (gint64)(2048*ec->lay->dataSectors)))
|
||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions == STOP_CURRENT_ACTION)
|
if(Closure->stopActions == STOP_CURRENT_ACTION)
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
_("<span %s>Aborted by user request!</span> (partial ecc data removed from image)"),
|
_("<span %s>Aborted by user request!</span> (partial ecc data removed from image)"),
|
||||||
Closure->redMarkup);
|
Closure->redMarkup);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION)
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION)
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
@@ -149,14 +149,14 @@ static void remove_old_ecc(ecc_closure *ec)
|
|||||||
guint64 data_bytes;
|
guint64 data_bytes;
|
||||||
int answer;
|
int answer;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->confirmDeletion || !Closure->guiMode)
|
if(Closure->confirmDeletion || !Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Image \"%s\" already contains error correction information.\n"
|
_("Image \"%s\" already contains error correction information.\n"
|
||||||
"Truncating image to data part (%lld sectors).\n"),
|
"Truncating image to data part (%" PRId64 " sectors).\n"),
|
||||||
Closure->imageName, data_sectors);
|
Closure->imageName, data_sectors);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else answer = TRUE;
|
else answer = TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -172,8 +172,8 @@ static void remove_old_ecc(ecc_closure *ec)
|
|||||||
|
|
||||||
PrintLog(_("Image size is now"));
|
PrintLog(_("Image size is now"));
|
||||||
if(ec->image->inLast == 2048)
|
if(ec->image->inLast == 2048)
|
||||||
PrintLog(_(": %lld medium sectors.\n"), ec->image->sectorSize);
|
PrintLog(_(": %" PRId64 " medium sectors.\n"), ec->image->sectorSize);
|
||||||
else PrintLog(_(": %lld medium sectors and %d bytes.\n"),
|
else PrintLog(_(": %" PRId64 " medium sectors and %d bytes.\n"),
|
||||||
ec->image->sectorSize-1, ec->image->inLast);
|
ec->image->sectorSize-1, ec->image->inLast);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -213,7 +213,7 @@ static void check_image(ecc_closure *ec)
|
|||||||
{ unsigned char buf[2048];
|
{ unsigned char buf[2048];
|
||||||
int expected,n,err;
|
int expected,n,err;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
abort_encoding(ec, FALSE);
|
abort_encoding(ec, FALSE);
|
||||||
#endif
|
#endif
|
||||||
@@ -226,7 +226,7 @@ static void check_image(ecc_closure *ec)
|
|||||||
|
|
||||||
n = LargeRead(image->file, buf, expected);
|
n = LargeRead(image->file, buf, expected);
|
||||||
if(n != expected)
|
if(n != expected)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),sectors,strerror(errno));
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),sectors,strerror(errno));
|
||||||
|
|
||||||
/* Look for the dead sector marker */
|
/* Look for the dead sector marker */
|
||||||
|
|
||||||
@@ -237,14 +237,14 @@ static void check_image(ecc_closure *ec)
|
|||||||
"Error correction information can only be\n"
|
"Error correction information can only be\n"
|
||||||
"appended to complete (undamaged) images.\n"));
|
"appended to complete (undamaged) images.\n"));
|
||||||
else
|
else
|
||||||
Stop(_("Sector %lld in the image is marked unreadable\n"
|
Stop(_("Sector %" PRId64 " in the image is marked unreadable\n"
|
||||||
"and seems to come from a different medium.\n\n"
|
"and seems to come from a different medium.\n\n"
|
||||||
"The image was probably mastered from defective content.\n"
|
"The image was probably mastered from defective content.\n"
|
||||||
"For example it might contain one or more files which came\n"
|
"For example it might contain one or more files which came\n"
|
||||||
"from a damaged medium which was NOT fully recovered.\n"
|
"from a damaged medium which was NOT fully recovered.\n"
|
||||||
"This means that some files may have been silently corrupted.\n\n"
|
"This means that some files may have been silently corrupted.\n\n"
|
||||||
"Error correction information can only be\n"
|
"Error correction information can only be\n"
|
||||||
"appended to complete (undamaged) images.\n"));
|
"appended to complete (undamaged) images.\n"), sectors);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update and cache the CRC sums */
|
/* Update and cache the CRC sums */
|
||||||
@@ -256,7 +256,7 @@ static void check_image(ecc_closure *ec)
|
|||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{ PrintProgress(_("Preparing image (checksums, adding space): %3d%%") ,percent);
|
{ PrintProgress(_("Preparing image (checksums, adding space): %3d%%") ,percent);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(ec->wl->encPBar1, percent, 100);
|
SetProgress(ec->wl->encPBar1, percent, 100);
|
||||||
#endif
|
#endif
|
||||||
@@ -308,7 +308,7 @@ static void expand_image(ecc_closure *ec)
|
|||||||
{ unsigned char buf[2048];
|
{ unsigned char buf[2048];
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
abort_encoding(ec, TRUE);
|
abort_encoding(ec, TRUE);
|
||||||
#endif
|
#endif
|
||||||
@@ -326,7 +326,7 @@ static void expand_image(ecc_closure *ec)
|
|||||||
PrintProgress(_("Preparing image (checksums taken from cache, adding space): %3d%%") ,percent);
|
PrintProgress(_("Preparing image (checksums taken from cache, adding space): %3d%%") ,percent);
|
||||||
else PrintProgress(_("Preparing image (checksums, adding space): %3d%%"), percent);
|
else PrintProgress(_("Preparing image (checksums, adding space): %3d%%"), percent);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(ec->wl->encPBar1, percent, 100);
|
SetProgress(ec->wl->encPBar1, percent, 100);
|
||||||
#endif
|
#endif
|
||||||
@@ -340,7 +340,7 @@ static void expand_image(ecc_closure *ec)
|
|||||||
else PrintProgress(_("Preparing image (checksums, adding space): %3d%%"), 100);
|
else PrintProgress(_("Preparing image (checksums, adding space): %3d%%"), 100);
|
||||||
PrintProgress("\n");
|
PrintProgress("\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(ec->wl->encPBar1, 100, 100);
|
SetProgress(ec->wl->encPBar1, 100, 100);
|
||||||
#endif
|
#endif
|
||||||
@@ -374,7 +374,7 @@ static void write_crc(ecc_closure *ec)
|
|||||||
/*** Calculate the CRCs */
|
/*** Calculate the CRCs */
|
||||||
|
|
||||||
if(!LargeSeek(image->file, 2048*crc_sector))
|
if(!LargeSeek(image->file, 2048*crc_sector))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"), crc_sector, strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), crc_sector, strerror(errno));
|
||||||
|
|
||||||
for(layer_sector=0; layer_sector<lay->sectorsPerLayer; layer_sector++)
|
for(layer_sector=0; layer_sector<lay->sectorsPerLayer; layer_sector++)
|
||||||
{ gint64 layer_index = (layer_sector + layer_offset) % lay->sectorsPerLayer;
|
{ gint64 layer_index = (layer_sector + layer_offset) % lay->sectorsPerLayer;
|
||||||
@@ -397,7 +397,7 @@ static void write_crc(ecc_closure *ec)
|
|||||||
{ int n = LargeWrite(image->file, crc_buf, 2048);
|
{ int n = LargeWrite(image->file, crc_buf, 2048);
|
||||||
|
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), crc_sector, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), crc_sector, strerror(errno));
|
||||||
MD5Update(&md5ctxt, (unsigned char*)crc_buf, n);
|
MD5Update(&md5ctxt, (unsigned char*)crc_buf, n);
|
||||||
|
|
||||||
crc_sector++;
|
crc_sector++;
|
||||||
@@ -423,7 +423,7 @@ static void write_crc(ecc_closure *ec)
|
|||||||
n = LargeWrite(image->file, crc_buf, 2048);
|
n = LargeWrite(image->file, crc_buf, 2048);
|
||||||
|
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), crc_sector, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), crc_sector, strerror(errno));
|
||||||
|
|
||||||
MD5Update(&md5ctxt, (unsigned char*)crc_buf, n);
|
MD5Update(&md5ctxt, (unsigned char*)crc_buf, n);
|
||||||
}
|
}
|
||||||
@@ -495,7 +495,7 @@ static gint32 *enc_alpha_to;
|
|||||||
|
|
||||||
/*** Show the second progress bar */
|
/*** Show the second progress bar */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ ShowWidget(ec->wl->encPBar2);
|
{ ShowWidget(ec->wl->encPBar2);
|
||||||
ShowWidget(ec->wl->encLabel2);
|
ShowWidget(ec->wl->encLabel2);
|
||||||
@@ -607,7 +607,7 @@ static gint32 *enc_alpha_to;
|
|||||||
{ int offset = 0;
|
{ int offset = 0;
|
||||||
unsigned char *par_idx = ec->parity;
|
unsigned char *par_idx = ec->parity;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
abort_encoding(ec, TRUE);
|
abort_encoding(ec, TRUE);
|
||||||
#endif
|
#endif
|
||||||
@@ -997,7 +997,7 @@ static gint32 *enc_alpha_to;
|
|||||||
percent = (1000*progress)/max_percent;
|
percent = (1000*progress)/max_percent;
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(ec->wl->encPBar2, percent, 1000);
|
SetProgress(ec->wl->encPBar2, percent, 1000);
|
||||||
else
|
else
|
||||||
@@ -1029,10 +1029,10 @@ static gint32 *enc_alpha_to;
|
|||||||
{ gint64 s = RS02EccSectorIndex(lay, k, chunk + si);
|
{ gint64 s = RS02EccSectorIndex(lay, k, chunk + si);
|
||||||
|
|
||||||
if(!LargeSeek(image->file, 2048*s))
|
if(!LargeSeek(image->file, 2048*s))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(image->file, ec->slice[k]+idx, 2048) != 2048)
|
if(LargeWrite(image->file, ec->slice[k]+idx, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
|
|
||||||
MD5Update(&ec->md5Ctxt[k], ec->slice[k]+idx, 2048);
|
MD5Update(&ec->md5Ctxt[k], ec->slice[k]+idx, 2048);
|
||||||
}
|
}
|
||||||
@@ -1060,7 +1060,7 @@ static gint32 *enc_alpha_to;
|
|||||||
|
|
||||||
void RS02Create(void)
|
void RS02Create(void)
|
||||||
{ Method *self = FindMethod("RS02");
|
{ Method *self = FindMethod("RS02");
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS02Widgets *wl = (RS02Widgets*)self->widgetList;
|
RS02Widgets *wl = (RS02Widgets*)self->widgetList;
|
||||||
#endif
|
#endif
|
||||||
Image *image = NULL;
|
Image *image = NULL;
|
||||||
@@ -1082,21 +1082,21 @@ void RS02Create(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(image->inLast == 2048)
|
if(image->inLast == 2048)
|
||||||
PrintLog(_(": %lld medium sectors.\n"), image->sectorSize);
|
PrintLog(_(": %" PRId64 " medium sectors.\n"), image->sectorSize);
|
||||||
else PrintLog(_(": %lld medium sectors and %d bytes.\n"),
|
else PrintLog(_(": %" PRId64 " medium sectors and %d bytes.\n"),
|
||||||
image->sectorSize-1, image->inLast);
|
image->sectorSize-1, image->inLast);
|
||||||
|
|
||||||
/*** Register the cleanup procedure for GUI mode */
|
/*** Register the cleanup procedure for GUI mode */
|
||||||
|
|
||||||
ec->image = image;
|
ec->image = image;
|
||||||
ec->self = self;
|
ec->self = self;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
ec->wl = wl;
|
ec->wl = wl;
|
||||||
#endif
|
#endif
|
||||||
ec->eh = g_malloc0(sizeof(EccHeader));
|
ec->eh = g_malloc0(sizeof(EccHeader));
|
||||||
ec->timer = g_timer_new();
|
ec->timer = g_timer_new();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode) /* Preliminary fill text for the head line */
|
if(Closure->guiMode) /* Preliminary fill text for the head line */
|
||||||
SetLabelText(GTK_LABEL(wl->encHeadline),
|
SetLabelText(GTK_LABEL(wl->encHeadline),
|
||||||
_("<big>Augmenting the image with error correction data.</big>\n<i>%s</i>"),
|
_("<big>Augmenting the image with error correction data.</big>\n<i>%s</i>"),
|
||||||
@@ -1113,9 +1113,9 @@ void RS02Create(void)
|
|||||||
|
|
||||||
/*** Announce what we are going to do */
|
/*** Announce what we are going to do */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode) /* Preliminary fill text for the head line */
|
if(Closure->guiMode) /* Preliminary fill text for the head line */
|
||||||
{ ec->msg = g_strdup_printf(_("Encoding with Method RS02: %lld MiB data, %lld MiB ecc (%d roots; %4.1f%% redundancy)."),
|
{ ec->msg = g_strdup_printf(_("Encoding with Method RS02: %" PRId64 " MiB data, %" PRId64 " MiB ecc (%d roots; %4.1f%% redundancy)."),
|
||||||
lay->dataSectors/512, lay->eccSectors/512, lay->nroots, lay->redundancy);
|
lay->dataSectors/512, lay->eccSectors/512, lay->nroots, lay->redundancy);
|
||||||
|
|
||||||
SetLabelText(GTK_LABEL(wl->encHeadline),
|
SetLabelText(GTK_LABEL(wl->encHeadline),
|
||||||
@@ -1124,7 +1124,7 @@ void RS02Create(void)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{ ec->msg = g_strdup_printf(_("Augmenting image with Method RS02:\n %lld MiB data, %lld MiB ecc (%d roots; %4.1f%% redundancy)."),
|
{ ec->msg = g_strdup_printf(_("Augmenting image with Method RS02:\n %" PRId64 " MiB data, %" PRId64 " MiB ecc (%d roots; %4.1f%% redundancy)."),
|
||||||
lay->dataSectors/512, lay->eccSectors/512, lay->nroots, lay->redundancy);
|
lay->dataSectors/512, lay->eccSectors/512, lay->nroots, lay->redundancy);
|
||||||
|
|
||||||
PrintLog("%s\n",ec->msg);
|
PrintLog("%s\n",ec->msg);
|
||||||
@@ -1134,7 +1134,7 @@ void RS02Create(void)
|
|||||||
|
|
||||||
if(lay->nroots < 8)
|
if(lay->nroots < 8)
|
||||||
Stop(_("Not enough space on medium left for error correction data.\n"
|
Stop(_("Not enough space on medium left for error correction data.\n"
|
||||||
"Data portion of image: %lld sect.; maximum possible size: %lld sect.\n"
|
"Data portion of image: %" PRId64 " sect.; maximum possible size: %" PRId64 " sect.\n"
|
||||||
"If reducing the image size or using a larger medium is\n"
|
"If reducing the image size or using a larger medium is\n"
|
||||||
"not an option, please create a separate error correction file."),
|
"not an option, please create a separate error correction file."),
|
||||||
lay->dataSectors, lay->mediumCapacity);
|
lay->dataSectors, lay->mediumCapacity);
|
||||||
@@ -1143,8 +1143,8 @@ void RS02Create(void)
|
|||||||
{ int answer;
|
{ int answer;
|
||||||
|
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Using redundancies below 20%% may not give\n"
|
"%s", _("Using redundancies below 20% may not give\n"
|
||||||
"the expected data loss protection.\n"), NULL);
|
"the expected data loss protection.\n"));
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
abort_encoding(ec, FALSE);
|
abort_encoding(ec, FALSE);
|
||||||
@@ -1176,17 +1176,17 @@ void RS02Create(void)
|
|||||||
|
|
||||||
PrintProgress(_("Ecc generation: 100.0%%\n"));
|
PrintProgress(_("Ecc generation: 100.0%%\n"));
|
||||||
PrintLog(_("Image has been augmented with error correction data.\n"
|
PrintLog(_("Image has been augmented with error correction data.\n"
|
||||||
"New image size is %lld MiB (%lld sectors).\n"),
|
"New image size is %" PRId64 " MiB (%" PRId64 " sectors).\n"),
|
||||||
(lay->dataSectors + lay->eccSectors)/512,
|
(lay->dataSectors + lay->eccSectors)/512,
|
||||||
lay->dataSectors+lay->eccSectors);
|
lay->dataSectors+lay->eccSectors);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetProgress(wl->encPBar2, 100, 100);
|
{ SetProgress(wl->encPBar2, 100, 100);
|
||||||
|
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
_("Image has been augmented with error correction data.\n"
|
_("Image has been augmented with error correction data.\n"
|
||||||
"New image size is %lld MiB (%lld sectors).\n"),
|
"New image size is %" PRId64 " MiB (%" PRId64 " sectors).\n"),
|
||||||
(lay->dataSectors + lay->eccSectors)/512,
|
(lay->dataSectors + lay->eccSectors)/512,
|
||||||
lay->dataSectors+lay->eccSectors);
|
lay->dataSectors+lay->eccSectors);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
typedef struct
|
typedef struct
|
||||||
{ Image *image;
|
{ Image *image;
|
||||||
EccHeader *eh;
|
EccHeader *eh;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS02Widgets *wl;
|
RS02Widgets *wl;
|
||||||
#endif
|
#endif
|
||||||
RS02Layout *lay;
|
RS02Layout *lay;
|
||||||
@@ -49,7 +49,7 @@ static void fix_cleanup(gpointer data)
|
|||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(fc->earlyTermination)
|
{ if(fc->earlyTermination)
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
@@ -77,7 +77,7 @@ static void fix_cleanup(gpointer data)
|
|||||||
|
|
||||||
g_free(fc);
|
g_free(fc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -111,7 +111,7 @@ static void expand_image(fix_closure *fc, gint64 new_size)
|
|||||||
percent = (100*sectors) / new_sectors;
|
percent = (100*sectors) / new_sectors;
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
;
|
;
|
||||||
else
|
else
|
||||||
@@ -121,7 +121,7 @@ static void expand_image(fix_closure *fc, gint64 new_size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
;
|
;
|
||||||
else
|
else
|
||||||
@@ -141,7 +141,7 @@ static void expand_image(fix_closure *fc, gint64 new_size)
|
|||||||
|
|
||||||
void RS02Fix(Image *image)
|
void RS02Fix(Image *image)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Method *self = FindMethod("RS02");
|
Method *self = FindMethod("RS02");
|
||||||
RS02Widgets *wl = (RS02Widgets*)self->widgetList;
|
RS02Widgets *wl = (RS02Widgets*)self->widgetList;
|
||||||
#endif
|
#endif
|
||||||
@@ -183,7 +183,7 @@ void RS02Fix(Image *image)
|
|||||||
/*** Register the cleanup procedure for GUI mode */
|
/*** Register the cleanup procedure for GUI mode */
|
||||||
|
|
||||||
fc->image = image;
|
fc->image = image;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
fc->wl = wl;
|
fc->wl = wl;
|
||||||
#endif
|
#endif
|
||||||
fc->earlyTermination = TRUE;
|
fc->earlyTermination = TRUE;
|
||||||
@@ -191,7 +191,7 @@ void RS02Fix(Image *image)
|
|||||||
|
|
||||||
/*** Open the image file */
|
/*** Open the image file */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->fixHeadline),
|
SetLabelText(GTK_LABEL(wl->fixHeadline),
|
||||||
_("<big>Repairing the image.</big>\n<i>%s</i>"),
|
_("<big>Repairing the image.</big>\n<i>%s</i>"),
|
||||||
@@ -219,7 +219,7 @@ void RS02Fix(Image *image)
|
|||||||
|
|
||||||
/*** Announce what we going to do */
|
/*** Announce what we going to do */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ char *msg = g_strdup_printf(_("Image contains error correction data: Method RS02, %d roots, %4.1f%% redundancy."),
|
{ char *msg = g_strdup_printf(_("Image contains error correction data: Method RS02, %d roots, %4.1f%% redundancy."),
|
||||||
eh->eccBytes,
|
eh->eccBytes,
|
||||||
@@ -247,14 +247,14 @@ void RS02Fix(Image *image)
|
|||||||
if(diff>0 && diff<=2)
|
if(diff>0 && diff<=2)
|
||||||
{ int answer;
|
{ int answer;
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Image file is %lld sectors longer than expected.\n"
|
_("Image file is %" PRId64 " sectors longer than expected.\n"
|
||||||
"Assuming this is a TAO mode medium.\n"
|
"Assuming this is a TAO mode medium.\n"
|
||||||
"%lld sectors will be removed from the image end.\n"),
|
"%" PRId64 " sectors will be removed from the image end.\n"),
|
||||||
diff, diff);
|
diff, diff);
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
fc->wl->fixFootline,
|
fc->wl->fixFootline,
|
||||||
_("<span %s>Aborted by user request!</span>"),
|
_("<span %s>Aborted by user request!</span>"),
|
||||||
@@ -268,7 +268,7 @@ void RS02Fix(Image *image)
|
|||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(diff>2 && Closure->guiMode)
|
if(diff>2 && Closure->guiMode)
|
||||||
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
trans,
|
trans,
|
||||||
@@ -287,11 +287,11 @@ void RS02Fix(Image *image)
|
|||||||
if(!TruncateImage(image, (gint64)(2048*expected_sectors)))
|
if(!TruncateImage(image, (gint64)(2048*expected_sectors)))
|
||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
PrintLog(_("Image has been truncated by %lld sectors.\n"), diff);
|
PrintLog(_("Image has been truncated by %" PRId64 " sectors.\n"), diff);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(diff>2 && !Closure->guiMode)
|
if(diff>2 && !Closure->guiMode)
|
||||||
#else
|
#else
|
||||||
if(diff>2)
|
if(diff>2)
|
||||||
@@ -305,7 +305,7 @@ void RS02Fix(Image *image)
|
|||||||
if(!TruncateImage(image, (gint64)(2048*expected_sectors)))
|
if(!TruncateImage(image, (gint64)(2048*expected_sectors)))
|
||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
PrintLog(_("Image has been truncated by %lld sectors.\n"), diff);
|
PrintLog(_("Image has been truncated by %" PRId64 " sectors.\n"), diff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -364,7 +364,7 @@ void RS02Fix(Image *image)
|
|||||||
|
|
||||||
/* See if user hit the Stop button */
|
/* See if user hit the Stop button */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
@@ -411,10 +411,10 @@ void RS02Fix(Image *image)
|
|||||||
{ gint64 esi = RS02EccSectorIndex(lay, i, ecc_idx+j);
|
{ gint64 esi = RS02EccSectorIndex(lay, i, ecc_idx+j);
|
||||||
|
|
||||||
if(!LargeSeek(image->file, 2048*esi))
|
if(!LargeSeek(image->file, 2048*esi))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"), esi, strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), esi, strerror(errno));
|
||||||
|
|
||||||
if(LargeRead(image->file, fc->imgBlock[i+ndata]+offset, 2048) != 2048)
|
if(LargeRead(image->file, fc->imgBlock[i+ndata]+offset, 2048) != 2048)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"), esi, strerror(errno));
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"), esi, strerror(errno));
|
||||||
|
|
||||||
offset += 2048;
|
offset += 2048;
|
||||||
}
|
}
|
||||||
@@ -461,7 +461,7 @@ void RS02Fix(Image *image)
|
|||||||
if(crc_valid && !erasure_map[i] && crc != crc_buf[crc_idx])
|
if(crc_valid && !erasure_map[i] && crc != crc_buf[crc_idx])
|
||||||
{ erasure_map[i] = 3;
|
{ erasure_map[i] = 3;
|
||||||
erasure_list[erasure_count++] = i;
|
erasure_list[erasure_count++] = i;
|
||||||
PrintCLI(_("CRC error in sector %lld\n"),block_idx[i]);
|
PrintCLI(_("CRC error in sector %" PRId64 "\n"),block_idx[i]);
|
||||||
damaged_sectors++;
|
damaged_sectors++;
|
||||||
crc_errors++;
|
crc_errors++;
|
||||||
}
|
}
|
||||||
@@ -493,16 +493,16 @@ void RS02Fix(Image *image)
|
|||||||
|
|
||||||
if(erasure_count>lay->nroots) /* uncorrectable */
|
if(erasure_count>lay->nroots) /* uncorrectable */
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
{ PrintCLI(_("* Ecc block %lld: %3d unrepairable sectors: "), s, erasure_count);
|
{ PrintCLI(_("* Ecc block %" PRId64 ": %3d unrepairable sectors: "), s, erasure_count);
|
||||||
|
|
||||||
for(i=0; i<erasure_count; i++)
|
for(i=0; i<erasure_count; i++)
|
||||||
{ gint64 loc = erasure_list[i];
|
{ gint64 loc = erasure_list[i];
|
||||||
|
|
||||||
if(loc < ndata) PrintCLI("%lld ", block_idx[loc]);
|
if(loc < ndata) PrintCLI("%" PRId64 " ", block_idx[loc]);
|
||||||
else PrintCLI("%lld ", RS02EccSectorIndex(lay, loc-ndata, ecc_idx));
|
else PrintCLI("%" PRId64 " ", RS02EccSectorIndex(lay, loc-ndata, ecc_idx));
|
||||||
|
|
||||||
}
|
}
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
@@ -660,8 +660,8 @@ void RS02Fix(Image *image)
|
|||||||
for(i=0; i<erasure_count; i++)
|
for(i=0; i<erasure_count; i++)
|
||||||
{ gint64 loc = erasure_list[i];
|
{ gint64 loc = erasure_list[i];
|
||||||
|
|
||||||
if(loc < ndata) PrintLog("%lld ", block_idx[loc]);
|
if(loc < ndata) PrintLog("%" PRId64 " ", block_idx[loc]);
|
||||||
else PrintLog("%lld ", RS02EccSectorIndex(lay, loc-ndata, ecc_idx));
|
else PrintLog("%" PRId64 " ", RS02EccSectorIndex(lay, loc-ndata, ecc_idx));
|
||||||
}
|
}
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
uncorrected += erasure_count;
|
uncorrected += erasure_count;
|
||||||
@@ -778,12 +778,12 @@ void RS02Fix(Image *image)
|
|||||||
|
|
||||||
corrected++;
|
corrected++;
|
||||||
|
|
||||||
PrintCLI("%lld%c ", sec, type);
|
PrintCLI("%" PRId64 "%c ", sec, type);
|
||||||
|
|
||||||
/* Write the recovered sector */
|
/* Write the recovered sector */
|
||||||
|
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*sec)))
|
if(!LargeSeek(image->file, (gint64)(2048*sec)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
sec, "FW", strerror(errno));
|
sec, "FW", strerror(errno));
|
||||||
|
|
||||||
/* augmented images can not have sizes not a multiple of 2048,
|
/* augmented images can not have sizes not a multiple of 2048,
|
||||||
@@ -791,7 +791,7 @@ void RS02Fix(Image *image)
|
|||||||
|
|
||||||
n = LargeWrite(image->file, cache_offset+fc->imgBlock[i], 2048);
|
n = LargeWrite(image->file, cache_offset+fc->imgBlock[i], 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("could not write medium sector %lld:\n%s"), sec, strerror(errno));
|
Stop(_("could not write medium sector %" PRId64 ":\n%s"), sec, strerror(errno));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -821,7 +821,7 @@ skip:
|
|||||||
|
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{
|
{
|
||||||
RS02AddFixValues(wl, percent, local_plot_max);
|
RS02AddFixValues(wl, percent, local_plot_max);
|
||||||
@@ -848,15 +848,15 @@ skip:
|
|||||||
|
|
||||||
PrintProgress(_("Ecc progress: 100.0%%\n"));
|
PrintProgress(_("Ecc progress: 100.0%%\n"));
|
||||||
|
|
||||||
if(corrected > 0) PrintLog(_("Repaired sectors: %lld (%lld data, %lld ecc)\n"),
|
if(corrected > 0) PrintLog(_("Repaired sectors: %" PRId64 " (%" PRId64 " data, %" PRId64 " ecc)\n"),
|
||||||
corrected, data_corr, ecc_corr);
|
corrected, data_corr, ecc_corr);
|
||||||
if(uncorrected > 0)
|
if(uncorrected > 0)
|
||||||
{ PrintLog(_("Unrepaired sectors: %lld\n"), uncorrected);
|
{ PrintLog(_("Unrepaired sectors: %" PRId64 "\n"), uncorrected);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
||||||
_("Image sectors could not be fully restored "
|
_("Image sectors could not be fully restored "
|
||||||
"(%lld repaired; <span %s>%lld unrepaired</span>)"),
|
"(%" PRId64 " repaired; <span %s>%" PRId64 " unrepaired</span>)"),
|
||||||
corrected, Closure->redMarkup, uncorrected);
|
corrected, Closure->redMarkup, uncorrected);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@@ -874,16 +874,16 @@ skip:
|
|||||||
PrintLog(_("Erasure counts per ecc block: avg = %.1f; worst = %d.\n"),
|
PrintLog(_("Erasure counts per ecc block: avg = %.1f; worst = %d.\n"),
|
||||||
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && t)
|
if(Closure->guiMode && t)
|
||||||
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
||||||
"%s %s", _("Repair results:"), t);
|
"%s %s", _("Repair results:"), t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Verbose("\nSummary of processed sectors:\n");
|
Verbose("\nSummary of processed sectors:\n");
|
||||||
Verbose("%lld damaged sectors\n", damaged_sectors);
|
Verbose("%" PRId64 " damaged sectors\n", damaged_sectors);
|
||||||
Verbose("%lld CRC errors\n", crc_errors);
|
Verbose("%" PRId64 " CRC errors\n", crc_errors);
|
||||||
Verbose("%lld of %lld ecc blocks damaged (%lld / %lld sectors)\n",
|
Verbose("%" PRId64 " of %" PRId64 " ecc blocks damaged (%" PRId64 " / %" PRId64 " sectors)\n",
|
||||||
damaged_eccblocks, 2048*lay->sectorsPerLayer,
|
damaged_eccblocks, 2048*lay->sectorsPerLayer,
|
||||||
damaged_eccsecs, lay->sectorsPerLayer);
|
damaged_eccsecs, lay->sectorsPerLayer);
|
||||||
if(data_count != lay->dataSectors)
|
if(data_count != lay->dataSectors)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
#ifndef RS02INCLUDES_H
|
#ifndef RS02INCLUDES_H
|
||||||
#define RS02INCLUDES_H
|
#define RS02INCLUDES_H
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/* Data structs from rs02-window.c */
|
/* Data structs from rs02-window.c */
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@@ -122,7 +122,7 @@ typedef struct
|
|||||||
* These are exported via the Method struct
|
* These are exported via the Method struct
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void CreateRS02EncWindow(Method*, GtkWidget*);
|
void CreateRS02EncWindow(Method*, GtkWidget*);
|
||||||
void CreateRS02FixWindow(Method*, GtkWidget*);
|
void CreateRS02FixWindow(Method*, GtkWidget*);
|
||||||
void CreateRS02PrefsPage(Method*, GtkWidget*);
|
void CreateRS02PrefsPage(Method*, GtkWidget*);
|
||||||
@@ -188,7 +188,7 @@ void RS02Fix(Image*);
|
|||||||
|
|
||||||
int RS02Recognize(Image*);
|
int RS02Recognize(Image*);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/* rs02-window.c */
|
/* rs02-window.c */
|
||||||
|
|
||||||
void RS02AddFixValues(RS02Widgets*, int, int);
|
void RS02AddFixValues(RS02Widgets*, int, int);
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
*** Recognize RS02 error correction data in the image
|
*** Recognize RS02 error correction data in the image
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dialog components for disabling RS02 search
|
* Dialog components for disabling RS02 search
|
||||||
@@ -78,7 +78,7 @@ static int try_sector(Image *image, gint64 pos, EccHeader **ehptr, unsigned char
|
|||||||
|
|
||||||
/* Try reading the sector */
|
/* Try reading the sector */
|
||||||
|
|
||||||
Verbose("try_sector: trying sector %lld\n", pos);
|
Verbose("try_sector: trying sector %" PRId64 "\n", pos);
|
||||||
|
|
||||||
if(ImageReadSectors(image, secbuf, pos, 2) != 2)
|
if(ImageReadSectors(image, secbuf, pos, 2) != 2)
|
||||||
{ Verbose("try_sector: read error, trying next header\n");
|
{ Verbose("try_sector: read error, trying next header\n");
|
||||||
@@ -244,23 +244,23 @@ int RS02Recognize(Image *image)
|
|||||||
while(header_modulo >= 32)
|
while(header_modulo >= 32)
|
||||||
{ pos = max_sectors & ~(header_modulo - 1);
|
{ pos = max_sectors & ~(header_modulo - 1);
|
||||||
|
|
||||||
Verbose("FindHeaderInMedium: Trying modulo %lld\n", header_modulo);
|
Verbose("FindHeaderInMedium: Trying modulo %" PRId64 "\n", header_modulo);
|
||||||
|
|
||||||
while(pos > 0)
|
while(pos > 0)
|
||||||
{ int result;
|
{ int result;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
goto bail_out;
|
goto bail_out;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(GetBit(try_next_header, pos))
|
if(GetBit(try_next_header, pos))
|
||||||
{ Verbose("Sector %lld cached; skipping\n", pos);
|
{ Verbose("Sector %" PRId64 " cached; skipping\n", pos);
|
||||||
goto check_next_header;
|
goto check_next_header;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(GetBit(try_next_modulo, pos))
|
if(GetBit(try_next_modulo, pos))
|
||||||
{ Verbose("Sector %lld cached; skipping modulo\n", pos);
|
{ Verbose("Sector %" PRId64 " cached; skipping modulo\n", pos);
|
||||||
goto check_next_modulo;
|
goto check_next_modulo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,7 +272,7 @@ int RS02Recognize(Image *image)
|
|||||||
read_count++;
|
read_count++;
|
||||||
if(!answered_continue && read_count > 5)
|
if(!answered_continue && read_count > 5)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, insert_buttons,
|
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, insert_buttons,
|
||||||
_("Faster medium initialization\n\n"
|
_("Faster medium initialization\n\n"
|
||||||
@@ -304,7 +304,7 @@ int RS02Recognize(Image *image)
|
|||||||
header_modulo >>= 1;
|
header_modulo >>= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
bail_out:
|
bail_out:
|
||||||
#endif
|
#endif
|
||||||
FreeBitmap(try_next_header);
|
FreeBitmap(try_next_header);
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
*** Reset the verify output window
|
*** Reset the verify output window
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
|
|
||||||
void ResetRS02VerifyWindow(Method *self)
|
void ResetRS02VerifyWindow(Method *self)
|
||||||
{ RS02Widgets *wl = (RS02Widgets*)self->widgetList;
|
{ RS02Widgets *wl = (RS02Widgets*)self->widgetList;
|
||||||
@@ -344,7 +344,7 @@ typedef struct
|
|||||||
{ Image *image;
|
{ Image *image;
|
||||||
EccHeader *eh;
|
EccHeader *eh;
|
||||||
RS02Layout *lay;
|
RS02Layout *lay;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS02Widgets *wl;
|
RS02Widgets *wl;
|
||||||
#endif
|
#endif
|
||||||
Bitmap *map;
|
Bitmap *map;
|
||||||
@@ -358,7 +358,7 @@ static void cleanup(gpointer data)
|
|||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
AllowActions(TRUE);
|
AllowActions(TRUE);
|
||||||
#endif
|
#endif
|
||||||
@@ -371,7 +371,7 @@ static void cleanup(gpointer data)
|
|||||||
|
|
||||||
g_free(cc);
|
g_free(cc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -401,7 +401,7 @@ static void read_crc(verify_closure *cc, RS02Layout *lay)
|
|||||||
/* First sector containing crc data */
|
/* First sector containing crc data */
|
||||||
|
|
||||||
if(!LargeSeek(cc->image->file, 2048*(lay->dataSectors+2)))
|
if(!LargeSeek(cc->image->file, 2048*(lay->dataSectors+2)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
|
||||||
lay->dataSectors+2, strerror(errno));
|
lay->dataSectors+2, strerror(errno));
|
||||||
crc_sector = lay->dataSectors+2;
|
crc_sector = lay->dataSectors+2;
|
||||||
|
|
||||||
@@ -512,10 +512,10 @@ static int prognosis(verify_closure *vc, gint64 missing, gint64 expected)
|
|||||||
PrintLog(_("- erasure counts : avg = %.1f; worst = %d per ecc block.\n"),
|
PrintLog(_("- erasure counts : avg = %.1f; worst = %d per ecc block.\n"),
|
||||||
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
||||||
|
|
||||||
PrintLog(_("- prognosis : %lld of %lld sectors recoverable (%d.%d%%)\n"),
|
PrintLog(_("- prognosis : %" PRId64 " of %" PRId64 " sectors recoverable (%d.%d%%)\n"),
|
||||||
recoverable, expected, percentage/10, percentage%10);
|
recoverable, expected, percentage/10, percentage%10);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(vc->wl->cmpEcc1Name), "");
|
{ SetLabelText(GTK_LABEL(vc->wl->cmpEcc1Name), "");
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpEcc1Msg), "");
|
SetLabelText(GTK_LABEL(vc->wl->cmpEcc1Msg), "");
|
||||||
@@ -528,7 +528,7 @@ static int prognosis(verify_closure *vc, gint64 missing, gint64 expected)
|
|||||||
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
||||||
|
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpEcc3Msg),
|
SetLabelText(GTK_LABEL(vc->wl->cmpEcc3Msg),
|
||||||
_("<span %s>%lld of %lld sectors recoverable (%d.%d%%)</span>"),
|
_("<span %s>%" PRId64 " of %" PRId64 " sectors recoverable (%d.%d%%)</span>"),
|
||||||
recoverable < expected ? Closure->redMarkup : Closure->greenMarkup,
|
recoverable < expected ? Closure->redMarkup : Closure->greenMarkup,
|
||||||
recoverable, expected, percentage/10, percentage%10);
|
recoverable, expected, percentage/10, percentage%10);
|
||||||
}
|
}
|
||||||
@@ -548,7 +548,7 @@ static int prognosis(verify_closure *vc, gint64 missing, gint64 expected)
|
|||||||
|
|
||||||
void RS02Verify(Image *image)
|
void RS02Verify(Image *image)
|
||||||
{ verify_closure *cc = g_malloc0(sizeof(verify_closure));
|
{ verify_closure *cc = g_malloc0(sizeof(verify_closure));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Method *self = FindMethod("RS02");
|
Method *self = FindMethod("RS02");
|
||||||
RS02Widgets *wl = self->widgetList;
|
RS02Widgets *wl = self->widgetList;
|
||||||
#endif
|
#endif
|
||||||
@@ -574,7 +574,7 @@ void RS02Verify(Image *image)
|
|||||||
gint64 hdr_missing, hdr_crc_errors;
|
gint64 hdr_missing, hdr_crc_errors;
|
||||||
gint64 hdr_ok,hdr_pos,hdr_correctable;
|
gint64 hdr_ok,hdr_pos,hdr_correctable;
|
||||||
gint64 ecc_sector,expected_sectors;
|
gint64 ecc_sector,expected_sectors;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int ecc_md5_failure = FALSE;
|
int ecc_md5_failure = FALSE;
|
||||||
#endif
|
#endif
|
||||||
int ecc_slice;
|
int ecc_slice;
|
||||||
@@ -583,7 +583,7 @@ void RS02Verify(Image *image)
|
|||||||
char method[5];
|
char method[5];
|
||||||
char *img_advice = NULL;
|
char *img_advice = NULL;
|
||||||
char *ecc_advice = NULL;
|
char *ecc_advice = NULL;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int try_it;
|
int try_it;
|
||||||
#endif
|
#endif
|
||||||
int unrecoverable_sectors = 0;
|
int unrecoverable_sectors = 0;
|
||||||
@@ -591,7 +591,7 @@ void RS02Verify(Image *image)
|
|||||||
/*** Prepare for early termination */
|
/*** Prepare for early termination */
|
||||||
|
|
||||||
RegisterCleanup(_("Check aborted"), cleanup, cc);
|
RegisterCleanup(_("Check aborted"), cleanup, cc);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
cc->wl = wl;
|
cc->wl = wl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -609,7 +609,7 @@ void RS02Verify(Image *image)
|
|||||||
|
|
||||||
/*** Print information on image size */
|
/*** Print information on image size */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
||||||
_("Checking the image file."),
|
_("Checking the image file."),
|
||||||
@@ -617,19 +617,19 @@ void RS02Verify(Image *image)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
PrintLog("\n%s: ",Closure->imageName);
|
PrintLog("\n%s: ",Closure->imageName);
|
||||||
PrintLog(_("present, contains %lld medium sectors.\n"),image->sectorSize);
|
PrintLog(_("present, contains %" PRId64 " medium sectors.\n"),image->sectorSize);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(expected_sectors == image->sectorSize)
|
{ if(expected_sectors == image->sectorSize)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpImageSectors), "%lld", image->sectorSize);
|
{ SetLabelText(GTK_LABEL(wl->cmpImageSectors), "%" PRId64 "", image->sectorSize);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpImageSectors), "<span %s>%lld</span>",
|
{ SetLabelText(GTK_LABEL(wl->cmpImageSectors), "<span %s>%" PRId64 "</span>",
|
||||||
Closure->redMarkup, image->sectorSize);
|
Closure->redMarkup, image->sectorSize);
|
||||||
if(expected_sectors > image->sectorSize)
|
if(expected_sectors > image->sectorSize)
|
||||||
img_advice = g_strdup_printf(_("<span %s>Image file is %lld sectors shorter than expected.</span>"), Closure->redMarkup, expected_sectors - image->sectorSize);
|
img_advice = g_strdup_printf(_("<span %s>Image file is %" PRId64 " sectors shorter than expected.</span>"), Closure->redMarkup, expected_sectors - image->sectorSize);
|
||||||
else img_advice = g_strdup_printf(_("<span %s>Image file is %lld sectors longer than expected.</span>"), Closure->redMarkup, image->sectorSize - expected_sectors);
|
else img_advice = g_strdup_printf(_("<span %s>Image file is %" PRId64 " sectors longer than expected.</span>"), Closure->redMarkup, image->sectorSize - expected_sectors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -646,11 +646,11 @@ void RS02Verify(Image *image)
|
|||||||
{ int n;
|
{ int n;
|
||||||
|
|
||||||
if(!LargeSeek(image->file, 2048*hdr_pos))
|
if(!LargeSeek(image->file, 2048*hdr_pos))
|
||||||
Stop(_("Failed seeking to ecc header at %lld: %s\n"), hdr_pos, strerror(errno));
|
Stop(_("Failed seeking to ecc header at %" PRId64 ": %s\n"), hdr_pos, strerror(errno));
|
||||||
|
|
||||||
n = LargeRead(image->file, &eh, sizeof(EccHeader));
|
n = LargeRead(image->file, &eh, sizeof(EccHeader));
|
||||||
if(n != sizeof(EccHeader))
|
if(n != sizeof(EccHeader))
|
||||||
Stop(_("Failed reading ecc header at %lld: %s\n"), hdr_pos, strerror(errno));
|
Stop(_("Failed reading ecc header at %" PRId64 ": %s\n"), hdr_pos, strerror(errno));
|
||||||
|
|
||||||
/* Missing header blocks are always recoverable by copying information
|
/* Missing header blocks are always recoverable by copying information
|
||||||
from the surviving headers */
|
from the surviving headers */
|
||||||
@@ -689,12 +689,12 @@ void RS02Verify(Image *image)
|
|||||||
hdr_pos = (lay->protectedSectors + lay->headerModulo - 1) & ~(lay->headerModulo-1);
|
hdr_pos = (lay->protectedSectors + lay->headerModulo - 1) & ~(lay->headerModulo-1);
|
||||||
else hdr_pos += lay->headerModulo;
|
else hdr_pos += lay->headerModulo;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(!hdr_crc_errors && !hdr_missing)
|
{ if(!hdr_crc_errors && !hdr_missing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccHeaders), _("complete"));
|
SetLabelText(GTK_LABEL(wl->cmpEccHeaders), _("complete"));
|
||||||
else
|
else
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccHeaders), _("<span %s>%lld ok, %lld CRC errors, %lld missing</span>"),
|
{ SetLabelText(GTK_LABEL(wl->cmpEccHeaders), _("<span %s>%" PRId64 " ok, %" PRId64 " CRC errors, %" PRId64 " missing</span>"),
|
||||||
Closure->redMarkup, hdr_ok, hdr_crc_errors, hdr_missing);
|
Closure->redMarkup, hdr_ok, hdr_crc_errors, hdr_missing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -734,7 +734,7 @@ void RS02Verify(Image *image)
|
|||||||
|
|
||||||
/* Check for user interruption */
|
/* Check for user interruption */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
||||||
@@ -781,8 +781,8 @@ void RS02Verify(Image *image)
|
|||||||
if(!current_missing || s==expected_sectors-1)
|
if(!current_missing || s==expected_sectors-1)
|
||||||
{ if(first_missing>=0)
|
{ if(first_missing>=0)
|
||||||
{ if(first_missing == last_missing)
|
{ if(first_missing == last_missing)
|
||||||
PrintCLI(_("* missing sector : %lld\n"), first_missing);
|
PrintCLI(_("* missing sector : %" PRId64 "\n"), first_missing);
|
||||||
else PrintCLI(_("* missing sectors : %lld - %lld\n"), first_missing, last_missing);
|
else PrintCLI(_("* missing sectors : %" PRId64 " - %" PRId64 "\n"), first_missing, last_missing);
|
||||||
first_missing = -1;
|
first_missing = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -794,7 +794,7 @@ void RS02Verify(Image *image)
|
|||||||
{ guint32 crc = Crc32(buf, 2048);
|
{ guint32 crc = Crc32(buf, 2048);
|
||||||
|
|
||||||
if(cc->crcValid[crc_idx] && crc != cc->crcBuf[crc_idx])
|
if(cc->crcValid[crc_idx] && crc != cc->crcBuf[crc_idx])
|
||||||
{ PrintCLI(_("* CRC error, sector: %lld\n"), s);
|
{ PrintCLI(_("* CRC error, sector: %" PRId64 "\n"), s);
|
||||||
data_crc_errors++;
|
data_crc_errors++;
|
||||||
new_crc_errors++;
|
new_crc_errors++;
|
||||||
defective = TRUE;
|
defective = TRUE;
|
||||||
@@ -820,7 +820,7 @@ void RS02Verify(Image *image)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
percent = (VERIFY_IMAGE_SEGMENTS*(s+1))/expected_sectors;
|
percent = (VERIFY_IMAGE_SEGMENTS*(s+1))/expected_sectors;
|
||||||
else
|
else
|
||||||
@@ -829,20 +829,20 @@ void RS02Verify(Image *image)
|
|||||||
|
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{ PrintProgress(_("- testing sectors : %3d%%") ,percent);
|
{ PrintProgress(_("- testing sectors : %3d%%") ,percent);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ add_verify_values(self, percent, new_missing, new_crc_errors);
|
{ add_verify_values(self, percent, new_missing, new_crc_errors);
|
||||||
if(data_missing || data_crc_errors)
|
if(data_missing || data_crc_errors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpDataSection),
|
SetLabelText(GTK_LABEL(wl->cmpDataSection),
|
||||||
_("<span %s>%lld sectors missing; %lld CRC errors</span>"),
|
_("<span %s>%" PRId64 " sectors missing; %" PRId64 " CRC errors</span>"),
|
||||||
Closure->redMarkup, data_missing, data_crc_errors);
|
Closure->redMarkup, data_missing, data_crc_errors);
|
||||||
if(crc_missing)
|
if(crc_missing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpCrcSection),
|
SetLabelText(GTK_LABEL(wl->cmpCrcSection),
|
||||||
_("<span %s>%lld sectors missing</span>"),
|
_("<span %s>%" PRId64 " sectors missing</span>"),
|
||||||
Closure->redMarkup, crc_missing);
|
Closure->redMarkup, crc_missing);
|
||||||
if(ecc_missing)
|
if(ecc_missing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccSection),
|
SetLabelText(GTK_LABEL(wl->cmpEccSection),
|
||||||
_("<span %s>%lld sectors missing</span>"),
|
_("<span %s>%" PRId64 " sectors missing</span>"),
|
||||||
Closure->redMarkup, ecc_missing);
|
Closure->redMarkup, ecc_missing);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -853,19 +853,19 @@ void RS02Verify(Image *image)
|
|||||||
|
|
||||||
/* Complete damage summary */
|
/* Complete damage summary */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(data_missing || data_crc_errors)
|
{ if(data_missing || data_crc_errors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpDataSection),
|
SetLabelText(GTK_LABEL(wl->cmpDataSection),
|
||||||
_("<span %s>%lld sectors missing; %lld CRC errors</span>"),
|
_("<span %s>%" PRId64 " sectors missing; %" PRId64 " CRC errors</span>"),
|
||||||
Closure->redMarkup, data_missing, data_crc_errors);
|
Closure->redMarkup, data_missing, data_crc_errors);
|
||||||
if(crc_missing)
|
if(crc_missing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpCrcSection),
|
SetLabelText(GTK_LABEL(wl->cmpCrcSection),
|
||||||
_("<span %s>%lld sectors missing</span>"),
|
_("<span %s>%" PRId64 " sectors missing</span>"),
|
||||||
Closure->redMarkup, crc_missing);
|
Closure->redMarkup, crc_missing);
|
||||||
if(ecc_missing)
|
if(ecc_missing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccSection),
|
SetLabelText(GTK_LABEL(wl->cmpEccSection),
|
||||||
_("<span %s>%lld sectors missing</span>"),
|
_("<span %s>%" PRId64 " sectors missing</span>"),
|
||||||
Closure->redMarkup, ecc_missing);
|
Closure->redMarkup, ecc_missing);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -889,25 +889,25 @@ void RS02Verify(Image *image)
|
|||||||
PrintLog(_("* suspicious image : contains damaged ecc headers\n"));
|
PrintLog(_("* suspicious image : contains damaged ecc headers\n"));
|
||||||
else
|
else
|
||||||
{ if(!total_crc_errors)
|
{ if(!total_crc_errors)
|
||||||
PrintLog(_("* BAD image : %lld sectors missing\n"), total_missing);
|
PrintLog(_("* BAD image : %" PRId64 " sectors missing\n"), total_missing);
|
||||||
if(!total_missing)
|
if(!total_missing)
|
||||||
PrintLog(_("* suspicious image : all sectors present, but %lld CRC errors\n"), total_crc_errors);
|
PrintLog(_("* suspicious image : all sectors present, but %" PRId64 " CRC errors\n"), total_crc_errors);
|
||||||
if(total_missing && total_crc_errors)
|
if(total_missing && total_crc_errors)
|
||||||
PrintLog(_("* BAD image : %lld sectors missing, %lld CRC errors\n"),
|
PrintLog(_("* BAD image : %" PRId64 " sectors missing, %" PRId64 " CRC errors\n"),
|
||||||
total_missing, total_crc_errors);
|
total_missing, total_crc_errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
PrintLog(_(" ... ecc headers : %lld ok, %lld CRC errors, %lld missing\n"),
|
PrintLog(_(" ... ecc headers : %" PRId64 " ok, %" PRId64 " CRC errors, %" PRId64 " missing\n"),
|
||||||
hdr_ok, hdr_crc_errors, hdr_missing);
|
hdr_ok, hdr_crc_errors, hdr_missing);
|
||||||
PrintLog(_(" ... data section : %lld sectors missing; %lld CRC errors\n"),
|
PrintLog(_(" ... data section : %" PRId64 " sectors missing; %" PRId64 " CRC errors\n"),
|
||||||
data_missing, data_crc_errors);
|
data_missing, data_crc_errors);
|
||||||
if(!data_missing)
|
if(!data_missing)
|
||||||
PrintLog(_(" ... data md5sum : %s\n"), data_digest);
|
PrintLog(_(" ... data md5sum : %s\n"), data_digest);
|
||||||
PrintLog(_(" ... crc section : %lld sectors missing\n"), crc_missing);
|
PrintLog(_(" ... crc section : %" PRId64 " sectors missing\n"), crc_missing);
|
||||||
PrintLog(_(" ... ecc section : %lld sectors missing\n"), ecc_missing);
|
PrintLog(_(" ... ecc section : %" PRId64 " sectors missing\n"), ecc_missing);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(!data_missing && !data_crc_errors)
|
{ if(!data_missing && !data_crc_errors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpDataSection), _("complete"));
|
SetLabelText(GTK_LABEL(wl->cmpDataSection), _("complete"));
|
||||||
@@ -917,7 +917,7 @@ void RS02Verify(Image *image)
|
|||||||
SetLabelText(GTK_LABEL(wl->cmpImageMd5Sum), "%s", data_missing ? "-" : data_digest);
|
SetLabelText(GTK_LABEL(wl->cmpImageMd5Sum), "%s", data_missing ? "-" : data_digest);
|
||||||
|
|
||||||
if(img_advice)
|
if(img_advice)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpImageResult), img_advice);
|
{ SetLabelText(GTK_LABEL(wl->cmpImageResult), "%s", img_advice);
|
||||||
g_free(img_advice);
|
g_free(img_advice);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -935,7 +935,7 @@ void RS02Verify(Image *image)
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
if(img_advice)
|
if(img_advice)
|
||||||
{ PrintLog(img_advice);
|
{ PrintLog("%s", img_advice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -957,7 +957,7 @@ continue_with_ecc:
|
|||||||
PrintLog(format, _("created by dvdisaster"), major, minor, micro, unstable);
|
PrintLog(format, _("created by dvdisaster"), major, minor, micro, unstable);
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
{ SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
||||||
wl->cmpEccCreatedBy,
|
wl->cmpEccCreatedBy,
|
||||||
@@ -972,7 +972,7 @@ continue_with_ecc:
|
|||||||
PrintLog(format, _("created by dvdisaster"), major, minor, unstable);
|
PrintLog(format, _("created by dvdisaster"), major, minor, unstable);
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
SwitchAndSetFootline(wl->cmpEccNotebook, 1,
|
||||||
wl->cmpEccCreatedBy,
|
wl->cmpEccCreatedBy,
|
||||||
@@ -989,7 +989,7 @@ continue_with_ecc:
|
|||||||
method, eh->eccBytes,
|
method, eh->eccBytes,
|
||||||
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMethod), _("%4s, %d roots, %4.1f%% redundancy"),
|
SetLabelText(GTK_LABEL(wl->cmpEccMethod), _("%4s, %d roots, %4.1f%% redundancy"),
|
||||||
method, eh->eccBytes,
|
method, eh->eccBytes,
|
||||||
@@ -1004,7 +1004,7 @@ continue_with_ecc:
|
|||||||
(eh->neededVersion%10000)/100);
|
(eh->neededVersion%10000)/100);
|
||||||
|
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccRequires), "dvdisaster-%d.%d",
|
SetLabelText(GTK_LABEL(wl->cmpEccRequires), "dvdisaster-%d.%d",
|
||||||
eh->neededVersion/10000,
|
eh->neededVersion/10000,
|
||||||
@@ -1019,7 +1019,7 @@ continue_with_ecc:
|
|||||||
(eh->neededVersion%10000)/100);
|
(eh->neededVersion%10000)/100);
|
||||||
|
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccRequires),
|
{ SetLabelText(GTK_LABEL(wl->cmpEccRequires),
|
||||||
"<span %s>dvdisaster-%d.%d</span>",
|
"<span %s>dvdisaster-%d.%d</span>",
|
||||||
@@ -1040,25 +1040,25 @@ continue_with_ecc:
|
|||||||
/* Number of sectors medium is supposed to have */
|
/* Number of sectors medium is supposed to have */
|
||||||
|
|
||||||
if(image->sectorSize == expected_sectors)
|
if(image->sectorSize == expected_sectors)
|
||||||
{ PrintLog(_("- medium sectors : %lld / %lld (good)\n"),
|
{ PrintLog(_("- medium sectors : %" PRId64 " / %" PRId64 " (good)\n"),
|
||||||
expected_sectors, lay->dataSectors);
|
expected_sectors, lay->dataSectors);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "%lld / %lld",
|
SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors), "%" PRId64 " / %" PRId64 "",
|
||||||
expected_sectors, lay->dataSectors);
|
expected_sectors, lay->dataSectors);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ if(image->sectorSize > expected_sectors && image->sectorSize - expected_sectors <= 2)
|
{ if(image->sectorSize > expected_sectors && image->sectorSize - expected_sectors <= 2)
|
||||||
PrintLog(_("* medium sectors : %lld (BAD, perhaps TAO/DAO mismatch)\n"),
|
PrintLog(_("* medium sectors : %" PRId64 " (BAD, perhaps TAO/DAO mismatch)\n"),
|
||||||
expected_sectors);
|
expected_sectors);
|
||||||
else PrintLog(_("* medium sectors : %lld (BAD)\n"),expected_sectors);
|
else PrintLog(_("* medium sectors : %" PRId64 " (BAD)\n"),expected_sectors);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors),
|
{ SetLabelText(GTK_LABEL(wl->cmpEccMediumSectors),
|
||||||
"<span %s>%lld</span>", Closure->redMarkup, expected_sectors);
|
"<span %s>%" PRId64 "</span>", Closure->redMarkup, expected_sectors);
|
||||||
if(!ecc_advice && image->sectorSize > expected_sectors)
|
if(!ecc_advice && image->sectorSize > expected_sectors)
|
||||||
ecc_advice = g_strdup_printf(_("<span %s>Image size does not match recorded size.</span>"), Closure->redMarkup);
|
ecc_advice = g_strdup_printf(_("<span %s>Image size does not match recorded size.</span>"), Closure->redMarkup);
|
||||||
}
|
}
|
||||||
@@ -1078,7 +1078,7 @@ continue_with_ecc:
|
|||||||
if(n) PrintLog(_("- data md5sum : %s (good)\n"),hdr_digest);
|
if(n) PrintLog(_("- data md5sum : %s (good)\n"),hdr_digest);
|
||||||
else PrintLog(_("* data md5sum : %s (BAD)\n"),hdr_digest);
|
else PrintLog(_("* data md5sum : %s (BAD)\n"),hdr_digest);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(n) SetLabelText(GTK_LABEL(wl->cmpEcc1Msg), "%s", hdr_digest);
|
{ if(n) SetLabelText(GTK_LABEL(wl->cmpEcc1Msg), "%s", hdr_digest);
|
||||||
else
|
else
|
||||||
@@ -1091,7 +1091,7 @@ continue_with_ecc:
|
|||||||
else
|
else
|
||||||
{ PrintLog(_("- data md5sum : %s\n"), "-");
|
{ PrintLog(_("- data md5sum : %s\n"), "-");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEcc1Msg), "%s", "-");
|
SetLabelText(GTK_LABEL(wl->cmpEcc1Msg), "%s", "-");
|
||||||
#endif
|
#endif
|
||||||
@@ -1104,14 +1104,14 @@ continue_with_ecc:
|
|||||||
if(!crc_missing)
|
if(!crc_missing)
|
||||||
{ if(!memcmp(eh->crcSum, cc->crcSum, 16))
|
{ if(!memcmp(eh->crcSum, cc->crcSum, 16))
|
||||||
{ PrintLog(_("- crc md5sum : %s (good)\n"),digest);
|
{ PrintLog(_("- crc md5sum : %s (good)\n"),digest);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEcc2Msg), "%s", digest);
|
SetLabelText(GTK_LABEL(wl->cmpEcc2Msg), "%s", digest);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("* crc md5sum : %s (BAD)\n"),digest);
|
{ PrintLog(_("* crc md5sum : %s (BAD)\n"),digest);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEcc2Msg), "<span %s>%s</span>", Closure->redMarkup, digest);
|
{ SetLabelText(GTK_LABEL(wl->cmpEcc2Msg), "<span %s>%s</span>", Closure->redMarkup, digest);
|
||||||
}
|
}
|
||||||
@@ -1122,7 +1122,7 @@ continue_with_ecc:
|
|||||||
else
|
else
|
||||||
{ PrintLog(_("- crc md5sum : %s\n"), "-");
|
{ PrintLog(_("- crc md5sum : %s\n"), "-");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEcc2Msg), "%s", "-");
|
SetLabelText(GTK_LABEL(wl->cmpEcc2Msg), "%s", "-");
|
||||||
#endif
|
#endif
|
||||||
@@ -1135,14 +1135,14 @@ continue_with_ecc:
|
|||||||
if(!ecc_missing)
|
if(!ecc_missing)
|
||||||
{ if(!memcmp(eh->eccSum, ecc_sum, 16))
|
{ if(!memcmp(eh->eccSum, ecc_sum, 16))
|
||||||
{ PrintLog(_("- ecc md5sum : %s (good)\n"),digest);
|
{ PrintLog(_("- ecc md5sum : %s (good)\n"),digest);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEcc3Msg), "%s", digest);
|
SetLabelText(GTK_LABEL(wl->cmpEcc3Msg), "%s", digest);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("* ecc md5sum : %s (BAD)\n"),digest);
|
{ PrintLog(_("* ecc md5sum : %s (BAD)\n"),digest);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEcc3Msg), "<span %s>%s</span>", Closure->redMarkup, digest);
|
{ SetLabelText(GTK_LABEL(wl->cmpEcc3Msg), "<span %s>%s</span>", Closure->redMarkup, digest);
|
||||||
}
|
}
|
||||||
@@ -1153,7 +1153,7 @@ continue_with_ecc:
|
|||||||
else
|
else
|
||||||
{ PrintLog(_("- ecc md5sum : %s\n"), "-");
|
{ PrintLog(_("- ecc md5sum : %s\n"), "-");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEcc3Msg), "%s", "-");
|
SetLabelText(GTK_LABEL(wl->cmpEcc3Msg), "%s", "-");
|
||||||
#endif
|
#endif
|
||||||
@@ -1162,15 +1162,15 @@ continue_with_ecc:
|
|||||||
|
|
||||||
/*** Print final results */
|
/*** Print final results */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
try_it =
|
try_it =
|
||||||
#endif
|
#endif
|
||||||
prognosis(cc, total_missing + data_crc_errors - hdr_correctable, expected_sectors);
|
prognosis(cc, total_missing + data_crc_errors - hdr_correctable, expected_sectors);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(ecc_advice)
|
{ if(ecc_advice)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccResult), ecc_advice);
|
{ SetLabelText(GTK_LABEL(wl->cmpEccResult), "%s", ecc_advice);
|
||||||
g_free(ecc_advice);
|
g_free(ecc_advice);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1190,7 +1190,7 @@ continue_with_ecc:
|
|||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{ if(ecc_advice)
|
{ if(ecc_advice)
|
||||||
{ PrintLog(ecc_advice);
|
{ PrintLog("%s", ecc_advice);
|
||||||
g_free(ecc_advice);
|
g_free(ecc_advice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,8 +138,8 @@ void RS02SetFixMaxValues(RS02Widgets *wl, int data_bytes, int ecc_bytes, gint64
|
|||||||
static gboolean results_idle_func(gpointer data)
|
static gboolean results_idle_func(gpointer data)
|
||||||
{ RS02Widgets *wl = (RS02Widgets*)data;
|
{ RS02Widgets *wl = (RS02Widgets*)data;
|
||||||
|
|
||||||
SetLabelText(GTK_LABEL(wl->fixCorrected), _("Repaired: %lld"), wl->corrected);
|
SetLabelText(GTK_LABEL(wl->fixCorrected), _("Repaired: %" PRId64 ""), wl->corrected);
|
||||||
SetLabelText(GTK_LABEL(wl->fixUncorrected), _("Unrepairable: <span %s>%lld</span>"),Closure->redMarkup, wl->uncorrected);
|
SetLabelText(GTK_LABEL(wl->fixUncorrected), _("Unrepairable: <span %s>%" PRId64 "</span>"),Closure->redMarkup, wl->uncorrected);
|
||||||
SetLabelText(GTK_LABEL(wl->fixProgress), _("Progress: %3d.%1d%%"), wl->percent/10, wl->percent%10);
|
SetLabelText(GTK_LABEL(wl->fixProgress), _("Progress: %3d.%1d%%"), wl->percent/10, wl->percent%10);
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|||||||
@@ -195,9 +195,9 @@ void RS03ReadSectors(Image *image, RS03Layout *lay, unsigned char *buf,
|
|||||||
gint64 n;
|
gint64 n;
|
||||||
|
|
||||||
if(layer < 0 || layer > 255)
|
if(layer < 0 || layer > 255)
|
||||||
Stop("RS03ReadSectors: layer %lld out of range 0 .. 255\n", layer);
|
Stop("RS03ReadSectors: layer %" PRId64 " out of range 0 .. 255\n", layer);
|
||||||
if(layer_sector < 0 || layer_sector >= lay->sectorsPerLayer)
|
if(layer_sector < 0 || layer_sector >= lay->sectorsPerLayer)
|
||||||
Stop("RS03ReadSectors: offset %lld out of range 0 .. %lld)\n",
|
Stop("RS03ReadSectors: offset %" PRId64 " out of range 0 .. %" PRId64 ")\n",
|
||||||
layer_sector, lay->sectorsPerLayer-1);
|
layer_sector, lay->sectorsPerLayer-1);
|
||||||
|
|
||||||
/* "Image" file size may not be a multiple of 2048 */
|
/* "Image" file size may not be a multiple of 2048 */
|
||||||
@@ -244,7 +244,7 @@ void RS03ReadSectors(Image *image, RS03Layout *lay, unsigned char *buf,
|
|||||||
stop_sector = start_sector + how_many - 1;
|
stop_sector = start_sector + how_many - 1;
|
||||||
|
|
||||||
if(stop_sector >= (layer+1)*lay->sectorsPerLayer)
|
if(stop_sector >= (layer+1)*lay->sectorsPerLayer)
|
||||||
Stop("RS03ReadSectors: range %lld..%lld crosses layer boundary\n",
|
Stop("RS03ReadSectors: range %" PRId64 "..%" PRId64 " crosses layer boundary\n",
|
||||||
start_sector, stop_sector);
|
start_sector, stop_sector);
|
||||||
target_file = image->file;
|
target_file = image->file;
|
||||||
}
|
}
|
||||||
@@ -337,12 +337,12 @@ void RS03ReadSectors(Image *image, RS03Layout *lay, unsigned char *buf,
|
|||||||
/* All sectors are consecutively readable in image case */
|
/* All sectors are consecutively readable in image case */
|
||||||
|
|
||||||
if(!LargeSeek(target_file, (gint64)(2048*start_sector)))
|
if(!LargeSeek(target_file, (gint64)(2048*start_sector)))
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"),
|
||||||
start_sector, strerror(errno));
|
start_sector, strerror(errno));
|
||||||
|
|
||||||
n = LargeRead(target_file, buf, byte_size);
|
n = LargeRead(target_file, buf, byte_size);
|
||||||
if(n != byte_size)
|
if(n != byte_size)
|
||||||
Stop(_("Failed reading sector %lld in image: %s"),
|
Stop(_("Failed reading sector %" PRId64 " in image: %s"),
|
||||||
start_sector, strerror(errno));
|
start_sector, strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -464,7 +464,7 @@ RS03Layout *CalcRS03Layout(Image *image, int target)
|
|||||||
ecc_size = strtoll(Closure->redundancy, NULL, 10);
|
ecc_size = strtoll(Closure->redundancy, NULL, 10);
|
||||||
if( ecc_size < ecc_file_size(lay->dataSectors, 8)
|
if( ecc_size < ecc_file_size(lay->dataSectors, 8)
|
||||||
|| ecc_size > ecc_file_size(lay->dataSectors, 170))
|
|| ecc_size > ecc_file_size(lay->dataSectors, 170))
|
||||||
Stop(_("Ecc file size %lldm out of useful range [%lld .. %lld]"),
|
Stop(_("Ecc file size %" PRId64 "m out of useful range [%" PRId64 " .. %" PRId64 "]"),
|
||||||
ecc_size,
|
ecc_size,
|
||||||
ecc_file_size(lay->dataSectors, 8),
|
ecc_file_size(lay->dataSectors, 8),
|
||||||
ecc_file_size(lay->dataSectors, 170));
|
ecc_file_size(lay->dataSectors, 170));
|
||||||
@@ -522,7 +522,7 @@ RS03Layout *CalcRS03Layout(Image *image, int target)
|
|||||||
{ dataSectors = image->sectorSize;
|
{ dataSectors = image->sectorSize;
|
||||||
if(Closure->debugMode && Closure->mediumSize)
|
if(Closure->debugMode && Closure->mediumSize)
|
||||||
{ if(dataSectors >= Closure->mediumSize)
|
{ if(dataSectors >= Closure->mediumSize)
|
||||||
Stop(_("Medium size smaller than image size (%lld < %lld)"), Closure->mediumSize, dataSectors);
|
Stop(_("Medium size smaller than image size (%" PRId64 " < %" PRId64 ")"), Closure->mediumSize, dataSectors);
|
||||||
lay->mediumCapacity = Closure->mediumSize;
|
lay->mediumCapacity = Closure->mediumSize;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -591,14 +591,14 @@ RS03Layout *CalcRS03Layout(Image *image, int target)
|
|||||||
Verbose("Calculated layout for RS03 file:\n");
|
Verbose("Calculated layout for RS03 file:\n");
|
||||||
else Verbose("Calculated layout for RS03 image:\n");
|
else Verbose("Calculated layout for RS03 image:\n");
|
||||||
|
|
||||||
Verbose("data sectors = %lld\n", lay->dataSectors);
|
Verbose("data sectors = %" PRId64 "\n", lay->dataSectors);
|
||||||
Verbose("data padding = %lld\n", lay->dataPadding);
|
Verbose("data padding = %" PRId64 "\n", lay->dataPadding);
|
||||||
Verbose("layer size = %lld\n", lay->sectorsPerLayer);
|
Verbose("layer size = %" PRId64 "\n", lay->sectorsPerLayer);
|
||||||
Verbose("total sectors = %lld\n", lay->totalSectors);
|
Verbose("total sectors = %" PRId64 "\n", lay->totalSectors);
|
||||||
Verbose("medium capacity = %lld\n", lay->mediumCapacity);
|
Verbose("medium capacity = %" PRId64 "\n", lay->mediumCapacity);
|
||||||
Verbose("header position = %lld\n", lay->eccHeaderPos);
|
Verbose("header position = %" PRId64 "\n", lay->eccHeaderPos);
|
||||||
Verbose("first CRC sector = %lld\n", lay->firstCrcPos);
|
Verbose("first CRC sector = %" PRId64 "\n", lay->firstCrcPos);
|
||||||
Verbose("first ECC sector = %lld\n", lay->firstEccPos);
|
Verbose("first ECC sector = %" PRId64 "\n", lay->firstEccPos);
|
||||||
Verbose("ndata = %d\n", lay->ndata);
|
Verbose("ndata = %d\n", lay->ndata);
|
||||||
Verbose("nroots = %d (%4.1f%%)\n", lay->nroots, lay->redundancy);
|
Verbose("nroots = %d (%4.1f%%)\n", lay->nroots, lay->redundancy);
|
||||||
Verbose("\n");
|
Verbose("\n");
|
||||||
@@ -640,11 +640,11 @@ void WriteRS03Header(LargeFile *file, RS03Layout *lay, EccHeader *eh)
|
|||||||
{ int n;
|
{ int n;
|
||||||
|
|
||||||
if(!LargeSeek(file, 2048*lay->eccHeaderPos))
|
if(!LargeSeek(file, 2048*lay->eccHeaderPos))
|
||||||
Stop(_("Failed seeking to ecc header at %lld: %s\n"), lay->eccHeaderPos, strerror(errno));
|
Stop(_("Failed seeking to ecc header at %" PRId64 ": %s\n"), lay->eccHeaderPos, strerror(errno));
|
||||||
|
|
||||||
n = LargeWrite(file, eh, sizeof(EccHeader));
|
n = LargeWrite(file, eh, sizeof(EccHeader));
|
||||||
if(n != sizeof(EccHeader))
|
if(n != sizeof(EccHeader))
|
||||||
Stop(_("Failed writing ecc header at %lld: %s\n"), lay->eccHeaderPos, strerror(errno));
|
Stop(_("Failed writing ecc header at %" PRId64 ": %s\n"), lay->eccHeaderPos, strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
typedef struct
|
typedef struct
|
||||||
{ Method *self;
|
{ Method *self;
|
||||||
Image *image;
|
Image *image;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS03Widgets *wl;
|
RS03Widgets *wl;
|
||||||
#endif
|
#endif
|
||||||
RS03Layout *lay;
|
RS03Layout *lay;
|
||||||
@@ -147,7 +147,7 @@ static void ecc_cleanup(gpointer data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(ec->earlyTermination)
|
{ if(ec->earlyTermination)
|
||||||
SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
||||||
@@ -229,7 +229,7 @@ static void ecc_cleanup(gpointer data)
|
|||||||
if(ec->encoderData) g_free(ec->encoderData);
|
if(ec->encoderData) g_free(ec->encoderData);
|
||||||
g_free(ec);
|
g_free(ec);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -245,7 +245,7 @@ static void ecc_cleanup(gpointer data)
|
|||||||
|
|
||||||
static void abort_encoding(ecc_closure *ec, int truncate)
|
static void abort_encoding(ecc_closure *ec, int truncate)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS03Widgets *wl = ec->wl;
|
RS03Widgets *wl = ec->wl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -255,14 +255,14 @@ static void abort_encoding(ecc_closure *ec, int truncate)
|
|||||||
else if(!LargeTruncate(ec->image->file, (gint64)(2048*ec->lay->dataSectors)))
|
else if(!LargeTruncate(ec->image->file, (gint64)(2048*ec->lay->dataSectors)))
|
||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
_("<span %s>Aborted by user request!</span> (partial ecc data removed from image)"),
|
_("<span %s>Aborted by user request!</span> (partial ecc data removed from image)"),
|
||||||
Closure->redMarkup);
|
Closure->redMarkup);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
@@ -291,7 +291,7 @@ static void remove_old_ecc(ecc_closure *ec)
|
|||||||
{
|
{
|
||||||
if(ConfirmEccDeletion(Closure->eccName))
|
if(ConfirmEccDeletion(Closure->eccName))
|
||||||
LargeUnlink(Closure->eccName);
|
LargeUnlink(Closure->eccName);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else
|
else
|
||||||
{ SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
{ SetLabelText(GTK_LABEL(ec->wl->encFootline),
|
||||||
_("<span %s>Aborted to keep existing ecc file.</span>"),
|
_("<span %s>Aborted to keep existing ecc file.</span>"),
|
||||||
@@ -311,14 +311,14 @@ static void remove_old_ecc(ecc_closure *ec)
|
|||||||
guint64 data_bytes;
|
guint64 data_bytes;
|
||||||
int answer;
|
int answer;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->confirmDeletion || !Closure->guiMode)
|
if(Closure->confirmDeletion || !Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Image \"%s\" already contains error correction information.\n"
|
_("Image \"%s\" already contains error correction information.\n"
|
||||||
"Truncating image to data part (%lld sectors).\n"),
|
"Truncating image to data part (%" PRId64 " sectors).\n"),
|
||||||
Closure->imageName, data_sectors);
|
Closure->imageName, data_sectors);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
else answer = TRUE;
|
else answer = TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -346,8 +346,8 @@ static void remove_old_ecc(ecc_closure *ec)
|
|||||||
|
|
||||||
PrintLog(_("Image size is now"));
|
PrintLog(_("Image size is now"));
|
||||||
if(ec->image->inLast == 2048)
|
if(ec->image->inLast == 2048)
|
||||||
PrintLog(_(": %lld medium sectors.\n"), ec->image->sectorSize);
|
PrintLog(_(": %" PRId64 " medium sectors.\n"), ec->image->sectorSize);
|
||||||
else PrintLog(_(": %lld medium sectors and %d bytes.\n"),
|
else PrintLog(_(": %" PRId64 " medium sectors and %d bytes.\n"),
|
||||||
ec->image->sectorSize-1, ec->image->inLast);
|
ec->image->sectorSize-1, ec->image->inLast);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -514,7 +514,7 @@ static void expand_image(ecc_closure *ec)
|
|||||||
{ unsigned char dead_sector[2048];
|
{ unsigned char dead_sector[2048];
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
abort_encoding(ec, TRUE);
|
abort_encoding(ec, TRUE);
|
||||||
#endif
|
#endif
|
||||||
@@ -531,7 +531,7 @@ static void expand_image(ecc_closure *ec)
|
|||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{ PrintProgress(_(progress_msg), percent);
|
{ PrintProgress(_(progress_msg), percent);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(ec->wl->encPBar1, percent, 100);
|
SetProgress(ec->wl->encPBar1, percent, 100);
|
||||||
#endif
|
#endif
|
||||||
@@ -543,7 +543,7 @@ static void expand_image(ecc_closure *ec)
|
|||||||
PrintProgress(_(progress_msg), 100);
|
PrintProgress(_(progress_msg), 100);
|
||||||
PrintProgress("\n");
|
PrintProgress("\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetProgress(ec->wl->encPBar1, 100, 100);
|
SetProgress(ec->wl->encPBar1, 100, 100);
|
||||||
#endif
|
#endif
|
||||||
@@ -629,7 +629,7 @@ static void read_next_chunk(ecc_closure *ec, guint64 chunk)
|
|||||||
guint64 page_offset;
|
guint64 page_offset;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* User hit the Stop button */
|
if(Closure->stopActions) /* User hit the Stop button */
|
||||||
{ ec->abortImmediately = TRUE;
|
{ ec->abortImmediately = TRUE;
|
||||||
abort_encoding(ec, TRUE);
|
abort_encoding(ec, TRUE);
|
||||||
@@ -716,7 +716,7 @@ static void read_next_chunk(ecc_closure *ec, guint64 chunk)
|
|||||||
|
|
||||||
Stop(_("Incomplete image\n\n"
|
Stop(_("Incomplete image\n\n"
|
||||||
"The image contains missing sectors,\n"
|
"The image contains missing sectors,\n"
|
||||||
"e.g. sector %lld.\n%s"
|
"e.g. sector %" PRId64 ".\n%s"
|
||||||
"Error correction data works like a backup; it must\n"
|
"Error correction data works like a backup; it must\n"
|
||||||
"be created when the image is still fully readable.\n"
|
"be created when the image is still fully readable.\n"
|
||||||
"Exiting and removing partial error correction data."),
|
"Exiting and removing partial error correction data."),
|
||||||
@@ -753,12 +753,12 @@ static void flush_crc(ecc_closure *ec, LargeFile *file_out)
|
|||||||
if(!LargeSeek(file_out, crc_sect))
|
if(!LargeSeek(file_out, crc_sect))
|
||||||
{ ec->abortImmediately = TRUE;
|
{ ec->abortImmediately = TRUE;
|
||||||
|
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"), crc_sect, strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), crc_sect, strerror(errno));
|
||||||
}
|
}
|
||||||
for(i=0; i<ec->encoderLayerSectors; i++)
|
for(i=0; i<ec->encoderLayerSectors; i++)
|
||||||
if(LargeWrite(file_out, ec->encoderCrc+512*i, 2048) != 2048)
|
if(LargeWrite(file_out, ec->encoderCrc+512*i, 2048) != 2048)
|
||||||
{ ec->abortImmediately = TRUE;
|
{ ec->abortImmediately = TRUE;
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), crc_sect, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), crc_sect, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -778,11 +778,11 @@ static void flush_parity(ecc_closure *ec, LargeFile *file_out)
|
|||||||
|
|
||||||
if(!LargeSeek(file_out, 2048*s))
|
if(!LargeSeek(file_out, 2048*s))
|
||||||
{ ec->abortImmediately = TRUE;
|
{ ec->abortImmediately = TRUE;
|
||||||
Stop(_("Failed seeking to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed seeking to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
}
|
}
|
||||||
if(LargeWrite(file_out, ec->slice[k]+idx, 2048) != 2048)
|
if(LargeWrite(file_out, ec->slice[k]+idx, 2048) != 2048)
|
||||||
{ ec->abortImmediately = TRUE;
|
{ ec->abortImmediately = TRUE;
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), s, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), s, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -860,7 +860,7 @@ static gpointer io_thread(ecc_closure *ec)
|
|||||||
|
|
||||||
for(chunk=0; chunk<lay->sectorsPerLayer; chunk+=ec->chunkSize)
|
for(chunk=0; chunk<lay->sectorsPerLayer; chunk+=ec->chunkSize)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int cpu_bound = 0;
|
int cpu_bound = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -917,7 +917,7 @@ static gpointer io_thread(ecc_closure *ec)
|
|||||||
/* Wait until the encoders have finished */
|
/* Wait until the encoders have finished */
|
||||||
|
|
||||||
g_mutex_lock(ec->lock);
|
g_mutex_lock(ec->lock);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
cpu_bound = ec->buffersToEncode;
|
cpu_bound = ec->buffersToEncode;
|
||||||
#endif
|
#endif
|
||||||
while(ec->buffersToEncode)
|
while(ec->buffersToEncode)
|
||||||
@@ -930,7 +930,7 @@ static gpointer io_thread(ecc_closure *ec)
|
|||||||
|
|
||||||
verbose("IO: chunk %d finished\n", ec->ioChunk);
|
verbose("IO: chunk %d finished\n", ec->ioChunk);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(cpu_bound)
|
{ if(cpu_bound)
|
||||||
{ SetLabelText(GTK_LABEL(ec->wl->encBottleneck), _("CPU bound"));
|
{ SetLabelText(GTK_LABEL(ec->wl->encBottleneck), _("CPU bound"));
|
||||||
@@ -1137,7 +1137,7 @@ static gpointer encoder_thread(ecc_closure *ec)
|
|||||||
{
|
{
|
||||||
ec->lastPercent = percent;
|
ec->lastPercent = percent;
|
||||||
g_mutex_unlock(ec->lock);
|
g_mutex_unlock(ec->lock);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ gdouble elapsed;
|
{ gdouble elapsed;
|
||||||
gulong ignore;
|
gulong ignore;
|
||||||
@@ -1178,14 +1178,14 @@ static void create_reed_solomon(ecc_closure *ec)
|
|||||||
{ int nroots = ec->lay->nroots;
|
{ int nroots = ec->lay->nroots;
|
||||||
int ndata = ec->lay->ndata;
|
int ndata = ec->lay->ndata;
|
||||||
int i;
|
int i;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
char *alg="none";
|
char *alg="none";
|
||||||
char *iostrat="none";
|
char *iostrat="none";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*** Show the second progress bar */
|
/*** Show the second progress bar */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ ShowWidget(ec->wl->encPBar2);
|
{ ShowWidget(ec->wl->encPBar2);
|
||||||
ShowWidget(ec->wl->encLabel2);
|
ShowWidget(ec->wl->encLabel2);
|
||||||
@@ -1289,7 +1289,7 @@ static void create_reed_solomon(ecc_closure *ec)
|
|||||||
void RS03Create(void)
|
void RS03Create(void)
|
||||||
{ Method *method = FindMethod("RS03");
|
{ Method *method = FindMethod("RS03");
|
||||||
Image *image = NULL;
|
Image *image = NULL;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS03Widgets *wl = (RS03Widgets*)method->widgetList;
|
RS03Widgets *wl = (RS03Widgets*)method->widgetList;
|
||||||
#endif
|
#endif
|
||||||
RS03Layout *lay;
|
RS03Layout *lay;
|
||||||
@@ -1301,14 +1301,14 @@ void RS03Create(void)
|
|||||||
/*** Register the cleanup procedure for GUI mode */
|
/*** Register the cleanup procedure for GUI mode */
|
||||||
|
|
||||||
ec->self = method;
|
ec->self = method;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
ec->wl = wl;
|
ec->wl = wl;
|
||||||
#endif
|
#endif
|
||||||
ec->earlyTermination = TRUE;
|
ec->earlyTermination = TRUE;
|
||||||
|
|
||||||
RegisterCleanup(_("Error correction data creation aborted"), ecc_cleanup, ec);
|
RegisterCleanup(_("Error correction data creation aborted"), ecc_cleanup, ec);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode) /* Preliminary fill text for the head line */
|
if(Closure->guiMode) /* Preliminary fill text for the head line */
|
||||||
SetLabelText(GTK_LABEL(wl->encHeadline),
|
SetLabelText(GTK_LABEL(wl->encHeadline),
|
||||||
_("<big>Augmenting the image with error correction data.</big>\n<i>%s</i>"),
|
_("<big>Augmenting the image with error correction data.</big>\n<i>%s</i>"),
|
||||||
@@ -1332,8 +1332,8 @@ void RS03Create(void)
|
|||||||
ec->image = image;
|
ec->image = image;
|
||||||
|
|
||||||
if(image->inLast == 2048)
|
if(image->inLast == 2048)
|
||||||
PrintLog(_(": %lld medium sectors.\n"), image->sectorSize);
|
PrintLog(_(": %" PRId64 " medium sectors.\n"), image->sectorSize);
|
||||||
else PrintLog(_(": %lld medium sectors and %d bytes.\n"),
|
else PrintLog(_(": %" PRId64 " medium sectors and %d bytes.\n"),
|
||||||
image->sectorSize-1, image->inLast);
|
image->sectorSize-1, image->inLast);
|
||||||
|
|
||||||
/*** If the image already contains error correction information, remove it. */
|
/*** If the image already contains error correction information, remove it. */
|
||||||
@@ -1359,9 +1359,9 @@ void RS03Create(void)
|
|||||||
/*** Announce what we are going to do */
|
/*** Announce what we are going to do */
|
||||||
|
|
||||||
ecc_sectors = lay->nroots*lay->sectorsPerLayer;
|
ecc_sectors = lay->nroots*lay->sectorsPerLayer;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode) /* Preliminary fill text for the head line */
|
if(Closure->guiMode) /* Preliminary fill text for the head line */
|
||||||
{ ec->msg = g_strdup_printf(_("Encoding with Method RS03: %lld MiB data, %lld MiB ecc (%d roots; %4.1f%% redundancy)."),
|
{ ec->msg = g_strdup_printf(_("Encoding with Method RS03: %" PRId64 " MiB data, %" PRId64 " MiB ecc (%d roots; %4.1f%% redundancy)."),
|
||||||
lay->dataSectors/512, ecc_sectors/512, lay->nroots, lay->redundancy);
|
lay->dataSectors/512, ecc_sectors/512, lay->nroots, lay->redundancy);
|
||||||
|
|
||||||
if(lay->target == ECC_IMAGE)
|
if(lay->target == ECC_IMAGE)
|
||||||
@@ -1381,12 +1381,12 @@ void RS03Create(void)
|
|||||||
|
|
||||||
if(Closure->eccTarget == ECC_IMAGE)
|
if(Closure->eccTarget == ECC_IMAGE)
|
||||||
ec->msg = g_strdup_printf(_("Augmenting image with Method RS03 [%d threads, %s, %s I/O]:\n"
|
ec->msg = g_strdup_printf(_("Augmenting image with Method RS03 [%d threads, %s, %s I/O]:\n"
|
||||||
"%lld MiB data, %lld MiB ecc (%d roots; %4.1f%% redundancy)."),
|
"%" PRId64 " MiB data, %" PRId64 " MiB ecc (%d roots; %4.1f%% redundancy)."),
|
||||||
Closure->codecThreads, alg, iostrat,
|
Closure->codecThreads, alg, iostrat,
|
||||||
lay->dataSectors/512, ecc_sectors/512, lay->nroots, lay->redundancy);
|
lay->dataSectors/512, ecc_sectors/512, lay->nroots, lay->redundancy);
|
||||||
else
|
else
|
||||||
ec->msg = g_strdup_printf(_("Creating the error correction file with Method RS03 [%d threads, %s, %s I/O]:\n"
|
ec->msg = g_strdup_printf(_("Creating the error correction file with Method RS03 [%d threads, %s, %s I/O]:\n"
|
||||||
"%lld MiB data, %lld MiB ecc (%d roots; %4.1f%% redundancy)."),
|
"%" PRId64 " MiB data, %" PRId64 " MiB ecc (%d roots; %4.1f%% redundancy)."),
|
||||||
Closure->codecThreads, alg, iostrat,
|
Closure->codecThreads, alg, iostrat,
|
||||||
lay->dataSectors/512, ecc_sectors/512, lay->nroots, lay->redundancy);
|
lay->dataSectors/512, ecc_sectors/512, lay->nroots, lay->redundancy);
|
||||||
|
|
||||||
@@ -1397,7 +1397,7 @@ void RS03Create(void)
|
|||||||
|
|
||||||
if(Closure->eccTarget == ECC_IMAGE && lay->nroots < 8)
|
if(Closure->eccTarget == ECC_IMAGE && lay->nroots < 8)
|
||||||
Stop(_("Not enough space on medium left for error correction data.\n"
|
Stop(_("Not enough space on medium left for error correction data.\n"
|
||||||
"Data portion of image: %lld sect.; maximum possible size: %lld sect.\n"
|
"Data portion of image: %" PRId64 " sect.; maximum possible size: %" PRId64 " sect.\n"
|
||||||
"If reducing the image size or using a larger medium is not\n"
|
"If reducing the image size or using a larger medium is not\n"
|
||||||
"an option, please create a separate error correction file."),
|
"an option, please create a separate error correction file."),
|
||||||
lay->dataSectors, lay->mediumCapacity);
|
lay->dataSectors, lay->mediumCapacity);
|
||||||
@@ -1406,8 +1406,8 @@ void RS03Create(void)
|
|||||||
{ int answer;
|
{ int answer;
|
||||||
|
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Using redundancies below 20%% may not give\n"
|
"%s", _("Using redundancies below 20% may not give\n"
|
||||||
"the expected data loss protection.\n"), NULL);
|
"the expected data loss protection.\n"));
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
abort_encoding(ec, FALSE);
|
abort_encoding(ec, FALSE);
|
||||||
@@ -1422,8 +1422,8 @@ void RS03Create(void)
|
|||||||
{ int answer;
|
{ int answer;
|
||||||
|
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("BD-R size with no defect management enabled,\n"
|
"%s", _("BD-R size with no defect management enabled,\n"
|
||||||
"remember it should you need to repair this image later!\n"), NULL);
|
"remember it should you need to repair this image later!\n"));
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
abort_encoding(ec, FALSE);
|
abort_encoding(ec, FALSE);
|
||||||
@@ -1446,7 +1446,7 @@ void RS03Create(void)
|
|||||||
PrintProgress(_("Ecc generation: 100.0%%\n"));
|
PrintProgress(_("Ecc generation: 100.0%%\n"));
|
||||||
if(Closure->eccTarget == ECC_IMAGE)
|
if(Closure->eccTarget == ECC_IMAGE)
|
||||||
PrintLog(_("Image has been augmented with error correction data.\n"
|
PrintLog(_("Image has been augmented with error correction data.\n"
|
||||||
"New image size is %lld MiB (%lld sectors).\n"),
|
"New image size is %" PRId64 " MiB (%" PRId64 " sectors).\n"),
|
||||||
(lay->totalSectors)/512,
|
(lay->totalSectors)/512,
|
||||||
lay->totalSectors);
|
lay->totalSectors);
|
||||||
else
|
else
|
||||||
@@ -1458,7 +1458,7 @@ void RS03Create(void)
|
|||||||
mbs = ((double)lay->ndata*lay->sectorsPerLayer)/(512.0*elapsed);
|
mbs = ((double)lay->ndata*lay->sectorsPerLayer)/(512.0*elapsed);
|
||||||
PrintLog(_("Avg performance: %5.2fs (%5.2fMiB/s) total\n"),
|
PrintLog(_("Avg performance: %5.2fs (%5.2fMiB/s) total\n"),
|
||||||
elapsed, mbs);
|
elapsed, mbs);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->encPerformance), _("%5.2fMiB/s average"), mbs);
|
{ SetLabelText(GTK_LABEL(wl->encPerformance), _("%5.2fMiB/s average"), mbs);
|
||||||
SetLabelText(GTK_LABEL(ec->wl->encBottleneck),
|
SetLabelText(GTK_LABEL(ec->wl->encBottleneck),
|
||||||
@@ -1467,14 +1467,14 @@ void RS03Create(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetProgress(wl->encPBar2, 100, 100);
|
{ SetProgress(wl->encPBar2, 100, 100);
|
||||||
|
|
||||||
if(Closure->eccTarget == ECC_IMAGE)
|
if(Closure->eccTarget == ECC_IMAGE)
|
||||||
SetLabelText(GTK_LABEL(wl->encFootline),
|
SetLabelText(GTK_LABEL(wl->encFootline),
|
||||||
_("Image has been augmented with error correction data.\n"
|
_("Image has been augmented with error correction data.\n"
|
||||||
"New image size is %lld MiB (%lld sectors).\n"),
|
"New image size is %" PRId64 " MiB (%" PRId64 " sectors).\n"),
|
||||||
(lay->totalSectors)/512,
|
(lay->totalSectors)/512,
|
||||||
lay->totalSectors);
|
lay->totalSectors);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS03Widgets *wl;
|
RS03Widgets *wl;
|
||||||
#endif
|
#endif
|
||||||
RS03Layout *lay;
|
RS03Layout *lay;
|
||||||
@@ -49,7 +49,7 @@ static void fix_cleanup(gpointer data)
|
|||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(fc->earlyTermination)
|
{ if(fc->earlyTermination)
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
@@ -76,7 +76,7 @@ static void fix_cleanup(gpointer data)
|
|||||||
|
|
||||||
g_free(fc);
|
g_free(fc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -114,7 +114,7 @@ static void expand_image(Image *image, EccHeader *eh, gint64 new_size)
|
|||||||
percent = (100*sectors) / new_sectors;
|
percent = (100*sectors) / new_sectors;
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
;
|
;
|
||||||
else
|
else
|
||||||
@@ -124,7 +124,7 @@ static void expand_image(Image *image, EccHeader *eh, gint64 new_size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
;
|
;
|
||||||
else
|
else
|
||||||
@@ -141,7 +141,7 @@ static void expand_image(Image *image, EccHeader *eh, gint64 new_size)
|
|||||||
|
|
||||||
void RS03Fix(Image *image)
|
void RS03Fix(Image *image)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
Method *self = FindMethod("RS03");
|
Method *self = FindMethod("RS03");
|
||||||
RS03Widgets *wl = (RS03Widgets*)self->widgetList;
|
RS03Widgets *wl = (RS03Widgets*)self->widgetList;
|
||||||
#endif
|
#endif
|
||||||
@@ -175,14 +175,14 @@ void RS03Fix(Image *image)
|
|||||||
gint64 damaged_eccsecs=0;
|
gint64 damaged_eccsecs=0;
|
||||||
gint64 expected_sectors;
|
gint64 expected_sectors;
|
||||||
char *t=NULL;
|
char *t=NULL;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
char *msg;
|
char *msg;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*** Register the cleanup procedure for GUI mode */
|
/*** Register the cleanup procedure for GUI mode */
|
||||||
|
|
||||||
fc->image = image;
|
fc->image = image;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
fc->wl = wl;
|
fc->wl = wl;
|
||||||
#endif
|
#endif
|
||||||
fc->earlyTermination = TRUE;
|
fc->earlyTermination = TRUE;
|
||||||
@@ -194,7 +194,7 @@ void RS03Fix(Image *image)
|
|||||||
|
|
||||||
/*** Open the image file */
|
/*** Open the image file */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->fixHeadline),
|
SetLabelText(GTK_LABEL(wl->fixHeadline),
|
||||||
_("<big>Repairing the image.</big>\n<i>%s</i>"),
|
_("<big>Repairing the image.</big>\n<i>%s</i>"),
|
||||||
@@ -237,7 +237,7 @@ void RS03Fix(Image *image)
|
|||||||
|
|
||||||
/*** Announce what we are going to do */
|
/*** Announce what we are going to do */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(eh->methodFlags[0] & MFLAG_ECC_FILE)
|
{ if(eh->methodFlags[0] & MFLAG_ECC_FILE)
|
||||||
msg = g_strdup_printf(_("Error correction file using Method RS03, %d roots, %4.1f%% redundancy."),
|
msg = g_strdup_printf(_("Error correction file using Method RS03, %d roots, %4.1f%% redundancy."),
|
||||||
@@ -264,7 +264,7 @@ void RS03Fix(Image *image)
|
|||||||
{ int difference = image->inLast - eh->inLast;
|
{ int difference = image->inLast - eh->inLast;
|
||||||
guint64 expected_image_size = 2048*(expected_sectors-1)+eh->inLast;
|
guint64 expected_image_size = 2048*(expected_sectors-1)+eh->inLast;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("The image file is %d bytes longer than noted\n"
|
_("The image file is %d bytes longer than noted\n"
|
||||||
@@ -283,7 +283,7 @@ void RS03Fix(Image *image)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode && !Closure->truncate)
|
if(!Closure->guiMode && !Closure->truncate)
|
||||||
#else
|
#else
|
||||||
if(!Closure->truncate)
|
if(!Closure->truncate)
|
||||||
@@ -314,14 +314,14 @@ void RS03Fix(Image *image)
|
|||||||
if(diff>0 && diff<=2)
|
if(diff>0 && diff<=2)
|
||||||
{ int answer;
|
{ int answer;
|
||||||
answer = ModalWarningOrCLI(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
answer = ModalWarningOrCLI(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
_("Image file is %lld sectors longer than expected.\n"
|
_("Image file is %" PRId64 " sectors longer than expected.\n"
|
||||||
"Assuming this is a TAO mode medium.\n"
|
"Assuming this is a TAO mode medium.\n"
|
||||||
"%lld sectors will be removed from the image end.\n"),
|
"%" PRId64 " sectors will be removed from the image end.\n"),
|
||||||
diff, diff);
|
diff, diff);
|
||||||
|
|
||||||
if(!answer)
|
if(!answer)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
fc->wl->fixFootline,
|
fc->wl->fixFootline,
|
||||||
_("<span %s>Aborted by user request!</span>"),
|
_("<span %s>Aborted by user request!</span>"),
|
||||||
@@ -337,7 +337,7 @@ void RS03Fix(Image *image)
|
|||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(diff>2 && Closure->guiMode)
|
if(diff>2 && Closure->guiMode)
|
||||||
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
{ int answer = ModalDialog(GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, NULL,
|
||||||
trans,
|
trans,
|
||||||
@@ -358,11 +358,11 @@ void RS03Fix(Image *image)
|
|||||||
if(!LargeTruncate(image->file, (gint64)expected_image_size))
|
if(!LargeTruncate(image->file, (gint64)expected_image_size))
|
||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
PrintLog(_("Image has been truncated by %lld sectors.\n"), diff);
|
PrintLog(_("Image has been truncated by %" PRId64 " sectors.\n"), diff);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(diff>2 && !Closure->guiMode)
|
if(diff>2 && !Closure->guiMode)
|
||||||
#else
|
#else
|
||||||
if(diff>2)
|
if(diff>2)
|
||||||
@@ -378,7 +378,7 @@ void RS03Fix(Image *image)
|
|||||||
if(!LargeTruncate(image->file, (gint64)expected_image_size))
|
if(!LargeTruncate(image->file, (gint64)expected_image_size))
|
||||||
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
Stop(_("Could not truncate %s: %s\n"),Closure->imageName,strerror(errno));
|
||||||
|
|
||||||
PrintLog(_("Image has been truncated by %lld sectors.\n"), diff);
|
PrintLog(_("Image has been truncated by %" PRId64 " sectors.\n"), diff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -421,7 +421,7 @@ void RS03Fix(Image *image)
|
|||||||
|
|
||||||
/* See if user hit the Stop button */
|
/* See if user hit the Stop button */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
SwitchAndSetFootline(fc->wl->fixNotebook, 1,
|
||||||
@@ -519,7 +519,7 @@ void RS03Fix(Image *image)
|
|||||||
if(crc_valid && !erasure_map[i] && crc != crc_buf[crc_idx])
|
if(crc_valid && !erasure_map[i] && crc != crc_buf[crc_idx])
|
||||||
{ erasure_map[i] = 3;
|
{ erasure_map[i] = 3;
|
||||||
erasure_list[erasure_count++] = i;
|
erasure_list[erasure_count++] = i;
|
||||||
PrintCLI(_("CRC error in sector %lld\n"),block_idx[i]);
|
PrintCLI(_("CRC error in sector %" PRId64 "\n"),block_idx[i]);
|
||||||
damaged_sectors++;
|
damaged_sectors++;
|
||||||
crc_errors++;
|
crc_errors++;
|
||||||
}
|
}
|
||||||
@@ -551,12 +551,12 @@ void RS03Fix(Image *image)
|
|||||||
|
|
||||||
if(erasure_count>lay->nroots) /* uncorrectable */
|
if(erasure_count>lay->nroots) /* uncorrectable */
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(!Closure->guiMode)
|
if(!Closure->guiMode)
|
||||||
#endif
|
#endif
|
||||||
{ int sep_printed = 0;
|
{ int sep_printed = 0;
|
||||||
|
|
||||||
PrintCLI(_("* Ecc block %lld: %3d unrepairable sectors: "), s, erasure_count);
|
PrintCLI(_("* Ecc block %" PRId64 ": %3d unrepairable sectors: "), s, erasure_count);
|
||||||
|
|
||||||
for(i=0; i<erasure_count; i++)
|
for(i=0; i<erasure_count; i++)
|
||||||
{ /* sector counting wraps to 0 for ecc files after the data layer */
|
{ /* sector counting wraps to 0 for ecc files after the data layer */
|
||||||
@@ -564,7 +564,7 @@ void RS03Fix(Image *image)
|
|||||||
{ PrintCLI("; ecc file: ");
|
{ PrintCLI("; ecc file: ");
|
||||||
sep_printed = 1;
|
sep_printed = 1;
|
||||||
}
|
}
|
||||||
PrintCLI("%lld ", RS03SectorIndex(lay, erasure_list[i], s));
|
PrintCLI("%" PRId64 " ", RS03SectorIndex(lay, erasure_list[i], s));
|
||||||
}
|
}
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
}
|
}
|
||||||
@@ -725,7 +725,7 @@ void RS03Fix(Image *image)
|
|||||||
{ PrintCLI(_("; ecc file: "));
|
{ PrintCLI(_("; ecc file: "));
|
||||||
sep_printed = 1;
|
sep_printed = 1;
|
||||||
}
|
}
|
||||||
PrintCLI("%lld ", RS03SectorIndex(lay, erasure_list[i], s));
|
PrintCLI("%" PRId64 " ", RS03SectorIndex(lay, erasure_list[i], s));
|
||||||
}
|
}
|
||||||
PrintCLI("\n");
|
PrintCLI("\n");
|
||||||
uncorrected += erasure_count;
|
uncorrected += erasure_count;
|
||||||
@@ -849,7 +849,7 @@ void RS03Fix(Image *image)
|
|||||||
{ PrintCLI(_("; ecc file: "));
|
{ PrintCLI(_("; ecc file: "));
|
||||||
sep_printed = 1;
|
sep_printed = 1;
|
||||||
}
|
}
|
||||||
PrintCLI("%lld%c ", sec, type);
|
PrintCLI("%" PRId64 "%c ", sec, type);
|
||||||
|
|
||||||
/* Write the recovered sector */
|
/* Write the recovered sector */
|
||||||
|
|
||||||
@@ -862,12 +862,12 @@ void RS03Fix(Image *image)
|
|||||||
|| i < ndata-1)
|
|| i < ndata-1)
|
||||||
{
|
{
|
||||||
if(!LargeSeek(image->file, (gint64)(2048*sec)))
|
if(!LargeSeek(image->file, (gint64)(2048*sec)))
|
||||||
Stop(_("Failed seeking to sector %lld in image [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in image [%s]: %s"),
|
||||||
sec, "FW", strerror(errno));
|
sec, "FW", strerror(errno));
|
||||||
|
|
||||||
n = LargeWrite(image->file, cache_offset+fc->imgBlock[i], length);
|
n = LargeWrite(image->file, cache_offset+fc->imgBlock[i], length);
|
||||||
if(n != length)
|
if(n != length)
|
||||||
Stop(_("could not write medium sector %lld:\n%s"), sec, strerror(errno));
|
Stop(_("could not write medium sector %" PRId64 ":\n%s"), sec, strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Write back into the error correction file
|
/* Write back into the error correction file
|
||||||
@@ -878,12 +878,12 @@ void RS03Fix(Image *image)
|
|||||||
if(lay->target == ECC_FILE && i >= ndata-1)
|
if(lay->target == ECC_FILE && i >= ndata-1)
|
||||||
{
|
{
|
||||||
if(!LargeSeek(image->eccFile, (gint64)(2048*sec)))
|
if(!LargeSeek(image->eccFile, (gint64)(2048*sec)))
|
||||||
Stop(_("Failed seeking to sector %lld in ecc file [%s]: %s"),
|
Stop(_("Failed seeking to sector %" PRId64 " in ecc file [%s]: %s"),
|
||||||
sec, "FW", strerror(errno));
|
sec, "FW", strerror(errno));
|
||||||
|
|
||||||
n = LargeWrite(image->eccFile, cache_offset+fc->imgBlock[i], 2048);
|
n = LargeWrite(image->eccFile, cache_offset+fc->imgBlock[i], 2048);
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("could not write ecc file sector %lld:\n%s"),
|
Stop(_("could not write ecc file sector %" PRId64 ":\n%s"),
|
||||||
sec, strerror(errno));
|
sec, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -913,7 +913,7 @@ skip:
|
|||||||
|
|
||||||
if(last_percent != percent)
|
if(last_percent != percent)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{
|
{
|
||||||
RS03AddFixValues(wl, percent, local_plot_max);
|
RS03AddFixValues(wl, percent, local_plot_max);
|
||||||
@@ -938,15 +938,15 @@ skip:
|
|||||||
|
|
||||||
PrintProgress(_("Ecc progress: 100.0%%\n"));
|
PrintProgress(_("Ecc progress: 100.0%%\n"));
|
||||||
|
|
||||||
if(corrected > 0) PrintLog(_("Repaired sectors: %lld (%lld data, %lld ecc)\n"),
|
if(corrected > 0) PrintLog(_("Repaired sectors: %" PRId64 " (%" PRId64 " data, %" PRId64 " ecc)\n"),
|
||||||
corrected, data_corr, ecc_corr);
|
corrected, data_corr, ecc_corr);
|
||||||
if(uncorrected > 0)
|
if(uncorrected > 0)
|
||||||
{ PrintLog(_("Unrepaired sectors: %lld\n"), uncorrected);
|
{ PrintLog(_("Unrepaired sectors: %" PRId64 "\n"), uncorrected);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
||||||
_("Image sectors could not be fully restored "
|
_("Image sectors could not be fully restored "
|
||||||
"(%lld repaired; <span %s>%lld unrepaired</span>)"),
|
"(%" PRId64 " repaired; <span %s>%" PRId64 " unrepaired</span>)"),
|
||||||
corrected, Closure->redMarkup, uncorrected);
|
corrected, Closure->redMarkup, uncorrected);
|
||||||
#endif
|
#endif
|
||||||
exitCode = 2;
|
exitCode = 2;
|
||||||
@@ -967,16 +967,16 @@ skip:
|
|||||||
PrintLog(_("Erasure counts per ecc block: avg = %.1f; worst = %d.\n"),
|
PrintLog(_("Erasure counts per ecc block: avg = %.1f; worst = %d.\n"),
|
||||||
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode && t)
|
if(Closure->guiMode && t)
|
||||||
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
SwitchAndSetFootline(wl->fixNotebook, 1, wl->fixFootline,
|
||||||
"%s %s", _("Repair results:"), t);
|
"%s %s", _("Repair results:"), t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Verbose("\nSummary of processed sectors:\n");
|
Verbose("\nSummary of processed sectors:\n");
|
||||||
Verbose("%lld damaged sectors\n", damaged_sectors);
|
Verbose("%" PRId64 " damaged sectors\n", damaged_sectors);
|
||||||
Verbose("%lld CRC errors\n", crc_errors);
|
Verbose("%" PRId64 " CRC errors\n", crc_errors);
|
||||||
Verbose("%lld of %lld ecc blocks damaged (%lld / %lld sectors)\n",
|
Verbose("%" PRId64 " of %" PRId64 " ecc blocks damaged (%" PRId64 " / %" PRId64 " sectors)\n",
|
||||||
damaged_eccblocks, 2048*lay->sectorsPerLayer,
|
damaged_eccblocks, 2048*lay->sectorsPerLayer,
|
||||||
damaged_eccsecs, lay->sectorsPerLayer);
|
damaged_eccsecs, lay->sectorsPerLayer);
|
||||||
if(data_count != (ndata-1)*lay->sectorsPerLayer)
|
if(data_count != (ndata-1)*lay->sectorsPerLayer)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
#ifndef RS03INCLUDES_H
|
#ifndef RS03INCLUDES_H
|
||||||
#define RS03INCLUDES_H
|
#define RS03INCLUDES_H
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/* Data structs from rs03-window.c */
|
/* Data structs from rs03-window.c */
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
@@ -133,7 +133,7 @@ typedef struct
|
|||||||
* These are exported via the Method struct
|
* These are exported via the Method struct
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void CreateRS03EncWindow(Method*, GtkWidget*);
|
void CreateRS03EncWindow(Method*, GtkWidget*);
|
||||||
void CreateRS03FixWindow(Method*, GtkWidget*);
|
void CreateRS03FixWindow(Method*, GtkWidget*);
|
||||||
void CreateRS03PrefsPage(Method*, GtkWidget*);
|
void CreateRS03PrefsPage(Method*, GtkWidget*);
|
||||||
@@ -200,7 +200,7 @@ void RS03Fix(Image*);
|
|||||||
int RS03RecognizeFile(LargeFile*, EccHeader**);
|
int RS03RecognizeFile(LargeFile*, EccHeader**);
|
||||||
int RS03RecognizeImage(Image*);
|
int RS03RecognizeImage(Image*);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
/* rs03-window.c */
|
/* rs03-window.c */
|
||||||
|
|
||||||
void RS03AddFixValues(RS03Widgets*, int, int);
|
void RS03AddFixValues(RS03Widgets*, int, int);
|
||||||
@@ -217,7 +217,7 @@ void RS03Verify(Image*);
|
|||||||
/* temporary single threaded versions */
|
/* temporary single threaded versions */
|
||||||
|
|
||||||
void RS03SCreate(void);
|
void RS03SCreate(void);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
void CreateRS03SEncWindow(Method*, GtkWidget*);
|
void CreateRS03SEncWindow(Method*, GtkWidget*);
|
||||||
void ResetRS03SEncWindow(Method*);
|
void ResetRS03SEncWindow(Method*);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -413,7 +413,7 @@ int RS03RecognizeImage(Image *image)
|
|||||||
|
|
||||||
if(Closure->debugMode && Closure->mediumSize > 170)
|
if(Closure->debugMode && Closure->mediumSize > 170)
|
||||||
{ layer_size = Closure->mediumSize/GF_FIELDMAX;
|
{ layer_size = Closure->mediumSize/GF_FIELDMAX;
|
||||||
Verbose("Warning: image size set to %lld for debugging!\n", Closure->mediumSize);
|
Verbose("Warning: image size set to %" PRId64 " for debugging!\n", Closure->mediumSize);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ if(image_sectors < CDR_SIZE) layer_size = CDR_SIZE/GF_FIELDMAX;
|
{ if(image_sectors < CDR_SIZE) layer_size = CDR_SIZE/GF_FIELDMAX;
|
||||||
@@ -428,7 +428,7 @@ int RS03RecognizeImage(Image *image)
|
|||||||
else layer_size = (Closure->noBdrDefectManagement ? BDXL_QL_SIZE_NODM : BDXL_QL_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);
|
Verbose(".. trying layer size %" PRId64 "\n", layer_size);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Try a quick scan for the CRC sectors in order
|
* Try a quick scan for the CRC sectors in order
|
||||||
@@ -499,7 +499,7 @@ int RS03RecognizeImage(Image *image)
|
|||||||
|
|
||||||
if(crc_state == 1) /* corrupted crc header, try this layer again later */
|
if(crc_state == 1) /* corrupted crc header, try this layer again later */
|
||||||
continue;
|
continue;
|
||||||
Verbose("** Success: sector %lld, rediscovered format with %d roots\n",
|
Verbose("** Success: sector %" PRId64 ", rediscovered format with %d roots\n",
|
||||||
sector, nroots);
|
sector, nroots);
|
||||||
image->eccHeader = g_malloc(sizeof(EccHeader));
|
image->eccHeader = g_malloc(sizeof(EccHeader));
|
||||||
ReconstructRS03Header(image->eccHeader, cb);
|
ReconstructRS03Header(image->eccHeader, cb);
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
/***
|
/***
|
||||||
*** Reset the verify output window
|
*** Reset the verify output window
|
||||||
***/
|
***/
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
|
|
||||||
void ResetRS03VerifyWindow(Method *self)
|
void ResetRS03VerifyWindow(Method *self)
|
||||||
{ RS03Widgets *wl = (RS03Widgets*)self->widgetList;
|
{ RS03Widgets *wl = (RS03Widgets*)self->widgetList;
|
||||||
@@ -376,7 +376,7 @@ typedef struct
|
|||||||
{ Image *image;
|
{ Image *image;
|
||||||
EccHeader *eh;
|
EccHeader *eh;
|
||||||
RS03Layout *lay;
|
RS03Layout *lay;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS03Widgets *wl;
|
RS03Widgets *wl;
|
||||||
#endif
|
#endif
|
||||||
CrcBuf *crcBuf;
|
CrcBuf *crcBuf;
|
||||||
@@ -393,7 +393,7 @@ static void cleanup(gpointer data)
|
|||||||
|
|
||||||
UnregisterCleanup();
|
UnregisterCleanup();
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
AllowActions(TRUE);
|
AllowActions(TRUE);
|
||||||
#endif
|
#endif
|
||||||
@@ -414,7 +414,7 @@ static void cleanup(gpointer data)
|
|||||||
|
|
||||||
g_free(vc);
|
g_free(vc);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
g_thread_exit(0);
|
g_thread_exit(0);
|
||||||
#endif
|
#endif
|
||||||
@@ -457,10 +457,10 @@ static int prognosis(verify_closure *vc, gint64 missing, gint64 expected)
|
|||||||
PrintLog(_("- erasure counts : avg = %.1f; worst = %d per ecc block.\n"),
|
PrintLog(_("- erasure counts : avg = %.1f; worst = %d per ecc block.\n"),
|
||||||
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
||||||
|
|
||||||
PrintLog(_("- prognosis : %lld of %lld sectors recoverable (%d.%d%%)\n"),
|
PrintLog(_("- prognosis : %" PRId64 " of %" PRId64 " sectors recoverable (%d.%d%%)\n"),
|
||||||
recoverable, expected, percentage/10, percentage%10);
|
recoverable, expected, percentage/10, percentage%10);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(vc->wl->cmpImageErasure), _("Erasure counts:"));
|
{ SetLabelText(GTK_LABEL(vc->wl->cmpImageErasure), _("Erasure counts:"));
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpImagePrognosis), _("Prognosis:"));
|
SetLabelText(GTK_LABEL(vc->wl->cmpImagePrognosis), _("Prognosis:"));
|
||||||
@@ -471,7 +471,7 @@ static int prognosis(verify_closure *vc, gint64 missing, gint64 expected)
|
|||||||
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
(double)damaged_sectors/(double)damaged_eccsecs,worst_ecc);
|
||||||
|
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpImagePrognosisMsg),
|
SetLabelText(GTK_LABEL(vc->wl->cmpImagePrognosisMsg),
|
||||||
_("<span %s>%lld of %lld sectors recoverable (%d.%d%%)</span>"),
|
_("<span %s>%" PRId64 " of %" PRId64 " sectors recoverable (%d.%d%%)</span>"),
|
||||||
recoverable < expected ? Closure->redMarkup : Closure->greenMarkup,
|
recoverable < expected ? Closure->redMarkup : Closure->greenMarkup,
|
||||||
recoverable, expected, percentage/10, percentage%10);
|
recoverable, expected, percentage/10, percentage%10);
|
||||||
}
|
}
|
||||||
@@ -497,7 +497,7 @@ static int check_syndromes(verify_closure *vc)
|
|||||||
int bad_counted;
|
int bad_counted;
|
||||||
int layer,i,j;
|
int layer,i,j;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
SetLabelText(GTK_LABEL(vc->wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
||||||
_("Checking the image and error correction files."),
|
_("Checking the image and error correction files."),
|
||||||
@@ -515,7 +515,7 @@ static int check_syndromes(verify_closure *vc)
|
|||||||
for(j=0; j<i; j++)
|
for(j=0; j<i; j++)
|
||||||
g_free(vc->eccBlock[j]);
|
g_free(vc->eccBlock[j]);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
||||||
_("<span %s>Out of memory; try reducing sector prefetch!</span>"),
|
_("<span %s>Out of memory; try reducing sector prefetch!</span>"),
|
||||||
@@ -541,7 +541,7 @@ static int check_syndromes(verify_closure *vc)
|
|||||||
|
|
||||||
/* Check for user interruption */
|
/* Check for user interruption */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
||||||
@@ -603,7 +603,7 @@ static int check_syndromes(verify_closure *vc)
|
|||||||
|
|
||||||
if(!ecc_bad)
|
if(!ecc_bad)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
||||||
_("%d%% tested"),
|
_("%d%% tested"),
|
||||||
@@ -614,13 +614,13 @@ static int check_syndromes(verify_closure *vc)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
||||||
_("<span %s>%lld good, %lld bad; %d%% tested</span>"),
|
_("<span %s>%" PRId64 " good, %" PRId64 " bad; %d%% tested</span>"),
|
||||||
Closure->redMarkup, ecc_good, ecc_bad, percent);
|
Closure->redMarkup, ecc_good, ecc_bad, percent);
|
||||||
#endif
|
#endif
|
||||||
PrintProgress(_("* Ecc block test : %lld good, %lld bad; %d%% tested")
|
PrintProgress(_("* Ecc block test : %" PRId64 " good, %" PRId64 " bad; %d%% tested")
|
||||||
, ecc_good, ecc_bad, percent);
|
, ecc_good, ecc_bad, percent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -630,7 +630,7 @@ static int check_syndromes(verify_closure *vc)
|
|||||||
|
|
||||||
if(!ecc_bad)
|
if(!ecc_bad)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),_("pass"));
|
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),_("pass"));
|
||||||
#endif
|
#endif
|
||||||
@@ -639,13 +639,13 @@ static int check_syndromes(verify_closure *vc)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
SetLabelText(GTK_LABEL(vc->wl->cmpEccSyndromes),
|
||||||
_("<span %s>%lld good, %lld bad; %lld bad sub blocks</span>"),
|
_("<span %s>%" PRId64 " good, %" PRId64 " bad; %" PRId64 " bad sub blocks</span>"),
|
||||||
Closure->redMarkup, ecc_good, ecc_bad, ecc_bad_sub);
|
Closure->redMarkup, ecc_good, ecc_bad, ecc_bad_sub);
|
||||||
#endif
|
#endif
|
||||||
PrintLog(_("* Ecc block test : %lld good, %lld bad; %lld bad sub blocks\n"),
|
PrintLog(_("* Ecc block test : %" PRId64 " good, %" PRId64 " bad; %" PRId64 " bad sub blocks\n"),
|
||||||
ecc_good, ecc_bad, ecc_bad_sub);
|
ecc_good, ecc_bad, ecc_bad_sub);
|
||||||
|
|
||||||
exitCode = EXIT_CODE_SYNDROME_ERROR;
|
exitCode = EXIT_CODE_SYNDROME_ERROR;
|
||||||
@@ -660,7 +660,7 @@ static int check_syndromes(verify_closure *vc)
|
|||||||
void RS03Verify(Image *image)
|
void RS03Verify(Image *image)
|
||||||
{ Method *self = FindMethod("RS03");
|
{ Method *self = FindMethod("RS03");
|
||||||
verify_closure *vc = g_malloc0(sizeof(verify_closure));
|
verify_closure *vc = g_malloc0(sizeof(verify_closure));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
RS03Widgets *wl = self->widgetList;
|
RS03Widgets *wl = self->widgetList;
|
||||||
#endif
|
#endif
|
||||||
EccHeader *eh = NULL;
|
EccHeader *eh = NULL;
|
||||||
@@ -683,12 +683,12 @@ void RS03Verify(Image *image)
|
|||||||
char *unstable="";
|
char *unstable="";
|
||||||
|
|
||||||
char method[5];
|
char method[5];
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
char *img_advice = NULL;
|
char *img_advice = NULL;
|
||||||
char *ecc_advice = NULL;
|
char *ecc_advice = NULL;
|
||||||
#endif
|
#endif
|
||||||
char *version;
|
char *version;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
int syn_error = 0;
|
int syn_error = 0;
|
||||||
int try_it;
|
int try_it;
|
||||||
#endif
|
#endif
|
||||||
@@ -699,7 +699,7 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
RegisterCleanup(_("Check aborted"), cleanup, vc);
|
RegisterCleanup(_("Check aborted"), cleanup, vc);
|
||||||
vc->image = image;
|
vc->image = image;
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
vc->wl = wl;
|
vc->wl = wl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -722,7 +722,7 @@ void RS03Verify(Image *image)
|
|||||||
else /* may only happen when ecc file is present */
|
else /* may only happen when ecc file is present */
|
||||||
{ PrintLog("\n%s not present.\n", Closure->imageName);
|
{ PrintLog("\n%s not present.\n", Closure->imageName);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SwitchAndSetFootline(wl->cmpImageNotebook, 0, NULL, NULL);
|
SwitchAndSetFootline(wl->cmpImageNotebook, 0, NULL, NULL);
|
||||||
#endif
|
#endif
|
||||||
@@ -730,7 +730,7 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
if(eh->methodFlags[0] & MFLAG_ECC_FILE)
|
if(eh->methodFlags[0] & MFLAG_ECC_FILE)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
||||||
_("Checking the image and error correction files."),
|
_("Checking the image and error correction files."),
|
||||||
@@ -741,7 +741,7 @@ void RS03Verify(Image *image)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
SetLabelText(GTK_LABEL(wl->cmpHeadline), "<big>%s</big>\n<i>%s</i>",
|
||||||
_("Checking the image file."),
|
_("Checking the image file."),
|
||||||
@@ -769,12 +769,12 @@ void RS03Verify(Image *image)
|
|||||||
{ char *msg;
|
{ char *msg;
|
||||||
|
|
||||||
if(expected_eccfile_sectors > eccfile_sectors)
|
if(expected_eccfile_sectors > eccfile_sectors)
|
||||||
msg = g_strdup_printf(_("Ecc file is %lld sectors shorter than expected."),
|
msg = g_strdup_printf(_("Ecc file is %" PRId64 " sectors shorter than expected."),
|
||||||
expected_eccfile_sectors - eccfile_sectors);
|
expected_eccfile_sectors - eccfile_sectors);
|
||||||
else msg = g_strdup_printf(_("Ecc file is %lld sectors longer than expected."),
|
else msg = g_strdup_printf(_("Ecc file is %" PRId64 " sectors longer than expected."),
|
||||||
eccfile_sectors - expected_eccfile_sectors);
|
eccfile_sectors - expected_eccfile_sectors);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
ecc_advice = g_strdup_printf("<span %s>%s</span>", Closure->redMarkup, msg);
|
ecc_advice = g_strdup_printf("<span %s>%s</span>", Closure->redMarkup, msg);
|
||||||
#endif
|
#endif
|
||||||
@@ -791,7 +791,7 @@ void RS03Verify(Image *image)
|
|||||||
PrintLog(_("- type : Error correction file\n"));
|
PrintLog(_("- type : Error correction file\n"));
|
||||||
else PrintLog(_("- type : Augmented image\n"));
|
else PrintLog(_("- type : Augmented image\n"));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(eh->methodFlags[0] & MFLAG_ECC_FILE)
|
{ if(eh->methodFlags[0] & MFLAG_ECC_FILE)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccType), _("Error correction file"));
|
SetLabelText(GTK_LABEL(wl->cmpEccType), _("Error correction file"));
|
||||||
@@ -807,7 +807,7 @@ void RS03Verify(Image *image)
|
|||||||
method, eh->eccBytes,
|
method, eh->eccBytes,
|
||||||
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
((double)eh->eccBytes*100.0)/(double)eh->dataBytes);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccMethod), _("%4s, %d roots, %4.1f%% redundancy"),
|
SetLabelText(GTK_LABEL(wl->cmpEccMethod), _("%4s, %d roots, %4.1f%% redundancy"),
|
||||||
method, eh->eccBytes,
|
method, eh->eccBytes,
|
||||||
@@ -830,7 +830,7 @@ void RS03Verify(Image *image)
|
|||||||
PrintLog(format, _("- created by : dvdisaster"), major, minor, micro, unstable);
|
PrintLog(format, _("- created by : dvdisaster"), major, minor, micro, unstable);
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccCreatedBy), format,
|
{ SetLabelText(GTK_LABEL(wl->cmpEccCreatedBy), format,
|
||||||
"dvdisaster", major, minor, micro, unstable);
|
"dvdisaster", major, minor, micro, unstable);
|
||||||
@@ -842,7 +842,7 @@ void RS03Verify(Image *image)
|
|||||||
PrintLog(format, _("- created by : dvdisaster"), major, minor, unstable);
|
PrintLog(format, _("- created by : dvdisaster"), major, minor, unstable);
|
||||||
PrintLog("\n");
|
PrintLog("\n");
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccCreatedBy), format,
|
SetLabelText(GTK_LABEL(wl->cmpEccCreatedBy), format,
|
||||||
"dvdisaster", major, minor, unstable);
|
"dvdisaster", major, minor, unstable);
|
||||||
@@ -863,7 +863,7 @@ void RS03Verify(Image *image)
|
|||||||
if(Closure->version >= eh->neededVersion)
|
if(Closure->version >= eh->neededVersion)
|
||||||
{ PrintLog(_("- requires : dvdisaster-%s\n"), version);
|
{ PrintLog(_("- requires : dvdisaster-%s\n"), version);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccRequires), "dvdisaster-%s", version);
|
SetLabelText(GTK_LABEL(wl->cmpEccRequires), "dvdisaster-%s", version);
|
||||||
#endif
|
#endif
|
||||||
@@ -874,7 +874,7 @@ void RS03Verify(Image *image)
|
|||||||
"* : Please visit http://www.dvdisaster.org for an upgrade.\n"),
|
"* : Please visit http://www.dvdisaster.org for an upgrade.\n"),
|
||||||
version);
|
version);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccRequires),
|
{ SetLabelText(GTK_LABEL(wl->cmpEccRequires),
|
||||||
"<span %s>dvdisaster-%s</span>",
|
"<span %s>dvdisaster-%s</span>",
|
||||||
@@ -897,7 +897,7 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
PrintLog(_("- data md5sum : %s\n"),hdr_digest);
|
PrintLog(_("- data md5sum : %s\n"),hdr_digest);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccDataCrcVal), "%s", hdr_digest);
|
SetLabelText(GTK_LABEL(wl->cmpEccDataCrcVal), "%s", hdr_digest);
|
||||||
#endif
|
#endif
|
||||||
@@ -909,7 +909,7 @@ void RS03Verify(Image *image)
|
|||||||
{ if(image->fpState != FP_PRESENT)
|
{ if(image->fpState != FP_PRESENT)
|
||||||
{ PrintLog(_("* fingerprint match: NOT POSSIBLE - related sector is missing in image!\n"));
|
{ PrintLog(_("* fingerprint match: NOT POSSIBLE - related sector is missing in image!\n"));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccFingerprint), _("<span %s>missing sector prevents calculation</span>"), Closure->redMarkup);
|
SetLabelText(GTK_LABEL(wl->cmpEccFingerprint), _("<span %s>missing sector prevents calculation</span>"), Closure->redMarkup);
|
||||||
#endif
|
#endif
|
||||||
@@ -919,7 +919,7 @@ void RS03Verify(Image *image)
|
|||||||
if(memcmp(image->imageFP, eh->mediumFP, 16))
|
if(memcmp(image->imageFP, eh->mediumFP, 16))
|
||||||
{ PrintLog(_("* fingerprint match: MISMATCH - .iso and .ecc don't belong together!\n"));
|
{ PrintLog(_("* fingerprint match: MISMATCH - .iso and .ecc don't belong together!\n"));
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccFingerprint),
|
{ SetLabelText(GTK_LABEL(wl->cmpEccFingerprint),
|
||||||
_("<span %s>mismatch</span>"), Closure->redMarkup);
|
_("<span %s>mismatch</span>"), Closure->redMarkup);
|
||||||
@@ -931,7 +931,7 @@ void RS03Verify(Image *image)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ PrintLog(_("- fingerprint match: good\n"));
|
{ PrintLog(_("- fingerprint match: good\n"));
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccFingerprint), _("good"));
|
SetLabelText(GTK_LABEL(wl->cmpEccFingerprint), _("good"));
|
||||||
#endif
|
#endif
|
||||||
@@ -942,10 +942,10 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
/* print advice collected from above tests */
|
/* print advice collected from above tests */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(ecc_advice)
|
{ if(ecc_advice)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccResult), ecc_advice);
|
{ SetLabelText(GTK_LABEL(wl->cmpEccResult), "%s", ecc_advice);
|
||||||
g_free(ecc_advice);
|
g_free(ecc_advice);
|
||||||
}
|
}
|
||||||
else SetLabelText(GTK_LABEL(wl->cmpEccResult),
|
else SetLabelText(GTK_LABEL(wl->cmpEccResult),
|
||||||
@@ -985,31 +985,31 @@ void RS03Verify(Image *image)
|
|||||||
if(expected_image_sectors == image->sectorSize && matching_byte_size)
|
if(expected_image_sectors == image->sectorSize && matching_byte_size)
|
||||||
{ if(lay->target == ECC_FILE)
|
{ if(lay->target == ECC_FILE)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(image->inLast == 2048)
|
{ if(image->inLast == 2048)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("%lld in image; %lld in ecc file"),
|
SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("%" PRId64 " in image; %" PRId64 " in ecc file"),
|
||||||
image->sectorSize, eccfile_sectors);
|
image->sectorSize, eccfile_sectors);
|
||||||
else
|
else
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("%lld sectors + %d bytes in image; %lld in ecc file"),
|
SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("%" PRId64 " sectors + %d bytes in image; %" PRId64 " in ecc file"),
|
||||||
image->sectorSize-1, image->inLast, eccfile_sectors);
|
image->sectorSize-1, image->inLast, eccfile_sectors);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(image->inLast == 2048)
|
if(image->inLast == 2048)
|
||||||
PrintLog(_("- sectors : %lld in image; "), image->sectorSize);
|
PrintLog(_("- sectors : %" PRId64 " in image; "), image->sectorSize);
|
||||||
else PrintLog(_("- sectors : %lld sectors + %d bytes in image; "), image->sectorSize-1, image->inLast);
|
else PrintLog(_("- sectors : %" PRId64 " sectors + %d bytes in image; "), image->sectorSize-1, image->inLast);
|
||||||
|
|
||||||
PrintLog(_("%lld in ecc file\n"), eccfile_sectors);
|
PrintLog(_("%" PRId64 " in ecc file\n"), eccfile_sectors);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("%lld total / %lld data"),
|
SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("%" PRId64 " total / %" PRId64 " data"),
|
||||||
image->sectorSize, lay->dataSectors);
|
image->sectorSize, lay->dataSectors);
|
||||||
#endif
|
#endif
|
||||||
PrintLog(_("- medium sectors : %lld total / %lld data\n"),
|
PrintLog(_("- medium sectors : %" PRId64 " total / %" PRId64 " data\n"),
|
||||||
image->sectorSize, lay->dataSectors);
|
image->sectorSize, lay->dataSectors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1024,7 +1024,7 @@ void RS03Verify(Image *image)
|
|||||||
expected_size = g_strdup_printf("%lld", (long long int)expected_image_sectors);
|
expected_size = g_strdup_printf("%lld", (long long int)expected_image_sectors);
|
||||||
else expected_size = g_strdup_printf("%lld sectors + %d bytes", (long long int)expected_image_sectors-1, eh->inLast);
|
else expected_size = g_strdup_printf("%lld sectors + %d bytes", (long long int)expected_image_sectors-1, eh->inLast);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("<span %s>%s (%s expected)</span>"),
|
{ SetLabelText(GTK_LABEL(wl->cmpImageSectors), _("<span %s>%s (%s expected)</span>"),
|
||||||
Closure->redMarkup, image_size, expected_size);
|
Closure->redMarkup, image_size, expected_size);
|
||||||
@@ -1038,16 +1038,16 @@ void RS03Verify(Image *image)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(expected_image_sectors > image->sectorSize)
|
if(expected_image_sectors > image->sectorSize)
|
||||||
img_advice = g_strdup_printf(_("<span %s>Image file is %lld sectors shorter than expected.</span>"),
|
img_advice = g_strdup_printf(_("<span %s>Image file is %" PRId64 " sectors shorter than expected.</span>"),
|
||||||
Closure->redMarkup, expected_image_sectors - image->sectorSize);
|
Closure->redMarkup, expected_image_sectors - image->sectorSize);
|
||||||
if(expected_image_sectors < image->sectorSize)
|
if(expected_image_sectors < image->sectorSize)
|
||||||
img_advice = g_strdup_printf(_("<span %s>Image file is %lld sectors longer than expected.</span>"),
|
img_advice = g_strdup_printf(_("<span %s>Image file is %" PRId64 " sectors longer than expected.</span>"),
|
||||||
Closure->redMarkup, image->sectorSize - expected_image_sectors);
|
Closure->redMarkup, image->sectorSize - expected_image_sectors);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(lay->target == ECC_FILE)
|
if(lay->target == ECC_FILE)
|
||||||
PrintLog(_("* sectors : %s (%s expected); %lld sectors in ecc file\n"),
|
PrintLog(_("* sectors : %s (%s expected); %" PRId64 " sectors in ecc file\n"),
|
||||||
image_size, expected_size, eccfile_sectors);
|
image_size, expected_size, eccfile_sectors);
|
||||||
else
|
else
|
||||||
PrintLog(_("* medium sectors : %s (%s expected)\n"),
|
PrintLog(_("* medium sectors : %s (%s expected)\n"),
|
||||||
@@ -1089,7 +1089,7 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
/* Check for user interruption */
|
/* Check for user interruption */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
{ if(Closure->stopActions == STOP_CURRENT_ACTION) /* suppress memleak warning when closing window */
|
||||||
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
||||||
@@ -1182,8 +1182,8 @@ void RS03Verify(Image *image)
|
|||||||
ecc_msg = g_strdup(" ");
|
ecc_msg = g_strdup(" ");
|
||||||
}
|
}
|
||||||
if(first_missing == last_missing)
|
if(first_missing == last_missing)
|
||||||
PrintCLI(_("* missing sector : %lld%s\n"), first,ecc_msg);
|
PrintCLI(_("* missing sector : %" PRId64 "%s\n"), first,ecc_msg);
|
||||||
else PrintCLI(_("* missing sectors : %lld - %lld%s\n"), first, last, ecc_msg);
|
else PrintCLI(_("* missing sectors : %" PRId64 " - %" PRId64 "%s\n"), first, last, ecc_msg);
|
||||||
first_missing = -1;
|
first_missing = -1;
|
||||||
g_free(ecc_msg);
|
g_free(ecc_msg);
|
||||||
}
|
}
|
||||||
@@ -1199,7 +1199,7 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
if(GetBit(vc->crcBuf->valid,crc_idx)
|
if(GetBit(vc->crcBuf->valid,crc_idx)
|
||||||
&& crc != vc->crcBuf->crcbuf[crc_idx])
|
&& crc != vc->crcBuf->crcbuf[crc_idx])
|
||||||
{ PrintCLI(_("* CRC error, sector: %lld\n"), s);
|
{ PrintCLI(_("* CRC error, sector: %" PRId64 "\n"), s);
|
||||||
data_crc_errors++;
|
data_crc_errors++;
|
||||||
new_crc_errors++;
|
new_crc_errors++;
|
||||||
defective = TRUE;
|
defective = TRUE;
|
||||||
@@ -1211,7 +1211,7 @@ void RS03Verify(Image *image)
|
|||||||
if(!defective)
|
if(!defective)
|
||||||
SetBit(vc->map, s);
|
SetBit(vc->map, s);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ /* data part / spiral animation */
|
{ /* data part / spiral animation */
|
||||||
percent = (VERIFY_IMAGE_SEGMENTS*(s+1))/virtual_expected;
|
percent = (VERIFY_IMAGE_SEGMENTS*(s+1))/virtual_expected;
|
||||||
@@ -1226,7 +1226,7 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
if(last_percent != percent) /* Update sector results */
|
if(last_percent != percent) /* Update sector results */
|
||||||
{ PrintProgress(_("- testing sectors : %3d%%") ,percent);
|
{ PrintProgress(_("- testing sectors : %3d%%") ,percent);
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(lay->target == ECC_IMAGE)
|
{ if(lay->target == ECC_IMAGE)
|
||||||
{ add_verify_values(self, percent, new_missing, new_crc_errors);
|
{ add_verify_values(self, percent, new_missing, new_crc_errors);
|
||||||
@@ -1244,15 +1244,15 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
if(data_missing || data_crc_errors)
|
if(data_missing || data_crc_errors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpDataSection),
|
SetLabelText(GTK_LABEL(wl->cmpDataSection),
|
||||||
_("<span %s>%lld sectors missing; %lld CRC errors</span>"),
|
_("<span %s>%" PRId64 " sectors missing; %" PRId64 " CRC errors</span>"),
|
||||||
Closure->redMarkup, data_missing, data_crc_errors);
|
Closure->redMarkup, data_missing, data_crc_errors);
|
||||||
if(crc_missing || csc->signatureErrors)
|
if(crc_missing || csc->signatureErrors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpCrcSection),
|
SetLabelText(GTK_LABEL(wl->cmpCrcSection),
|
||||||
_("<span %s>%lld sectors missing; %lld signature errors</span>"),
|
_("<span %s>%" PRId64 " sectors missing; %" PRId64 " signature errors</span>"),
|
||||||
Closure->redMarkup, crc_missing, csc->signatureErrors);
|
Closure->redMarkup, crc_missing, csc->signatureErrors);
|
||||||
if(ecc_missing)
|
if(ecc_missing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccSection),
|
SetLabelText(GTK_LABEL(wl->cmpEccSection),
|
||||||
_("<span %s>%lld sectors missing</span>"),
|
_("<span %s>%" PRId64 " sectors missing</span>"),
|
||||||
Closure->redMarkup, ecc_missing);
|
Closure->redMarkup, ecc_missing);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1265,7 +1265,7 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
if(lay->target == ECC_FILE && s == lay->dataSectors-1)
|
if(lay->target == ECC_FILE && s == lay->dataSectors-1)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ /* flush/complete spiral */
|
{ /* flush/complete spiral */
|
||||||
add_verify_values(self, VERIFY_IMAGE_SEGMENTS, new_missing, new_crc_errors);
|
add_verify_values(self, VERIFY_IMAGE_SEGMENTS, new_missing, new_crc_errors);
|
||||||
@@ -1283,19 +1283,19 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
/* Complete damage summary */
|
/* Complete damage summary */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(data_missing || data_crc_errors)
|
{ if(data_missing || data_crc_errors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpDataSection),
|
SetLabelText(GTK_LABEL(wl->cmpDataSection),
|
||||||
_("<span %s>%lld sectors missing; %lld CRC errors</span>"),
|
_("<span %s>%" PRId64 " sectors missing; %" PRId64 " CRC errors</span>"),
|
||||||
Closure->redMarkup, data_missing, data_crc_errors);
|
Closure->redMarkup, data_missing, data_crc_errors);
|
||||||
if(crc_missing || csc->signatureErrors)
|
if(crc_missing || csc->signatureErrors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpCrcSection),
|
SetLabelText(GTK_LABEL(wl->cmpCrcSection),
|
||||||
_("<span %s>%lld sectors missing; %lld signature errors</span>"),
|
_("<span %s>%" PRId64 " sectors missing; %" PRId64 " signature errors</span>"),
|
||||||
Closure->redMarkup, crc_missing, csc->signatureErrors);
|
Closure->redMarkup, crc_missing, csc->signatureErrors);
|
||||||
if(ecc_missing)
|
if(ecc_missing)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccSection),
|
SetLabelText(GTK_LABEL(wl->cmpEccSection),
|
||||||
_("<span %s>%lld sectors missing</span>"),
|
_("<span %s>%" PRId64 " sectors missing</span>"),
|
||||||
Closure->redMarkup, ecc_missing);
|
Closure->redMarkup, ecc_missing);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1312,29 +1312,29 @@ void RS03Verify(Image *image)
|
|||||||
"- data md5sum : %s\n"),data_digest);
|
"- data md5sum : %s\n"),data_digest);
|
||||||
else
|
else
|
||||||
{ if(!data_crc_errors && !csc->signatureErrors)
|
{ if(!data_crc_errors && !csc->signatureErrors)
|
||||||
PrintLog(_("* BAD image/file : %lld sectors missing\n"), total_missing);
|
PrintLog(_("* BAD image/file : %" PRId64 " sectors missing\n"), total_missing);
|
||||||
if(!total_missing)
|
if(!total_missing)
|
||||||
PrintLog(_("* suspicious image : all sectors present, but %lld CRC errors\n"),
|
PrintLog(_("* suspicious image : all sectors present, but %" PRId64 " CRC errors\n"),
|
||||||
data_crc_errors);
|
data_crc_errors);
|
||||||
if(total_missing && data_crc_errors)
|
if(total_missing && data_crc_errors)
|
||||||
PrintLog(_("* BAD image : %lld sectors missing, %lld CRC errors\n"),
|
PrintLog(_("* BAD image : %" PRId64 " sectors missing, %" PRId64 " CRC errors\n"),
|
||||||
total_missing, data_crc_errors);
|
total_missing, data_crc_errors);
|
||||||
|
|
||||||
PrintLog(_(" ... data section : %lld sectors missing; %lld CRC errors\n"),
|
PrintLog(_(" ... data section : %" PRId64 " sectors missing; %" PRId64 " CRC errors\n"),
|
||||||
data_missing, data_crc_errors);
|
data_missing, data_crc_errors);
|
||||||
if(!total_missing && !data_crc_errors && !csc->signatureErrors)
|
if(!total_missing && !data_crc_errors && !csc->signatureErrors)
|
||||||
PrintLog(_(" ... data md5sum : %s\n"), data_digest);
|
PrintLog(_(" ... data md5sum : %s\n"), data_digest);
|
||||||
|
|
||||||
if(csc->signatureErrors)
|
if(csc->signatureErrors)
|
||||||
PrintLog(_(" ... crc section : %lld sectors missing; %lld signature errors\n"),
|
PrintLog(_(" ... crc section : %" PRId64 " sectors missing; %" PRId64 " signature errors\n"),
|
||||||
crc_missing, csc->signatureErrors);
|
crc_missing, csc->signatureErrors);
|
||||||
else
|
else
|
||||||
PrintLog(_(" ... crc section : %lld sectors missing\n"), crc_missing);
|
PrintLog(_(" ... crc section : %" PRId64 " sectors missing\n"), crc_missing);
|
||||||
|
|
||||||
PrintLog(_(" ... ecc section : %lld sectors missing\n"), ecc_missing);
|
PrintLog(_(" ... ecc section : %" PRId64 " sectors missing\n"), ecc_missing);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(!data_missing && !data_crc_errors)
|
{ if(!data_missing && !data_crc_errors)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpDataSection), _("complete"));
|
SetLabelText(GTK_LABEL(wl->cmpDataSection), _("complete"));
|
||||||
@@ -1348,7 +1348,7 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
/*** Test error syndromes */
|
/*** Test error syndromes */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpEccSynLabel), _("Ecc block test:"));
|
{ SetLabelText(GTK_LABEL(wl->cmpEccSynLabel), _("Ecc block test:"));
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccSyndromes), "");
|
SetLabelText(GTK_LABEL(wl->cmpEccSyndromes), "");
|
||||||
@@ -1356,7 +1356,7 @@ void RS03Verify(Image *image)
|
|||||||
#endif
|
#endif
|
||||||
if(0&&total_missing + data_crc_errors != 0)
|
if(0&&total_missing + data_crc_errors != 0)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(GTK_LABEL(wl->cmpEccSyndromes),
|
SetLabelText(GTK_LABEL(wl->cmpEccSyndromes),
|
||||||
_("<span %s>Skipped; not useful on known defective image</span>"),
|
_("<span %s>Skipped; not useful on known defective image</span>"),
|
||||||
@@ -1367,7 +1367,7 @@ void RS03Verify(Image *image)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
syn_error =
|
syn_error =
|
||||||
#endif
|
#endif
|
||||||
check_syndromes(vc);
|
check_syndromes(vc);
|
||||||
@@ -1375,11 +1375,11 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
/*** Print image advice */
|
/*** Print image advice */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{
|
{
|
||||||
if(img_advice)
|
if(img_advice)
|
||||||
{ SetLabelText(GTK_LABEL(wl->cmpImageResult), img_advice);
|
{ SetLabelText(GTK_LABEL(wl->cmpImageResult), "%s", img_advice);
|
||||||
g_free(img_advice);
|
g_free(img_advice);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1397,12 +1397,12 @@ void RS03Verify(Image *image)
|
|||||||
|
|
||||||
/*** Print final results */
|
/*** Print final results */
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
try_it =
|
try_it =
|
||||||
#endif
|
#endif
|
||||||
prognosis(vc, total_missing+data_crc_errors, lay->totalSectors);
|
prognosis(vc, total_missing+data_crc_errors, lay->totalSectors);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
{ if(total_missing || data_crc_errors)
|
{ if(total_missing || data_crc_errors)
|
||||||
{ if(try_it) SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
{ if(try_it) SetLabelText(GTK_LABEL(wl->cmpImageResult),
|
||||||
|
|||||||
@@ -171,8 +171,8 @@ void RS03SetFixMaxValues(RS03Widgets *wl, int data_bytes, int ecc_bytes, gint64
|
|||||||
static gboolean results_idle_func(gpointer data)
|
static gboolean results_idle_func(gpointer data)
|
||||||
{ RS03Widgets *wl = (RS03Widgets*)data;
|
{ RS03Widgets *wl = (RS03Widgets*)data;
|
||||||
|
|
||||||
SetLabelText(GTK_LABEL(wl->fixCorrected), _("Repaired: %lld"), wl->corrected);
|
SetLabelText(GTK_LABEL(wl->fixCorrected), _("Repaired: %" PRId64 ""), wl->corrected);
|
||||||
SetLabelText(GTK_LABEL(wl->fixUncorrected), _("Unrepairable: <span %s>%lld</span>"),Closure->redMarkup, wl->uncorrected);
|
SetLabelText(GTK_LABEL(wl->fixUncorrected), _("Unrepairable: <span %s>%" PRId64 "</span>"),Closure->redMarkup, wl->uncorrected);
|
||||||
SetLabelText(GTK_LABEL(wl->fixProgress), _("Progress: %3d.%1d%%"), wl->percent/10, wl->percent%10);
|
SetLabelText(GTK_LABEL(wl->fixProgress), _("Progress: %3d.%1d%%"), wl->percent/10, wl->percent%10);
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|||||||
@@ -694,7 +694,7 @@ static int query_dvd(DeviceHandle *dh, int probe_only)
|
|||||||
dh->userAreaSize = (gint64)(ua_end-ua_start);
|
dh->userAreaSize = (gint64)(ua_end-ua_start);
|
||||||
|
|
||||||
if(dh->userAreaSize < 0 || dh->userAreaSize > MAX_DVD_SL_SIZE)
|
if(dh->userAreaSize < 0 || dh->userAreaSize > MAX_DVD_SL_SIZE)
|
||||||
{ LogWarning(_("READ DVD STRUCTURE: implausible medium size, %lld-%lld=%lld sectors\n"),
|
{ LogWarning(_("READ DVD STRUCTURE: implausible medium size, %" PRId64 "-%" PRId64 "=%" PRId64 " sectors\n"),
|
||||||
(gint64)ua_end, (gint64)ua_start, (gint64)dh->userAreaSize);
|
(gint64)ua_end, (gint64)ua_start, (gint64)dh->userAreaSize);
|
||||||
dh->userAreaSize = 0;
|
dh->userAreaSize = 0;
|
||||||
}
|
}
|
||||||
@@ -704,7 +704,7 @@ static int query_dvd(DeviceHandle *dh, int probe_only)
|
|||||||
dh->userAreaSize = (gint64)(ua_end0-ua_start)*2;
|
dh->userAreaSize = (gint64)(ua_end0-ua_start)*2;
|
||||||
|
|
||||||
if(dh->userAreaSize < 0 || dh->userAreaSize > MAX_DVD_DL_SIZE)
|
if(dh->userAreaSize < 0 || dh->userAreaSize > MAX_DVD_DL_SIZE)
|
||||||
{ LogWarning(_("READ DVD STRUCTURE: implausible medium size, %lld-%lld=%lld sectors\n"),
|
{ LogWarning(_("READ DVD STRUCTURE: implausible medium size, %" PRId64 "-%" PRId64 "=%" PRId64 " sectors\n"),
|
||||||
(gint64)ua_end0, (gint64)ua_start, (gint64)dh->userAreaSize);
|
(gint64)ua_end0, (gint64)ua_start, (gint64)dh->userAreaSize);
|
||||||
dh->userAreaSize = 0;
|
dh->userAreaSize = 0;
|
||||||
}
|
}
|
||||||
@@ -1371,7 +1371,7 @@ int QueryBlankCapacity(DeviceHandle *dh)
|
|||||||
{ gint64 size;
|
{ gint64 size;
|
||||||
|
|
||||||
size = (gint64)(buf[idx]<<24 | buf[idx+1]<<16 | buf[idx+2]<<8 | buf[idx+3]);
|
size = (gint64)(buf[idx]<<24 | buf[idx+1]<<16 | buf[idx+2]<<8 | buf[idx+3]);
|
||||||
Verbose("#DVD: Cap list %d - type %x, size %lld\n", i, buf[idx+4]>>2, size);
|
Verbose("#DVD: Cap list %d - type %x, size %" PRId64 "\n", i, buf[idx+4]>>2, size);
|
||||||
|
|
||||||
switch(buf[idx+4]>>2) /* format type */
|
switch(buf[idx+4]>>2) /* format type */
|
||||||
{ case 0x00: /* all media */
|
{ case 0x00: /* all media */
|
||||||
@@ -1441,7 +1441,7 @@ int QueryBlankCapacity(DeviceHandle *dh)
|
|||||||
|
|
||||||
size = (gint64)(buf[idx]<<24 | buf[idx+1]<<16 | buf[idx+2]<<8 | buf[idx+3]);
|
size = (gint64)(buf[idx]<<24 | buf[idx+1]<<16 | buf[idx+2]<<8 | buf[idx+3]);
|
||||||
sa_size = buf[idx+5]<<16 | buf[idx+6]<<8 | buf[idx+7];
|
sa_size = buf[idx+5]<<16 | buf[idx+6]<<8 | buf[idx+7];
|
||||||
Verbose("#BD: Cap list %d - type %x, size %lld, spare %d\n",
|
Verbose("#BD: Cap list %d - type %x, size %" PRId64 ", spare %d\n",
|
||||||
i, buf[idx+4]>>2, size, sa_size);
|
i, buf[idx+4]>>2, size, sa_size);
|
||||||
|
|
||||||
switch(buf[idx+4]>>2) /* format type */
|
switch(buf[idx+4]>>2) /* format type */
|
||||||
@@ -1772,8 +1772,8 @@ static int check_sector(DeviceHandle *dh, GString *msg_out, guint64 sector, int
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(n_sectors == 1)
|
if(n_sectors == 1)
|
||||||
g_string_append_printf(msg_out, _("Sector %lld: %s\n"), sector, msg);
|
g_string_append_printf(msg_out, _("Sector %" PRId64 ": %s\n"), sector, msg);
|
||||||
else g_string_append_printf(msg_out, _("Sectors %lld-%lld: %s\n"),
|
else g_string_append_printf(msg_out, _("Sectors %" PRId64 "-%" PRId64 ": %s\n"),
|
||||||
sector, sector+n_sectors-1, msg);
|
sector, sector+n_sectors-1, msg);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@@ -1838,7 +1838,7 @@ static void read_capacity(Image *image)
|
|||||||
}
|
}
|
||||||
|
|
||||||
dh->readCapacity = (gint64)(buf[0]<<24 | buf[1]<<16 | buf[2]<<8 | buf[3]);
|
dh->readCapacity = (gint64)(buf[0]<<24 | buf[1]<<16 | buf[2]<<8 | buf[3]);
|
||||||
Verbose(" -> %lld\n", dh->readCapacity);
|
Verbose(" -> %" PRId64 "\n", dh->readCapacity);
|
||||||
FreeAlignedBuffer(ab);
|
FreeAlignedBuffer(ab);
|
||||||
|
|
||||||
/*** Validate capacity */
|
/*** Validate capacity */
|
||||||
@@ -1853,7 +1853,7 @@ static void read_capacity(Image *image)
|
|||||||
implausible = TRUE;
|
implausible = TRUE;
|
||||||
|
|
||||||
if(implausible && !dh->simImage)
|
if(implausible && !dh->simImage)
|
||||||
{ LogWarning(_("READ CAPACITY: implausible medium size, %lld sectors\n"),
|
{ LogWarning(_("READ CAPACITY: implausible medium size, %" PRId64 " sectors\n"),
|
||||||
(gint64)dh->readCapacity);
|
(gint64)dh->readCapacity);
|
||||||
dh->readCapacity = 0;
|
dh->readCapacity = 0;
|
||||||
}
|
}
|
||||||
@@ -1873,7 +1873,7 @@ static gint64 query_size(Image *image)
|
|||||||
for the medium size. */
|
for the medium size. */
|
||||||
|
|
||||||
if(image->expectedSectors > 0)
|
if(image->expectedSectors > 0)
|
||||||
{ Verbose("Medium size obtained from ECC header: %lld sectors\n", image->expectedSectors);
|
{ Verbose("Medium size obtained from ECC header: %" PRId64 " sectors\n", image->expectedSectors);
|
||||||
return image->expectedSectors;
|
return image->expectedSectors;
|
||||||
}
|
}
|
||||||
else Verbose("Medium size could NOT be determined from ECC header.\n");
|
else Verbose("Medium size could NOT be determined from ECC header.\n");
|
||||||
@@ -1897,7 +1897,7 @@ static gint64 query_size(Image *image)
|
|||||||
/* For CD media, thats all we have to do */
|
/* For CD media, thats all we have to do */
|
||||||
|
|
||||||
if(dh->mainType == CD)
|
if(dh->mainType == CD)
|
||||||
{ Verbose("CD medium - using size from READ CAPACITY: %lld sectors\n", dh->readCapacity+1);
|
{ Verbose("CD medium - using size from READ CAPACITY: %" PRId64 " sectors\n", dh->readCapacity+1);
|
||||||
return dh->readCapacity+1; /* size is the number of the last sector, starting with 0 */
|
return dh->readCapacity+1; /* size is the number of the last sector, starting with 0 */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1905,7 +1905,7 @@ static gint64 query_size(Image *image)
|
|||||||
work as unformatted sectors can be always read. Stick with READ CAPACITY. */
|
work as unformatted sectors can be always read. Stick with READ CAPACITY. */
|
||||||
|
|
||||||
if(dh->mainType == BD)
|
if(dh->mainType == BD)
|
||||||
{ Verbose("BD medium - using size from READ CAPACITY: %lld sectors\n", dh->readCapacity+1);
|
{ Verbose("BD medium - using size from READ CAPACITY: %" PRId64 " sectors\n", dh->readCapacity+1);
|
||||||
return dh->readCapacity+1; /* size is the number of the last sector, starting with 0 */
|
return dh->readCapacity+1; /* size is the number of the last sector, starting with 0 */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1915,7 +1915,7 @@ static gint64 query_size(Image *image)
|
|||||||
so we have to be careful here. */
|
so we have to be careful here. */
|
||||||
|
|
||||||
if(dh->readCapacity == dh->userAreaSize) /* If they are equal just return one */
|
if(dh->readCapacity == dh->userAreaSize) /* If they are equal just return one */
|
||||||
{ Verbose("READ CAPACITY and READ DVD STRUCTURE agree: %lld sectors\n", dh->readCapacity+1);
|
{ Verbose("READ CAPACITY and READ DVD STRUCTURE agree: %" PRId64 " sectors\n", dh->readCapacity+1);
|
||||||
return dh->readCapacity+1;
|
return dh->readCapacity+1;
|
||||||
}
|
}
|
||||||
else /* Tricky case. Try some heuristics. */
|
else /* Tricky case. Try some heuristics. */
|
||||||
@@ -1930,8 +1930,8 @@ static gint64 query_size(Image *image)
|
|||||||
warning = g_string_sized_new(1024);
|
warning = g_string_sized_new(1024);
|
||||||
g_string_printf(warning,
|
g_string_printf(warning,
|
||||||
_("Different media sizes depending on query method:\n"
|
_("Different media sizes depending on query method:\n"
|
||||||
"READ CAPACITY: %lld sectors\n"
|
"READ CAPACITY: %" PRId64 " sectors\n"
|
||||||
"READ DVD STRUCTURE: %lld sectors\n\n"),
|
"READ DVD STRUCTURE: %" PRId64 " sectors\n\n"),
|
||||||
dh->readCapacity+1, dh->userAreaSize+1);
|
dh->readCapacity+1, dh->userAreaSize+1);
|
||||||
|
|
||||||
g_string_append(warning, _("Evaluation of returned medium sizes:\n\n"));
|
g_string_append(warning, _("Evaluation of returned medium sizes:\n\n"));
|
||||||
@@ -2009,7 +2009,7 @@ static gint64 query_size(Image *image)
|
|||||||
}
|
}
|
||||||
|
|
||||||
g_string_append_printf(warning, _("Final decision: %s\n\n"), decision_msg);
|
g_string_append_printf(warning, _("Final decision: %s\n\n"), decision_msg);
|
||||||
LogWarning(warning->str);
|
LogWarning("%s", warning->str);
|
||||||
|
|
||||||
g_string_free(warning, TRUE);
|
g_string_free(warning, TRUE);
|
||||||
|
|
||||||
@@ -2038,7 +2038,8 @@ gint64 CurrentMediumSize(int get_blank_size)
|
|||||||
gint64 size;
|
gint64 size;
|
||||||
|
|
||||||
|
|
||||||
image = OpenImageFromDevice(Closure->device, 0);
|
/* 2 means: allow blank media, see comment in OpenImageFromDevice */
|
||||||
|
image = OpenImageFromDevice(Closure->device, 2);
|
||||||
if(!image) return 0;
|
if(!image) return 0;
|
||||||
if(InquireDevice(image->dh, 1) != 0x05)
|
if(InquireDevice(image->dh, 1) != 0x05)
|
||||||
{ CloseImage(image);
|
{ CloseImage(image);
|
||||||
@@ -2205,7 +2206,7 @@ int TestUnitReady(DeviceHandle *dh)
|
|||||||
|
|
||||||
if(SendPacket(dh, cmd, 6, NULL, 0, &dh->sense, DATA_NONE) != -1)
|
if(SendPacket(dh, cmd, 6, NULL, 0, &dh->sense, DATA_NONE) != -1)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(Closure->status, "");
|
SetLabelText(Closure->status, "");
|
||||||
#endif
|
#endif
|
||||||
@@ -2226,7 +2227,7 @@ int TestUnitReady(DeviceHandle *dh)
|
|||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
_("Waiting 10 seconds for drive: %d\n"),9-i);
|
_("Waiting 10 seconds for drive: %d\n"),9-i);
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
#endif
|
#endif
|
||||||
@@ -2239,7 +2240,7 @@ int TestUnitReady(DeviceHandle *dh)
|
|||||||
break; /* Something is wrong with the drive */
|
break; /* Something is wrong with the drive */
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->guiMode)
|
if(Closure->guiMode)
|
||||||
SetLabelText(Closure->status, "");
|
SetLabelText(Closure->status, "");
|
||||||
#endif
|
#endif
|
||||||
@@ -2495,7 +2496,7 @@ int ReadSectors(DeviceHandle *dh, unsigned char *buf, gint64 s, int nsectors)
|
|||||||
if(status) /* current try was unsuccessful */
|
if(status) /* current try was unsuccessful */
|
||||||
{ int last_key, last_asc, last_ascq;
|
{ int last_key, last_asc, last_ascq;
|
||||||
|
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions) /* user break */
|
if(Closure->stopActions) /* user break */
|
||||||
return status;
|
return status;
|
||||||
#endif
|
#endif
|
||||||
@@ -2507,7 +2508,7 @@ int ReadSectors(DeviceHandle *dh, unsigned char *buf, gint64 s, int nsectors)
|
|||||||
// if(dh->canReadDefective && nsectors > 1 && Closure->sectorSkip == 0)
|
// if(dh->canReadDefective && nsectors > 1 && Closure->sectorSkip == 0)
|
||||||
if(nsectors > 1 && Closure->sectorSkip == 0)
|
if(nsectors > 1 && Closure->sectorSkip == 0)
|
||||||
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
{ PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
_("Sectors %lld - %lld: %s\n"),
|
_("Sectors %" PRId64 " - %" PRId64 ": %s\n"),
|
||||||
s, s+nsectors-1, GetLastSenseString(FALSE));
|
s, s+nsectors-1, GetLastSenseString(FALSE));
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@@ -2521,13 +2522,13 @@ int ReadSectors(DeviceHandle *dh, unsigned char *buf, gint64 s, int nsectors)
|
|||||||
if(last_key == 3 && last_asc == 255 && last_ascq == 2 && dh->rawBuffer)
|
if(last_key == 3 && last_asc == 255 && last_ascq == 2 && dh->rawBuffer)
|
||||||
{ unsigned char *frame = dh->rawBuffer->workBuf->buf;
|
{ unsigned char *frame = dh->rawBuffer->workBuf->buf;
|
||||||
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
_("Sector %lld, try %d: %s Sector returned: %d.\n"),
|
_("Sector %" PRId64 ", try %d: %s Sector returned: %d.\n"),
|
||||||
s, retry, GetLastSenseString(FALSE),
|
s, retry, GetLastSenseString(FALSE),
|
||||||
MSFtoLBA(frame[12], frame[13], frame[14]));
|
MSFtoLBA(frame[12], frame[13], frame[14]));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
_("Sector %lld, try %d: %s\n"),
|
_("Sector %" PRId64 ", try %d: %s\n"),
|
||||||
s, retry, GetLastSenseString(FALSE));
|
s, retry, GetLastSenseString(FALSE));
|
||||||
|
|
||||||
/* Last attempt; create failure notice */
|
/* Last attempt; create failure notice */
|
||||||
@@ -2538,7 +2539,7 @@ int ReadSectors(DeviceHandle *dh, unsigned char *buf, gint64 s, int nsectors)
|
|||||||
else /* good return status */
|
else /* good return status */
|
||||||
{ if(recommended_attempts > 1 && retry > 1)
|
{ if(recommended_attempts > 1 && retry > 1)
|
||||||
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
PrintCLIorLabel(STATUS_LABEL_OR_NULL,
|
||||||
_("Sector %lld, try %d: success\n"), s, retry);
|
_("Sector %" PRId64 ", try %d: success\n"), s, retry);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2595,6 +2596,7 @@ int ReadSectorsFast(DeviceHandle *dh, unsigned char *buf, gint64 s, int nsectors
|
|||||||
Image* OpenImageFromDevice(char *device, int query_only)
|
Image* OpenImageFromDevice(char *device, int query_only)
|
||||||
{ Image *image = NULL;
|
{ Image *image = NULL;
|
||||||
DeviceHandle *dh = NULL;
|
DeviceHandle *dh = NULL;
|
||||||
|
int subTypeMasked;
|
||||||
|
|
||||||
/* Open the device. */
|
/* Open the device. */
|
||||||
|
|
||||||
@@ -2633,7 +2635,11 @@ Image* OpenImageFromDevice(char *device, int query_only)
|
|||||||
|
|
||||||
Verbose("# query_type() returned.\n");
|
Verbose("# query_type() returned.\n");
|
||||||
|
|
||||||
if(dh->subType == UNSUPPORTED)
|
/* subType is not set by get_configuration() but by query_cd() for CD.
|
||||||
|
So if we accept blank media (query_only == 2), then UNSUPPORTED for CD
|
||||||
|
is not an error, it just mean query_cd() didn't fill it because it
|
||||||
|
doesn't work for blank media as there's no TOC */
|
||||||
|
if(dh->subType == UNSUPPORTED && !(query_only == 2 && dh->mainType == CD))
|
||||||
{ char *td = alloca(strlen(dh->typeDescr)+1);
|
{ char *td = alloca(strlen(dh->typeDescr)+1);
|
||||||
|
|
||||||
strcpy(td, dh->typeDescr);
|
strcpy(td, dh->typeDescr);
|
||||||
@@ -2642,7 +2648,7 @@ Image* OpenImageFromDevice(char *device, int query_only)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dh->sessions>1)
|
if(dh->sessions>1 && query_only != 2)
|
||||||
{ int sessions = dh->sessions;
|
{ int sessions = dh->sessions;
|
||||||
|
|
||||||
CloseDevice(dh);
|
CloseDevice(dh);
|
||||||
@@ -2705,19 +2711,27 @@ Image* OpenImageFromDevice(char *device, int query_only)
|
|||||||
|
|
||||||
Verbose("# Calling query_size()\n");
|
Verbose("# Calling query_size()\n");
|
||||||
dh->sectors = query_size(image);
|
dh->sectors = query_size(image);
|
||||||
Verbose("# returned: %lld sectors\n", dh->sectors);
|
Verbose("# returned: %" PRId64 " sectors\n", dh->sectors);
|
||||||
|
|
||||||
switch(dh->subType & MAIN_TYPE_MASK)
|
subTypeMasked = dh->subType & MAIN_TYPE_MASK;
|
||||||
|
/* Handle the special case of blank CDs, that have no subType
|
||||||
|
see above comment for more information: */
|
||||||
|
if (query_only == 2 && subTypeMasked == 0 && dh->mainType == CD)
|
||||||
|
{ Verbose("This may be a blank CD, adjusting subTypeMasked");
|
||||||
|
subTypeMasked = CD;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(subTypeMasked)
|
||||||
{ case BD:
|
{ case BD:
|
||||||
case DVD:
|
case DVD:
|
||||||
case CD:
|
case CD:
|
||||||
{ char *tmp;
|
{ char *tmp;
|
||||||
if(!image->isoInfo) // || dh->rs02Size > 0)
|
if(!image->isoInfo) // || dh->rs02Size > 0)
|
||||||
tmp = g_strdup_printf(_("Medium: %s, %lld sectors%s"),
|
tmp = g_strdup_printf(_("Medium: %s, %" PRId64 " sectors%s"),
|
||||||
dh->typeDescr, dh->sectors,
|
dh->typeDescr, dh->sectors,
|
||||||
image->expectedSectors ? ", Ecc" : ""); //fixme: validate
|
image->expectedSectors ? ", Ecc" : ""); //fixme: validate
|
||||||
else
|
else
|
||||||
tmp = g_strdup_printf(_("Medium \"%s\": %s, %lld sectors%s created %s"),
|
tmp = g_strdup_printf(_("Medium \"%s\": %s, %" PRId64 " sectors%s created %s"),
|
||||||
image->isoInfo->volumeLabel,
|
image->isoInfo->volumeLabel,
|
||||||
dh->typeDescr, dh->sectors,
|
dh->typeDescr, dh->sectors,
|
||||||
image->expectedSectors ? ", Ecc," : ",", //fixme: validate
|
image->expectedSectors ? ", Ecc," : ",", //fixme: validate
|
||||||
|
|||||||
22
src/udf.c
22
src/udf.c
@@ -365,7 +365,7 @@ static IsoInfo* examine_iso(Image *image)
|
|||||||
|
|
||||||
for(sector=16; sector<32; sector++)
|
for(sector=16; sector<32; sector++)
|
||||||
{
|
{
|
||||||
#ifndef CLI
|
#ifndef WITH_CLI_ONLY_YES
|
||||||
if(Closure->stopActions)
|
if(Closure->stopActions)
|
||||||
continue;
|
continue;
|
||||||
#endif
|
#endif
|
||||||
@@ -827,7 +827,7 @@ void WriteIsoHeader(IsoHeader *ih, LargeFile *image)
|
|||||||
{ int n = LargeWrite(image, zero, 2048);
|
{ int n = LargeWrite(image, zero, 2048);
|
||||||
|
|
||||||
if(n != 2048)
|
if(n != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)i, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)i, strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Complete the primary volume descriptor */
|
/* Complete the primary volume descriptor */
|
||||||
@@ -885,7 +885,7 @@ void WriteIsoHeader(IsoHeader *ih, LargeFile *image)
|
|||||||
/* Write the pvd */
|
/* Write the pvd */
|
||||||
|
|
||||||
if(LargeWrite(image, pvd, 2048) != 2048)
|
if(LargeWrite(image, pvd, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)16, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)16, strerror(errno));
|
||||||
|
|
||||||
|
|
||||||
/* Create the supplementary volume descriptor */
|
/* Create the supplementary volume descriptor */
|
||||||
@@ -942,7 +942,7 @@ void WriteIsoHeader(IsoHeader *ih, LargeFile *image)
|
|||||||
/* Write the svd */
|
/* Write the svd */
|
||||||
|
|
||||||
if(LargeWrite(image, svd, 2048) != 2048)
|
if(LargeWrite(image, svd, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)17, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)17, strerror(errno));
|
||||||
|
|
||||||
/*** Create and write the volume descriptor set terminator */
|
/*** Create and write the volume descriptor set terminator */
|
||||||
|
|
||||||
@@ -955,26 +955,26 @@ void WriteIsoHeader(IsoHeader *ih, LargeFile *image)
|
|||||||
bp_set_byte(sector, 7, 1); /* Volume descriptor version 1 */
|
bp_set_byte(sector, 7, 1); /* Volume descriptor version 1 */
|
||||||
|
|
||||||
if(LargeWrite(image, sector, 2048) != 2048)
|
if(LargeWrite(image, sector, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)18, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)18, strerror(errno));
|
||||||
|
|
||||||
/*** Write the primary and supplementary path tables and root directories */
|
/*** Write the primary and supplementary path tables and root directories */
|
||||||
|
|
||||||
if(LargeWrite(image, ih->ppath->lpath, 2048) != 2048)
|
if(LargeWrite(image, ih->ppath->lpath, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)19, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)19, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(image, ih->ppath->mpath, 2048) != 2048)
|
if(LargeWrite(image, ih->ppath->mpath, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)20, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)20, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(image, ih->proot->dir, 2048) != 2048)
|
if(LargeWrite(image, ih->proot->dir, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)21, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)21, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(image, ih->spath->lpath, 2048) != 2048)
|
if(LargeWrite(image, ih->spath->lpath, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)22, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)22, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(image, ih->spath->mpath, 2048) != 2048)
|
if(LargeWrite(image, ih->spath->mpath, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)23, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)23, strerror(errno));
|
||||||
|
|
||||||
if(LargeWrite(image, ih->sroot->dir, 2048) != 2048)
|
if(LargeWrite(image, ih->sroot->dir, 2048) != 2048)
|
||||||
Stop(_("Failed writing to sector %lld in image: %s"), (gint64)24, strerror(errno));
|
Stop(_("Failed writing to sector %" PRId64 " in image: %s"), (gint64)24, strerror(errno));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user