From 284a23b437a1e7c4a94ca65485672449bf2f59a2 Mon Sep 17 00:00:00 2001 From: Tim Stahlhut Date: Sat, 12 Oct 2019 14:21:07 -0400 Subject: [PATCH 1/6] * cb_koders: Delete plugin (Thanks stahta01) --- BUILD | 2 +- codeblocks-contrib.metainfo.xml | 3 - codeblocks.spec.fedora.in | 2 - codeblocks.spec.in | 3 - configure.ac | 1 - debian/codeblocks-contrib-common.install | 1 - m4/acinclude.m4 | 11 +- src/CodeBlocks-unix.workspace | 1 - src/CodeBlocks_wx30-unix.workspace | 3 - src/CodeBlocks_wx31.workspace | 1 - src/CodeBlocks_wx31_64.workspace | 1 - src/ContribPlugins-unix.workspace | 1 - src/ContribPlugins_wx30-unix.workspace | 1 - src/ContribPlugins_wx31.workspace | 1 - src/ContribPlugins_wx31_64.workspace | 1 - src/i18n/extract.bash | 1 - src/i18n/extract_win.bat | 147 ++++++++-------- src/plugins/contrib/Makefile.am | 6 - src/plugins/contrib/cb_koders/Makefile.am | 27 --- .../contrib/cb_koders/cb_koders-unix.cbp | 67 -------- src/plugins/contrib/cb_koders/cb_koders.cbp | 84 ---------- src/plugins/contrib/cb_koders/cb_koders.cpp | 157 ------------------ src/plugins/contrib/cb_koders/cb_koders.h | 79 --------- .../contrib/cb_koders/cb_koders_wx30-unix.cbp | 62 ------- .../contrib/cb_koders/cb_koders_wx30.cbp | 82 --------- .../contrib/cb_koders/cb_koders_wx30_64.cbp | 84 ---------- .../contrib/cb_koders/cb_koders_wx31.cbp | 82 --------- .../contrib/cb_koders/cb_koders_wx31_64.cbp | 85 ---------- .../contrib/cb_koders/kodersdialog.cpp | 129 -------------- src/plugins/contrib/cb_koders/kodersdialog.h | 62 ------- src/plugins/contrib/cb_koders/manifest.xml | 14 -- .../cb_koders/wxsmith/KodersDialog.wxs | 100 ----------- 32 files changed, 75 insertions(+), 1226 deletions(-) delete mode 100644 src/plugins/contrib/cb_koders/Makefile.am delete mode 100644 src/plugins/contrib/cb_koders/cb_koders-unix.cbp delete mode 100644 src/plugins/contrib/cb_koders/cb_koders.cbp delete mode 100644 src/plugins/contrib/cb_koders/cb_koders.cpp delete mode 100644 src/plugins/contrib/cb_koders/cb_koders.h delete mode 100644 src/plugins/contrib/cb_koders/cb_koders_wx30-unix.cbp delete mode 100644 src/plugins/contrib/cb_koders/cb_koders_wx30.cbp delete mode 100644 src/plugins/contrib/cb_koders/cb_koders_wx30_64.cbp delete mode 100644 src/plugins/contrib/cb_koders/cb_koders_wx31.cbp delete mode 100644 src/plugins/contrib/cb_koders/cb_koders_wx31_64.cbp delete mode 100644 src/plugins/contrib/cb_koders/kodersdialog.cpp delete mode 100644 src/plugins/contrib/cb_koders/kodersdialog.h delete mode 100644 src/plugins/contrib/cb_koders/manifest.xml delete mode 100644 src/plugins/contrib/cb_koders/wxsmith/KodersDialog.wxs diff --git a/BUILD b/BUILD index 5a43b8a1dd..05534e436d 100644 --- a/BUILD +++ b/BUILD @@ -44,7 +44,7 @@ make install "all,-help" compiles all contrib plugins except the help plugin By default, no contrib plugins are compiled Plugin names are: - AutoVersioning, BrowseTracker, byogames, Cccc, CppCheck, cbkoders, codesnippets, codestat, + AutoVersioning, BrowseTracker, byogames, Cccc, CppCheck, codesnippets, codestat, copystrings, Cscope, DoxyBlocks, dragscroll, EditorConfig, EditorTweaks, envvars, FileManager, headerfixup, help, hexeditor, incsearch, keybinder, libfinder, MouseSap, NassiShneiderman, ProjectOptionsManipulator, profiler, regex, ReopenEditor, rndgen, exporter, symtab, diff --git a/codeblocks-contrib.metainfo.xml b/codeblocks-contrib.metainfo.xml index c1a953e1f7..4fdce7ff4f 100644 --- a/codeblocks-contrib.metainfo.xml +++ b/codeblocks-contrib.metainfo.xml @@ -18,9 +18,6 @@
  • BYO Games -- A collection of Games
  • -
  • - Koders query -- Searches the Koders website for keywords, and returns results -
  • Cccc -- runs the C and C++ Code Counter (CCCC) on the current project
  • diff --git a/codeblocks.spec.fedora.in b/codeblocks.spec.fedora.in index 338ead96cd..6d7af88aef 100644 --- a/codeblocks.spec.fedora.in +++ b/codeblocks.spec.fedora.in @@ -269,7 +269,6 @@ fi %{pkgdatadir}/ToolsPlus.zip %{pkgdatadir}/Valgrind.zip %{pkgdatadir}/byogames.zip -%{pkgdatadir}/cb_koders.zip %{pkgdatadir}/codesnippets.zip %{pkgdatadir}/codestat.zip %{pkgdatadir}/copystrings.zip @@ -313,7 +312,6 @@ fi %{plugindir}/libToolsPlus.so %{plugindir}/libValgrind.so %{plugindir}/libbyogames.so -%{plugindir}/libcb_koders.so %{plugindir}/libcodesnippets.so %{plugindir}/libcodestat.so %{plugindir}/libcopystrings.so diff --git a/codeblocks.spec.in b/codeblocks.spec.in index 2ee6b89768..2e8032945a 100644 --- a/codeblocks.spec.in +++ b/codeblocks.spec.in @@ -169,7 +169,6 @@ plugins. These are: * HexEditor * IncrementalSearch * Keyboard shortcuts configuration - * CB koders * Library finder * MouseSap * NassiShneiderman @@ -337,7 +336,6 @@ wxSmith-plugins and to use the wxContribItems in own programs. %{plugindir}/libCccc.so %{plugindir}/libCppCheck.so %{plugindir}/libSmartIndent*.so -%{plugindir}/libcb_koders.so %{plugindir}/libcodesnippets.so %{plugindir}/libcodestat.so %{plugindir}/libcopystrings.so @@ -381,7 +379,6 @@ wxSmith-plugins and to use the wxContribItems in own programs. %{pkgdatadir}/Cccc.zip %{pkgdatadir}/CppCheck.zip %{pkgdatadir}/SmartIndent*.zip -%{pkgdatadir}/cb_koders.zip %{pkgdatadir}/codesnippets.zip %{pkgdatadir}/codestat.zip %{pkgdatadir}/copystrings.zip diff --git a/configure.ac b/configure.ac index c0217bd459..b7f6dad6fc 100644 --- a/configure.ac +++ b/configure.ac @@ -527,7 +527,6 @@ AC_CONFIG_FILES([Makefile src/plugins/contrib/Cccc/resources/Makefile src/plugins/contrib/CppCheck/Makefile src/plugins/contrib/CppCheck/resources/Makefile - src/plugins/contrib/cb_koders/Makefile src/plugins/contrib/codesnippets/Makefile src/plugins/contrib/codesnippets/resources/Makefile src/plugins/contrib/codestat/Makefile diff --git a/debian/codeblocks-contrib-common.install b/debian/codeblocks-contrib-common.install index 8404a2801a..b8016f9fce 100644 --- a/debian/codeblocks-contrib-common.install +++ b/debian/codeblocks-contrib-common.install @@ -6,7 +6,6 @@ usr/share/codeblocks/byogames.zip usr/share/codeblocks/Cccc.zip usr/share/codeblocks/CppCheck.zip usr/share/codeblocks/SmartIndent*.zip -usr/share/codeblocks/cb_koders.zip usr/share/codeblocks/codesnippets.zip usr/share/codeblocks/codestat.zip usr/share/codeblocks/copystrings.zip diff --git a/m4/acinclude.m4 b/m4/acinclude.m4 index ee877b1f4b..ba6e7d02f0 100644 --- a/m4/acinclude.m4 +++ b/m4/acinclude.m4 @@ -334,7 +334,6 @@ AC_DEFUN([BUILD_CONTRIB_NONE], [ AM_CONDITIONAL([BUILD_AUTOVERSIONING], [false]) AM_CONDITIONAL([BUILD_BROWSETRACKER], [false]) AM_CONDITIONAL([BUILD_BYOGAMES], [false]) - AM_CONDITIONAL([BUILD_CBKODERS], [false]) AM_CONDITIONAL([BUILD_CODESNIPPETS], [false]) AM_CONDITIONAL([BUILD_CODESTAT], [false]) AM_CONDITIONAL([BUILD_COPYSTRINGS], [false]) @@ -377,7 +376,6 @@ AC_DEFUN([BUILD_CONTRIB_ALL], [ AM_CONDITIONAL([BUILD_AUTOVERSIONING], [true]) AM_CONDITIONAL([BUILD_BROWSETRACKER], [true]) AM_CONDITIONAL([BUILD_BYOGAMES], [true]) - AM_CONDITIONAL([BUILD_CBKODERS], [true]) AM_CONDITIONAL([BUILD_CODESNIPPETS], [true]) AM_CONDITIONAL([BUILD_CODESTAT], [true]) AM_CONDITIONAL([BUILD_COPYSTRINGS], [true]) @@ -427,7 +425,7 @@ AC_ARG_WITH(contrib-plugins, [ "all,-help" or "yes,-help" compiles all contrib plugins except the help plugin ] [ "none", "no", "--without-contrib-plugins" or skipping the parameter at all, ] [ compiles none of the contrib-plugins ] - [ Plugin names are: AutoVersioning, BrowseTracker, byogames, Cccc, CppCheck, cbkoders, codesnippets, ] + [ Plugin names are: AutoVersioning, BrowseTracker, byogames, Cccc, CppCheck, codesnippets, ] [ codestat, copystrings, Cscope, DoxyBlocks, dragscroll, EditorConfig, EditorTweaks, envvars, exporter, ] [ FileManager, headerfixup, help, hexeditor, incsearch, keybinder, libfinder, MouseSap, ] [ NassiShneiderman, ProjectOptionsManipulator, profiler, regex, ReopenEditor, rndgen, smartindent, spellchecker, ] @@ -450,9 +448,6 @@ do byogames) AM_CONDITIONAL([BUILD_BYOGAMES], [true]) ;; - cbkoders) - AM_CONDITIONAL([BUILD_CBKODERS], [true]) - ;; codesnippets) AM_CONDITIONAL([BUILD_CODESNIPPETS], [true]) ;; @@ -570,9 +565,6 @@ do -byogames) AM_CONDITIONAL([BUILD_BYOGAMES], [false]) ;; - -cbkoders) - AM_CONDITIONAL([BUILD_CBKODERS], [false]) - ;; -codesnippets) AM_CONDITIONAL([BUILD_CODESNIPPETS], [false]) ;; @@ -695,7 +687,6 @@ AC_MSG_RESULT($plugins) AC_SUBST(BUILD_AUTOVERSIONING) AC_SUBST(BUILD_BROWSETRACKER) AC_SUBST(BUILD_BYOGAMES) -AC_SUBST(BUILD_CBKODERS) AC_SUBST(BUILD_CCCC) AC_SUBST(BUILD_CODESNIPPETS) AC_SUBST(BUILD_CODESTAT) diff --git a/src/CodeBlocks-unix.workspace b/src/CodeBlocks-unix.workspace index 382013a795..51ba281eb8 100644 --- a/src/CodeBlocks-unix.workspace +++ b/src/CodeBlocks-unix.workspace @@ -23,7 +23,6 @@ - diff --git a/src/CodeBlocks_wx30-unix.workspace b/src/CodeBlocks_wx30-unix.workspace index e5151836f1..ea9a1a1830 100644 --- a/src/CodeBlocks_wx30-unix.workspace +++ b/src/CodeBlocks_wx30-unix.workspace @@ -22,9 +22,6 @@ - - - diff --git a/src/CodeBlocks_wx31.workspace b/src/CodeBlocks_wx31.workspace index d7e15103e9..e46b164013 100644 --- a/src/CodeBlocks_wx31.workspace +++ b/src/CodeBlocks_wx31.workspace @@ -19,7 +19,6 @@ - diff --git a/src/CodeBlocks_wx31_64.workspace b/src/CodeBlocks_wx31_64.workspace index 21bd47afc5..24b9983ada 100644 --- a/src/CodeBlocks_wx31_64.workspace +++ b/src/CodeBlocks_wx31_64.workspace @@ -19,7 +19,6 @@ - diff --git a/src/ContribPlugins-unix.workspace b/src/ContribPlugins-unix.workspace index 01b24cf224..23b82d1b72 100644 --- a/src/ContribPlugins-unix.workspace +++ b/src/ContribPlugins-unix.workspace @@ -15,7 +15,6 @@ - diff --git a/src/ContribPlugins_wx30-unix.workspace b/src/ContribPlugins_wx30-unix.workspace index 39da2d35f8..8e12111ee2 100644 --- a/src/ContribPlugins_wx30-unix.workspace +++ b/src/ContribPlugins_wx30-unix.workspace @@ -15,7 +15,6 @@ - diff --git a/src/ContribPlugins_wx31.workspace b/src/ContribPlugins_wx31.workspace index b16989cfc4..df004ae44c 100644 --- a/src/ContribPlugins_wx31.workspace +++ b/src/ContribPlugins_wx31.workspace @@ -17,7 +17,6 @@ - diff --git a/src/ContribPlugins_wx31_64.workspace b/src/ContribPlugins_wx31_64.workspace index b104dd4c25..adccb26efd 100644 --- a/src/ContribPlugins_wx31_64.workspace +++ b/src/ContribPlugins_wx31_64.workspace @@ -17,7 +17,6 @@ - diff --git a/src/i18n/extract.bash b/src/i18n/extract.bash index e623a4989c..a5ccf58cb9 100644 --- a/src/i18n/extract.bash +++ b/src/i18n/extract.bash @@ -5,7 +5,6 @@ find ../plugins |grep -v contrib |grep -P "(\.cpp|\.h)$" |xargs xgettext --keywo echo "creating contrib .pot files" find ../plugins/contrib/codestat |grep -P "(\.cpp|\.h)$" |xargs xgettext --keyword=_ -o codestat.pot find ../plugins/contrib/byogames |grep -P "(\.cpp|\.h)$" |xargs xgettext --keyword=_ -o byogames.pot -find ../plugins/contrib/cb_koders |grep -P "(\.cpp|\.h)$" |xargs xgettext --keyword=_ -o cb_koders.pot find ../plugins/contrib/codesnippets |grep -P "(\.cpp|\.h)$" |xargs xgettext --keyword=_ -o codesnippets.pot find ../plugins/contrib/copystrings |grep -P "(\.cpp|\.h)$" |xargs xgettext --keyword=_ -o copystrings.pot find ../plugins/contrib/devpak_plugin |grep -P "(\.cpp|\.h)$" |xargs xgettext --keyword=_ -o devpak_plugin.pot diff --git a/src/i18n/extract_win.bat b/src/i18n/extract_win.bat index f0886bb0e8..7d86e45f51 100644 --- a/src/i18n/extract_win.bat +++ b/src/i18n/extract_win.bat @@ -1,74 +1,73 @@ -@echo off -rem Adopt path to required tool here: -set PATH=C:\Programme\Tools\GnuWin32\bin;%PATH% - -set grep_found=0 -set xargs_found=0 -set xgettext_found=0 -set msginit_found=0 - -for %%G in ("%path:;=" "%") do ( - if exist %%G\grep.exe set grep_found=1 - if exist %%G\xargs.exe set xargs_found=1 - if exist %%G\xgettext.exe set xgettext_found=1 - if exist %%G\msginit.exe set msginit_found=1 -) - -if "%grep_found%"=="0" goto Error -if "%xargs_found%"=="0" goto Error -if "%xgettext_found%"=="0" goto Error -if "%msginit_found%"=="0" goto Error - -echo "creating core .pot files" -find ../sdk ../src | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o codeblocks.pot -find ../plugins | grep -v contrib | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o coreplugins.pot - -echo "creating contrib .pot files" -find ../plugins/contrib/AutoVersioning | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o autoversioning.pot -find ../plugins/contrib/BrowseTracker | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o browsetracker.pot -find ../plugins/contrib/byogames | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o byogames.pot -find ../plugins/contrib/cb_koders | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o cb_koders.pot -find ../plugins/contrib/codesnippets | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o codesnippets.pot -find ../plugins/contrib/codestat | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o codestat.pot -find ../plugins/contrib/copystrings | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o copystrings.pot -find ../plugins/contrib/devpak_plugin | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o devpak_plugin.pot -find ../plugins/contrib/dragscroll | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o dragscroll.pot -find ../plugins/contrib/envvars | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o envvars.pot -find ../plugins/contrib/headerfixup | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o headerfixup.pot -find ../plugins/contrib/help_plugin | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o help_plugin.pot -find ../plugins/contrib/HexEditor | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o hexeditor.pot -find ../plugins/contrib/IncrementalSearch | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o incrementalsearch.pot -find ../plugins/contrib/keybinder | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o keybinder.pot -find ../plugins/contrib/lib_finder | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o lib_finder.pot -find ../plugins/contrib/MouseSap | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o mousesap.pot -find ../plugins/contrib/profiler | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o profiler.pot -find ../plugins/contrib/ProjectOptionsManipulator | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o ProjectOptionsManipulator.pot -find ../plugins/contrib/regex_testbed | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o regex_testbed.pot -find ../plugins/contrib/rndgen | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o rndgen.pot -find ../plugins/contrib/source_exporter | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o source_exporter.pot -find ../plugins/contrib/symtab | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o symtab.pot -find ../plugins/contrib/ThreadSearch | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o threadsearch.pot -find ../plugins/contrib/Valgrind | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o valgrind.pot -find ../plugins/contrib/wxSmith | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o wxsmith.pot -find ../plugins/contrib/wxSmithAui | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o wxsmithaui.pot -find ../plugins/contrib/wxSmithContribItems | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o wxsmithcontribitems.pot - -echo "running msginit" - -for %%i in (de fr it es cs da nl ga hu pl ru sk jp tr) do ( - if not exist %%i cmd /C mkdir %%i - for %%j in (*.pot) do ( - msginit -i %%j -o %%i/%%j -l %%i - ) -) - -goto TheEnd - -:Error -echo Error: At least one required tool was not found. -echo Make sure you have the following tools in the PATH: -echo - grep, xargs, xgettext, msginit -echo They are all part of the GnuWin32 tools (package gettext). -echo Make sure you have adopted the path in this batch file. - -:TheEnd +@echo off +rem Adopt path to required tool here: +set PATH=C:\Programme\Tools\GnuWin32\bin;%PATH% + +set grep_found=0 +set xargs_found=0 +set xgettext_found=0 +set msginit_found=0 + +for %%G in ("%path:;=" "%") do ( + if exist %%G\grep.exe set grep_found=1 + if exist %%G\xargs.exe set xargs_found=1 + if exist %%G\xgettext.exe set xgettext_found=1 + if exist %%G\msginit.exe set msginit_found=1 +) + +if "%grep_found%"=="0" goto Error +if "%xargs_found%"=="0" goto Error +if "%xgettext_found%"=="0" goto Error +if "%msginit_found%"=="0" goto Error + +echo "creating core .pot files" +find ../sdk ../src | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o codeblocks.pot +find ../plugins | grep -v contrib | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o coreplugins.pot + +echo "creating contrib .pot files" +find ../plugins/contrib/AutoVersioning | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o autoversioning.pot +find ../plugins/contrib/BrowseTracker | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o browsetracker.pot +find ../plugins/contrib/byogames | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o byogames.pot +find ../plugins/contrib/codesnippets | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o codesnippets.pot +find ../plugins/contrib/codestat | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o codestat.pot +find ../plugins/contrib/copystrings | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o copystrings.pot +find ../plugins/contrib/devpak_plugin | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o devpak_plugin.pot +find ../plugins/contrib/dragscroll | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o dragscroll.pot +find ../plugins/contrib/envvars | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o envvars.pot +find ../plugins/contrib/headerfixup | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o headerfixup.pot +find ../plugins/contrib/help_plugin | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o help_plugin.pot +find ../plugins/contrib/HexEditor | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o hexeditor.pot +find ../plugins/contrib/IncrementalSearch | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o incrementalsearch.pot +find ../plugins/contrib/keybinder | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o keybinder.pot +find ../plugins/contrib/lib_finder | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o lib_finder.pot +find ../plugins/contrib/MouseSap | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o mousesap.pot +find ../plugins/contrib/profiler | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o profiler.pot +find ../plugins/contrib/ProjectOptionsManipulator | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o ProjectOptionsManipulator.pot +find ../plugins/contrib/regex_testbed | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o regex_testbed.pot +find ../plugins/contrib/rndgen | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o rndgen.pot +find ../plugins/contrib/source_exporter | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o source_exporter.pot +find ../plugins/contrib/symtab | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o symtab.pot +find ../plugins/contrib/ThreadSearch | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o threadsearch.pot +find ../plugins/contrib/Valgrind | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o valgrind.pot +find ../plugins/contrib/wxSmith | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o wxsmith.pot +find ../plugins/contrib/wxSmithAui | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o wxsmithaui.pot +find ../plugins/contrib/wxSmithContribItems | grep -P "(\.cpp|\.h)$" | xargs xgettext --keyword=_ -o wxsmithcontribitems.pot + +echo "running msginit" + +for %%i in (de fr it es cs da nl ga hu pl ru sk jp tr) do ( + if not exist %%i cmd /C mkdir %%i + for %%j in (*.pot) do ( + msginit -i %%j -o %%i/%%j -l %%i + ) +) + +goto TheEnd + +:Error +echo Error: At least one required tool was not found. +echo Make sure you have the following tools in the PATH: +echo - grep, xargs, xgettext, msginit +echo They are all part of the GnuWin32 tools (package gettext). +echo Make sure you have adopted the path in this batch file. + +:TheEnd diff --git a/src/plugins/contrib/Makefile.am b/src/plugins/contrib/Makefile.am index e6d27d18b8..a4763e60a1 100644 --- a/src/plugins/contrib/Makefile.am +++ b/src/plugins/contrib/Makefile.am @@ -10,10 +10,6 @@ if BUILD_BYOGAMES MAYBE_BYOGAMES=byogames appdata endif -if BUILD_CBKODERS -MAYBE_CBKODERS=cb_koders appdata -endif - if BUILD_CODESNIPPETS MAYBE_CODESNIPPETS=codesnippets appdata endif @@ -161,7 +157,6 @@ endif SUBDIRS = $(MAYBE_AUTOVERSIONING) \ $(MAYBE_BROWSETRACKER) \ $(MAYBE_BYOGAMES) \ - $(MAYBE_CBKODERS) \ $(MAYBE_CCCC) \ $(MAYBE_CODESNIPPETS) \ $(MAYBE_CODESTAT) \ @@ -203,7 +198,6 @@ DIST_SUBDIRS = appdata \ AutoVersioning \ BrowseTracker \ byogames \ - cb_koders \ Cccc \ codesnippets \ codestat \ diff --git a/src/plugins/contrib/cb_koders/Makefile.am b/src/plugins/contrib/cb_koders/Makefile.am deleted file mode 100644 index 5f6c49fc1b..0000000000 --- a/src/plugins/contrib/cb_koders/Makefile.am +++ /dev/null @@ -1,27 +0,0 @@ -AM_CPPFLAGS = $(WX_CXXFLAGS) \ - -I$(top_srcdir)/src/include \ - -I$(top_srcdir)/src/sdk/wxscintilla/include - -pluginlibdir = $(pkglibdir)/plugins - -pluginlib_LTLIBRARIES = libcb_koders.la - -libcb_koders_la_LDFLAGS = @MODULE_SHARED_LDFLAGS@ -version-info 0:1:0 -no-undefined -avoid-version - -libcb_koders_la_LIBADD = ../../../sdk/libcodeblocks.la $(WX_LIBS) - -libcb_koders_la_SOURCES = kodersdialog.cpp \ - cb_koders.cpp - -noinst_HEADERS = kodersdialog.h \ - cb_koders.h - -EXTRA_DIST = $(srcdir)/*.cbp \ - wxsmith/KodersDialog.wxs \ - manifest.xml - -pkgdata_DATA = cb_koders.zip -CLEANFILES = $(pkgdata_DATA) - -cb_koders.zip: manifest.xml - PWD=`pwd` cd $(srcdir) && zip $(PWD)/cb_koders.zip manifest.xml > /dev/null diff --git a/src/plugins/contrib/cb_koders/cb_koders-unix.cbp b/src/plugins/contrib/cb_koders/cb_koders-unix.cbp deleted file mode 100644 index c498b345aa..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders-unix.cbp +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/cb_koders/cb_koders.cbp b/src/plugins/contrib/cb_koders/cb_koders.cbp deleted file mode 100644 index 7ffd73f323..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders.cbp +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/cb_koders/cb_koders.cpp b/src/plugins/contrib/cb_koders/cb_koders.cpp deleted file mode 100644 index 9472c8cde8..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "sdk.h" // Code::Blocks SDK -#ifndef CB_PRECOMP - #include - #include - #include - #include // wxLaunchDefaultBrowser - #include "globals.h" - #include "manager.h" - #include "editormanager.h" - #include "cbeditor.h" -#endif -#include "cbstyledtextctrl.h" - -#include "cb_koders.h" -#include "kodersdialog.h" - -// Register the plugin -namespace -{ - PluginRegistrant reg(_T("CB_Koders")); -}; - -const int idSearchKoders = wxNewId(); - -BEGIN_EVENT_TABLE(CB_Koders, cbToolPlugin) - EVT_MENU(idSearchKoders, CB_Koders::OnSearchKoders) -END_EVENT_TABLE() - -// constructor -CB_Koders::CB_Koders() : - TheDialog(0) -{ -} - -// destructor -CB_Koders::~CB_Koders() -{ - if (TheDialog) - TheDialog->Destroy(); -} - -void CB_Koders::OnAttach() -{ - // do whatever initialization you need for your plugin - // NOTE: after this function, the inherited member variable - // m_IsAttached will be TRUE... - // You should check for it in other functions, because if it - // is FALSE, it means that the application did *not* "load" - // (see: does not need) this plugin... -} - -void CB_Koders::OnRelease(bool /*appShutDown*/) -{ - // do de-initialization for your plugin - // if appShutDown is false, the plugin is unloaded because Code::Blocks is being shut down, - // which means you must not use any of the SDK Managers - // NOTE: after this function, the inherited member variable - // m_IsAttached will be FALSE... -} - -int CB_Koders::Execute() -{ - if (IsReady() && TheDialog->ShowModal()==wxID_OK) - { - const wxString search = TheDialog->GetSearch(); - if (search.IsEmpty()) - { - cbMessageBox(_("Cannot search for an empty expression."), _("Error"), wxICON_ERROR); - } - else - { - const wxString language = TheDialog->GetLanguage(); - - wxString query; - if ( language.IsEmpty() ) - { - query.Printf(_("http://code.openhub.net/search?s=%s"), search.c_str()); - } - else - { - query.Printf(_("http://code.openhub.net/search?s=%s&fl=%s"), - search.c_str(), language.c_str()); - } - - if (!wxLaunchDefaultBrowser(query)) - cbMessageBox(_("Could not launch the default browser of your system."), _("Error"), wxICON_ERROR); - } - } - - return 0; -} - -void CB_Koders::BuildModuleMenu(const ModuleType type, wxMenu* menu, const FileTreeData* /*data*/) -{ - if (!menu || !IsAttached()) - return; - - if (type == mtEditorManager) - { - const wxString label = _("Search at BlackDuck..."); - const int position = Manager::Get()->GetPluginManager()->FindSortedMenuItemPosition(*menu, label); - menu->Insert(position, idSearchKoders, label , _("Search keyword at BlackDuck webpage...")); - } -} - -bool CB_Koders::IsReady() -{ - if (!IsAttached()) - return false; - - if (!TheDialog) - TheDialog = new KodersDialog(Manager::Get()->GetAppWindow()); - - if (TheDialog) - return true; - else - cbMessageBox(_("Could not initialise CB_Koders plugin."), _("Error"), wxICON_ERROR); - - return false; -} - -void CB_Koders::OnSearchKoders(wxCommandEvent& /*event*/) -{ - if (IsReady()) - { - wxString search(_T("")); // the word to search for (if any) - cbEditor *ed = Manager::Get()->GetEditorManager()->GetBuiltinActiveEditor(); - - if (ed) - { - // check if there is any text selected - cbStyledTextCtrl *control = ed->GetControl(); - search = control->GetSelectedText(); - - // if no selection, take the word under the cursor - if (search.IsEmpty()) - { - int origPos = control->GetCurrentPos(); - int start = control->WordStartPosition(origPos, true); - int end = control->WordEndPosition(origPos, true); - search = control->GetTextRange(start, end); - } - } - - TheDialog->SetSearch(search); - Execute(); - } -} diff --git a/src/plugins/contrib/cb_koders/cb_koders.h b/src/plugins/contrib/cb_koders/cb_koders.h deleted file mode 100644 index 5d6622e899..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - */ - -#ifndef CB_KODERS_H_INCLUDED -#define CB_KODERS_H_INCLUDED - -#include "cbplugin.h" // for "class cbToolPlugin" - -class KodersDialog; - -class CB_Koders : public cbToolPlugin -{ -public: - /** Constructor. */ - CB_Koders(); - /** Destructor. */ - virtual ~CB_Koders(); - - /** @brief Execute the plugin. - * - * This is the only function needed by a cbToolPlugin. - * This will be called when the user selects the plugin from the "Plugins" - * menu. - */ - virtual int Execute(); - - /** This method is called by Code::Blocks core modules (EditorManager, - * ProjectManager etc) and is used by the plugin to add any menu - * items it needs in the module's popup menu. For example, when - * the user right-clicks on a project file in the project tree, - * ProjectManager prepares a popup menu to display with context - * sensitive options for that file. Before it displays this popup - * menu, it asks all attached plugins (by asking PluginManager to call - * this method), if they need to add any entries - * in that menu. This method is called.\n - * If the plugin does not need to add items in the menu, - * just do nothing ;) - * @param type the module that's preparing a popup menu - * @param menu pointer to the popup menu - * @param data pointer to FileTreeData object (to access/modify the file tree) - */ - void BuildModuleMenu(const ModuleType type, wxMenu* menu, const FileTreeData* data = 0); - -protected: - /** Any descendent plugin should override this virtual method and - * perform any necessary initialization. This method is called by - * Code::Blocks (PluginManager actually) when the plugin has been - * loaded and should attach in Code::Blocks. When Code::Blocks - * starts up, it finds and loads all plugins but does - * not activate (attaches) them. It then activates all plugins - * that the user has selected to be activated on start-up.\n - * This means that a plugin might be loaded but not activated...\n - * Think of this method as the actual constructor... - */ - virtual void OnAttach(); - - /** Any descendent plugin should override this virtual method and - * perform any necessary de-initialization. This method is called by - * Code::Blocks (PluginManager actually) when the plugin has been - * loaded, attached and should de-attach from Code::Blocks.\n - * Think of this method as the actual destructor... - * @param appShutDown If true, the application is shutting down. In this - * case *don't* use Manager::Get()->Get...() functions or the - * behaviour is undefined... - */ - virtual void OnRelease(bool appShutDown); - -private: - bool IsReady(); - void OnSearchKoders(wxCommandEvent& event); - - KodersDialog* TheDialog; - - DECLARE_EVENT_TABLE() -}; - -#endif // CB_KODERS_H_INCLUDED diff --git a/src/plugins/contrib/cb_koders/cb_koders_wx30-unix.cbp b/src/plugins/contrib/cb_koders/cb_koders_wx30-unix.cbp deleted file mode 100644 index d26f049b1b..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders_wx30-unix.cbp +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/cb_koders/cb_koders_wx30.cbp b/src/plugins/contrib/cb_koders/cb_koders_wx30.cbp deleted file mode 100644 index 26b1255f28..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders_wx30.cbp +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/cb_koders/cb_koders_wx30_64.cbp b/src/plugins/contrib/cb_koders/cb_koders_wx30_64.cbp deleted file mode 100644 index 39905ebcd6..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders_wx30_64.cbp +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/cb_koders/cb_koders_wx31.cbp b/src/plugins/contrib/cb_koders/cb_koders_wx31.cbp deleted file mode 100644 index a62666187b..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders_wx31.cbp +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/cb_koders/cb_koders_wx31_64.cbp b/src/plugins/contrib/cb_koders/cb_koders_wx31_64.cbp deleted file mode 100644 index a806088a2d..0000000000 --- a/src/plugins/contrib/cb_koders/cb_koders_wx31_64.cbp +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/cb_koders/kodersdialog.cpp b/src/plugins/contrib/cb_koders/kodersdialog.cpp deleted file mode 100644 index 84b00cb2da..0000000000 --- a/src/plugins/contrib/cb_koders/kodersdialog.cpp +++ /dev/null @@ -1,129 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include -#include "kodersdialog.h" - -//(*InternalHeaders(KodersDialog) -#include -#include -//*) - -//(*IdInit(KodersDialog) -const long KodersDialog::ID_LBL_INTRO = wxNewId(); -const long KodersDialog::ID_TXT_SEARCH = wxNewId(); -const long KodersDialog::ID_BTN_SEARCH = wxNewId(); -const long KodersDialog::ID_LBL_FILTER = wxNewId(); -const long KodersDialog::ID_CHO_LANGUAGES = wxNewId(); -//*) - -BEGIN_EVENT_TABLE(KodersDialog,wxScrollingDialog) - //(*EventTable(KodersDialog) - //*) -END_EVENT_TABLE() - -KodersDialog::KodersDialog(wxWindow* parent,wxWindowID id) -{ - //(*Initialize(KodersDialog) - Create(parent, id, _("BlackDuck query"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE, _T("id")); - bszMain = new wxBoxSizer(wxVERTICAL); - bszIntro = new wxBoxSizer(wxHORIZONTAL); - lblIntro = new wxStaticText(this, ID_LBL_INTRO, _("Specify search to query the BlackDuck webpage:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_LBL_INTRO")); - bszIntro->Add(lblIntro, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - bszMain->Add(bszIntro, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 0); - bszSearch = new wxBoxSizer(wxHORIZONTAL); - txtSearch = new wxTextCtrl(this, ID_TXT_SEARCH, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_TXT_SEARCH")); - txtSearch->SetToolTip(_("Enter keyword to search for (at BlackDuck)")); - bszSearch->Add(txtSearch, 1, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); - btnSearch = new wxButton(this, ID_BTN_SEARCH, _("Search"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BTN_SEARCH")); - btnSearch->SetDefault(); - btnSearch->SetToolTip(_("Click to search at the BlackDuck webpage...")); - bszSearch->Add(btnSearch, 0, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); - bszMain->Add(bszSearch, 0, wxTOP|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - bszFilter = new wxBoxSizer(wxHORIZONTAL); - lblFilter = new wxStaticText(this, ID_LBL_FILTER, _("Filter:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_LBL_FILTER")); - bszFilter->Add(lblFilter, 0, wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); - choLanguages = new wxChoice(this, ID_CHO_LANGUAGES, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_CHO_LANGUAGES")); - choLanguages->Append(_("All Languages")); - choLanguages->Append(_("Ada")); - choLanguages->Append(_("ASP")); - choLanguages->Append(_("Assembler")); - choLanguages->Append(_("C")); - choLanguages->Append(_("C#")); - choLanguages->Append(_("Cpp")); - choLanguages->Append(_("ColdFusion")); - choLanguages->Append(_("Delphi")); - choLanguages->Append(_("Eiffel")); - choLanguages->Append(_("Erlang")); - choLanguages->Append(_("Fortran")); - choLanguages->Append(_("Java")); - choLanguages->Append(_("JavaScript")); - choLanguages->Append(_("JSP")); - choLanguages->Append(_("Lisp")); - choLanguages->Append(_("Lua")); - choLanguages->Append(_("Mathematica")); - choLanguages->Append(_("Matlab")); - choLanguages->Append(_("ObjectiveC")); - choLanguages->Append(_("Perl")); - choLanguages->Append(_("PHP")); - choLanguages->Append(_("Prolog")); - choLanguages->Append(_("Python")); - choLanguages->Append(_("Ruby")); - choLanguages->Append(_("Scheme")); - choLanguages->Append(_("Smalltalk")); - choLanguages->Append(_("SQL")); - choLanguages->Append(_("Tcl")); - choLanguages->Append(_("VB")); - choLanguages->Append(_("VB.NET")); - choLanguages->SetToolTip(_("Limit search to a specific programming language")); - bszFilter->Add(choLanguages, 1, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5); - bszMain->Add(bszFilter, 0, wxTOP|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5); - SetSizer(bszMain); - bszMain->Fit(this); - bszMain->SetSizeHints(this); - Center(); - - Connect(ID_BTN_SEARCH,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&KodersDialog::OnBtnSearchClick); - //*) -} - -KodersDialog::~KodersDialog() -{ -} - -void KodersDialog::SetSearch(const wxString &search) -{ - if (txtSearch) - txtSearch->SetValue(search); -} - -wxString KodersDialog::GetSearch() const -{ - wxString search(_T("")); - - if (txtSearch) - search = txtSearch->GetValue(); - - return search; -} - -wxString KodersDialog::GetLanguage() const -{ - wxString language(_("*")); - - if (choLanguages && (choLanguages->GetStringSelection() != _("All Languages"))) - language = choLanguages->GetStringSelection(); - - return language; -} - -void KodersDialog::OnBtnSearchClick(wxCommandEvent& /*event*/) -{ - EndModal(wxID_OK); -} diff --git a/src/plugins/contrib/cb_koders/kodersdialog.h b/src/plugins/contrib/cb_koders/kodersdialog.h deleted file mode 100644 index e8c021f1b1..0000000000 --- a/src/plugins/contrib/cb_koders/kodersdialog.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - */ - -#ifndef KODERSDIALOG_H -#define KODERSDIALOG_H - -#include - -//(*Headers(KodersDialog) -#include -#include -#include -#include -#include -#include "scrollingdialog.h" -//*) - -class KodersDialog: public wxScrollingDialog -{ - public: - - KodersDialog(wxWindow* parent,wxWindowID id = -1); - virtual ~KodersDialog(); - - void SetSearch(const wxString &search); - wxString GetSearch() const; - wxString GetLanguage() const; - - //(*Identifiers(KodersDialog) - static const long ID_LBL_INTRO; - static const long ID_TXT_SEARCH; - static const long ID_BTN_SEARCH; - static const long ID_LBL_FILTER; - static const long ID_CHO_LANGUAGES; - //*) - - protected: - - //(*Handlers(KodersDialog) - void OnBtnSearchClick(wxCommandEvent& event); - //*) - - //(*Declarations(KodersDialog) - wxBoxSizer* bszFilter; - wxBoxSizer* bszMain; - wxChoice* choLanguages; - wxButton* btnSearch; - wxBoxSizer* bszIntro; - wxTextCtrl* txtSearch; - wxBoxSizer* bszSearch; - wxStaticText* lblFilter; - wxStaticText* lblIntro; - //*) - - private: - - DECLARE_EVENT_TABLE() -}; - -#endif // KODERSDIALOG_H diff --git a/src/plugins/contrib/cb_koders/manifest.xml b/src/plugins/contrib/cb_koders/manifest.xml deleted file mode 100644 index cc76a49b31..0000000000 --- a/src/plugins/contrib/cb_koders/manifest.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/plugins/contrib/cb_koders/wxsmith/KodersDialog.wxs b/src/plugins/contrib/cb_koders/wxsmith/KodersDialog.wxs deleted file mode 100644 index ba3ec2b7b8..0000000000 --- a/src/plugins/contrib/cb_koders/wxsmith/KodersDialog.wxs +++ /dev/null @@ -1,100 +0,0 @@ - - - - BlackDuck query - 1 - - wxVERTICAL - - - - - - - wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL - 5 - - - wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP - - - - - - Enter keyword to search for (at BlackDuck) - - wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL - 5 - - - - - - 1 - Click to search at the BlackDuck webpage... - - - wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL - 5 - - - wxTOP|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL - 5 - - - - - - - - wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL - 5 - - - - - All Languages - Ada - ASP - Assembler - C - C# - Cpp - ColdFusion - Delphi - Eiffel - Erlang - Fortran - Java - JavaScript - JSP - Lisp - Lua - Mathematica - Matlab - ObjectiveC - Perl - PHP - Prolog - Python - Ruby - Scheme - Smalltalk - SQL - Tcl - VB - VB.NET - - Limit search to a specific programming language - - wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL - 5 - - - - wxTOP|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL - 5 - - - - From fce633ca325adb388f1b0193c7101b7071504309 Mon Sep 17 00:00:00 2001 From: Tim Stahlhut Date: Sat, 12 Oct 2019 14:38:02 -0400 Subject: [PATCH 2/6] * devpak_plugin: Delete plugin (Thanks stahta01) --- .../contrib/devpak_plugin/DevPakPlugin.cbp | 176 -- .../devpak_plugin/DevPakPlugin_wx30.cbp | 175 -- .../devpak_plugin/DevPakPlugin_wx30_64.cbp | 175 -- .../devpak_plugin/DevPakPlugin_wx31.cbp | 175 -- .../devpak_plugin/DevPakPlugin_wx31_64.cbp | 176 -- src/plugins/contrib/devpak_plugin/Makefile.am | 21 - .../contrib/devpak_plugin/bzip2/CHANGES | 327 ---- .../contrib/devpak_plugin/bzip2/LICENSE | 42 - .../devpak_plugin/bzip2/Makefile-libbz2_so | 59 - .../contrib/devpak_plugin/bzip2/Makefile.am | 17 - .../devpak_plugin/bzip2/Makefile.original | 217 --- .../contrib/devpak_plugin/bzip2/README | 215 --- .../bzip2/README.COMPILATION.PROBLEMS | 58 - .../devpak_plugin/bzip2/README.CodeBlocks | 12 - .../contrib/devpak_plugin/bzip2/blocksort.c | 1094 ------------ .../contrib/devpak_plugin/bzip2/bzlib.c | 1572 ----------------- .../contrib/devpak_plugin/bzip2/bzlib.h | 282 --- .../devpak_plugin/bzip2/bzlib_private.h | 509 ------ .../contrib/devpak_plugin/bzip2/compress.c | 672 ------- .../contrib/devpak_plugin/bzip2/crctable.c | 104 -- .../contrib/devpak_plugin/bzip2/decompress.c | 646 ------- .../contrib/devpak_plugin/bzip2/huffman.c | 205 --- .../contrib/devpak_plugin/bzip2/makefile.msc | 63 - .../contrib/devpak_plugin/bzip2/randtable.c | 84 - .../contrib/devpak_plugin/cbiniparser.cpp | 204 --- .../contrib/devpak_plugin/cbiniparser.h | 49 - .../contrib/devpak_plugin/cbnetwork.cpp | 198 --- src/plugins/contrib/devpak_plugin/cbnetwork.h | 107 -- src/plugins/contrib/devpak_plugin/conf.cpp | 121 -- src/plugins/contrib/devpak_plugin/conf.h | 39 - src/plugins/contrib/devpak_plugin/crc32.cpp | 131 -- src/plugins/contrib/devpak_plugin/crc32.h | 7 - .../contrib/devpak_plugin/devpakinstaller.cpp | 273 --- .../contrib/devpak_plugin/devpakinstaller.h | 30 - .../contrib/devpak_plugin/devpakupdater.cpp | 104 -- .../contrib/devpak_plugin/devpakupdater.h | 33 - .../contrib/devpak_plugin/manifest.xml | 20 - src/plugins/contrib/devpak_plugin/mytar.cpp | 293 --- src/plugins/contrib/devpak_plugin/mytar.h | 91 - src/plugins/contrib/devpak_plugin/update.xrc | 171 -- .../contrib/devpak_plugin/updatedlg.cpp | 742 -------- src/plugins/contrib/devpak_plugin/updatedlg.h | 74 - 42 files changed, 9763 deletions(-) delete mode 100644 src/plugins/contrib/devpak_plugin/DevPakPlugin.cbp delete mode 100644 src/plugins/contrib/devpak_plugin/DevPakPlugin_wx30.cbp delete mode 100644 src/plugins/contrib/devpak_plugin/DevPakPlugin_wx30_64.cbp delete mode 100644 src/plugins/contrib/devpak_plugin/DevPakPlugin_wx31.cbp delete mode 100644 src/plugins/contrib/devpak_plugin/DevPakPlugin_wx31_64.cbp delete mode 100644 src/plugins/contrib/devpak_plugin/Makefile.am delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/CHANGES delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/LICENSE delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/Makefile-libbz2_so delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/Makefile.am delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/Makefile.original delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/README delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/README.COMPILATION.PROBLEMS delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/README.CodeBlocks delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/blocksort.c delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/bzlib.c delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/bzlib.h delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/bzlib_private.h delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/compress.c delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/crctable.c delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/decompress.c delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/huffman.c delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/makefile.msc delete mode 100644 src/plugins/contrib/devpak_plugin/bzip2/randtable.c delete mode 100644 src/plugins/contrib/devpak_plugin/cbiniparser.cpp delete mode 100644 src/plugins/contrib/devpak_plugin/cbiniparser.h delete mode 100644 src/plugins/contrib/devpak_plugin/cbnetwork.cpp delete mode 100644 src/plugins/contrib/devpak_plugin/cbnetwork.h delete mode 100644 src/plugins/contrib/devpak_plugin/conf.cpp delete mode 100644 src/plugins/contrib/devpak_plugin/conf.h delete mode 100644 src/plugins/contrib/devpak_plugin/crc32.cpp delete mode 100644 src/plugins/contrib/devpak_plugin/crc32.h delete mode 100644 src/plugins/contrib/devpak_plugin/devpakinstaller.cpp delete mode 100644 src/plugins/contrib/devpak_plugin/devpakinstaller.h delete mode 100644 src/plugins/contrib/devpak_plugin/devpakupdater.cpp delete mode 100644 src/plugins/contrib/devpak_plugin/devpakupdater.h delete mode 100644 src/plugins/contrib/devpak_plugin/manifest.xml delete mode 100644 src/plugins/contrib/devpak_plugin/mytar.cpp delete mode 100644 src/plugins/contrib/devpak_plugin/mytar.h delete mode 100644 src/plugins/contrib/devpak_plugin/update.xrc delete mode 100644 src/plugins/contrib/devpak_plugin/updatedlg.cpp delete mode 100644 src/plugins/contrib/devpak_plugin/updatedlg.h diff --git a/src/plugins/contrib/devpak_plugin/DevPakPlugin.cbp b/src/plugins/contrib/devpak_plugin/DevPakPlugin.cbp deleted file mode 100644 index 733c3f7f07..0000000000 --- a/src/plugins/contrib/devpak_plugin/DevPakPlugin.cbp +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx30.cbp b/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx30.cbp deleted file mode 100644 index f7ee15b1d9..0000000000 --- a/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx30.cbp +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx30_64.cbp b/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx30_64.cbp deleted file mode 100644 index 88608ac72f..0000000000 --- a/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx30_64.cbp +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx31.cbp b/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx31.cbp deleted file mode 100644 index 311093f6f5..0000000000 --- a/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx31.cbp +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx31_64.cbp b/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx31_64.cbp deleted file mode 100644 index d596391353..0000000000 --- a/src/plugins/contrib/devpak_plugin/DevPakPlugin_wx31_64.cbp +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/devpak_plugin/Makefile.am b/src/plugins/contrib/devpak_plugin/Makefile.am deleted file mode 100644 index e4c43b6f1d..0000000000 --- a/src/plugins/contrib/devpak_plugin/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -SUBDIRS = bzip2 - -EXTRA_DIST = cbiniparser.cpp \ - cbnetwork.cpp \ - conf.cpp \ - crc32.cpp \ - devpakinstaller.cpp \ - devpakupdater.cpp \ - mytar.cpp \ - updatedlg.cpp \ - cbiniparser.h \ - cbnetwork.h \ - conf.h \ - crc32.h \ - devpakinstaller.h \ - devpakupdater.h \ - mytar.h \ - updatedlg.h \ - $(srcdir)/*.cbp \ - manifest.xml \ - update.xrc diff --git a/src/plugins/contrib/devpak_plugin/bzip2/CHANGES b/src/plugins/contrib/devpak_plugin/bzip2/CHANGES deleted file mode 100644 index a8c76dc502..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/CHANGES +++ /dev/null @@ -1,327 +0,0 @@ - ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ - - -0.9.0 -~~~~~ -First version. - - -0.9.0a -~~~~~~ -Removed 'ranlib' from Makefile, since most modern Unix-es -don't need it, or even know about it. - - -0.9.0b -~~~~~~ -Fixed a problem with error reporting in bzip2.c. This does not effect -the library in any way. Problem is: versions 0.9.0 and 0.9.0a (of the -program proper) compress and decompress correctly, but give misleading -error messages (internal panics) when an I/O error occurs, instead of -reporting the problem correctly. This shouldn't give any data loss -(as far as I can see), but is confusing. - -Made the inline declarations disappear for non-GCC compilers. - - -0.9.0c -~~~~~~ -Fixed some problems in the library pertaining to some boundary cases. -This makes the library behave more correctly in those situations. The -fixes apply only to features (calls and parameters) not used by -bzip2.c, so the non-fixedness of them in previous versions has no -effect on reliability of bzip2.c. - -In bzlib.c: - * made zero-length BZ_FLUSH work correctly in bzCompress(). - * fixed bzWrite/bzRead to ignore zero-length requests. - * fixed bzread to correctly handle read requests after EOF. - * wrong parameter order in call to bzDecompressInit in - bzBuffToBuffDecompress. Fixed. - -In compress.c: - * changed setting of nGroups in sendMTFValues() so as to - do a bit better on small files. This _does_ effect - bzip2.c. - - -0.9.5a -~~~~~~ -Major change: add a fallback sorting algorithm (blocksort.c) -to give reasonable behaviour even for very repetitive inputs. -Nuked --repetitive-best and --repetitive-fast since they are -no longer useful. - -Minor changes: mostly a whole bunch of small changes/ -bugfixes in the driver (bzip2.c). Changes pertaining to the -user interface are: - - allow decompression of symlink'd files to stdout - decompress/test files even without .bz2 extension - give more accurate error messages for I/O errors - when compressing/decompressing to stdout, don't catch control-C - read flags from BZIP2 and BZIP environment variables - decline to break hard links to a file unless forced with -f - allow -c flag even with no filenames - preserve file ownerships as far as possible - make -s -1 give the expected block size (100k) - add a flag -q --quiet to suppress nonessential warnings - stop decoding flags after --, so files beginning in - can be handled - resolved inconsistent naming: bzcat or bz2cat ? - bzip2 --help now returns 0 - -Programming-level changes are: - - fixed syntax error in GET_LL4 for Borland C++ 5.02 - let bzBuffToBuffDecompress return BZ_DATA_ERROR{_MAGIC} - fix overshoot of mode-string end in bzopen_or_bzdopen - wrapped bzlib.h in #ifdef __cplusplus ... extern "C" { ... } - close file handles under all error conditions - added minor mods so it compiles with DJGPP out of the box - fixed Makefile so it doesn't give problems with BSD make - fix uninitialised memory reads in dlltest.c - -0.9.5b -~~~~~~ -Open stdin/stdout in binary mode for DJGPP. - -0.9.5c -~~~~~~ -Changed BZ_N_OVERSHOOT to be ... + 2 instead of ... + 1. The + 1 -version could cause the sorted order to be wrong in some extremely -obscure cases. Also changed setting of quadrant in blocksort.c. - -0.9.5d -~~~~~~ -The only functional change is to make bzlibVersion() in the library -return the correct string. This has no effect whatsoever on the -functioning of the bzip2 program or library. Added a couple of casts -so the library compiles without warnings at level 3 in MS Visual -Studio 6.0. Included a Y2K statement in the file Y2K_INFO. All other -changes are minor documentation changes. - -1.0 -~~~ -Several minor bugfixes and enhancements: - -* Large file support. The library uses 64-bit counters to - count the volume of data passing through it. bzip2.c - is now compiled with -D_FILE_OFFSET_BITS=64 to get large - file support from the C library. -v correctly prints out - file sizes greater than 4 gigabytes. All these changes have - been made without assuming a 64-bit platform or a C compiler - which supports 64-bit ints, so, except for the C library - aspect, they are fully portable. - -* Decompression robustness. The library/program should be - robust to any corruption of compressed data, detecting and - handling _all_ corruption, instead of merely relying on - the CRCs. What this means is that the program should - never crash, given corrupted data, and the library should - always return BZ_DATA_ERROR. - -* Fixed an obscure race-condition bug only ever observed on - Solaris, in which, if you were very unlucky and issued - control-C at exactly the wrong time, both input and output - files would be deleted. - -* Don't run out of file handles on test/decompression when - large numbers of files have invalid magic numbers. - -* Avoid library namespace pollution. Prefix all exported - symbols with BZ2_. - -* Minor sorting enhancements from my DCC2000 paper. - -* Advance the version number to 1.0, so as to counteract the - (false-in-this-case) impression some people have that programs - with version numbers less than 1.0 are in some way, experimental, - pre-release versions. - -* Create an initial Makefile-libbz2_so to build a shared library. - Yes, I know I should really use libtool et al ... - -* Make the program exit with 2 instead of 0 when decompression - fails due to a bad magic number (ie, an invalid bzip2 header). - Also exit with 1 (as the manual claims :-) whenever a diagnostic - message would have been printed AND the corresponding operation - is aborted, for example - bzip2: Output file xx already exists. - When a diagnostic message is printed but the operation is not - aborted, for example - bzip2: Can't guess original name for wurble -- using wurble.out - then the exit value 0 is returned, unless some other problem is - also detected. - - I think it corresponds more closely to what the manual claims now. - - -1.0.1 -~~~~~ -* Modified dlltest.c so it uses the new BZ2_ naming scheme. -* Modified makefile-msc to fix minor build probs on Win2k. -* Updated README.COMPILATION.PROBLEMS. - -There are no functionality changes or bug fixes relative to version -1.0.0. This is just a documentation update + a fix for minor Win32 -build problems. For almost everyone, upgrading from 1.0.0 to 1.0.1 is -utterly pointless. Don't bother. - - -1.0.2 -~~~~~ -A bug fix release, addressing various minor issues which have appeared -in the 18 or so months since 1.0.1 was released. Most of the fixes -are to do with file-handling or documentation bugs. To the best of my -knowledge, there have been no data-loss-causing bugs reported in the -compression/decompression engine of 1.0.0 or 1.0.1. - -Note that this release does not improve the rather crude build system -for Unix platforms. The general plan here is to autoconfiscate/ -libtoolise 1.0.2 soon after release, and release the result as 1.1.0 -or perhaps 1.2.0. That, however, is still just a plan at this point. - -Here are the changes in 1.0.2. Bug-reporters and/or patch-senders in -parentheses. - -* Fix an infinite segfault loop in 1.0.1 when a directory is - encountered in -f (force) mode. - (Trond Eivind Glomsrod, Nicholas Nethercote, Volker Schmidt) - -* Avoid double fclose() of output file on certain I/O error paths. - (Solar Designer) - -* Don't fail with internal error 1007 when fed a long stream (> 48MB) - of byte 251. Also print useful message suggesting that 1007s may be - caused by bad memory. - (noticed by Juan Pedro Vallejo, fixed by me) - -* Fix uninitialised variable silly bug in demo prog dlltest.c. - (Jorj Bauer) - -* Remove 512-MB limitation on recovered file size for bzip2recover - on selected platforms which support 64-bit ints. At the moment - all GCC supported platforms, and Win32. - (me, Alson van der Meulen) - -* Hard-code header byte values, to give correct operation on platforms - using EBCDIC as their native character set (IBM's OS/390). - (Leland Lucius) - -* Copy file access times correctly. - (Marty Leisner) - -* Add distclean and check targets to Makefile. - (Michael Carmack) - -* Parameterise use of ar and ranlib in Makefile. Also add $(LDFLAGS). - (Rich Ireland, Bo Thorsen) - -* Pass -p (create parent dirs as needed) to mkdir during make install. - (Jeremy Fusco) - -* Dereference symlinks when copying file permissions in -f mode. - (Volker Schmidt) - -* Majorly simplify implementation of uInt64_qrm10. - (Bo Lindbergh) - -* Check the input file still exists before deleting the output one, - when aborting in cleanUpAndFail(). - (Joerg Prante, Robert Linden, Matthias Krings) - -Also a bunch of patches courtesy of Philippe Troin, the Debian maintainer -of bzip2: - -* Wrapper scripts (with manpages): bzdiff, bzgrep, bzmore. - -* Spelling changes and minor enhancements in bzip2.1. - -* Avoid race condition between creating the output file and setting its - interim permissions safely, by using fopen_output_safely(). - No changes to bzip2recover since there is no issue with file - permissions there. - -* do not print senseless report with -v when compressing an empty - file. - -* bzcat -f works on non-bzip2 files. - -* do not try to escape shell meta-characters on unix (the shell takes - care of these). - -* added --fast and --best aliases for -1 -9 for gzip compatibility. - - -1.0.3 (15 Feb 05) -~~~~~~~~~~~~~~~~~ -Fixes some minor bugs since the last version, 1.0.2. - -* Further robustification against corrupted compressed data. - There are currently no known bitstreams which can cause the - decompressor to crash, loop or access memory which does not - belong to it. If you are using bzip2 or the library to - decompress bitstreams from untrusted sources, an upgrade - to 1.0.3 is recommended. This fixes CAN-2005-1260. - -* The documentation has been converted to XML, from which html - and pdf can be derived. - -* Various minor bugs in the documentation have been fixed. - -* Fixes for various compilation warnings with newer versions of - gcc, and on 64-bit platforms. - -* The BZ_NO_STDIO cpp symbol was not properly observed in 1.0.2. - This has been fixed. - - -1.0.4 (20 Dec 06) -~~~~~~~~~~~~~~~~~ -Fixes some minor bugs since the last version, 1.0.3. - -* Fix file permissions race problem (CAN-2005-0953). - -* Avoid possible segfault in BZ2_bzclose. From Coverity's NetBSD - scan. - -* 'const'/prototype cleanups in the C code. - -* Change default install location to /usr/local, and handle multiple - 'make install's without error. - -* Sanitise file names more carefully in bzgrep. Fixes CAN-2005-0758 - to the extent that applies to bzgrep. - -* Use 'mktemp' rather than 'tempfile' in bzdiff. - -* Tighten up a couple of assertions in blocksort.c following automated - analysis. - -* Fix minor doc/comment bugs. - - -1.0.5 (10 Dec 07) -~~~~~~~~~~~~~~~~~ -Security fix only. Fixes CERT-FI 20469 as it applies to bzip2. - - -1.0.6 (6 Sept 10) -~~~~~~~~~~~~~~~~~ - -* Security fix for CVE-2010-0405. This was reported by Mikolaj - Izdebski. - -* Make the documentation build on Ubuntu 10.04 diff --git a/src/plugins/contrib/devpak_plugin/bzip2/LICENSE b/src/plugins/contrib/devpak_plugin/bzip2/LICENSE deleted file mode 100644 index ab55fc4b13..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/LICENSE +++ /dev/null @@ -1,42 +0,0 @@ - --------------------------------------------------------------------------- - -This program, "bzip2", the associated library "libbzip2", and all -documentation, are copyright (C) 1996-2010 Julian R Seward. All -rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -2. The origin of this software must not be misrepresented; you must - not claim that you wrote the original software. If you use this - software in a product, an acknowledgment in the product - documentation would be appreciated but is not required. - -3. Altered source versions must be plainly marked as such, and must - not be misrepresented as being the original software. - -4. The name of the author may not be used to endorse or promote - products derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS -OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE -GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -Julian Seward, jseward@bzip.org -bzip2/libbzip2 version 1.0.6 of 6 September 2010 - --------------------------------------------------------------------------- diff --git a/src/plugins/contrib/devpak_plugin/bzip2/Makefile-libbz2_so b/src/plugins/contrib/devpak_plugin/bzip2/Makefile-libbz2_so deleted file mode 100644 index 491d1961f0..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/Makefile-libbz2_so +++ /dev/null @@ -1,59 +0,0 @@ - -# This Makefile builds a shared version of the library, -# libbz2.so.1.0.6, with soname libbz2.so.1.0, -# at least on x86-Linux (RedHat 7.2), -# with gcc-2.96 20000731 (Red Hat Linux 7.1 2.96-98). -# Please see the README file for some important info -# about building the library like this. - -# ------------------------------------------------------------------ -# This file is part of bzip2/libbzip2, a program and library for -# lossless, block-sorting data compression. -# -# bzip2/libbzip2 version 1.0.6 of 6 September 2010 -# Copyright (C) 1996-2010 Julian Seward -# -# Please read the WARNING, DISCLAIMER and PATENTS sections in the -# README file. -# -# This program is released under the terms of the license contained -# in the file LICENSE. -# ------------------------------------------------------------------ - - -SHELL=/bin/sh -CC=gcc -BIGFILES=-D_FILE_OFFSET_BITS=64 -CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES) - -OBJS= blocksort.o \ - huffman.o \ - crctable.o \ - randtable.o \ - compress.o \ - decompress.o \ - bzlib.o - -all: $(OBJS) - $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS) - $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6 - rm -f libbz2.so.1.0 - ln -s libbz2.so.1.0.6 libbz2.so.1.0 - -clean: - rm -f $(OBJS) bzip2.o libbz2.so.1.0.6 libbz2.so.1.0 bzip2-shared - -blocksort.o: blocksort.c - $(CC) $(CFLAGS) -c blocksort.c -huffman.o: huffman.c - $(CC) $(CFLAGS) -c huffman.c -crctable.o: crctable.c - $(CC) $(CFLAGS) -c crctable.c -randtable.o: randtable.c - $(CC) $(CFLAGS) -c randtable.c -compress.o: compress.c - $(CC) $(CFLAGS) -c compress.c -decompress.o: decompress.c - $(CC) $(CFLAGS) -c decompress.c -bzlib.o: bzlib.c - $(CC) $(CFLAGS) -c bzlib.c diff --git a/src/plugins/contrib/devpak_plugin/bzip2/Makefile.am b/src/plugins/contrib/devpak_plugin/bzip2/Makefile.am deleted file mode 100644 index 268861c1b7..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -EXTRA_DIST = blocksort.c \ - bzlib.c \ - compress.c \ - crctable.c \ - decompress.c \ - huffman.c \ - randtable.c \ - bzlib.h \ - bzlib_private.h \ - Makefile.original \ - Makefile-libbz2_so \ - makefile.msc \ - CHANGES \ - LICENSE \ - README \ - README.CodeBlocks \ - README.COMPILATION.PROBLEMS diff --git a/src/plugins/contrib/devpak_plugin/bzip2/Makefile.original b/src/plugins/contrib/devpak_plugin/bzip2/Makefile.original deleted file mode 100644 index eb09753ce1..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/Makefile.original +++ /dev/null @@ -1,217 +0,0 @@ -# ------------------------------------------------------------------ -# This file is part of bzip2/libbzip2, a program and library for -# lossless, block-sorting data compression. -# -# bzip2/libbzip2 version 1.0.5 of 10 December 2007 -# Copyright (C) 1996-2007 Julian Seward -# -# Please read the WARNING, DISCLAIMER and PATENTS sections in the -# README file. -# -# This program is released under the terms of the license contained -# in the file LICENSE. -# ------------------------------------------------------------------ - -SHELL=/bin/sh - -# To assist in cross-compiling -CC=gcc -AR=ar -RANLIB=ranlib -LDFLAGS= - -BIGFILES=-D_FILE_OFFSET_BITS=64 -CFLAGS=-Wall -Winline -O2 -g $(BIGFILES) - -# Where you want it installed when you do 'make install' -PREFIX=/usr/local - - -OBJS= blocksort.o \ - huffman.o \ - crctable.o \ - randtable.o \ - compress.o \ - decompress.o \ - bzlib.o - -all: libbz2.a bzip2 bzip2recover test - -bzip2: libbz2.a bzip2.o - $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2 bzip2.o -L. -lbz2 - -bzip2recover: bzip2recover.o - $(CC) $(CFLAGS) $(LDFLAGS) -o bzip2recover bzip2recover.o - -libbz2.a: $(OBJS) - rm -f libbz2.a - $(AR) cq libbz2.a $(OBJS) - @if ( test -f $(RANLIB) -o -f /usr/bin/ranlib -o \ - -f /bin/ranlib -o -f /usr/ccs/bin/ranlib ) ; then \ - echo $(RANLIB) libbz2.a ; \ - $(RANLIB) libbz2.a ; \ - fi - -check: test -test: bzip2 - @cat words1 - ./bzip2 -1 < sample1.ref > sample1.rb2 - ./bzip2 -2 < sample2.ref > sample2.rb2 - ./bzip2 -3 < sample3.ref > sample3.rb2 - ./bzip2 -d < sample1.bz2 > sample1.tst - ./bzip2 -d < sample2.bz2 > sample2.tst - ./bzip2 -ds < sample3.bz2 > sample3.tst - cmp sample1.bz2 sample1.rb2 - cmp sample2.bz2 sample2.rb2 - cmp sample3.bz2 sample3.rb2 - cmp sample1.tst sample1.ref - cmp sample2.tst sample2.ref - cmp sample3.tst sample3.ref - @cat words3 - -install: bzip2 bzip2recover - if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi - if ( test ! -d $(PREFIX)/lib ) ; then mkdir -p $(PREFIX)/lib ; fi - if ( test ! -d $(PREFIX)/man ) ; then mkdir -p $(PREFIX)/man ; fi - if ( test ! -d $(PREFIX)/man/man1 ) ; then mkdir -p $(PREFIX)/man/man1 ; fi - if ( test ! -d $(PREFIX)/include ) ; then mkdir -p $(PREFIX)/include ; fi - cp -f bzip2 $(PREFIX)/bin/bzip2 - cp -f bzip2 $(PREFIX)/bin/bunzip2 - cp -f bzip2 $(PREFIX)/bin/bzcat - cp -f bzip2recover $(PREFIX)/bin/bzip2recover - chmod a+x $(PREFIX)/bin/bzip2 - chmod a+x $(PREFIX)/bin/bunzip2 - chmod a+x $(PREFIX)/bin/bzcat - chmod a+x $(PREFIX)/bin/bzip2recover - cp -f bzip2.1 $(PREFIX)/man/man1 - chmod a+r $(PREFIX)/man/man1/bzip2.1 - cp -f bzlib.h $(PREFIX)/include - chmod a+r $(PREFIX)/include/bzlib.h - cp -f libbz2.a $(PREFIX)/lib - chmod a+r $(PREFIX)/lib/libbz2.a - cp -f bzgrep $(PREFIX)/bin/bzgrep - ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzegrep - ln -s -f $(PREFIX)/bin/bzgrep $(PREFIX)/bin/bzfgrep - chmod a+x $(PREFIX)/bin/bzgrep - cp -f bzmore $(PREFIX)/bin/bzmore - ln -s -f $(PREFIX)/bin/bzmore $(PREFIX)/bin/bzless - chmod a+x $(PREFIX)/bin/bzmore - cp -f bzdiff $(PREFIX)/bin/bzdiff - ln -s -f $(PREFIX)/bin/bzdiff $(PREFIX)/bin/bzcmp - chmod a+x $(PREFIX)/bin/bzdiff - cp -f bzgrep.1 bzmore.1 bzdiff.1 $(PREFIX)/man/man1 - chmod a+r $(PREFIX)/man/man1/bzgrep.1 - chmod a+r $(PREFIX)/man/man1/bzmore.1 - chmod a+r $(PREFIX)/man/man1/bzdiff.1 - echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzegrep.1 - echo ".so man1/bzgrep.1" > $(PREFIX)/man/man1/bzfgrep.1 - echo ".so man1/bzmore.1" > $(PREFIX)/man/man1/bzless.1 - echo ".so man1/bzdiff.1" > $(PREFIX)/man/man1/bzcmp.1 - -clean: - rm -f *.o libbz2.a bzip2 bzip2recover \ - sample1.rb2 sample2.rb2 sample3.rb2 \ - sample1.tst sample2.tst sample3.tst - -blocksort.o: blocksort.c - @cat words0 - $(CC) $(CFLAGS) -c blocksort.c -huffman.o: huffman.c - $(CC) $(CFLAGS) -c huffman.c -crctable.o: crctable.c - $(CC) $(CFLAGS) -c crctable.c -randtable.o: randtable.c - $(CC) $(CFLAGS) -c randtable.c -compress.o: compress.c - $(CC) $(CFLAGS) -c compress.c -decompress.o: decompress.c - $(CC) $(CFLAGS) -c decompress.c -bzlib.o: bzlib.c - $(CC) $(CFLAGS) -c bzlib.c -bzip2.o: bzip2.c - $(CC) $(CFLAGS) -c bzip2.c -bzip2recover.o: bzip2recover.c - $(CC) $(CFLAGS) -c bzip2recover.c - - -distclean: clean - rm -f manual.ps manual.html manual.pdf - -DISTNAME=bzip2-1.0.5 -dist: check manual - rm -f $(DISTNAME) - ln -s -f . $(DISTNAME) - tar cvf $(DISTNAME).tar \ - $(DISTNAME)/blocksort.c \ - $(DISTNAME)/huffman.c \ - $(DISTNAME)/crctable.c \ - $(DISTNAME)/randtable.c \ - $(DISTNAME)/compress.c \ - $(DISTNAME)/decompress.c \ - $(DISTNAME)/bzlib.c \ - $(DISTNAME)/bzip2.c \ - $(DISTNAME)/bzip2recover.c \ - $(DISTNAME)/bzlib.h \ - $(DISTNAME)/bzlib_private.h \ - $(DISTNAME)/Makefile \ - $(DISTNAME)/LICENSE \ - $(DISTNAME)/bzip2.1 \ - $(DISTNAME)/bzip2.1.preformatted \ - $(DISTNAME)/bzip2.txt \ - $(DISTNAME)/words0 \ - $(DISTNAME)/words1 \ - $(DISTNAME)/words2 \ - $(DISTNAME)/words3 \ - $(DISTNAME)/sample1.ref \ - $(DISTNAME)/sample2.ref \ - $(DISTNAME)/sample3.ref \ - $(DISTNAME)/sample1.bz2 \ - $(DISTNAME)/sample2.bz2 \ - $(DISTNAME)/sample3.bz2 \ - $(DISTNAME)/dlltest.c \ - $(DISTNAME)/manual.html \ - $(DISTNAME)/manual.pdf \ - $(DISTNAME)/manual.ps \ - $(DISTNAME)/README \ - $(DISTNAME)/README.COMPILATION.PROBLEMS \ - $(DISTNAME)/README.XML.STUFF \ - $(DISTNAME)/CHANGES \ - $(DISTNAME)/libbz2.def \ - $(DISTNAME)/libbz2.dsp \ - $(DISTNAME)/dlltest.dsp \ - $(DISTNAME)/makefile.msc \ - $(DISTNAME)/unzcrash.c \ - $(DISTNAME)/spewG.c \ - $(DISTNAME)/mk251.c \ - $(DISTNAME)/bzdiff \ - $(DISTNAME)/bzdiff.1 \ - $(DISTNAME)/bzmore \ - $(DISTNAME)/bzmore.1 \ - $(DISTNAME)/bzgrep \ - $(DISTNAME)/bzgrep.1 \ - $(DISTNAME)/Makefile-libbz2_so \ - $(DISTNAME)/bz-common.xsl \ - $(DISTNAME)/bz-fo.xsl \ - $(DISTNAME)/bz-html.xsl \ - $(DISTNAME)/bzip.css \ - $(DISTNAME)/entities.xml \ - $(DISTNAME)/manual.xml \ - $(DISTNAME)/format.pl \ - $(DISTNAME)/xmlproc.sh - gzip -v $(DISTNAME).tar - -# For rebuilding the manual from sources on my SuSE 9.1 box - -MANUAL_SRCS= bz-common.xsl bz-fo.xsl bz-html.xsl bzip.css \ - entities.xml manual.xml - -manual: manual.html manual.ps manual.pdf - -manual.ps: $(MANUAL_SRCS) - ./xmlproc.sh -ps manual.xml - -manual.pdf: $(MANUAL_SRCS) - ./xmlproc.sh -pdf manual.xml - -manual.html: $(MANUAL_SRCS) - ./xmlproc.sh -html manual.xml diff --git a/src/plugins/contrib/devpak_plugin/bzip2/README b/src/plugins/contrib/devpak_plugin/bzip2/README deleted file mode 100644 index 179f989f5c..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/README +++ /dev/null @@ -1,215 +0,0 @@ - -This is the README for bzip2/libzip2. -This version is fully compatible with the previous public releases. - ------------------------------------------------------------------- -This file is part of bzip2/libbzip2, a program and library for -lossless, block-sorting data compression. - -bzip2/libbzip2 version 1.0.6 of 6 September 2010 -Copyright (C) 1996-2010 Julian Seward - -Please read the WARNING, DISCLAIMER and PATENTS sections in this file. - -This program is released under the terms of the license contained -in the file LICENSE. ------------------------------------------------------------------- - -Complete documentation is available in Postscript form (manual.ps), -PDF (manual.pdf) or html (manual.html). A plain-text version of the -manual page is available as bzip2.txt. - - -HOW TO BUILD -- UNIX - -Type 'make'. This builds the library libbz2.a and then the programs -bzip2 and bzip2recover. Six self-tests are run. If the self-tests -complete ok, carry on to installation: - -To install in /usr/local/bin, /usr/local/lib, /usr/local/man and -/usr/local/include, type - - make install - -To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type - - make install PREFIX=/xxx/yyy - -If you are (justifiably) paranoid and want to see what 'make install' -is going to do, you can first do - - make -n install or - make -n install PREFIX=/xxx/yyy respectively. - -The -n instructs make to show the commands it would execute, but not -actually execute them. - - -HOW TO BUILD -- UNIX, shared library libbz2.so. - -Do 'make -f Makefile-libbz2_so'. This Makefile seems to work for -Linux-ELF (RedHat 7.2 on an x86 box), with gcc. I make no claims -that it works for any other platform, though I suspect it probably -will work for most platforms employing both ELF and gcc. - -bzip2-shared, a client of the shared library, is also built, but not -self-tested. So I suggest you also build using the normal Makefile, -since that conducts a self-test. A second reason to prefer the -version statically linked to the library is that, on x86 platforms, -building shared objects makes a valuable register (%ebx) unavailable -to gcc, resulting in a slowdown of 10%-20%, at least for bzip2. - -Important note for people upgrading .so's from 0.9.0/0.9.5 to version -1.0.X. All the functions in the library have been renamed, from (eg) -bzCompress to BZ2_bzCompress, to avoid namespace pollution. -Unfortunately this means that the libbz2.so created by -Makefile-libbz2_so will not work with any program which used an older -version of the library. I do encourage library clients to make the -effort to upgrade to use version 1.0, since it is both faster and more -robust than previous versions. - - -HOW TO BUILD -- Windows 95, NT, DOS, Mac, etc. - -It's difficult for me to support compilation on all these platforms. -My approach is to collect binaries for these platforms, and put them -on the master web site (http://www.bzip.org). Look there. However -(FWIW), bzip2-1.0.X is very standard ANSI C and should compile -unmodified with MS Visual C. If you have difficulties building, you -might want to read README.COMPILATION.PROBLEMS. - -At least using MS Visual C++ 6, you can build from the unmodified -sources by issuing, in a command shell: - - nmake -f makefile.msc - -(you may need to first run the MSVC-provided script VCVARS32.BAT - so as to set up paths to the MSVC tools correctly). - - -VALIDATION - -Correct operation, in the sense that a compressed file can always be -decompressed to reproduce the original, is obviously of paramount -importance. To validate bzip2, I used a modified version of Mark -Nelson's churn program. Churn is an automated test driver which -recursively traverses a directory structure, using bzip2 to compress -and then decompress each file it encounters, and checking that the -decompressed data is the same as the original. - - - -Please read and be aware of the following: - -WARNING: - - This program and library (attempts to) compress data by - performing several non-trivial transformations on it. - Unless you are 100% familiar with *all* the algorithms - contained herein, and with the consequences of modifying them, - you should NOT meddle with the compression or decompression - machinery. Incorrect changes can and very likely *will* - lead to disastrous loss of data. - - -DISCLAIMER: - - I TAKE NO RESPONSIBILITY FOR ANY LOSS OF DATA ARISING FROM THE - USE OF THIS PROGRAM/LIBRARY, HOWSOEVER CAUSED. - - Every compression of a file implies an assumption that the - compressed file can be decompressed to reproduce the original. - Great efforts in design, coding and testing have been made to - ensure that this program works correctly. However, the complexity - of the algorithms, and, in particular, the presence of various - special cases in the code which occur with very low but non-zero - probability make it impossible to rule out the possibility of bugs - remaining in the program. DO NOT COMPRESS ANY DATA WITH THIS - PROGRAM UNLESS YOU ARE PREPARED TO ACCEPT THE POSSIBILITY, HOWEVER - SMALL, THAT THE DATA WILL NOT BE RECOVERABLE. - - That is not to say this program is inherently unreliable. - Indeed, I very much hope the opposite is true. bzip2/libbzip2 - has been carefully constructed and extensively tested. - - -PATENTS: - - To the best of my knowledge, bzip2/libbzip2 does not use any - patented algorithms. However, I do not have the resources - to carry out a patent search. Therefore I cannot give any - guarantee of the above statement. - - - -WHAT'S NEW IN 0.9.0 (as compared to 0.1pl2) ? - - * Approx 10% faster compression, 30% faster decompression - * -t (test mode) is a lot quicker - * Can decompress concatenated compressed files - * Programming interface, so programs can directly read/write .bz2 files - * Less restrictive (BSD-style) licensing - * Flag handling more compatible with GNU gzip - * Much more documentation, i.e., a proper user manual - * Hopefully, improved portability (at least of the library) - -WHAT'S NEW IN 0.9.5 ? - - * Compression speed is much less sensitive to the input - data than in previous versions. Specifically, the very - slow performance caused by repetitive data is fixed. - * Many small improvements in file and flag handling. - * A Y2K statement. - -WHAT'S NEW IN 1.0.0 ? - - See the CHANGES file. - -WHAT'S NEW IN 1.0.2 ? - - See the CHANGES file. - -WHAT'S NEW IN 1.0.3 ? - - See the CHANGES file. - -WHAT'S NEW IN 1.0.4 ? - - See the CHANGES file. - -WHAT'S NEW IN 1.0.5 ? - - See the CHANGES file. - -WHAT'S NEW IN 1.0.6 ? - - See the CHANGES file. - - -I hope you find bzip2 useful. Feel free to contact me at - jseward@bzip.org -if you have any suggestions or queries. Many people mailed me with -comments, suggestions and patches after the releases of bzip-0.15, -bzip-0.21, and bzip2 versions 0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, -1.0.2 and 1.0.3, and the changes in bzip2 are largely a result of this -feedback. I thank you for your comments. - -bzip2's "home" is http://www.bzip.org/ - -Julian Seward -jseward@bzip.org -Cambridge, UK. - -18 July 1996 (version 0.15) -25 August 1996 (version 0.21) - 7 August 1997 (bzip2, version 0.1) -29 August 1997 (bzip2, version 0.1pl2) -23 August 1998 (bzip2, version 0.9.0) - 8 June 1999 (bzip2, version 0.9.5) - 4 Sept 1999 (bzip2, version 0.9.5d) - 5 May 2000 (bzip2, version 1.0pre8) -30 December 2001 (bzip2, version 1.0.2pre1) -15 February 2005 (bzip2, version 1.0.3) -20 December 2006 (bzip2, version 1.0.4) -10 December 2007 (bzip2, version 1.0.5) - 6 Sept 2010 (bzip2, version 1.0.6) diff --git a/src/plugins/contrib/devpak_plugin/bzip2/README.COMPILATION.PROBLEMS b/src/plugins/contrib/devpak_plugin/bzip2/README.COMPILATION.PROBLEMS deleted file mode 100644 index 93c753dbe4..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/README.COMPILATION.PROBLEMS +++ /dev/null @@ -1,58 +0,0 @@ ------------------------------------------------------------------- -This file is part of bzip2/libbzip2, a program and library for -lossless, block-sorting data compression. - -bzip2/libbzip2 version 1.0.6 of 6 September 2010 -Copyright (C) 1996-2010 Julian Seward - -Please read the WARNING, DISCLAIMER and PATENTS sections in the -README file. - -This program is released under the terms of the license contained -in the file LICENSE. ------------------------------------------------------------------- - -bzip2-1.0.6 should compile without problems on the vast majority of -platforms. Using the supplied Makefile, I've built and tested it -myself for x86-linux and amd64-linux. With makefile.msc, Visual C++ -6.0 and nmake, you can build a native Win32 version too. Large file -support seems to work correctly on at least on amd64-linux. - -When I say "large file" I mean a file of size 2,147,483,648 (2^31) -bytes or above. Many older OSs can't handle files above this size, -but many newer ones can. Large files are pretty huge -- most files -you'll encounter are not Large Files. - -Early versions of bzip2 (0.1, 0.9.0, 0.9.5) compiled on a wide variety -of platforms without difficulty, and I hope this version will continue -in that tradition. However, in order to support large files, I've had -to include the define -D_FILE_OFFSET_BITS=64 in the Makefile. This -can cause problems. - -The technique of adding -D_FILE_OFFSET_BITS=64 to get large file -support is, as far as I know, the Recommended Way to get correct large -file support. For more details, see the Large File Support -Specification, published by the Large File Summit, at - - http://ftp.sas.com/standards/large.file - -As a general comment, if you get compilation errors which you think -are related to large file support, try removing the above define from -the Makefile, ie, delete the line - - BIGFILES=-D_FILE_OFFSET_BITS=64 - -from the Makefile, and do 'make clean ; make'. This will give you a -version of bzip2 without large file support, which, for most -applications, is probably not a problem. - -Alternatively, try some of the platform-specific hints listed below. - -You can use the spewG.c program to generate huge files to test bzip2's -large file support, if you are feeling paranoid. Be aware though that -any compilation problems which affect bzip2 will also affect spewG.c, -alas. - -AIX: I have reports that for large file support, you need to specify --D_LARGE_FILES rather than -D_FILE_OFFSET_BITS=64. I have not tested -this myself. diff --git a/src/plugins/contrib/devpak_plugin/bzip2/README.CodeBlocks b/src/plugins/contrib/devpak_plugin/bzip2/README.CodeBlocks deleted file mode 100644 index 5611a5131e..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/README.CodeBlocks +++ /dev/null @@ -1,12 +0,0 @@ -Copyright notice: -"bzip2" and associated library "libbzip2", are copyright (C) 1996-2000 Julian R Seward. All rights reserved. - -(for more info, see LICENSE) - -These files are part of libbzip2-1.0. -Not all files of libbzip2-1.0 are included in the Code::Blocks CVS repository. Only the neccessary files are included here. -Not included are the bzip2 program source, the manuals and the tests. - -If you want to update the libbzip2 to a newest version (when it comes out), just put all its files here. If the interface hasn't changed it should compile without any problems. - -The Code::Blocks Team. diff --git a/src/plugins/contrib/devpak_plugin/bzip2/blocksort.c b/src/plugins/contrib/devpak_plugin/bzip2/blocksort.c deleted file mode 100644 index a7b193a559..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/blocksort.c +++ /dev/null @@ -1,1094 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Block sorting machinery ---*/ -/*--- blocksort.c ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - - -#include "bzlib_private.h" - -/*---------------------------------------------*/ -/*--- Fallback O(N log(N)^2) sorting ---*/ -/*--- algorithm, for repetitive blocks ---*/ -/*---------------------------------------------*/ - -/*---------------------------------------------*/ -static -__inline__ -void fallbackSimpleSort ( UInt32* fmap, - UInt32* eclass, - Int32 lo, - Int32 hi ) -{ - Int32 i, j, tmp; - UInt32 ec_tmp; - - if (lo == hi) return; - - if (hi - lo > 3) { - for ( i = hi-4; i >= lo; i-- ) { - tmp = fmap[i]; - ec_tmp = eclass[tmp]; - for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 ) - fmap[j-4] = fmap[j]; - fmap[j-4] = tmp; - } - } - - for ( i = hi-1; i >= lo; i-- ) { - tmp = fmap[i]; - ec_tmp = eclass[tmp]; - for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ ) - fmap[j-1] = fmap[j]; - fmap[j-1] = tmp; - } -} - - -/*---------------------------------------------*/ -#define fswap(zz1, zz2) \ - { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; } - -#define fvswap(zzp1, zzp2, zzn) \ -{ \ - Int32 yyp1 = (zzp1); \ - Int32 yyp2 = (zzp2); \ - Int32 yyn = (zzn); \ - while (yyn > 0) { \ - fswap(fmap[yyp1], fmap[yyp2]); \ - yyp1++; yyp2++; yyn--; \ - } \ -} - - -#define fmin(a,b) ((a) < (b)) ? (a) : (b) - -#define fpush(lz,hz) { stackLo[sp] = lz; \ - stackHi[sp] = hz; \ - sp++; } - -#define fpop(lz,hz) { sp--; \ - lz = stackLo[sp]; \ - hz = stackHi[sp]; } - -#define FALLBACK_QSORT_SMALL_THRESH 10 -#define FALLBACK_QSORT_STACK_SIZE 100 - - -static -void fallbackQSort3 ( UInt32* fmap, - UInt32* eclass, - Int32 loSt, - Int32 hiSt ) -{ - Int32 unLo, unHi, ltLo, gtHi, n, m; - Int32 sp, lo, hi; - UInt32 med, r, r3; - Int32 stackLo[FALLBACK_QSORT_STACK_SIZE]; - Int32 stackHi[FALLBACK_QSORT_STACK_SIZE]; - - r = 0; - - sp = 0; - fpush ( loSt, hiSt ); - - while (sp > 0) { - - AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 ); - - fpop ( lo, hi ); - if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) { - fallbackSimpleSort ( fmap, eclass, lo, hi ); - continue; - } - - /* Random partitioning. Median of 3 sometimes fails to - avoid bad cases. Median of 9 seems to help but - looks rather expensive. This too seems to work but - is cheaper. Guidance for the magic constants - 7621 and 32768 is taken from Sedgewick's algorithms - book, chapter 35. - */ - r = ((r * 7621) + 1) % 32768; - r3 = r % 3; - if (r3 == 0) med = eclass[fmap[lo]]; else - if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else - med = eclass[fmap[hi]]; - - unLo = ltLo = lo; - unHi = gtHi = hi; - - while (1) { - while (1) { - if (unLo > unHi) break; - n = (Int32)eclass[fmap[unLo]] - (Int32)med; - if (n == 0) { - fswap(fmap[unLo], fmap[ltLo]); - ltLo++; unLo++; - continue; - }; - if (n > 0) break; - unLo++; - } - while (1) { - if (unLo > unHi) break; - n = (Int32)eclass[fmap[unHi]] - (Int32)med; - if (n == 0) { - fswap(fmap[unHi], fmap[gtHi]); - gtHi--; unHi--; - continue; - }; - if (n < 0) break; - unHi--; - } - if (unLo > unHi) break; - fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--; - } - - AssertD ( unHi == unLo-1, "fallbackQSort3(2)" ); - - if (gtHi < ltLo) continue; - - n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n); - m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m); - - n = lo + unLo - ltLo - 1; - m = hi - (gtHi - unHi) + 1; - - if (n - lo > hi - m) { - fpush ( lo, n ); - fpush ( m, hi ); - } else { - fpush ( m, hi ); - fpush ( lo, n ); - } - } -} - -#undef fmin -#undef fpush -#undef fpop -#undef fswap -#undef fvswap -#undef FALLBACK_QSORT_SMALL_THRESH -#undef FALLBACK_QSORT_STACK_SIZE - - -/*---------------------------------------------*/ -/* Pre: - nblock > 0 - eclass exists for [0 .. nblock-1] - ((UChar*)eclass) [0 .. nblock-1] holds block - ptr exists for [0 .. nblock-1] - - Post: - ((UChar*)eclass) [0 .. nblock-1] holds block - All other areas of eclass destroyed - fmap [0 .. nblock-1] holds sorted order - bhtab [ 0 .. 2+(nblock/32) ] destroyed -*/ - -#define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31)) -#define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31)) -#define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31))) -#define WORD_BH(zz) bhtab[(zz) >> 5] -#define UNALIGNED_BH(zz) ((zz) & 0x01f) - -static -void fallbackSort ( UInt32* fmap, - UInt32* eclass, - UInt32* bhtab, - Int32 nblock, - Int32 verb ) -{ - Int32 ftab[257]; - Int32 ftabCopy[256]; - Int32 H, i, j, k, l, r, cc, cc1; - Int32 nNotDone; - Int32 nBhtab; - UChar* eclass8 = (UChar*)eclass; - - /*-- - Initial 1-char radix sort to generate - initial fmap and initial BH bits. - --*/ - if (verb >= 4) - VPrintf0 ( " bucket sorting ...\n" ); - for (i = 0; i < 257; i++) ftab[i] = 0; - for (i = 0; i < nblock; i++) ftab[eclass8[i]]++; - for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i]; - for (i = 1; i < 257; i++) ftab[i] += ftab[i-1]; - - for (i = 0; i < nblock; i++) { - j = eclass8[i]; - k = ftab[j] - 1; - ftab[j] = k; - fmap[k] = i; - } - - nBhtab = 2 + (nblock / 32); - for (i = 0; i < nBhtab; i++) bhtab[i] = 0; - for (i = 0; i < 256; i++) SET_BH(ftab[i]); - - /*-- - Inductively refine the buckets. Kind-of an - "exponential radix sort" (!), inspired by the - Manber-Myers suffix array construction algorithm. - --*/ - - /*-- set sentinel bits for block-end detection --*/ - for (i = 0; i < 32; i++) { - SET_BH(nblock + 2*i); - CLEAR_BH(nblock + 2*i + 1); - } - - /*-- the log(N) loop --*/ - H = 1; - while (1) { - - if (verb >= 4) - VPrintf1 ( " depth %6d has ", H ); - - j = 0; - for (i = 0; i < nblock; i++) { - if (ISSET_BH(i)) j = i; - k = fmap[i] - H; if (k < 0) k += nblock; - eclass[k] = j; - } - - nNotDone = 0; - r = -1; - while (1) { - - /*-- find the next non-singleton bucket --*/ - k = r + 1; - while (ISSET_BH(k) && UNALIGNED_BH(k)) k++; - if (ISSET_BH(k)) { - while (WORD_BH(k) == 0xffffffff) k += 32; - while (ISSET_BH(k)) k++; - } - l = k - 1; - if (l >= nblock) break; - while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++; - if (!ISSET_BH(k)) { - while (WORD_BH(k) == 0x00000000) k += 32; - while (!ISSET_BH(k)) k++; - } - r = k - 1; - if (r >= nblock) break; - - /*-- now [l, r] bracket current bucket --*/ - if (r > l) { - nNotDone += (r - l + 1); - fallbackQSort3 ( fmap, eclass, l, r ); - - /*-- scan bucket and generate header bits-- */ - cc = -1; - for (i = l; i <= r; i++) { - cc1 = eclass[fmap[i]]; - if (cc != cc1) { SET_BH(i); cc = cc1; }; - } - } - } - - if (verb >= 4) - VPrintf1 ( "%6d unresolved strings\n", nNotDone ); - - H *= 2; - if (H > nblock || nNotDone == 0) break; - } - - /*-- - Reconstruct the original block in - eclass8 [0 .. nblock-1], since the - previous phase destroyed it. - --*/ - if (verb >= 4) - VPrintf0 ( " reconstructing block ...\n" ); - j = 0; - for (i = 0; i < nblock; i++) { - while (ftabCopy[j] == 0) j++; - ftabCopy[j]--; - eclass8[fmap[i]] = (UChar)j; - } - AssertH ( j < 256, 1005 ); -} - -#undef SET_BH -#undef CLEAR_BH -#undef ISSET_BH -#undef WORD_BH -#undef UNALIGNED_BH - - -/*---------------------------------------------*/ -/*--- The main, O(N^2 log(N)) sorting ---*/ -/*--- algorithm. Faster for "normal" ---*/ -/*--- non-repetitive blocks. ---*/ -/*---------------------------------------------*/ - -/*---------------------------------------------*/ -static -__inline__ -Bool mainGtU ( UInt32 i1, - UInt32 i2, - UChar* block, - UInt16* quadrant, - UInt32 nblock, - Int32* budget ) -{ - Int32 k; - UChar c1, c2; - UInt16 s1, s2; - - AssertD ( i1 != i2, "mainGtU" ); - /* 1 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 2 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 3 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 4 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 5 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 6 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 7 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 8 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 9 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 10 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 11 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - /* 12 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - i1++; i2++; - - k = nblock + 8; - - do { - /* 1 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 2 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 3 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 4 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 5 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 6 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 7 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - /* 8 */ - c1 = block[i1]; c2 = block[i2]; - if (c1 != c2) return (c1 > c2); - s1 = quadrant[i1]; s2 = quadrant[i2]; - if (s1 != s2) return (s1 > s2); - i1++; i2++; - - if (i1 >= nblock) i1 -= nblock; - if (i2 >= nblock) i2 -= nblock; - - k -= 8; - (*budget)--; - } - while (k >= 0); - - return False; -} - - -/*---------------------------------------------*/ -/*-- - Knuth's increments seem to work better - than Incerpi-Sedgewick here. Possibly - because the number of elems to sort is - usually small, typically <= 20. ---*/ -static -Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280, - 9841, 29524, 88573, 265720, - 797161, 2391484 }; - -static -void mainSimpleSort ( UInt32* ptr, - UChar* block, - UInt16* quadrant, - Int32 nblock, - Int32 lo, - Int32 hi, - Int32 d, - Int32* budget ) -{ - Int32 i, j, h, bigN, hp; - UInt32 v; - - bigN = hi - lo + 1; - if (bigN < 2) return; - - hp = 0; - while (incs[hp] < bigN) hp++; - hp--; - - for (; hp >= 0; hp--) { - h = incs[hp]; - - i = lo + h; - while (True) { - - /*-- copy 1 --*/ - if (i > hi) break; - v = ptr[i]; - j = i; - while ( mainGtU ( - ptr[j-h]+d, v+d, block, quadrant, nblock, budget - ) ) { - ptr[j] = ptr[j-h]; - j = j - h; - if (j <= (lo + h - 1)) break; - } - ptr[j] = v; - i++; - - /*-- copy 2 --*/ - if (i > hi) break; - v = ptr[i]; - j = i; - while ( mainGtU ( - ptr[j-h]+d, v+d, block, quadrant, nblock, budget - ) ) { - ptr[j] = ptr[j-h]; - j = j - h; - if (j <= (lo + h - 1)) break; - } - ptr[j] = v; - i++; - - /*-- copy 3 --*/ - if (i > hi) break; - v = ptr[i]; - j = i; - while ( mainGtU ( - ptr[j-h]+d, v+d, block, quadrant, nblock, budget - ) ) { - ptr[j] = ptr[j-h]; - j = j - h; - if (j <= (lo + h - 1)) break; - } - ptr[j] = v; - i++; - - if (*budget < 0) return; - } - } -} - - -/*---------------------------------------------*/ -/*-- - The following is an implementation of - an elegant 3-way quicksort for strings, - described in a paper "Fast Algorithms for - Sorting and Searching Strings", by Robert - Sedgewick and Jon L. Bentley. ---*/ - -#define mswap(zz1, zz2) \ - { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; } - -#define mvswap(zzp1, zzp2, zzn) \ -{ \ - Int32 yyp1 = (zzp1); \ - Int32 yyp2 = (zzp2); \ - Int32 yyn = (zzn); \ - while (yyn > 0) { \ - mswap(ptr[yyp1], ptr[yyp2]); \ - yyp1++; yyp2++; yyn--; \ - } \ -} - -static -__inline__ -UChar mmed3 ( UChar a, UChar b, UChar c ) -{ - UChar t; - if (a > b) { t = a; a = b; b = t; }; - if (b > c) { - b = c; - if (a > b) b = a; - } - return b; -} - -#define mmin(a,b) ((a) < (b)) ? (a) : (b) - -#define mpush(lz,hz,dz) { stackLo[sp] = lz; \ - stackHi[sp] = hz; \ - stackD [sp] = dz; \ - sp++; } - -#define mpop(lz,hz,dz) { sp--; \ - lz = stackLo[sp]; \ - hz = stackHi[sp]; \ - dz = stackD [sp]; } - - -#define mnextsize(az) (nextHi[az]-nextLo[az]) - -#define mnextswap(az,bz) \ - { Int32 tz; \ - tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \ - tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \ - tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; } - - -#define MAIN_QSORT_SMALL_THRESH 20 -#define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT) -#define MAIN_QSORT_STACK_SIZE 100 - -static -void mainQSort3 ( UInt32* ptr, - UChar* block, - UInt16* quadrant, - Int32 nblock, - Int32 loSt, - Int32 hiSt, - Int32 dSt, - Int32* budget ) -{ - Int32 unLo, unHi, ltLo, gtHi, n, m, med; - Int32 sp, lo, hi, d; - - Int32 stackLo[MAIN_QSORT_STACK_SIZE]; - Int32 stackHi[MAIN_QSORT_STACK_SIZE]; - Int32 stackD [MAIN_QSORT_STACK_SIZE]; - - Int32 nextLo[3]; - Int32 nextHi[3]; - Int32 nextD [3]; - - sp = 0; - mpush ( loSt, hiSt, dSt ); - - while (sp > 0) { - - AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 ); - - mpop ( lo, hi, d ); - if (hi - lo < MAIN_QSORT_SMALL_THRESH || - d > MAIN_QSORT_DEPTH_THRESH) { - mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget ); - if (*budget < 0) return; - continue; - } - - med = (Int32) - mmed3 ( block[ptr[ lo ]+d], - block[ptr[ hi ]+d], - block[ptr[ (lo+hi)>>1 ]+d] ); - - unLo = ltLo = lo; - unHi = gtHi = hi; - - while (True) { - while (True) { - if (unLo > unHi) break; - n = ((Int32)block[ptr[unLo]+d]) - med; - if (n == 0) { - mswap(ptr[unLo], ptr[ltLo]); - ltLo++; unLo++; continue; - }; - if (n > 0) break; - unLo++; - } - while (True) { - if (unLo > unHi) break; - n = ((Int32)block[ptr[unHi]+d]) - med; - if (n == 0) { - mswap(ptr[unHi], ptr[gtHi]); - gtHi--; unHi--; continue; - }; - if (n < 0) break; - unHi--; - } - if (unLo > unHi) break; - mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--; - } - - AssertD ( unHi == unLo-1, "mainQSort3(2)" ); - - if (gtHi < ltLo) { - mpush(lo, hi, d+1 ); - continue; - } - - n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n); - m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m); - - n = lo + unLo - ltLo - 1; - m = hi - (gtHi - unHi) + 1; - - nextLo[0] = lo; nextHi[0] = n; nextD[0] = d; - nextLo[1] = m; nextHi[1] = hi; nextD[1] = d; - nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1; - - if (mnextsize(0) < mnextsize(1)) mnextswap(0,1); - if (mnextsize(1) < mnextsize(2)) mnextswap(1,2); - if (mnextsize(0) < mnextsize(1)) mnextswap(0,1); - - AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" ); - AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" ); - - mpush (nextLo[0], nextHi[0], nextD[0]); - mpush (nextLo[1], nextHi[1], nextD[1]); - mpush (nextLo[2], nextHi[2], nextD[2]); - } -} - -#undef mswap -#undef mvswap -#undef mpush -#undef mpop -#undef mmin -#undef mnextsize -#undef mnextswap -#undef MAIN_QSORT_SMALL_THRESH -#undef MAIN_QSORT_DEPTH_THRESH -#undef MAIN_QSORT_STACK_SIZE - - -/*---------------------------------------------*/ -/* Pre: - nblock > N_OVERSHOOT - block32 exists for [0 .. nblock-1 +N_OVERSHOOT] - ((UChar*)block32) [0 .. nblock-1] holds block - ptr exists for [0 .. nblock-1] - - Post: - ((UChar*)block32) [0 .. nblock-1] holds block - All other areas of block32 destroyed - ftab [0 .. 65536 ] destroyed - ptr [0 .. nblock-1] holds sorted order - if (*budget < 0), sorting was abandoned -*/ - -#define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8]) -#define SETMASK (1 << 21) -#define CLEARMASK (~(SETMASK)) - -static -void mainSort ( UInt32* ptr, - UChar* block, - UInt16* quadrant, - UInt32* ftab, - Int32 nblock, - Int32 verb, - Int32* budget ) -{ - Int32 i, j, k, ss, sb; - Int32 runningOrder[256]; - Bool bigDone[256]; - Int32 copyStart[256]; - Int32 copyEnd [256]; - UChar c1; - Int32 numQSorted; - UInt16 s; - if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" ); - - /*-- set up the 2-byte frequency table --*/ - for (i = 65536; i >= 0; i--) ftab[i] = 0; - - j = block[0] << 8; - i = nblock-1; - for (; i >= 3; i -= 4) { - quadrant[i] = 0; - j = (j >> 8) | ( ((UInt16)block[i]) << 8); - ftab[j]++; - quadrant[i-1] = 0; - j = (j >> 8) | ( ((UInt16)block[i-1]) << 8); - ftab[j]++; - quadrant[i-2] = 0; - j = (j >> 8) | ( ((UInt16)block[i-2]) << 8); - ftab[j]++; - quadrant[i-3] = 0; - j = (j >> 8) | ( ((UInt16)block[i-3]) << 8); - ftab[j]++; - } - for (; i >= 0; i--) { - quadrant[i] = 0; - j = (j >> 8) | ( ((UInt16)block[i]) << 8); - ftab[j]++; - } - - /*-- (emphasises close relationship of block & quadrant) --*/ - for (i = 0; i < BZ_N_OVERSHOOT; i++) { - block [nblock+i] = block[i]; - quadrant[nblock+i] = 0; - } - - if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" ); - - /*-- Complete the initial radix sort --*/ - for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1]; - - s = block[0] << 8; - i = nblock-1; - for (; i >= 3; i -= 4) { - s = (s >> 8) | (block[i] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i; - s = (s >> 8) | (block[i-1] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i-1; - s = (s >> 8) | (block[i-2] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i-2; - s = (s >> 8) | (block[i-3] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i-3; - } - for (; i >= 0; i--) { - s = (s >> 8) | (block[i] << 8); - j = ftab[s] -1; - ftab[s] = j; - ptr[j] = i; - } - - /*-- - Now ftab contains the first loc of every small bucket. - Calculate the running order, from smallest to largest - big bucket. - --*/ - for (i = 0; i <= 255; i++) { - bigDone [i] = False; - runningOrder[i] = i; - } - - { - Int32 vv; - Int32 h = 1; - do h = 3 * h + 1; while (h <= 256); - do { - h = h / 3; - for (i = h; i <= 255; i++) { - vv = runningOrder[i]; - j = i; - while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) { - runningOrder[j] = runningOrder[j-h]; - j = j - h; - if (j <= (h - 1)) goto zero; - } - zero: - runningOrder[j] = vv; - } - } while (h != 1); - } - - /*-- - The main sorting loop. - --*/ - - numQSorted = 0; - - for (i = 0; i <= 255; i++) { - - /*-- - Process big buckets, starting with the least full. - Basically this is a 3-step process in which we call - mainQSort3 to sort the small buckets [ss, j], but - also make a big effort to avoid the calls if we can. - --*/ - ss = runningOrder[i]; - - /*-- - Step 1: - Complete the big bucket [ss] by quicksorting - any unsorted small buckets [ss, j], for j != ss. - Hopefully previous pointer-scanning phases have already - completed many of the small buckets [ss, j], so - we don't have to sort them at all. - --*/ - for (j = 0; j <= 255; j++) { - if (j != ss) { - sb = (ss << 8) + j; - if ( ! (ftab[sb] & SETMASK) ) { - Int32 lo = ftab[sb] & CLEARMASK; - Int32 hi = (ftab[sb+1] & CLEARMASK) - 1; - if (hi > lo) { - if (verb >= 4) - VPrintf4 ( " qsort [0x%x, 0x%x] " - "done %d this %d\n", - ss, j, numQSorted, hi - lo + 1 ); - mainQSort3 ( - ptr, block, quadrant, nblock, - lo, hi, BZ_N_RADIX, budget - ); - numQSorted += (hi - lo + 1); - if (*budget < 0) return; - } - } - ftab[sb] |= SETMASK; - } - } - - AssertH ( !bigDone[ss], 1006 ); - - /*-- - Step 2: - Now scan this big bucket [ss] so as to synthesise the - sorted order for small buckets [t, ss] for all t, - including, magically, the bucket [ss,ss] too. - This will avoid doing Real Work in subsequent Step 1's. - --*/ - { - for (j = 0; j <= 255; j++) { - copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK; - copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1; - } - for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) { - k = ptr[j]-1; if (k < 0) k += nblock; - c1 = block[k]; - if (!bigDone[c1]) - ptr[ copyStart[c1]++ ] = k; - } - for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) { - k = ptr[j]-1; if (k < 0) k += nblock; - c1 = block[k]; - if (!bigDone[c1]) - ptr[ copyEnd[c1]-- ] = k; - } - } - - AssertH ( (copyStart[ss]-1 == copyEnd[ss]) - || - /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1. - Necessity for this case is demonstrated by compressing - a sequence of approximately 48.5 million of character - 251; 1.0.0/1.0.1 will then die here. */ - (copyStart[ss] == 0 && copyEnd[ss] == nblock-1), - 1007 ) - - for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK; - - /*-- - Step 3: - The [ss] big bucket is now done. Record this fact, - and update the quadrant descriptors. Remember to - update quadrants in the overshoot area too, if - necessary. The "if (i < 255)" test merely skips - this updating for the last bucket processed, since - updating for the last bucket is pointless. - - The quadrant array provides a way to incrementally - cache sort orderings, as they appear, so as to - make subsequent comparisons in fullGtU() complete - faster. For repetitive blocks this makes a big - difference (but not big enough to be able to avoid - the fallback sorting mechanism, exponential radix sort). - - The precise meaning is: at all times: - - for 0 <= i < nblock and 0 <= j <= nblock - - if block[i] != block[j], - - then the relative values of quadrant[i] and - quadrant[j] are meaningless. - - else { - if quadrant[i] < quadrant[j] - then the string starting at i lexicographically - precedes the string starting at j - - else if quadrant[i] > quadrant[j] - then the string starting at j lexicographically - precedes the string starting at i - - else - the relative ordering of the strings starting - at i and j has not yet been determined. - } - --*/ - bigDone[ss] = True; - - if (i < 255) { - Int32 bbStart = ftab[ss << 8] & CLEARMASK; - Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart; - Int32 shifts = 0; - - while ((bbSize >> shifts) > 65534) shifts++; - - for (j = bbSize-1; j >= 0; j--) { - Int32 a2update = ptr[bbStart + j]; - UInt16 qVal = (UInt16)(j >> shifts); - quadrant[a2update] = qVal; - if (a2update < BZ_N_OVERSHOOT) - quadrant[a2update + nblock] = qVal; - } - AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 ); - } - - } - - if (verb >= 4) - VPrintf3 ( " %d pointers, %d sorted, %d scanned\n", - nblock, numQSorted, nblock - numQSorted ); -} - -#undef BIGFREQ -#undef SETMASK -#undef CLEARMASK - - -/*---------------------------------------------*/ -/* Pre: - nblock > 0 - arr2 exists for [0 .. nblock-1 +N_OVERSHOOT] - ((UChar*)arr2) [0 .. nblock-1] holds block - arr1 exists for [0 .. nblock-1] - - Post: - ((UChar*)arr2) [0 .. nblock-1] holds block - All other areas of block destroyed - ftab [ 0 .. 65536 ] destroyed - arr1 [0 .. nblock-1] holds sorted order -*/ -void BZ2_blockSort ( EState* s ) -{ - UInt32* ptr = s->ptr; - UChar* block = s->block; - UInt32* ftab = s->ftab; - Int32 nblock = s->nblock; - Int32 verb = s->verbosity; - Int32 wfact = s->workFactor; - UInt16* quadrant; - Int32 budget; - Int32 budgetInit; - Int32 i; - - if (nblock < 10000) { - fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb ); - } else { - /* Calculate the location for quadrant, remembering to get - the alignment right. Assumes that &(block[0]) is at least - 2-byte aligned -- this should be ok since block is really - the first section of arr2. - */ - i = nblock+BZ_N_OVERSHOOT; - if (i & 1) i++; - quadrant = (UInt16*)(&(block[i])); - - /* (wfact-1) / 3 puts the default-factor-30 - transition point at very roughly the same place as - with v0.1 and v0.9.0. - Not that it particularly matters any more, since the - resulting compressed stream is now the same regardless - of whether or not we use the main sort or fallback sort. - */ - if (wfact < 1 ) wfact = 1; - if (wfact > 100) wfact = 100; - budgetInit = nblock * ((wfact-1) / 3); - budget = budgetInit; - - mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget ); - if (verb >= 3) - VPrintf3 ( " %d work, %d block, ratio %5.2f\n", - budgetInit - budget, - nblock, - (float)(budgetInit - budget) / - (float)(nblock==0 ? 1 : nblock) ); - if (budget < 0) { - if (verb >= 2) - VPrintf0 ( " too repetitive; using fallback" - " sorting algorithm\n" ); - fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb ); - } - } - - s->origPtr = -1; - for (i = 0; i < s->nblock; i++) - if (ptr[i] == 0) - { s->origPtr = i; break; }; - - AssertH( s->origPtr != -1, 1003 ); -} - - -/*-------------------------------------------------------------*/ -/*--- end blocksort.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/bzip2/bzlib.c b/src/plugins/contrib/devpak_plugin/bzip2/bzlib.c deleted file mode 100644 index 5e0289b56e..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/bzlib.c +++ /dev/null @@ -1,1572 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Library top-level functions. ---*/ -/*--- bzlib.c ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - -/* CHANGES - 0.9.0 -- original version. - 0.9.0a/b -- no changes in this file. - 0.9.0c -- made zero-length BZ_FLUSH work correctly in bzCompress(). - fixed bzWrite/bzRead to ignore zero-length requests. - fixed bzread to correctly handle read requests after EOF. - wrong parameter order in call to bzDecompressInit in - bzBuffToBuffDecompress. Fixed. -*/ - -#include "bzlib_private.h" - - -/*---------------------------------------------------*/ -/*--- Compression stuff ---*/ -/*---------------------------------------------------*/ - - -/*---------------------------------------------------*/ -#ifndef BZ_NO_STDIO -void BZ2_bz__AssertH__fail ( int errcode ) -{ - fprintf(stderr, - "\n\nbzip2/libbzip2: internal error number %d.\n" - "This is a bug in bzip2/libbzip2, %s.\n" - "Please report it to me at: jseward@bzip.org. If this happened\n" - "when you were using some program which uses libbzip2 as a\n" - "component, you should also report this bug to the author(s)\n" - "of that program. Please make an effort to report this bug;\n" - "timely and accurate bug reports eventually lead to higher\n" - "quality software. Thanks. Julian Seward, 10 December 2007.\n\n", - errcode, - BZ2_bzlibVersion() - ); - - if (errcode == 1007) { - fprintf(stderr, - "\n*** A special note about internal error number 1007 ***\n" - "\n" - "Experience suggests that a common cause of i.e. 1007\n" - "is unreliable memory or other hardware. The 1007 assertion\n" - "just happens to cross-check the results of huge numbers of\n" - "memory reads/writes, and so acts (unintendedly) as a stress\n" - "test of your memory system.\n" - "\n" - "I suggest the following: try compressing the file again,\n" - "possibly monitoring progress in detail with the -vv flag.\n" - "\n" - "* If the error cannot be reproduced, and/or happens at different\n" - " points in compression, you may have a flaky memory system.\n" - " Try a memory-test program. I have used Memtest86\n" - " (www.memtest86.com). At the time of writing it is free (GPLd).\n" - " Memtest86 tests memory much more thorougly than your BIOSs\n" - " power-on test, and may find failures that the BIOS doesn't.\n" - "\n" - "* If the error can be repeatably reproduced, this is a bug in\n" - " bzip2, and I would very much like to hear about it. Please\n" - " let me know, and, ideally, save a copy of the file causing the\n" - " problem -- without which I will be unable to investigate it.\n" - "\n" - ); - } - - exit(3); -} -#endif - - -/*---------------------------------------------------*/ -static -int bz_config_ok ( void ) -{ - if (sizeof(int) != 4) return 0; - if (sizeof(short) != 2) return 0; - if (sizeof(char) != 1) return 0; - return 1; -} - - -/*---------------------------------------------------*/ -static -void* default_bzalloc ( void* opaque, Int32 items, Int32 size ) -{ - void* v = malloc ( items * size ); - return v; -} - -static -void default_bzfree ( void* opaque, void* addr ) -{ - if (addr != NULL) free ( addr ); -} - - -/*---------------------------------------------------*/ -static -void prepare_new_block ( EState* s ) -{ - Int32 i; - s->nblock = 0; - s->numZ = 0; - s->state_out_pos = 0; - BZ_INITIALISE_CRC ( s->blockCRC ); - for (i = 0; i < 256; i++) s->inUse[i] = False; - s->blockNo++; -} - - -/*---------------------------------------------------*/ -static -void init_RL ( EState* s ) -{ - s->state_in_ch = 256; - s->state_in_len = 0; -} - - -static -Bool isempty_RL ( EState* s ) -{ - if (s->state_in_ch < 256 && s->state_in_len > 0) - return False; else - return True; -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzCompressInit) - ( bz_stream* strm, - int blockSize100k, - int verbosity, - int workFactor ) -{ - Int32 n; - EState* s; - - if (!bz_config_ok()) return BZ_CONFIG_ERROR; - - if (strm == NULL || - blockSize100k < 1 || blockSize100k > 9 || - workFactor < 0 || workFactor > 250) - return BZ_PARAM_ERROR; - - if (workFactor == 0) workFactor = 30; - if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc; - if (strm->bzfree == NULL) strm->bzfree = default_bzfree; - - s = BZALLOC( sizeof(EState) ); - if (s == NULL) return BZ_MEM_ERROR; - s->strm = strm; - - s->arr1 = NULL; - s->arr2 = NULL; - s->ftab = NULL; - - n = 100000 * blockSize100k; - s->arr1 = BZALLOC( n * sizeof(UInt32) ); - s->arr2 = BZALLOC( (n+BZ_N_OVERSHOOT) * sizeof(UInt32) ); - s->ftab = BZALLOC( 65537 * sizeof(UInt32) ); - - if (s->arr1 == NULL || s->arr2 == NULL || s->ftab == NULL) { - if (s->arr1 != NULL) BZFREE(s->arr1); - if (s->arr2 != NULL) BZFREE(s->arr2); - if (s->ftab != NULL) BZFREE(s->ftab); - if (s != NULL) BZFREE(s); - return BZ_MEM_ERROR; - } - - s->blockNo = 0; - s->state = BZ_S_INPUT; - s->mode = BZ_M_RUNNING; - s->combinedCRC = 0; - s->blockSize100k = blockSize100k; - s->nblockMAX = 100000 * blockSize100k - 19; - s->verbosity = verbosity; - s->workFactor = workFactor; - - s->block = (UChar*)s->arr2; - s->mtfv = (UInt16*)s->arr1; - s->zbits = NULL; - s->ptr = (UInt32*)s->arr1; - - strm->state = s; - strm->total_in_lo32 = 0; - strm->total_in_hi32 = 0; - strm->total_out_lo32 = 0; - strm->total_out_hi32 = 0; - init_RL ( s ); - prepare_new_block ( s ); - return BZ_OK; -} - - -/*---------------------------------------------------*/ -static -void add_pair_to_block ( EState* s ) -{ - Int32 i; - UChar ch = (UChar)(s->state_in_ch); - for (i = 0; i < s->state_in_len; i++) { - BZ_UPDATE_CRC( s->blockCRC, ch ); - } - s->inUse[s->state_in_ch] = True; - switch (s->state_in_len) { - case 1: - s->block[s->nblock] = (UChar)ch; s->nblock++; - break; - case 2: - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - break; - case 3: - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - break; - default: - s->inUse[s->state_in_len-4] = True; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = (UChar)ch; s->nblock++; - s->block[s->nblock] = ((UChar)(s->state_in_len-4)); - s->nblock++; - break; - } -} - - -/*---------------------------------------------------*/ -static -void flush_RL ( EState* s ) -{ - if (s->state_in_ch < 256) add_pair_to_block ( s ); - init_RL ( s ); -} - - -/*---------------------------------------------------*/ -#define ADD_CHAR_TO_BLOCK(zs,zchh0) \ -{ \ - UInt32 zchh = (UInt32)(zchh0); \ - /*-- fast track the common case --*/ \ - if (zchh != zs->state_in_ch && \ - zs->state_in_len == 1) { \ - UChar ch = (UChar)(zs->state_in_ch); \ - BZ_UPDATE_CRC( zs->blockCRC, ch ); \ - zs->inUse[zs->state_in_ch] = True; \ - zs->block[zs->nblock] = (UChar)ch; \ - zs->nblock++; \ - zs->state_in_ch = zchh; \ - } \ - else \ - /*-- general, uncommon cases --*/ \ - if (zchh != zs->state_in_ch || \ - zs->state_in_len == 255) { \ - if (zs->state_in_ch < 256) \ - add_pair_to_block ( zs ); \ - zs->state_in_ch = zchh; \ - zs->state_in_len = 1; \ - } else { \ - zs->state_in_len++; \ - } \ -} - - -/*---------------------------------------------------*/ -static -Bool copy_input_until_stop ( EState* s ) -{ - Bool progress_in = False; - - if (s->mode == BZ_M_RUNNING) { - - /*-- fast track the common case --*/ - while (True) { - /*-- block full? --*/ - if (s->nblock >= s->nblockMAX) break; - /*-- no input? --*/ - if (s->strm->avail_in == 0) break; - progress_in = True; - ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); - s->strm->next_in++; - s->strm->avail_in--; - s->strm->total_in_lo32++; - if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; - } - - } else { - - /*-- general, uncommon case --*/ - while (True) { - /*-- block full? --*/ - if (s->nblock >= s->nblockMAX) break; - /*-- no input? --*/ - if (s->strm->avail_in == 0) break; - /*-- flush/finish end? --*/ - if (s->avail_in_expect == 0) break; - progress_in = True; - ADD_CHAR_TO_BLOCK ( s, (UInt32)(*((UChar*)(s->strm->next_in))) ); - s->strm->next_in++; - s->strm->avail_in--; - s->strm->total_in_lo32++; - if (s->strm->total_in_lo32 == 0) s->strm->total_in_hi32++; - s->avail_in_expect--; - } - } - return progress_in; -} - - -/*---------------------------------------------------*/ -static -Bool copy_output_until_stop ( EState* s ) -{ - Bool progress_out = False; - - while (True) { - - /*-- no output space? --*/ - if (s->strm->avail_out == 0) break; - - /*-- block done? --*/ - if (s->state_out_pos >= s->numZ) break; - - progress_out = True; - *(s->strm->next_out) = s->zbits[s->state_out_pos]; - s->state_out_pos++; - s->strm->avail_out--; - s->strm->next_out++; - s->strm->total_out_lo32++; - if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - return progress_out; -} - - -/*---------------------------------------------------*/ -static -Bool handle_compress ( bz_stream* strm ) -{ - Bool progress_in = False; - Bool progress_out = False; - EState* s = strm->state; - - while (True) { - - if (s->state == BZ_S_OUTPUT) { - progress_out |= copy_output_until_stop ( s ); - if (s->state_out_pos < s->numZ) break; - if (s->mode == BZ_M_FINISHING && - s->avail_in_expect == 0 && - isempty_RL(s)) break; - prepare_new_block ( s ); - s->state = BZ_S_INPUT; - if (s->mode == BZ_M_FLUSHING && - s->avail_in_expect == 0 && - isempty_RL(s)) break; - } - - if (s->state == BZ_S_INPUT) { - progress_in |= copy_input_until_stop ( s ); - if (s->mode != BZ_M_RUNNING && s->avail_in_expect == 0) { - flush_RL ( s ); - BZ2_compressBlock ( s, (Bool)(s->mode == BZ_M_FINISHING) ); - s->state = BZ_S_OUTPUT; - } - else - if (s->nblock >= s->nblockMAX) { - BZ2_compressBlock ( s, False ); - s->state = BZ_S_OUTPUT; - } - else - if (s->strm->avail_in == 0) { - break; - } - } - - } - - return progress_in || progress_out; -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzCompress) ( bz_stream *strm, int action ) -{ - Bool progress; - EState* s; - if (strm == NULL) return BZ_PARAM_ERROR; - s = strm->state; - if (s == NULL) return BZ_PARAM_ERROR; - if (s->strm != strm) return BZ_PARAM_ERROR; - - preswitch: - switch (s->mode) { - - case BZ_M_IDLE: - return BZ_SEQUENCE_ERROR; - - case BZ_M_RUNNING: - if (action == BZ_RUN) { - progress = handle_compress ( strm ); - return progress ? BZ_RUN_OK : BZ_PARAM_ERROR; - } - else - if (action == BZ_FLUSH) { - s->avail_in_expect = strm->avail_in; - s->mode = BZ_M_FLUSHING; - goto preswitch; - } - else - if (action == BZ_FINISH) { - s->avail_in_expect = strm->avail_in; - s->mode = BZ_M_FINISHING; - goto preswitch; - } - else - return BZ_PARAM_ERROR; - - case BZ_M_FLUSHING: - if (action != BZ_FLUSH) return BZ_SEQUENCE_ERROR; - if (s->avail_in_expect != s->strm->avail_in) - return BZ_SEQUENCE_ERROR; - progress = handle_compress ( strm ); - if (s->avail_in_expect > 0 || !isempty_RL(s) || - s->state_out_pos < s->numZ) return BZ_FLUSH_OK; - s->mode = BZ_M_RUNNING; - return BZ_RUN_OK; - - case BZ_M_FINISHING: - if (action != BZ_FINISH) return BZ_SEQUENCE_ERROR; - if (s->avail_in_expect != s->strm->avail_in) - return BZ_SEQUENCE_ERROR; - progress = handle_compress ( strm ); - if (!progress) return BZ_SEQUENCE_ERROR; - if (s->avail_in_expect > 0 || !isempty_RL(s) || - s->state_out_pos < s->numZ) return BZ_FINISH_OK; - s->mode = BZ_M_IDLE; - return BZ_STREAM_END; - } - return BZ_OK; /*--not reached--*/ -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzCompressEnd) ( bz_stream *strm ) -{ - EState* s; - if (strm == NULL) return BZ_PARAM_ERROR; - s = strm->state; - if (s == NULL) return BZ_PARAM_ERROR; - if (s->strm != strm) return BZ_PARAM_ERROR; - - if (s->arr1 != NULL) BZFREE(s->arr1); - if (s->arr2 != NULL) BZFREE(s->arr2); - if (s->ftab != NULL) BZFREE(s->ftab); - BZFREE(strm->state); - - strm->state = NULL; - - return BZ_OK; -} - - -/*---------------------------------------------------*/ -/*--- Decompression stuff ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzDecompressInit) - ( bz_stream* strm, - int verbosity, - int small ) -{ - DState* s; - - if (!bz_config_ok()) return BZ_CONFIG_ERROR; - - if (strm == NULL) return BZ_PARAM_ERROR; - if (small != 0 && small != 1) return BZ_PARAM_ERROR; - if (verbosity < 0 || verbosity > 4) return BZ_PARAM_ERROR; - - if (strm->bzalloc == NULL) strm->bzalloc = default_bzalloc; - if (strm->bzfree == NULL) strm->bzfree = default_bzfree; - - s = BZALLOC( sizeof(DState) ); - if (s == NULL) return BZ_MEM_ERROR; - s->strm = strm; - strm->state = s; - s->state = BZ_X_MAGIC_1; - s->bsLive = 0; - s->bsBuff = 0; - s->calculatedCombinedCRC = 0; - strm->total_in_lo32 = 0; - strm->total_in_hi32 = 0; - strm->total_out_lo32 = 0; - strm->total_out_hi32 = 0; - s->smallDecompress = (Bool)small; - s->ll4 = NULL; - s->ll16 = NULL; - s->tt = NULL; - s->currBlockNo = 0; - s->verbosity = verbosity; - - return BZ_OK; -} - - -/*---------------------------------------------------*/ -/* Return True iff data corruption is discovered. - Returns False if there is no problem. -*/ -static -Bool unRLE_obuf_to_output_FAST ( DState* s ) -{ - UChar k1; - - if (s->blockRandomised) { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return False; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; - s->strm->total_out_lo32++; - if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - /* can a new run be started? */ - if (s->nblock_used == s->save_nblock+1) return False; - - /* Only caused by corrupt data stream? */ - if (s->nblock_used > s->save_nblock+1) - return True; - - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 2; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 3; - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_FAST(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_FAST(s->k0); BZ_RAND_UPD_MASK; - s->k0 ^= BZ_RAND_MASK; s->nblock_used++; - } - - } else { - - /* restore */ - UInt32 c_calculatedBlockCRC = s->calculatedBlockCRC; - UChar c_state_out_ch = s->state_out_ch; - Int32 c_state_out_len = s->state_out_len; - Int32 c_nblock_used = s->nblock_used; - Int32 c_k0 = s->k0; - UInt32* c_tt = s->tt; - UInt32 c_tPos = s->tPos; - char* cs_next_out = s->strm->next_out; - unsigned int cs_avail_out = s->strm->avail_out; - Int32 ro_blockSize100k = s->blockSize100k; - /* end restore */ - - UInt32 avail_out_INIT = cs_avail_out; - Int32 s_save_nblockPP = s->save_nblock+1; - unsigned int total_out_lo32_old; - - while (True) { - - /* try to finish existing run */ - if (c_state_out_len > 0) { - while (True) { - if (cs_avail_out == 0) goto return_notr; - if (c_state_out_len == 1) break; - *( (UChar*)(cs_next_out) ) = c_state_out_ch; - BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch ); - c_state_out_len--; - cs_next_out++; - cs_avail_out--; - } - s_state_out_len_eq_one: - { - if (cs_avail_out == 0) { - c_state_out_len = 1; goto return_notr; - }; - *( (UChar*)(cs_next_out) ) = c_state_out_ch; - BZ_UPDATE_CRC ( c_calculatedBlockCRC, c_state_out_ch ); - cs_next_out++; - cs_avail_out--; - } - } - /* Only caused by corrupt data stream? */ - if (c_nblock_used > s_save_nblockPP) - return True; - - /* can a new run be started? */ - if (c_nblock_used == s_save_nblockPP) { - c_state_out_len = 0; goto return_notr; - }; - c_state_out_ch = c_k0; - BZ_GET_FAST_C(k1); c_nblock_used++; - if (k1 != c_k0) { - c_k0 = k1; goto s_state_out_len_eq_one; - }; - if (c_nblock_used == s_save_nblockPP) - goto s_state_out_len_eq_one; - - c_state_out_len = 2; - BZ_GET_FAST_C(k1); c_nblock_used++; - if (c_nblock_used == s_save_nblockPP) continue; - if (k1 != c_k0) { c_k0 = k1; continue; }; - - c_state_out_len = 3; - BZ_GET_FAST_C(k1); c_nblock_used++; - if (c_nblock_used == s_save_nblockPP) continue; - if (k1 != c_k0) { c_k0 = k1; continue; }; - - BZ_GET_FAST_C(k1); c_nblock_used++; - c_state_out_len = ((Int32)k1) + 4; - BZ_GET_FAST_C(c_k0); c_nblock_used++; - } - - return_notr: - total_out_lo32_old = s->strm->total_out_lo32; - s->strm->total_out_lo32 += (avail_out_INIT - cs_avail_out); - if (s->strm->total_out_lo32 < total_out_lo32_old) - s->strm->total_out_hi32++; - - /* save */ - s->calculatedBlockCRC = c_calculatedBlockCRC; - s->state_out_ch = c_state_out_ch; - s->state_out_len = c_state_out_len; - s->nblock_used = c_nblock_used; - s->k0 = c_k0; - s->tt = c_tt; - s->tPos = c_tPos; - s->strm->next_out = cs_next_out; - s->strm->avail_out = cs_avail_out; - /* end save */ - } - return False; -} - - - -/*---------------------------------------------------*/ -__inline__ Int32 BZ2_indexIntoF ( Int32 indx, Int32 *cftab ) -{ - Int32 nb, na, mid; - nb = 0; - na = 256; - do { - mid = (nb + na) >> 1; - if (indx >= cftab[mid]) nb = mid; else na = mid; - } - while (na - nb != 1); - return nb; -} - - -/*---------------------------------------------------*/ -/* Return True iff data corruption is discovered. - Returns False if there is no problem. -*/ -static -Bool unRLE_obuf_to_output_SMALL ( DState* s ) -{ - UChar k1; - - if (s->blockRandomised) { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return False; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; - s->strm->total_out_lo32++; - if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - /* can a new run be started? */ - if (s->nblock_used == s->save_nblock+1) return False; - - /* Only caused by corrupt data stream? */ - if (s->nblock_used > s->save_nblock+1) - return True; - - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 2; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 3; - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_SMALL(k1); BZ_RAND_UPD_MASK; - k1 ^= BZ_RAND_MASK; s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_SMALL(s->k0); BZ_RAND_UPD_MASK; - s->k0 ^= BZ_RAND_MASK; s->nblock_used++; - } - - } else { - - while (True) { - /* try to finish existing run */ - while (True) { - if (s->strm->avail_out == 0) return False; - if (s->state_out_len == 0) break; - *( (UChar*)(s->strm->next_out) ) = s->state_out_ch; - BZ_UPDATE_CRC ( s->calculatedBlockCRC, s->state_out_ch ); - s->state_out_len--; - s->strm->next_out++; - s->strm->avail_out--; - s->strm->total_out_lo32++; - if (s->strm->total_out_lo32 == 0) s->strm->total_out_hi32++; - } - - /* can a new run be started? */ - if (s->nblock_used == s->save_nblock+1) return False; - - /* Only caused by corrupt data stream? */ - if (s->nblock_used > s->save_nblock+1) - return True; - - s->state_out_len = 1; - s->state_out_ch = s->k0; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 2; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - s->state_out_len = 3; - BZ_GET_SMALL(k1); s->nblock_used++; - if (s->nblock_used == s->save_nblock+1) continue; - if (k1 != s->k0) { s->k0 = k1; continue; }; - - BZ_GET_SMALL(k1); s->nblock_used++; - s->state_out_len = ((Int32)k1) + 4; - BZ_GET_SMALL(s->k0); s->nblock_used++; - } - - } -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzDecompress) ( bz_stream *strm ) -{ - Bool corrupt; - DState* s; - if (strm == NULL) return BZ_PARAM_ERROR; - s = strm->state; - if (s == NULL) return BZ_PARAM_ERROR; - if (s->strm != strm) return BZ_PARAM_ERROR; - - while (True) { - if (s->state == BZ_X_IDLE) return BZ_SEQUENCE_ERROR; - if (s->state == BZ_X_OUTPUT) { - if (s->smallDecompress) - corrupt = unRLE_obuf_to_output_SMALL ( s ); else - corrupt = unRLE_obuf_to_output_FAST ( s ); - if (corrupt) return BZ_DATA_ERROR; - if (s->nblock_used == s->save_nblock+1 && s->state_out_len == 0) { - BZ_FINALISE_CRC ( s->calculatedBlockCRC ); - if (s->verbosity >= 3) - VPrintf2 ( " {0x%08x, 0x%08x}", s->storedBlockCRC, - s->calculatedBlockCRC ); - if (s->verbosity >= 2) VPrintf0 ( "]" ); - if (s->calculatedBlockCRC != s->storedBlockCRC) - return BZ_DATA_ERROR; - s->calculatedCombinedCRC - = (s->calculatedCombinedCRC << 1) | - (s->calculatedCombinedCRC >> 31); - s->calculatedCombinedCRC ^= s->calculatedBlockCRC; - s->state = BZ_X_BLKHDR_1; - } else { - return BZ_OK; - } - } - if (s->state >= BZ_X_MAGIC_1) { - Int32 r = BZ2_decompress ( s ); - if (r == BZ_STREAM_END) { - if (s->verbosity >= 3) - VPrintf2 ( "\n combined CRCs: stored = 0x%08x, computed = 0x%08x", - s->storedCombinedCRC, s->calculatedCombinedCRC ); - if (s->calculatedCombinedCRC != s->storedCombinedCRC) - return BZ_DATA_ERROR; - return r; - } - if (s->state != BZ_X_OUTPUT) return r; - } - } - - AssertH ( 0, 6001 ); - - return 0; /*NOTREACHED*/ -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzDecompressEnd) ( bz_stream *strm ) -{ - DState* s; - if (strm == NULL) return BZ_PARAM_ERROR; - s = strm->state; - if (s == NULL) return BZ_PARAM_ERROR; - if (s->strm != strm) return BZ_PARAM_ERROR; - - if (s->tt != NULL) BZFREE(s->tt); - if (s->ll16 != NULL) BZFREE(s->ll16); - if (s->ll4 != NULL) BZFREE(s->ll4); - - BZFREE(strm->state); - strm->state = NULL; - - return BZ_OK; -} - - -#ifndef BZ_NO_STDIO -/*---------------------------------------------------*/ -/*--- File I/O stuff ---*/ -/*---------------------------------------------------*/ - -#define BZ_SETERR(eee) \ -{ \ - if (bzerror != NULL) *bzerror = eee; \ - if (bzf != NULL) bzf->lastErr = eee; \ -} - -typedef - struct { - FILE* handle; - Char buf[BZ_MAX_UNUSED]; - Int32 bufN; - Bool writing; - bz_stream strm; - Int32 lastErr; - Bool initialisedOk; - } - bzFile; - - -/*---------------------------------------------*/ -static Bool myfeof ( FILE* f ) -{ - Int32 c = fgetc ( f ); - if (c == EOF) return True; - ungetc ( c, f ); - return False; -} - - -/*---------------------------------------------------*/ -BZFILE* BZ_API(BZ2_bzWriteOpen) - ( int* bzerror, - FILE* f, - int blockSize100k, - int verbosity, - int workFactor ) -{ - Int32 ret; - bzFile* bzf = NULL; - - BZ_SETERR(BZ_OK); - - if (f == NULL || - (blockSize100k < 1 || blockSize100k > 9) || - (workFactor < 0 || workFactor > 250) || - (verbosity < 0 || verbosity > 4)) - { BZ_SETERR(BZ_PARAM_ERROR); return NULL; }; - - if (ferror(f)) - { BZ_SETERR(BZ_IO_ERROR); return NULL; }; - - bzf = malloc ( sizeof(bzFile) ); - if (bzf == NULL) - { BZ_SETERR(BZ_MEM_ERROR); return NULL; }; - - BZ_SETERR(BZ_OK); - bzf->initialisedOk = False; - bzf->bufN = 0; - bzf->handle = f; - bzf->writing = True; - bzf->strm.bzalloc = NULL; - bzf->strm.bzfree = NULL; - bzf->strm.opaque = NULL; - - if (workFactor == 0) workFactor = 30; - ret = BZ2_bzCompressInit ( &(bzf->strm), blockSize100k, - verbosity, workFactor ); - if (ret != BZ_OK) - { BZ_SETERR(ret); free(bzf); return NULL; }; - - bzf->strm.avail_in = 0; - bzf->initialisedOk = True; - return bzf; -} - - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzWrite) - ( int* bzerror, - BZFILE* b, - void* buf, - int len ) -{ - Int32 n, n2, ret; - bzFile* bzf = (bzFile*)b; - - BZ_SETERR(BZ_OK); - if (bzf == NULL || buf == NULL || len < 0) - { BZ_SETERR(BZ_PARAM_ERROR); return; }; - if (!(bzf->writing)) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - - if (len == 0) - { BZ_SETERR(BZ_OK); return; }; - - bzf->strm.avail_in = len; - bzf->strm.next_in = buf; - - while (True) { - bzf->strm.avail_out = BZ_MAX_UNUSED; - bzf->strm.next_out = bzf->buf; - ret = BZ2_bzCompress ( &(bzf->strm), BZ_RUN ); - if (ret != BZ_RUN_OK) - { BZ_SETERR(ret); return; }; - - if (bzf->strm.avail_out < BZ_MAX_UNUSED) { - n = BZ_MAX_UNUSED - bzf->strm.avail_out; - n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), - n, bzf->handle ); - if (n != n2 || ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - } - - if (bzf->strm.avail_in == 0) - { BZ_SETERR(BZ_OK); return; }; - } -} - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzWriteClose) - ( int* bzerror, - BZFILE* b, - int abandon, - unsigned int* nbytes_in, - unsigned int* nbytes_out ) -{ - BZ2_bzWriteClose64 ( bzerror, b, abandon, - nbytes_in, NULL, nbytes_out, NULL ); -} - - -void BZ_API(BZ2_bzWriteClose64) - ( int* bzerror, - BZFILE* b, - int abandon, - unsigned int* nbytes_in_lo32, - unsigned int* nbytes_in_hi32, - unsigned int* nbytes_out_lo32, - unsigned int* nbytes_out_hi32 ) -{ - Int32 n, n2, ret; - bzFile* bzf = (bzFile*)b; - - if (bzf == NULL) - { BZ_SETERR(BZ_OK); return; }; - if (!(bzf->writing)) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - - if (nbytes_in_lo32 != NULL) *nbytes_in_lo32 = 0; - if (nbytes_in_hi32 != NULL) *nbytes_in_hi32 = 0; - if (nbytes_out_lo32 != NULL) *nbytes_out_lo32 = 0; - if (nbytes_out_hi32 != NULL) *nbytes_out_hi32 = 0; - - if ((!abandon) && bzf->lastErr == BZ_OK) { - while (True) { - bzf->strm.avail_out = BZ_MAX_UNUSED; - bzf->strm.next_out = bzf->buf; - ret = BZ2_bzCompress ( &(bzf->strm), BZ_FINISH ); - if (ret != BZ_FINISH_OK && ret != BZ_STREAM_END) - { BZ_SETERR(ret); return; }; - - if (bzf->strm.avail_out < BZ_MAX_UNUSED) { - n = BZ_MAX_UNUSED - bzf->strm.avail_out; - n2 = fwrite ( (void*)(bzf->buf), sizeof(UChar), - n, bzf->handle ); - if (n != n2 || ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - } - - if (ret == BZ_STREAM_END) break; - } - } - - if ( !abandon && !ferror ( bzf->handle ) ) { - fflush ( bzf->handle ); - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return; }; - } - - if (nbytes_in_lo32 != NULL) - *nbytes_in_lo32 = bzf->strm.total_in_lo32; - if (nbytes_in_hi32 != NULL) - *nbytes_in_hi32 = bzf->strm.total_in_hi32; - if (nbytes_out_lo32 != NULL) - *nbytes_out_lo32 = bzf->strm.total_out_lo32; - if (nbytes_out_hi32 != NULL) - *nbytes_out_hi32 = bzf->strm.total_out_hi32; - - BZ_SETERR(BZ_OK); - BZ2_bzCompressEnd ( &(bzf->strm) ); - free ( bzf ); -} - - -/*---------------------------------------------------*/ -BZFILE* BZ_API(BZ2_bzReadOpen) - ( int* bzerror, - FILE* f, - int verbosity, - int small, - void* unused, - int nUnused ) -{ - bzFile* bzf = NULL; - int ret; - - BZ_SETERR(BZ_OK); - - if (f == NULL || - (small != 0 && small != 1) || - (verbosity < 0 || verbosity > 4) || - (unused == NULL && nUnused != 0) || - (unused != NULL && (nUnused < 0 || nUnused > BZ_MAX_UNUSED))) - { BZ_SETERR(BZ_PARAM_ERROR); return NULL; }; - - if (ferror(f)) - { BZ_SETERR(BZ_IO_ERROR); return NULL; }; - - bzf = malloc ( sizeof(bzFile) ); - if (bzf == NULL) - { BZ_SETERR(BZ_MEM_ERROR); return NULL; }; - - BZ_SETERR(BZ_OK); - - bzf->initialisedOk = False; - bzf->handle = f; - bzf->bufN = 0; - bzf->writing = False; - bzf->strm.bzalloc = NULL; - bzf->strm.bzfree = NULL; - bzf->strm.opaque = NULL; - - while (nUnused > 0) { - bzf->buf[bzf->bufN] = *((UChar*)(unused)); bzf->bufN++; - unused = ((void*)( 1 + ((UChar*)(unused)) )); - nUnused--; - } - - ret = BZ2_bzDecompressInit ( &(bzf->strm), verbosity, small ); - if (ret != BZ_OK) - { BZ_SETERR(ret); free(bzf); return NULL; }; - - bzf->strm.avail_in = bzf->bufN; - bzf->strm.next_in = bzf->buf; - - bzf->initialisedOk = True; - return bzf; -} - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzReadClose) ( int *bzerror, BZFILE *b ) -{ - bzFile* bzf = (bzFile*)b; - - BZ_SETERR(BZ_OK); - if (bzf == NULL) - { BZ_SETERR(BZ_OK); return; }; - - if (bzf->writing) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; - - if (bzf->initialisedOk) - (void)BZ2_bzDecompressEnd ( &(bzf->strm) ); - free ( bzf ); -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzRead) - ( int* bzerror, - BZFILE* b, - void* buf, - int len ) -{ - Int32 n, ret; - bzFile* bzf = (bzFile*)b; - - BZ_SETERR(BZ_OK); - - if (bzf == NULL || buf == NULL || len < 0) - { BZ_SETERR(BZ_PARAM_ERROR); return 0; }; - - if (bzf->writing) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return 0; }; - - if (len == 0) - { BZ_SETERR(BZ_OK); return 0; }; - - bzf->strm.avail_out = len; - bzf->strm.next_out = buf; - - while (True) { - - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return 0; }; - - if (bzf->strm.avail_in == 0 && !myfeof(bzf->handle)) { - n = fread ( bzf->buf, sizeof(UChar), - BZ_MAX_UNUSED, bzf->handle ); - if (ferror(bzf->handle)) - { BZ_SETERR(BZ_IO_ERROR); return 0; }; - bzf->bufN = n; - bzf->strm.avail_in = bzf->bufN; - bzf->strm.next_in = bzf->buf; - } - - ret = BZ2_bzDecompress ( &(bzf->strm) ); - - if (ret != BZ_OK && ret != BZ_STREAM_END) - { BZ_SETERR(ret); return 0; }; - - if (ret == BZ_OK && myfeof(bzf->handle) && - bzf->strm.avail_in == 0 && bzf->strm.avail_out > 0) - { BZ_SETERR(BZ_UNEXPECTED_EOF); return 0; }; - - if (ret == BZ_STREAM_END) - { BZ_SETERR(BZ_STREAM_END); - return len - bzf->strm.avail_out; }; - if (bzf->strm.avail_out == 0) - { BZ_SETERR(BZ_OK); return len; }; - - } - - return 0; /*not reached*/ -} - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzReadGetUnused) - ( int* bzerror, - BZFILE* b, - void** unused, - int* nUnused ) -{ - bzFile* bzf = (bzFile*)b; - if (bzf == NULL) - { BZ_SETERR(BZ_PARAM_ERROR); return; }; - if (bzf->lastErr != BZ_STREAM_END) - { BZ_SETERR(BZ_SEQUENCE_ERROR); return; }; - if (unused == NULL || nUnused == NULL) - { BZ_SETERR(BZ_PARAM_ERROR); return; }; - - BZ_SETERR(BZ_OK); - *nUnused = bzf->strm.avail_in; - *unused = bzf->strm.next_in; -} -#endif - - -/*---------------------------------------------------*/ -/*--- Misc convenience stuff ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzBuffToBuffCompress) - ( char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int blockSize100k, - int verbosity, - int workFactor ) -{ - bz_stream strm; - int ret; - - if (dest == NULL || destLen == NULL || - source == NULL || - blockSize100k < 1 || blockSize100k > 9 || - verbosity < 0 || verbosity > 4 || - workFactor < 0 || workFactor > 250) - return BZ_PARAM_ERROR; - - if (workFactor == 0) workFactor = 30; - strm.bzalloc = NULL; - strm.bzfree = NULL; - strm.opaque = NULL; - ret = BZ2_bzCompressInit ( &strm, blockSize100k, - verbosity, workFactor ); - if (ret != BZ_OK) return ret; - - strm.next_in = source; - strm.next_out = dest; - strm.avail_in = sourceLen; - strm.avail_out = *destLen; - - ret = BZ2_bzCompress ( &strm, BZ_FINISH ); - if (ret == BZ_FINISH_OK) goto output_overflow; - if (ret != BZ_STREAM_END) goto errhandler; - - /* normal termination */ - *destLen -= strm.avail_out; - BZ2_bzCompressEnd ( &strm ); - return BZ_OK; - - output_overflow: - BZ2_bzCompressEnd ( &strm ); - return BZ_OUTBUFF_FULL; - - errhandler: - BZ2_bzCompressEnd ( &strm ); - return ret; -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzBuffToBuffDecompress) - ( char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int small, - int verbosity ) -{ - bz_stream strm; - int ret; - - if (dest == NULL || destLen == NULL || - source == NULL || - (small != 0 && small != 1) || - verbosity < 0 || verbosity > 4) - return BZ_PARAM_ERROR; - - strm.bzalloc = NULL; - strm.bzfree = NULL; - strm.opaque = NULL; - ret = BZ2_bzDecompressInit ( &strm, verbosity, small ); - if (ret != BZ_OK) return ret; - - strm.next_in = source; - strm.next_out = dest; - strm.avail_in = sourceLen; - strm.avail_out = *destLen; - - ret = BZ2_bzDecompress ( &strm ); - if (ret == BZ_OK) goto output_overflow_or_eof; - if (ret != BZ_STREAM_END) goto errhandler; - - /* normal termination */ - *destLen -= strm.avail_out; - BZ2_bzDecompressEnd ( &strm ); - return BZ_OK; - - output_overflow_or_eof: - if (strm.avail_out > 0) { - BZ2_bzDecompressEnd ( &strm ); - return BZ_UNEXPECTED_EOF; - } else { - BZ2_bzDecompressEnd ( &strm ); - return BZ_OUTBUFF_FULL; - }; - - errhandler: - BZ2_bzDecompressEnd ( &strm ); - return ret; -} - - -/*---------------------------------------------------*/ -/*-- - Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp) - to support better zlib compatibility. - This code is not _officially_ part of libbzip2 (yet); - I haven't tested it, documented it, or considered the - threading-safeness of it. - If this code breaks, please contact both Yoshioka and me. ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -/*-- - return version like "0.9.5d, 4-Sept-1999". ---*/ -const char * BZ_API(BZ2_bzlibVersion)(void) -{ - return BZ_VERSION; -} - - -#ifndef BZ_NO_STDIO -/*---------------------------------------------------*/ - -#if defined(_WIN32) || defined(OS2) || defined(MSDOS) -# include -# include -# define SET_BINARY_MODE(file) setmode(fileno(file),O_BINARY) -#else -# define SET_BINARY_MODE(file) -#endif -static -BZFILE * bzopen_or_bzdopen - ( const char *path, /* no use when bzdopen */ - int fd, /* no use when bzdopen */ - const char *mode, - int open_mode) /* bzopen: 0, bzdopen:1 */ -{ - int bzerr; - char unused[BZ_MAX_UNUSED]; - int blockSize100k = 9; - int writing = 0; - char mode2[10] = ""; - FILE *fp = NULL; - BZFILE *bzfp = NULL; - int verbosity = 0; - int workFactor = 30; - int smallMode = 0; - int nUnused = 0; - - if (mode == NULL) return NULL; - while (*mode) { - switch (*mode) { - case 'r': - writing = 0; break; - case 'w': - writing = 1; break; - case 's': - smallMode = 1; break; - default: - if (isdigit((int)(*mode))) { - blockSize100k = *mode-BZ_HDR_0; - } - } - mode++; - } - strcat(mode2, writing ? "w" : "r" ); - strcat(mode2,"b"); /* binary mode */ - - if (open_mode==0) { - if (path==NULL || strcmp(path,"")==0) { - fp = (writing ? stdout : stdin); - SET_BINARY_MODE(fp); - } else { - fp = fopen(path,mode2); - } - } else { -#ifdef BZ_STRICT_ANSI - fp = NULL; -#else - fp = fdopen(fd,mode2); -#endif - } - if (fp == NULL) return NULL; - - if (writing) { - /* Guard against total chaos and anarchy -- JRS */ - if (blockSize100k < 1) blockSize100k = 1; - if (blockSize100k > 9) blockSize100k = 9; - bzfp = BZ2_bzWriteOpen(&bzerr,fp,blockSize100k, - verbosity,workFactor); - } else { - bzfp = BZ2_bzReadOpen(&bzerr,fp,verbosity,smallMode, - unused,nUnused); - } - if (bzfp == NULL) { - if (fp != stdin && fp != stdout) fclose(fp); - return NULL; - } - return bzfp; -} - - -/*---------------------------------------------------*/ -/*-- - open file for read or write. - ex) bzopen("file","w9") - case path="" or NULL => use stdin or stdout. ---*/ -BZFILE * BZ_API(BZ2_bzopen) - ( const char *path, - const char *mode ) -{ - return bzopen_or_bzdopen(path,-1,mode,/*bzopen*/0); -} - - -/*---------------------------------------------------*/ -BZFILE * BZ_API(BZ2_bzdopen) - ( int fd, - const char *mode ) -{ - return bzopen_or_bzdopen(NULL,fd,mode,/*bzdopen*/1); -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzread) (BZFILE* b, void* buf, int len ) -{ - int bzerr, nread; - if (((bzFile*)b)->lastErr == BZ_STREAM_END) return 0; - nread = BZ2_bzRead(&bzerr,b,buf,len); - if (bzerr == BZ_OK || bzerr == BZ_STREAM_END) { - return nread; - } else { - return -1; - } -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzwrite) (BZFILE* b, void* buf, int len ) -{ - int bzerr; - - BZ2_bzWrite(&bzerr,b,buf,len); - if(bzerr == BZ_OK){ - return len; - }else{ - return -1; - } -} - - -/*---------------------------------------------------*/ -int BZ_API(BZ2_bzflush) (BZFILE *b) -{ - /* do nothing now... */ - return 0; -} - - -/*---------------------------------------------------*/ -void BZ_API(BZ2_bzclose) (BZFILE* b) -{ - int bzerr; - FILE *fp; - - if (b==NULL) {return;} - fp = ((bzFile *)b)->handle; - if(((bzFile*)b)->writing){ - BZ2_bzWriteClose(&bzerr,b,0,NULL,NULL); - if(bzerr != BZ_OK){ - BZ2_bzWriteClose(NULL,b,1,NULL,NULL); - } - }else{ - BZ2_bzReadClose(&bzerr,b); - } - if(fp!=stdin && fp!=stdout){ - fclose(fp); - } -} - - -/*---------------------------------------------------*/ -/*-- - return last error code ---*/ -static const char *bzerrorstrings[] = { - "OK" - ,"SEQUENCE_ERROR" - ,"PARAM_ERROR" - ,"MEM_ERROR" - ,"DATA_ERROR" - ,"DATA_ERROR_MAGIC" - ,"IO_ERROR" - ,"UNEXPECTED_EOF" - ,"OUTBUFF_FULL" - ,"CONFIG_ERROR" - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ - ,"???" /* for future */ -}; - - -const char * BZ_API(BZ2_bzerror) (BZFILE *b, int *errnum) -{ - int err = ((bzFile *)b)->lastErr; - - if(err>0) err = 0; - *errnum = err; - return bzerrorstrings[err*-1]; -} -#endif - - -/*-------------------------------------------------------------*/ -/*--- end bzlib.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/bzip2/bzlib.h b/src/plugins/contrib/devpak_plugin/bzip2/bzlib.h deleted file mode 100644 index 9c72d2d9da..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/bzlib.h +++ /dev/null @@ -1,282 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Public header file for the library. ---*/ -/*--- bzlib.h ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - - -#ifndef _BZLIB_H -#define _BZLIB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define BZ_RUN 0 -#define BZ_FLUSH 1 -#define BZ_FINISH 2 - -#define BZ_OK 0 -#define BZ_RUN_OK 1 -#define BZ_FLUSH_OK 2 -#define BZ_FINISH_OK 3 -#define BZ_STREAM_END 4 -#define BZ_SEQUENCE_ERROR (-1) -#define BZ_PARAM_ERROR (-2) -#define BZ_MEM_ERROR (-3) -#define BZ_DATA_ERROR (-4) -#define BZ_DATA_ERROR_MAGIC (-5) -#define BZ_IO_ERROR (-6) -#define BZ_UNEXPECTED_EOF (-7) -#define BZ_OUTBUFF_FULL (-8) -#define BZ_CONFIG_ERROR (-9) - -typedef - struct { - char *next_in; - unsigned int avail_in; - unsigned int total_in_lo32; - unsigned int total_in_hi32; - - char *next_out; - unsigned int avail_out; - unsigned int total_out_lo32; - unsigned int total_out_hi32; - - void *state; - - void *(*bzalloc)(void *,int,int); - void (*bzfree)(void *,void *); - void *opaque; - } - bz_stream; - - -#ifndef BZ_IMPORT -#define BZ_EXPORT -#endif - -#ifndef BZ_NO_STDIO -/* Need a definitition for FILE */ -#include -#endif - -#ifdef _WIN32 -# include -# ifdef small - /* windows.h define small to char */ -# undef small -# endif -# ifdef BZ_EXPORT -# define BZ_API(func) WINAPI func -# define BZ_EXTERN extern -# else - /* import windows dll dynamically */ -# define BZ_API(func) (WINAPI * func) -# define BZ_EXTERN -# endif -#else -# define BZ_API(func) func -# define BZ_EXTERN extern -#endif - - -/*-- Core (low-level) library functions --*/ - -BZ_EXTERN int BZ_API(BZ2_bzCompressInit) ( - bz_stream* strm, - int blockSize100k, - int verbosity, - int workFactor - ); - -BZ_EXTERN int BZ_API(BZ2_bzCompress) ( - bz_stream* strm, - int action - ); - -BZ_EXTERN int BZ_API(BZ2_bzCompressEnd) ( - bz_stream* strm - ); - -BZ_EXTERN int BZ_API(BZ2_bzDecompressInit) ( - bz_stream *strm, - int verbosity, - int small - ); - -BZ_EXTERN int BZ_API(BZ2_bzDecompress) ( - bz_stream* strm - ); - -BZ_EXTERN int BZ_API(BZ2_bzDecompressEnd) ( - bz_stream *strm - ); - - - -/*-- High(er) level library functions --*/ - -#ifndef BZ_NO_STDIO -#define BZ_MAX_UNUSED 5000 - -typedef void BZFILE; - -BZ_EXTERN BZFILE* BZ_API(BZ2_bzReadOpen) ( - int* bzerror, - FILE* f, - int verbosity, - int small, - void* unused, - int nUnused - ); - -BZ_EXTERN void BZ_API(BZ2_bzReadClose) ( - int* bzerror, - BZFILE* b - ); - -BZ_EXTERN void BZ_API(BZ2_bzReadGetUnused) ( - int* bzerror, - BZFILE* b, - void** unused, - int* nUnused - ); - -BZ_EXTERN int BZ_API(BZ2_bzRead) ( - int* bzerror, - BZFILE* b, - void* buf, - int len - ); - -BZ_EXTERN BZFILE* BZ_API(BZ2_bzWriteOpen) ( - int* bzerror, - FILE* f, - int blockSize100k, - int verbosity, - int workFactor - ); - -BZ_EXTERN void BZ_API(BZ2_bzWrite) ( - int* bzerror, - BZFILE* b, - void* buf, - int len - ); - -BZ_EXTERN void BZ_API(BZ2_bzWriteClose) ( - int* bzerror, - BZFILE* b, - int abandon, - unsigned int* nbytes_in, - unsigned int* nbytes_out - ); - -BZ_EXTERN void BZ_API(BZ2_bzWriteClose64) ( - int* bzerror, - BZFILE* b, - int abandon, - unsigned int* nbytes_in_lo32, - unsigned int* nbytes_in_hi32, - unsigned int* nbytes_out_lo32, - unsigned int* nbytes_out_hi32 - ); -#endif - - -/*-- Utility functions --*/ - -BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffCompress) ( - char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int blockSize100k, - int verbosity, - int workFactor - ); - -BZ_EXTERN int BZ_API(BZ2_bzBuffToBuffDecompress) ( - char* dest, - unsigned int* destLen, - char* source, - unsigned int sourceLen, - int small, - int verbosity - ); - - -/*-- - Code contributed by Yoshioka Tsuneo (tsuneo@rr.iij4u.or.jp) - to support better zlib compatibility. - This code is not _officially_ part of libbzip2 (yet); - I haven't tested it, documented it, or considered the - threading-safeness of it. - If this code breaks, please contact both Yoshioka and me. ---*/ - -BZ_EXTERN const char * BZ_API(BZ2_bzlibVersion) ( - void - ); - -#ifndef BZ_NO_STDIO -BZ_EXTERN BZFILE * BZ_API(BZ2_bzopen) ( - const char *path, - const char *mode - ); - -BZ_EXTERN BZFILE * BZ_API(BZ2_bzdopen) ( - int fd, - const char *mode - ); - -BZ_EXTERN int BZ_API(BZ2_bzread) ( - BZFILE* b, - void* buf, - int len - ); - -BZ_EXTERN int BZ_API(BZ2_bzwrite) ( - BZFILE* b, - void* buf, - int len - ); - -BZ_EXTERN int BZ_API(BZ2_bzflush) ( - BZFILE* b - ); - -BZ_EXTERN void BZ_API(BZ2_bzclose) ( - BZFILE* b - ); - -BZ_EXTERN const char * BZ_API(BZ2_bzerror) ( - BZFILE *b, - int *errnum - ); -#endif - -#ifdef __cplusplus -} -#endif - -#endif - -/*-------------------------------------------------------------*/ -/*--- end bzlib.h ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/bzip2/bzlib_private.h b/src/plugins/contrib/devpak_plugin/bzip2/bzlib_private.h deleted file mode 100644 index 019dd95dbc..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/bzlib_private.h +++ /dev/null @@ -1,509 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Private header file for the library. ---*/ -/*--- bzlib_private.h ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - - -#ifndef _BZLIB_PRIVATE_H -#define _BZLIB_PRIVATE_H - -#include - -#ifndef BZ_NO_STDIO -#include -#include -#include -#endif - -#include "bzlib.h" - - - -/*-- General stuff. --*/ - -#define BZ_VERSION "1.0.6, 6-Sept-2010" - -typedef char Char; -typedef unsigned char Bool; -typedef unsigned char UChar; -typedef int Int32; -typedef unsigned int UInt32; -typedef short Int16; -typedef unsigned short UInt16; - -#define True ((Bool)1) -#define False ((Bool)0) - -#ifndef __GNUC__ -#define __inline__ /* */ -#endif - -#ifndef BZ_NO_STDIO - -extern void BZ2_bz__AssertH__fail ( int errcode ); -#define AssertH(cond,errcode) \ - { if (!(cond)) BZ2_bz__AssertH__fail ( errcode ); } - -#if BZ_DEBUG -#define AssertD(cond,msg) \ - { if (!(cond)) { \ - fprintf ( stderr, \ - "\n\nlibbzip2(debug build): internal error\n\t%s\n", msg );\ - exit(1); \ - }} -#else -#define AssertD(cond,msg) /* */ -#endif - -#define VPrintf0(zf) \ - fprintf(stderr,zf) -#define VPrintf1(zf,za1) \ - fprintf(stderr,zf,za1) -#define VPrintf2(zf,za1,za2) \ - fprintf(stderr,zf,za1,za2) -#define VPrintf3(zf,za1,za2,za3) \ - fprintf(stderr,zf,za1,za2,za3) -#define VPrintf4(zf,za1,za2,za3,za4) \ - fprintf(stderr,zf,za1,za2,za3,za4) -#define VPrintf5(zf,za1,za2,za3,za4,za5) \ - fprintf(stderr,zf,za1,za2,za3,za4,za5) - -#else - -extern void bz_internal_error ( int errcode ); -#define AssertH(cond,errcode) \ - { if (!(cond)) bz_internal_error ( errcode ); } -#define AssertD(cond,msg) do { } while (0) -#define VPrintf0(zf) do { } while (0) -#define VPrintf1(zf,za1) do { } while (0) -#define VPrintf2(zf,za1,za2) do { } while (0) -#define VPrintf3(zf,za1,za2,za3) do { } while (0) -#define VPrintf4(zf,za1,za2,za3,za4) do { } while (0) -#define VPrintf5(zf,za1,za2,za3,za4,za5) do { } while (0) - -#endif - - -#define BZALLOC(nnn) (strm->bzalloc)(strm->opaque,(nnn),1) -#define BZFREE(ppp) (strm->bzfree)(strm->opaque,(ppp)) - - -/*-- Header bytes. --*/ - -#define BZ_HDR_B 0x42 /* 'B' */ -#define BZ_HDR_Z 0x5a /* 'Z' */ -#define BZ_HDR_h 0x68 /* 'h' */ -#define BZ_HDR_0 0x30 /* '0' */ - -/*-- Constants for the back end. --*/ - -#define BZ_MAX_ALPHA_SIZE 258 -#define BZ_MAX_CODE_LEN 23 - -#define BZ_RUNA 0 -#define BZ_RUNB 1 - -#define BZ_N_GROUPS 6 -#define BZ_G_SIZE 50 -#define BZ_N_ITERS 4 - -#define BZ_MAX_SELECTORS (2 + (900000 / BZ_G_SIZE)) - - - -/*-- Stuff for randomising repetitive blocks. --*/ - -extern Int32 BZ2_rNums[512]; - -#define BZ_RAND_DECLS \ - Int32 rNToGo; \ - Int32 rTPos \ - -#define BZ_RAND_INIT_MASK \ - s->rNToGo = 0; \ - s->rTPos = 0 \ - -#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0) - -#define BZ_RAND_UPD_MASK \ - if (s->rNToGo == 0) { \ - s->rNToGo = BZ2_rNums[s->rTPos]; \ - s->rTPos++; \ - if (s->rTPos == 512) s->rTPos = 0; \ - } \ - s->rNToGo--; - - - -/*-- Stuff for doing CRCs. --*/ - -extern UInt32 BZ2_crc32Table[256]; - -#define BZ_INITIALISE_CRC(crcVar) \ -{ \ - crcVar = 0xffffffffL; \ -} - -#define BZ_FINALISE_CRC(crcVar) \ -{ \ - crcVar = ~(crcVar); \ -} - -#define BZ_UPDATE_CRC(crcVar,cha) \ -{ \ - crcVar = (crcVar << 8) ^ \ - BZ2_crc32Table[(crcVar >> 24) ^ \ - ((UChar)cha)]; \ -} - - - -/*-- States and modes for compression. --*/ - -#define BZ_M_IDLE 1 -#define BZ_M_RUNNING 2 -#define BZ_M_FLUSHING 3 -#define BZ_M_FINISHING 4 - -#define BZ_S_OUTPUT 1 -#define BZ_S_INPUT 2 - -#define BZ_N_RADIX 2 -#define BZ_N_QSORT 12 -#define BZ_N_SHELL 18 -#define BZ_N_OVERSHOOT (BZ_N_RADIX + BZ_N_QSORT + BZ_N_SHELL + 2) - - - - -/*-- Structure holding all the compression-side stuff. --*/ - -typedef - struct { - /* pointer back to the struct bz_stream */ - bz_stream* strm; - - /* mode this stream is in, and whether inputting */ - /* or outputting data */ - Int32 mode; - Int32 state; - - /* remembers avail_in when flush/finish requested */ - UInt32 avail_in_expect; - - /* for doing the block sorting */ - UInt32* arr1; - UInt32* arr2; - UInt32* ftab; - Int32 origPtr; - - /* aliases for arr1 and arr2 */ - UInt32* ptr; - UChar* block; - UInt16* mtfv; - UChar* zbits; - - /* for deciding when to use the fallback sorting algorithm */ - Int32 workFactor; - - /* run-length-encoding of the input */ - UInt32 state_in_ch; - Int32 state_in_len; - BZ_RAND_DECLS; - - /* input and output limits and current posns */ - Int32 nblock; - Int32 nblockMAX; - Int32 numZ; - Int32 state_out_pos; - - /* map of bytes used in block */ - Int32 nInUse; - Bool inUse[256]; - UChar unseqToSeq[256]; - - /* the buffer for bit stream creation */ - UInt32 bsBuff; - Int32 bsLive; - - /* block and combined CRCs */ - UInt32 blockCRC; - UInt32 combinedCRC; - - /* misc administratium */ - Int32 verbosity; - Int32 blockNo; - Int32 blockSize100k; - - /* stuff for coding the MTF values */ - Int32 nMTF; - Int32 mtfFreq [BZ_MAX_ALPHA_SIZE]; - UChar selector [BZ_MAX_SELECTORS]; - UChar selectorMtf[BZ_MAX_SELECTORS]; - - UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 code [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 rfreq [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - /* second dimension: only 3 needed; 4 makes index calculations faster */ - UInt32 len_pack[BZ_MAX_ALPHA_SIZE][4]; - - } - EState; - - - -/*-- externs for compression. --*/ - -extern void -BZ2_blockSort ( EState* ); - -extern void -BZ2_compressBlock ( EState*, Bool ); - -extern void -BZ2_bsInitWrite ( EState* ); - -extern void -BZ2_hbAssignCodes ( Int32*, UChar*, Int32, Int32, Int32 ); - -extern void -BZ2_hbMakeCodeLengths ( UChar*, Int32*, Int32, Int32 ); - - - -/*-- states for decompression. --*/ - -#define BZ_X_IDLE 1 -#define BZ_X_OUTPUT 2 - -#define BZ_X_MAGIC_1 10 -#define BZ_X_MAGIC_2 11 -#define BZ_X_MAGIC_3 12 -#define BZ_X_MAGIC_4 13 -#define BZ_X_BLKHDR_1 14 -#define BZ_X_BLKHDR_2 15 -#define BZ_X_BLKHDR_3 16 -#define BZ_X_BLKHDR_4 17 -#define BZ_X_BLKHDR_5 18 -#define BZ_X_BLKHDR_6 19 -#define BZ_X_BCRC_1 20 -#define BZ_X_BCRC_2 21 -#define BZ_X_BCRC_3 22 -#define BZ_X_BCRC_4 23 -#define BZ_X_RANDBIT 24 -#define BZ_X_ORIGPTR_1 25 -#define BZ_X_ORIGPTR_2 26 -#define BZ_X_ORIGPTR_3 27 -#define BZ_X_MAPPING_1 28 -#define BZ_X_MAPPING_2 29 -#define BZ_X_SELECTOR_1 30 -#define BZ_X_SELECTOR_2 31 -#define BZ_X_SELECTOR_3 32 -#define BZ_X_CODING_1 33 -#define BZ_X_CODING_2 34 -#define BZ_X_CODING_3 35 -#define BZ_X_MTF_1 36 -#define BZ_X_MTF_2 37 -#define BZ_X_MTF_3 38 -#define BZ_X_MTF_4 39 -#define BZ_X_MTF_5 40 -#define BZ_X_MTF_6 41 -#define BZ_X_ENDHDR_2 42 -#define BZ_X_ENDHDR_3 43 -#define BZ_X_ENDHDR_4 44 -#define BZ_X_ENDHDR_5 45 -#define BZ_X_ENDHDR_6 46 -#define BZ_X_CCRC_1 47 -#define BZ_X_CCRC_2 48 -#define BZ_X_CCRC_3 49 -#define BZ_X_CCRC_4 50 - - - -/*-- Constants for the fast MTF decoder. --*/ - -#define MTFA_SIZE 4096 -#define MTFL_SIZE 16 - - - -/*-- Structure holding all the decompression-side stuff. --*/ - -typedef - struct { - /* pointer back to the struct bz_stream */ - bz_stream* strm; - - /* state indicator for this stream */ - Int32 state; - - /* for doing the final run-length decoding */ - UChar state_out_ch; - Int32 state_out_len; - Bool blockRandomised; - BZ_RAND_DECLS; - - /* the buffer for bit stream reading */ - UInt32 bsBuff; - Int32 bsLive; - - /* misc administratium */ - Int32 blockSize100k; - Bool smallDecompress; - Int32 currBlockNo; - Int32 verbosity; - - /* for undoing the Burrows-Wheeler transform */ - Int32 origPtr; - UInt32 tPos; - Int32 k0; - Int32 unzftab[256]; - Int32 nblock_used; - Int32 cftab[257]; - Int32 cftabCopy[257]; - - /* for undoing the Burrows-Wheeler transform (FAST) */ - UInt32 *tt; - - /* for undoing the Burrows-Wheeler transform (SMALL) */ - UInt16 *ll16; - UChar *ll4; - - /* stored and calculated CRCs */ - UInt32 storedBlockCRC; - UInt32 storedCombinedCRC; - UInt32 calculatedBlockCRC; - UInt32 calculatedCombinedCRC; - - /* map of bytes used in block */ - Int32 nInUse; - Bool inUse[256]; - Bool inUse16[16]; - UChar seqToUnseq[256]; - - /* for decoding the MTF values */ - UChar mtfa [MTFA_SIZE]; - Int32 mtfbase[256 / MTFL_SIZE]; - UChar selector [BZ_MAX_SELECTORS]; - UChar selectorMtf[BZ_MAX_SELECTORS]; - UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - - Int32 limit [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 base [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 perm [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 minLens[BZ_N_GROUPS]; - - /* save area for scalars in the main decompress code */ - Int32 save_i; - Int32 save_j; - Int32 save_t; - Int32 save_alphaSize; - Int32 save_nGroups; - Int32 save_nSelectors; - Int32 save_EOB; - Int32 save_groupNo; - Int32 save_groupPos; - Int32 save_nextSym; - Int32 save_nblockMAX; - Int32 save_nblock; - Int32 save_es; - Int32 save_N; - Int32 save_curr; - Int32 save_zt; - Int32 save_zn; - Int32 save_zvec; - Int32 save_zj; - Int32 save_gSel; - Int32 save_gMinlen; - Int32* save_gLimit; - Int32* save_gBase; - Int32* save_gPerm; - - } - DState; - - - -/*-- Macros for decompression. --*/ - -#define BZ_GET_FAST(cccc) \ - /* c_tPos is unsigned, hence test < 0 is pointless. */ \ - if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \ - s->tPos = s->tt[s->tPos]; \ - cccc = (UChar)(s->tPos & 0xff); \ - s->tPos >>= 8; - -#define BZ_GET_FAST_C(cccc) \ - /* c_tPos is unsigned, hence test < 0 is pointless. */ \ - if (c_tPos >= (UInt32)100000 * (UInt32)ro_blockSize100k) return True; \ - c_tPos = c_tt[c_tPos]; \ - cccc = (UChar)(c_tPos & 0xff); \ - c_tPos >>= 8; - -#define SET_LL4(i,n) \ - { if (((i) & 0x1) == 0) \ - s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0xf0) | (n); else \ - s->ll4[(i) >> 1] = (s->ll4[(i) >> 1] & 0x0f) | ((n) << 4); \ - } - -#define GET_LL4(i) \ - ((((UInt32)(s->ll4[(i) >> 1])) >> (((i) << 2) & 0x4)) & 0xF) - -#define SET_LL(i,n) \ - { s->ll16[i] = (UInt16)(n & 0x0000ffff); \ - SET_LL4(i, n >> 16); \ - } - -#define GET_LL(i) \ - (((UInt32)s->ll16[i]) | (GET_LL4(i) << 16)) - -#define BZ_GET_SMALL(cccc) \ - /* c_tPos is unsigned, hence test < 0 is pointless. */ \ - if (s->tPos >= (UInt32)100000 * (UInt32)s->blockSize100k) return True; \ - cccc = BZ2_indexIntoF ( s->tPos, s->cftab ); \ - s->tPos = GET_LL(s->tPos); - - -/*-- externs for decompression. --*/ - -extern Int32 -BZ2_indexIntoF ( Int32, Int32* ); - -extern Int32 -BZ2_decompress ( DState* ); - -extern void -BZ2_hbCreateDecodeTables ( Int32*, Int32*, Int32*, UChar*, - Int32, Int32, Int32 ); - - -#endif - - -/*-- BZ_NO_STDIO seems to make NULL disappear on some platforms. --*/ - -#ifdef BZ_NO_STDIO -#ifndef NULL -#define NULL 0 -#endif -#endif - - -/*-------------------------------------------------------------*/ -/*--- end bzlib_private.h ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/bzip2/compress.c b/src/plugins/contrib/devpak_plugin/bzip2/compress.c deleted file mode 100644 index 81c18fa214..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/compress.c +++ /dev/null @@ -1,672 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Compression machinery (not incl block sorting) ---*/ -/*--- compress.c ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - - -/* CHANGES - 0.9.0 -- original version. - 0.9.0a/b -- no changes in this file. - 0.9.0c -- changed setting of nGroups in sendMTFValues() - so as to do a bit better on small files -*/ - -#include "bzlib_private.h" - - -/*---------------------------------------------------*/ -/*--- Bit stream I/O ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -void BZ2_bsInitWrite ( EState* s ) -{ - s->bsLive = 0; - s->bsBuff = 0; -} - - -/*---------------------------------------------------*/ -static -void bsFinishWrite ( EState* s ) -{ - while (s->bsLive > 0) { - s->zbits[s->numZ] = (UChar)(s->bsBuff >> 24); - s->numZ++; - s->bsBuff <<= 8; - s->bsLive -= 8; - } -} - - -/*---------------------------------------------------*/ -#define bsNEEDW(nz) \ -{ \ - while (s->bsLive >= 8) { \ - s->zbits[s->numZ] \ - = (UChar)(s->bsBuff >> 24); \ - s->numZ++; \ - s->bsBuff <<= 8; \ - s->bsLive -= 8; \ - } \ -} - - -/*---------------------------------------------------*/ -static -__inline__ -void bsW ( EState* s, Int32 n, UInt32 v ) -{ - bsNEEDW ( n ); - s->bsBuff |= (v << (32 - s->bsLive - n)); - s->bsLive += n; -} - - -/*---------------------------------------------------*/ -static -void bsPutUInt32 ( EState* s, UInt32 u ) -{ - bsW ( s, 8, (u >> 24) & 0xffL ); - bsW ( s, 8, (u >> 16) & 0xffL ); - bsW ( s, 8, (u >> 8) & 0xffL ); - bsW ( s, 8, u & 0xffL ); -} - - -/*---------------------------------------------------*/ -static -void bsPutUChar ( EState* s, UChar c ) -{ - bsW( s, 8, (UInt32)c ); -} - - -/*---------------------------------------------------*/ -/*--- The back end proper ---*/ -/*---------------------------------------------------*/ - -/*---------------------------------------------------*/ -static -void makeMaps_e ( EState* s ) -{ - Int32 i; - s->nInUse = 0; - for (i = 0; i < 256; i++) - if (s->inUse[i]) { - s->unseqToSeq[i] = s->nInUse; - s->nInUse++; - } -} - - -/*---------------------------------------------------*/ -static -void generateMTFValues ( EState* s ) -{ - UChar yy[256]; - Int32 i, j; - Int32 zPend; - Int32 wr; - Int32 EOB; - - /* - After sorting (eg, here), - s->arr1 [ 0 .. s->nblock-1 ] holds sorted order, - and - ((UChar*)s->arr2) [ 0 .. s->nblock-1 ] - holds the original block data. - - The first thing to do is generate the MTF values, - and put them in - ((UInt16*)s->arr1) [ 0 .. s->nblock-1 ]. - Because there are strictly fewer or equal MTF values - than block values, ptr values in this area are overwritten - with MTF values only when they are no longer needed. - - The final compressed bitstream is generated into the - area starting at - (UChar*) (&((UChar*)s->arr2)[s->nblock]) - - These storage aliases are set up in bzCompressInit(), - except for the last one, which is arranged in - compressBlock(). - */ - UInt32* ptr = s->ptr; - UChar* block = s->block; - UInt16* mtfv = s->mtfv; - - makeMaps_e ( s ); - EOB = s->nInUse+1; - - for (i = 0; i <= EOB; i++) s->mtfFreq[i] = 0; - - wr = 0; - zPend = 0; - for (i = 0; i < s->nInUse; i++) yy[i] = (UChar) i; - - for (i = 0; i < s->nblock; i++) { - UChar ll_i; - AssertD ( wr <= i, "generateMTFValues(1)" ); - j = ptr[i]-1; if (j < 0) j += s->nblock; - ll_i = s->unseqToSeq[block[j]]; - AssertD ( ll_i < s->nInUse, "generateMTFValues(2a)" ); - - if (yy[0] == ll_i) { - zPend++; - } else { - - if (zPend > 0) { - zPend--; - while (True) { - if (zPend & 1) { - mtfv[wr] = BZ_RUNB; wr++; - s->mtfFreq[BZ_RUNB]++; - } else { - mtfv[wr] = BZ_RUNA; wr++; - s->mtfFreq[BZ_RUNA]++; - } - if (zPend < 2) break; - zPend = (zPend - 2) / 2; - }; - zPend = 0; - } - { - register UChar rtmp; - register UChar* ryy_j; - register UChar rll_i; - rtmp = yy[1]; - yy[1] = yy[0]; - ryy_j = &(yy[1]); - rll_i = ll_i; - while ( rll_i != rtmp ) { - register UChar rtmp2; - ryy_j++; - rtmp2 = rtmp; - rtmp = *ryy_j; - *ryy_j = rtmp2; - }; - yy[0] = rtmp; - j = ryy_j - &(yy[0]); - mtfv[wr] = j+1; wr++; s->mtfFreq[j+1]++; - } - - } - } - - if (zPend > 0) { - zPend--; - while (True) { - if (zPend & 1) { - mtfv[wr] = BZ_RUNB; wr++; - s->mtfFreq[BZ_RUNB]++; - } else { - mtfv[wr] = BZ_RUNA; wr++; - s->mtfFreq[BZ_RUNA]++; - } - if (zPend < 2) break; - zPend = (zPend - 2) / 2; - }; - zPend = 0; - } - - mtfv[wr] = EOB; wr++; s->mtfFreq[EOB]++; - - s->nMTF = wr; -} - - -/*---------------------------------------------------*/ -#define BZ_LESSER_ICOST 0 -#define BZ_GREATER_ICOST 15 - -static -void sendMTFValues ( EState* s ) -{ - Int32 v, t, i, j, gs, ge, totc, bt, bc, iter; - Int32 nSelectors, alphaSize, minLen, maxLen, selCtr; - Int32 nGroups, nBytes; - - /*-- - UChar len [BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - is a global since the decoder also needs it. - - Int32 code[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - Int32 rfreq[BZ_N_GROUPS][BZ_MAX_ALPHA_SIZE]; - are also globals only used in this proc. - Made global to keep stack frame size small. - --*/ - - - UInt16 cost[BZ_N_GROUPS]; - Int32 fave[BZ_N_GROUPS]; - - UInt16* mtfv = s->mtfv; - - if (s->verbosity >= 3) - VPrintf3( " %d in block, %d after MTF & 1-2 coding, " - "%d+2 syms in use\n", - s->nblock, s->nMTF, s->nInUse ); - - alphaSize = s->nInUse+2; - for (t = 0; t < BZ_N_GROUPS; t++) - for (v = 0; v < alphaSize; v++) - s->len[t][v] = BZ_GREATER_ICOST; - - /*--- Decide how many coding tables to use ---*/ - AssertH ( s->nMTF > 0, 3001 ); - if (s->nMTF < 200) nGroups = 2; else - if (s->nMTF < 600) nGroups = 3; else - if (s->nMTF < 1200) nGroups = 4; else - if (s->nMTF < 2400) nGroups = 5; else - nGroups = 6; - - /*--- Generate an initial set of coding tables ---*/ - { - Int32 nPart, remF, tFreq, aFreq; - - nPart = nGroups; - remF = s->nMTF; - gs = 0; - while (nPart > 0) { - tFreq = remF / nPart; - ge = gs-1; - aFreq = 0; - while (aFreq < tFreq && ge < alphaSize-1) { - ge++; - aFreq += s->mtfFreq[ge]; - } - - if (ge > gs - && nPart != nGroups && nPart != 1 - && ((nGroups-nPart) % 2 == 1)) { - aFreq -= s->mtfFreq[ge]; - ge--; - } - - if (s->verbosity >= 3) - VPrintf5( " initial group %d, [%d .. %d], " - "has %d syms (%4.1f%%)\n", - nPart, gs, ge, aFreq, - (100.0 * (float)aFreq) / (float)(s->nMTF) ); - - for (v = 0; v < alphaSize; v++) - if (v >= gs && v <= ge) - s->len[nPart-1][v] = BZ_LESSER_ICOST; else - s->len[nPart-1][v] = BZ_GREATER_ICOST; - - nPart--; - gs = ge+1; - remF -= aFreq; - } - } - - /*--- - Iterate up to BZ_N_ITERS times to improve the tables. - ---*/ - for (iter = 0; iter < BZ_N_ITERS; iter++) { - - for (t = 0; t < nGroups; t++) fave[t] = 0; - - for (t = 0; t < nGroups; t++) - for (v = 0; v < alphaSize; v++) - s->rfreq[t][v] = 0; - - /*--- - Set up an auxiliary length table which is used to fast-track - the common case (nGroups == 6). - ---*/ - if (nGroups == 6) { - for (v = 0; v < alphaSize; v++) { - s->len_pack[v][0] = (s->len[1][v] << 16) | s->len[0][v]; - s->len_pack[v][1] = (s->len[3][v] << 16) | s->len[2][v]; - s->len_pack[v][2] = (s->len[5][v] << 16) | s->len[4][v]; - } - } - - nSelectors = 0; - totc = 0; - gs = 0; - while (True) { - - /*--- Set group start & end marks. --*/ - if (gs >= s->nMTF) break; - ge = gs + BZ_G_SIZE - 1; - if (ge >= s->nMTF) ge = s->nMTF-1; - - /*-- - Calculate the cost of this group as coded - by each of the coding tables. - --*/ - for (t = 0; t < nGroups; t++) cost[t] = 0; - - if (nGroups == 6 && 50 == ge-gs+1) { - /*--- fast track the common case ---*/ - register UInt32 cost01, cost23, cost45; - register UInt16 icv; - cost01 = cost23 = cost45 = 0; - -# define BZ_ITER(nn) \ - icv = mtfv[gs+(nn)]; \ - cost01 += s->len_pack[icv][0]; \ - cost23 += s->len_pack[icv][1]; \ - cost45 += s->len_pack[icv][2]; \ - - BZ_ITER(0); BZ_ITER(1); BZ_ITER(2); BZ_ITER(3); BZ_ITER(4); - BZ_ITER(5); BZ_ITER(6); BZ_ITER(7); BZ_ITER(8); BZ_ITER(9); - BZ_ITER(10); BZ_ITER(11); BZ_ITER(12); BZ_ITER(13); BZ_ITER(14); - BZ_ITER(15); BZ_ITER(16); BZ_ITER(17); BZ_ITER(18); BZ_ITER(19); - BZ_ITER(20); BZ_ITER(21); BZ_ITER(22); BZ_ITER(23); BZ_ITER(24); - BZ_ITER(25); BZ_ITER(26); BZ_ITER(27); BZ_ITER(28); BZ_ITER(29); - BZ_ITER(30); BZ_ITER(31); BZ_ITER(32); BZ_ITER(33); BZ_ITER(34); - BZ_ITER(35); BZ_ITER(36); BZ_ITER(37); BZ_ITER(38); BZ_ITER(39); - BZ_ITER(40); BZ_ITER(41); BZ_ITER(42); BZ_ITER(43); BZ_ITER(44); - BZ_ITER(45); BZ_ITER(46); BZ_ITER(47); BZ_ITER(48); BZ_ITER(49); - -# undef BZ_ITER - - cost[0] = cost01 & 0xffff; cost[1] = cost01 >> 16; - cost[2] = cost23 & 0xffff; cost[3] = cost23 >> 16; - cost[4] = cost45 & 0xffff; cost[5] = cost45 >> 16; - - } else { - /*--- slow version which correctly handles all situations ---*/ - for (i = gs; i <= ge; i++) { - UInt16 icv = mtfv[i]; - for (t = 0; t < nGroups; t++) cost[t] += s->len[t][icv]; - } - } - - /*-- - Find the coding table which is best for this group, - and record its identity in the selector table. - --*/ - bc = 999999999; bt = -1; - for (t = 0; t < nGroups; t++) - if (cost[t] < bc) { bc = cost[t]; bt = t; }; - totc += bc; - fave[bt]++; - s->selector[nSelectors] = bt; - nSelectors++; - - /*-- - Increment the symbol frequencies for the selected table. - --*/ - if (nGroups == 6 && 50 == ge-gs+1) { - /*--- fast track the common case ---*/ - -# define BZ_ITUR(nn) s->rfreq[bt][ mtfv[gs+(nn)] ]++ - - BZ_ITUR(0); BZ_ITUR(1); BZ_ITUR(2); BZ_ITUR(3); BZ_ITUR(4); - BZ_ITUR(5); BZ_ITUR(6); BZ_ITUR(7); BZ_ITUR(8); BZ_ITUR(9); - BZ_ITUR(10); BZ_ITUR(11); BZ_ITUR(12); BZ_ITUR(13); BZ_ITUR(14); - BZ_ITUR(15); BZ_ITUR(16); BZ_ITUR(17); BZ_ITUR(18); BZ_ITUR(19); - BZ_ITUR(20); BZ_ITUR(21); BZ_ITUR(22); BZ_ITUR(23); BZ_ITUR(24); - BZ_ITUR(25); BZ_ITUR(26); BZ_ITUR(27); BZ_ITUR(28); BZ_ITUR(29); - BZ_ITUR(30); BZ_ITUR(31); BZ_ITUR(32); BZ_ITUR(33); BZ_ITUR(34); - BZ_ITUR(35); BZ_ITUR(36); BZ_ITUR(37); BZ_ITUR(38); BZ_ITUR(39); - BZ_ITUR(40); BZ_ITUR(41); BZ_ITUR(42); BZ_ITUR(43); BZ_ITUR(44); - BZ_ITUR(45); BZ_ITUR(46); BZ_ITUR(47); BZ_ITUR(48); BZ_ITUR(49); - -# undef BZ_ITUR - - } else { - /*--- slow version which correctly handles all situations ---*/ - for (i = gs; i <= ge; i++) - s->rfreq[bt][ mtfv[i] ]++; - } - - gs = ge+1; - } - if (s->verbosity >= 3) { - VPrintf2 ( " pass %d: size is %d, grp uses are ", - iter+1, totc/8 ); - for (t = 0; t < nGroups; t++) - VPrintf1 ( "%d ", fave[t] ); - VPrintf0 ( "\n" ); - } - - /*-- - Recompute the tables based on the accumulated frequencies. - --*/ - /* maxLen was changed from 20 to 17 in bzip2-1.0.3. See - comment in huffman.c for details. */ - for (t = 0; t < nGroups; t++) - BZ2_hbMakeCodeLengths ( &(s->len[t][0]), &(s->rfreq[t][0]), - alphaSize, 17 /*20*/ ); - } - - - AssertH( nGroups < 8, 3002 ); - AssertH( nSelectors < 32768 && - nSelectors <= (2 + (900000 / BZ_G_SIZE)), - 3003 ); - - - /*--- Compute MTF values for the selectors. ---*/ - { - UChar pos[BZ_N_GROUPS], ll_i, tmp2, tmp; - for (i = 0; i < nGroups; i++) pos[i] = i; - for (i = 0; i < nSelectors; i++) { - ll_i = s->selector[i]; - j = 0; - tmp = pos[j]; - while ( ll_i != tmp ) { - j++; - tmp2 = tmp; - tmp = pos[j]; - pos[j] = tmp2; - }; - pos[0] = tmp; - s->selectorMtf[i] = j; - } - }; - - /*--- Assign actual codes for the tables. --*/ - for (t = 0; t < nGroups; t++) { - minLen = 32; - maxLen = 0; - for (i = 0; i < alphaSize; i++) { - if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; - if (s->len[t][i] < minLen) minLen = s->len[t][i]; - } - AssertH ( !(maxLen > 17 /*20*/ ), 3004 ); - AssertH ( !(minLen < 1), 3005 ); - BZ2_hbAssignCodes ( &(s->code[t][0]), &(s->len[t][0]), - minLen, maxLen, alphaSize ); - } - - /*--- Transmit the mapping table. ---*/ - { - Bool inUse16[16]; - for (i = 0; i < 16; i++) { - inUse16[i] = False; - for (j = 0; j < 16; j++) - if (s->inUse[i * 16 + j]) inUse16[i] = True; - } - - nBytes = s->numZ; - for (i = 0; i < 16; i++) - if (inUse16[i]) bsW(s,1,1); else bsW(s,1,0); - - for (i = 0; i < 16; i++) - if (inUse16[i]) - for (j = 0; j < 16; j++) { - if (s->inUse[i * 16 + j]) bsW(s,1,1); else bsW(s,1,0); - } - - if (s->verbosity >= 3) - VPrintf1( " bytes: mapping %d, ", s->numZ-nBytes ); - } - - /*--- Now the selectors. ---*/ - nBytes = s->numZ; - bsW ( s, 3, nGroups ); - bsW ( s, 15, nSelectors ); - for (i = 0; i < nSelectors; i++) { - for (j = 0; j < s->selectorMtf[i]; j++) bsW(s,1,1); - bsW(s,1,0); - } - if (s->verbosity >= 3) - VPrintf1( "selectors %d, ", s->numZ-nBytes ); - - /*--- Now the coding tables. ---*/ - nBytes = s->numZ; - - for (t = 0; t < nGroups; t++) { - Int32 curr = s->len[t][0]; - bsW ( s, 5, curr ); - for (i = 0; i < alphaSize; i++) { - while (curr < s->len[t][i]) { bsW(s,2,2); curr++; /* 10 */ }; - while (curr > s->len[t][i]) { bsW(s,2,3); curr--; /* 11 */ }; - bsW ( s, 1, 0 ); - } - } - - if (s->verbosity >= 3) - VPrintf1 ( "code lengths %d, ", s->numZ-nBytes ); - - /*--- And finally, the block data proper ---*/ - nBytes = s->numZ; - selCtr = 0; - gs = 0; - while (True) { - if (gs >= s->nMTF) break; - ge = gs + BZ_G_SIZE - 1; - if (ge >= s->nMTF) ge = s->nMTF-1; - AssertH ( s->selector[selCtr] < nGroups, 3006 ); - - if (nGroups == 6 && 50 == ge-gs+1) { - /*--- fast track the common case ---*/ - UInt16 mtfv_i; - UChar* s_len_sel_selCtr - = &(s->len[s->selector[selCtr]][0]); - Int32* s_code_sel_selCtr - = &(s->code[s->selector[selCtr]][0]); - -# define BZ_ITAH(nn) \ - mtfv_i = mtfv[gs+(nn)]; \ - bsW ( s, \ - s_len_sel_selCtr[mtfv_i], \ - s_code_sel_selCtr[mtfv_i] ) - - BZ_ITAH(0); BZ_ITAH(1); BZ_ITAH(2); BZ_ITAH(3); BZ_ITAH(4); - BZ_ITAH(5); BZ_ITAH(6); BZ_ITAH(7); BZ_ITAH(8); BZ_ITAH(9); - BZ_ITAH(10); BZ_ITAH(11); BZ_ITAH(12); BZ_ITAH(13); BZ_ITAH(14); - BZ_ITAH(15); BZ_ITAH(16); BZ_ITAH(17); BZ_ITAH(18); BZ_ITAH(19); - BZ_ITAH(20); BZ_ITAH(21); BZ_ITAH(22); BZ_ITAH(23); BZ_ITAH(24); - BZ_ITAH(25); BZ_ITAH(26); BZ_ITAH(27); BZ_ITAH(28); BZ_ITAH(29); - BZ_ITAH(30); BZ_ITAH(31); BZ_ITAH(32); BZ_ITAH(33); BZ_ITAH(34); - BZ_ITAH(35); BZ_ITAH(36); BZ_ITAH(37); BZ_ITAH(38); BZ_ITAH(39); - BZ_ITAH(40); BZ_ITAH(41); BZ_ITAH(42); BZ_ITAH(43); BZ_ITAH(44); - BZ_ITAH(45); BZ_ITAH(46); BZ_ITAH(47); BZ_ITAH(48); BZ_ITAH(49); - -# undef BZ_ITAH - - } else { - /*--- slow version which correctly handles all situations ---*/ - for (i = gs; i <= ge; i++) { - bsW ( s, - s->len [s->selector[selCtr]] [mtfv[i]], - s->code [s->selector[selCtr]] [mtfv[i]] ); - } - } - - - gs = ge+1; - selCtr++; - } - AssertH( selCtr == nSelectors, 3007 ); - - if (s->verbosity >= 3) - VPrintf1( "codes %d\n", s->numZ-nBytes ); -} - - -/*---------------------------------------------------*/ -void BZ2_compressBlock ( EState* s, Bool is_last_block ) -{ - if (s->nblock > 0) { - - BZ_FINALISE_CRC ( s->blockCRC ); - s->combinedCRC = (s->combinedCRC << 1) | (s->combinedCRC >> 31); - s->combinedCRC ^= s->blockCRC; - if (s->blockNo > 1) s->numZ = 0; - - if (s->verbosity >= 2) - VPrintf4( " block %d: crc = 0x%08x, " - "combined CRC = 0x%08x, size = %d\n", - s->blockNo, s->blockCRC, s->combinedCRC, s->nblock ); - - BZ2_blockSort ( s ); - } - - s->zbits = (UChar*) (&((UChar*)s->arr2)[s->nblock]); - - /*-- If this is the first block, create the stream header. --*/ - if (s->blockNo == 1) { - BZ2_bsInitWrite ( s ); - bsPutUChar ( s, BZ_HDR_B ); - bsPutUChar ( s, BZ_HDR_Z ); - bsPutUChar ( s, BZ_HDR_h ); - bsPutUChar ( s, (UChar)(BZ_HDR_0 + s->blockSize100k) ); - } - - if (s->nblock > 0) { - - bsPutUChar ( s, 0x31 ); bsPutUChar ( s, 0x41 ); - bsPutUChar ( s, 0x59 ); bsPutUChar ( s, 0x26 ); - bsPutUChar ( s, 0x53 ); bsPutUChar ( s, 0x59 ); - - /*-- Now the block's CRC, so it is in a known place. --*/ - bsPutUInt32 ( s, s->blockCRC ); - - /*-- - Now a single bit indicating (non-)randomisation. - As of version 0.9.5, we use a better sorting algorithm - which makes randomisation unnecessary. So always set - the randomised bit to 'no'. Of course, the decoder - still needs to be able to handle randomised blocks - so as to maintain backwards compatibility with - older versions of bzip2. - --*/ - bsW(s,1,0); - - bsW ( s, 24, s->origPtr ); - generateMTFValues ( s ); - sendMTFValues ( s ); - } - - - /*-- If this is the last block, add the stream trailer. --*/ - if (is_last_block) { - - bsPutUChar ( s, 0x17 ); bsPutUChar ( s, 0x72 ); - bsPutUChar ( s, 0x45 ); bsPutUChar ( s, 0x38 ); - bsPutUChar ( s, 0x50 ); bsPutUChar ( s, 0x90 ); - bsPutUInt32 ( s, s->combinedCRC ); - if (s->verbosity >= 2) - VPrintf1( " final combined CRC = 0x%08x\n ", s->combinedCRC ); - bsFinishWrite ( s ); - } -} - - -/*-------------------------------------------------------------*/ -/*--- end compress.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/bzip2/crctable.c b/src/plugins/contrib/devpak_plugin/bzip2/crctable.c deleted file mode 100644 index 868fc0123b..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/crctable.c +++ /dev/null @@ -1,104 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Table for doing CRCs ---*/ -/*--- crctable.c ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - - -#include "bzlib_private.h" - -/*-- - I think this is an implementation of the AUTODIN-II, - Ethernet & FDDI 32-bit CRC standard. Vaguely derived - from code by Rob Warnock, in Section 51 of the - comp.compression FAQ. ---*/ - -UInt32 BZ2_crc32Table[256] = { - - /*-- Ugly, innit? --*/ - - 0x00000000L, 0x04c11db7L, 0x09823b6eL, 0x0d4326d9L, - 0x130476dcL, 0x17c56b6bL, 0x1a864db2L, 0x1e475005L, - 0x2608edb8L, 0x22c9f00fL, 0x2f8ad6d6L, 0x2b4bcb61L, - 0x350c9b64L, 0x31cd86d3L, 0x3c8ea00aL, 0x384fbdbdL, - 0x4c11db70L, 0x48d0c6c7L, 0x4593e01eL, 0x4152fda9L, - 0x5f15adacL, 0x5bd4b01bL, 0x569796c2L, 0x52568b75L, - 0x6a1936c8L, 0x6ed82b7fL, 0x639b0da6L, 0x675a1011L, - 0x791d4014L, 0x7ddc5da3L, 0x709f7b7aL, 0x745e66cdL, - 0x9823b6e0L, 0x9ce2ab57L, 0x91a18d8eL, 0x95609039L, - 0x8b27c03cL, 0x8fe6dd8bL, 0x82a5fb52L, 0x8664e6e5L, - 0xbe2b5b58L, 0xbaea46efL, 0xb7a96036L, 0xb3687d81L, - 0xad2f2d84L, 0xa9ee3033L, 0xa4ad16eaL, 0xa06c0b5dL, - 0xd4326d90L, 0xd0f37027L, 0xddb056feL, 0xd9714b49L, - 0xc7361b4cL, 0xc3f706fbL, 0xceb42022L, 0xca753d95L, - 0xf23a8028L, 0xf6fb9d9fL, 0xfbb8bb46L, 0xff79a6f1L, - 0xe13ef6f4L, 0xe5ffeb43L, 0xe8bccd9aL, 0xec7dd02dL, - 0x34867077L, 0x30476dc0L, 0x3d044b19L, 0x39c556aeL, - 0x278206abL, 0x23431b1cL, 0x2e003dc5L, 0x2ac12072L, - 0x128e9dcfL, 0x164f8078L, 0x1b0ca6a1L, 0x1fcdbb16L, - 0x018aeb13L, 0x054bf6a4L, 0x0808d07dL, 0x0cc9cdcaL, - 0x7897ab07L, 0x7c56b6b0L, 0x71159069L, 0x75d48ddeL, - 0x6b93dddbL, 0x6f52c06cL, 0x6211e6b5L, 0x66d0fb02L, - 0x5e9f46bfL, 0x5a5e5b08L, 0x571d7dd1L, 0x53dc6066L, - 0x4d9b3063L, 0x495a2dd4L, 0x44190b0dL, 0x40d816baL, - 0xaca5c697L, 0xa864db20L, 0xa527fdf9L, 0xa1e6e04eL, - 0xbfa1b04bL, 0xbb60adfcL, 0xb6238b25L, 0xb2e29692L, - 0x8aad2b2fL, 0x8e6c3698L, 0x832f1041L, 0x87ee0df6L, - 0x99a95df3L, 0x9d684044L, 0x902b669dL, 0x94ea7b2aL, - 0xe0b41de7L, 0xe4750050L, 0xe9362689L, 0xedf73b3eL, - 0xf3b06b3bL, 0xf771768cL, 0xfa325055L, 0xfef34de2L, - 0xc6bcf05fL, 0xc27dede8L, 0xcf3ecb31L, 0xcbffd686L, - 0xd5b88683L, 0xd1799b34L, 0xdc3abdedL, 0xd8fba05aL, - 0x690ce0eeL, 0x6dcdfd59L, 0x608edb80L, 0x644fc637L, - 0x7a089632L, 0x7ec98b85L, 0x738aad5cL, 0x774bb0ebL, - 0x4f040d56L, 0x4bc510e1L, 0x46863638L, 0x42472b8fL, - 0x5c007b8aL, 0x58c1663dL, 0x558240e4L, 0x51435d53L, - 0x251d3b9eL, 0x21dc2629L, 0x2c9f00f0L, 0x285e1d47L, - 0x36194d42L, 0x32d850f5L, 0x3f9b762cL, 0x3b5a6b9bL, - 0x0315d626L, 0x07d4cb91L, 0x0a97ed48L, 0x0e56f0ffL, - 0x1011a0faL, 0x14d0bd4dL, 0x19939b94L, 0x1d528623L, - 0xf12f560eL, 0xf5ee4bb9L, 0xf8ad6d60L, 0xfc6c70d7L, - 0xe22b20d2L, 0xe6ea3d65L, 0xeba91bbcL, 0xef68060bL, - 0xd727bbb6L, 0xd3e6a601L, 0xdea580d8L, 0xda649d6fL, - 0xc423cd6aL, 0xc0e2d0ddL, 0xcda1f604L, 0xc960ebb3L, - 0xbd3e8d7eL, 0xb9ff90c9L, 0xb4bcb610L, 0xb07daba7L, - 0xae3afba2L, 0xaafbe615L, 0xa7b8c0ccL, 0xa379dd7bL, - 0x9b3660c6L, 0x9ff77d71L, 0x92b45ba8L, 0x9675461fL, - 0x8832161aL, 0x8cf30badL, 0x81b02d74L, 0x857130c3L, - 0x5d8a9099L, 0x594b8d2eL, 0x5408abf7L, 0x50c9b640L, - 0x4e8ee645L, 0x4a4ffbf2L, 0x470cdd2bL, 0x43cdc09cL, - 0x7b827d21L, 0x7f436096L, 0x7200464fL, 0x76c15bf8L, - 0x68860bfdL, 0x6c47164aL, 0x61043093L, 0x65c52d24L, - 0x119b4be9L, 0x155a565eL, 0x18197087L, 0x1cd86d30L, - 0x029f3d35L, 0x065e2082L, 0x0b1d065bL, 0x0fdc1becL, - 0x3793a651L, 0x3352bbe6L, 0x3e119d3fL, 0x3ad08088L, - 0x2497d08dL, 0x2056cd3aL, 0x2d15ebe3L, 0x29d4f654L, - 0xc5a92679L, 0xc1683bceL, 0xcc2b1d17L, 0xc8ea00a0L, - 0xd6ad50a5L, 0xd26c4d12L, 0xdf2f6bcbL, 0xdbee767cL, - 0xe3a1cbc1L, 0xe760d676L, 0xea23f0afL, 0xeee2ed18L, - 0xf0a5bd1dL, 0xf464a0aaL, 0xf9278673L, 0xfde69bc4L, - 0x89b8fd09L, 0x8d79e0beL, 0x803ac667L, 0x84fbdbd0L, - 0x9abc8bd5L, 0x9e7d9662L, 0x933eb0bbL, 0x97ffad0cL, - 0xafb010b1L, 0xab710d06L, 0xa6322bdfL, 0xa2f33668L, - 0xbcb4666dL, 0xb8757bdaL, 0xb5365d03L, 0xb1f740b4L -}; - - -/*-------------------------------------------------------------*/ -/*--- end crctable.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/bzip2/decompress.c b/src/plugins/contrib/devpak_plugin/bzip2/decompress.c deleted file mode 100644 index 88065feb0b..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/decompress.c +++ /dev/null @@ -1,646 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Decompression machinery ---*/ -/*--- decompress.c ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - - -#include "bzlib_private.h" - - -/*---------------------------------------------------*/ -static -void makeMaps_d ( DState* s ) -{ - Int32 i; - s->nInUse = 0; - for (i = 0; i < 256; i++) - if (s->inUse[i]) { - s->seqToUnseq[s->nInUse] = i; - s->nInUse++; - } -} - - -/*---------------------------------------------------*/ -#define RETURN(rrr) \ - { retVal = rrr; goto save_state_and_return; }; - -#define GET_BITS(lll,vvv,nnn) \ - case lll: s->state = lll; \ - while (True) { \ - if (s->bsLive >= nnn) { \ - UInt32 v; \ - v = (s->bsBuff >> \ - (s->bsLive-nnn)) & ((1 << nnn)-1); \ - s->bsLive -= nnn; \ - vvv = v; \ - break; \ - } \ - if (s->strm->avail_in == 0) RETURN(BZ_OK); \ - s->bsBuff \ - = (s->bsBuff << 8) | \ - ((UInt32) \ - (*((UChar*)(s->strm->next_in)))); \ - s->bsLive += 8; \ - s->strm->next_in++; \ - s->strm->avail_in--; \ - s->strm->total_in_lo32++; \ - if (s->strm->total_in_lo32 == 0) \ - s->strm->total_in_hi32++; \ - } - -#define GET_UCHAR(lll,uuu) \ - GET_BITS(lll,uuu,8) - -#define GET_BIT(lll,uuu) \ - GET_BITS(lll,uuu,1) - -/*---------------------------------------------------*/ -#define GET_MTF_VAL(label1,label2,lval) \ -{ \ - if (groupPos == 0) { \ - groupNo++; \ - if (groupNo >= nSelectors) \ - RETURN(BZ_DATA_ERROR); \ - groupPos = BZ_G_SIZE; \ - gSel = s->selector[groupNo]; \ - gMinlen = s->minLens[gSel]; \ - gLimit = &(s->limit[gSel][0]); \ - gPerm = &(s->perm[gSel][0]); \ - gBase = &(s->base[gSel][0]); \ - } \ - groupPos--; \ - zn = gMinlen; \ - GET_BITS(label1, zvec, zn); \ - while (1) { \ - if (zn > 20 /* the longest code */) \ - RETURN(BZ_DATA_ERROR); \ - if (zvec <= gLimit[zn]) break; \ - zn++; \ - GET_BIT(label2, zj); \ - zvec = (zvec << 1) | zj; \ - }; \ - if (zvec - gBase[zn] < 0 \ - || zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE) \ - RETURN(BZ_DATA_ERROR); \ - lval = gPerm[zvec - gBase[zn]]; \ -} - - -/*---------------------------------------------------*/ -Int32 BZ2_decompress ( DState* s ) -{ - UChar uc; - Int32 retVal; - Int32 minLen, maxLen; - bz_stream* strm = s->strm; - - /* stuff that needs to be saved/restored */ - Int32 i; - Int32 j; - Int32 t; - Int32 alphaSize; - Int32 nGroups; - Int32 nSelectors; - Int32 EOB; - Int32 groupNo; - Int32 groupPos; - Int32 nextSym; - Int32 nblockMAX; - Int32 nblock; - Int32 es; - Int32 N; - Int32 curr; - Int32 zt; - Int32 zn; - Int32 zvec; - Int32 zj; - Int32 gSel; - Int32 gMinlen; - Int32* gLimit; - Int32* gBase; - Int32* gPerm; - - if (s->state == BZ_X_MAGIC_1) { - /*initialise the save area*/ - s->save_i = 0; - s->save_j = 0; - s->save_t = 0; - s->save_alphaSize = 0; - s->save_nGroups = 0; - s->save_nSelectors = 0; - s->save_EOB = 0; - s->save_groupNo = 0; - s->save_groupPos = 0; - s->save_nextSym = 0; - s->save_nblockMAX = 0; - s->save_nblock = 0; - s->save_es = 0; - s->save_N = 0; - s->save_curr = 0; - s->save_zt = 0; - s->save_zn = 0; - s->save_zvec = 0; - s->save_zj = 0; - s->save_gSel = 0; - s->save_gMinlen = 0; - s->save_gLimit = NULL; - s->save_gBase = NULL; - s->save_gPerm = NULL; - } - - /*restore from the save area*/ - i = s->save_i; - j = s->save_j; - t = s->save_t; - alphaSize = s->save_alphaSize; - nGroups = s->save_nGroups; - nSelectors = s->save_nSelectors; - EOB = s->save_EOB; - groupNo = s->save_groupNo; - groupPos = s->save_groupPos; - nextSym = s->save_nextSym; - nblockMAX = s->save_nblockMAX; - nblock = s->save_nblock; - es = s->save_es; - N = s->save_N; - curr = s->save_curr; - zt = s->save_zt; - zn = s->save_zn; - zvec = s->save_zvec; - zj = s->save_zj; - gSel = s->save_gSel; - gMinlen = s->save_gMinlen; - gLimit = s->save_gLimit; - gBase = s->save_gBase; - gPerm = s->save_gPerm; - - retVal = BZ_OK; - - switch (s->state) { - - GET_UCHAR(BZ_X_MAGIC_1, uc); - if (uc != BZ_HDR_B) RETURN(BZ_DATA_ERROR_MAGIC); - - GET_UCHAR(BZ_X_MAGIC_2, uc); - if (uc != BZ_HDR_Z) RETURN(BZ_DATA_ERROR_MAGIC); - - GET_UCHAR(BZ_X_MAGIC_3, uc) - if (uc != BZ_HDR_h) RETURN(BZ_DATA_ERROR_MAGIC); - - GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8) - if (s->blockSize100k < (BZ_HDR_0 + 1) || - s->blockSize100k > (BZ_HDR_0 + 9)) RETURN(BZ_DATA_ERROR_MAGIC); - s->blockSize100k -= BZ_HDR_0; - - if (s->smallDecompress) { - s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) ); - s->ll4 = BZALLOC( - ((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar) - ); - if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR); - } else { - s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) ); - if (s->tt == NULL) RETURN(BZ_MEM_ERROR); - } - - GET_UCHAR(BZ_X_BLKHDR_1, uc); - - if (uc == 0x17) goto endhdr_2; - if (uc != 0x31) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_2, uc); - if (uc != 0x41) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_3, uc); - if (uc != 0x59) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_4, uc); - if (uc != 0x26) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_5, uc); - if (uc != 0x53) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_BLKHDR_6, uc); - if (uc != 0x59) RETURN(BZ_DATA_ERROR); - - s->currBlockNo++; - if (s->verbosity >= 2) - VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo ); - - s->storedBlockCRC = 0; - GET_UCHAR(BZ_X_BCRC_1, uc); - s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_BCRC_2, uc); - s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_BCRC_3, uc); - s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_BCRC_4, uc); - s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc); - - GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1); - - s->origPtr = 0; - GET_UCHAR(BZ_X_ORIGPTR_1, uc); - s->origPtr = (s->origPtr << 8) | ((Int32)uc); - GET_UCHAR(BZ_X_ORIGPTR_2, uc); - s->origPtr = (s->origPtr << 8) | ((Int32)uc); - GET_UCHAR(BZ_X_ORIGPTR_3, uc); - s->origPtr = (s->origPtr << 8) | ((Int32)uc); - - if (s->origPtr < 0) - RETURN(BZ_DATA_ERROR); - if (s->origPtr > 10 + 100000*s->blockSize100k) - RETURN(BZ_DATA_ERROR); - - /*--- Receive the mapping table ---*/ - for (i = 0; i < 16; i++) { - GET_BIT(BZ_X_MAPPING_1, uc); - if (uc == 1) - s->inUse16[i] = True; else - s->inUse16[i] = False; - } - - for (i = 0; i < 256; i++) s->inUse[i] = False; - - for (i = 0; i < 16; i++) - if (s->inUse16[i]) - for (j = 0; j < 16; j++) { - GET_BIT(BZ_X_MAPPING_2, uc); - if (uc == 1) s->inUse[i * 16 + j] = True; - } - makeMaps_d ( s ); - if (s->nInUse == 0) RETURN(BZ_DATA_ERROR); - alphaSize = s->nInUse+2; - - /*--- Now the selectors ---*/ - GET_BITS(BZ_X_SELECTOR_1, nGroups, 3); - if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR); - GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15); - if (nSelectors < 1) RETURN(BZ_DATA_ERROR); - for (i = 0; i < nSelectors; i++) { - j = 0; - while (True) { - GET_BIT(BZ_X_SELECTOR_3, uc); - if (uc == 0) break; - j++; - if (j >= nGroups) RETURN(BZ_DATA_ERROR); - } - s->selectorMtf[i] = j; - } - - /*--- Undo the MTF values for the selectors. ---*/ - { - UChar pos[BZ_N_GROUPS], tmp, v; - for (v = 0; v < nGroups; v++) pos[v] = v; - - for (i = 0; i < nSelectors; i++) { - v = s->selectorMtf[i]; - tmp = pos[v]; - while (v > 0) { pos[v] = pos[v-1]; v--; } - pos[0] = tmp; - s->selector[i] = tmp; - } - } - - /*--- Now the coding tables ---*/ - for (t = 0; t < nGroups; t++) { - GET_BITS(BZ_X_CODING_1, curr, 5); - for (i = 0; i < alphaSize; i++) { - while (True) { - if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR); - GET_BIT(BZ_X_CODING_2, uc); - if (uc == 0) break; - GET_BIT(BZ_X_CODING_3, uc); - if (uc == 0) curr++; else curr--; - } - s->len[t][i] = curr; - } - } - - /*--- Create the Huffman decoding tables ---*/ - for (t = 0; t < nGroups; t++) { - minLen = 32; - maxLen = 0; - for (i = 0; i < alphaSize; i++) { - if (s->len[t][i] > maxLen) maxLen = s->len[t][i]; - if (s->len[t][i] < minLen) minLen = s->len[t][i]; - } - BZ2_hbCreateDecodeTables ( - &(s->limit[t][0]), - &(s->base[t][0]), - &(s->perm[t][0]), - &(s->len[t][0]), - minLen, maxLen, alphaSize - ); - s->minLens[t] = minLen; - } - - /*--- Now the MTF values ---*/ - - EOB = s->nInUse+1; - nblockMAX = 100000 * s->blockSize100k; - groupNo = -1; - groupPos = 0; - - for (i = 0; i <= 255; i++) s->unzftab[i] = 0; - - /*-- MTF init --*/ - { - Int32 ii, jj, kk; - kk = MTFA_SIZE-1; - for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) { - for (jj = MTFL_SIZE-1; jj >= 0; jj--) { - s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj); - kk--; - } - s->mtfbase[ii] = kk + 1; - } - } - /*-- end MTF init --*/ - - nblock = 0; - GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym); - - while (True) { - - if (nextSym == EOB) break; - - if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) { - - es = -1; - N = 1; - do { - /* Check that N doesn't get too big, so that es doesn't - go negative. The maximum value that can be - RUNA/RUNB encoded is equal to the block size (post - the initial RLE), viz, 900k, so bounding N at 2 - million should guard against overflow without - rejecting any legitimate inputs. */ - if (N >= 2*1024*1024) RETURN(BZ_DATA_ERROR); - if (nextSym == BZ_RUNA) es = es + (0+1) * N; else - if (nextSym == BZ_RUNB) es = es + (1+1) * N; - N = N * 2; - GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym); - } - while (nextSym == BZ_RUNA || nextSym == BZ_RUNB); - - es++; - uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ]; - s->unzftab[uc] += es; - - if (s->smallDecompress) - while (es > 0) { - if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); - s->ll16[nblock] = (UInt16)uc; - nblock++; - es--; - } - else - while (es > 0) { - if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); - s->tt[nblock] = (UInt32)uc; - nblock++; - es--; - }; - - continue; - - } else { - - if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR); - - /*-- uc = MTF ( nextSym-1 ) --*/ - { - Int32 ii, jj, kk, pp, lno, off; - UInt32 nn; - nn = (UInt32)(nextSym - 1); - - if (nn < MTFL_SIZE) { - /* avoid general-case expense */ - pp = s->mtfbase[0]; - uc = s->mtfa[pp+nn]; - while (nn > 3) { - Int32 z = pp+nn; - s->mtfa[(z) ] = s->mtfa[(z)-1]; - s->mtfa[(z)-1] = s->mtfa[(z)-2]; - s->mtfa[(z)-2] = s->mtfa[(z)-3]; - s->mtfa[(z)-3] = s->mtfa[(z)-4]; - nn -= 4; - } - while (nn > 0) { - s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--; - }; - s->mtfa[pp] = uc; - } else { - /* general case */ - lno = nn / MTFL_SIZE; - off = nn % MTFL_SIZE; - pp = s->mtfbase[lno] + off; - uc = s->mtfa[pp]; - while (pp > s->mtfbase[lno]) { - s->mtfa[pp] = s->mtfa[pp-1]; pp--; - }; - s->mtfbase[lno]++; - while (lno > 0) { - s->mtfbase[lno]--; - s->mtfa[s->mtfbase[lno]] - = s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1]; - lno--; - } - s->mtfbase[0]--; - s->mtfa[s->mtfbase[0]] = uc; - if (s->mtfbase[0] == 0) { - kk = MTFA_SIZE-1; - for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) { - for (jj = MTFL_SIZE-1; jj >= 0; jj--) { - s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj]; - kk--; - } - s->mtfbase[ii] = kk + 1; - } - } - } - } - /*-- end uc = MTF ( nextSym-1 ) --*/ - - s->unzftab[s->seqToUnseq[uc]]++; - if (s->smallDecompress) - s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else - s->tt[nblock] = (UInt32)(s->seqToUnseq[uc]); - nblock++; - - GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym); - continue; - } - } - - /* Now we know what nblock is, we can do a better sanity - check on s->origPtr. - */ - if (s->origPtr < 0 || s->origPtr >= nblock) - RETURN(BZ_DATA_ERROR); - - /*-- Set up cftab to facilitate generation of T^(-1) --*/ - /* Check: unzftab entries in range. */ - for (i = 0; i <= 255; i++) { - if (s->unzftab[i] < 0 || s->unzftab[i] > nblock) - RETURN(BZ_DATA_ERROR); - } - /* Actually generate cftab. */ - s->cftab[0] = 0; - for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1]; - for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1]; - /* Check: cftab entries in range. */ - for (i = 0; i <= 256; i++) { - if (s->cftab[i] < 0 || s->cftab[i] > nblock) { - /* s->cftab[i] can legitimately be == nblock */ - RETURN(BZ_DATA_ERROR); - } - } - /* Check: cftab entries non-descending. */ - for (i = 1; i <= 256; i++) { - if (s->cftab[i-1] > s->cftab[i]) { - RETURN(BZ_DATA_ERROR); - } - } - - s->state_out_len = 0; - s->state_out_ch = 0; - BZ_INITIALISE_CRC ( s->calculatedBlockCRC ); - s->state = BZ_X_OUTPUT; - if (s->verbosity >= 2) VPrintf0 ( "rt+rld" ); - - if (s->smallDecompress) { - - /*-- Make a copy of cftab, used in generation of T --*/ - for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i]; - - /*-- compute the T vector --*/ - for (i = 0; i < nblock; i++) { - uc = (UChar)(s->ll16[i]); - SET_LL(i, s->cftabCopy[uc]); - s->cftabCopy[uc]++; - } - - /*-- Compute T^(-1) by pointer reversal on T --*/ - i = s->origPtr; - j = GET_LL(i); - do { - Int32 tmp = GET_LL(j); - SET_LL(j, i); - i = j; - j = tmp; - } - while (i != s->origPtr); - - s->tPos = s->origPtr; - s->nblock_used = 0; - if (s->blockRandomised) { - BZ_RAND_INIT_MASK; - BZ_GET_SMALL(s->k0); s->nblock_used++; - BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; - } else { - BZ_GET_SMALL(s->k0); s->nblock_used++; - } - - } else { - - /*-- compute the T^(-1) vector --*/ - for (i = 0; i < nblock; i++) { - uc = (UChar)(s->tt[i] & 0xff); - s->tt[s->cftab[uc]] |= (i << 8); - s->cftab[uc]++; - } - - s->tPos = s->tt[s->origPtr] >> 8; - s->nblock_used = 0; - if (s->blockRandomised) { - BZ_RAND_INIT_MASK; - BZ_GET_FAST(s->k0); s->nblock_used++; - BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK; - } else { - BZ_GET_FAST(s->k0); s->nblock_used++; - } - - } - - RETURN(BZ_OK); - - - - endhdr_2: - - GET_UCHAR(BZ_X_ENDHDR_2, uc); - if (uc != 0x72) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_ENDHDR_3, uc); - if (uc != 0x45) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_ENDHDR_4, uc); - if (uc != 0x38) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_ENDHDR_5, uc); - if (uc != 0x50) RETURN(BZ_DATA_ERROR); - GET_UCHAR(BZ_X_ENDHDR_6, uc); - if (uc != 0x90) RETURN(BZ_DATA_ERROR); - - s->storedCombinedCRC = 0; - GET_UCHAR(BZ_X_CCRC_1, uc); - s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_CCRC_2, uc); - s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_CCRC_3, uc); - s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); - GET_UCHAR(BZ_X_CCRC_4, uc); - s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc); - - s->state = BZ_X_IDLE; - RETURN(BZ_STREAM_END); - - default: AssertH ( False, 4001 ); - } - - AssertH ( False, 4002 ); - - save_state_and_return: - - s->save_i = i; - s->save_j = j; - s->save_t = t; - s->save_alphaSize = alphaSize; - s->save_nGroups = nGroups; - s->save_nSelectors = nSelectors; - s->save_EOB = EOB; - s->save_groupNo = groupNo; - s->save_groupPos = groupPos; - s->save_nextSym = nextSym; - s->save_nblockMAX = nblockMAX; - s->save_nblock = nblock; - s->save_es = es; - s->save_N = N; - s->save_curr = curr; - s->save_zt = zt; - s->save_zn = zn; - s->save_zvec = zvec; - s->save_zj = zj; - s->save_gSel = gSel; - s->save_gMinlen = gMinlen; - s->save_gLimit = gLimit; - s->save_gBase = gBase; - s->save_gPerm = gPerm; - - return retVal; -} - - -/*-------------------------------------------------------------*/ -/*--- end decompress.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/bzip2/huffman.c b/src/plugins/contrib/devpak_plugin/bzip2/huffman.c deleted file mode 100644 index 442051f15c..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/huffman.c +++ /dev/null @@ -1,205 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Huffman coding low-level stuff ---*/ -/*--- huffman.c ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - - -#include "bzlib_private.h" - -/*---------------------------------------------------*/ -#define WEIGHTOF(zz0) ((zz0) & 0xffffff00) -#define DEPTHOF(zz1) ((zz1) & 0x000000ff) -#define MYMAX(zz2,zz3) ((zz2) > (zz3) ? (zz2) : (zz3)) - -#define ADDWEIGHTS(zw1,zw2) \ - (WEIGHTOF(zw1)+WEIGHTOF(zw2)) | \ - (1 + MYMAX(DEPTHOF(zw1),DEPTHOF(zw2))) - -#define UPHEAP(z) \ -{ \ - Int32 zz, tmp; \ - zz = z; tmp = heap[zz]; \ - while (weight[tmp] < weight[heap[zz >> 1]]) { \ - heap[zz] = heap[zz >> 1]; \ - zz >>= 1; \ - } \ - heap[zz] = tmp; \ -} - -#define DOWNHEAP(z) \ -{ \ - Int32 zz, yy, tmp; \ - zz = z; tmp = heap[zz]; \ - while (True) { \ - yy = zz << 1; \ - if (yy > nHeap) break; \ - if (yy < nHeap && \ - weight[heap[yy+1]] < weight[heap[yy]]) \ - yy++; \ - if (weight[tmp] < weight[heap[yy]]) break; \ - heap[zz] = heap[yy]; \ - zz = yy; \ - } \ - heap[zz] = tmp; \ -} - - -/*---------------------------------------------------*/ -void BZ2_hbMakeCodeLengths ( UChar *len, - Int32 *freq, - Int32 alphaSize, - Int32 maxLen ) -{ - /*-- - Nodes and heap entries run from 1. Entry 0 - for both the heap and nodes is a sentinel. - --*/ - Int32 nNodes, nHeap, n1, n2, i, j, k; - Bool tooLong; - - Int32 heap [ BZ_MAX_ALPHA_SIZE + 2 ]; - Int32 weight [ BZ_MAX_ALPHA_SIZE * 2 ]; - Int32 parent [ BZ_MAX_ALPHA_SIZE * 2 ]; - - for (i = 0; i < alphaSize; i++) - weight[i+1] = (freq[i] == 0 ? 1 : freq[i]) << 8; - - while (True) { - - nNodes = alphaSize; - nHeap = 0; - - heap[0] = 0; - weight[0] = 0; - parent[0] = -2; - - for (i = 1; i <= alphaSize; i++) { - parent[i] = -1; - nHeap++; - heap[nHeap] = i; - UPHEAP(nHeap); - } - - AssertH( nHeap < (BZ_MAX_ALPHA_SIZE+2), 2001 ); - - while (nHeap > 1) { - n1 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1); - n2 = heap[1]; heap[1] = heap[nHeap]; nHeap--; DOWNHEAP(1); - nNodes++; - parent[n1] = parent[n2] = nNodes; - weight[nNodes] = ADDWEIGHTS(weight[n1], weight[n2]); - parent[nNodes] = -1; - nHeap++; - heap[nHeap] = nNodes; - UPHEAP(nHeap); - } - - AssertH( nNodes < (BZ_MAX_ALPHA_SIZE * 2), 2002 ); - - tooLong = False; - for (i = 1; i <= alphaSize; i++) { - j = 0; - k = i; - while (parent[k] >= 0) { k = parent[k]; j++; } - len[i-1] = j; - if (j > maxLen) tooLong = True; - } - - if (! tooLong) break; - - /* 17 Oct 04: keep-going condition for the following loop used - to be 'i < alphaSize', which missed the last element, - theoretically leading to the possibility of the compressor - looping. However, this count-scaling step is only needed if - one of the generated Huffman code words is longer than - maxLen, which up to and including version 1.0.2 was 20 bits, - which is extremely unlikely. In version 1.0.3 maxLen was - changed to 17 bits, which has minimal effect on compression - ratio, but does mean this scaling step is used from time to - time, enough to verify that it works. - - This means that bzip2-1.0.3 and later will only produce - Huffman codes with a maximum length of 17 bits. However, in - order to preserve backwards compatibility with bitstreams - produced by versions pre-1.0.3, the decompressor must still - handle lengths of up to 20. */ - - for (i = 1; i <= alphaSize; i++) { - j = weight[i] >> 8; - j = 1 + (j / 2); - weight[i] = j << 8; - } - } -} - - -/*---------------------------------------------------*/ -void BZ2_hbAssignCodes ( Int32 *code, - UChar *length, - Int32 minLen, - Int32 maxLen, - Int32 alphaSize ) -{ - Int32 n, vec, i; - - vec = 0; - for (n = minLen; n <= maxLen; n++) { - for (i = 0; i < alphaSize; i++) - if (length[i] == n) { code[i] = vec; vec++; }; - vec <<= 1; - } -} - - -/*---------------------------------------------------*/ -void BZ2_hbCreateDecodeTables ( Int32 *limit, - Int32 *base, - Int32 *perm, - UChar *length, - Int32 minLen, - Int32 maxLen, - Int32 alphaSize ) -{ - Int32 pp, i, j, vec; - - pp = 0; - for (i = minLen; i <= maxLen; i++) - for (j = 0; j < alphaSize; j++) - if (length[j] == i) { perm[pp] = j; pp++; }; - - for (i = 0; i < BZ_MAX_CODE_LEN; i++) base[i] = 0; - for (i = 0; i < alphaSize; i++) base[length[i]+1]++; - - for (i = 1; i < BZ_MAX_CODE_LEN; i++) base[i] += base[i-1]; - - for (i = 0; i < BZ_MAX_CODE_LEN; i++) limit[i] = 0; - vec = 0; - - for (i = minLen; i <= maxLen; i++) { - vec += (base[i+1] - base[i]); - limit[i] = vec-1; - vec <<= 1; - } - for (i = minLen + 1; i <= maxLen; i++) - base[i] = ((limit[i-1] + 1) << 1) - base[i]; -} - - -/*-------------------------------------------------------------*/ -/*--- end huffman.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/bzip2/makefile.msc b/src/plugins/contrib/devpak_plugin/bzip2/makefile.msc deleted file mode 100644 index 6a628a753a..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/makefile.msc +++ /dev/null @@ -1,63 +0,0 @@ -# Makefile for Microsoft Visual C++ 6.0 -# usage: nmake -f makefile.msc -# K.M. Syring (syring@gsf.de) -# Fixed up by JRS for bzip2-0.9.5d release. - -CC=cl -CFLAGS= -DWIN32 -MD -Ox -D_FILE_OFFSET_BITS=64 -nologo - -OBJS= blocksort.obj \ - huffman.obj \ - crctable.obj \ - randtable.obj \ - compress.obj \ - decompress.obj \ - bzlib.obj - -all: lib bzip2 test - -bzip2: lib - $(CC) $(CFLAGS) -o bzip2 bzip2.c libbz2.lib setargv.obj - $(CC) $(CFLAGS) -o bzip2recover bzip2recover.c - -lib: $(OBJS) - lib /out:libbz2.lib $(OBJS) - -test: bzip2 - type words1 - .\\bzip2 -1 < sample1.ref > sample1.rb2 - .\\bzip2 -2 < sample2.ref > sample2.rb2 - .\\bzip2 -3 < sample3.ref > sample3.rb2 - .\\bzip2 -d < sample1.bz2 > sample1.tst - .\\bzip2 -d < sample2.bz2 > sample2.tst - .\\bzip2 -ds < sample3.bz2 > sample3.tst - @echo All six of the fc's should find no differences. - @echo If fc finds an error on sample3.bz2, this could be - @echo because WinZip's 'TAR file smart CR/LF conversion' - @echo is too clever for its own good. Disable this option. - @echo The correct size for sample3.ref is 120,244. If it - @echo is 150,251, WinZip has messed it up. - fc sample1.bz2 sample1.rb2 - fc sample2.bz2 sample2.rb2 - fc sample3.bz2 sample3.rb2 - fc sample1.tst sample1.ref - fc sample2.tst sample2.ref - fc sample3.tst sample3.ref - - - -clean: - del *.obj - del libbz2.lib - del bzip2.exe - del bzip2recover.exe - del sample1.rb2 - del sample2.rb2 - del sample3.rb2 - del sample1.tst - del sample2.tst - del sample3.tst - -.c.obj: - $(CC) $(CFLAGS) -c $*.c -o $*.obj - diff --git a/src/plugins/contrib/devpak_plugin/bzip2/randtable.c b/src/plugins/contrib/devpak_plugin/bzip2/randtable.c deleted file mode 100644 index 90c5bd1e10..0000000000 --- a/src/plugins/contrib/devpak_plugin/bzip2/randtable.c +++ /dev/null @@ -1,84 +0,0 @@ - -/*-------------------------------------------------------------*/ -/*--- Table for randomising repetitive blocks ---*/ -/*--- randtable.c ---*/ -/*-------------------------------------------------------------*/ - -/* ------------------------------------------------------------------ - This file is part of bzip2/libbzip2, a program and library for - lossless, block-sorting data compression. - - bzip2/libbzip2 version 1.0.6 of 6 September 2010 - Copyright (C) 1996-2010 Julian Seward - - Please read the WARNING, DISCLAIMER and PATENTS sections in the - README file. - - This program is released under the terms of the license contained - in the file LICENSE. - ------------------------------------------------------------------ */ - - -#include "bzlib_private.h" - - -/*---------------------------------------------*/ -Int32 BZ2_rNums[512] = { - 619, 720, 127, 481, 931, 816, 813, 233, 566, 247, - 985, 724, 205, 454, 863, 491, 741, 242, 949, 214, - 733, 859, 335, 708, 621, 574, 73, 654, 730, 472, - 419, 436, 278, 496, 867, 210, 399, 680, 480, 51, - 878, 465, 811, 169, 869, 675, 611, 697, 867, 561, - 862, 687, 507, 283, 482, 129, 807, 591, 733, 623, - 150, 238, 59, 379, 684, 877, 625, 169, 643, 105, - 170, 607, 520, 932, 727, 476, 693, 425, 174, 647, - 73, 122, 335, 530, 442, 853, 695, 249, 445, 515, - 909, 545, 703, 919, 874, 474, 882, 500, 594, 612, - 641, 801, 220, 162, 819, 984, 589, 513, 495, 799, - 161, 604, 958, 533, 221, 400, 386, 867, 600, 782, - 382, 596, 414, 171, 516, 375, 682, 485, 911, 276, - 98, 553, 163, 354, 666, 933, 424, 341, 533, 870, - 227, 730, 475, 186, 263, 647, 537, 686, 600, 224, - 469, 68, 770, 919, 190, 373, 294, 822, 808, 206, - 184, 943, 795, 384, 383, 461, 404, 758, 839, 887, - 715, 67, 618, 276, 204, 918, 873, 777, 604, 560, - 951, 160, 578, 722, 79, 804, 96, 409, 713, 940, - 652, 934, 970, 447, 318, 353, 859, 672, 112, 785, - 645, 863, 803, 350, 139, 93, 354, 99, 820, 908, - 609, 772, 154, 274, 580, 184, 79, 626, 630, 742, - 653, 282, 762, 623, 680, 81, 927, 626, 789, 125, - 411, 521, 938, 300, 821, 78, 343, 175, 128, 250, - 170, 774, 972, 275, 999, 639, 495, 78, 352, 126, - 857, 956, 358, 619, 580, 124, 737, 594, 701, 612, - 669, 112, 134, 694, 363, 992, 809, 743, 168, 974, - 944, 375, 748, 52, 600, 747, 642, 182, 862, 81, - 344, 805, 988, 739, 511, 655, 814, 334, 249, 515, - 897, 955, 664, 981, 649, 113, 974, 459, 893, 228, - 433, 837, 553, 268, 926, 240, 102, 654, 459, 51, - 686, 754, 806, 760, 493, 403, 415, 394, 687, 700, - 946, 670, 656, 610, 738, 392, 760, 799, 887, 653, - 978, 321, 576, 617, 626, 502, 894, 679, 243, 440, - 680, 879, 194, 572, 640, 724, 926, 56, 204, 700, - 707, 151, 457, 449, 797, 195, 791, 558, 945, 679, - 297, 59, 87, 824, 713, 663, 412, 693, 342, 606, - 134, 108, 571, 364, 631, 212, 174, 643, 304, 329, - 343, 97, 430, 751, 497, 314, 983, 374, 822, 928, - 140, 206, 73, 263, 980, 736, 876, 478, 430, 305, - 170, 514, 364, 692, 829, 82, 855, 953, 676, 246, - 369, 970, 294, 750, 807, 827, 150, 790, 288, 923, - 804, 378, 215, 828, 592, 281, 565, 555, 710, 82, - 896, 831, 547, 261, 524, 462, 293, 465, 502, 56, - 661, 821, 976, 991, 658, 869, 905, 758, 745, 193, - 768, 550, 608, 933, 378, 286, 215, 979, 792, 961, - 61, 688, 793, 644, 986, 403, 106, 366, 905, 644, - 372, 567, 466, 434, 645, 210, 389, 550, 919, 135, - 780, 773, 635, 389, 707, 100, 626, 958, 165, 504, - 920, 176, 193, 713, 857, 265, 203, 50, 668, 108, - 645, 990, 626, 197, 510, 357, 358, 850, 858, 364, - 936, 638 -}; - - -/*-------------------------------------------------------------*/ -/*--- end randtable.c ---*/ -/*-------------------------------------------------------------*/ diff --git a/src/plugins/contrib/devpak_plugin/cbiniparser.cpp b/src/plugins/contrib/devpak_plugin/cbiniparser.cpp deleted file mode 100644 index d2591c6d5e..0000000000 --- a/src/plugins/contrib/devpak_plugin/cbiniparser.cpp +++ /dev/null @@ -1,204 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "cbiniparser.h" -#include -#include - -#include // this is a magic incantation which must be done! -WX_DEFINE_OBJARRAY(IniKeyValuePairArray); -WX_DEFINE_OBJARRAY(IniGroupArray); - -IniParser::IniParser() -{ -} - -IniParser::~IniParser() -{ -} - -bool IniParser::ParseFile(const wxString& filename) -{ - if (!wxFileExists(filename)) - return false; - - // open file - wxString buffer; - wxFile file(filename); - if (!file.IsOpened()) - return false; - int len = file.Length(); - - if(len==0) - buffer.Clear(); - else - { - char* buff = new char[len+1]; - file.Read(buff, len); - buff[len]='\0'; - buffer = wxString(buff,wxConvUTF8); - delete[] buff; - } - file.Close(); - - return ParseBuffer(buffer); -} - -bool IniParser::ParseBuffer(wxString& buffer) -{ - m_Array.Clear(); - - while (!buffer.IsEmpty()) - { - wxString line = ReadLineFromBuffer(buffer); - line.Trim(false); - line.Trim(true); - if (line.IsEmpty()) - continue; - - if (line.GetChar(0) == _T('[')) - { - // new group - IniGroup newgroup; - newgroup.name = line.Mid(1, line.Length() - 2); - newgroup.name.Trim(false); - newgroup.name.Trim(true); - if (newgroup.name.IsEmpty()) - continue; - m_Array.Add(newgroup); - } - else - { - int pos = line.Find(_T('=')); - if (pos == -1) - pos = line.Length(); - IniKeyValuePair newpair; - newpair.key = line.Left(pos); - newpair.value = line.Right(line.Length() - pos - 1); - newpair.key.Trim(false); - newpair.key.Trim(true); - newpair.value.Trim(false); - newpair.value.Trim(true); - if (newpair.key.IsEmpty() || newpair.key.GetChar(0) < _T('A') || newpair.key.GetChar(0) > _T('z')) - continue; - if (m_Array.GetCount() == 0) - { - // add empty group - IniGroup emptygroup; - m_Array.Add(emptygroup); - } - m_Array[m_Array.GetCount() - 1].pairs.Add(newpair); - } - } - - return true; -} - -wxString IniParser::ReadLineFromBuffer(wxString& buffer) -{ - int len = buffer.Length(); - int i = 0; - while (i < len && buffer.GetChar(i) != _T('\n')) - ++i; - wxString str = buffer.Left(i); - while (i < len && (buffer.GetChar(i) == _T('\n') || buffer.GetChar(i) == _T('\r'))) - ++i; - buffer.Remove(0, i); - buffer.Trim(); - return str; -} - -int IniParser::GetGroupsCount() const -{ - return m_Array.GetCount(); -} - -const wxString & IniParser::GetGroupName(int idx) const -{ - return m_Array[idx].name; -} - -int IniParser::FindGroupByName(const wxString& name, bool caseSensitive) const -{ - for (int i = 0; i < GetGroupsCount(); ++i) - { - bool found = caseSensitive - ? name.Cmp(m_Array[i].name) == 0 - : name.CmpNoCase(m_Array[i].name) == 0; - if (found) - return i; - } - return -1; -} - -int IniParser::GetKeysCount(int group) const -{ - return m_Array[group].pairs.GetCount(); -} - -const wxString & IniParser::GetKeyName(int group, int idx) const -{ - return m_Array[group].pairs[idx].key; -} - -const wxString & IniParser::GetKeyValue(int group, int idx) const -{ - return m_Array[group].pairs[idx].value; -} - -const wxString& IniParser::GetKeyValue(int group, const wxString& key) const -{ - static wxString empty; - int keyIdx = FindKeyByName(group, key); - if (keyIdx == -1) - return empty; - return GetKeyValue(group, keyIdx); -} - -int IniParser::FindKeyByName(int groupIdx, const wxString& name, bool caseSensitive) const -{ - if (groupIdx == -1) - return -1; - for (int i = 0; i < GetKeysCount(groupIdx); ++i) - { - bool found = caseSensitive - ? name.Cmp(m_Array[groupIdx].pairs[i].key) == 0 - : name.CmpNoCase(m_Array[groupIdx].pairs[i].key) == 0; - if (found) - return i; - } - return -1; -} - -const wxString & IniParser::GetValue(const wxString& group, const wxString& key, bool caseSensitive) const -{ - static wxString ret; - ret.Clear(); - - int g = FindGroupByName(group, caseSensitive); - int k = FindKeyByName(g, key, caseSensitive); - if (g != -1 && k != -1) - return m_Array[g].pairs[k].value; - return ret; -} - -int my_sorter(IniGroup** first, IniGroup** second) -{ - return (*first)->name.Cmp((*second)->name); -} - -int my_sorter_nocase(IniGroup** first, IniGroup** second) -{ - return (*first)->name.CmpNoCase((*second)->name); -} - -void IniParser::Sort(bool caseSensitive) -{ - m_Array.Sort(caseSensitive ? my_sorter : my_sorter_nocase); -} diff --git a/src/plugins/contrib/devpak_plugin/cbiniparser.h b/src/plugins/contrib/devpak_plugin/cbiniparser.h deleted file mode 100644 index 52dff4f07d..0000000000 --- a/src/plugins/contrib/devpak_plugin/cbiniparser.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef CB_INIPARSER_H -#define CB_INIPARSER_H - -#include -#include -#include - -struct IniKeyValuePair -{ - wxString key; - wxString value; -}; -WX_DECLARE_OBJARRAY(IniKeyValuePair, IniKeyValuePairArray); - -struct IniGroup -{ - wxString name; - IniKeyValuePairArray pairs; -}; -WX_DECLARE_OBJARRAY(IniGroup, IniGroupArray); - -class IniParser -{ - public: - IniParser(); - ~IniParser(); - - bool ParseFile(const wxString& filename); - bool ParseBuffer(wxString& buffer); - - int GetGroupsCount() const; - const wxString& GetGroupName(int idx) const; - int FindGroupByName(const wxString& name, bool caseSensitive = false) const; - int GetKeysCount(int group) const; - const wxString& GetKeyName(int group, int idx) const; - const wxString& GetKeyValue(int group, int idx) const; - const wxString& GetKeyValue(int group, const wxString& key) const; - int FindKeyByName(int groupIdx, const wxString& name, bool caseSensitive = false) const; - const wxString& GetValue(const wxString& group, const wxString& key, bool caseSensitive = false) const; - void Sort(bool caseSensitive = false); - protected: - wxString ReadLineFromBuffer(wxString& buffer); - IniGroupArray m_Array; - private: - -}; - - -#endif // CB_INIPARSER_H diff --git a/src/plugins/contrib/devpak_plugin/cbnetwork.cpp b/src/plugins/contrib/devpak_plugin/cbnetwork.cpp deleted file mode 100644 index e0caab8776..0000000000 --- a/src/plugins/contrib/devpak_plugin/cbnetwork.cpp +++ /dev/null @@ -1,198 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "cbnetwork.h" -#include -#include -#include -#include // wxPostEvent -#include -#include - -DECLARE_EVT_CBNET(cbEVT_CBNET_CONNECT); -DECLARE_EVT_CBNET(cbEVT_CBNET_DISCONNECT); -DECLARE_EVT_CBNET(cbEVT_CBNET_START_DOWNLOAD); -DECLARE_EVT_CBNET(cbEVT_CBNET_PROGRESS); -DECLARE_EVT_CBNET(cbEVT_CBNET_END_DOWNLOAD); -DECLARE_EVT_CBNET(cbEVT_CBNET_ABORTED); - -cbNetwork::cbNetwork(wxEvtHandler* parent, int id, const wxString& serverUrl) - : m_pParent(parent), - m_ID(id), - m_ServerURL(serverUrl), - m_pStream(0), - m_pURL(0), - m_Abort(false), - m_Busy(false) -{ -} - -cbNetwork::~cbNetwork() -{ - Disconnect(); -} - -void cbNetwork::Notify(cbNetEvent event, const wxString& msg, int integer) -{ - if (m_pParent) - { - wxCommandEvent evt(event, m_ID); - evt.SetString(msg); - evt.SetInt(integer); - wxPostEvent(m_pParent, evt); - wxYield(); - } -} - -bool cbNetwork::IsConnected() -{ - return m_pStream != 0; -} - -bool cbNetwork::IsBusy() -{ - return m_Busy; -} - -void cbNetwork::Abort() -{ - m_Abort = true; -} - -void cbNetwork::SetServer(const wxString& serverUrl) -{ - m_ServerURL = serverUrl; -} - -void cbNetwork::Disconnect() -{ - Notify(cbEVT_CBNET_DISCONNECT, _("Disconnected")); - m_Abort = false; - if (m_pStream) - delete m_pStream; - m_pStream = 0; - - if (m_pURL) - delete m_pURL; - m_pURL = 0; -} - -bool cbNetwork::Connect(const wxString& remote) -{ - Disconnect(); - - wxString sep = _T("/"); - if (m_ServerURL.Last() == sep.GetChar(0) || remote.StartsWith(sep)) - sep.Clear(); - m_pURL = new wxURL(m_ServerURL + sep + remote); - m_pURL->SetProxy(ConfigManager::GetProxy()); - if (m_pURL->GetError() != wxURL_NOERR) - return false; - - m_pStream = m_pURL->GetInputStream(); - if (m_pStream && m_pStream->IsOk()) - { - Notify(cbEVT_CBNET_CONNECT, _("Connected")); - return true; - } - return false; -} - -cbNetwork::FileInfo* cbNetwork::PrivateGetFileInfo(const wxString& remote) // no Connect() / Disconnect() -{ - static cbNetwork::FileInfo info; - info.contentType = m_pURL->GetProtocol().GetContentType(); - info.size = m_pStream->GetSize(); - return &info; -} - -cbNetwork::FileInfo* cbNetwork::GetFileInfo(const wxString& remote) -{ - if (!Connect(remote)) - return 0; - FileInfo* info = PrivateGetFileInfo(remote); - Disconnect(); - return info; -} - -bool cbNetwork::ReadFileContents(const wxString& remote, wxString& buffer) -{ - if (!Connect(remote)) - return false; - m_Busy = true; - wxString name = wxFileName(remote).GetFullName(); - FileInfo* info = PrivateGetFileInfo(remote); - Notify(cbEVT_CBNET_START_DOWNLOAD, name, info ? info->size : 0); - - buffer.Clear(); - wxTextInputStream tis(*m_pStream); - while (!m_Abort && !m_pStream->Eof()) - { - buffer += tis.ReadLine() + _T('\n'); - Notify(cbEVT_CBNET_PROGRESS, name, buffer.Length()); - } - - if (m_Abort) - { - Notify(cbEVT_CBNET_ABORTED, _("Aborted")); - buffer.Clear(); - } - Notify(cbEVT_CBNET_END_DOWNLOAD, name, m_Abort ? -1 : 0); - - m_Busy = false; - Disconnect(); - return true; -} - -bool cbNetwork::DownloadFile(const wxString& remote, const wxString& local) -{ - if (!Connect(remote)) - return false; - m_Busy = true; - wxString name = wxFileName(remote).GetFullName(); - - // block to limit scope of "fos" - { - wxFileOutputStream fos(local); - if (!fos.Ok()) - { - m_Busy = false; - Disconnect(); - return false; - } - - FileInfo* info = PrivateGetFileInfo(remote); - Notify(cbEVT_CBNET_START_DOWNLOAD, name, info ? info->size : 0); - - static char buffer[4096]; - memset(buffer, 0, 4096); - int counter = 0; - while (!m_Abort && !m_pStream->Eof() && m_pStream->CanRead()) - { - m_pStream->Read(buffer, 4096); - size_t size = m_pStream->LastRead(); - if (size == 0) - break; - fos.Write(buffer, size); - counter += size; - Notify(cbEVT_CBNET_PROGRESS, name, counter); - } - } - - if (m_Abort) - { - Notify(cbEVT_CBNET_ABORTED, name); - wxRemoveFile(local); - } - Notify(cbEVT_CBNET_END_DOWNLOAD, name, m_Abort ? -1 : 0); - - m_Busy = false; - Disconnect(); - return true; -} diff --git a/src/plugins/contrib/devpak_plugin/cbnetwork.h b/src/plugins/contrib/devpak_plugin/cbnetwork.h deleted file mode 100644 index ae5583a86b..0000000000 --- a/src/plugins/contrib/devpak_plugin/cbnetwork.h +++ /dev/null @@ -1,107 +0,0 @@ -#ifndef CBNETWORK_H -#define CBNETWORK_H - -#include -#include -#include -#include -#include - -typedef const int cbNetEvent; - -/** - * @brief Utility class to retrieve remote files from URLs - * - * This class is designed to simplify the retrieval of remote files - * located, for example, on web/ftp servers. - * - * The usage is ridiculously simple: - * - * cbNetwork net("http://www.example.com"); - * net.DownloadFile("files/remote_file_name.txt", "local_file.txt"); - * - */ -class cbNetwork : public wxEvtHandler -{ - public: - /** - * @brief Structure that holds info on a remote file - * - * Used by the GetFileInfo() function. - */ - struct FileInfo - { - wxString contentType; ///< The content type, e.g. "text/plain" - size_t size; ///< The file's size in bytes - }; - - /** Constructor - * @param serverUrl The remote server's top-level URL. - */ - cbNetwork(wxEvtHandler* parent, int id, const wxString& serverUrl = _T("")); - ~cbNetwork(); - - /** Set the server to connect to. - * @param serverUrl The remote server's top-level URL. - */ - void SetServer(const wxString& serverUrl); - /** Retrieve file info on a remote file. - * @param remote The remote file (relative to server's URL passed to the constructor) - */ - /** Abort an active connection */ - void Abort(); - FileInfo* GetFileInfo(const wxString& remote); - /** Retrieve the contents of a remote file. - * @param remote The remote file (relative to server's URL passed to the constructor) - * @param buffer The string buffer to put the file's contents in - * @note Use this function only for ASCII files. - */ - bool ReadFileContents(const wxString& remote, wxString& buffer); - /** Retrieve a remote file. - * @param remote The remote file (relative to server's URL passed to the constructor) - * @param local The local filename to save to - */ - bool DownloadFile(const wxString& remote, const wxString& local); - /** Is it connected? */ - bool IsConnected(); - /** Is it busy (downloading)? */ - bool IsBusy(); - protected: - void Disconnect(); - bool Connect(const wxString& remote); - void Notify(cbNetEvent event, const wxString& msg, int integer = 0); - FileInfo* PrivateGetFileInfo(const wxString& remote); // no Connect() / Disconnect() - - wxEvtHandler* m_pParent; - int m_ID; - wxString m_ServerURL; - wxInputStream* m_pStream; - wxURL* m_pURL; - bool m_Abort; - bool m_Busy; -}; - -#define DEFINE_EVT_CBNET(e) extern cbNetEvent e; -#define DECLARE_EVT_CBNET(e) cbNetEvent e = wxNewId(); - -DEFINE_EVT_CBNET(cbEVT_CBNET_CONNECT); -DEFINE_EVT_CBNET(cbEVT_CBNET_DISCONNECT); -DEFINE_EVT_CBNET(cbEVT_CBNET_START_DOWNLOAD); -DEFINE_EVT_CBNET(cbEVT_CBNET_PROGRESS); -DEFINE_EVT_CBNET(cbEVT_CBNET_END_DOWNLOAD); -DEFINE_EVT_CBNET(cbEVT_CBNET_ABORTED); - -#define EVT_CBNET_CONNECT( id, fn ) \ - DECLARE_EVENT_TABLE_ENTRY( cbEVT_CBNET_CONNECT, id, id, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction)& fn, (wxObject*) NULL ), -#define EVT_CBNET_DISCONNECT( id, fn ) \ - DECLARE_EVENT_TABLE_ENTRY( cbEVT_CBNET_DISCONNECT, id, id, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction)& fn, (wxObject*) NULL ), -#define EVT_CBNET_START_DOWNLOAD( id, fn ) \ - DECLARE_EVENT_TABLE_ENTRY( cbEVT_CBNET_START_DOWNLOAD, id, id, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction)& fn, (wxObject*) NULL ), -#define EVT_CBNET_PROGRESS( id, fn ) \ - DECLARE_EVENT_TABLE_ENTRY( cbEVT_CBNET_PROGRESS, id, id, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction)& fn, (wxObject*) NULL ), -#define EVT_CBNET_END_DOWNLOAD( id, fn ) \ - DECLARE_EVENT_TABLE_ENTRY( cbEVT_CBNET_END_DOWNLOAD, id, id, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction)& fn, (wxObject*) NULL ), -#define EVT_CBNET_ABORTED( id, fn ) \ - DECLARE_EVENT_TABLE_ENTRY( cbEVT_CBNET_ABORTED, id, id, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction)& fn, (wxObject*) NULL ), - -#endif // CBNETWORK_H diff --git a/src/plugins/contrib/devpak_plugin/conf.cpp b/src/plugins/contrib/devpak_plugin/conf.cpp deleted file mode 100644 index f6a99347a8..0000000000 --- a/src/plugins/contrib/devpak_plugin/conf.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "conf.h" -#include -#include -#include -#include - -wxString g_MasterPath; - -wxString GetSizeString(int bytes) -{ - wxString ret; - float kilobytes = (float)bytes / 1024.0f; - float megabytes = kilobytes / 1024.0f; - if (megabytes >= 1.0f) - ret.Printf(_("%.2f MB"), megabytes); - else if (kilobytes >= 1.0f) - ret.Printf(_("%.2f KB"), kilobytes); - else - ret.Printf(_("%ld bytes"), bytes); - return ret; -} - -UpdateRec* ReadConf(const IniParser& ini, int* recCount, const wxString& currentServer, const wxString& appPath) -{ - *recCount = 0; - int groupsCount = ini.GetGroupsCount(); - if (groupsCount == 0) - return 0; - - UpdateRec* list = new UpdateRec[ini.GetGroupsCount()]; - for (int i = 0; i < groupsCount; ++i) - { - UpdateRec& rec = list[i]; - - rec.title = ini.GetGroupName(i); - - // fix title - // devpaks.org has changed the title to contain some extra info - // e.g.: [libunicows Library version: 1.1.1 Devpak revision: 1sid] - int pos = rec.title.Lower().Find(_T("library version:")); - if (pos != -1) - { - int revpos = rec.title.Lower().Find(_T("devpak revision:")); - if (revpos != -1) { - rec.revision = rec.title.Mid(revpos).AfterFirst(_T(':')).Trim(false); - rec.revision.Replace(_T("\t"), _T(" ")); - rec.revision = rec.revision.BeforeFirst(_T(' ')); - } - - rec.title.Truncate(pos); - rec.title = rec.title.Trim(false); - rec.title = rec.title.Trim(true); - } - - rec.name = ini.GetKeyValue(i, _T("Name")); - rec.desc = ini.GetKeyValue(i, _T("Description")); - rec.remote_file = ini.GetKeyValue(i, _T("RemoteFilename")); - rec.local_file = ini.GetKeyValue(i, _T("LocalFilename")); - rec.groups = GetArrayFromString(ini.GetKeyValue(i, _T("Group")), _T(",")); - rec.install_path = ini.GetKeyValue(i, _T("InstallPath")); - rec.version = ini.GetKeyValue(i, _T("Version")); - ini.GetKeyValue(i, _T("Size")).ToLong(&rec.bytes); - rec.date = ini.GetKeyValue(i, _T("Date")); - rec.installable = ini.GetKeyValue(i, _T("Execute")) == _T("1"); - - // read .entry file (if exists) - rec.entry = (!rec.name.IsEmpty() ? rec.name : wxFileName(rec.local_file).GetName()) + _T(".entry"); - IniParser p; - p.ParseFile(appPath + rec.entry); - rec.installed_version = p.GetValue(_T("Setup"), _T("AppVersion")); - - rec.downloaded = wxFileExists(appPath + _T("/") + rec.local_file); - rec.installed = !rec.installed_version.IsEmpty(); - - // calculate size - rec.size = GetSizeString(rec.bytes); - - // fix-up - if (rec.name.IsEmpty()) - rec.name = rec.title; - rec.desc.Replace(_T(""), _T("\n")); - rec.desc.Replace(_T(""), _T("\r")); - wxURL url(rec.remote_file); - if (!url.GetServer().IsEmpty()) - { - rec.remote_server = url.GetScheme() + _T("://") + url.GetServer(); - int pos = rec.remote_file.Find(url.GetServer()); - if (pos != wxNOT_FOUND) - rec.remote_file.Remove(0, pos + url.GetServer().Length() + 1); - } - else - rec.remote_server = currentServer; - } - - *recCount = groupsCount; - return list; -} - -UpdateRec* FindRec(const wxString& title, const wxString& version, const wxString& revision, UpdateRec* list, int count) -{ - for (int i = 0; i < count; ++i) - { - if (list[i].title == title && list[i].version == version) { - if (revision.IsEmpty()) { - return &list[i]; - } else if (list[i].revision == revision) { - return &list[i]; - } - } - } - return 0; -} diff --git a/src/plugins/contrib/devpak_plugin/conf.h b/src/plugins/contrib/devpak_plugin/conf.h deleted file mode 100644 index b9b98f8f5d..0000000000 --- a/src/plugins/contrib/devpak_plugin/conf.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CONF_H -#define CONF_H - -#include -#include -#include "cbiniparser.h" - -struct UpdateRec -{ - wxString entry; //! .entry filename for installed - wxString title; - wxString name; - wxString desc; - wxString remote_server; - wxString remote_file; - wxString local_file; - wxArrayString groups; - wxString install_path; //! ignored - wxString version; - wxString revision; - wxString installed_version; - long int bytes; - float kilobytes; - float megabytes; - wxString size; - wxString date; - bool installable; - bool downloaded; - bool installed; -}; - -extern wxString g_MasterPath; - -UpdateRec* ReadConf(const IniParser& ini, int* recCount, const wxString& currentServer, const wxString& appPath); -UpdateRec* FindRec(const wxString& title, const wxString& version, const wxString& revision, UpdateRec* list, int count); -// utility -wxString GetSizeString(int bytes); - -#endif // CONF_H diff --git a/src/plugins/contrib/devpak_plugin/crc32.cpp b/src/plugins/contrib/devpak_plugin/crc32.cpp deleted file mode 100644 index 1af2586e72..0000000000 --- a/src/plugins/contrib/devpak_plugin/crc32.cpp +++ /dev/null @@ -1,131 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -/* - This code was taken from: - http://wikisource.org/wiki/CRC32_Checksum_function - by an unknown author... - - I just changed the function names to match the conventions used - in the rest of the project. - - Yiannis Mandravellos -*/ - -#include - -static unsigned long *GetCRC32Table( unsigned long *crc_table ) -{ - // First call to this function? Or after freeing the memory? - if ( !crc_table ) - { - // Allocate memory - crc_table = new unsigned long[256]; - - // Was the allocation succesfull? - if ( crc_table ) - { - // Generate the crc table - unsigned long crc ; - int i, j ; - - for(i = 0; i < 256; i++) - { - crc = i; - for (j = 8; j > 0; j--) - { - if (crc & 1) crc = (crc >> 1) ^ 0xEDB88320UL; - else crc >>= 1; - } - crc_table[i] = crc; - } - } - } - - // Return the new pointer - return ( crc_table ) ; -} - -unsigned long GetFileCRC32(const char* file) -{ - static unsigned long *crc_table = NULL; - unsigned long crc = 0; - - if (file) - { - // Get the crc table, on first call, generate, otherwise do nothing - crc_table = GetCRC32Table( crc_table ) ; - - // Do we have a crc table? - if ( crc_table ) - { - // Open the file for reading - FILE *fp = fopen(file, "r"); - - // Was the file open succesfull? - if (fp) - { - // Calculate the checksum - int ch; - - crc = 0xFFFFFFFFUL; - while ((ch = getc(fp)) != EOF) - { crc = (crc>>8) ^ crc_table[ (crc^ch) & 0xFF ]; } - - crc ^= 0xFFFFFFFFUL ; - - // Close the file - fclose(fp); - } - } - } - - // If we have a crc table, delete it from memory - if ( crc_table ) { delete[] crc_table; } - - // Set it to a null pointer, the have it (re)created on next calls to this - // function - crc_table = NULL; - - // Return the checksum result - return( crc ) ; -} - -unsigned long GetTextCRC32(const char* text) -{ - static unsigned long *crc_table = NULL; - unsigned long crc = 0; - - if (text) - { - // Get the crc table, on first call, generate, otherwise do nothing - crc_table = GetCRC32Table( crc_table ) ; - - // Do we have a crc table? - if ( crc_table ) - { - // Calculate the checksum - crc = 0xFFFFFFFFUL; - while (*text) - { crc = (crc>>8) ^ crc_table[ (crc^(*text++)) & 0xFF ]; } - - crc ^= 0xFFFFFFFFUL ; - } - } - - // If we have a crc table, delete it from memory - if ( crc_table ) { delete[] crc_table; } - - // Set it to a null pointer, the have it (re)created on next calls to this - // function - crc_table = NULL; - - // Return the checksum result - return( crc ) ; -} diff --git a/src/plugins/contrib/devpak_plugin/crc32.h b/src/plugins/contrib/devpak_plugin/crc32.h deleted file mode 100644 index a32aeb11a6..0000000000 --- a/src/plugins/contrib/devpak_plugin/crc32.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef CRC32_H -#define CRC32_H - -unsigned long GetFileCRC32(const char* file); -unsigned long GetTextCRC32(const char* text); - -#endif // CRC32_H diff --git a/src/plugins/contrib/devpak_plugin/devpakinstaller.cpp b/src/plugins/contrib/devpak_plugin/devpakinstaller.cpp deleted file mode 100644 index e0e792505c..0000000000 --- a/src/plugins/contrib/devpak_plugin/devpakinstaller.cpp +++ /dev/null @@ -1,273 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "devpakinstaller.h" -#include -#include -#include "mytar.h" -#include "cbiniparser.h" -#include -#include - -DevPakInstaller::DevPakInstaller() - : m_pDlg(0) -{ - //ctor -} - -DevPakInstaller::~DevPakInstaller() -{ - //dtor - EndProgressDialog(); -} - -void DevPakInstaller::CreateProgressDialog(int max) -{ - EndProgressDialog(); - m_pDlg = new wxProgressDialog(_("Progress"), _T(""), max, 0, wxPD_APP_MODAL); - m_pDlg->SetSize(480, m_pDlg->GetSize().y); - m_pDlg->Centre(); -} - -void DevPakInstaller::EndProgressDialog() -{ - if (m_pDlg) - m_pDlg->Destroy(); - m_pDlg = 0; -} - -void DevPakInstaller::UpdateProgress(int val, const wxString& newtext) -{ - if (m_pDlg) - { - m_pDlg->Update(val, newtext); - wxYield(); - } -} - -bool DevPakInstaller::Install(const wxString& name, const wxString& filename, const wxString& dir, wxArrayString* files) -{ - CreateProgressDialog(4); - m_Status.Clear(); - - // Step 1: decompress - UpdateProgress(0, _("Decompressing ") + filename); - wxYield(); - wxString m_Status; - wxString tmpfile = wxFileName::CreateTempFileName(_T("cb")); - if (!Decompress(filename, tmpfile)) - { - m_Status += _(" [Decompression failed]"); - wxRemoveFile(tmpfile); - EndProgressDialog(); - return false; - } - - // Step 2: un-tar .DevPackage file - UpdateProgress(1, _("Unpacking control-file")); - wxYield(); - TAR* t = new TAR(tmpfile.c_str()); - TAR::Record* r = t->FindFile(_T("*.DevPackage")); - wxString controlFile = r->name; - wxString status2; - if (!r || !t->ExtractFile(r, dir, status2)) - { - m_Status << _(" [Control file unpacking failed] - "); - m_Status << status2; - delete t; - wxRemoveFile(tmpfile); - EndProgressDialog(); - return false; - } - - // Step 3: un-tar - UpdateProgress(2, _("Unpacking all files")); - wxYield(); - if (!Untar(controlFile, tmpfile, dir, files)) - { - m_Status += _(" [Unpacking failed]"); - delete t; - wxRemoveFile(tmpfile); - RemoveControlFile(dir + _T("/") + controlFile); - EndProgressDialog(); - return false; - } - - UpdateProgress(3, _("Done")); - delete t; - wxRemoveFile(tmpfile); - RemoveControlFile(dir + _T("/") + controlFile); - EndProgressDialog(); - return true; -} - -bool DevPakInstaller::Uninstall(const wxString& entry) -{ - m_Status.Clear(); - IniParser* p = new IniParser; - p->ParseFile(entry); - - int idx = p->FindGroupByName(_T("Files"), false); - if (idx == -1) - { - m_Status << _("No [Files] section in ") << entry << _T('\n'); - return false; - } - wxArrayString pathlist; - CreateProgressDialog(p->GetKeysCount(idx)); - for (int i = 0; i < p->GetKeysCount(idx); ++i) - { - wxString file = p->GetKeyName(idx, i); - UpdateProgress(i, _("Removing: ") + file); - if (!wxRemoveFile(file)) - m_Status << _("Can't remove ") << file << _T('\n'); - else - { - wxString path = wxPathOnly(file); - while (path.Last() == _T('/') || path.Last() == _T('\\')) - path.RemoveLast(); - if (pathlist.Index(path) == wxNOT_FOUND) - pathlist.Add(path); - } - } - EndProgressDialog(); - // remove dirs - CreateProgressDialog(pathlist.GetCount()); - for (unsigned int i = 0; i < pathlist.GetCount(); ++i) - { - wxString path = pathlist[i]; - int pos = path.Find(_T('/'), true); - while (pos != wxNOT_FOUND) - { - wxRmdir(path); - path.Remove(pos, path.Length() - pos); - UpdateProgress(i, _("Removing directory: ") + path); - pos = path.Find(_T('/'), true); - } - } - EndProgressDialog(); - delete p; - if (!wxRemoveFile(entry)) - m_Status << _("Can't remove ") << entry << _T('\n'); - - return true; //m_Status.IsEmpty(); -} - -void DevPakInstaller::RemoveControlFile(const wxString& filename) -{ - if (filename.IsEmpty()) - return; - wxRemoveFile(filename); - wxRmdir(wxFileName(filename).GetPath()); // deletes it if non-empty -} - -bool DevPakInstaller::Decompress(const wxString& filename, const wxString& tmpfile) -{ - // open file - FILE* f = fopen(filename.mb_str(), "rb"); - if (!f) - { - m_Status = _("Error opening input file!"); - return false; - } - - // open BZIP2 stream - int bzerror; - BZFILE* bz = BZ2_bzReadOpen(&bzerror, f, 0, 0, 0L, 0); - if (!bz || bzerror != BZ_OK) - { - m_Status = _("Can't read compressed stream!"); - fclose(f); - return false; - } - - // open output file - FILE* fo = fopen(tmpfile.mb_str(), "wb"); - if (!fo) - { - m_Status = _("Error opening output file!"); - fclose(f); - return false; - } - - // read stream writing to uncompressed file - char buffer[2048]; - while (bzerror != BZ_STREAM_END) - { - int read_bytes = BZ2_bzRead(&bzerror, bz, buffer, 2048); - if (bzerror != BZ_OK && bzerror != BZ_STREAM_END) - { - m_Status = _("Error reading from stream!"); - BZ2_bzReadClose(&bzerror, bz); - fclose(fo); - fclose(f); - return false; - } - fwrite(buffer, read_bytes, 1, fo); - } - - BZ2_bzReadClose(&bzerror, bz); - - - fclose(fo); - fclose(f); - return true; -} - -bool DevPakInstaller::Untar(const wxString& controlFile, const wxString& filename, const wxString& dirname, wxArrayString* files) -{ - TAR t(filename.c_str()); - wxString tmpControlFile; - - if (!controlFile.IsEmpty()) - { - IniParser ini; - ini.ParseFile(dirname + _T("/") + controlFile); - int grp = ini.FindGroupByName(_T("Files")); - for (int i = 0; grp != -1 && i < ini.GetKeysCount(grp); ++i) - { - t.AddReplacer(ini.GetKeyName(grp, i), ini.GetKeyValue(grp, i)); - } - - // add replacers for all paths above controlFile - // i.e. in Allegro.DevPak: - // Test/Allegro.DevPackage (everything is below Test/), - // add replacer for Test/ - int pos = controlFile.Last('/'); - if (pos != wxNOT_FOUND) - { - wxString replacer = controlFile.SubString(0, pos); - tmpControlFile = controlFile; - tmpControlFile.Replace(replacer, _T("")); - t.AddReplacer(replacer, _T("")); - } - - // add replacers (with user's permission) for DLLs - #ifdef __WXMSW__ - TAR::Record* r = t.FindFile(_T("*.dll")); - if (!r) - r = t.FindFile(_T("*.DLL")); - if (r) - { - if (wxMessageBox(_("This package contains some DLLs.\nDo you want to install them system-wide (YES recommended)?"), _("Confirmation"), wxICON_QUESTION | wxYES_NO) == wxYES) - { - wxFileName fname(wxGetOSDirectory() + _T("/system32/")); - fname.MakeRelativeTo(dirname); - t.AddReplacer(_T("dll/"), fname.GetFullPath()); - } - wxYield(); - } - #endif - } - - bool ret = t.ExtractAll(dirname.c_str(), m_Status, files); - if (!tmpControlFile.IsEmpty()) - RemoveControlFile(dirname + _T("/") + tmpControlFile); - return ret; -} diff --git a/src/plugins/contrib/devpak_plugin/devpakinstaller.h b/src/plugins/contrib/devpak_plugin/devpakinstaller.h deleted file mode 100644 index 93c917c1b5..0000000000 --- a/src/plugins/contrib/devpak_plugin/devpakinstaller.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef DEVPAKINSTALLER_H -#define DEVPAKINSTALLER_H - -#include -#include -#include - -class DevPakInstaller -{ - public: - DevPakInstaller(); - ~DevPakInstaller(); - - bool Install(const wxString& name, const wxString& filename, const wxString& dir, wxArrayString* files = 0); - bool Uninstall(const wxString& entry); - const wxString& GetStatus() const { return m_Status; } - protected: - private: - bool Decompress(const wxString& filename, const wxString& tmpfile); - bool Untar(const wxString& controlFile, const wxString& filename, const wxString& dirname, wxArrayString* files = 0); - void CreateProgressDialog(int max = 100); - void EndProgressDialog(); - void UpdateProgress(int val, const wxString& newtext = wxEmptyString); - void RemoveControlFile(const wxString& filename); // removes dir also, if empty - - wxString m_Status; - wxProgressDialog* m_pDlg; -}; - -#endif // DEVPAKINSTALLER_H diff --git a/src/plugins/contrib/devpak_plugin/devpakupdater.cpp b/src/plugins/contrib/devpak_plugin/devpakupdater.cpp deleted file mode 100644 index 2ec0d35404..0000000000 --- a/src/plugins/contrib/devpak_plugin/devpakupdater.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "devpakupdater.h" -#include "updatedlg.h" -#include "conf.h" -#include -#include -#include -#include -#include -#include -#include - -// Register the plugin -namespace -{ - PluginRegistrant reg(_T("DevPakUpdater")); -}; - -DevPakUpdater::DevPakUpdater() -{ - //ctor - if(!Manager::LoadResource(_T("devpakupdater.zip"))) - { - NotifyMissingFile(_T("devpakupdater.zip")); - } - g_MasterPath = Manager::Get()->GetConfigManager(_T("devpak_plugin"))->Read(_T("/master_path")); -} - -DevPakUpdater::~DevPakUpdater() -{ - //dtor -} - -void DevPakUpdater::OnAttach() -{ -} - -void DevPakUpdater::OnRelease(bool appShutDown) -{ -} - -bool DevPakUpdater::ConfigurationValid() -{ - // let's make sure we have a valid configuration - if (g_MasterPath.IsEmpty() || !wxDirExists(g_MasterPath)) - { - if (wxMessageBox(_("The Dev-C++ DevPak Plugin is not configured yet.\nDo you want to configure it now?"), _("Question"), wxICON_QUESTION | wxYES_NO) == wxNO) - return false; - if (Configure() != 0) - return false; - // ask to add in compiler paths - if (wxMessageBox(_("Do you want to add this path to the compiler's search dirs?\n" - "(needed to be able to actually compile anything)"), - _("Question"), wxICON_QUESTION | wxYES_NO) == wxYES) - { - Compiler* compiler = CompilerFactory::GetCompiler(0); // GCC is always first compiler - if (!compiler) - { - wxMessageBox(_("Invalid compiler!?!"), _("Error"), wxICON_ERROR); - return true; - } - compiler->AddIncludeDir(g_MasterPath + wxFILE_SEP_PATH + _T("include")); - compiler->AddLibDir(g_MasterPath + wxFILE_SEP_PATH + _T("lib")); - } - } - return true; -} - -int DevPakUpdater::Configure() -{ - if (g_MasterPath.IsEmpty()) - g_MasterPath = ConfigManager::GetConfigFolder() + wxFILE_SEP_PATH + _T("DevPaks"); - wxString dir = wxDirSelector(_("Please select the path where DevPaks will be downloaded and installed:"), - g_MasterPath); - if (!dir.IsEmpty()) - { - g_MasterPath = dir; - if (!ConfigurationValid()) - { - g_MasterPath.Clear(); - return -1; - } - Manager::Get()->GetConfigManager(_T("devpak_plugin"))->Write(_T("/master_path"), g_MasterPath); - return 0; - } - return -1; -} - -int DevPakUpdater::Execute() -{ - if (!ConfigurationValid()) - return -1; - UpdateDlg dlg(Manager::Get()->GetAppWindow()); - dlg.ShowModal(); - return 0; -} diff --git a/src/plugins/contrib/devpak_plugin/devpakupdater.h b/src/plugins/contrib/devpak_plugin/devpakupdater.h deleted file mode 100644 index 81e8f678c1..0000000000 --- a/src/plugins/contrib/devpak_plugin/devpakupdater.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef DEVPAKUPDATER_H -#define DEVPAKUPDATER_H - -// For compilers that support precompilation, includes -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include -#endif - -#include // the base class we 're inheriting -#include // needed to use the Code::Blocks SDK - -class DevPakUpdater : public cbToolPlugin -{ - public: - DevPakUpdater(); - ~DevPakUpdater(); - int Configure(); - int Execute(); - void OnAttach(); // fires when the plugin is attached to the application - void OnRelease(bool appShutDown); // fires when the plugin is released from the application - protected: - bool ConfigurationValid(); - private: -}; - -#endif // DEVPAKUPDATER_H - diff --git a/src/plugins/contrib/devpak_plugin/manifest.xml b/src/plugins/contrib/devpak_plugin/manifest.xml deleted file mode 100644 index 961f0bc9e7..0000000000 --- a/src/plugins/contrib/devpak_plugin/manifest.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/plugins/contrib/devpak_plugin/mytar.cpp b/src/plugins/contrib/devpak_plugin/mytar.cpp deleted file mode 100644 index b6a5f702c4..0000000000 --- a/src/plugins/contrib/devpak_plugin/mytar.cpp +++ /dev/null @@ -1,293 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "mytar.h" -#include -#include -#include -#include -WX_DEFINE_OBJARRAY(ReplacersArray); - -TAR::TAR(const wxString& filename) - : m_pFile(0), - m_SkipBytes(0), - m_Size(0) -{ - if (!filename.IsEmpty()) - Open(filename); -} - -TAR::~TAR() -{ - Close(); -} - -bool TAR::Open(const wxString& filename) -{ - if (filename.IsEmpty()) - return false; - Close(); - - m_pFile = fopen(filename.mb_str(), "rb"); - if (!m_pFile) - return false; - - fseek(m_pFile, 0, SEEK_END); - m_Size = ftell(m_pFile); - fseek(m_pFile, 0, SEEK_SET); - - return true; -} - -void TAR::Close() -{ - if (m_pFile) - fclose(m_pFile); - m_pFile = 0; - Reset(); - m_Size = 0; -} - -void TAR::Reset() -{ - if (m_pFile) - fseek(m_pFile, 0, SEEK_SET); - m_SkipBytes = 0; -} - -int TAR::OctToInt(const char* oct) -{ - int i = 0; - if (sscanf(oct, "%o", &i) != 1) - i = 0; -// return 1; - return i; -} - -size_t TAR::OffsetRecords(size_t bytes) -{ - size_t i = bytes / sizeof(TAR::Header); - if (bytes % sizeof(TAR::Header) > 0) - ++i; - return i; -} - -bool TAR::Next(TAR::Record* rec) -{ - if (!rec) - return false; - rec->name.Clear(); - rec->size = 0; - rec->pos = 0; - if (m_SkipBytes > 0) - fseek(m_pFile, OffsetRecords(m_SkipBytes) * sizeof(TAR::Header), SEEK_CUR); - TAR::Header buffer; - memset(&buffer, 0, sizeof(TAR::Header)); - - // reached end of file? - size_t pos = ftell(m_pFile); - if (pos + sizeof(buffer) > m_Size) - return false; // yes - if (fread(&buffer, sizeof(buffer), 1, m_pFile) != 1) - return false; - - rec->pos = pos; - rec->name = cbC2U(buffer.name); - rec->size = OctToInt(buffer.size); - -#if 1 - // many DevPaks, end with a single null record... - if (buffer.name[0] == 0) - return false; -#else // 0 - // 2 consecutive nulls means EOT - static bool previousWasNull = false; - if (rec->name.IsEmpty()) - { - rec->name.Clear(); - if (previousWasNull) - return false; // EOT - else - { - previousWasNull = true; - m_SkipBytes = rec->size; - return true; - } - } - else - previousWasNull = false; // reset flag -#endif // 0 - - switch (buffer.typeflag) - { - case 0: - case _T('0'): rec->ft = ftNormal; break; - case _T('1'): rec->ft = ftLink; break; - case _T('2'): rec->ft = ftSymbolicLink; break; - case _T('3'): rec->ft = ftCharacter; break; - case _T('4'): rec->ft = ftBlock; break; - case _T('5'): rec->ft = ftDirectory; break; - case _T('6'): rec->ft = ftFifo; break; - case _T('7'): rec->ft = ftContiguous; break; - case _T('D'): rec->ft = ftDumpDir; break; - case _T('M'): rec->ft = ftMultiVolume; break; - case _T('V'): rec->ft = ftVolumeHeader; break; -// case _T('L'): rec.ft = ftLongName; break; -// case _T('K'): rec.ft = ftLongLink; break; - default: break; - } - - switch (rec->ft) - { - case ftLink: - case ftSymbolicLink: - case ftDirectory: - case ftFifo: - case ftVolumeHeader: - m_SkipBytes = 0; - break; - default: - m_SkipBytes = rec->size; - break; - } - return true; -} - -bool TAR::ExtractAll(const wxString& dirname, wxString& status, wxArrayString* files) -{ - Reset(); - status.Clear(); - if (files) - files->Clear(); - TAR::Record r; - while (Next(&r)) - { - wxString convertedFile; - if (!ExtractFile(&r, dirname, status, &convertedFile)) - { - status << _("Failed extracting") << _T(" \"") << r.name << _T("\"\n"); - return false; - } - if (files && !convertedFile.IsEmpty()) - files->Add(convertedFile); - } - return true; -} - -void TAR::ClearReplacers() -{ - m_Replacers.Clear(); -} - -void TAR::AddReplacer(const wxString& from, const wxString& to) -{ - Replacers r; - r.from = from; - if (r.from.Last() != _T('/')) - r.from << _T('/'); - r.to = to; - r.to.Replace(_T(""), _T("")); - - // avoid duplicates - for (unsigned int i = 0; i < m_Replacers.GetCount(); ++i) - { - if (m_Replacers[i].from == r.from) - return; - } - - m_Replacers.Add(r); -} - -void TAR::ReplaceThings(wxString& path) -{ - while (path.Replace(_T("\\"), _T("/"))) - ; - for (unsigned int i = 0; i < m_Replacers.GetCount(); ++i) - path.Replace(m_Replacers[i].from, m_Replacers[i].to); - while (path.Replace(_T("\\"), _T("/"))) - ; - while (path.Replace(_T("//"), _T("/"))) - ; -} - -bool TAR::ExtractFile(Record* rec, const wxString& dirname, wxString& status, wxString* convertedFile) -{ - if (!rec) - return false; - - if (convertedFile) - convertedFile->Clear(); - wxString path; - if (rec->name.IsEmpty()) - return true; - if (!dirname.IsEmpty()) - { - path << dirname << _T("/"); - } - path << rec->name; - ReplaceThings(path); - - switch (rec->ft) - { - case ftNormal: - { - CreateDirRecursively(path); - status << _("Unpacking ") << path << _T('\n'); - if (convertedFile) - *convertedFile = path; - - FILE* out = fopen(path.mb_str(), "wb"); - if (!out) - { - status << wxString(_("Can't open file ")) << path << _T("\n"); - return false; - } - if (rec->size > 0) - { - size_t oldpos = ftell(m_pFile); - char* buffer = new char[rec->size]; - memset(buffer, 0, rec->size); - if (fread(buffer, rec->size, 1, m_pFile) != 1) - { - delete[] buffer; - fclose(out); - fseek(m_pFile, oldpos, SEEK_SET); - status << _("Failure reading file ") << path << _T("\n"); - return false; - } - fwrite(buffer, rec->size, 1, out); - delete[] buffer; - fseek(m_pFile, oldpos, SEEK_SET); - } - fclose(out); - break; - } - - default: break; - } - - return true; -} - -TAR::Record* TAR::FindFile(const wxString& filename) -{ - if (filename.IsEmpty()) - return 0; - Reset(); - static TAR::Record r; - while (Next(&r)) - { - if (r.name.CmpNoCase(filename) == 0 || - r.name.Matches(filename)) // support wildcards - { - return &r; - } - } - return 0; -} diff --git a/src/plugins/contrib/devpak_plugin/mytar.h b/src/plugins/contrib/devpak_plugin/mytar.h deleted file mode 100644 index a1db9a6f1d..0000000000 --- a/src/plugins/contrib/devpak_plugin/mytar.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef MYTAR_H -#define MYTAR_H - -#include -#include - -class wxArrayString; - -struct Replacers -{ - wxString from; - wxString to; -}; -WX_DECLARE_OBJARRAY(Replacers, ReplacersArray); - -class TAR -{ - public: - struct Header - { - char name[100]; - char mode[8]; - char uid[8]; - char gid[8]; - char size[12]; - char mtime[12]; - char chksum[8]; - char typeflag; - char linkname[100]; - char magic[6]; - char version[2]; - char uname[32]; - char gname[32]; - char devmajor[8]; - char devminor[8]; - char prefix[155]; - char padding[12]; -// char *gnu_longname; -// char *gnu_longlink; - } __attribute__((__packed__)); - - enum FileType - { - ftNormal, // Regular file - ftLink, // Link to another, previously archived, file (LinkName) - ftSymbolicLink, // Symbolic link to another file (LinkName) - ftCharacter, // Character special files - ftBlock, // Block special files - ftDirectory, // Directory entry. Size is zero (unlimited) or max. number of bytes - ftFifo, // FIFO special file. No data stored in the archive. - ftContiguous, // Contiguous file, if supported by OS - ftDumpDir, // List of files - ftMultiVolume, // Multi-volume file part - ftVolumeHeader, // Volume header. Can appear only as first record in the archive - ftLongName, - ftLongLink - }; - - struct Record - { - wxString name; - int size; - size_t pos; - FileType ft; - }; - - TAR(const wxString& filename = wxEmptyString); - ~TAR(); - - bool Open(const wxString& filename); - void Close(); - void Reset(); - - bool Next(Record* rec); - bool ExtractAll(const wxString& dirname, wxString& status, wxArrayString* files = 0); - bool ExtractFile(Record* rec, const wxString& dirname, wxString& status, wxString* convertedFile = 0); - Record* FindFile(const wxString& filename); - - void ClearReplacers(); - void AddReplacer(const wxString& from, const wxString& to); - protected: - int OctToInt(const char* oct); - size_t OffsetRecords(size_t bytes); - void ReplaceThings(wxString& path); - FILE* m_pFile; - size_t m_SkipBytes; - size_t m_Size; - ReplacersArray m_Replacers; -}; - -#endif // MYTAR_H diff --git a/src/plugins/contrib/devpak_plugin/update.xrc b/src/plugins/contrib/devpak_plugin/update.xrc deleted file mode 100644 index 1a8b600dd0..0000000000 --- a/src/plugins/contrib/devpak_plugin/update.xrc +++ /dev/null @@ -1,171 +0,0 @@ - - - - Dev-C++ DevPaks updater / installer - 1 - - wxVERTICAL - - - - - - - wxGROW - - - - - - wxGROW - - - - - - - wxGROW - 240,-1 - - - - -1,20 - - wxGROW - - - - - 1 - - wxTOP|wxGROW - 4 - - 2 - 8 - 1 - - - - - wxGROW - - - wxALL|wxGROW - 8 - - - - wxLEFT|wxRIGHT|wxGROW - 8 - - - - - wxHORIZONTAL - - - - - wxTOP|wxLEFT|wxGROW - 4 - - - - - All files - Installed - Installed with update available - Downloaded but not installed - Not installed - - 0 - - - - wxLEFT|wxRIGHT|wxGROW - 8 - - - wxTOP|wxLEFT|wxRIGHT|wxGROW - 8 - - - - wxHORIZONTAL - - - wxVERTICAL - - - - - wxGROW - - - - - wxGROW - 192,-1 - - - wxGROW - - - - wxVERTICAL - - - - - wxGROW - - - - - - - wxGROW - 320,128 - - - - - - wxTOP|wxGROW - 8 - - - - - - - wxGROW - - - - wxLEFT|wxGROW - 8 - - - - - wxALL|wxGROW - 8 - - - - wxHORIZONTAL - - - - - - - wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_CENTRE_HORIZONTAL - 8 - - - - - diff --git a/src/plugins/contrib/devpak_plugin/updatedlg.cpp b/src/plugins/contrib/devpak_plugin/updatedlg.cpp deleted file mode 100644 index 1c504a43e6..0000000000 --- a/src/plugins/contrib/devpak_plugin/updatedlg.cpp +++ /dev/null @@ -1,742 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "updatedlg.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "devpakinstaller.h" -#include "crc32.h" - -#include "manager.h" -#include "configmanager.h" -#include "globals.h" - -int idNet = wxNewId(); -int idPopupInstall = wxNewId(); -int idPopupDownload = wxNewId(); -int idPopupDownloadAndInstall = wxNewId(); -int idPopupUninstall = wxNewId(); - -BEGIN_EVENT_TABLE(UpdateDlg, wxScrollingDialog) - EVT_UPDATE_UI(-1, UpdateDlg::OnUpdateUI) - EVT_TREE_SEL_CHANGED(XRCID("tvCategories"), UpdateDlg::OnTreeSelChanged) - EVT_LIST_ITEM_SELECTED(XRCID("lvFiles"), UpdateDlg::OnFileSelected) - EVT_LIST_ITEM_DESELECTED(XRCID("lvFiles"), UpdateDlg::OnFileDeSelected) - EVT_LIST_ITEM_RIGHT_CLICK(XRCID("lvFiles"), UpdateDlg::OnFileRightClick) - EVT_MENU(idPopupDownload, UpdateDlg::OnDownload) - EVT_MENU(idPopupDownloadAndInstall, UpdateDlg::OnDownloadAndInstall) - EVT_MENU(idPopupInstall, UpdateDlg::OnInstall) - EVT_MENU(idPopupUninstall, UpdateDlg::OnUninstall) - EVT_COMBOBOX(XRCID("cmbServer"), UpdateDlg::OnServerChange) - EVT_COMBOBOX(XRCID("cmbFilter"), UpdateDlg::OnFilterChange) - EVT_CHECKBOX(XRCID("chkCache"), UpdateDlg::OnServerChange) - EVT_CBNET_CONNECT(idNet, UpdateDlg::OnConnect) - EVT_CBNET_DISCONNECT(idNet, UpdateDlg::OnDisConnect) - EVT_CBNET_PROGRESS(idNet, UpdateDlg::OnProgress) - EVT_CBNET_ABORTED(idNet, UpdateDlg::OnAborted) - EVT_CBNET_START_DOWNLOAD(idNet, UpdateDlg::OnDownloadStarted) - EVT_CBNET_END_DOWNLOAD(idNet, UpdateDlg::OnDownloadEnded) -END_EVENT_TABLE() - -UpdateDlg::UpdateDlg(wxWindow* parent) - : m_Recs(0), - m_RecsCount(0), - m_CurrFileSize(0), - m_LastBlockSize(0), - m_HasUpdated(false), - m_FirstTimeCheck(true), - m_Net(this, idNet, _T("http://devpaks.sourceforge.net/")) -{ - //ctor - wxXmlResource::Get()->LoadObject(this, parent, _T("MainFrame"),_T("wxScrollingDialog")); - CreateListColumns(); - FillServers(); - UpdateStatus(_("Ready"), 0); -} - -UpdateDlg::~UpdateDlg() -{ - //dtor - delete[] m_Recs; - m_RecsCount = 0; -} - -void UpdateDlg::EndModal(int retCode) -{ - if (!m_Net.IsConnected() || retCode != wxID_CANCEL) - { - wxScrollingDialog::EndModal(retCode); - return; - } - - if (m_Net.IsConnected()) - m_Net.Abort(); -} - -void UpdateDlg::CreateListColumns() -{ - wxListCtrl* lst = XRCCTRL(*this, "lvFiles", wxListCtrl); - lst->InsertColumn(0, _("Title")); - lst->InsertColumn(1, _("Version")); - lst->InsertColumn(2, _("Installed")); - lst->InsertColumn(3, _("Size"), wxLIST_FORMAT_RIGHT); - lst->InsertColumn(4, _("Rev")); - - lst->SetColumnWidth(0, lst->GetSize().x - (64 * 3 + 40) - 6 ); // 1st column takes all remaining space - lst->SetColumnWidth(1, 64); - lst->SetColumnWidth(2, 64); - lst->SetColumnWidth(3, 64); - lst->SetColumnWidth(4, 40); -} - -void UpdateDlg::AddRecordToList(UpdateRec* rec) -{ - if (!rec) - return; - wxListCtrl* lst = XRCCTRL(*this, "lvFiles", wxListCtrl); - int idx = lst->GetItemCount(); - lst->InsertItem(idx, rec->title); - lst->SetItem(idx, 1, rec->version); - lst->SetItem(idx, 2, rec->installed_version); - lst->SetItem(idx, 3, rec->size); - lst->SetItem(idx, 4, rec->revision); -} - -wxString UpdateDlg::GetListColumnText(int idx, int col) { - wxListCtrl* lst = XRCCTRL(*this, "lvFiles", wxListCtrl); - int index = idx == -1 ? lst->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED) : idx; - wxListItem info; - info.SetId(index); - info.SetColumn(col); - info.SetMask(wxLIST_MASK_TEXT); - lst->GetItem(info); - return info.GetText(); -} - -void UpdateDlg::SetListColumnText(int idx, int col, const wxString& text) -{ - wxListCtrl* lst = XRCCTRL(*this, "lvFiles", wxListCtrl); - int index = idx == -1 ? lst->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED) : idx; - wxListItem it; - it.m_itemId = index; - it.m_col = col; - it.m_mask = wxLIST_MASK_TEXT; - it.m_text = text; - lst->SetItem(it); -} - -void UpdateDlg::UpdateStatus(const wxString& status, int curProgress, int maxProgress) -{ - wxStaticText* lbl = XRCCTRL(*this, "lblStatus", wxStaticText); - if (lbl->GetLabel() != status) - lbl->SetLabel(status); - if (curProgress != -1) - XRCCTRL(*this, "gauProgress", wxGauge)->SetValue(curProgress); - if (maxProgress != -1) - XRCCTRL(*this, "gauProgress", wxGauge)->SetRange(maxProgress); -} - -void UpdateDlg::EnableButtons(bool update, bool abort) -{ - wxButton* btnCl = XRCCTRL(*this, "wxID_CANCEL", wxButton); - - btnCl->Enable(abort); - // disable server list and cache checkbox while downloading - XRCCTRL(*this, "cmbServer", wxComboBox)->Enable(!m_Net.IsConnected()); - XRCCTRL(*this, "chkCache", wxCheckBox)->Enable(!m_Net.IsConnected()); - - wxYield(); -} - -void UpdateDlg::FillGroups() -{ - UpdateStatus(_("Parsing list of updates"), 0, m_RecsCount - 1); - - // get a list of unique group names - wxArrayString groups; - for (int i = 0; i < m_RecsCount; ++i) - { - for (unsigned int x = 0; x < m_Recs[i].groups.GetCount(); ++x) - { - if (m_Recs[i].groups[x].IsEmpty()) - continue; - if (groups.Index(m_Recs[i].groups[x]) == wxNOT_FOUND) - { - if (FilterRec(&m_Recs[i])) - groups.Add(m_Recs[i].groups[x]); - } - } - } - - // create the groups tree - wxTreeCtrl* tree = XRCCTRL(*this, "tvCategories", wxTreeCtrl); - tree->Freeze(); - tree->DeleteAllItems(); - wxTreeItemId root = tree->AddRoot(_("All categories")); - for (unsigned int i = 0; i < groups.GetCount(); ++i) - { - tree->AppendItem(root, groups[i]); - } - tree->SortChildren(root); - tree->Thaw(); - tree->Expand(root); - tree->SelectItem(root); // this calls the event - - UpdateStatus(_("Done parsing list of updates"), 0); -} - -void UpdateDlg::FillFiles(const wxTreeItemId& id) -{ - wxTreeCtrl* tree = XRCCTRL(*this, "tvCategories", wxTreeCtrl); - wxListCtrl* lst = XRCCTRL(*this, "lvFiles", wxListCtrl); - lst->Freeze(); - lst->ClearAll(); - CreateListColumns(); - - wxString group = id == tree->GetRootItem() ? _T("") : tree->GetItemText(id); - - // add files belonging to group - int counter = 0; - for (int i = 0; i < m_RecsCount; ++i) - { - if (group.IsEmpty() || (!m_Recs[i].groups.IsEmpty() && m_Recs[i].groups.Index(group) != wxNOT_FOUND)) - { - // filter - if (FilterRec(&m_Recs[i])) - { - AddRecordToList(&m_Recs[i]); - ++counter; - } - } - } - lst->Thaw(); - - // select first item - lst->SetItemState(0, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED, wxLIST_STATE_SELECTED | wxLIST_STATE_FOCUSED); -} - -void UpdateDlg::FillFileDetails(const wxListItem& id) -{ - wxTextCtrl* txt = XRCCTRL(*this, "txtInfo", wxTextCtrl); - txt->Clear(); - - UpdateRec* cur = GetRecFromListView(); - if (!cur) - { - txt->Clear(); - EnableButtons(); - return; - } - txt->AppendText(_("Name: ") + cur->name + _T("\n")); -// txt->AppendText(_("Server: ") + cur->remote_server + _T("\n")); -// txt->AppendText(_("File: ") + cur->remote_file + _T("\n")); - txt->AppendText(_("Version: ") + cur->version + _T("\n")); - txt->AppendText(_("Size: ") + cur->size + _T("\n")); - txt->AppendText(_("Date: ") + cur->date + _T("\n\n")); - txt->AppendText(_("Description: \n")); - txt->AppendText(cur->desc); - - txt->SetSelection(0, 0); - txt->SetInsertionPoint(0); -} - -void UpdateDlg::InternetUpdate(bool forceDownload) -{ - UpdateStatus(_("Please wait...")); - m_HasUpdated = false; - m_Net.SetServer(GetCurrentServer()); - - EnableButtons(false); - forceDownload = forceDownload || !XRCCTRL(*this, "chkCache", wxCheckBox)->GetValue(); - - bool forceDownloadMirrors = forceDownload || !wxFileExists(GetMirrorsFilename()); - if (forceDownloadMirrors) - { - if (!m_Net.DownloadFile(_T("mirrors.cfg"), GetMirrorsFilename())) - { - UpdateStatus(_("Error downloading list of mirrors"), 0, 0); - return; - } - else - { - FillServers(); - m_Net.SetServer(GetCurrentServer()); // update server based on mirrors - } - } - - wxString config = GetConfFilename(); - forceDownload = forceDownload || !wxFileExists(config); - if (forceDownload && !m_Net.DownloadFile(_T("webupdate.conf"), config)) - { - UpdateStatus(_("Error downloading list of updates"), 0, 0); - return; - } - else - { - IniParser ini; - if (!ini.ParseFile(config)) - { - UpdateStatus(_("Failed to retrieve the list of updates"), 0, 0); - return; - } - ini.Sort(); - - if (m_Recs) - delete[] m_Recs; - - // remember to delete[] m_Recs when we 're done with it!!! - // it's our responsibility once given to us - m_Recs = ReadConf(ini, &m_RecsCount, GetCurrentServer(), GetPackagePath()); - - FillGroups(); - } - EnableButtons(); - UpdateStatus(_("Ready"), 0, 0); - - m_HasUpdated = true; -} - -void UpdateDlg::FillServers() -{ - wxComboBox* cmb = XRCCTRL(*this, "cmbServer", wxComboBox); - cmb->Clear(); - m_Servers.Clear(); - - IniParser ini; - ini.ParseFile(GetMirrorsFilename()); - int group = ini.FindGroupByName(_T("WebUpdate mirrors")); - for (int i = 0; group != -1 && i < ini.GetKeysCount(group); ++i) - { - cmb->Append(ini.GetKeyName(group, i)); - m_Servers.Add(ini.GetKeyValue(group, i)); - } - if (cmb->GetCount() == 0) - { - cmb->Append(_("devpaks.org Community Devpaks")); - m_Servers.Add(_T("http://devpaks.sourceforge.net/")); - } - cmb->SetSelection(0); -} - -wxString UpdateDlg::GetConfFilename() -{ - int server_hash = GetTextCRC32(GetCurrentServer().mb_str()); - wxString config; - config = ConfigManager::GetConfigFolder() + wxFILE_SEP_PATH; - config.Printf(_T("%sdevpak_%x.conf"), config.c_str(), server_hash); - return config; -} - -wxString UpdateDlg::GetMirrorsFilename() const -{ - wxString config; - config = ConfigManager::GetConfigFolder() + wxFILE_SEP_PATH + _T("devpak_mirrors.cfg"); - return config; -} - -wxString UpdateDlg::GetCurrentServer() const -{ - return m_Servers[XRCCTRL(*this, "cmbServer", wxComboBox)->GetSelection()]; -} - -wxString UpdateDlg::GetBasePath() const -{ - return g_MasterPath + wxFILE_SEP_PATH; -} - -wxString UpdateDlg::GetPackagePath() const -{ - return GetBasePath() + _T("Packages") + wxFILE_SEP_PATH; -} - -bool UpdateDlg::FilterRec(UpdateRec* rec) -{ - if (!rec) - return false; - wxComboBox* cmb = XRCCTRL(*this, "cmbFilter", wxComboBox); - switch (cmb->GetSelection()) - { - case 0: // All - return true; - - case 1: // Installed - return rec->installed; - - case 2: // installed with update available - return rec->installed && rec->version != rec->installed_version; - - case 3: // downloaded but not installed - return rec->downloaded && !rec->installed; - - case 4: // not installed - return !rec->downloaded && !rec->installed; - - default: - return false; - } - return false; // doesn't reach here -} - -void UpdateDlg::ApplyFilter() -{ - wxTreeCtrl* tree = XRCCTRL(*this, "tvCategories", wxTreeCtrl); - - FillGroups(); - FillFiles(tree->GetSelection()); - EnableButtons(); -} - -UpdateRec* UpdateDlg::GetRecFromListView() -{ - wxListCtrl* lst = XRCCTRL(*this, "lvFiles", wxListCtrl); - int index = lst->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); - if (index == -1) - return 0; - wxString title = lst->GetItemText(index); - wxString version = GetListColumnText(index, 1); - wxString revision = GetListColumnText(index, 4); - return FindRec(title, version, revision, m_Recs, m_RecsCount); -} - -void UpdateDlg::DownloadFile(bool dontInstall) -{ - UpdateStatus(_("Please wait...")); - UpdateRec* rec = GetRecFromListView(); - if (!rec) - { - wxMessageBox(_("No file selected!"), _("Error"), wxICON_ERROR); - UpdateStatus(_("Ready"), 0, 0); - return; - } - - if (rec->version == rec->installed_version) - { - if (wxMessageBox(_("You seem to have installed the latest version.\nAre you sure you want to proceed?"), _("Confirmation"), wxICON_QUESTION | wxYES_NO) == wxNO) - return; - } - - if (!CreateDirRecursively(GetPackagePath())) - { - wxMessageBox(_("Can't create directory ") + GetPackagePath(), _("Error"), wxICON_ERROR); - return; - } - - if (wxFileExists(GetPackagePath() + rec->local_file)) - { - if (wxMessageBox(_("This file already exists!\nAre you sure you want to download it again?"), _("Confirmation"), wxICON_QUESTION | wxYES_NO) == wxNO && - rec->installable) - { - if (!dontInstall && wxMessageBox(_("Do you want to force-install it?"), _("Confirmation"), wxICON_QUESTION | wxYES_NO) == wxYES) - InstallFile(); - return; - } - } - - m_Net.SetServer(rec->remote_server); - - EnableButtons(false); - if (!m_Net.DownloadFile(rec->remote_file, GetPackagePath() + rec->local_file)) - { - rec->downloaded = false; - UpdateStatus(_("Error downloading file: ") + rec->remote_server + _T(" > ") + rec->remote_file, 0, 0); - return; - } - else - rec->downloaded = true; - UpdateStatus(_("Ready"), 0, 0); - EnableButtons(); -} - -void UpdateDlg::InstallFile() -{ - UpdateStatus(_("Please wait...")); - UpdateRec* rec = GetRecFromListView(); - if (!rec) - { - wxMessageBox(_("No file selected!"), _("Error"), wxICON_ERROR); - UpdateStatus(_("Ready"), 0, 0); - return; - } - wxYield(); - - if (rec->title == _T("WebUpdate Mirrors list")) - { - InstallMirrors(GetPackagePath() + rec->local_file); - rec->installed = true; - ApplyFilter(); - UpdateStatus(_("Ready"), 0, 0); - return; - } - else if (!rec->installable) - { - UpdateStatus(_("Ready"), 0, 0); - return; - } - - if (!CreateDirRecursively(GetPackagePath())) - { - UpdateStatus(_("Ready"), 0, 0); - wxMessageBox(_("Can't create directory ") + GetPackagePath(), _("Error"), wxICON_ERROR); - return; - } - - wxArrayString files; - DevPakInstaller inst; - if (inst.Install(rec->name, GetPackagePath() + rec->local_file, GetBasePath(), &files)) - { -// wxFileName fname(GetPackagePath() + rec->local_file); -// fname.SetExt("entry"); -// fname.SetName(rec->title); -// CreateEntryFile(rec, fname.GetFullPath(), files); - CreateEntryFile(rec, GetPackagePath() + rec->entry, files); - wxMessageBox(_("DevPak installed"), _("Message"), wxICON_INFORMATION); - - // refresh installed_version - rec->installed = true; - rec->installed_version = rec->version; - SetListColumnText(-1, 2, rec->installed_version); - } - else - { - wxMessageBox(_("DevPak was not installed.\nStatus:\n") + inst.GetStatus(), _("Error"), wxICON_ERROR); - } - UpdateStatus(_("Ready"), 0, 0); -} - -void UpdateDlg::InstallMirrors(const wxString& file) -{ - if (!wxCopyFile(file, GetMirrorsFilename(), true)) - wxMessageBox(_("Can't install mirrors file: ") + file, _("Error"), wxICON_ERROR); - else - { - wxRemoveFile(file); - FillServers(); - m_Net.SetServer(GetCurrentServer()); // update server based on mirrors - wxMessageBox(_("Mirrors installed"), _("Information"), wxICON_INFORMATION); - } -} - -void UpdateDlg::UninstallFile() -{ - UpdateStatus(_("Please wait...")); - UpdateRec* rec = GetRecFromListView(); - if (!rec) - { - wxMessageBox(_("No file selected!"), _("Error"), wxICON_ERROR); - UpdateStatus(_("Ready"), 0, 0); - return; - } - wxYield(); - - DevPakInstaller inst; - if (inst.Uninstall(GetPackagePath() + rec->entry)) - { - wxMessageBox(_("DevPak uninstalled"), _("Message"), wxICON_INFORMATION); - - // refresh installed_version - rec->installed_version.Clear(); - rec->installed = false; - SetListColumnText(-1, 2, rec->installed_version); - } - else - { - wxMessageBox(_("DevPak was not uninstalled.\nStatus:\n") + inst.GetStatus(), _("Error"), wxICON_ERROR); - } -} - -void UpdateDlg::CreateEntryFile(UpdateRec* rec, const wxString& filename, const wxArrayString& files) -{ - wxString entry; - entry << _T("[Setup]\n"); - entry << _T("AppName=") << rec->name << _T("\n"); - entry << _T("AppVersion=") << rec->version << _T("\n"); - - entry << _T("\n"); - entry << _T("[Files]\n"); - for (unsigned int i = 0; i < files.GetCount(); ++i) - { - entry << files[i] << _T("\n"); - } - - wxFile f(filename, wxFile::write); - if (f.IsOpened()) - { - f.Write(entry.mb_str(wxConvUTF8),entry.Length()); - } -} - -void UpdateDlg::OnFileRightClick(wxListEvent& event) -{ -// LOGSTREAM << "pt.x=" << event.GetPoint().x << ", pt.y=" << event.GetPoint().y << '\n'; - UpdateRec* rec = GetRecFromListView(); - if (!rec) - return; - - wxMenu popup; - popup.Append(idPopupDownloadAndInstall, _("Download && install")); - popup.AppendSeparator(); - popup.Append(idPopupDownload, _("Download")); - popup.Append(idPopupInstall, _("Install")); - popup.AppendSeparator(); - popup.Append(idPopupUninstall, _("Uninstall")); - - bool canDl = !rec->downloaded || rec->version != rec->installed_version; - bool canInst = rec->downloaded && (!rec->installed || rec->version != rec->installed_version); - - popup.Enable(idPopupDownload, canDl); - popup.Enable(idPopupInstall, canInst); - popup.Enable(idPopupDownloadAndInstall, canInst || canDl); - popup.Enable(idPopupUninstall, rec->installed); - - wxListCtrl* lst = XRCCTRL(*this, "lvFiles", wxListCtrl); - lst->PopupMenu(&popup, event.GetPoint()); -} - -void UpdateDlg::OnFileDeSelected(wxListEvent& event) -{ - wxListItem id; - FillFileDetails(id); - EnableButtons(); -} - -void UpdateDlg::OnFileSelected(wxListEvent& event) -{ - FillFileDetails(event.GetItem()); - EnableButtons(); -} - -void UpdateDlg::OnTreeSelChanged(wxTreeEvent& event) -{ - FillFiles(event.GetItem()); - EnableButtons(); -} - -void UpdateDlg::OnDownload(wxCommandEvent& event) -{ - DownloadFile(true); -} - -void UpdateDlg::OnInstall(wxCommandEvent& event) -{ - InstallFile(); -} - -void UpdateDlg::OnUninstall(wxCommandEvent& event) -{ - UninstallFile(); -} - -void UpdateDlg::OnDownloadAndInstall(wxCommandEvent& event) -{ - DownloadFile(); -} - -void UpdateDlg::OnServerChange(wxCommandEvent& event) -{ - InternetUpdate(); -} - -void UpdateDlg::OnFilterChange(wxCommandEvent& event) -{ - ApplyFilter(); -} - -void UpdateDlg::OnConnect(wxCommandEvent& event) -{ - XRCCTRL(*this, "wxID_CANCEL", wxButton)->SetLabel(_("Abort")); - EnableButtons(); -} - -void UpdateDlg::OnDisConnect(wxCommandEvent& event) -{ - XRCCTRL(*this, "wxID_CANCEL", wxButton)->SetLabel(_("Close")); - EnableButtons(); -} - -void UpdateDlg::OnProgress(wxCommandEvent& event) -{ - int prg = -1; - if (m_CurrFileSize != 0) - prg = event.GetInt() * 100 / m_CurrFileSize; - UpdateStatus(_("Downloading: ") + event.GetString(), prg); - - wxStaticText* lbl = XRCCTRL(*this, "lblProgress", wxStaticText); - - wxString msg; - msg.Printf(_("%s of %s"), GetSizeString(event.GetInt()).c_str(), GetSizeString(m_CurrFileSize).c_str()); - lbl->SetLabel(msg); -} - -void UpdateDlg::OnAborted(wxCommandEvent& event) -{ - UpdateStatus(_("Download aborted: ") + event.GetString(), 0, 0); - XRCCTRL(*this, "lblProgress", wxStaticText)->SetLabel(_T("")); - m_LastBlockSize = 0; -} - -void UpdateDlg::OnDownloadStarted(wxCommandEvent& event) -{ - m_CurrFileSize = event.GetInt(); - UpdateStatus(_("Download started: ") + event.GetString(), 0, 100); - XRCCTRL(*this, "lblProgress", wxStaticText)->SetLabel(_T("")); - m_LastBlockSize = 0; -} - -void UpdateDlg::OnDownloadEnded(wxCommandEvent& event) -{ - UpdateStatus(_("Download finished: ") + event.GetString()); - XRCCTRL(*this, "lblProgress", wxStaticText)->SetLabel(_T("")); - m_LastBlockSize = 0; - - if (m_HasUpdated && event.GetInt() == 0) - { - UpdateRec* rec = GetRecFromListView(); - if (rec) - { - if (rec->bytes != m_CurrFileSize) - wxMessageBox(_("File size mismatch for ") + event.GetString() + _("!\n\n" - "This, usually, means one of three things:\n" - "1) The reported size in the update list is wrong. The DevPak might still be valid.\n" - "2) The file's location returned a web error-page. Invalid DevPak...\n" - "3) The file is corrupt...\n\n" - "You can try to install it anyway. If it is not a valid DevPak, the operation will fail."), - _("Warning"), wxICON_WARNING); - } - if (rec && rec->installable && wxMessageBox(_("Do you want to install ") + event.GetString() + _(" now?"), _("Confirmation"), wxICON_QUESTION | wxYES_NO) == wxYES) - InstallFile(); - else if (rec && rec->title == _T("WebUpdate Mirrors list")) - InstallMirrors(GetPackagePath() + rec->local_file); - } - m_CurrFileSize = 0; -} - -void UpdateDlg::OnUpdateUI(wxUpdateUIEvent& event) -{ - // hack to display the download message *after* the dialog has been shown... - if (m_FirstTimeCheck) - { - m_FirstTimeCheck = false; // no more, just once - wxString config = GetConfFilename(); - if (wxFileExists(config)) - InternetUpdate(); - else - { - if (wxMessageBox(_("A list of updates needs to be downloaded.\nDo you want to do this now?"), _("Confirmation"), wxICON_QUESTION | wxYES_NO) == wxYES) - InternetUpdate(true); - } - } -} diff --git a/src/plugins/contrib/devpak_plugin/updatedlg.h b/src/plugins/contrib/devpak_plugin/updatedlg.h deleted file mode 100644 index 3c068c06c5..0000000000 --- a/src/plugins/contrib/devpak_plugin/updatedlg.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef UPDATEDLG_H -#define UPDATEDLG_H - -#include -#include -#include "scrollingdialog.h" -#include "cbnetwork.h" -#include "conf.h" - -class UpdateDlg : public wxScrollingDialog -{ - public: - UpdateDlg(wxWindow* parent); - virtual ~UpdateDlg(); - - void EndModal(int retCode); - protected: - void OnFileSelected(wxListEvent& event); - void OnFileDeSelected(wxListEvent& event); - void OnFileRightClick(wxListEvent& event); - void OnTreeSelChanged(wxTreeEvent& event); - void OnDownload(wxCommandEvent& event); - void OnInstall(wxCommandEvent& event); - void OnUninstall(wxCommandEvent& event); - void OnDownloadAndInstall(wxCommandEvent& event); - void OnUpdate(wxCommandEvent& event); - void OnServerChange(wxCommandEvent& event); - void OnFilterChange(wxCommandEvent& event); - void OnConnect(wxCommandEvent& event); - void OnDisConnect(wxCommandEvent& event); - void OnProgress(wxCommandEvent& event); - void OnAborted(wxCommandEvent& event); - void OnDownloadStarted(wxCommandEvent& event); - void OnDownloadEnded(wxCommandEvent& event); - void OnUpdateUI(wxUpdateUIEvent& event); - private: - void InternetUpdate(bool forceDownload = false); - void DownloadFile(bool dontInstall = false); - void InstallFile(); - void UninstallFile(); - void InstallMirrors(const wxString& file); - void CreateEntryFile(UpdateRec* rec, const wxString& filename, const wxArrayString& files); - void EnableButtons(bool update = true, bool abort = true); - void FillServers(); - void FillGroups(); - void FillFiles(const wxTreeItemId& id); - void FillFileDetails(const wxListItem& id); - void UpdateStatus(const wxString& status, int curProgress = -1, int maxProgress = -1); - UpdateRec* GetRecFromListView(); - void CreateListColumns(); - void AddRecordToList(UpdateRec* rec); - wxString GetListColumnText(int idx, int col); - void SetListColumnText(int idx, int col, const wxString& text); - - wxString GetConfFilename(); - wxString GetMirrorsFilename() const; - wxString GetCurrentServer() const; - wxString GetBasePath() const; - wxString GetPackagePath() const; - bool FilterRec(UpdateRec* rec); - void ApplyFilter(); - - UpdateRec* m_Recs; - wxArrayString m_Servers; - int m_RecsCount; - int m_CurrFileSize; - int m_LastBlockSize; // for bps - bool m_HasUpdated; - bool m_FirstTimeCheck; - cbNetwork m_Net; - DECLARE_EVENT_TABLE(); -}; - -#endif // UPDATEDLG_H From 0076188bafa31373be8332861e7f6d65ff6e7083 Mon Sep 17 00:00:00 2001 From: Tim Stahlhut Date: Sat, 12 Oct 2019 14:29:20 -0400 Subject: [PATCH 3/6] * build: Remove Windows wx28 and wx30 workspaces and cbps. --- src/CodeBlocks.cbp | 4409 ----------------- src/CodeBlocks.workspace | 61 - src/CodeBlocks_wx30.cbp | 4361 ---------------- src/CodeBlocks_wx30.workspace | 61 - src/CodeBlocks_wx30_64.cbp | 4363 ---------------- src/CodeBlocks_wx30_64.workspace | 62 - src/ContribPlugins.workspace | 59 - src/ContribPlugins_wx30.workspace | 59 - src/ContribPlugins_wx30_64.workspace | 59 - src/plugins/codecompletion/cctest.cbp | 107 - src/plugins/codecompletion/cctest_wx30.cbp | 106 - src/plugins/codecompletion/cctest_wx30_64.cbp | 108 - .../contrib/AutoVersioning/AutoVersioning.cbp | 89 - .../AutoVersioning/AutoVersioning_wx30.cbp | 88 - .../AutoVersioning/AutoVersioning_wx30_64.cbp | 87 - .../contrib/BrowseTracker/BrowseTracker.cbp | 144 - .../BrowseTracker/BrowseTracker_wx30.cbp | 139 - .../BrowseTracker/BrowseTracker_wx30_64.cbp | 93 - src/plugins/contrib/Cccc/Cccc.cbp | 70 - src/plugins/contrib/Cccc/Cccc_wx30.cbp | 69 - src/plugins/contrib/Cccc/Cccc_wx30_64.cbp | 68 - src/plugins/contrib/CppCheck/CppCheck.cbp | 81 - .../contrib/CppCheck/CppCheck_wx30.cbp | 80 - .../contrib/CppCheck/CppCheck_wx30_64.cbp | 80 - src/plugins/contrib/Cscope/Cscope.cbp | 93 - src/plugins/contrib/Cscope/Cscope_wx30.cbp | 92 - src/plugins/contrib/Cscope/Cscope_wx30_64.cbp | 93 - src/plugins/contrib/DoxyBlocks/DoxyBlocks.cbp | 120 - .../contrib/DoxyBlocks/DoxyBlocks_wx30.cbp | 119 - .../contrib/DoxyBlocks/DoxyBlocks_wx30_64.cbp | 119 - .../contrib/EditorConfig/EditorConfig.cbp | 79 - .../EditorConfig/EditorConfig_wx30.cbp | 78 - .../EditorConfig/EditorConfig_wx30_64.cbp | 75 - .../contrib/EditorTweaks/EditorTweaks.cbp | 77 - .../EditorTweaks/EditorTweaks_wx30.cbp | 76 - .../EditorTweaks/EditorTweaks_wx30_64.cbp | 74 - .../contrib/FileManager/FileManager.cbp | 90 - .../contrib/FileManager/FileManager_wx30.cbp | 89 - .../FileManager/FileManager_wx30_64.cbp | 89 - src/plugins/contrib/HexEditor/HexEditor.cbp | 123 - .../contrib/HexEditor/HexEditor_wx30.cbp | 121 - .../contrib/HexEditor/HexEditor_wx30_64.cbp | 118 - .../IncrementalSearch/IncrementalSearch.cbp | 80 - .../IncrementalSearch_wx30.cbp | 79 - .../IncrementalSearch_wx30_64.cbp | 76 - src/plugins/contrib/MouseSap/MouseSap.cbp | 71 - .../contrib/MouseSap/MouseSap_wx30.cbp | 70 - .../contrib/MouseSap/MouseSap_wx30_64.cbp | 67 - .../NassiShneiderman/NassiShneiderman.cbp | 124 - .../NassiShneiderman_wx30.cbp | 122 - .../NassiShneiderman_wx30_64.cbp | 122 - .../ProjectOptionsManipulator.cbp | 89 - .../ProjectOptionsManipulator_wx30.cbp | 87 - .../ProjectOptionsManipulator_wx30_64.cbp | 87 - .../contrib/ReopenEditor/ReopenEditor.cbp | 82 - .../ReopenEditor/ReopenEditor_wx30.cbp | 81 - .../ReopenEditor/ReopenEditor_wx30_64.cbp | 79 - .../contrib/SmartIndent/SmartIndent.cbp | 259 - .../contrib/SmartIndent/SmartIndent_wx30.cbp | 258 - .../SmartIndent/SmartIndent_wx30_64.cbp | 259 - .../contrib/SpellChecker/SpellChecker.cbp | 411 -- .../SpellChecker/SpellChecker_wx30.cbp | 407 -- .../SpellChecker/SpellChecker_wx30_64.cbp | 416 -- .../contrib/ThreadSearch/ThreadSearch.cbp | 123 - .../ThreadSearch/ThreadSearch_wx30.cbp | 121 - .../ThreadSearch/ThreadSearch_wx30_64.cbp | 121 - src/plugins/contrib/ToolsPlus/ToolsPlus.cbp | 93 - .../contrib/ToolsPlus/ToolsPlus_wx30.cbp | 92 - .../contrib/ToolsPlus/ToolsPlus_wx30_64.cbp | 92 - src/plugins/contrib/byogames/byogames.cbp | 91 - .../contrib/byogames/byogames_wx30.cbp | 91 - .../contrib/byogames/byogames_wx30_64.cbp | 91 - .../contrib/codesnippets/codesnippets.cbp | 136 - .../codesnippets/codesnippets_wx30.cbp | 131 - .../codesnippets/codesnippets_wx30_64.cbp | 130 - src/plugins/contrib/codestat/codestat.cbp | 79 - .../contrib/codestat/codestat_wx30.cbp | 78 - .../contrib/codestat/codestat_wx30_64.cbp | 77 - .../contrib/copystrings/copystrings.cbp | 71 - .../contrib/copystrings/copystrings_wx30.cbp | 70 - .../copystrings/copystrings_wx30_64.cbp | 70 - src/plugins/contrib/dragscroll/DragScroll.cbp | 75 - .../contrib/dragscroll/DragScroll_wx30.cbp | 73 - .../contrib/dragscroll/DragScroll_wx30_64.cbp | 72 - src/plugins/contrib/envvars/envvars.cbp | 96 - src/plugins/contrib/envvars/envvars_wx30.cbp | 95 - .../contrib/envvars/envvars_wx30_64.cbp | 95 - .../contrib/headerfixup/headerfixup.cbp | 99 - .../contrib/headerfixup/headerfixup_wx30.cbp | 98 - .../headerfixup/headerfixup_wx30_64.cbp | 95 - .../contrib/help_plugin/help-plugin.cbp | 285 -- .../contrib/help_plugin/help-plugin_wx30.cbp | 284 -- .../help_plugin/help-plugin_wx30_64.cbp | 284 -- src/plugins/contrib/keybinder/keybinder.cbp | 93 - .../contrib/keybinder/keybinder_wx30.cbp | 90 - .../contrib/keybinder/keybinder_wx30_64.cbp | 88 - src/plugins/contrib/lib_finder/lib_finder.cbp | 142 - .../contrib/lib_finder/lib_finder_wx30.cbp | 141 - .../contrib/lib_finder/lib_finder_wx30_64.cbp | 140 - src/plugins/contrib/profiler/cbprofiler.cbp | 78 - .../contrib/profiler/cbprofiler_wx30.cbp | 76 - .../contrib/profiler/cbprofiler_wx30_64.cbp | 76 - .../contrib/regex_testbed/RegExTestbed.cbp | 87 - .../regex_testbed/RegExTestbed_wx30.cbp | 86 - .../regex_testbed/RegExTestbed_wx30_64.cbp | 86 - src/plugins/contrib/rndgen/rndgen.cbp | 71 - src/plugins/contrib/rndgen/rndgen_wx30.cbp | 70 - src/plugins/contrib/rndgen/rndgen_wx30_64.cbp | 68 - .../contrib/source_exporter/Exporter.cbp | 615 --- .../contrib/source_exporter/Exporter_wx30.cbp | 614 --- .../source_exporter/Exporter_wx30_64.cbp | 615 --- src/plugins/contrib/symtab/symtab.cbp | 82 - src/plugins/contrib/symtab/symtab_wx30.cbp | 80 - src/plugins/contrib/symtab/symtab_wx30_64.cbp | 80 - .../contrib/wxContribItems/wxContribItems.cbp | 561 --- .../wxContribItems/wxContribItems_wx30.cbp | 544 -- .../wxContribItems/wxContribItems_wx30_64.cbp | 544 -- src/plugins/contrib/wxSmith/wxSmith.cbp | 1263 ----- src/plugins/contrib/wxSmith/wxSmith_wx30.cbp | 1265 ----- .../contrib/wxSmith/wxSmith_wx30_64.cbp | 1265 ----- src/plugins/contrib/wxSmithAui/wxSmithAui.cbp | 142 - .../wxSmithContribItems.cbp | 233 - .../wxSmithContribItems_wx30.cbp | 223 - .../wxSmithContribItems_wx30_64.cbp | 223 - src/tools/Addr2LineUI/Addr2LineUI.cbp | 75 - src/tools/Addr2LineUI/Addr2LineUI_wx30.cbp | 74 - src/tools/Addr2LineUI/Addr2LineUI_wx30_64.cbp | 76 - src/tools/CBLauncher/CbLauncher.cbp | 105 - src/tools/CBLauncher/CbLauncher_wx30.cbp | 105 - src/tools/CBLauncher/CbLauncher_wx30_64.cbp | 105 - src/tools/cb_share_config/cb_share_config.cbp | 69 - .../cb_share_config/cb_share_config_wx30.cbp | 69 - .../cb_share_config_wx30_64.cbp | 72 - src/tools/cbp2make/cbp2make.cbp | 234 - src/tools/cbp2make/cbp2make_wx30.cbp | 234 - src/tools/cbp2make/cbp2make_wx30_64.cbp | 240 - 136 files changed, 34561 deletions(-) delete mode 100644 src/CodeBlocks.cbp delete mode 100644 src/CodeBlocks.workspace delete mode 100644 src/CodeBlocks_wx30.cbp delete mode 100644 src/CodeBlocks_wx30.workspace delete mode 100644 src/CodeBlocks_wx30_64.cbp delete mode 100644 src/CodeBlocks_wx30_64.workspace delete mode 100644 src/ContribPlugins.workspace delete mode 100644 src/ContribPlugins_wx30.workspace delete mode 100644 src/ContribPlugins_wx30_64.workspace delete mode 100644 src/plugins/codecompletion/cctest.cbp delete mode 100644 src/plugins/codecompletion/cctest_wx30.cbp delete mode 100644 src/plugins/codecompletion/cctest_wx30_64.cbp delete mode 100644 src/plugins/contrib/AutoVersioning/AutoVersioning.cbp delete mode 100644 src/plugins/contrib/AutoVersioning/AutoVersioning_wx30.cbp delete mode 100644 src/plugins/contrib/AutoVersioning/AutoVersioning_wx30_64.cbp delete mode 100644 src/plugins/contrib/BrowseTracker/BrowseTracker.cbp delete mode 100644 src/plugins/contrib/BrowseTracker/BrowseTracker_wx30.cbp delete mode 100644 src/plugins/contrib/BrowseTracker/BrowseTracker_wx30_64.cbp delete mode 100644 src/plugins/contrib/Cccc/Cccc.cbp delete mode 100644 src/plugins/contrib/Cccc/Cccc_wx30.cbp delete mode 100644 src/plugins/contrib/Cccc/Cccc_wx30_64.cbp delete mode 100644 src/plugins/contrib/CppCheck/CppCheck.cbp delete mode 100644 src/plugins/contrib/CppCheck/CppCheck_wx30.cbp delete mode 100644 src/plugins/contrib/CppCheck/CppCheck_wx30_64.cbp delete mode 100644 src/plugins/contrib/Cscope/Cscope.cbp delete mode 100644 src/plugins/contrib/Cscope/Cscope_wx30.cbp delete mode 100644 src/plugins/contrib/Cscope/Cscope_wx30_64.cbp delete mode 100644 src/plugins/contrib/DoxyBlocks/DoxyBlocks.cbp delete mode 100644 src/plugins/contrib/DoxyBlocks/DoxyBlocks_wx30.cbp delete mode 100644 src/plugins/contrib/DoxyBlocks/DoxyBlocks_wx30_64.cbp delete mode 100644 src/plugins/contrib/EditorConfig/EditorConfig.cbp delete mode 100644 src/plugins/contrib/EditorConfig/EditorConfig_wx30.cbp delete mode 100644 src/plugins/contrib/EditorConfig/EditorConfig_wx30_64.cbp delete mode 100644 src/plugins/contrib/EditorTweaks/EditorTweaks.cbp delete mode 100644 src/plugins/contrib/EditorTweaks/EditorTweaks_wx30.cbp delete mode 100644 src/plugins/contrib/EditorTweaks/EditorTweaks_wx30_64.cbp delete mode 100644 src/plugins/contrib/FileManager/FileManager.cbp delete mode 100644 src/plugins/contrib/FileManager/FileManager_wx30.cbp delete mode 100644 src/plugins/contrib/FileManager/FileManager_wx30_64.cbp delete mode 100644 src/plugins/contrib/HexEditor/HexEditor.cbp delete mode 100644 src/plugins/contrib/HexEditor/HexEditor_wx30.cbp delete mode 100644 src/plugins/contrib/HexEditor/HexEditor_wx30_64.cbp delete mode 100644 src/plugins/contrib/IncrementalSearch/IncrementalSearch.cbp delete mode 100644 src/plugins/contrib/IncrementalSearch/IncrementalSearch_wx30.cbp delete mode 100644 src/plugins/contrib/IncrementalSearch/IncrementalSearch_wx30_64.cbp delete mode 100644 src/plugins/contrib/MouseSap/MouseSap.cbp delete mode 100644 src/plugins/contrib/MouseSap/MouseSap_wx30.cbp delete mode 100644 src/plugins/contrib/MouseSap/MouseSap_wx30_64.cbp delete mode 100644 src/plugins/contrib/NassiShneiderman/NassiShneiderman.cbp delete mode 100644 src/plugins/contrib/NassiShneiderman/NassiShneiderman_wx30.cbp delete mode 100644 src/plugins/contrib/NassiShneiderman/NassiShneiderman_wx30_64.cbp delete mode 100644 src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator.cbp delete mode 100644 src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator_wx30.cbp delete mode 100644 src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator_wx30_64.cbp delete mode 100644 src/plugins/contrib/ReopenEditor/ReopenEditor.cbp delete mode 100644 src/plugins/contrib/ReopenEditor/ReopenEditor_wx30.cbp delete mode 100644 src/plugins/contrib/ReopenEditor/ReopenEditor_wx30_64.cbp delete mode 100644 src/plugins/contrib/SmartIndent/SmartIndent.cbp delete mode 100644 src/plugins/contrib/SmartIndent/SmartIndent_wx30.cbp delete mode 100644 src/plugins/contrib/SmartIndent/SmartIndent_wx30_64.cbp delete mode 100644 src/plugins/contrib/SpellChecker/SpellChecker.cbp delete mode 100644 src/plugins/contrib/SpellChecker/SpellChecker_wx30.cbp delete mode 100644 src/plugins/contrib/SpellChecker/SpellChecker_wx30_64.cbp delete mode 100644 src/plugins/contrib/ThreadSearch/ThreadSearch.cbp delete mode 100644 src/plugins/contrib/ThreadSearch/ThreadSearch_wx30.cbp delete mode 100644 src/plugins/contrib/ThreadSearch/ThreadSearch_wx30_64.cbp delete mode 100644 src/plugins/contrib/ToolsPlus/ToolsPlus.cbp delete mode 100644 src/plugins/contrib/ToolsPlus/ToolsPlus_wx30.cbp delete mode 100644 src/plugins/contrib/ToolsPlus/ToolsPlus_wx30_64.cbp delete mode 100644 src/plugins/contrib/byogames/byogames.cbp delete mode 100644 src/plugins/contrib/byogames/byogames_wx30.cbp delete mode 100644 src/plugins/contrib/byogames/byogames_wx30_64.cbp delete mode 100644 src/plugins/contrib/codesnippets/codesnippets.cbp delete mode 100644 src/plugins/contrib/codesnippets/codesnippets_wx30.cbp delete mode 100644 src/plugins/contrib/codesnippets/codesnippets_wx30_64.cbp delete mode 100644 src/plugins/contrib/codestat/codestat.cbp delete mode 100644 src/plugins/contrib/codestat/codestat_wx30.cbp delete mode 100644 src/plugins/contrib/codestat/codestat_wx30_64.cbp delete mode 100644 src/plugins/contrib/copystrings/copystrings.cbp delete mode 100644 src/plugins/contrib/copystrings/copystrings_wx30.cbp delete mode 100644 src/plugins/contrib/copystrings/copystrings_wx30_64.cbp delete mode 100644 src/plugins/contrib/dragscroll/DragScroll.cbp delete mode 100644 src/plugins/contrib/dragscroll/DragScroll_wx30.cbp delete mode 100644 src/plugins/contrib/dragscroll/DragScroll_wx30_64.cbp delete mode 100644 src/plugins/contrib/envvars/envvars.cbp delete mode 100644 src/plugins/contrib/envvars/envvars_wx30.cbp delete mode 100644 src/plugins/contrib/envvars/envvars_wx30_64.cbp delete mode 100644 src/plugins/contrib/headerfixup/headerfixup.cbp delete mode 100644 src/plugins/contrib/headerfixup/headerfixup_wx30.cbp delete mode 100644 src/plugins/contrib/headerfixup/headerfixup_wx30_64.cbp delete mode 100644 src/plugins/contrib/help_plugin/help-plugin.cbp delete mode 100644 src/plugins/contrib/help_plugin/help-plugin_wx30.cbp delete mode 100644 src/plugins/contrib/help_plugin/help-plugin_wx30_64.cbp delete mode 100644 src/plugins/contrib/keybinder/keybinder.cbp delete mode 100644 src/plugins/contrib/keybinder/keybinder_wx30.cbp delete mode 100644 src/plugins/contrib/keybinder/keybinder_wx30_64.cbp delete mode 100644 src/plugins/contrib/lib_finder/lib_finder.cbp delete mode 100644 src/plugins/contrib/lib_finder/lib_finder_wx30.cbp delete mode 100644 src/plugins/contrib/lib_finder/lib_finder_wx30_64.cbp delete mode 100644 src/plugins/contrib/profiler/cbprofiler.cbp delete mode 100644 src/plugins/contrib/profiler/cbprofiler_wx30.cbp delete mode 100644 src/plugins/contrib/profiler/cbprofiler_wx30_64.cbp delete mode 100644 src/plugins/contrib/regex_testbed/RegExTestbed.cbp delete mode 100644 src/plugins/contrib/regex_testbed/RegExTestbed_wx30.cbp delete mode 100644 src/plugins/contrib/regex_testbed/RegExTestbed_wx30_64.cbp delete mode 100644 src/plugins/contrib/rndgen/rndgen.cbp delete mode 100644 src/plugins/contrib/rndgen/rndgen_wx30.cbp delete mode 100644 src/plugins/contrib/rndgen/rndgen_wx30_64.cbp delete mode 100644 src/plugins/contrib/source_exporter/Exporter.cbp delete mode 100644 src/plugins/contrib/source_exporter/Exporter_wx30.cbp delete mode 100644 src/plugins/contrib/source_exporter/Exporter_wx30_64.cbp delete mode 100644 src/plugins/contrib/symtab/symtab.cbp delete mode 100644 src/plugins/contrib/symtab/symtab_wx30.cbp delete mode 100644 src/plugins/contrib/symtab/symtab_wx30_64.cbp delete mode 100644 src/plugins/contrib/wxContribItems/wxContribItems.cbp delete mode 100644 src/plugins/contrib/wxContribItems/wxContribItems_wx30.cbp delete mode 100644 src/plugins/contrib/wxContribItems/wxContribItems_wx30_64.cbp delete mode 100644 src/plugins/contrib/wxSmith/wxSmith.cbp delete mode 100644 src/plugins/contrib/wxSmith/wxSmith_wx30.cbp delete mode 100644 src/plugins/contrib/wxSmith/wxSmith_wx30_64.cbp delete mode 100644 src/plugins/contrib/wxSmithAui/wxSmithAui.cbp delete mode 100644 src/plugins/contrib/wxSmithContribItems/wxSmithContribItems.cbp delete mode 100644 src/plugins/contrib/wxSmithContribItems/wxSmithContribItems_wx30.cbp delete mode 100644 src/plugins/contrib/wxSmithContribItems/wxSmithContribItems_wx30_64.cbp delete mode 100644 src/tools/Addr2LineUI/Addr2LineUI.cbp delete mode 100644 src/tools/Addr2LineUI/Addr2LineUI_wx30.cbp delete mode 100644 src/tools/Addr2LineUI/Addr2LineUI_wx30_64.cbp delete mode 100644 src/tools/CBLauncher/CbLauncher.cbp delete mode 100644 src/tools/CBLauncher/CbLauncher_wx30.cbp delete mode 100644 src/tools/CBLauncher/CbLauncher_wx30_64.cbp delete mode 100644 src/tools/cb_share_config/cb_share_config.cbp delete mode 100644 src/tools/cb_share_config/cb_share_config_wx30.cbp delete mode 100644 src/tools/cb_share_config/cb_share_config_wx30_64.cbp delete mode 100644 src/tools/cbp2make/cbp2make.cbp delete mode 100644 src/tools/cbp2make/cbp2make_wx30.cbp delete mode 100644 src/tools/cbp2make/cbp2make_wx30_64.cbp diff --git a/src/CodeBlocks.cbp b/src/CodeBlocks.cbp deleted file mode 100644 index cc6cfc2cb7..0000000000 --- a/src/CodeBlocks.cbp +++ /dev/null @@ -1,4409 +0,0 @@ - - - - - - diff --git a/src/CodeBlocks.workspace b/src/CodeBlocks.workspace deleted file mode 100644 index f75599397a..0000000000 --- a/src/CodeBlocks.workspace +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/CodeBlocks_wx30.cbp b/src/CodeBlocks_wx30.cbp deleted file mode 100644 index d9028b0037..0000000000 --- a/src/CodeBlocks_wx30.cbp +++ /dev/null @@ -1,4361 +0,0 @@ - - - - - - diff --git a/src/CodeBlocks_wx30.workspace b/src/CodeBlocks_wx30.workspace deleted file mode 100644 index 83a80f5c06..0000000000 --- a/src/CodeBlocks_wx30.workspace +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/CodeBlocks_wx30_64.cbp b/src/CodeBlocks_wx30_64.cbp deleted file mode 100644 index 3b20f02b20..0000000000 --- a/src/CodeBlocks_wx30_64.cbp +++ /dev/null @@ -1,4363 +0,0 @@ - - - - - - diff --git a/src/CodeBlocks_wx30_64.workspace b/src/CodeBlocks_wx30_64.workspace deleted file mode 100644 index 9adae7862b..0000000000 --- a/src/CodeBlocks_wx30_64.workspace +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/ContribPlugins.workspace b/src/ContribPlugins.workspace deleted file mode 100644 index a0920a1f80..0000000000 --- a/src/ContribPlugins.workspace +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/ContribPlugins_wx30.workspace b/src/ContribPlugins_wx30.workspace deleted file mode 100644 index 5ada950328..0000000000 --- a/src/ContribPlugins_wx30.workspace +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/ContribPlugins_wx30_64.workspace b/src/ContribPlugins_wx30_64.workspace deleted file mode 100644 index f514ccc483..0000000000 --- a/src/ContribPlugins_wx30_64.workspace +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/plugins/codecompletion/cctest.cbp b/src/plugins/codecompletion/cctest.cbp deleted file mode 100644 index 29bc031599..0000000000 --- a/src/plugins/codecompletion/cctest.cbp +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - diff --git a/src/plugins/codecompletion/cctest_wx30.cbp b/src/plugins/codecompletion/cctest_wx30.cbp deleted file mode 100644 index 6902f5a076..0000000000 --- a/src/plugins/codecompletion/cctest_wx30.cbp +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - diff --git a/src/plugins/codecompletion/cctest_wx30_64.cbp b/src/plugins/codecompletion/cctest_wx30_64.cbp deleted file mode 100644 index 37286a4def..0000000000 --- a/src/plugins/codecompletion/cctest_wx30_64.cbp +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/AutoVersioning/AutoVersioning.cbp b/src/plugins/contrib/AutoVersioning/AutoVersioning.cbp deleted file mode 100644 index 9c59e6bd1d..0000000000 --- a/src/plugins/contrib/AutoVersioning/AutoVersioning.cbp +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/AutoVersioning/AutoVersioning_wx30.cbp b/src/plugins/contrib/AutoVersioning/AutoVersioning_wx30.cbp deleted file mode 100644 index 51480ae0d3..0000000000 --- a/src/plugins/contrib/AutoVersioning/AutoVersioning_wx30.cbp +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/AutoVersioning/AutoVersioning_wx30_64.cbp b/src/plugins/contrib/AutoVersioning/AutoVersioning_wx30_64.cbp deleted file mode 100644 index 3f5475642a..0000000000 --- a/src/plugins/contrib/AutoVersioning/AutoVersioning_wx30_64.cbp +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/BrowseTracker/BrowseTracker.cbp b/src/plugins/contrib/BrowseTracker/BrowseTracker.cbp deleted file mode 100644 index 9511da0ee9..0000000000 --- a/src/plugins/contrib/BrowseTracker/BrowseTracker.cbp +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/BrowseTracker/BrowseTracker_wx30.cbp b/src/plugins/contrib/BrowseTracker/BrowseTracker_wx30.cbp deleted file mode 100644 index 3df62e3084..0000000000 --- a/src/plugins/contrib/BrowseTracker/BrowseTracker_wx30.cbp +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/BrowseTracker/BrowseTracker_wx30_64.cbp b/src/plugins/contrib/BrowseTracker/BrowseTracker_wx30_64.cbp deleted file mode 100644 index e4ef1ad583..0000000000 --- a/src/plugins/contrib/BrowseTracker/BrowseTracker_wx30_64.cbp +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/Cccc/Cccc.cbp b/src/plugins/contrib/Cccc/Cccc.cbp deleted file mode 100644 index b010e95543..0000000000 --- a/src/plugins/contrib/Cccc/Cccc.cbp +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/Cccc/Cccc_wx30.cbp b/src/plugins/contrib/Cccc/Cccc_wx30.cbp deleted file mode 100644 index a9719e2f26..0000000000 --- a/src/plugins/contrib/Cccc/Cccc_wx30.cbp +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/Cccc/Cccc_wx30_64.cbp b/src/plugins/contrib/Cccc/Cccc_wx30_64.cbp deleted file mode 100644 index bb92349882..0000000000 --- a/src/plugins/contrib/Cccc/Cccc_wx30_64.cbp +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/CppCheck/CppCheck.cbp b/src/plugins/contrib/CppCheck/CppCheck.cbp deleted file mode 100644 index 3f0be15901..0000000000 --- a/src/plugins/contrib/CppCheck/CppCheck.cbp +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/CppCheck/CppCheck_wx30.cbp b/src/plugins/contrib/CppCheck/CppCheck_wx30.cbp deleted file mode 100644 index 307e9d41a9..0000000000 --- a/src/plugins/contrib/CppCheck/CppCheck_wx30.cbp +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/CppCheck/CppCheck_wx30_64.cbp b/src/plugins/contrib/CppCheck/CppCheck_wx30_64.cbp deleted file mode 100644 index 31cc643f52..0000000000 --- a/src/plugins/contrib/CppCheck/CppCheck_wx30_64.cbp +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/Cscope/Cscope.cbp b/src/plugins/contrib/Cscope/Cscope.cbp deleted file mode 100644 index 85f5fce314..0000000000 --- a/src/plugins/contrib/Cscope/Cscope.cbp +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/Cscope/Cscope_wx30.cbp b/src/plugins/contrib/Cscope/Cscope_wx30.cbp deleted file mode 100644 index 49480c7308..0000000000 --- a/src/plugins/contrib/Cscope/Cscope_wx30.cbp +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/Cscope/Cscope_wx30_64.cbp b/src/plugins/contrib/Cscope/Cscope_wx30_64.cbp deleted file mode 100644 index 8578b64488..0000000000 --- a/src/plugins/contrib/Cscope/Cscope_wx30_64.cbp +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/DoxyBlocks/DoxyBlocks.cbp b/src/plugins/contrib/DoxyBlocks/DoxyBlocks.cbp deleted file mode 100644 index 4337ed9126..0000000000 --- a/src/plugins/contrib/DoxyBlocks/DoxyBlocks.cbp +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/DoxyBlocks/DoxyBlocks_wx30.cbp b/src/plugins/contrib/DoxyBlocks/DoxyBlocks_wx30.cbp deleted file mode 100644 index 34d963cac4..0000000000 --- a/src/plugins/contrib/DoxyBlocks/DoxyBlocks_wx30.cbp +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/DoxyBlocks/DoxyBlocks_wx30_64.cbp b/src/plugins/contrib/DoxyBlocks/DoxyBlocks_wx30_64.cbp deleted file mode 100644 index e8cbabecca..0000000000 --- a/src/plugins/contrib/DoxyBlocks/DoxyBlocks_wx30_64.cbp +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/EditorConfig/EditorConfig.cbp b/src/plugins/contrib/EditorConfig/EditorConfig.cbp deleted file mode 100644 index 996317f9b6..0000000000 --- a/src/plugins/contrib/EditorConfig/EditorConfig.cbp +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/EditorConfig/EditorConfig_wx30.cbp b/src/plugins/contrib/EditorConfig/EditorConfig_wx30.cbp deleted file mode 100644 index 51c2c5586f..0000000000 --- a/src/plugins/contrib/EditorConfig/EditorConfig_wx30.cbp +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/EditorConfig/EditorConfig_wx30_64.cbp b/src/plugins/contrib/EditorConfig/EditorConfig_wx30_64.cbp deleted file mode 100644 index edfc0967c7..0000000000 --- a/src/plugins/contrib/EditorConfig/EditorConfig_wx30_64.cbp +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/EditorTweaks/EditorTweaks.cbp b/src/plugins/contrib/EditorTweaks/EditorTweaks.cbp deleted file mode 100644 index 0e41b77783..0000000000 --- a/src/plugins/contrib/EditorTweaks/EditorTweaks.cbp +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/EditorTweaks/EditorTweaks_wx30.cbp b/src/plugins/contrib/EditorTweaks/EditorTweaks_wx30.cbp deleted file mode 100644 index d4abc0dafd..0000000000 --- a/src/plugins/contrib/EditorTweaks/EditorTweaks_wx30.cbp +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/EditorTweaks/EditorTweaks_wx30_64.cbp b/src/plugins/contrib/EditorTweaks/EditorTweaks_wx30_64.cbp deleted file mode 100644 index 191613d5b2..0000000000 --- a/src/plugins/contrib/EditorTweaks/EditorTweaks_wx30_64.cbp +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/FileManager/FileManager.cbp b/src/plugins/contrib/FileManager/FileManager.cbp deleted file mode 100644 index d4f408a99c..0000000000 --- a/src/plugins/contrib/FileManager/FileManager.cbp +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/FileManager/FileManager_wx30.cbp b/src/plugins/contrib/FileManager/FileManager_wx30.cbp deleted file mode 100644 index 0e1edcbbc2..0000000000 --- a/src/plugins/contrib/FileManager/FileManager_wx30.cbp +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/FileManager/FileManager_wx30_64.cbp b/src/plugins/contrib/FileManager/FileManager_wx30_64.cbp deleted file mode 100644 index 9d5890925c..0000000000 --- a/src/plugins/contrib/FileManager/FileManager_wx30_64.cbp +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/HexEditor/HexEditor.cbp b/src/plugins/contrib/HexEditor/HexEditor.cbp deleted file mode 100644 index 94dab74d64..0000000000 --- a/src/plugins/contrib/HexEditor/HexEditor.cbp +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/HexEditor/HexEditor_wx30.cbp b/src/plugins/contrib/HexEditor/HexEditor_wx30.cbp deleted file mode 100644 index 8a9ef98495..0000000000 --- a/src/plugins/contrib/HexEditor/HexEditor_wx30.cbp +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/HexEditor/HexEditor_wx30_64.cbp b/src/plugins/contrib/HexEditor/HexEditor_wx30_64.cbp deleted file mode 100644 index ff599f718c..0000000000 --- a/src/plugins/contrib/HexEditor/HexEditor_wx30_64.cbp +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/IncrementalSearch/IncrementalSearch.cbp b/src/plugins/contrib/IncrementalSearch/IncrementalSearch.cbp deleted file mode 100644 index 92518d94c9..0000000000 --- a/src/plugins/contrib/IncrementalSearch/IncrementalSearch.cbp +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/IncrementalSearch/IncrementalSearch_wx30.cbp b/src/plugins/contrib/IncrementalSearch/IncrementalSearch_wx30.cbp deleted file mode 100644 index f27d36315d..0000000000 --- a/src/plugins/contrib/IncrementalSearch/IncrementalSearch_wx30.cbp +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/IncrementalSearch/IncrementalSearch_wx30_64.cbp b/src/plugins/contrib/IncrementalSearch/IncrementalSearch_wx30_64.cbp deleted file mode 100644 index 0ece72aff5..0000000000 --- a/src/plugins/contrib/IncrementalSearch/IncrementalSearch_wx30_64.cbp +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/MouseSap/MouseSap.cbp b/src/plugins/contrib/MouseSap/MouseSap.cbp deleted file mode 100644 index 712aab4669..0000000000 --- a/src/plugins/contrib/MouseSap/MouseSap.cbp +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/MouseSap/MouseSap_wx30.cbp b/src/plugins/contrib/MouseSap/MouseSap_wx30.cbp deleted file mode 100644 index 3e14fc365e..0000000000 --- a/src/plugins/contrib/MouseSap/MouseSap_wx30.cbp +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/MouseSap/MouseSap_wx30_64.cbp b/src/plugins/contrib/MouseSap/MouseSap_wx30_64.cbp deleted file mode 100644 index ce102e7b82..0000000000 --- a/src/plugins/contrib/MouseSap/MouseSap_wx30_64.cbp +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/NassiShneiderman/NassiShneiderman.cbp b/src/plugins/contrib/NassiShneiderman/NassiShneiderman.cbp deleted file mode 100644 index 74fba992b0..0000000000 --- a/src/plugins/contrib/NassiShneiderman/NassiShneiderman.cbp +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/NassiShneiderman/NassiShneiderman_wx30.cbp b/src/plugins/contrib/NassiShneiderman/NassiShneiderman_wx30.cbp deleted file mode 100644 index 8ec7a5e2e7..0000000000 --- a/src/plugins/contrib/NassiShneiderman/NassiShneiderman_wx30.cbp +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/NassiShneiderman/NassiShneiderman_wx30_64.cbp b/src/plugins/contrib/NassiShneiderman/NassiShneiderman_wx30_64.cbp deleted file mode 100644 index 343da32b6d..0000000000 --- a/src/plugins/contrib/NassiShneiderman/NassiShneiderman_wx30_64.cbp +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator.cbp b/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator.cbp deleted file mode 100644 index 0c37c0c81a..0000000000 --- a/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator.cbp +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator_wx30.cbp b/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator_wx30.cbp deleted file mode 100644 index 73dac323e6..0000000000 --- a/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator_wx30.cbp +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator_wx30_64.cbp b/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator_wx30_64.cbp deleted file mode 100644 index 1b5808af81..0000000000 --- a/src/plugins/contrib/ProjectOptionsManipulator/ProjectOptionsManipulator_wx30_64.cbp +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ReopenEditor/ReopenEditor.cbp b/src/plugins/contrib/ReopenEditor/ReopenEditor.cbp deleted file mode 100644 index 8a3d3d2ad3..0000000000 --- a/src/plugins/contrib/ReopenEditor/ReopenEditor.cbp +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ReopenEditor/ReopenEditor_wx30.cbp b/src/plugins/contrib/ReopenEditor/ReopenEditor_wx30.cbp deleted file mode 100644 index 646a6fcd10..0000000000 --- a/src/plugins/contrib/ReopenEditor/ReopenEditor_wx30.cbp +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ReopenEditor/ReopenEditor_wx30_64.cbp b/src/plugins/contrib/ReopenEditor/ReopenEditor_wx30_64.cbp deleted file mode 100644 index 52c686d7ab..0000000000 --- a/src/plugins/contrib/ReopenEditor/ReopenEditor_wx30_64.cbp +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/SmartIndent/SmartIndent.cbp b/src/plugins/contrib/SmartIndent/SmartIndent.cbp deleted file mode 100644 index 0a008d9da8..0000000000 --- a/src/plugins/contrib/SmartIndent/SmartIndent.cbp +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/SmartIndent/SmartIndent_wx30.cbp b/src/plugins/contrib/SmartIndent/SmartIndent_wx30.cbp deleted file mode 100644 index 38272f9152..0000000000 --- a/src/plugins/contrib/SmartIndent/SmartIndent_wx30.cbp +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/SmartIndent/SmartIndent_wx30_64.cbp b/src/plugins/contrib/SmartIndent/SmartIndent_wx30_64.cbp deleted file mode 100644 index 6a410fe5b0..0000000000 --- a/src/plugins/contrib/SmartIndent/SmartIndent_wx30_64.cbp +++ /dev/null @@ -1,259 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/SpellChecker/SpellChecker.cbp b/src/plugins/contrib/SpellChecker/SpellChecker.cbp deleted file mode 100644 index 0db1372bfe..0000000000 --- a/src/plugins/contrib/SpellChecker/SpellChecker.cbp +++ /dev/null @@ -1,411 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/SpellChecker/SpellChecker_wx30.cbp b/src/plugins/contrib/SpellChecker/SpellChecker_wx30.cbp deleted file mode 100644 index 2797d1f9a6..0000000000 --- a/src/plugins/contrib/SpellChecker/SpellChecker_wx30.cbp +++ /dev/null @@ -1,407 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/SpellChecker/SpellChecker_wx30_64.cbp b/src/plugins/contrib/SpellChecker/SpellChecker_wx30_64.cbp deleted file mode 100644 index bc0b11ea01..0000000000 --- a/src/plugins/contrib/SpellChecker/SpellChecker_wx30_64.cbp +++ /dev/null @@ -1,416 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ThreadSearch/ThreadSearch.cbp b/src/plugins/contrib/ThreadSearch/ThreadSearch.cbp deleted file mode 100644 index 43b343babb..0000000000 --- a/src/plugins/contrib/ThreadSearch/ThreadSearch.cbp +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ThreadSearch/ThreadSearch_wx30.cbp b/src/plugins/contrib/ThreadSearch/ThreadSearch_wx30.cbp deleted file mode 100644 index e63b5236f5..0000000000 --- a/src/plugins/contrib/ThreadSearch/ThreadSearch_wx30.cbp +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ThreadSearch/ThreadSearch_wx30_64.cbp b/src/plugins/contrib/ThreadSearch/ThreadSearch_wx30_64.cbp deleted file mode 100644 index 8053f9c9ef..0000000000 --- a/src/plugins/contrib/ThreadSearch/ThreadSearch_wx30_64.cbp +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ToolsPlus/ToolsPlus.cbp b/src/plugins/contrib/ToolsPlus/ToolsPlus.cbp deleted file mode 100644 index b97eb0a3f3..0000000000 --- a/src/plugins/contrib/ToolsPlus/ToolsPlus.cbp +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ToolsPlus/ToolsPlus_wx30.cbp b/src/plugins/contrib/ToolsPlus/ToolsPlus_wx30.cbp deleted file mode 100644 index a4df07dff1..0000000000 --- a/src/plugins/contrib/ToolsPlus/ToolsPlus_wx30.cbp +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/ToolsPlus/ToolsPlus_wx30_64.cbp b/src/plugins/contrib/ToolsPlus/ToolsPlus_wx30_64.cbp deleted file mode 100644 index 2b32e442f2..0000000000 --- a/src/plugins/contrib/ToolsPlus/ToolsPlus_wx30_64.cbp +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/byogames/byogames.cbp b/src/plugins/contrib/byogames/byogames.cbp deleted file mode 100644 index 3f89464bc6..0000000000 --- a/src/plugins/contrib/byogames/byogames.cbp +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/byogames/byogames_wx30.cbp b/src/plugins/contrib/byogames/byogames_wx30.cbp deleted file mode 100644 index d7d07f78d2..0000000000 --- a/src/plugins/contrib/byogames/byogames_wx30.cbp +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/byogames/byogames_wx30_64.cbp b/src/plugins/contrib/byogames/byogames_wx30_64.cbp deleted file mode 100644 index 1bce3fc15e..0000000000 --- a/src/plugins/contrib/byogames/byogames_wx30_64.cbp +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/codesnippets/codesnippets.cbp b/src/plugins/contrib/codesnippets/codesnippets.cbp deleted file mode 100644 index 1b86451c00..0000000000 --- a/src/plugins/contrib/codesnippets/codesnippets.cbp +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/codesnippets/codesnippets_wx30.cbp b/src/plugins/contrib/codesnippets/codesnippets_wx30.cbp deleted file mode 100644 index 20381d66dd..0000000000 --- a/src/plugins/contrib/codesnippets/codesnippets_wx30.cbp +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/codesnippets/codesnippets_wx30_64.cbp b/src/plugins/contrib/codesnippets/codesnippets_wx30_64.cbp deleted file mode 100644 index 100ca03313..0000000000 --- a/src/plugins/contrib/codesnippets/codesnippets_wx30_64.cbp +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/codestat/codestat.cbp b/src/plugins/contrib/codestat/codestat.cbp deleted file mode 100644 index 132095e42c..0000000000 --- a/src/plugins/contrib/codestat/codestat.cbp +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/codestat/codestat_wx30.cbp b/src/plugins/contrib/codestat/codestat_wx30.cbp deleted file mode 100644 index 5e3583816e..0000000000 --- a/src/plugins/contrib/codestat/codestat_wx30.cbp +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/codestat/codestat_wx30_64.cbp b/src/plugins/contrib/codestat/codestat_wx30_64.cbp deleted file mode 100644 index 8af0a267a8..0000000000 --- a/src/plugins/contrib/codestat/codestat_wx30_64.cbp +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/copystrings/copystrings.cbp b/src/plugins/contrib/copystrings/copystrings.cbp deleted file mode 100644 index 437fcec249..0000000000 --- a/src/plugins/contrib/copystrings/copystrings.cbp +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/copystrings/copystrings_wx30.cbp b/src/plugins/contrib/copystrings/copystrings_wx30.cbp deleted file mode 100644 index d096b282e3..0000000000 --- a/src/plugins/contrib/copystrings/copystrings_wx30.cbp +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/copystrings/copystrings_wx30_64.cbp b/src/plugins/contrib/copystrings/copystrings_wx30_64.cbp deleted file mode 100644 index 3b53c10f76..0000000000 --- a/src/plugins/contrib/copystrings/copystrings_wx30_64.cbp +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/dragscroll/DragScroll.cbp b/src/plugins/contrib/dragscroll/DragScroll.cbp deleted file mode 100644 index 798edad938..0000000000 --- a/src/plugins/contrib/dragscroll/DragScroll.cbp +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/dragscroll/DragScroll_wx30.cbp b/src/plugins/contrib/dragscroll/DragScroll_wx30.cbp deleted file mode 100644 index 1576f38cd0..0000000000 --- a/src/plugins/contrib/dragscroll/DragScroll_wx30.cbp +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/dragscroll/DragScroll_wx30_64.cbp b/src/plugins/contrib/dragscroll/DragScroll_wx30_64.cbp deleted file mode 100644 index 0c0b82cf0a..0000000000 --- a/src/plugins/contrib/dragscroll/DragScroll_wx30_64.cbp +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/envvars/envvars.cbp b/src/plugins/contrib/envvars/envvars.cbp deleted file mode 100644 index 6ff5df4608..0000000000 --- a/src/plugins/contrib/envvars/envvars.cbp +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/envvars/envvars_wx30.cbp b/src/plugins/contrib/envvars/envvars_wx30.cbp deleted file mode 100644 index 46ab1c951f..0000000000 --- a/src/plugins/contrib/envvars/envvars_wx30.cbp +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/envvars/envvars_wx30_64.cbp b/src/plugins/contrib/envvars/envvars_wx30_64.cbp deleted file mode 100644 index 90bcde0d7d..0000000000 --- a/src/plugins/contrib/envvars/envvars_wx30_64.cbp +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/headerfixup/headerfixup.cbp b/src/plugins/contrib/headerfixup/headerfixup.cbp deleted file mode 100644 index 47249b7ffd..0000000000 --- a/src/plugins/contrib/headerfixup/headerfixup.cbp +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/headerfixup/headerfixup_wx30.cbp b/src/plugins/contrib/headerfixup/headerfixup_wx30.cbp deleted file mode 100644 index d3284f2e0a..0000000000 --- a/src/plugins/contrib/headerfixup/headerfixup_wx30.cbp +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/headerfixup/headerfixup_wx30_64.cbp b/src/plugins/contrib/headerfixup/headerfixup_wx30_64.cbp deleted file mode 100644 index ab268a2ece..0000000000 --- a/src/plugins/contrib/headerfixup/headerfixup_wx30_64.cbp +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/help_plugin/help-plugin.cbp b/src/plugins/contrib/help_plugin/help-plugin.cbp deleted file mode 100644 index 57e7067162..0000000000 --- a/src/plugins/contrib/help_plugin/help-plugin.cbp +++ /dev/null @@ -1,285 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/help_plugin/help-plugin_wx30.cbp b/src/plugins/contrib/help_plugin/help-plugin_wx30.cbp deleted file mode 100644 index efc87f8edc..0000000000 --- a/src/plugins/contrib/help_plugin/help-plugin_wx30.cbp +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/help_plugin/help-plugin_wx30_64.cbp b/src/plugins/contrib/help_plugin/help-plugin_wx30_64.cbp deleted file mode 100644 index a6bee29121..0000000000 --- a/src/plugins/contrib/help_plugin/help-plugin_wx30_64.cbp +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/keybinder/keybinder.cbp b/src/plugins/contrib/keybinder/keybinder.cbp deleted file mode 100644 index a376ac63af..0000000000 --- a/src/plugins/contrib/keybinder/keybinder.cbp +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/keybinder/keybinder_wx30.cbp b/src/plugins/contrib/keybinder/keybinder_wx30.cbp deleted file mode 100644 index a7c7dc6070..0000000000 --- a/src/plugins/contrib/keybinder/keybinder_wx30.cbp +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/keybinder/keybinder_wx30_64.cbp b/src/plugins/contrib/keybinder/keybinder_wx30_64.cbp deleted file mode 100644 index 595e3c6e1b..0000000000 --- a/src/plugins/contrib/keybinder/keybinder_wx30_64.cbp +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/lib_finder/lib_finder.cbp b/src/plugins/contrib/lib_finder/lib_finder.cbp deleted file mode 100644 index 2593d7b244..0000000000 --- a/src/plugins/contrib/lib_finder/lib_finder.cbp +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/lib_finder/lib_finder_wx30.cbp b/src/plugins/contrib/lib_finder/lib_finder_wx30.cbp deleted file mode 100644 index 81d9203d27..0000000000 --- a/src/plugins/contrib/lib_finder/lib_finder_wx30.cbp +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/lib_finder/lib_finder_wx30_64.cbp b/src/plugins/contrib/lib_finder/lib_finder_wx30_64.cbp deleted file mode 100644 index 24841bd46e..0000000000 --- a/src/plugins/contrib/lib_finder/lib_finder_wx30_64.cbp +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/profiler/cbprofiler.cbp b/src/plugins/contrib/profiler/cbprofiler.cbp deleted file mode 100644 index 3087b5542b..0000000000 --- a/src/plugins/contrib/profiler/cbprofiler.cbp +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/profiler/cbprofiler_wx30.cbp b/src/plugins/contrib/profiler/cbprofiler_wx30.cbp deleted file mode 100644 index 2850b6bdcd..0000000000 --- a/src/plugins/contrib/profiler/cbprofiler_wx30.cbp +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/profiler/cbprofiler_wx30_64.cbp b/src/plugins/contrib/profiler/cbprofiler_wx30_64.cbp deleted file mode 100644 index 76d3840898..0000000000 --- a/src/plugins/contrib/profiler/cbprofiler_wx30_64.cbp +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/regex_testbed/RegExTestbed.cbp b/src/plugins/contrib/regex_testbed/RegExTestbed.cbp deleted file mode 100644 index e904376d13..0000000000 --- a/src/plugins/contrib/regex_testbed/RegExTestbed.cbp +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/regex_testbed/RegExTestbed_wx30.cbp b/src/plugins/contrib/regex_testbed/RegExTestbed_wx30.cbp deleted file mode 100644 index db611becf2..0000000000 --- a/src/plugins/contrib/regex_testbed/RegExTestbed_wx30.cbp +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/regex_testbed/RegExTestbed_wx30_64.cbp b/src/plugins/contrib/regex_testbed/RegExTestbed_wx30_64.cbp deleted file mode 100644 index 9091092af5..0000000000 --- a/src/plugins/contrib/regex_testbed/RegExTestbed_wx30_64.cbp +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/rndgen/rndgen.cbp b/src/plugins/contrib/rndgen/rndgen.cbp deleted file mode 100644 index 610e31ddd3..0000000000 --- a/src/plugins/contrib/rndgen/rndgen.cbp +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/rndgen/rndgen_wx30.cbp b/src/plugins/contrib/rndgen/rndgen_wx30.cbp deleted file mode 100644 index b58dea2466..0000000000 --- a/src/plugins/contrib/rndgen/rndgen_wx30.cbp +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/rndgen/rndgen_wx30_64.cbp b/src/plugins/contrib/rndgen/rndgen_wx30_64.cbp deleted file mode 100644 index fcaebe297d..0000000000 --- a/src/plugins/contrib/rndgen/rndgen_wx30_64.cbp +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/source_exporter/Exporter.cbp b/src/plugins/contrib/source_exporter/Exporter.cbp deleted file mode 100644 index c190513f0a..0000000000 --- a/src/plugins/contrib/source_exporter/Exporter.cbp +++ /dev/null @@ -1,615 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/source_exporter/Exporter_wx30.cbp b/src/plugins/contrib/source_exporter/Exporter_wx30.cbp deleted file mode 100644 index 9ebad60775..0000000000 --- a/src/plugins/contrib/source_exporter/Exporter_wx30.cbp +++ /dev/null @@ -1,614 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/source_exporter/Exporter_wx30_64.cbp b/src/plugins/contrib/source_exporter/Exporter_wx30_64.cbp deleted file mode 100644 index ecffab9c1f..0000000000 --- a/src/plugins/contrib/source_exporter/Exporter_wx30_64.cbp +++ /dev/null @@ -1,615 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/symtab/symtab.cbp b/src/plugins/contrib/symtab/symtab.cbp deleted file mode 100644 index ed9311d00c..0000000000 --- a/src/plugins/contrib/symtab/symtab.cbp +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/symtab/symtab_wx30.cbp b/src/plugins/contrib/symtab/symtab_wx30.cbp deleted file mode 100644 index ab1963ae94..0000000000 --- a/src/plugins/contrib/symtab/symtab_wx30.cbp +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/symtab/symtab_wx30_64.cbp b/src/plugins/contrib/symtab/symtab_wx30_64.cbp deleted file mode 100644 index 384dbf3205..0000000000 --- a/src/plugins/contrib/symtab/symtab_wx30_64.cbp +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxContribItems/wxContribItems.cbp b/src/plugins/contrib/wxContribItems/wxContribItems.cbp deleted file mode 100644 index 5bbe33f80f..0000000000 --- a/src/plugins/contrib/wxContribItems/wxContribItems.cbp +++ /dev/null @@ -1,561 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxContribItems/wxContribItems_wx30.cbp b/src/plugins/contrib/wxContribItems/wxContribItems_wx30.cbp deleted file mode 100644 index ff5f99a385..0000000000 --- a/src/plugins/contrib/wxContribItems/wxContribItems_wx30.cbp +++ /dev/null @@ -1,544 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxContribItems/wxContribItems_wx30_64.cbp b/src/plugins/contrib/wxContribItems/wxContribItems_wx30_64.cbp deleted file mode 100644 index bfe9fca3f4..0000000000 --- a/src/plugins/contrib/wxContribItems/wxContribItems_wx30_64.cbp +++ /dev/null @@ -1,544 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxSmith/wxSmith.cbp b/src/plugins/contrib/wxSmith/wxSmith.cbp deleted file mode 100644 index eb1e4da1a7..0000000000 --- a/src/plugins/contrib/wxSmith/wxSmith.cbp +++ /dev/null @@ -1,1263 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxSmith/wxSmith_wx30.cbp b/src/plugins/contrib/wxSmith/wxSmith_wx30.cbp deleted file mode 100644 index e9890d18b5..0000000000 --- a/src/plugins/contrib/wxSmith/wxSmith_wx30.cbp +++ /dev/null @@ -1,1265 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxSmith/wxSmith_wx30_64.cbp b/src/plugins/contrib/wxSmith/wxSmith_wx30_64.cbp deleted file mode 100644 index 1043cac4e2..0000000000 --- a/src/plugins/contrib/wxSmith/wxSmith_wx30_64.cbp +++ /dev/null @@ -1,1265 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxSmithAui/wxSmithAui.cbp b/src/plugins/contrib/wxSmithAui/wxSmithAui.cbp deleted file mode 100644 index 84c6e3e130..0000000000 --- a/src/plugins/contrib/wxSmithAui/wxSmithAui.cbp +++ /dev/null @@ -1,142 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems.cbp b/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems.cbp deleted file mode 100644 index 1a1ff9d9a4..0000000000 --- a/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems.cbp +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems_wx30.cbp b/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems_wx30.cbp deleted file mode 100644 index 46bf3c9495..0000000000 --- a/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems_wx30.cbp +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - diff --git a/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems_wx30_64.cbp b/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems_wx30_64.cbp deleted file mode 100644 index 425daa36e8..0000000000 --- a/src/plugins/contrib/wxSmithContribItems/wxSmithContribItems_wx30_64.cbp +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - diff --git a/src/tools/Addr2LineUI/Addr2LineUI.cbp b/src/tools/Addr2LineUI/Addr2LineUI.cbp deleted file mode 100644 index d972dc3749..0000000000 --- a/src/tools/Addr2LineUI/Addr2LineUI.cbp +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - diff --git a/src/tools/Addr2LineUI/Addr2LineUI_wx30.cbp b/src/tools/Addr2LineUI/Addr2LineUI_wx30.cbp deleted file mode 100644 index 1f1a6d6fc2..0000000000 --- a/src/tools/Addr2LineUI/Addr2LineUI_wx30.cbp +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - diff --git a/src/tools/Addr2LineUI/Addr2LineUI_wx30_64.cbp b/src/tools/Addr2LineUI/Addr2LineUI_wx30_64.cbp deleted file mode 100644 index 221f8f2d31..0000000000 --- a/src/tools/Addr2LineUI/Addr2LineUI_wx30_64.cbp +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - diff --git a/src/tools/CBLauncher/CbLauncher.cbp b/src/tools/CBLauncher/CbLauncher.cbp deleted file mode 100644 index 1e0b65822f..0000000000 --- a/src/tools/CBLauncher/CbLauncher.cbp +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - diff --git a/src/tools/CBLauncher/CbLauncher_wx30.cbp b/src/tools/CBLauncher/CbLauncher_wx30.cbp deleted file mode 100644 index 565c7bfeb2..0000000000 --- a/src/tools/CBLauncher/CbLauncher_wx30.cbp +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - diff --git a/src/tools/CBLauncher/CbLauncher_wx30_64.cbp b/src/tools/CBLauncher/CbLauncher_wx30_64.cbp deleted file mode 100644 index 7008908438..0000000000 --- a/src/tools/CBLauncher/CbLauncher_wx30_64.cbp +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - diff --git a/src/tools/cb_share_config/cb_share_config.cbp b/src/tools/cb_share_config/cb_share_config.cbp deleted file mode 100644 index 795afd79ca..0000000000 --- a/src/tools/cb_share_config/cb_share_config.cbp +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - diff --git a/src/tools/cb_share_config/cb_share_config_wx30.cbp b/src/tools/cb_share_config/cb_share_config_wx30.cbp deleted file mode 100644 index 1865a368ff..0000000000 --- a/src/tools/cb_share_config/cb_share_config_wx30.cbp +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - diff --git a/src/tools/cb_share_config/cb_share_config_wx30_64.cbp b/src/tools/cb_share_config/cb_share_config_wx30_64.cbp deleted file mode 100644 index 747d8636de..0000000000 --- a/src/tools/cb_share_config/cb_share_config_wx30_64.cbp +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - diff --git a/src/tools/cbp2make/cbp2make.cbp b/src/tools/cbp2make/cbp2make.cbp deleted file mode 100644 index 7a8d86e66f..0000000000 --- a/src/tools/cbp2make/cbp2make.cbp +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - diff --git a/src/tools/cbp2make/cbp2make_wx30.cbp b/src/tools/cbp2make/cbp2make_wx30.cbp deleted file mode 100644 index 05f22ca933..0000000000 --- a/src/tools/cbp2make/cbp2make_wx30.cbp +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - diff --git a/src/tools/cbp2make/cbp2make_wx30_64.cbp b/src/tools/cbp2make/cbp2make_wx30_64.cbp deleted file mode 100644 index d429dfc7f4..0000000000 --- a/src/tools/cbp2make/cbp2make_wx30_64.cbp +++ /dev/null @@ -1,240 +0,0 @@ - - - - - - From 4311d0acd74ee8b99669afa8498d1a40898c7d26 Mon Sep 17 00:00:00 2001 From: Tim Stahlhut Date: Sat, 12 Oct 2019 08:46:14 -0400 Subject: [PATCH 4/6] - Remove obsolete header cbexecute.h --- src/include/cbexecute.h | 121 ---------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 src/include/cbexecute.h diff --git a/src/include/cbexecute.h b/src/include/cbexecute.h deleted file mode 100644 index 035e7f9720..0000000000 --- a/src/include/cbexecute.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3 - * http://www.gnu.org/licenses/lgpl-3.0.html - */ - -/* - * inline long cbSyncExecute(const wxString& command, wxArrayString& output, wxArrayString& error) - * inline long cbSyncExecute(const wxString& command, wxArrayString& output) - * - * Implements behaviour identical to synchronous wxExecute, but uses *safe* yields - * and is aware of application shutdowns (will stop polling and send SIGTERM to other process). - * - * Can be used in place of wxExecute to avoid possible wxYield() reentrancy problems (code completion and tool manager?) - */ - -#ifndef CBEXECUTE -#define CBEXECUTE - -#include "manager.h" - -class cbExecuteProcess : public wxProcess -{ - wxInputStream *stream_stdout; - wxInputStream *stream_stderr; - - wxArrayString *std_out; - wxArrayString *std_err; - bool running; - int exitCode; - -public: - cbExecuteProcess(wxArrayString* out, wxArrayString* err) : std_out(out), std_err(err), running(true) - { - Redirect(); - }; - - void FlushPipe() - { - wxString line; - stream_stdout = GetInputStream(); - stream_stderr = GetErrorStream(); - - if (stream_stdout && stream_stderr) - { - wxTextInputStream t_stream_stdout(*stream_stdout); - wxTextInputStream t_stream_stderr(*stream_stderr); - - while (! stream_stdout->Eof() ) - { - line = t_stream_stdout.ReadLine(); - std_out->Add(line); - } - - if (std_err) - { - while (! stream_stderr->Eof() ) - { - line = t_stream_stderr.ReadLine(); - std_err->Add(line); - } - } - } - }; - - virtual void OnTerminate(int pid, int status) - { - FlushPipe(); - exitCode = status; - running = false; - } - - bool Running() - { - return running; - }; - bool ExitCode() - { - return exitCode; - }; - -}; - -inline long cbSyncExecute(const wxString& command, wxArrayString& output, wxArrayString& error) -{ - cbExecuteProcess process(&output, &error); - - if (wxExecute(command, wxEXEC_ASYNC, &process) == 0) - return -1; - - while (process.Running()) - { - if (Manager::IsAppShuttingDown()) - { - process.Kill(wxSIGTERM); // will not work under Windows - return -1; - } - Manager::Yield(); - } - return process.ExitCode(); -} - -inline long cbSyncExecute(const wxString& command, wxArrayString& output) -{ - cbExecuteProcess process(&output, 0); - - if (wxExecute(command, wxEXEC_ASYNC, &process) == 0) - return -1; - - while (process.Running()) - { - if (Manager::IsAppShuttingDown()) - { - process.Kill(wxSIGTERM); - return -1; - } - Manager::Yield(); - } - return process.ExitCode(); -} - -#endif From 3811afbc5437bcacd7cd7a5a319f1bd439a9858a Mon Sep 17 00:00:00 2001 From: Tim Stahlhut Date: Sat, 12 Oct 2019 15:50:54 -0400 Subject: [PATCH 5/6] - headerfixup: Remove cbexecute.h --- src/plugins/contrib/headerfixup/defaults.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/plugins/contrib/headerfixup/defaults.cpp b/src/plugins/contrib/headerfixup/defaults.cpp index dccf2bd077..ba0a1b5af2 100644 --- a/src/plugins/contrib/headerfixup/defaults.cpp +++ b/src/plugins/contrib/headerfixup/defaults.cpp @@ -47,7 +47,6 @@ void Bindings::SetDefaultsCodeBlocks() "cbEditorPrintout;cbeditorprintout.h|" "cbEventFunctor;cbfunctor.h|" "cbException;cbexception.h|" - "cbExecuteProcess;cbexecute.h|" "cbLoadBitmap;globals.h|" "cbMessageBox;globals.h|" "cbMimePlugin;cbplugin.h|" @@ -58,7 +57,6 @@ void Bindings::SetDefaultsCodeBlocks() "cbSaveTinyXMLDocument;globals.h|" "cbSaveToFile;globals.h|" "cbStyledTextCtrl;cbeditor.h|" - "cbSyncExecute;cbexecute.h|" "cbThreadedTask;cbthreadtask.h|" "cbThreadPool;cbthreadpool.h|" "cbThrow;cbexception.h|" From e8984217b53ade7b5e0f9f8a59c6d4fea9ffd052 Mon Sep 17 00:00:00 2001 From: Tim Stahlhut Date: Sat, 12 Oct 2019 15:45:49 -0400 Subject: [PATCH 6/6] - Remove ipc.cpp/h from src folder --- src/src/Makefile.am | 2 - src/src/ipc.cpp | 271 -------------------------------------------- src/src/ipc.h | 163 -------------------------- 3 files changed, 436 deletions(-) delete mode 100644 src/src/ipc.cpp delete mode 100644 src/src/ipc.h diff --git a/src/src/Makefile.am b/src/src/Makefile.am index 8bab52b49b..ec004ed61a 100644 --- a/src/src/Makefile.am +++ b/src/src/Makefile.am @@ -119,6 +119,4 @@ man_MANS = codeblocks.1 EXTRA_DIST = associations.cpp \ associations.h \ - ipc.h \ - ipc.cpp \ $(man_MANS) diff --git a/src/src/ipc.cpp b/src/src/ipc.cpp deleted file mode 100644 index c5bca119c7..0000000000 --- a/src/src/ipc.cpp +++ /dev/null @@ -1,271 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - * - * $Revision$ - * $Id$ - * $HeadURL$ - */ - -#include "ipc.h" -#include "main.h" -#include - -const wxString g_failed_shm(_T("Failed creating shared memory initialising IPC (error 0x00000d04).")); -const wxString g_failed_sem(_T("Failed creating semaphore/mutex initialising IPC (error 0x007f0002).")); - -void IPC::Send(const wxString& in) -{ - if (in.length() * sizeof(wxChar) > shm.Size()) - cbThrow(_T("Input exceeds shared memory size (error 0x0000cde0).")); - - if (shm.Lock(SharedMemory::writer) == 0) - { - // If locking failed here, this means the semaphore (and hence the shared memory, and the server process) was destroyed - // after we *just* checked that it exists (a few nanoseconds ago). This is a funny race condition - // which should be really, really rare, but which is of course nevertheless possible. - // We should consequently turn this process into a server, after seeing that the semaphore died, but this is really awful, - // so... we're not doing that... for now. The worst thing to happen is that double-clicking a file does not do anything once in a million times. - // - // Let's just throw and see how often we see this exception in normal everyday use. - // If it never happens, then simply ignoring the issue is a perfectly acceptable solution. - // - cbThrow(_T("Congrats, you managed to kill process 1 within nanoseconds after launching process 2, which is quite hard to do.\n\nPlease inform the Code::Blocks team of your achievement.")); - } - - memcpy(shm.BasePointer(), in.c_str(), (in.length()+1) * sizeof(wxChar)); - shm.Unlock(SharedMemory::writer); -} - - -void IPC::Shutdown() -{ - // Other than POSIX, Windows does not signal threads waiting for a semaphore when the semaphore is deleted (at least, MSDN says so), - // therefore we have to do unlock by hand before deleting, or we may lock up a process for all times. - // IMPORTANT: This must be called from Manager::Shutdown() or from any other appropriate place - is_shutdown = true; - shm.Unlock(SharedMemory::writer); -}; - - -wxThread::ExitCode IPC::Entry() /* this is the receiving end */ -{ - for(;;) - { - if (shm.Lock(SharedMemory::reader) == 0 || is_shutdown) - return 0; - - MainFrame* cbframe = static_cast(Manager::Get()->GetAppFrame()); - if (cbframe == nullptr) - return 0; - - cbframe->OnDropFiles(0,0, wxStringTokenize((const wxChar*) shm.BasePointer(), _T("\n"), wxTOKEN_STRTOK)); - - shm.Unlock(SharedMemory::reader); - - if (is_shutdown) - return 0; - } -} - - -#if defined (__WIN32__) /* ------------------------------------------------------------- */ - - -SharedMemory::SharedMemory() : handle(0), semid(0), shared(0), ok(false), server(false) -{ - SetLastError(0); // CreateSemaphore should already do this, but anyway... - sem[reader] = CreateSemaphore(nullptr, 0, 1, TEXT("CdeBlsemIPCr")); - sem[writer] = CreateSemaphore(nullptr, 1, 1, TEXT("CdeBlsemIPCw")); - - if (GetLastError() != ERROR_ALREADY_EXISTS) - { - server = true; - } - - handle = CreateFileMapping(INVALID_HANDLE_VALUE, 0, PAGE_READWRITE, 0, ipc_buf_size, TEXT("CdeBlshmIPC")); - - if (handle == 0 || (shared = MapViewOfFile(handle, FILE_MAP_ALL_ACCESS, 0, 0, ipc_buf_size)) == 0) - { - LogManager::Get()->Panic(g_failed_shm); - return; - } - - ok = true; -} - -SharedMemory::~SharedMemory() -{ - UnmapViewOfFile(shared); - CloseHandle(handle); - CloseHandle(sem[reader]); - CloseHandle(sem[writer]); -} - -bool SharedMemory::Lock(rw_t rw) -{ - if (rw == reader) - { - return WaitForSingleObject(sem[reader], INFINITE) == WAIT_OBJECT_0 - && WaitForSingleObject(sem[writer], INFINITE) == WAIT_OBJECT_0; - } - else // if (rw == writer) - { - return WaitForSingleObject(sem[writer], INFINITE) == WAIT_OBJECT_0; - } - - return false; -} - -void SharedMemory::Unlock(rw_t rw) -{ - if (rw == reader) - { - ReleaseSemaphore(sem[writer], 1, nullptr); - } - else // if (rw == writer) - { - ReleaseSemaphore(sem[reader], 1, nullptr); - ReleaseSemaphore(sem[writer], 1, nullptr); - Sleep(0); - } -} - - -#else /* ------------------------------------------------------------- */ - - -SharedMemory::SharedMemory() : handle(0), semid(0), shared(0), ok(false), server(false) -{ - char file[256]; - key_t key; - - /* Shared memory and semaphore functions expect unique IDs created with ftok(). - * Unluckily, this is how POSIX works... we need a unique yet reproducable filename, - * and the file must exist, too. - * We'll use the executable file for this, if we can figure it out via /proc. - * Unluckily, again, this is nowhere near standardised or even guaranteed, so - * we'll have to create a file in /tmp if everything fails... - */ - if (readlink("/proc/self/exe", file, sizeof(file)) < 0) /* Linux style */ - { - if (readlink("/proc/self/file", file, sizeof(file)) < 0) /* failed, try BSD style */ - { - strcpy(file, "/tmp/fuckyou"); /* failed again, use some bullshit */ - close(open(file, O_CREAT, O_RDONLY|O_WRONLY)); - } - } - - key = ftok(file, 'a'); - semid = semget(key, 2, IPC_CREAT | 0666); - - if (semid == -1) - { - LogManager::Get()->Panic(g_failed_sem); - return; - } - - key = ftok(file, 'b'); - handle = shmget(key, ipc_buf_size, 0666 | IPC_CREAT | IPC_EXCL); - - if (handle == -1) /* failed, because... */ - { - if (errno == EEXIST) /* EEXIST ---> server already running */ - { - handle = shmget(key, ipc_buf_size, 0666); - if (handle == -1) - { - LogManager::Get()->Panic(g_failed_shm); - return; - } - ok = true; - server = false; - } - else /* ...any other error ---> bad */ - { - LogManager::Get()->Panic(g_failed_shm); - return; - } - } - else - { - ok = true; - server = true; - - unsigned short int v[2] = {0, 1}; - semctl(semid, 0, SETALL, v); - } - - shared = shmat(handle, nullptr, 0); - ok = (shared != (void*) -1) ? ok : false; -} - - -SharedMemory::~SharedMemory() -{ - shmdt(shared); - if (server) - { - shmctl(handle, IPC_RMID, 0); - semctl(semid, 0, IPC_RMID ); /* this will wake up the thread blocking in semop() */ - } -} - -bool SharedMemory::Lock(rw_t rw) -{ - if (rw == reader) - { - sembuf op[2]; - - op[0].sem_num = reader; - op[0].sem_op = -1; - op[0].sem_flg = 0; - - op[1].sem_num = writer; - op[1].sem_op = -1; - op[1].sem_flg = 0; - - return semop(semid, op, 2) == 0; /* if semaphore is deleted, EIDRM or EINVAL will be returned */ - } - - if (rw == writer) - { - sembuf op[1]; - op[0].sem_num = writer; - op[0].sem_op = -1; - op[0].sem_flg = 0; - - return semop(semid, op, 1) == 0; - } - - return false; -} - -void SharedMemory::Unlock(rw_t rw) -{ - if (rw == writer) - { - sembuf op[2]; - op[0].sem_num = reader; - op[0].sem_op = 1; - op[0].sem_flg = 0; - - op[1].sem_num = writer; - op[1].sem_op = 1; - op[1].sem_flg = 0; - - semop(semid, op, 2); - } - - if (rw == reader) - { - sembuf op[1]; - op[0].sem_num = writer; - op[0].sem_op = 1; - op[0].sem_flg = 0; - - semop(semid, op, 1); - } -} - -#endif /* ------------------------------------------------------------- */ diff --git a/src/src/ipc.h b/src/src/ipc.h deleted file mode 100644 index 3c00f48ea9..0000000000 --- a/src/src/ipc.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3 - * http://www.gnu.org/licenses/gpl-3.0.html - */ - -#ifndef IPC_H -#define IPC_H - - -#include "sdk.h" - -#include - - -#ifdef __WIN32__ - - #define WIN32_LEAN_AND_MEAN - #define NOGDI - #include - typedef HANDLE shm_handle_t; - typedef HANDLE semaphore_t; - -#else - - #include - #include - #include - #include - #include - #include - - #if defined(__APPLE__) && defined(__MACH__) - typedef int shm_handle_t; - typedef mach_port_t semaphore_t; - #else - typedef int shm_handle_t; - typedef int semaphore_t; - #endif - -#endif - -static const int ipc_buf_size = 1024*64; - - -class SharedMemory -{ - shm_handle_t handle; - - union - { - semaphore_t semid; - semaphore_t sem[2]; - }; - - void* shared; - bool ok; - bool server; - -public: - - enum rw_t{ reader, writer }; - - SharedMemory(); - ~SharedMemory(); - - bool OK() const { return ok; }; - - void* BasePointer() const { return shared; }; - size_t Size() const { return ipc_buf_size; }; - - bool Server() const { return server; }; - bool Client() const { return !server; }; - - - /* - * Lock(reader) locks "as reader", not "the reader semaphore", i.e. it - * 1. locks the reader semaphore - * 2. locks the writer mutex, so the shared memory cannot be written while we read it - * - * Lock(writer) locks "as writer", this is equivalent to locking "the writer mutex" - * - * Unlock(reader) unlocks "as reader", i.e. it actually unlocks the writer mutex - * which the caller is still holding, so another process can write to the shared memory area again. - * It does not release the reader semaphore, since it should block on it on the next iteration. - * - * Unlock(writer) locks "as writer", i.e. it - * 1. unlocks the reader semaphore, waking up the Server thread - * 2. unlocks the writer mutex, so the Server thread can acquire it and prevent other processes from writing - */ - bool Lock(rw_t rw); - void Unlock(rw_t rw); -}; - - -class IPC : public wxThread -{ - volatile bool is_shutdown; - SharedMemory shm; - -public: - IPC() : is_shutdown(false) {}; - - virtual ExitCode Entry(); - - bool Server() const { return shm.Server(); }; - - void Shutdown(); - - void Send(const wxString& value); -}; - - -/* - * expemplary code for app.cpp, specifically CodeBlocksApp::ParseCmdLine >>>>>>>>>>>>>>> - * - * -IPC *ipc = new IPC; // don't delete - -if (ipc->Server()) -{ - ipc->Run(); -} -else -{ - // parser is the wxCmdLineParser - wxString item; - wxString buf; - - static const unsigned int max_size = ipc_buf_size / sizeof(wxChar); - - buf.Alloc(4096); - - int count = parser.GetParamCount(); - - for (int i = 0; i < count; ++i) - { - item = parser.GetParam(i); - item.append(_T('\n')); - - if (buf.length() + item.length() + 1) >= max_size) - { - buf.append(_T('\0')); - ipc->Send(buf); - buf.Empty(); - } - buf.append(item); - } - - if (buf.length()) - { - buf.append(_T('\0')); - ipc->Send(buf); - } -} - * - * - * <<<<<<<<<<<<<<< expemplary code - */ - - - - -#endif